<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>The Green Shed</title>
    <description>Blog and photography from The Green Shed</description>
    <link>https://thegreenshed.org/</link>
    <item>
      <title>Model Railroading</title>
      <description>&lt;p&gt;This year I decided to try out model railroading as a hobby. I figure I’m old
enough at this point, and it’s a great intersection of my other hobbies (small
scale custom electronics, benchtop metal working, and 3D printing). What pushed
me over the edge was our old, boring, unreliable toy train that ran in a circle
under the Christmas tree. It never ran well, often got stuck on branches or
ornaments, and constantly got in the way of gifts. This felt like a great
excuse to go overboard in “solving” a problem.&lt;/p&gt;

&lt;div class="gallery"&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTIsInB1ciI6ImJsb2JfaWQifX0=--52b344e22b4154728140dc94f2b4e79f4d9240ea/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9748.jpeg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTIsInB1ciI6ImJsb2JfaWQifX0=--52b344e22b4154728140dc94f2b4e79f4d9240ea/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9748.jpeg" alt="IMG_9748" class="post-image" /&gt;&lt;/a&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MjEsInB1ciI6ImJsb2JfaWQifX0=--5036dd1f5a897124550b5b0dd7beb013e007fdb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9778.jpeg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MjEsInB1ciI6ImJsb2JfaWQifX0=--5036dd1f5a897124550b5b0dd7beb013e007fdb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9778.jpeg" alt="IMG_9778" class="post-image" /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Getting started, I knew I wanted some kind of kit, so that I didn’t have to
figure out every decision in advance. I figured I could start there and expand.
I also knew that computer control was a non-negotiable for me. If this hobby
didn’t lead to writing code, what good was it?&lt;/p&gt;

&lt;p&gt;At some point in the process of getting into model railroading you need to
consider which scale you want to work in. There are lots of pros/cons, but in
the end I decided on HO (Half O) scale. It hit the sweet spot for me, balancing
price, availability, space constraints, and so on.&lt;/p&gt;

&lt;p&gt;I also knew that I’d want to really be able to hack on this, if it was going to be fun for me. Some research led me to &lt;a href="https://en.wikipedia.org/wiki/Digital_Command_Control"&gt;DCC&lt;/a&gt;, and I knew I needed a DCC ready set if I was going to enjoy this.&lt;/p&gt;

&lt;p&gt;I ended up with a &lt;a href="https://amzn.to/4jfaVmx"&gt;Bachmann Trains Digital Commander kit&lt;/a&gt;.
(Note: at the time of writing the price is 25% more than I paid just a few weeks
ago. I’m not sure if I got lucky or it something else is going on.) This kit
was exactly what I was looking for. It came with enough track to make a layout
the size I wanted. All the track is Backmann’s EZ-Track style, in which the
ends of each piece slot/click together. And the locomotives and cars it comes
with are attractive and well built.&lt;/p&gt;

&lt;div class="gallery"&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NjksInB1ciI6ImJsb2JfaWQifX0=--219d7d1082d0dbefcdcf46632dc6db554103cb8e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--6dbe4b762dbd1e5987e8aa3a5445222ff5391c8d/81yDU-muLKL._AC_SL1500_.jpg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NjksInB1ciI6ImJsb2JfaWQifX0=--219d7d1082d0dbefcdcf46632dc6db554103cb8e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--6dbe4b762dbd1e5987e8aa3a5445222ff5391c8d/81yDU-muLKL._AC_SL1500_.jpg" alt="81yDU-muLKL._AC_SL1500_" class="post-image" /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;It also comes with an “E-Z Command Digital Control System,” which is a hardware
control panel that lets you program and control your Cabs on the layout. The
setup is not particularly intuitive, but the instructions were well written and
I was able to setup my train quickly and easily.&lt;/p&gt;

&lt;div class="gallery"&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NzMsInB1ciI6ImJsb2JfaWQifX0=--5416fa2bc0cd961c959e4fced10786b46e161a32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--6dbe4b762dbd1e5987e8aa3a5445222ff5391c8d/81qTBUgl9kL._AC_SL1500_.jpg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NzMsInB1ciI6ImJsb2JfaWQifX0=--5416fa2bc0cd961c959e4fced10786b46e161a32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--6dbe4b762dbd1e5987e8aa3a5445222ff5391c8d/81qTBUgl9kL._AC_SL1500_.jpg" alt="81qTBUgl9kL._AC_SL1500_" class="post-image" /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;While I was waiting for the train kit to arrive, I went to the hardware store
and purchased some lumber and built a basic platform for the layout to sit on.
My plan was to place our Christmas tree in the center, and have the train drive
around the top, around the tree. In the end I’m very happy with how the table
came out. The size ended up perfect for our space, with enough height
underneath for storing gifts.&lt;/p&gt;

