<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>rosa.codes</title>
    <link>https://rosa.codes/</link>
    <description>Recent content on rosa.codes</description>
    <generator>Hugo -- 0.148.2</generator>
    <language>en-us</language>
    <atom:link href="https://rosa.codes/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title></title>
      <link>https://rosa.codes/bilbo2023/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rosa.codes/bilbo2023/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://rosa.codes/images/bilbostack_logo.png#center&#34;
         alt=&#34;Bilbostack 2023&#34; width=&#34;400&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;Some supporting links for the &amp;ldquo;From SMTP to the Imbox*&amp;rdquo; talk I gave at the &lt;a href=&#34;https://bilbostack.com/&#34;&gt;BilboStack&lt;/a&gt; conference in January 2023.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/April_Fools%27_Day_Request_for_Comments&#34;&gt;April Fools&amp;rsquo; Day Request for Comments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.fastmail.help/hc/en-us/articles/1500000278382-Email-standards&#34;&gt;RFCs related to email standards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.hey.com/&#34;&gt;HEY&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.postfix.org/&#34;&gt;Postfix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://guides.rubyonrails.org/action_mailbox_basics.html&#34;&gt;Rails and Action Mailbox&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://rosa.codes/swr2022/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rosa.codes/swr2022/</guid>
      <description>&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://rosa.codes/images/swr_logo.png#center&#34;
         alt=&#34;South West Ruby meetup&#34; width=&#34;400&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;Some supporting links for the &amp;ldquo;50 languages in 50 days*&amp;rdquo; talk I gave at the &lt;a href=&#34;https://www.meetup.com/en-AU/south-west-ruby/&#34;&gt;South West Ruby meetup&lt;/a&gt; in December 2022.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://adventofcode.com/&#34;&gt;Advent of Code&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.reddit.com/r/adventofcode/&#34;&gt;r/adventofcode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/abeaumont/competitive-programming/tree/master/advent-of-code&#34;&gt;Alfredo&amp;rsquo;s solutions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/rosa/advent-of-code&#34;&gt;My solutions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.rosettacode.org/&#34;&gt;Rosetta Code&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/topics/programming-language&#34;&gt;Programming language topic in GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>“Invalid byte sequence in UTF-8” 😭</title>
      <link>https://rosa.codes/strings2024/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rosa.codes/strings2024/</guid>
      <description>&lt;p&gt;Resources to learn more about strings, encoding, Unicode&amp;hellip;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://aaronlasseigne.com/books/mastering-ruby/strings-and-encodings/&#34;&gt;Mastering Ruby - Strings and Encodings&lt;/a&gt; - Book by Aaron Lasseigne&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tenderlovemaking.com/2020/01/13/guide-to-string-encoding-in-ruby/&#34;&gt;Guide to string encoding in Ruby&lt;/a&gt; - Article by Aaron Patterson&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=sgHbC6udIqc&#34;&gt;Pragmatic Unicode, or How do I stop the pain&lt;/a&gt; - Talk by Ned Batchelder at PyCon 2012 (from 2010, still great!)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/&#34;&gt;The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)&lt;/a&gt; - Article by Joel Spolsky (from 2003, still great!)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tonsky.me/blog/unicode/&#34;&gt;The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)&lt;/a&gt; - Article by Nikita Prokopov&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>about</title>
      <link>https://rosa.codes/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rosa.codes/about/</guid>
      <description>&lt;p&gt;👩🏻‍💻&amp;#x1f430;&amp;#x1f573;&amp;#xfe0f; I&amp;rsquo;m a software engineer who loves writing code, investigating tricky bugs down rabbit holes and helping others above all things. I value curiosity, generosity and humility very highly. I think the three are very closely related.&lt;/p&gt;
&lt;p&gt;&amp;#x1f4da;&amp;#x1f9ee; I have a background in theoretical computer science and I wanted to study pure mathematics. I&amp;rsquo;ll do it one day.&lt;/p&gt;
&lt;p&gt;&amp;#x1f4ac;&amp;#x1f5fa;&amp;#xfe0f; I&amp;rsquo;m a polyglot at heart, trying to be a polyglot on the outside. I love learning programming languages, &lt;a href=&#34;https://github.com/rosa/advent-of-code/tree/main/2021#advent-of-code-2021&#34;&gt;even in absurd ways&lt;/a&gt;, and human languages as well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bringing Offline Mode to Hotwire with Service Workers ⚡</title>
      <link>https://rosa.codes/offline2025/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rosa.codes/offline2025/</guid>
      <description>&lt;p&gt;Some resources to accompany the Rails World 2025 talk of the same name, and learn more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://web.dev/articles/service-worker-mindset&#34;&gt;Service worker mindset&lt;/a&gt; - web.dev, by Dave Geddes&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://web.dev/articles/service-worker-lifecycle&#34;&gt;The service worker lifecycle&lt;/a&gt; - web.dev, by Jake Archibald&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://developer.chrome.com/docs/workbox&#34;&gt;Workbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=87majUWRcmg&#34;&gt;The Future of: PWAs on Rails&lt;/a&gt; - Talk by Edy Silva at RailsConf 2025&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://masterhotwire.com/&#34;&gt;Master Hotwire&lt;/a&gt; - book by Radan Skorić&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://issues.chromium.org/issues/40450316&#34;&gt;Chromium bug - Unable to set User-Agent header&lt;/a&gt; - it hasn&amp;rsquo;t been fixed as of 2025-08-25, but it&amp;rsquo;s being worked on as I write this (last update on 2025-08-20)&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Machines that talk about themselves</title>
      <link>https://rosa.codes/machines2025/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rosa.codes/machines2025/</guid>
      <description>&lt;h4 id=&#34;sentences-and-expressions&#34;&gt;Sentences and expressions&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;An &lt;em&gt;expression&lt;/em&gt; is any combination of the symbols &lt;code&gt;P, N, A, -&lt;/code&gt;. For example, &lt;code&gt;NPA—P-A&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A &lt;em&gt;sentence&lt;/em&gt; is an expression with an assigned meaning.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;the-printing-machine-&#34;&gt;The printing machine 🖨️&lt;/h4&gt;
