GeistHaus
log in · sign up

Iago's Blog

Part of iagoleal.com

Iago Leal's blog about math, programming and everything more.

stories primary
Encrypted Void Linux Installation Booting From EFI Stub
Blog
How to install Void Linux with LVM over LUKS for full-disk encryption, boot directly from kernel EFI Stub, hibernation, and per-user encryption.
https://iagoleal.com/posts/void-install/
Extensions
Encrypting an external device with LUKS
Blog
A tutorial on how to wipe, encrypt, auto mount, and decrypt an external usd drive on linux.
https://iagoleal.com/posts/usb-crypt/
Extensions
Your Favorite Problem as an Ising Model
Blog
Quantum Computers are advancing and one should know how to fit classical problems into them.
https://iagoleal.com/posts/ising-qubo-milp/
Extensions
Monoids Let You Run Automata in Parallel
Blog
Finite automata are awesome but inherently sequential. On the other hand, finite monoid machines solve the same problems while being amenable to parallel execution.
https://iagoleal.com/posts/automata-monoids/
Extensions
Arithmancia Automatorum
Blog
Did you know that Finite Automata can recognize divisibility? To find one such automaton, the procedure is simple but constructing the minimal one requires a lot of modular arithmetic.
https://iagoleal.com/posts/automata-divisibility/
Extensions
Finite Automata as Quantum Tensor Networks
Blog
Finite automata accept a description using linear algebra that we can translate into a system of tensors or quantum circuits. These provide examples of quantum systems only requiring a polynomial amount of information to represent and simulate classicaly.
https://iagoleal.com/posts/automata-tensor-networks/
Extensions
Running Jupyter Notebooks from a Supercomputer
Blog
A simple ssh workflow for interacting with Jupyter notebooks from your browser while using an HPC supercomputer’s resources.
https://iagoleal.com/posts/jupyter-hpc/
Extensions
A Uniform Probability over Probabilities
Blog
You may be used to sampling from probabilities, but what about sampling a random finite probability? As it turns out, this is a procedure rich in geometry and symmetries.
https://iagoleal.com/posts/sampling-probabilities/
Extensions
Cuts for Stochastic Programming
Blog
Cutting planes are a powerful tool for solving stochastic programs. We focus on the possible ways to represent the cuts during algorithms and their consequences for parallelization.
https://iagoleal.com/posts/cuts-stochastic/
Extensions
Playing with Value Iteration in Haskell
Blog
From monads to stochastic control and from fixed points to value iteration. An exploration about using abstract concepts to construct concretes algorithms.
https://iagoleal.com/posts/value-iteration-haskell/
Extensions
Cuts for Mixed Integer Programs
Blog
Approximations by cuts are common in convex optimization. How to leverage them in the presence of integer variables?
https://iagoleal.com/posts/cuts-mip/
Extensions
A Fistful of Automata
Blog
There are many kinds of finite automata. We can, however, write all of them as variations on the same definition, by making the transition monadic.
https://iagoleal.com/posts/automata-monads/
Extensions
Approximation by a Thousand Cuts
Blog
An exploration of cutting-plane approximations, a technique for representing functions via polyhedra that nicely fits into optimization problems.
https://iagoleal.com/posts/cuts/
Extensions
Picturing Finite Relations as Graphs
Blog
A mostly visual post illustrating the graphs for many common kinds of relations.
https://iagoleal.com/posts/finite-relations-graph/
Extensions
Algebraic Path Finding
Blog
By doing dynamic programming in an abstract Semiring, we discover that many classical algorithms are, in fact, calculating shortest paths.
https://iagoleal.com/posts/algebraic-path/
Extensions
Memoization via Representables
Blog
By delving into the realm of abstraction, we can uncover practical applications. For example: memoizing functions with Representable Functors.
https://iagoleal.com/posts/representable-memoize/
Extensions
The Lazy Way to Solve Differential Equations
Blog
Looking at Taylor series as streams of real numbers, solving differential equations becomes as easy as writing them.
https://iagoleal.com/posts/calculus-symbolic-ode/
Extensions
A Tale of Dynamic Programming
Blog
From parsing text to controling robots, dynamic programming is everywhere. Let’s explore its workings, which problems it solves, and its algorithms.
https://iagoleal.com/posts/dynamic-programming/
Extensions
Let’s Program a Calculus Student II
Blog
What is the difference between automatic and symbolic differentiation? With enough polymorphism, it is possible to use one to calculate the other.
https://iagoleal.com/posts/calculus-symbolic-ad/
Extensions
Let’s Program a Calculus Student
Blog
Writing a symbolic calculator for derivatives may sound like a hard task. It is feasible, however, in a few dozen lines of Haskell. All this thanks to syntax trees and recursion.
https://iagoleal.com/posts/calculus-symbolic/
Extensions
Shower Thoughts about Averages
Blog
The standard definition of average can be rather opaque. Nevertheless, looking at it from the perspective of minimizing a square error, sheds light on how natural the definition actually is.
https://iagoleal.com/posts/shower-thoughts-averages/
Extensions
Pair Programming in the Pandemic
Blog
Ever had to program together with someone via ssh? It can be confusing… unless you use tmux to painlessly share a terminal!
https://iagoleal.com/posts/tmux-pair-programming/
Extensions
FFT as a Hylomorphism
Blog
All divide-and-conquer algorithms can be separated into a construction part and a merge part. This post illustrates this in Haskell for the FFT.
https://iagoleal.com/posts/fft-hylo/
Extensions
Recursion Schemes for Mathematicians
Blog
Most introductions to recursion schemes are aimed at functional programmers. But what if you are a functional entusiast mathematician? Don’t worry, we have you covered in this one.
https://iagoleal.com/posts/recursion-schemes/
Extensions