<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
     <title>Iago's Blog</title>
     <link>https://iagoleal.com</link>
     <description>Iago Leal's blog about math, programming and everything more.</description>
     <copyright>© Iago Leal de Freitas, 2020-2026</copyright>
     <atom:link href="https://iagoleal.com/rss.xml" rel="self" type="application/rss+xml" />
     <language>en-us</language>
     <image>
       <url>https://iagoleal.com/static/img/me.jpg</url>
       <link>https://iagoleal.com</link>
       <title>Iago's Blog</title>
     </image>
     <managingEditor>hello@iagoleal.com</managingEditor>
     <webMaster>hello@iagoleal.com</webMaster>
     <docs>https://validator.w3.org/feed/docs/rss2.html</docs>

        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/usb-crypt/</guid>
      <title>Encrypting an external device with LUKS</title>
      <link>https://iagoleal.com/posts/usb-crypt/</link>
          <description>A tutorial on how to wipe, encrypt, auto mount,
and decrypt an external usd drive on linux.</description>
          <pubDate>13 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/ising-qubo-milp/</guid>
      <title>Your Favorite Problem as an Ising Model</title>
      <link>https://iagoleal.com/posts/ising-qubo-milp/</link>
          <description>Quantum Computers are advancing and one should
know how to fit classical problems into them.</description>
          <pubDate>29 Jan 2026 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/automata-monoids/</guid>
      <title>Monoids Let You Run Automata in Parallel</title>
      <link>https://iagoleal.com/posts/automata-monoids/</link>
          <description>Finite automata are awesome but inherently
sequential. On the other hand, finite monoid machines solve the same
problems while being amenable to parallel execution.</description>
          <pubDate>24 Sep 2025 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/automata-divisibility/</guid>
      <title>Arithmancia Automatorum</title>
      <link>https://iagoleal.com/posts/automata-divisibility/</link>
          <description>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.</description>
          <pubDate>23 May 2025 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/automata-tensor-networks/</guid>
      <title>Finite Automata as Quantum Tensor Networks</title>
      <link>https://iagoleal.com/posts/automata-tensor-networks/</link>
          <description>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.</description>
          <pubDate>14 May 2025 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/jupyter-hpc/</guid>
      <title>Running Jupyter Notebooks from a Supercomputer</title>
      <link>https://iagoleal.com/posts/jupyter-hpc/</link>
          <description>A simple ssh workflow for interacting with
Jupyter notebooks from your browser while using an HPC supercomputer’s
resources.</description>
          <pubDate>06 Apr 2025 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/sampling-probabilities/</guid>
      <title>A Uniform Probability over Probabilities</title>
      <link>https://iagoleal.com/posts/sampling-probabilities/</link>
          <description>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.</description>
          <pubDate>21 May 2024 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/cuts-stochastic/</guid>
      <title>Cuts for Stochastic Programming</title>
      <link>https://iagoleal.com/posts/cuts-stochastic/</link>
          <description>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.</description>
          <pubDate>25 Apr 2024 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/value-iteration-haskell/</guid>
      <title>Playing with Value Iteration in Haskell</title>
      <link>https://iagoleal.com/posts/value-iteration-haskell/</link>
          <description>From monads to stochastic control and from fixed
points to value iteration. An exploration about using abstract concepts
to construct concretes algorithms.</description>
          <pubDate>29 Feb 2024 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/cuts-mip/</guid>
      <title>Cuts for Mixed Integer Programs</title>
      <link>https://iagoleal.com/posts/cuts-mip/</link>
          <description>Approximations by cuts are common in convex
optimization. How to leverage them in the presence of integer
variables?</description>
          <pubDate>15 Dec 2023 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/automata-monads/</guid>
      <title>A Fistful of Automata</title>
      <link>https://iagoleal.com/posts/automata-monads/</link>
          <description>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.</description>
          <pubDate>20 Oct 2023 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/cuts/</guid>
      <title>Approximation by a Thousand Cuts</title>
      <link>https://iagoleal.com/posts/cuts/</link>
          <description>An exploration of cutting-plane approximations, a
technique for representing functions via polyhedra that nicely fits into
optimization problems.</description>
          <pubDate>22 Sep 2023 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/finite-relations-graph/</guid>
      <title>Picturing Finite Relations as Graphs</title>
      <link>https://iagoleal.com/posts/finite-relations-graph/</link>
          <description>A mostly visual post illustrating the graphs for
many common kinds of relations.</description>
          <pubDate>24 Aug 2023 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/algebraic-path/</guid>
      <title>Algebraic Path Finding</title>
      <link>https://iagoleal.com/posts/algebraic-path/</link>
          <description>By doing dynamic programming in an abstract
Semiring, we discover that many classical algorithms are, in fact,
calculating shortest paths.</description>
          <pubDate>21 Mar 2023 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/representable-memoize/</guid>
      <title>Memoization via Representables</title>
      <link>https://iagoleal.com/posts/representable-memoize/</link>
          <description>By delving into the realm of abstraction, we can
uncover practical applications. For example: memoizing functions with
Representable Functors.</description>
          <pubDate>18 Sep 2022 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/calculus-symbolic-ode/</guid>
      <title>The Lazy Way to Solve Differential Equations</title>
      <link>https://iagoleal.com/posts/calculus-symbolic-ode/</link>
          <description>Looking at Taylor series as streams of real
numbers, solving differential equations becomes as easy as writing
them.</description>
          <pubDate>17 Jul 2022 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/dynamic-programming/</guid>
      <title>A Tale of Dynamic Programming</title>
      <link>https://iagoleal.com/posts/dynamic-programming/</link>
          <description>From parsing text to controling robots, dynamic
programming is everywhere. Let’s explore its workings, which problems it
solves, and its algorithms.</description>
          <pubDate>25 Jun 2022 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/calculus-symbolic-ad/</guid>
      <title>Let’s Program a Calculus Student II</title>
      <link>https://iagoleal.com/posts/calculus-symbolic-ad/</link>
          <description>What is the difference between automatic and
symbolic differentiation? With enough polymorphism, it is possible to
use one to calculate the other.</description>
          <pubDate>25 Apr 2022 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/calculus-symbolic/</guid>
      <title>Let’s Program a Calculus Student</title>
      <link>https://iagoleal.com/posts/calculus-symbolic/</link>
          <description>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.</description>
          <pubDate>05 Apr 2022 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/shower-thoughts-averages/</guid>
      <title>Shower Thoughts about Averages</title>
      <link>https://iagoleal.com/posts/shower-thoughts-averages/</link>
          <description>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.</description>
          <pubDate>29 Dec 2021 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/tmux-pair-programming/</guid>
      <title>Pair Programming in the Pandemic</title>
      <link>https://iagoleal.com/posts/tmux-pair-programming/</link>
          <description>Ever had to program together with someone via
ssh? It can be confusing… unless you use tmux to painlessly share a
terminal!</description>
          <pubDate>03 Aug 2021 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/fft-hylo/</guid>
      <title>FFT as a Hylomorphism</title>
      <link>https://iagoleal.com/posts/fft-hylo/</link>
          <description>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.</description>
          <pubDate>20 Sep 2020 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
        <item>
      <guid isPermaLink="true">https://iagoleal.com/posts/recursion-schemes/</guid>
      <title>Recursion Schemes for Mathematicians</title>
      <link>https://iagoleal.com/posts/recursion-schemes/</link>
          <description>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.</description>
          <pubDate>10 Sep 2020 00:00:00 GMT</pubDate>
      <dc:creator>Iago Leal de Freitas</dc:creator>
      <category>Blog</category>
    </item>
      </channel>
</rss>
