<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ryan Palo</title>
    <description>The latest articles on Forem by Ryan Palo (@rpalo).</description>
    <link>https://forem.com/rpalo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F11355%2F14909201.jpeg</url>
      <title>Forem: Ryan Palo</title>
      <link>https://forem.com/rpalo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rpalo"/>
    <language>en</language>
    <item>
      <title>Does Your Site Need a /ai Page?</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Thu, 23 Oct 2025 08:24:03 +0000</pubDate>
      <link>https://forem.com/rpalo/does-your-site-need-a-ai-page-2hkp</link>
      <guid>https://forem.com/rpalo/does-your-site-need-a-ai-page-2hkp</guid>
      <description>&lt;p&gt;After seeing an example on &lt;a href="https://cassidoo.co/ai/" rel="noopener noreferrer"&gt;cassidoo's site&lt;/a&gt;, I decided to add an &lt;a href="https://assertnotmagic.com/ai" rel="noopener noreferrer"&gt;"AI Transparency" page&lt;/a&gt; to my site as well.&lt;/p&gt;

&lt;p&gt;Both she and &lt;a href="https://www.bydamo.la/p/ai-manifesto" rel="noopener noreferrer"&gt;the post she links&lt;/a&gt; make a really good point about how, if a person or company is transparent about how they use AI, it helps us trust that their work is more authentic in general. They recommend adding a page to your site (e.g. &lt;code&gt;/ai&lt;/code&gt;) that details how you make use of generative AI (or not). From the simplest "No posts on this site are written with generative AI," to a longer, more detailed breakdown, the idea is not to cover your bases with legalese, but to be authentic, clear, and real. It's not a bad thing to use AI, necessarily. It's a tool like any other, and a user needs to understand how it works--pro's, con's, strengths, and dangers. But it's good to be open about it to help people understand and gain context for your work.&lt;/p&gt;

&lt;p&gt;And if you &lt;em&gt;do&lt;/em&gt; decide to add one to your site, you can add your site to this &lt;a href="https://slashai.page/" rel="noopener noreferrer"&gt;public database of /ai page-having sites&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Sentient Config is a Code Smell</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Sat, 11 Oct 2025 20:34:57 +0000</pubDate>
      <link>https://forem.com/rpalo/sentient-config-is-a-code-smell-3593</link>
      <guid>https://forem.com/rpalo/sentient-config-is-a-code-smell-3593</guid>
      <description>&lt;p&gt;Stop me when this starts to feel familiar:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You build a really cool app that does a thing.&lt;/li&gt;
&lt;li&gt;You have another use-case for the app, but maybe for a slightly different setup. So you add some configuration variables, maybe via environment variables or CLI args.&lt;/li&gt;
&lt;li&gt;This works well, and you start to dream bigger. More use cases spring to mind that are &lt;em&gt;effectively&lt;/em&gt; the same app, but with more tweaks. More configuration variables are needed. You evolve to &lt;em&gt;config files&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Config files allow you to go bigger. More workloads, all running on the same base code! But suddenly, your base code doesn't quite do the thing you need it to. Suddenly your config values, no matter how nested and complex, can't get you to where you need to be. That's when the whispers start.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;"These config files let me inject functionality into code. Code is functionality. In fact, why couldn't I just inject a little code from a config file. Then I wouldn't even need to make a pull request."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It is at this precise moment that you need to SNAP OUT OF IT. Much like Frodo with the One Ring, I'm being your Samwise Gamgee right now. Stop. It.&lt;/p&gt;

&lt;p&gt;Look at where you are. You were just giddy about being able to "inject" code into your app without "having" to go through the "pain" of making a pull request. Do you see what the config file whispers have done to you?&lt;/p&gt;

&lt;h2&gt;
  
  
  Beware the Sentient Config
&lt;/h2&gt;

&lt;p&gt;I &lt;em&gt;hope&lt;/em&gt; that you've only experienced the brief wondering if hardcoding Python in YAML strings is really that bad. I hope you haven't gone down the road that some go: the road to mini-programming-languages-as-config.&lt;/p&gt;