&lt;div class="gallery"&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTYsInB1ciI6ImJsb2JfaWQifX0=--81c57ebf8257ace66e24030bfba8d04df50d24da/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9541%202.jpeg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTYsInB1ciI6ImJsb2JfaWQifX0=--81c57ebf8257ace66e24030bfba8d04df50d24da/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9541%202.jpeg" alt="IMG_9541 2" class="post-image" /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;As soon as I played with the hardware control panel I knew I needed a digital
controller I could code against. There was just no way I was going to be
satisfied with having to manually play with the controls every time. (Which
might make me an outlier in this hobby. It seems that manual control is
&lt;em&gt;the point&lt;/em&gt; for lots of hobbiests.)&lt;/p&gt;

&lt;p&gt;I landed on a DCC-EX controller, because it seemed to strike the balance I was
looking for in capability/complexity. I &lt;em&gt;could&lt;/em&gt; have tried to build my own,
but I wanted to get running quickly, and wasn’t going to get much fun out of
building an electronics kit and running code already built. So, I bought &lt;a href="https://dcc-ex.com/purchasing/dealers.html#gsc.tab=0"&gt;a
pre-built kit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The DCC-EX was easy to get connected. I had to cut/strip the wires from the
Bachmann controller, and then plug it all in. The setup process involves
connecting to a WiFi AP that the DCC-EX broadcasts, then changing some
settings.&lt;/p&gt;

&lt;p&gt;After getting the DCC-EX connected to my home wifi, I had to figure out how
to send commands to it. I started with an app from the App Store, just to make
sure everything was working. Sure enough, after connecting to the IP Address
of my controller, I could adjust the throttle and toggle the light on my cab
with no problem.&lt;/p&gt;

&lt;p&gt;Figuring out how to send commands from my own code took a bit longer, as the
documentation wasn’t clear about how to connect over WiFi. In the end it was as
easy as opening a TCP connection to the default port and sending text.&lt;/p&gt;

&lt;p&gt;(I got really hung up at this point by some stupid MacOS security restrictions
on connecting to devices on a local network. I couldn’t get anything to work in
iTerm. When I finally tried in Terminal.app everything worked flawlessly. After
some amount of debugging I was able to get iTerm working again.)&lt;/p&gt;

&lt;p&gt;Step one was to be able to send a few commands to start, stop, speed up, slow
down, etc. That was easy enough, and I put together a super basic set of
scripts to run that for me.&lt;/p&gt;

&lt;p&gt;But what I &lt;em&gt;really&lt;/em&gt; wanted was a fully automated layout, where the Cab speeds up
and slows down based on which sector it’s in. And for that, we were going to
need &lt;em&gt;sensors&lt;/em&gt;.&lt;/p&gt;

&lt;div class="gallery"&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTEsInB1ciI6ImJsb2JfaWQifX0=--3abc2455bb7cbe648464d1a593cc8e876186e4a5/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9733.jpeg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTEsInB1ciI6ImJsb2JfaWQifX0=--3abc2455bb7cbe648464d1a593cc8e876186e4a5/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9733.jpeg" alt="IMG_9733" class="post-image" /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;My first attempt at detecting Cab location tried hall effect sensors. These
cool devices are able to detect the presense of a magnetic field. Hooked up to
a basic microcontroller, and you can tell when a magnet is nearby. Put a
magnet under your rolling stock, and you can detect when the train comes by. At
least, that’s the theory.&lt;/p&gt;

&lt;p&gt;In practice the effective range of the sensors I bought was just &lt;em&gt;way&lt;/em&gt; too
small. I did some research, and while I probably could have figured out a way
to get hall effect sensors working, it was all much less reliable than I
wanted.&lt;/p&gt;

