<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>State-Machine on Home</title>
    <link>https://blog.rafaelfernandez.dev/tags/state-machine/</link>
    <description>Recent content in State-Machine on Home</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 Rafael Fernandez</copyright>
    <lastBuildDate>Sun, 22 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.rafaelfernandez.dev/tags/state-machine/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>The Elm Architecture: a loop that fits in your head</title>
      <link>https://blog.rafaelfernandez.dev/posts/the-elm-architecture-a-loop-that-fits-in-your-head/</link>
      <pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/the-elm-architecture-a-loop-that-fits-in-your-head/</guid>
      <description>Model, Update, View. Three pieces, one loop, zero surprises. We explain The Elm Architecture from scratch with side-by-side examples in Rust and Scala, trace where the pattern came from, why it keeps showing up in TUIs and functional codebases, and when it stops being the right tool.</description>
      
    </item>
    
    <item>
      <title>Making Invalid States Unrepresentable 3: Real bugs from representable nonsense</title>
      <link>https://blog.rafaelfernandez.dev/posts/making-invalid-states-unrepresentable-3-real-bugs/</link>
      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/making-invalid-states-unrepresentable-3-real-bugs/</guid>
      <description>Null references, UI loading spinners that show errors and data simultaneously, payments that are captured and voided at the same time. These are not hypotheticals. They are the direct consequence of types that lie about the domain.</description>
      
    </item>
    
    <item>
      <title>Todo TUI in Rust 5. Event polling, the edit vertical slice, and closing</title>
      <link>https://blog.rafaelfernandez.dev/posts/todo-tui-rust-5-event-polling-edit-vertical-slice/</link>
      <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/todo-tui-rust-5-event-polling-edit-vertical-slice/</guid>
      <description>The rat serves the last course. We fix input lag with non-blocking event polling, add the edit feature as a full vertical slice from application layer to TUI, watch the state machine grow from 3 to 4 variants with compiler-guided safety, and close with the key takeaways from the entire migration.</description>
      
    </item>
    
    <item>
      <title>Todo TUI in Rust 1. Scaffolding the TUI adapter and designing the state machine</title>
      <link>https://blog.rafaelfernandez.dev/posts/todo-tui-rust-1-scaffolding-tui-adapter-state-machine/</link>
      <pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/todo-tui-rust-1-scaffolding-tui-adapter-state-machine/</guid>
      <description>We start a new series by migrating the CLI adapter to a ratatui TUI. We set up the new dependencies, design the module structure under adapters/tui/, model the interaction modes as an enum to make invalid states unrepresentable, and solve the ownership puzzle of cloning a repository in a persistent session.</description>
      
    </item>
    
  </channel>
</rss>