&lt;p&gt;If your config starts to become semi-executable, or--heaven forbid--Turing-complete, you may want to take another look at your architecture and see if there aren't some quality-of-life improvements to be made. Here's an example similar to some sentient config in a legacy app I worked on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"regex"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"(&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="s2"&gt;+&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;===================)"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"split"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"strip"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"replace"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&amp;amp;amp;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&amp;amp;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;(sobs in JSON)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Because, while the above isn't terrible, 1. it's possibly not under source control, and 2. it would be 5% more readable in actual code, and 3. it's an active gateway even more Turing. How long does this go on before you start to really crave an &lt;code&gt;if&lt;/code&gt; expression, or--OK, maybe not that, but perhaps just a few boolean &lt;code&gt;ands&lt;/code&gt; and &lt;code&gt;ors&lt;/code&gt;? Or, perhaps, &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;reduce&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt;, and a &lt;code&gt;first&lt;/code&gt;?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If a situation feels like it would be improved by allowing some custom code, the right solution is probably some custom code, done properly, and not more config.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Consider a Different Mindset
&lt;/h2&gt;

&lt;p&gt;At times like these, it's important to ask ourselves: "What are we doing here? What's our goal?"&lt;/p&gt;

&lt;p&gt;At least in our case, one issue we had been seeing is that our "custom code modules" were all bundled together in a package which the main app installed as a dependency, so anytime we wanted to tweak one specific custom module, we'd have to make that PR and deploy that new version, bump it in the main app, and bump that app's deployments, only to find out that we had a small bug and another round of PR's followed. This was understandably frustrating. So the workaround was more sentient config that we could configure live, on the fly, with fewer hoops to jump through.&lt;/p&gt;

&lt;p&gt;But, as we took a step back to reflect (right around the time we started drafting proposals for &lt;code&gt;if&lt;/code&gt; statement syntax), we realized that we could do with an inversion:&lt;/p&gt;

&lt;p&gt;Our "main app" became our "base library." Our "custom modules" became individual "main" modules that extended, expanded, and customized our new base library. And we gained the following benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We dropped one or two bump-and-redeploy cycles per code change.&lt;/li&gt;
&lt;li&gt;We were able to really hone and polish our new "base library" because it wasn't yet overcomplicated by so many config variables.&lt;/li&gt;
&lt;li&gt;Our base library stopped changing so frequently to accommodate new edge cases.&lt;/li&gt;
&lt;li&gt;The previous two points allowed us to dramatically and confidently increase our test coverage of the base library, knowing we wouldn't have to rewrite the tests in a month.&lt;/li&gt;
&lt;li&gt;Debugging, fixes, and new apps/module development saw huge speedups, because now our engineers weren't trying to figure out where the bug was in our awful, lightly documented, poorly tooled quasi-Lisp, they could quickly debug in Python code with Python tools like the grown, strong, independent software engineers we hired them to be.&lt;/li&gt;
&lt;li&gt;Onboarding got faster because new hires already knew Python and didn't have to learn a new "language" (with those quotes doing lots of deeply malice-filled work here).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Inherit with Caution
&lt;/h2&gt;

&lt;p&gt;I want you to hear me very clearly here. I am &lt;em&gt;not&lt;/em&gt; advocating for you to go forth and design up 52 layers of &lt;code&gt;BaseMiddleGenericAbstractMixin&lt;/code&gt; classes to override. Some inheritance may make sense. Some composition via components probably would go a long way. But, just because you're planning on "extending the base functionality" in your individual apps doesn't mean that it &lt;em&gt;has&lt;/em&gt; to be done via way too much inheritance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let Them Code
&lt;/h2&gt;

&lt;p&gt;Was there a setup cost to rework the main app into a base library? Sure. And there was even more cost to make sure it was a good, easy-to-use library with excellent documentation. But all of the productivity, cleanliness, and quality benefits mean that all that work was a sound investment in a stable future with a solid foundation to launch from.&lt;/p&gt;

&lt;p&gt;Any time you feel like you're running up against a wall because, "Augh, it would be so easy to fix in code, I just want to write some code here," the answer is &lt;em&gt;probably&lt;/em&gt; that you should be able to write your solution in code rather than config. Just... make sure that code is your team's main language and not your team's internally written "good-enough" config-garbage-slop-monster.&lt;/p&gt;