&lt;div class="gallery"&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTUsInB1ciI6ImJsb2JfaWQifX0=--db234444b30316137e650d73f6b97fc9b25240cf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9744.jpeg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTUsInB1ciI6ImJsb2JfaWQifX0=--db234444b30316137e650d73f6b97fc9b25240cf/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9744.jpeg" alt="IMG_9744" class="post-image" /&gt;&lt;/a&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTAsInB1ciI6ImJsb2JfaWQifX0=--0db25be579940697537960407fd68dd27089bba7/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9745.jpeg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTAsInB1ciI6ImJsb2JfaWQifX0=--0db25be579940697537960407fd68dd27089bba7/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9745.jpeg" alt="IMG_9745" class="post-image" /&gt;&lt;/a&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6OSwicHVyIjoiYmxvYl9pZCJ9fQ==--5bb82940aa126360b9e8dcccbd9cd5a852f9bbcb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--b86831e948fafbc792206ba75a2835746b97ce07/7316E8A4-3610-4694-BD9C-B07D11874E08.JPG"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6OSwicHVyIjoiYmxvYl9pZCJ9fQ==--5bb82940aa126360b9e8dcccbd9cd5a852f9bbcb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--b86831e948fafbc792206ba75a2835746b97ce07/7316E8A4-3610-4694-BD9C-B07D11874E08.JPG" alt="7316E8A4-3610-4694-BD9C-B07D11874E08" class="post-image" /&gt;&lt;/a&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NywicHVyIjoiYmxvYl9pZCJ9fQ==--5884671851a2f6a4a21d0df72ed5bfbe846f83de/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--b86831e948fafbc792206ba75a2835746b97ce07/EEC4108A-8A19-4BEA-B6C3-EEB026DA17FD.JPG"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NywicHVyIjoiYmxvYl9pZCJ9fQ==--5884671851a2f6a4a21d0df72ed5bfbe846f83de/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--b86831e948fafbc792206ba75a2835746b97ce07/EEC4108A-8A19-4BEA-B6C3-EEB026DA17FD.JPG" alt="EEC4108A-8A19-4BEA-B6C3-EEB026DA17FD" class="post-image" /&gt;&lt;/a&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6OCwicHVyIjoiYmxvYl9pZCJ9fQ==--67c9f2358d1b46d4846e95bfcf8433eea6650e09/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--b86831e948fafbc792206ba75a2835746b97ce07/9809D126-6E99-473D-B0BD-6D6D3792ADD7.JPG"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6OCwicHVyIjoiYmxvYl9pZCJ9fQ==--67c9f2358d1b46d4846e95bfcf8433eea6650e09/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJzYXZlciI6eyJzdHJpcCI6dHJ1ZX19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--b86831e948fafbc792206ba75a2835746b97ce07/9809D126-6E99-473D-B0BD-6D6D3792ADD7.JPG" alt="9809D126-6E99-473D-B0BD-6D6D3792ADD7" class="post-image" /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;For my second attempt, I went with Infrared Reflection sensors. These little
devices put an IR &lt;em&gt;emitter&lt;/em&gt; side-by-side with an IR &lt;em&gt;sensor&lt;/em&gt;, divided by a
thin piece of plastic. When an object comes nearby, the reflection is
brighter, and the sensor can “detect” an object being close. The sensors I
got had both a tunable digital output pin, as well as an analog output that
allows you to view the raw voltage coming off the sensor, which lets you tune
it in software.&lt;/p&gt;

&lt;p&gt;I hooked up the sensor to an ESP32 (I’m fond of these Feather boards from
Adafruit, but any ESP32 dev board would have worked), and — voilà! — I could
get real-time notifications when my train crossed sector boundaries.&lt;/p&gt;

&lt;p&gt;All in all I setup 3 IR sensors wired to a single ESP32 board, which read the
incoming data, computed a rolling average, and posted it once per second to
my primary controller.&lt;/p&gt;

&lt;p&gt;Oh, right, the controller! Being the crazy person that I am, I expanded my
server code into a &lt;a href="https://github.com/jeffmcfadden/signalbox"&gt;full-on Ruby gem&lt;/a&gt; that coordinates the activity on the layout
automatically. It runs a server that can receive info from clients (everything
from data updates from proximity sensors to status requests from the TUI), and
send commands to the DCC-EX controller.&lt;/p&gt;

&lt;p&gt;Once everything was in place and communicating properly, I was able to sit back
and watch as the Cab trundles around the bend, picks up power to make it up the
hill, and then dials it back as it comes down the hill.&lt;/p&gt;

&lt;p&gt;Now that I’ve managed to dip my toes into this hobby, I have a million ideas
for how to improve this layout. I’d like to completely redo the terrain around
the track layout I came up with. A redo would include better mountains/hills,
a ridge, a tunnel, and better handling of the inclines and declines for the
tracks. Oh, and more and better trees!&lt;/p&gt;

&lt;p&gt;After that, perhaps I can acquire a warehouse for some real expansion…&lt;/p&gt;

