RSSAmplifier

Blog

Alex Rutar's Blog

Personal webpage for math and related topics.

rutar.orgRSS feed ↗10 posts

Latest posts

Fractal geometry and dynamics

Here is a link to the lecture notes , last updated on Feb 16, 2026. Here is some supplementary material: Material on packing measure and dimension Supplementary on material on multifractal analysis Exercise sheets Exercise 5 typo: the definition of semi-algebra was missing the assumption that it is a finite disjoint union (thanks Mikko for noticing this!) Exercise 1 and Solutions Exercise 2 and…

(Un)safely moving elements out of borrowed data

Temporarily moving elements out of collections A recurring pattern when working with collections is the following. Suppose I have a collection, like a Vec<T> , and suppose I would like to take an element out and replace it with a new one. Fortunately for us, holding a mutable reference is almost the same as having ownership, so we can for example use replace : fn replace_at_index < T > ( vec : &…

Dynamically set Cargo features in Neovim

Rust analyzer Rust analyzer is a language server which provides editor support for the Rust programming language . Neovim has built-in language server protocol support. Cargo supports feature flags, which enable conditional configuration. However, any blocks which are not compiled for a given feature do not benefit from rust-analyzer language server support. While it is possible to enable features…

Using Closure-style Traits to Simplify a Rust API

Introduction I recently published a Rust library called nucleo-picker which enables command-line applications to incorporate an interface for making a selection from a number of provided options. The selection is done through an interactive query, with a search algorithm used to filter and rank the given possibilities. A popular choice, and the one internal to nucleo-picker 1 Not my…

Against Open Workspaces

Context It was recently pointed out to me that part of the initial proposal concerning the construction of a new mathematics building at the University of St Andrews includes the creation of an open hot-desk workspace for postgraduate research students. While functionally and bureaucratically appealing, I believe that this form of workspace organization is fundamentally opposed to the requirements…

Oath Dice and Combat Odds

The Oath combat system Oath is a great board game, which is in some sense a game about history , and in others a game about empires . If you’re not already familiar with the game, I’d highly recommend that you give it a try. In this article, I will discuss some of the odds in the oath combat system. I will be relatively light on mathematical details: for a full derivation of the formulas, you can…

How to Build a Personal Webpage from Scratch

An overview of static webpage development What is a static webpage? Modern webpages are (primarily) composed of three types of files: HTML, CSS, and JavaScript. Basically, HTML specifies the content , CSS defines the style , and JavaScript allows dynamic behaviour . Webpages also consist of additional resources, such as images or documents. When you visit a webpage, your web browser requests the…

Vim Session Management: An Introduction to Fish

Objectives Fish shell is a user-friendly command line shell and scripting langauge. However, the project is relatively new, so it can be somewhat challenging to find concise information on how to use the scripting language. In this article, we will develop a basic session management tool for (Neo)Vim. The intention of this tool is to be a wrapper around Tim Pope’s obsession.vim plugin, with the…

Managing Python Versions with Pyenv

The pyenv command line utility is convenient tool for managing python versions. Installation It’s best to follow the above link for general installation instructions. Otherwise, I will assume you are using macOS with Fish Shell. First install pyenv and pyenv-virtualenv with brew: brew install pyenv pyenv-virtualenv You also want to add some lines to your config.fish : set - Ux PYENV_ROOT " $ HOME…

Previewing a Development Branch on Cloudflare Pages

In this article, I assume that your repository is hosted on GitHub , and the site is hosted on Cloudflare pages . I’m sure other providers will work, with similar instructions. Creating the development branch First, create a new branch development (or any name you would like): git pull git branch development Now to add draft changes, first git switch development then perform the changes you want…