</description>
      <category>codequality</category>
    </item>
    <item>
      <title>Sticker Swap!</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Wed, 30 Dec 2020 00:28:41 +0000</pubDate>
      <link>https://forem.com/rpalo/sticker-swap-37cd</link>
      <guid>https://forem.com/rpalo/sticker-swap-37cd</guid>
      <description>&lt;p&gt;Hi!  I just got some DEV stickers and I've got some duplicates that I can't think of anywhere to stick them, but I don't want them to go to waste.  I'd love to send them to a new home and do a sticker swap with somebody or multiple somebodies.&lt;/p&gt;

&lt;p&gt;If you see a sticker above that speaks to you, and you want to trade for one of the stickers that you have (coding-related preferred 😊), shoot me a DEV message and we'll get a mail swap going.&lt;/p&gt;

</description>
      <category>stickers</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 25: Combo Breaker</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Fri, 25 Dec 2020 14:40:44 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-25-combo-breaker-1cfe</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-25-combo-breaker-1cfe</guid>
      <description>&lt;p&gt;Christmas Christmas Christmas Christmas Christmas!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/25" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, we finally made it! But we have to hack our way into our room by spoofing the key card’s cryptographic handshake.&lt;/p&gt;

&lt;p&gt;Thank you so very much for working through these with me. It’s been really fun seeing everybody’s solutions and working together on these. Whatever you are celebrating or not celebrating this season, I wish you a very blessed Christmas from our family and I hope your 2021 is filled with lots of love and joy. Thanks for being an amazing community and merry coding!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;TBD (on mobile now!)&lt;/p&gt;

&lt;p&gt;Merry Coding.&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 24: Lobby Layout</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Thu, 24 Dec 2020 15:25:41 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-24-lobby-layout-2hge</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-24-lobby-layout-2hge</guid>
      <description>&lt;p&gt;Christmas Eve is here!  Don't spend too much time on this one.  There's a holiday afoot!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/24" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, we've finally reached it to the resort at last.  Their lobby is being renovated and we're tasked with flipping tiles on an a hexagonal grid to figure out what the pattern is to look like.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;Updated 07:25AM 12/24/2020 PST.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haskell&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Merry Coding!&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 23: Crab Cups</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Thu, 24 Dec 2020 04:54:23 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-23-crab-cups-57k8</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-23-crab-cups-57k8</guid>
      <description>&lt;p&gt;Sorry, a bit late today.  Had my last day of work before the Christmas weekend, and I was on the road for a lot of the day.  Christmas Eve Eve!  So excited!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/23" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, that crab that we taught how to play cards has decided to teach us a game involving cups.  It's apparently a very clever crab.  Given cups labeled in a specific order, they are shuffled around based on an algorithm.  Our job is to keep track of them and not to let the crab hustle us.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;Updated 08:54PM 12/23/2020 PST.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haskell&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Merry Coding!&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 22: Crab Combat</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Tue, 22 Dec 2020 15:10:39 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-22-crab-combat-mmg</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-22-crab-combat-mmg</guid>
      <description>&lt;p&gt;We're getting close.  I can comfortably say that it's Christmas Eve Eve Eve.  Three Eves.  We Three Eves.  Actually, not a bad band name.  Sort of a holiday-themed Destiny's Child vibe.  Anyways, on to the puzzle.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/22" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, we have gotten so bored on our journey that we've inexplicably taught a crab how to play cards.  We're playing Combat (which I've played as War).  Whoever has the highest card each round takes both cards into the bottom of their deck and play proceeds until someone has all the cards.  Good luck!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;Updated 07:10AM 12/22/2020 PST.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haskell&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Merry Coding!&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 21: Allergen Assessment</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Mon, 21 Dec 2020 17:23:58 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-21-allergen-assessment-4mp5</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-21-allergen-assessment-4mp5</guid>
      <description>&lt;p&gt;Whew.  Finals weekend this weekend put me way off my pace.  I'm still trying to finish up the math one from a few days ago.  But I'm not giving up!  Four more days!  It looks like I'm not the only one either, with only two submissions yesterday!  It definitely was a tough one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/21" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, we're simply trying to feed ourselves, but it's not going to be easy.  The foods are listed with some of the allergens that are present.  But not &lt;em&gt;all&lt;/em&gt;, necessarily.  So.  Deal with that uncertainty. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;Updated 09:23AM 12/21/2020 PST.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Merry Coding!&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 20: Jurassic Jigsaw</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Sun, 20 Dec 2020 15:34:10 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-20-jurassic-jigsaw-ck5</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-20-jurassic-jigsaw-ck5</guid>
      <description>&lt;p&gt;Five more days!  Five more days!  Five more days!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/20" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, we're looking for Nessie!  Well, we're rotating, flipping, and reassembling tiles of pixels on the off-chance that we actually see something in what can only be described as a complexity &lt;em&gt;nightmare&lt;/em&gt;.  I'm not really sure how this one is going to get done without ridiculous amounts of looping, but that's why we get paid the big bucks! &lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;Updated 07:33AM 12/20/2020 PST.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Haskell&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ruby&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Merry Coding!&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 19: Monster Messages</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Sat, 19 Dec 2020 15:10:29 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-19-monster-messages-58ep</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-19-monster-messages-58ep</guid>
      <description>&lt;p&gt;Yesterday was officially the first day I failed to complete the puzzle on the day, due to a busy schedule.  I'm still planning on getting caught up and saving Christmas, but now I've got a bit of a hill climb.  How caught up are you?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/19" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, the elves have cooked up some sort of graph-based regular expression tree, and they need help parsing through it to get messages from their satellite in order to get pictures of a sea monster!  These elves sure do spend a lot of time coming up with their own custom interfaces and protocols. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;Updated 07:10AM 12/19/2020 PST.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haskell&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F#&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perl&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Merry Coding!&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 18: Operation Order</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Fri, 18 Dec 2020 15:43:41 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-18-operation-order-59lp</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-18-operation-order-59lp</guid>
      <description>&lt;p&gt;One more week until Christmas!  Hopefully all of the code is leaving you extra jolly rather than grinchy.  Let's take today to meditate on all of the blessings in our lives.  😊  Also, fun fact: Haskell was the top submitted language yesterday!  Go functional languages!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/18" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, is all about math.  Side note: I 100% knew what the video linked in the beginning of the instructions was going to be before I clicked on it.  Math is math!  Why would they change math!?  Well, today, it's no longer "Please Excuse My Dear Aunt Sally."  It's "Left to Right No Matter What.  P.S. Suck It."&lt;/p&gt;