&lt;div class="gallery"&gt;
&lt;a href="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTcsInB1ciI6ImJsb2JfaWQifX0=--63af81b47a7b4a3974f10b88184c4b75822df4b1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9636.jpeg"&gt;&lt;img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTcsInB1ciI6ImJsb2JfaWQifX0=--63af81b47a7b4a3974f10b88184c4b75822df4b1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--5a1ec13bf1589a8eb3d6582dfa29c6db9e5e55f9/IMG_9636.jpeg" alt="IMG_9636" class="post-image" /&gt;&lt;/a&gt;
&lt;/div&gt;

</description>
      <pubDate>Sun, 28 Dec 2025 10:05:00 -0700</pubDate>
      <link>https://thegreenshed.org/posts/model-railroading</link>
      <guid>https://thegreenshed.org/posts/model-railroading</guid>
    </item>
    <item>
      <title></title>
      <description>&lt;p&gt;When I switched from Terminal.app to iTerm2 I had a noticeable decrease in battery life on my laptop. Trying out Ghostty now to see if it’s any better.&lt;/p&gt;
</description>
      <pubDate>Sun, 28 Dec 2025 09:50:36 -0700</pubDate>
      <link>https://thegreenshed.org/posts/452</link>
      <guid>https://thegreenshed.org/posts/452</guid>
    </item>
    <item>
      <title>Robin Sloan's newsletter is always such a treasure. October's Edition is no exception. And so many g</title>
      <description>&lt;p&gt;Robin Sloan’s newsletter is always such a treasure. &lt;a href="https://www.robinsloan.com/newsletters/long-rush/"&gt;October’s Edition&lt;/a&gt; is no exception. And so many great links!&lt;/p&gt;
</description>
      <pubDate>Fri, 17 Oct 2025 09:04:42 -0700</pubDate>
      <link>https://thegreenshed.org/posts/robin-sloans-newsletter-is-always</link>
      <guid>https://thegreenshed.org/posts/robin-sloans-newsletter-is-always</guid>
    </item>
    <item>
      <title>It's great that remote MCP has kick-started a new wave of open and easy APIs for lots of services, b</title>
      <description>&lt;p&gt;It’s great that remote MCP has kick-started a new wave of open and easy APIs for lots of services, but JSON RPC, really? Did we learn nothing from the SOAP era? Bog standard HTTP was &lt;em&gt;right there&lt;/em&gt;. SMH&lt;/p&gt;

&lt;p&gt;Why must we repeat our mistakes like this?&lt;/p&gt;
</description>
      <pubDate>Sun, 03 Aug 2025 09:53:14 -0700</pubDate>
      <link>https://thegreenshed.org/posts/its-great-that-remote-mcp</link>
      <guid>https://thegreenshed.org/posts/its-great-that-remote-mcp</guid>
    </item>
    <item>
      <title>Interesting side effect of our engineers building rules files for Claude Code is that we have an exc</title>
      <description>&lt;p&gt;Interesting side effect of our engineers building rules files for Claude Code is that we have an excellent, concise set of our own coding styles, patterns, and preferences now — the best one we’ve ever had, in fact.&lt;/p&gt;

&lt;p&gt;The best development practices are more valuable than they’ve ever been.&lt;/p&gt;
</description>
      <pubDate>Tue, 08 Jul 2025 07:36:06 -0700</pubDate>
      <link>https://thegreenshed.org/posts/interesting-side-effect-of-our</link>
      <guid>https://thegreenshed.org/posts/interesting-side-effect-of-our</guid>
    </item>
    <item>
      <title>Got frustrated by OpenAI Codex not working (was probably user error on my part), and thought, "How h</title>
      <description>&lt;p&gt;Got frustrated by OpenAI Codex not working (was probably user error on my part), and thought, “How hard could it be to make one of these things?”&lt;/p&gt;

&lt;p&gt;Turns out, not that hard(ish).&lt;/p&gt;

&lt;p&gt;This weekend I built ‘genie’, a cli coding agent written in Ruby: &lt;a href="https://github.com/jeffmcfadden/genie_cli"&gt;github.com/jeffmcfad…&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Sun, 15 Jun 2025 20:55:53 -0700</pubDate>
      <link>https://thegreenshed.org/posts/got-frustrated-by-openai-codex</link>
      <guid>https://thegreenshed.org/posts/got-frustrated-by-openai-codex</guid>
    </item>
    <item>
      <title>GenAI can be so incredibly useful and powerful in contexts where information/best practices are wide</title>
      <description>&lt;p&gt;GenAI can be so incredibly useful and powerful in contexts where information/best practices are widely known and disseminated but potentially tricky to apply to a specific use-case.&lt;/p&gt;