&lt;p&gt;We&amp;rsquo;re giving a printing machine, and we call an expression &lt;em&gt;printable&lt;/em&gt; if the machine can print it.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;P-X&lt;/code&gt; means &amp;ldquo;&lt;code&gt;X&lt;/code&gt; is printable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NP-X&lt;/code&gt; means &amp;ldquo;&lt;code&gt;X&lt;/code&gt; is not printable&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The associate of an expression &lt;code&gt;X&lt;/code&gt; is &lt;code&gt;X-X&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PA-X&lt;/code&gt; means &amp;ldquo;the associate of &lt;code&gt;X&lt;/code&gt;, &lt;code&gt;X-X&lt;/code&gt;, is printable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NPA-X&lt;/code&gt; means &amp;ldquo;the associate of &lt;code&gt;X&lt;/code&gt;, &lt;code&gt;X-X&lt;/code&gt;, is not printable&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A sentence is an expression of the following 4 forms:&lt;/p&gt;</description>
    </item>
    <item>
      <title>scpna2022</title>
      <link>https://rosa.codes/scpna2022/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rosa.codes/scpna2022/</guid>
      <description>&lt;p&gt;Some supporting links for the &amp;ldquo;50 languages in 50 days*&amp;rdquo; talk I gave at the &lt;a href=&#34;http://pamplonaswcraft.com/&#34;&gt;Pamplona Software Crafters conference&lt;/a&gt; in 2022.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Competitive Programming&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://open.kattis.com/&#34;&gt;Kattis online judge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://onlinejudge.org/&#34;&gt;UVa online judge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.comp.nus.edu.sg/~stevenha/cs3233.html#intro&#34;&gt;Singapore University course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://algo.is/competitive-programming-course/&#34;&gt;Reykjavik University course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cpbook.net/&#34;&gt;Competitive Programming books&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://adventofcode.com/&#34;&gt;Advent of Code&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.reddit.com/r/adventofcode/&#34;&gt;r/adventofcode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/abeaumont/competitive-programming/tree/master/advent-of-code&#34;&gt;Alfredo&amp;rsquo;s solutions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/rosa/advent-of-code&#34;&gt;My solutions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.rosettacode.org/&#34;&gt;Rosetta Code&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/topics/programming-language&#34;&gt;Programming language topic in GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>The curious incident of the incomplete executor 🕵🏻‍♀️</title>
      <link>https://rosa.codes/executor2025/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://rosa.codes/executor2025/</guid>
      <description>&lt;p&gt;You can find &lt;a href=&#34;https://rosa.codes/executor2025/presentation/&#34;&gt;slides for the talk&lt;/a&gt; given at &lt;a href=&#34;https://www.rubyevents.org/events/tropical-on-rails-2025&#34;&gt;Tropical on Rails 2025&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some resources to accompany the talk and learn more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://thoughtbot.com/upcase/videos/rack&#34;&gt;Rack @ The weekly iteration&lt;/a&gt; – Upcase by thoughtbot&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://guides.rubyonrails.org/v7.1/threading_and_code_execution.html#executor&#34;&gt;Rails executor&lt;/a&gt; – Rails Guides&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://evilmartians.com/events/rails-executor-kaigionrails&#34;&gt;Rails Executor: the border between application and framework code&lt;/a&gt; - Talk by Andrey Novikov from Evil Martians at Kaigi on Rails 2023 (Japanese 🇯🇵)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://dansvetlov.me/puma-internals/&#34;&gt;Dissecting Puma: Anatomy of a Ruby Web Server&lt;/a&gt; – Amazing deep dive on Puma internals by Dan Svetlov&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/puma/puma/pull/2731&#34;&gt;Change that moved &lt;code&gt;body.close&lt;/code&gt;&lt;/a&gt; in Puma&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/puma/puma/issues/2808&#34;&gt;Authentication with cookies unreliable on 5.6.0 #2808&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://discuss.rubyonrails.org/t/cve-2022-23633-possible-exposure-of-information-vulnerability-in-action-pack/80016&#34;&gt;[CVE-2022-23633] Possible exposure of information vulnerability in Action Pack&lt;/a&gt; – CVE in Rails forums&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/puma/puma/security/advisories/GHSA-rmj8-8hhh-gv5h&#34;&gt;Information Exposure with Puma and Rails&lt;/a&gt; – Security advisory in Puma&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/rails/rails/commit/3c0420c431954d05fef2015a27281069e68cce0c&#34;&gt;ActionDispatch::Executor don&amp;rsquo;t fully trust &lt;code&gt;body#close&lt;/code&gt;&lt;/a&gt; – Fix in Rails executor to make it more resilient&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