&lt;p&gt;I'm excited to write this parser.  Let's get to it!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;Updated 07:43AM 12/18/2020 PST.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Haskell&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perl&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ruby&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Merry Coding!&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Advent of Code 2020 Solution Megathread - Day 17: Conway Cubes</title>
      <dc:creator>Ryan Palo</dc:creator>
      <pubDate>Thu, 17 Dec 2020 22:04:41 +0000</pubDate>
      <link>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-17-conway-cubes-262g</link>
      <guid>https://forem.com/rpalo/advent-of-code-2020-solution-megathread-day-17-conway-cubes-262g</guid>
      <description>&lt;p&gt;Yesterday was a big one!  I ended up just writing and writing and writing and looping and looping and looping.  And, if I'm being totally honest and transparent, my original solution before refactoring had a &lt;code&gt;goto&lt;/code&gt; in it.  Not great.  But it came out pretty good after some refactoring and pulling logic out into functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Puzzle
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://adventofcode.com/2020/day/17" rel="noopener noreferrer"&gt;today’s puzzle&lt;/a&gt;, we're back to Conway.  This time in the &lt;strong&gt;third dimension&lt;/strong&gt;.  We've got cubes that turn on and off depending on how many of their &lt;em&gt;26&lt;/em&gt; neighbors are also active.  And the rules for transition are pretty low, so I think this is going to be one blinky cube!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Leaderboards
&lt;/h2&gt;

&lt;p&gt;As always, this is the spot where I’ll plug any leaderboard codes shared from the community.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ryan's Leaderboard: 224198-25048a19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to generate your own leaderboard and signal boost it a little bit, send it to me either in a DEV message or in a comment on one of these posts and I'll add it to the list above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yesterday’s Languages
&lt;/h2&gt;

&lt;p&gt;Updated 02:04PM 12/17/2020 PST.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Haskell&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ruby&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Merry Coding!&lt;/p&gt;

</description>
      <category>adventofcode</category>
      <category>challenge</category>
    </item>
  </channel>
</rss>