&lt;p&gt;I had an incredible ChatGPT session yesterday applying some Deep Work / Focus / Strategy concepts to specific situations at work. Left with some concrete next-steps for myself plus a bunch of new concepts to research more.&lt;/p&gt;
</description>
      <pubDate>Tue, 06 May 2025 08:28:18 -0700</pubDate>
      <link>https://thegreenshed.org/posts/genai-can-be-so-incredibly</link>
      <guid>https://thegreenshed.org/posts/genai-can-be-so-incredibly</guid>
    </item>
    <item>
      <title>Oh this is so good.</title>
      <description>&lt;p&gt;Oh this is so good.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://alex.party/posts/2025-05-05-the-future-of-web-development-is-ai-get-on-or-get-left-behind/"&gt;alex.party/posts/202…&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Mon, 05 May 2025 15:37:37 -0700</pubDate>
      <link>https://thegreenshed.org/posts/oh-this-is-so-good</link>
      <guid>https://thegreenshed.org/posts/oh-this-is-so-good</guid>
    </item>
    <item>
      <title>If you are replacing great engineers with AI, please let me know.</title>
      <description>&lt;p&gt;If you are replacing great engineers with AI, please let me know.&lt;/p&gt;

&lt;p&gt;We’d love to hire those great engineers!&lt;/p&gt;
</description>
      <pubDate>Wed, 30 Apr 2025 10:31:52 -0700</pubDate>
      <link>https://thegreenshed.org/posts/if-you-are-replacing-great</link>
      <guid>https://thegreenshed.org/posts/if-you-are-replacing-great</guid>
    </item>
    <item>
      <title>Today I discovered Pandoc. My life will never be the same.</title>
      <description>&lt;p&gt;Today I discovered Pandoc. My life will never be the same.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pandoc.org/"&gt;pandoc.org&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 29 Apr 2025 17:58:39 -0700</pubDate>
      <link>https://thegreenshed.org/posts/today-i-discovered-pandoc-my</link>
      <guid>https://thegreenshed.org/posts/today-i-discovered-pandoc-my</guid>
    </item>
    <item>
      <title>Absolutely rooting for Yuki this weekend.</title>
      <description>&lt;p&gt;Absolutely rooting for Yuki this weekend.&lt;/p&gt;
</description>
      <pubDate>Thu, 03 Apr 2025 19:32:00 -0700</pubDate>
      <link>https://thegreenshed.org/posts/absolutely-rooting-for-yuki-this</link>
      <guid>https://thegreenshed.org/posts/absolutely-rooting-for-yuki-this</guid>
    </item>
    <item>
      <title>&gt; What’s particularly ironic is that today’s Google has become exactly what its founders warned agai</title>
      <description>&lt;blockquote&gt;
  &lt;p&gt;What’s particularly ironic is that today’s Google has become exactly what its founders warned against in their 1998 paper: an advertising company whose business model fundamentally conflicts with serving users’ needs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;“The Mediocrity of Modern Google”&lt;/td&gt;
      &lt;td&gt;&lt;a href="https://om.co/2025/03/29/the-mediocrity-of-modern-google/"&gt;om.co/2025/03/2…&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
      <pubDate>Sun, 30 Mar 2025 12:15:18 -0700</pubDate>
      <link>https://thegreenshed.org/posts/whats-particularly-ironic-is-that</link>
      <guid>https://thegreenshed.org/posts/whats-particularly-ironic-is-that</guid>
    </item>
    <item>
      <title>The Gemma 3 models are just crazy good for their size.</title>
      <description>&lt;p&gt;The Gemma 3 models are just crazy good for their size.&lt;/p&gt;

&lt;p&gt;Apple should be partnering with Google to provide these models for their on-device usage.&lt;/p&gt;
</description>
      <pubDate>Wed, 26 Mar 2025 16:54:26 -0700</pubDate>
      <link>https://thegreenshed.org/posts/the-gemma-models-are-just</link>
      <guid>https://thegreenshed.org/posts/the-gemma-models-are-just</guid>
    </item>
    <item>
      <title>Not sure how it is that I hadn’t come across this (ReAct / Thought, Action, PAUSE, Observation) befo</title>
      <description>&lt;p&gt;Not sure how it is that I hadn’t come across &lt;a href="https://til.simonwillison.net/llms/python-react-pattern"&gt;this&lt;/a&gt; (ReAct / Thought, Action, PAUSE, Observation) before today, but it suddenly made some Gemma 3 experiments I was playing with tremendously more reliable.&lt;/p&gt;

&lt;p&gt;LocalLLMs are fun!&lt;/p&gt;
</description>
      <pubDate>Wed, 26 Mar 2025 16:44:02 -0700</pubDate>
      <link>https://thegreenshed.org/posts/not-sure-how-it-is</link>
      <guid>https://thegreenshed.org/posts/not-sure-how-it-is</guid>
    </item>
    <item>
      <title>For me, the act of writing code provides a certain kind of feedback mechanism, helping me gauge how </title>
      <description>&lt;p&gt;For me, the act of writing code provides a certain kind of feedback mechanism, helping me gauge how well I truly understand the problem I’m trying to solve. Increased friction/resistance in finding the best solution in code means I’m out of phase with the problem in some way, and need to think on it more. Code generation tools modify or eliminate that feedback loop, and I find that disorienting at best.&lt;/p&gt;
</description>
      <pubDate>Mon, 03 Mar 2025 09:42:35 -0700</pubDate>
      <link>https://thegreenshed.org/posts/for-me-the-act-of</link>
      <guid>https://thegreenshed.org/posts/for-me-the-act-of</guid>
    </item>
    <item>
      <title>It's always great when present me gets to thank past me for taking notes (and putting them into the </title>
      <description>&lt;p&gt;It’s always great when present me gets to thank past me for taking notes (and putting them into the readme) on how to debug some library I made overly complicated.&lt;/p&gt;
</description>
      <pubDate>Wed, 19 Feb 2025 11:49:20 -0700</pubDate>
      <link>https://thegreenshed.org/posts/its-always-great-when-present</link>
      <guid>https://thegreenshed.org/posts/its-always-great-when-present</guid>
    </item>
    <item>
      <title>Being able to run LLMs locally is really, really cool. Once products catch up with the functionality</title>
      <description>&lt;p&gt;Being able to run LLMs locally is really, really cool. Once products catch up with the functionality available there are going to be some really cool use-cases.&lt;/p&gt;
</description>
      <pubDate>Sat, 15 Feb 2025 16:08:54 -0700</pubDate>
      <link>https://thegreenshed.org/posts/being-able-to-run-llms</link>
      <guid>https://thegreenshed.org/posts/being-able-to-run-llms</guid>
    </item>
    <item>
      <title>"The hardest working font in Manhattan"</title>
      <description>&lt;p&gt;“&lt;a href="https://aresluna.org/the-hardest-working-font-in-manhattan/"&gt;The hardest working font in Manhattan&lt;/a&gt;”&lt;/p&gt;

&lt;p&gt;What a fun deep-dive into this old, seemingly ubiquitous and hard-working font. Exactly the kind of thing Blogs are best at.&lt;/p&gt;
</description>
      <pubDate>Sat, 15 Feb 2025 13:29:06 -0700</pubDate>
      <link>https://thegreenshed.org/posts/the-hardest-working-font-in</link>
      <guid>https://thegreenshed.org/posts/the-hardest-working-font-in</guid>
    </item>
    <item>
      <title>Pro Tip: If you're going to use ChatGPT during your tech interview...</title>
      <description>&lt;p&gt;Pro Tip: If you’re going to use ChatGPT during your tech interview…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Don’t do that.&lt;/li&gt;
  &lt;li&gt;Maybe don’t make the mistake of sharing your screen with ChatGPT on the top window, and read the answers verbatim.&lt;/li&gt;
&lt;/ol&gt;
</description>
      <pubDate>Tue, 04 Feb 2025 15:37:29 -0700</pubDate>
      <link>https://thegreenshed.org/posts/pro-tip-if-youre-going</link>
      <guid>https://thegreenshed.org/posts/pro-tip-if-youre-going</guid>
    </item>
    <item>
      <title>This interview with Ted Chiang is so, so good.</title>
      <description>&lt;p&gt;This interview with Ted Chiang is so, so good.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lareviewofbooks.org/article/life-is-more-than-an-engineering-problem"&gt;lareviewofbooks.org/article/l…&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Sun, 02 Feb 2025 18:50:15 -0700</pubDate>
      <link>https://thegreenshed.org/posts/this-interview-with-ted-chiang</link>
      <guid>https://thegreenshed.org/posts/this-interview-with-ted-chiang</guid>
    </item>
  </channel>
</rss>
