<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://catskull.net/feed.xml" rel="self" type="application/atom+xml" /><link href="https://catskull.net/" rel="alternate" type="text/html" /><updated>2026-06-12T16:27:29+00:00</updated><id>https://catskull.net/feed.xml</id><title type="html">catskull.net</title><subtitle>mostly harmless
</subtitle><author><name>catskull</name></author><entry><title type="html">Vices</title><link href="https://catskull.net/vices.html" rel="alternate" type="text/html" title="Vices" /><published>2026-06-03T22:36:37+00:00</published><updated>2026-06-03T22:36:37+00:00</updated><id>https://catskull.net/vices</id><content type="html" xml:base="https://catskull.net/vices.html"><![CDATA[<blockquote>
  <p>A vice is a practice, behaviour, habit or item generally considered morally wrong in the associated society. In more minor usage, vice can refer to a fault, a negative character trait, a defect, an infirmity, or a bad or unhealthy habit.</p>
  <ul>
    <li><a href="/wiki#vice">Wikipedia</a></li>
  </ul>
</blockquote>

<p>One of my friends was telling me that his team makes fun of him for using light mode in apps. Shortly after, I was browsing some Cloudflare docs and noticed that they store a <code class="language-plaintext highlighter-rouge">preferred-color-scheme</code> URL parameter which, besides being awful engineering, could potentially dox someone for their theme preference. I joked we might as well store all our dirty secrets in URL parameters which got me thinking about my own vices.</p>

<p>Here are some of my vices.</p>

<h3 id="dr-pepper">Dr. Pepper</h3>
<p>I drink way, way, way too much Dr. Pepper. I’m up to like 4 cans a day which is a ton of sugar and can’t be very healthy. I’ve always been a soda drinker but it was usually only one maybe two a day, but when I was substitute teaching school I got in a bad habit. Some of the schools actually had soda fountains in the teacher’s lounge with Dr. P on tap and I would just chug it all day. When you’re getting paid like $50 for a day’s work it feels like I should be taking full advantage of every perk. When I started software development again full time I guess my intake just stayed the same. I drink it room temperature which I think makes it easier to chug and less refreshing, I think if I cooled it I wouldn’t drink as much, but I used to have a mini fridge in my office and it was so loud I got rid of it.</p>

<h3 id="food">Food</h3>
<p>I don’t and haven’t ever struggled with weight, but I have pretty bad food hygiene. Most days I eat nothing all day until late afternoon or early evening. I guess I could rebrand and call it “intermittent fasting” since that’s “cool”, but it’s really just laziness. Then when I do eat, I just grab whatever like a slice of bread or a banana. I think I need more nutrients.</p>

<h3 id="screen-time">Screen Time</h3>
<p>I’ve gotten in a bad habit with YouTube Shorts. During the pandemmy I got into TikTok but eventually I deleted the app. A few months ago I started getting sucked into short form video on YouTube. It’s just lame. But after a day’s work my brain feels kind of cooked and zoning out for an hour or two (or three or four) is just something that is easy to do. Generally speaking I’m probably too addicted to my phone other times, checking Slickdeals, Discord, Feeed, Hacker News, etc. I wish I read more. I play some amount of video games but honestly it doesn’t come naturally to me so it feels more wholesome. I play the games with the intent of beating them and after I do, I write up a short review. You can read my <a href="/games-i-played-in-2024.html">list from 2024</a> or <a href="/every-game-I-beat-in-2025.html">from 2025</a>.</p>

<h3 id="lack-of-mindfulness">Lack of Mindfulness</h3>
<p>I don’t really get super deep into thought very often. I’m generally closed off to new ideas and approach them with skepticism and suspicion. I’m biased <em>against</em> new things. Maybe that’s just age.</p>

<h3 id="sedentary-lifestyle">Sedentary Lifestyle</h3>
<p>I don’t get enough exercise. Like almost none. Again, I’m not physically <em>unhealthy</em> but I also don’t think I’m super <em>healthy</em>. I used to go on walks more and I like that, and I think movement helps get my mind primed which helps with the mindfulness. A few years ago I started doing some basic weight lifting and I actually saw pretty immediate results. It is hard to find the time to exercise but some amount of basic exercise and situps and pushups feels achievable in my home office. We’ve decided the Bullpen HQ will have a gym with a rowing machine so maybe one day it will be easier. Now that my kids are out of school for the summer, I really have to hide in my office. If they see me, they ask me for things and I refuse to be rude to them, but really my priority focus needs to be work during the day. We’re also getting into the days where it’s breaking 100°F (38°C) and will stay in the 90’s from sunup to sundown which makes me want to go outside less.</p>

<h3 id="fidgeting-with-my-beard">Fidgeting with my beard</h3>
<p>I compulsively play with my beard. I don’t think it’s the ultimate social <em>faux pas</em>, but it’s kind of strange. Most of the time when I’m alone it’s not a problem but I also do it in public a lot. I don’t think it’s super sanitary. I’ve always done this in some form.</p>

<h3 id="the-end">The End</h3>

<p>That’s all I can think of right now. I think writing these down and putting in even the slightest amount of effort will go a long way. Should I set a goal to drink no more than two cans of Dr. Pepper a day? Should I start being more disciplined and exercise every day? I’m not sure if I can or even really want to pull it off. Maybe I need to find a good book I can read while I’m laying with my kids as they fall asleep. If you have any tips on very small, incremental changes I could make or that have worked for you, please let me know!</p>]]></content><author><name>catskull</name></author><category term="meta" /><category term="lore" /><summary type="html"><![CDATA[A vice is a practice, behaviour, habit or item generally considered morally wrong in the associated society. In more minor usage, vice can refer to a fault, a negative character trait, a defect, an infirmity, or a bad or unhealthy habit. Wikipedia]]></summary></entry><entry><title type="html">Quantum Fiber with OpenWrt on a GMKtec NucBoxG9</title><link href="https://catskull.net/quantum-fiber-with-openwrt-on-a-gmktec-nucboxg9.html" rel="alternate" type="text/html" title="Quantum Fiber with OpenWrt on a GMKtec NucBoxG9" /><published>2026-05-11T19:55:15+00:00</published><updated>2026-05-11T19:55:15+00:00</updated><id>https://catskull.net/quantum-fiber-with-openwrt-on-a-gmktec-nucboxg9</id><content type="html" xml:base="https://catskull.net/quantum-fiber-with-openwrt-on-a-gmktec-nucboxg9.html"><![CDATA[<p><a href="/openwrt-centurylink-fiber-mikrotik.html">Back in January 2025, I got OpenWrt running on a MikroTik Hex S and detailed the setup process for CenturyLink fiber</a>. Since then a few things have changed.</p>

<h2 id="the-backstory">The Backstory</h2>
<p>The short story for my neck of the woods (Southern Utah) is that originally, we had a local DSL provider named “Qwest”. You can still see random Qwest logos on some of the infrastructure around here. <a href="https://en.wikipedia.org/wiki/Lumen_Technologies#2010_merger_with_Qwest" target="_blank">According to Wikipedia↗</a>, in 2010 Qwest merged with CenturyLink. From that point on, CenturyLink has been one of two ISPs in my area and is the only one I’ve ever used. They’re “not great, not terrible” generally speaking. Since I’ve moved back to St. George about 5 years ago, I’ve happily paid for their gigabit fiber and it’s really been quite reliable. I really can’t recall a single outage.</p>

<p>Then, as businesses do be doing business, CenturyLink rebranded themselves as “Lumen Technologies” and also rebranded their residential fiber to “Quantum Fiber”. It seems like the only real reason you’d change the name of an established business is to distance yourself from negative brand impressions. Imagine if Nike changed their name. I’m sure there were legal shenanigans as well, such as maneuvering to get out of “price for life” guarantees they’d sold, but maybe that’s just overly cynical. Then, in 2025, Lumen sold “95%” of Quantum Fiber to AT&amp;T. I’m not entirely sure how this got past the FCC and the FTC, but it did. Long story short: I now have AT&amp;T internet. I don’t feel great about that, but it’s not like the track record was pristine before. I love the idea of municipal fiber or at least small, locally owned ISPs, but apparently we’re living in some form of private-equity ultra-conglomerated late-stage capitalism so it’s just the way things will be until the market can outcompete conglomerates. I personally have optimism that the technology will progress to allow more competition, but I don’t have any strong arguments there.</p>

<p>All things said, my service has been reliable, a decent price: $75/month that is now somehow $80/month for more-or-less symmetrical 1 gig fiber. The other option in my neighborhood offers 1 gig fiber as well for $75/month “price for life” so it’s about sixes either way.</p>

<h2 id="the-bufferbloat-problem">The Bufferbloat Problem</h2>
<p>I’d been running the MikroTik router for a while, and it was really “fine”. It seemed like it limited my bandwidth to just about 600 Mbps up/down, which I deemed “okay”. But it only has an 880MHz MediaTek MT7621A which is pretty anemic on a busy home network. I’ll have kids online gaming, multiple streams running to TVs and tablets, HomePods streaming music, and on top of that I work from home full time and really just need a “balls to the walls” home internet connection. Even infrequent quality issues on a work call can really look unprofessional and limit my ability to do my job to my full abilities. I wanted something better. With summer just around the corner where my network would be heavily used, I decided the time to improve it was now.</p>

<p>It finally came to a head one day when I decided to run some <a href="https://en.wikipedia.org/wiki/Bufferbloat" target="_blank">bufferbloat↗</a> tests using <a href="https://www.waveform.com/tools/bufferbloat" target="_blank">Waveform’s browser-based tool↗</a> and I got a solid <strong>F</strong>. I investigated a few options in OpenWrt. The best solution is to use the <a href="https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm" target="_blank">Smart Queue Management↗</a> package to run the “cake” queuing discipline. Look, I don’t fully understand what all this means or how it works in the nitty gritty, but I understand it’s just the modern Linux solution to the bufferbloat problem. Have you ever been downloading a large file at your full ISP bandwidth and noticed your internet seems to drop out? That’s bufferbloat. More subtly, if you’re using ping-intensive applications like online gaming and video conferencing, and someone starts a big download like an OS update, HD video stream, or game download, those services’ ping will suddenly spike and degrade performance until, just as magically as it appeared, the issue vanishes when the download finishes. Running an SQM algorithm like cake will reserve a chunk of your <em>actual</em> ISP download/upload speeds and <em>never use them</em>. It literally decreases your maximum download speed in order to make sure the upstream queue (ISP) never fills and can completely eliminate the bufferbloat problem. If you live alone or only have a single device using the network at a time, this is all probably irrelevant. But if you are like the majority of modern households with multiple people using multiple devices to do almost everything all at once, it can be a real problem. Which is why sacrificing ~5% of your theoretical ISP limit is a fair tradeoff. However, all this queue management stuff runs directly on the CPU, so the CPU becomes the real bottleneck when trying to run some form of queue management. Most consumer networking hardware includes only the bare minimum specs to support whatever label marketing needs to slap on it such as “Gigabit”. My MikroTik just didn’t have the CPU overhead to reliably run any queue management without absolutely tanking my network speeds.</p>

<h2 id="the-router">The Router</h2>
<p>I spent the better part of an afternoon searching for a great standalone router. I don’t want or need my router to have any wireless hardware on it. I use a set of dedicated mesh APs and I want to be able to swap them out without my actual network going down. I just want the separation of concerns, I guess. It feels much more robust. Initially I was leaning towards one of the Banana Pi router boards but they were all out of stock and the ones that existed were just not worth the inflated prices. I thought about building some kind of small form factor PC but that felt out of my price range. I was looking to spend around $150-$200 and I wanted the most bang-for-buck possible. Things like 2.5GbE+ were desirable for future proofing, if possible. I almost pulled the trigger on a GL.iNet Flint 2 but I just really really did not want to pay for something with WLAN hardware, and at $169 it just felt overkill. The issue is there’s not a great middle ground between the bare-minimum marketing-approved hardware and totally overkill “prosumer” gear like Ubiquiti. Heck, even the entry level Ubiquiti EdgeRouter X has the same CPU as my MikroTik! There really wasn’t a great single option.</p>

<p>I was eventually led to the “mini PC” space. These are pretty popular right now, and seem to be about a dime a dozen with a new model coming out weekly. However, depending on the model, they can be attained for my target price range. Specifically, mini PCs running the Intel N150 platform are all the rage, and they generally seem to be great bang for buck and have only 6 watts of idle power consumption which is acceptable for an always-on appliance. Most even have dual 2.5G NICs. An important limitation for my selection was something with <em>Intel</em> NICs, not Realtek. I just don’t trust Realtek NICs. I’m sure for others they’d be fine but I wanted Intel!</p>

<p>The “NucBoxG9” from Shenzhen-based GMKtec was released some time in early 2025 and is actually billed as an “NVMe mini NAS”. Its standout feature is 4x M.2 NVMe slots that you’re supposed to fill up with SSDs. However, actually doing so is a thermal nightmare, <a href="https://www.jeffgeerling.com/blog/2025/almost-perfect-mini-nas-my-mini-rack/" target="_blank">most detailed by the venerable Jeff Geerling↗</a>. For my use case, I don’t care about using SSDs at all. The built-in 64GB eMMC storage is way more than an OpenWrt install would ever need. Most notably, it has two 2.5 GbE Intel i226-V NICs.</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>I'll buy it at a high price<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/quantum-fiber-with-openwrt-on-a-gmktec-nucboxg9/ebay.jpg" alt="ebay listing of the gmktec g9" />
	
	</div>
</figure>

<p>It seems that, at the time of writing, it’s actually out of stock now and unproduced, so unfortunately if you’re hoping to follow along exactly you might be out of luck. However, I’m sure there are plenty of other N150 based mini PCs that would be equally suitable! I was able to score an open box unit on eBay for $170 (before tax) after a bit of back and forth with sending an offer. It arrived within a few days and I had it up and running quickly. It comes with a USB-C power adapter that outputs a constant 19 volts always. That is a huge spec violation and would very likely result in ruining whatever you plug it into that isn’t the NucBoxG9. Seriously, what were they smoking? If you’re going to do that, just use a barrel connector. I actually think it should be illegal. Fortunately, there’s another USB-C port that supports the regular USB-C power delivery stuff so I am powering mine with an Apple 96W USB-C power adapter. I actually cut the cord off the cursed power adapter right away and threw it in the trash because there’s a good chance one of my kids would try to plug it in to their iPad or Nintendo Switch. Again, <em>what were they thinking</em>.</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>Violate the spec, get the guillotine<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/quantum-fiber-with-openwrt-on-a-gmktec-nucboxg9/IMG_4942.jpeg" alt="the sketchy power adapter with it's cable cut" />
	
	</div>
</figure>

<h2 id="x86-openwrt">x86 OpenWrt</h2>
<p>OpenWrt started back in 2004 after Linksys was pressured into releasing the GPL’d source for the WRT54G router. Up until a few years ago, running OpenWrt on x86 just didn’t make a ton of sense and was, generally speaking, total overkill for any consumer setup. Heck, it still really is overkill most of the time. But Intel really knocked it out of the park with the N100/N150 and systems based on that platform have become ubiquitous in 2026. I’m happy to report that, more or less, x86 is now a first-class citizen in OpenWrt.</p>

<p>The one snag is that there’s no “installer”. Most Linux distros ship an installer ISO that can be booted to install the actual distro. OpenWrt just ships the raw filesystem ISO. You’re expected to just <code class="language-plaintext highlighter-rouge">dd</code> it onto your storage medium directly. Feels a bit clunky, but works pretty well. However, the G9’s eMMC is internal and soldered down, so I’d have to flash a bootable drive with some distro and then do it all manually. It’s really not that bad, but I decided to make my own bootable OpenWrt installer.</p>

<p>Alpine Linux is pretty cool and pretty small. It also has a great paradigm of “overlays” to make custom images based on the Alpine default. I decided to vibe code up an Alpine based OpenWrt installer. I won’t go too much into the details but it’s really just Alpine Linux, the latest OpenWrt image, and a bash script all bundled into one ISO that can be flashed and booted from any USB drive. Ideally it would be totally headless, but I didn’t make it that far before the G9 arrived and I haven’t been chuffed to work on it at all since. You can <a href="https://github.com/catskull/openwrt-x86-installer" target="_blank">check out the repo on GitHub↗</a> if you’re interested.</p>

<h2 id="the-migration">The Migration</h2>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>Test bench<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/quantum-fiber-with-openwrt-on-a-gmktec-nucboxg9/IMG_4941.jpeg" alt="the g9 on my desk" />
	
	</div>
</figure>

<p>I wanted minimal downtime as I switched out the routers. I had Claude ssh into my existing router and create a bash script with all the current config. It doesn’t seem like there’s a great way in native OpenWrt to fully back up all configs for a system transfer like this, at least not that I’ve found yet. Claude was also able to help me prune the generated restore script for things that were redundant or unused. I plugged the G9’s WAN into my LAN, and the LAN port into my MacBook and ran everything over ssh. It “just worked”. Then, I opened my server closet, unplugged the MikroTik, plugged in the G9, and everything came back online within a few minutes. No finagling! I couldn’t really believe how smoothly it all went. Like everything, it’s still a work in progress. Better automated backups and redundancies is an ongoing project.</p>

<p>From there, I did some additional installation and configuration of the SQM package. It needs a few runs with the Waveform bufferbloat tool to dial in the bandwidth settings exactly, and your network needs to be relatively quiet when doing it, so I had to wait for a more opportune time. Eventually I got things dialed in very well, and <a href="https://www.waveform.com/tools/bufferbloat?test-id=1e0e16c0-79a7-41fa-94cd-af42a8b749f2" target="_blank">now have an A+ score↗</a>.</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>A New Home<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/quantum-fiber-with-openwrt-on-a-gmktec-nucboxg9/IMG_4943.jpeg" alt="my network cabinet" />
	
	</div>
</figure>

<h2 id="shaka-when-the-walls-fell">“Shaka, when the walls fell”</h2>
<p>This all worked very well for about a month! However, yesterday (Mother’s Day in the USA) my internet randomly went down.</p>

<p>I tried the usual. Reset the ONT. Checked for OpenWrt updates. Rebooted the WAN connection. Nothing! I know that there are some kind of behind the scenes infrastructure upgrades happening with the Quantum Fiber rollout and further complicated by the AT&amp;T buyout, and I’ve feared this will break my amazing “bare metal” OpenWrt directly to the ONT setup for a while. The problem is there’s no way to get reliable information from the ISP. You can search through Reddit threads of people from all over the country talking about their specific issues, but it seems like the actual infrastructure is highly dependent on your specific area. A solution from Oklahoma isn’t necessarily the solution for Utah.</p>

<p>I checked for an outage in my area, but their website said there was none. After a quick Google, it seemed like Quantum Fiber was removing PPPoE in favor of IPoE (which is apparently just their way of saying DHCP). PPPoE is some relic of the dial-up internet days, IPoE just means regular old modern networking via DHCP. I flipped my config to see if DHCP would fix it. No dice. Neither DHCP nor PPPoE could connect to my ISP.</p>

<p>This is where I made a mistake. What I <em>should</em> have done is touched grass. But I work from home and really needed to have a working internet connection at 9AM Monday morning. What I did was call support. Huge mistake.</p>

<p>Thankfully, they answered pretty quickly and their offshore agent informed me my account had been migrated from PPPoE to IPoE and that they’d need to schedule a service visit to upgrade my modem to support IPoE. It sounded authoritative, but the earliest appointment wasn’t until Tuesday morning. It was the best option I had though, so I scheduled it and the agent was happy to get off the phone.</p>

<p>I decided to keep troubleshooting on my own, hoping to get something working before Tuesday. I called support again to see if there was anything on their end they could do. I suspected perhaps my router’s MAC address needed to be allowed to talk to the ONT? Still, it didn’t explain why it worked fine until randomly on a Sunday it did not. During this second call, I was informed there was actually an outage in my area. The support rep told me they couldn’t do anything during the outage and hung up. Checking their support page again, it showed an outage. For some reason I found their outage report to be suspicious but if the ISP is telling me it’s not going to work, I don’t think there’s anything I can do to make it work.</p>

<p>The next morning I checked the support page at 8AM. Outage still reported, so I packed up and headed to my Mom’s house to work for the morning. Ironically, she also has Quantum Fiber but hers was working fine. After a few meetings, I checked again and the outage was reportedly fixed. So I packed up and headed back home to see if it really was.</p>

<p>Still no dice. Neither PPPoE nor DHCP was working at all. I called support a third time, still answered by a “helpful” offshored agent who more or less told me the same thing as the first call - we needed to schedule a service visit to upgrade my modem. Explaining that I had no modem, just a router and the ONT didn’t yield any fruitful dialog trees. Helpfully, my existing appointment had been automatically cancelled once the outage was fixed, so we rescheduled it for Tuesday morning.</p>

<p>I decided to have Claude poke around in my router again to see if it could find anything useful. This was a pretty delicate dance since I had to hotspot on my phone for Claude to work, but still needed access to my LAN to get access to the router. I found that starting a Claude session with WiFi connected to my hotspot and then plugging in an ethernet adapter connected to my LAN allowed Claude to still work but also gave me LAN access. We tried flipping back and forth between PPPoE and DHCP. Claude determined DHCP was totally dead, no traffic or responses at all from WAN there. PPPoE was more interesting. There was a response from the ISP that my DSL account had been deactivated. Claude told me I needed to call support and tell them this was the response I was seeing.</p>

<p>Fourth time’s the charm, right? Well, it turns out it was. As soon as someone answered the phone, I knew it would be okay. It was a person who was apparently a native English speaker and wasn’t simply reading a script. I explained that after an outage, my PPPoE connection was returning an error about my DSL account being inactive. He put me on hold to talk to the “programming team”. It was a grueling 15-minute wait, but eventually he popped back on and asked which modem I was using. I explained I was using a custom router with OpenWrt but that it had been working fine with PPPoE up until yesterday. He let me know they were probably going to switch me to DHCP but would confirm with the programming team on the other line. After another short wait, he asked me to switch my router to DHCP. Immediately after doing so, my WAN came online, fully active. Apparently there was some switch they had to make on their end and just like that, it was fixed.</p>

<p>Lesson learned? <strong>If you call Quantum Fiber and someone answers that does not sound like they’re based in the US, just hang up and call again.</strong> I absolutely despise that this is the solution. It’s a training and skill issue, not a language barrier issue. I actually asked Mr. USA what the deal with that was, that this was my fourth call into support and the first one that was helpful at all. He explained that his group works regular 9-to-5-ish hours M-F. If you call outside of those hours, or if the call center is getting a lot of traffic, they might route the call to an offshore call center. So again, my takeaway is that you should wait until “normal business hours” in the US and then call. If an offshore agent answers the phone, just hang up and call back. Talking to the offshore support reps is a waste of time at best, and might have actually been what broke the existing working PPPoE setup when the outage was resolved.</p>

<p>It’s frustrating that this is the state of ISPs in the US. Gone is the local support. It’s all been lobotomized and commoditized at the cost of the end user. It would be so much better in my opinion if I’d called on a Sunday and they’d just said that their support would be back Monday morning and to try again later. Then, I would have touched grass and not wasted an hour of my time on the phone with support that was unable to actually help. Even from a business perspective, the result of the call being to schedule a technician to come to my house feels like a huge waste of resources. Why make a person schlep all the way to my house when the problem is totally solvable over the phone? It seems like the offshore call center is actually <em>losing</em> them money, not saving them any.</p>

<h2 id="the-working-config">The Working Config</h2>
<p><a href="https://minus273.org/project/openwrt-centurylink/" target="_blank">This page from minus273.org↗</a> really has what you need, both for PPPoE and IPoE, but I’ll reiterate my working setup just for posterity. Both configurations still need vLAN 201 tagging. That has not changed. Here’s the relevant config:</p>

<link rel="stylesheet" href="/assets/css/highlight.css" />

<figure class="code-frame img-frame " style="margin:0;">
	<div id="figure-container">
		
		<div class="github-code">
			

<div class="highlight highlight-source-shell"><pre>config device <span class="pl-s"><span class="pl-pds">'</span>wan_vlan<span class="pl-pds">'</span></span>
	option <span class="pl-c1">type</span> <span class="pl-s"><span class="pl-pds">'</span>8021q<span class="pl-pds">'</span></span>
	option ifname <span class="pl-s"><span class="pl-pds">'</span>eth1<span class="pl-pds">'</span></span>
	option vid <span class="pl-s"><span class="pl-pds">'</span>201<span class="pl-pds">'</span></span>
	option name <span class="pl-s"><span class="pl-pds">'</span>eth1.201<span class="pl-pds">'</span></span>
	option ipv6 <span class="pl-s"><span class="pl-pds">'</span>0<span class="pl-pds">'</span></span>
	option txqueuelen <span class="pl-s"><span class="pl-pds">'</span>5<span class="pl-pds">'</span></span>

config interface <span class="pl-s"><span class="pl-pds">'</span>wan<span class="pl-pds">'</span></span>
	option device <span class="pl-s"><span class="pl-pds">'</span>eth1.201<span class="pl-pds">'</span></span>
	option proto <span class="pl-s"><span class="pl-pds">'</span>dhcp<span class="pl-pds">'</span></span></pre></div>

		</div>
	</div>
</figure>

<h2 id="next-steps">Next Steps</h2>
<p>I’ve been dreaming of <em>redundant</em> ISPs for a while. If my neighborhood has two gigabit fiber providers, I kind of want to just have both of them to try and eliminate any possibility of outages. It just feels so overkill to pay for a whole other ISP just to not really use it ever. It’s possible to do some load balancing in OpenWrt, but to bond them to a single 2 gig connection requires an external server in a datacenter so that feels not worth it. I wonder if I could just get the other ISP set up to failover at any time, and then park the account until I needed it? A fifteen-minute outage while I log in to an account to reactivate it feels like a great disaster recovery scenario to me.</p>

<p>My G9 only has the two NICs, but it has M.2 PCIe lanes up the wazoo. You can buy an M.2 Intel i226 NIC for like $25 so I think it would be relatively doable on the software side to get another one set up. Physically, I’m not sure how it would all go together. If I went with my ready to go, inactive account plan, then I guess I would just swap a single ethernet cable between the fiber ONT and the cable modem which wouldn’t be too bad either. Ah, but then I’d need to also have the necessary config for either, which would presumably be at least removing the vLAN tagging.</p>

<p>On the other hand, I work from home and it’s my family’s sole income source. $150/month for redundant ISPs doesn’t seem out of the question, as crazy as that may be.</p>

<h2 id="the-end">The End</h2>
<p>This post has gone on for way too long already! I’m really happy with my new router. I really enjoy fiddling with OpenWrt. I’m casually eyeing some APs I could run it on as well to get rid of my proprietary Chinese setup, but so far there’s nothing with WiFi 7 that can run OpenWrt and I don’t really want to degrade my network. It might be worth it though, I’m really debating it!</p>]]></content><author><name>catskull</name></author><category term="diy" /><category term="home network" /><category term="centurylink" /><category term="quantum fiber" /><category term="openwrt" /><summary type="html"><![CDATA[Back in January 2025, I got OpenWrt running on a MikroTik Hex S and detailed the setup process for CenturyLink fiber. Since then a few things have changed.]]></summary></entry><entry><title type="html">Car Tools</title><link href="https://catskull.net/car-tools.html" rel="alternate" type="text/html" title="Car Tools" /><published>2026-05-04T21:31:15+00:00</published><updated>2026-05-04T21:31:15+00:00</updated><id>https://catskull.net/car-tools</id><content type="html" xml:base="https://catskull.net/car-tools.html"><![CDATA[<p>A few years ago, I became aware of Van Neistat’s YouTube channel. I really enjoy his extreme utilitarian Anderson-esque approach to filmmaking and storytelling. It seems like everything he owns, says, or does is extremely thought out and purposeful.</p>

<p>He has a few videos about “kits” he keeps for various things. He actually did two videos on kits for his car. Like him, I’m also in a codependent relationship with a Toyota Land Cruiser.</p>

<lite-youtube videoid="bihjKg3l4Ns" style="background-image: url('https://i.ytimg.com/vi/bihjKg3l4Ns/hqdefault.jpg');" title="Essential Car Toolkit (LandCruiser)">
  <a href="https://youtube.com/watch?v=bihjKg3l4Ns" class="lty-playbtn" title="Play Video">
    <span class="lyt-visually-hidden">Play Video: Essential Car Toolkit (LandCruiser)</span>
  </a>
</lite-youtube>
<script defer="" src="https://cdn.jsdelivr.net/npm/lite-youtube-embed@0.3.2/src/lite-yt-embed.min.js"></script>

<link href="https://cdn.jsdelivr.net/npm/lite-youtube-embed@0.3.2/src/lite-yt-embed.min.css" rel="stylesheet" />

<hr />

<lite-youtube videoid="pKUmSDYkiTU" style="background-image: url('https://i.ytimg.com/vi/pKUmSDYkiTU/hqdefault.jpg');" title="The Essential Tools in Every Vehicle (LandCruiser)">
  <a href="https://youtube.com/watch?v=pKUmSDYkiTU" class="lty-playbtn" title="Play Video">
    <span class="lyt-visually-hidden">Play Video: The Essential Tools in Every Vehicle (LandCruiser)</span>
  </a>
</lite-youtube>
<script defer="" src="https://cdn.jsdelivr.net/npm/lite-youtube-embed@0.3.2/src/lite-yt-embed.min.js"></script>

<link href="https://cdn.jsdelivr.net/npm/lite-youtube-embed@0.3.2/src/lite-yt-embed.min.css" rel="stylesheet" />

<p>Inspired by him, I decided to build out my own car tool kit. I wanted something practical and cheap that I could reasonably accomplish most home improvement and vehicle maintenance tasks with. I wanted just the essentials. Nothing more than is absolutely necessary. Here’s the kit I’ve carried for the last 4 years and a memo about each item.</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>Car Tools<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/car-tools/IMG_4994.jpeg" alt="My current tool kit spread out on a sheet." />
	
	</div>
</figure>

<h3 id="paracord">paracord</h3>
<p>Something to tie things (and not people) down with. I can’t remember if I’ve ever used it. It’s too big, gets tangly, and generally speaking I think was a mistake.</p>

<h3 id="electrical-tape">electrical tape</h3>
<p>Very useful. Not all electrical tape is created equal. This stuff is on the low end. But it’s still been very useful. It lasts pretty well even in dirty environments.</p>

<h3 id="multi-tool-folding-knife">multi-tool folding knife</h3>
<p>I just had this laying around and figured it might be useful. It has not been. Generally speaking, tools should follow the <a href="https://en.wikipedia.org/wiki/Unix_philosophy" target="_blank">Unix philosophy↗</a>. In my experience tools that do multiple things are compromised at everything and excel at nothing.</p>

<h3 id="ear-plugs-3-pairs">ear plugs (3 pairs)</h3>
<p>Very useful. These are silicone conical style that you can get at Harbor Freight for about $6 for 25 pairs. Protect your hearing.</p>

<h3 id="rubber-bands">rubber bands</h3>
<p>Very good to have on hand. My go-to cable management solution is rubber bands. Also cheap. They’ll get crusty over time so it’s probably best to keep them in an airtight container like a Ziploc bag.</p>

<h3 id="channel-lock-pliers">channel lock pliers</h3>
<p>Incredibly useful. I just used these to install my Mom’s washing machine a few days ago.</p>

<h3 id="side-cutters">side cutters</h3>
<p>Get good ones. Don’t cut things that will damage them. Great at clipping off zip ties.</p>

<h3 id="needle-nose-pliers">needle nose pliers</h3>
<p>One of the most useful general-purpose tools around. Great at pulling out carpet staples or nails. Also built-in cutters for things you don’t want to use the side cutters for.</p>

<h3 id="magnetic-level">magnetic level</h3>
<p>Possibly the GOAT. So useful. A level takes amateur effort and turns it into a professional result. Picture hanging. This one has a (very weak) magnet which is surprisingly useful. You do <em>not</em> have the ability to eyeball levelness, do not try.</p>

<h3 id="phillipsflathead-screwdriver">Phillips/flathead screwdriver</h3>
<p>Absolutely essential. In an ideal world we’d use <a href="https://en.wikipedia.org/wiki/Robertson_screw#Licensing" target="_blank">Robertson bits↗</a> instead of Phillips but oh well.</p>

<h3 id="blue-loctite">blue loctite</h3>
<p>I’ve used this several times. This is actually the only bottle I have that I know where it is. Whenever I screw something in that I don’t ever want to do again, I use a little bit. My friend told me that nail polish works just as well and I believe him. Nail polish seems to also be generally more useful all around.</p>

<h3 id="measuring-tape">measuring tape</h3>
<p>Don’t be a dingus and do measurements with your arms and strange things. Settle the debate! “Will this fit through the door?” Now you know. Measure twice, cut once. For critical measurements, burn an inch.</p>

<h3 id="socket-wrench-set">socket wrench set</h3>
<p>This set is pretty much bottom of the barrel quality-wise, but it’s still <em>so much better</em> than no set at all. I just used this last weekend installing a TV mount. Absolutely essential. It seems like no matter what size sockets you have, you’ll always be missing the one you need.</p>

<h3 id="monkey-wrench">monkey wrench</h3>
<p>Very helpful in a pinch. Not really very good at wrenching, but compared to your fingers it works wonders.</p>

<h3 id="metal-picks">metal picks</h3>
<p>I’m not sure if I’ve ever used these.</p>

<h3 id="zip-ties">zip ties</h3>
<p>Similar to rubber bands, these are very useful to have around. Great for cable management. Can be daisy-chained to increase length. They come in all sizes, but I go for the small but not tiny size. I just used these to secure a washing machine drainage hose. I had the drain hose come out of a washing machine once and it was a total disaster.</p>

<h3 id="bic-lighter">Bic lighter</h3>
<p>The romantic in me wants to buy a flint fire starter, but the realist knows a cheap lighter is about a thousand times better at fire than a flint will ever be. Good for melting the end of a nylon rope after you cut it.</p>

<h3 id="hot-glue-stick">hot glue stick</h3>
<p>I learned from Van Neistat that you can use hot melt glue sticks with a lighter and it’s just about as good as a glue gun. Very useful in a pinch. Most recently I used some to temporarily secure a nylon wall anchor in place until the screw caught on. Man, I hate those nylon wall anchors.</p>

<h3 id="battery-terminal-cleaner">battery terminal cleaner</h3>
<p>Don’t think I’ve ever used this. But a pretty common vehicle issue is battery-related and I’ve seen enough vehicles not start because the battery terminals were corroded that I felt like it justified the $3 price tag.</p>

<h3 id="industrial-sharpie">industrial sharpie</h3>
<p>Very useful. I like the “industrial” kind because it makes me think it’s better.</p>

<h3 id="breakaway-box-cutters">breakaway box cutters</h3>
<p>Possibly the best dollar you can spend. The blades are designed to be broken off as they dull so it’s like 20 blades in one. Very, very useful.</p>

<h3 id="allen-key-set">allen key set</h3>

<p>I’m not sure if I’ve ever used these. Usually things come with their own allen key, but if they don’t, this kit will come in handy.</p>

<p>I keep all the tools in a cheap bag. I wrote my name, number, and the date I assembled the kit in white paint pen. I like putting my name on things because it helps honest people not walk off with my stuff accidentally, and keeps dishonest people honest.</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>Car Bag<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/car-tools/IMG_4995.jpeg" alt="My tool bag showing my last name written." />
	
	</div>
</figure>

<p>In addition to the tool bag, I keep a few other essential tools in my car.</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>Ratchet Straps are so Fetch<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/car-tools/IMG_4997.jpeg" alt="An orange ratchet strap." />
	
	</div>
</figure>

<p>Most importantly, I keep a cheap set of ratchet straps. It is impossible for me to state just how much better the <em>worst</em> set of ratchet straps is compared to a rope. Ratchet straps have a bit of a learning curve though. You put the end of it through the ratchet and only ratchet it about 5-10 times to get it tight. Do not try and ratchet the entire strap or it will not work! A set of 4 like these at Harbor Freight is $10. I like that they’re cheap enough I can give them away when I need to. I feel a lot better about donating a $2.50 strap to an underprepared fella than risking the possibility of losing a load on the road and someone getting hurt.</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>Gloves go in the Glove Box<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/car-tools/IMG_4998.jpeg" alt="Leather gloves, a sunglasses case, and a 3x5 index vehicle maintenance log." />
	
	</div>
</figure>

<p>In my glove box, I keep a nice pair of leather gloves that fit well. You’ll probably want to spend about $20. Make sure you try them on before you buy them. I also keep an emergency pair of polarized sunglasses. These are about $20 on Amazon and in a pinch make for better-than-nothing safety glasses. I also keep my vehicle maintenance log which is currently filled so I need to print a new page.</p>

<p>I can’t recall how much this tool kit cost me, so I decided to just recreate it. Harbor Freight doesn’t seem to be quite as cheap as it used to be, and they’re pushing the more expensive items and gating deals behind paid memberships. But the “Pittsburgh” brand has a lifetime warranty on most items, the quality is “good enough”, and they mostly seem to be cheaper than comparable tools from Walmart. I mostly went for a 1-to-1 reproduction of my tool kit, but I varied a bit.</p>

<p>Here’s what I got:</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>Car Tools Neu<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/car-tools/IMG_5007.jpeg" alt="My new tools laid out on a sheet." />
	
	</div>
</figure>

<table>
  <thead>
    <tr>
      <th>Item</th>
      <th>Price</th>
      <th>Store</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="https://www.harborfreight.com/12-in-tool-bag-with-21-pockets-61467.html" target="_blank">12 in. Tool Bag W/ 21 Pockets↗</a></td>
      <td>$4.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/color-snap-blade-utility-knife-60828.html" target="_blank">Breakaway Box Cutters (x2)↗</a></td>
      <td>$0.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/7-inch-wire-stripper-with-cutter-98410.html" target="_blank">Wire Stripper↗</a></td>
      <td>$6.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/micro-flush-cutter-90708.html" target="_blank">Micro Flush Cutters↗</a></td>
      <td>$2.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/nitrile-dipped-work-gloves-large-66374.html" target="_blank">Nitrile Dipped Work Gloves↗</a></td>
      <td>$1.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/10-inch-steel-adjustable-wrench-65801.html" target="_blank">10 in. Adjustable Steel Wrench↗</a></td>
      <td>$7.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/6-in-diagonal-cutters-63816.html" target="_blank">6 in. Diagonal Cutters↗</a></td>
      <td>$3.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/17-piece-sae-metric-hex-key-set-94650.html" target="_blank">SAE/Metric Hex Key↗</a></td>
      <td>$6.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/12-ft-x-12-in-quikfind-tape-measure-with-abs-casing-62464.html" target="_blank">12 ft. Tape Measure↗</a></td>
      <td>$2.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/6-in-1-screwdrivernut-driver-61988.html" target="_blank">6-in-1 Screwdriver↗</a></td>
      <td>$2.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/6-inch-level-with-magnetic-strip-37588.html" target="_blank">6 in. Magnet Level↗</a></td>
      <td>$2.49</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/1-4-quarter-inch-x-10-ft-diamond-braid-rope-96186.html" target="_blank">10 ft. Rope↗</a></td>
      <td>$1.49</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/10-in-groove-joint-pliers-69379.html" target="_blank">10 in. Groove Joint Pliers↗</a></td>
      <td>$8.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/60-ft-x-34-in-industrial-grade-electrical-tape-63239.html" target="_blank">Electrical Tape↗</a></td>
      <td>$1.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/8-in-needle-nose-pliers-63824.html" target="_blank">8 in. Needle Nose Pliers↗</a></td>
      <td>$3.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td><a href="https://www.harborfreight.com/14-in-drive-sae-and-metric-high-visibility-socket-set-21-piece-62303.html" target="_blank">3/8 in. 21 pc. Socket Set↗</a></td>
      <td>$24.99</td>
      <td>HF</td>
    </tr>
    <tr>
      <td>Bic Lighters (x2)</td>
      <td>$3.24</td>
      <td>WM</td>
    </tr>
    <tr>
      <td>Hot Glue Sticks</td>
      <td>$1.27</td>
      <td>WM</td>
    </tr>
    <tr>
      <td>Nail Polish</td>
      <td>$0.98</td>
      <td>WM</td>
    </tr>
    <tr>
      <td>Sharpie Extreme (x2)</td>
      <td>$3.44</td>
      <td>WM</td>
    </tr>
    <tr>
      <td><strong>Total</strong></td>
      <td><strong>$94.69</strong></td>
      <td> </td>
    </tr>
  </tbody>
</table>

<p>I couldn’t find a large pair of flush cutters, just some “diagonal cutters” and some “micro flush cutters”. I also added a wire stripper. You can use a blade if you’re legit, but I just find a cheap pair of wire strippers to be very useful when I need to strip wire. The screwdriver is a 6-in-1, but it should be fine. You could probably just get a single phillips and a single flathead instead. The gloves I got are half a step above disposable latex gloves but can still keep your hands clean without breaking your gentlemanly facade. I really kind of splurged on the socket set. I think they had the same kind I got originally for about half the price, but I wanted something nicer and with larger sockets. I really wanted a deep socket set as well, but they were more expensive. As I write this, I realize I should have grabbed an extension or two.</p>

<p>I didn’t buy more zip ties, but a pack of 100 is about $3. I also didn’t get more rubber bands, but a lifetime supply from Walmart is just $1.18. The ear plugs were the ones I really debated. A pack of 25 pairs at Harbor Freight is $6.39, and I just didn’t want that many of them. The silicon ones can technically be washed and reused and it seems like you can get them for free if you try. See if your next flight attendant or hotel clerk will give you a pair.</p>

<p>I think $100 for these essential tools to keep in your car is a very good idea, but also too much to spend. I think you could find a lot of this stuff secondhand if you go spend a morning yard sale shopping. With any luck you can score some higher quality vintage tools as well for less than Harbor Freight will sell them new.</p>]]></content><author><name>catskull</name></author><category term="diy" /><category term="tools" /><summary type="html"><![CDATA[A few years ago, I became aware of Van Neistat’s YouTube channel. I really enjoy his extreme utilitarian Anderson-esque approach to filmmaking and storytelling. It seems like everything he owns, says, or does is extremely thought out and purposeful.]]></summary></entry><entry><title type="html">Winning The Fight Against OG Images</title><link href="https://catskull.net/winning-the-fight-against-og-images.html" rel="alternate" type="text/html" title="Winning The Fight Against OG Images" /><published>2026-04-30T07:45:20+00:00</published><updated>2026-04-30T07:45:20+00:00</updated><id>https://catskull.net/winning-the-fight-against-og-images</id><content type="html" xml:base="https://catskull.net/winning-the-fight-against-og-images.html"><![CDATA[<p><a href="https://samwarnick.com/blog/winning-the-fight-against-og-images/" target="_blank">Open Graph images are the bane of my existence.↗</a> Seeing a beautiful one in a link preview in iMessage or Discord is just a chef’s kiss. But for whatever reason, generating them has nearly destroyed me. Last June, nearly a full year ago, I spent 4 hours on stream designing and coding up some super fancy solution using Cloudflare Workers. I thought I’d be super smart and cool and use an <em>SVG</em> to do it since an SVG is technically an “image” and of course og:image supports SVG, right??? Wrong! I honestly don’t even know what formats <em>are</em> supported, but I know for sure SVG is not.</p>

<lite-youtube videoid="9hLW_ZiHfBQ" style="background-image: url('https://i.ytimg.com/vi/9hLW_ZiHfBQ/hqdefault.jpg');" title="Add dynamic og:images to my blog with Cloudflare Workers">
  <a href="https://youtube.com/watch?v=9hLW_ZiHfBQ" class="lty-playbtn" title="Play Video">
    <span class="lyt-visually-hidden">Play Video: Add dynamic og:images to my blog with Cloudflare Workers</span>
  </a>
</lite-youtube>
<script defer="" src="https://cdn.jsdelivr.net/npm/lite-youtube-embed@0.3.2/src/lite-yt-embed.min.js"></script>

<link href="https://cdn.jsdelivr.net/npm/lite-youtube-embed@0.3.2/src/lite-yt-embed.min.css" rel="stylesheet" />

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>A Critical Hit!<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/images/posts/winning-the-fight-against-og-images/chat.jpg" alt="Sam pointing out that og:images cannot be SVG" />
	
	</div>
</figure>

<h2 id="the-backstory">The Backstory</h2>

<p>The “Open Graph protocol” (<a href="https://en.wikipedia.org/wiki/Open_Graph_protocol" target="_blank">wiki↗</a>) is some random crap that Facebook cooked up back in 2010 to make web content shared on Facebook look better. It’s not an official specification and how applications use it is pretty much just random. At its core, it’s just a bunch of special <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meta" target="_blank">&lt;meta&gt;↗</a> tags. However, as of the Year of our Lord 2026, the only thing that you really need to worry about is <code class="language-plaintext highlighter-rouge">og:image</code>, <code class="language-plaintext highlighter-rouge">og:title</code>, <code class="language-plaintext highlighter-rouge">og:site_name</code> and <code class="language-plaintext highlighter-rouge">og:description</code>. Rather than describe what each of these is, I’ll just show you:</p>

<p><img src="assets/images/posts/winning-the-fight-against-og-images/ogog.jpg" alt="the various og meta tags in a discord preview" /></p>

<p>Even on top of the unofficial and random spec that is “Open Graph”, there are seemingly endless additional properties and fields that random applications have added. Twitter is the most notable case here, but really there is no set standard or predictable way to figure out how to specify the preview content when sharing a URL in an application. It just varies! <a href="https://catskull.net/google-search-is-hallucinated-meta-description.html">Even Google search is now showing its own AI slopified page summary in search</a>, instead of the established <code class="language-plaintext highlighter-rouge">&lt;meta name="description"&gt;</code> that’s served the web well enough for the last 20 years.</p>

<h2 id="the-problem">The Problem</h2>

<p>Leaving aside the boutique implementations of link preview images, I focused only on getting them to show up in Discord, Mastodon, and iMessage. These applications seem to at least attempt to follow the fledgling “Open Graph” protocol. Since I know <em>for sure</em> now that SVGs are not supported, it needs to be a proper “image”. Previously my site has been using a single static image in WebP format for all links. It was fine, but I wanted the image to reflect more closely what the content of the page would be. It should be a nice little enticing preview! At a bare minimum, this would include things like a date, the page title, and the site name.</p>

<figure class="img-frame " onclick="this.classList.toggle('full');">
	<div id="figure-container">
	
	
		<figcaption>My OG og:image<span class="img-icon">┅</span></figcaption>
	
	<img src="assets/opengraph.webp" alt="My OG og:image" />
	
	</div>
</figure>

<p>But how to generate a bunch of custom images on the fly? How to template the images? I wanted something fully automated and custom designed, and I didn’t want to add a heavy media processing pipeline to my application. I wanted it to be as close to how the rest of the website is built as possible, not some custom ImageMagick or ffmpeg design system. I really like HTML and CSS. Generally speaking, they are really powerful and modern web browsers are <em>really, really</em> good at rendering them. I can’t think of another content layout system that is as powerful and flexible as HTML and CSS, not to mention ease of use and interoperability. This is why I initially leaned toward SVG, since it’s actually basically fully interoperable with HTML including having HTML in an SVG and having SVG in HTML.</p>

<p>Another problem is where to store all those images? Compared to plain text HTML, CSS, and JS files, images take up a lot of room! I don’t want my git repo to be gigantic, but it felt like the og images should live beside the content. Sam feels very opposed to storing media in his blog repo, which I think has merit, but I also think that having a single source of truth for the content makes sense for me. I already cache everything with Cloudflare, and I optimize my images with their image transformation service so images are served over the network as efficiently as realistically possible.</p>

<h2 id="my-solution">My Solution</h2>

<p>This blog is produced with the Jekyll static site generator. I prototyped a basic og:image design with HTML and CSS. One really nice feature of web content is that it is pretty good at fitting dynamic content into fixed-size content areas. For example, if a blog post has a title of “My Story” and another has a title of “My Incredible Journey: In and Out of the World’s Top Businesses”, web layout engines are smart enough to fit both of those into the same content area. For og:images, this is important because the images are (almost) <em>always</em> exactly 1200x630 pixels. Like I said, there’s not any kind of hard rule here; these are just the most common conventions and there are just as many exceptions to every rule as there are reasons why the rule exists in the first place.</p>

<p>I had Claude cook up a decent HTML page that worked across a variety of titles. It even made a cool splatter/TV static style randomized background using a canvas. Here’s the design I settled on:</p>

<p><img src="assets/og/winning-the-fight-against-og-images.html.png" alt="this page's og image" /></p>

<p>But how to convert an HTML page to an image? There are a lot of solutions to this and they all vary in complexity. To me, it made the most sense to generate the images during the development build process. I wanted to create a new blog post and have Jekyll automatically generate the image for me. I also didn’t really want to pull in some complicated gem dependency to do it. I also wanted it to be “fast”.</p>

<h2 id="enter-ferrum">Enter ferrum</h2>

<p>In 2026 people do be like “ruby is an outdated ecosystem, that’s why I’m switching to the most complicated JS toolchain my AI token spend allowed me to hallucinate”. To that I say, good luck and have fun! I found the <a href="https://github.com/rubycdp/ferrum" target="_blank">ferrum gem↗</a> which works with a standard Chromium installation to control it, similar to any of the other standard browser automation tools, but it felt way more lightweight and a lot easier to use. Yeah I know, a hard dependency on Chromium for my blog is not great and is a lot heavier than some simple ImageMagick install. But I already have <a href="https://github.com/ungoogled-software/ungoogled-chromium" target="_blank">ungoogled-chromium↗</a> in my Brewfile for no apparent reason other than to use it with Amazon Luna to play Forknife with my kids (which I haven’t done in well over a year). It just feels like a decent thing to have around, and running a completely de-Googled Chrome feels very punk rock to me. I wasn’t sure if it would work with ferrum, but it “just did”. Straight up, no problems, and it was fast!</p>

<p>I decided I wanted to make a Jekyll plugin that would hook into each page’s generate function. I could add the gem only in development mode so my GitHub Action would ignore it. I wanted to have my og image templates follow Jekyll’s built-in templating and layout as closely as possible. I wanted them to just feel like normal off-the-shelf Jekyll pages, just special for images. In Jekyll’s <code class="language-plaintext highlighter-rouge">_config.yml</code>, an og image template is specified by either collection or path. I needed a path override for special pages like the site’s index page, which is technically part of the <code class="language-plaintext highlighter-rouge">pages</code> collection but should be unique. I actually have quite a few collections now for recipes, playlists, podcasts, newsletters, and more.</p>

<p>Any time Jekyll builds a new page in development mode for the first time, my gem will read the config, render the template passing in that specific page’s front matter, open the page in Chromium, and take a screenshot. The screenshots are all named accordingly and saved to my site’s /assets directory. There’s really not much else to say about it, other than it’s really fast. Generating all <strong>239</strong> unique images for every page in my blog takes just over <strong>27 seconds</strong>. Subsequent runs have no additional build time added.</p>

<p>It just so happens that I recently turned 35, so I decided to take the day off work and ended up working on og images all day. It took quite a bit of testing and debugging, but it all worked! I should say it worked surprisingly well, too. I even got everything buttoned up and pushed the plugin gem to RubyGems.org. This was only my second ever gem, so it was fun learning about how to do that.</p>

<h2 id="conclusion">Conclusion</h2>

<p>I’m super proud of what I came up with! Especially considering that I’d tried at least one other time and <em>completely</em> failed. <code class="language-plaintext highlighter-rouge">ferrum</code> is a cool gem, and I think I’ll probably find other uses for it in the future as well. If you’d like to use this for your blog, see the <a href="https://github.com/catskull/jekyll-templated-og-image" target="_blank">jekyll-templated-og-image↗</a> gem on GitHub.</p>]]></content><author><name>catskull</name></author><category term="og image" /><category term="jekyll" /><category term="ruby" /><summary type="html"><![CDATA[Open Graph images are the bane of my existence.↗ Seeing a beautiful one in a link preview in iMessage or Discord is just a chef’s kiss. But for whatever reason, generating them has nearly destroyed me. Last June, nearly a full year ago, I spent 4 hours on stream designing and coding up some super fancy solution using Cloudflare Workers. I thought I’d be super smart and cool and use an SVG to do it since an SVG is technically an “image” and of course og:image supports SVG, right??? Wrong! I honestly don’t even know what formats are supported, but I know for sure SVG is not.]]></summary></entry><entry><title type="html">April Blogging Challenge Wrap-Up</title><link href="https://catskull.net/april-blogging-challenge-wrapup.html" rel="alternate" type="text/html" title="April Blogging Challenge Wrap-Up" /><published>2026-04-29T20:39:00+00:00</published><updated>2026-04-29T20:39:00+00:00</updated><id>https://catskull.net/april-blogging-challenge-wrapup</id><content type="html" xml:base="https://catskull.net/april-blogging-challenge-wrapup.html"><![CDATA[<p>That’s a wrap on The First Annual Bullpen Inc. Blog Prompt Challenge Extravaganza 2026! It was fun and challenging to get the blog posts out each week. I’m glad I was able to get something out. I liked seeing how different everyone’s posts were even having the same prompt. I think my favorite was Jared’s prompt about the internet. I was tempted to just do “lore drop” for my prompt because I like reading casual autobiographies and not at all because this has all just been one giant social engineering experiment to hax them each.</p>

<p>Sam says for the last week we should each say something we like about each other’s blogs.</p>

<h2 id="carter">Carter</h2>

<p>He recently nuked all his CSS. I wish he’d add just a bit more. I like that he calls himself a “code plumber”. I like his blog posts, but I wish he’d write more.</p>

<h2 id="jared">Jared</h2>

<p>I like his image previews:</p>

<p><img src="https://jaredezz.tech/Fantastic%20Computers%20&amp;%20Where%20to%20Find%20Them.png" alt="og:image" /></p>

<h2 id="sam">Sam</h2>

<p>I like how often he blogs. He’s pretty sneaky and will just post quietly. Luckily, I’m subscribed to his RSS feed so I never miss a post (except for when I do). I like his <a href="https://samwarnick.com/uses/">/uses</a> page!</p>

<hr />

<p>My friends and I decided to do a weekly blog challenge for the month of April, 2026! Each week, one of us chooses a prompt and we all write posts.</p>
<p>For week 5, we chose the prompt:<br /> "<b>What is one thing you like about each other's blogs?</b>"</p>

<p>My friends' posts this week:</p>
<ul>

<li>Sam: <a href="https://samwarnick.com/blog/april-blogging-challenge-wrap-up/">April Blogging Challenge Wrap-Up</a></li>










<li>Carter: <a href="https://carter.works/blog/">tba</a></li>










<li>Jared: <a href="https://jaredezz.tech/posts/">tba</a></li>



























































</ul>

<p><strong>My other posts in this series:</strong></p>
<ul>

<li><a href="/doing-the-most-good.html">Doing the most good</a></li>

<li><a href="/how-i-compute-2026.html">How I Compute (2026)</a></li>

<li><a href="/the-internet-is-a-vast-place.html">The Internet is a vast place.</a></li>

<li><a href="/nintendo-announces-3ds-successor-3ds-plus.html">Nintendo announces 3DS successor '3DS Plus'</a></li>

</ul>]]></content><author><name>catskull</name></author><category term="blog challenge 2026" /><summary type="html"><![CDATA[That’s a wrap on The First Annual Bullpen Inc. Blog Prompt Challenge Extravaganza 2026! It was fun and challenging to get the blog posts out each week. I’m glad I was able to get something out. I liked seeing how different everyone’s posts were even having the same prompt. I think my favorite was Jared’s prompt about the internet. I was tempted to just do “lore drop” for my prompt because I like reading casual autobiographies and not at all because this has all just been one giant social engineering experiment to hax them each.]]></summary></entry><entry><title type="html">Doing the most good</title><link href="https://catskull.net/doing-the-most-good.html" rel="alternate" type="text/html" title="Doing the most good" /><published>2026-04-28T16:10:27+00:00</published><updated>2026-04-28T16:10:27+00:00</updated><id>https://catskull.net/doing-the-most-good</id><content type="html" xml:base="https://catskull.net/doing-the-most-good.html"><![CDATA[<p>Carter’s prompt this week is as follows:</p>

<blockquote>
  <p>You have been given one month away from your obligations to use your talents to enact societal good. What do you go do?</p>
</blockquote>

<p>This is the first prompt in the challenge where I genuinely feel like I have nothing really novel to say. If you know me, this is quite unusual.</p>

<p>I have two immediate questions:</p>

<p>First: What are my obligations I’d be free from? My 9-5 job, sure. But my family? Taking care of my kids? Feeding myself? What am I obligated to do? Beyond providing an income for them, I don’t particularly feel like I have many obligations. Generally speaking, if I don’t want to do something, I don’t do it. There are some things I’m involved with at my church that maybe aren’t my first choice but really it’s quite minimal.</p>

<p>Second: What are my talents? Hard for me to really even say. Most of the talents I feel like I might have seem to have little to no direct way to impact “societal good”. What does that even mean anyway? Who’s to say what’s “good” or “bad” for society?</p>

<p>The other issue is a month hardly feels like enough time to really move any kind of needle. But say I had a year? A decade? What would I do then? My answer doesn’t change much because I still have no real answer.</p>

<p>The first thought I had was I could help the elderly load groceries in their car, but approaching strangers in a parking lot is a skill I lack and have no desire to develop.</p>

<p>Then my thoughts drifted towards more selfish endeavors. Truly I think the greatest skill I have with a potential to impact some kind of arbitrary “societal good” is raising my kids to be productive members of society. So I’d spend <em>more</em> time with them, not less. I could try to work hard and get some home improvement projects finished that would make our home a more nurturing environment. I’ve wanted to remodel my sons’ bedroom for a few years, I’d like to build them a cool loft bed with their own desk space underneath to try to better utilize our seemingly ever shrinking floor space as they get older and seek more privacy. However, I tentatively pitched my wife on the idea a while ago and her response was less than enthusiastic. Increasing marital friction seems like it would not do society any good.</p>

<p>Desperate, I turned to Wikipedia to see if there is an article on “societal good”. The closest I could find was the page for <a href="https://en.wikipedia.org/wiki/Public_good">“public good”</a>. There’s a list of example “public goods”, the first of which is “public fireworks”. So I guess I’d go out and buy fireworks and light them off for my community. I’m sure my neighbors would be <em>thrilled</em>. Still no luck.</p>

<p>Maybe it’s a complete cop-out but I really do feel like the best method I have to do “societal good” is exactly what I’m already doing. I earn an honest wage. I try my best at work to be thoughtful and deliberate to do the best work I can. I make myself available to my kids and give them real attention. We spend quality time together. I don’t use harmful or addictive substances. I pay my taxes. I literally donate 10% of my paycheck to charity. I try to be generous with my time and money. My kids have a friend from the neighborhood eat dinner at our house nearly every weeknight. My wife spends a lot of time each week volunteering with our local youth organization and I know for sure her only motivation is to try to make people’s lives better. I help my mom take care of her aging father, directly. This week I’ve gone over to help her move every day after work to make things more comfortable for my grandpa. I spent all weekend doing that. My feet hurt right now because of it. I judged an elementary school science fair. I taught the children’s class at church today in addition to teaching the adult class once a month. I volunteer to play in the community concert band, which I do enjoy, but I also probably wouldn’t do if they didn’t really need a drummer. I know for a lot of the elderly members of the band it’s one of the only things they do each week.</p>

<p>I’m not perfect. In all of those things I mentioned, there’s more I could do, and I could do what I do even better. I could try harder. But if someone said I had a month off to go and do some other thing for “societal good”, I’d probably say “no thank you”. I don’t need some fantasy scenario where I travel halfway around the world to feel like I’m a contributing member of society. I already try to be. I’m not good at building schools. I’m good at being me. Ultimately, I want to <em>be</em> societal good, continually.</p>

<hr />

<p>My friends and I decided to do a weekly blog challenge for the month of April, 2026! Each week, one of us chooses a prompt and we all write posts.</p>
<p>For week 4, Carter chose the prompt:<br /> "<b>You have been given one month away from your obligations to use your talents to enact societal good. What do you go do?</b>"</p>

<p>My friends' posts this week:</p>
<ul>

<li>Sam: <a href="https://samwarnick.com/blog/talents-for-good/">Talents for Good</a></li>










<li>Carter: <a href="https://carter.works/blog/2026-04-28-get-small-muchachos/">Get small, muchachos</a></li>










<li>Jared: <a href="https://jaredezz.tech/posts/">TBA</a></li>



























































</ul>

<p><strong>My other posts in this series:</strong></p>
<ul>

<li><a href="/april-blogging-challenge-wrapup.html">April Blogging Challenge Wrap-Up</a></li>

<li><a href="/how-i-compute-2026.html">How I Compute (2026)</a></li>

<li><a href="/the-internet-is-a-vast-place.html">The Internet is a vast place.</a></li>

<li><a href="/nintendo-announces-3ds-successor-3ds-plus.html">Nintendo announces 3DS successor '3DS Plus'</a></li>

</ul>]]></content><author><name>catskull</name></author><category term="blog challenge 2026" /><summary type="html"><![CDATA[Carter’s prompt this week is as follows:]]></summary></entry><entry><title type="html">How I Compute (2026)</title><link href="https://catskull.net/how-i-compute-2026.html" rel="alternate" type="text/html" title="How I Compute (2026)" /><published>2026-04-21T18:30:52+00:00</published><updated>2026-04-21T18:30:52+00:00</updated><id>https://catskull.net/how-i-compute-2026</id><content type="html" xml:base="https://catskull.net/how-i-compute-2026.html"><![CDATA[<p>See also: <a href="/uses">/uses</a></p>

<h2 id="personal">Personal</h2>

<p>Unfortunately I think the computer I use the most is my iPhone 15 Pro Max. It’s a really great phone. The OLED display is probably the best screen in my house. I like that it’s completely waterproof so I can get great pics of the <a href="https://en.wikipedia.org/wiki/Caustic_(optics)">caustic action</a> at my local swimming pool. The speakers are great. I really like the telephoto lens, it’s just super versatile. I’ve been slightly tempted to upgrade to one of the newer phones but I just see no reason. My battery health is getting down to around 80% so it probably needs to be replaced soon. I don’t use a screen protector or a case and there are some scratches and dings but I’ve been actually blown away at how durable it is. I’ve dropped it from my lifted Land Cruiser directly to the concrete floor in my garage more than once and it’s just <em>fine</em>. I guess we’ll see what phone they come out with next. I’m slightly tempted just to have the latest and greatest and that orange color on the current pro model looks pretty slick. Now that the MacBook Neo has proved that the phone chips are more than capable of running macOS, I would really love it if Apple added the ability to dock the phone with Thunderbolt. If that happened, I could probably get rid of my personal laptop.</p>

<p>My primary daily driver is a 14-inch MacBook Pro with an M3 Max and 36 GB RAM. Before that I had a 14-inch M1 Pro, and before that I had a 13-inch MacBook Air M1. My job provided me a 16-inch M4 Pro with 48 GB RAM. I asked for a 14-inch since my desk and dock are set up nicely for that size, but they sent a 16-inch anyways. Oh well. The laptops are docked about 90% of the time. Having a single cable to switch between my work and personal machine is pretty slick. If you want to know the exact specifics of my dock and everything connected to it, see my <a href="/uses">/uses</a> page diagram. I’ve noticed an annoyance with my current dock which is that if the battery is low and is actively being charged by the dock, it will disconnect and reconnect on its own. I’ve had the dock for a few years now, so I suppose the computers are trying to draw more power than it can provide. I’m mildly in the market for a new Thunderbolt dock but I haven’t seen anything that seems really excellent yet. I’d love it if Apple made a decent dock. I think it would be super cool if you could use an iMac, Mac Mini, or Mac Studio as a dock for your laptop somehow.</p>

<p>I use an Apple Studio Display (not the newest version that adds downstream Thunderbolt ports). I use its speakers and camera for work calls. For music, I’ve got a pretty decent HiFi desk setup. Having “good” speakers at my desk is really amazing. It’s crazy how much clarity and detail good speakers add to music I’m already familiar with, even at very low volumes!</p>

<p>I’m using an 8BitDo “Retro Keyboard” and “Retro R8 Mouse”. I really like the keyboard, I own several variations and I’ve used quite a few mechanical keyboards from various providers over the years. The keyboard comes with big “super buttons” that plug in with a 3.5mm “headphone” jack and can be mapped super quickly to any key. I use this a lot when gaming with my 5-year-old son. We’ve been playing the Master Chief collection and I’ll map shoot and jump to buttons for him and it works out super nicely. The mouse is a newer addition. I had been using Logitech MX Master mice for about 10 years and the latest Master 3S I owned just really did not work very well. The connection seemed incredibly weak. Logitech’s software is also awful and wants to run all the time. I cycled through a Magic Mouse but it hurt my hand. I even tried 3D printing an ergonomic grip and it was better but still not great. I don’t trust Bluetooth for peripherals, and it also throws a wrench when I try to dock multiple computers since it is paired directly to the laptop and not the dock. I think there is actually a way in macOS to use an external Bluetooth dongle and pair a Bluetooth mouse to it, but the Magic Mouse is bad enough I decided it wasn’t worth it. For a while I used an extremely cheap no-name two button wireless mouse and I actually liked it, but it was a little small and used a AA battery that was annoying to deal with. Being a fan of the 8BitDo keyboard, I was intrigued by their mouse so I picked up the transparent green OG Xbox variant when it went on sale. It has two buttons on each side that can be mapped to anything, very similar to the side buttons on the MX Master. I was surprised to see that the 8BitDo software actually worked well enough on macOS to get them mapped. On the MX Master I mapped the thumb button to <a href="https://en.wikipedia.org/wiki/Mission_Control_(macOS)">Mission Control</a> (the same thing that a three-finger swipe up is mapped to on the trackpad). On the R8 mouse I have one mapped to that, and the other mapped to shift which allows me to scroll horizontally using the scrollwheel. It works very well for me. The mouse is designed to be symmetrical for lefties so the buttons on the other side aren’t used or mapped to anything.</p>

<p>I also have an iPad Mini that doesn’t get much use. I’m just not an iPad person. I use it to connect to a TV to show a Keynote slideshow (using my phone as the remote) when I teach Sunday School at church. That’s pretty much it. I’ve used it as an external display for my computer sometimes but it didn’t stick.</p>

<h2 id="homelab">Homelab</h2>

<p>I have a custom-built NAS/media server. It lives down in my networking closet. It has an Intel i3-10105, 8 GB RAM, and 4x 8 TB HDDs in a RAID 5 configuration, for a total usable size of 24.00 TB. After playing with a few NAS operating systems, I finally settled on OpenMediaVault. It strikes the right balance of convenient web UI on top of a basic Debian host that I can still SSH into and do whatever I need to do. The kids in the Bullpen are all hyped on Proxmox and I’m kind of envious but for now I’ll keep it as is. It primarily hosts Plex, but also hosts WireGuard for a road-warrior setup (run all traffic through WireGuard when connected to a remote network). WireGuard has served me quite well and I feel a lot better about using foreign networks to do “real” work. I’ve even upgraded the firmware on my home router remotely which was quite thrilling! I also run a few other Docker containers such as Caddy (reverse proxy so I can just go to https://server.home instead of IPs and ports, which is mostly to get Safari to remember unique credentials better), dynamic DNS worker for WireGuard, Immich to backup iCloud photos, and Syncthing to automatically pull in my latest DVD rips when I add something to my primary machine. I find OMV’s Docker offering to be good enough. I used to use Portainer to manage it with a web UI, but OMV added their own and it works well enough for me. It’s been fun to play around with random Docker containers for various things like a Star Trek: Voyager - Elite Force server.</p>

<p>For several years I ran OpenWRT on a MikroTik Hex S RB760iGS and overall liked it. However about a month ago I was noticing my speeds weren’t anywhere near the 1 Gbps connection I pay for and I was getting an F on the waveform bufferbloat test. It’s realistic in my household to have online gaming, video streaming, and work video calls all happening at the same time, so I decided to upgrade it. After spending way too long trying to find the “best” OpenWRT router (router <em>only</em>, no WLAN needed since that is handled by dedicated wireless APs), I found an open-box GMKtec NucBox G9 on eBay for about $180 shipped so I pulled the trigger. It’s basically a bog-standard Intel N150 box designed to be used as an NVMe NAS with 4x NVMe slots, but as Jeff Geerling found out the thermal performance in that scenario just isn’t up to snuff. For my use I didn’t need any of the features besides the dual 2.5 Gbps Ethernet ports powered by two dedicated Intel i226Vs. My home network isn’t actually 2.5 Gbps yet, but my NAS supports it and having a nice wired connection between my MacBooks and it feels like something that will be cool eventually. Obviously this little machine is absolutely and completely overkill for OpenWRT but it really seemed like there wasn’t really anything good in between the ~$50 MikroTik I had been running and a ~$200 single-board computer. I also told myself the NucBox could be repurposed more easily than some ARM-based networking equipment. After getting OpenWRT installed and moving all my configs over, I was super happy to see my bufferbloat test go from an F to an A/A+, in addition to going from about 150/200 Mbps download to 900 Mbps. I’m using about 120 MB of the 12 GB RAM the system has, and the built-in 64 GB eMMC storage is plenty for OpenWRT. I really couldn’t be happier with my choice, the price I paid, and the upgrade in general. I’m still learning OpenWRT so I’m eager to optimize and tune it even more as I learn!</p>

<p>Unfortunately WiFi is extremely closed source and proprietary. I’m actively investigating hardware that I could flash OpenWRT on for a multi-AP mesh network, but currently I use an off-the-shelf Chinese brand of APs for this. I don’t even want to say the name because I don’t trust them at all. I could go Ubiquiti but I’m not rich enough yet. Yes, I could get used enterprise stuff, but I don’t want to. Trading closed-source Chinese hardware for closed-source American hardware isn’t even really an improvement in my eyes.</p>

<h2 id="software">Software</h2>

<p>The company I work for is super hyped on “AI”, as most companies currently are. I’ve been using Claude Code at work a lot. It’s fine. I don’t pay for it and I’m holding my breath for the Great Rug Pull, but a bird in the hand is worth two in the bush I suppose. I don’t want to talk about AI anymore.</p>

<p>I like GNU nano. I’m writing this in it. I like Ghostty with a “quake-style” dropdown window. I use Homebrew for package installation, but I’m kind of getting the itch to do something crazy like replace it with something I built myself. Just one of those things I have rattling around in my brain. I think using git is not the best decision and it makes Homebrew slower and harder to use than it should be. On the other hand, I really like Alpine Linux and especially Alpine Package Keeper (APK), which OpenWRT (thankfully) recently switched to. It’s super fast. I tried Nix, etc. and got lost in the complexity.</p>

<p>When I started software development professionally in ~2014, I used Sublime Text because it was really fast and clean. Then I used GitHub’s Atom because I wanted to be edgy. Then I drank the Kool-Aid and used VSCode, but it got slow and bloated. Then I tried out Panic’s Nova but it was too buggy for me and also not that fast. Then I remembered how nice Sublime Text was so I went back and I haven’t looked back. Whenever I can, I use Apple’s SFMono font and Apple’s Xcode Light and Dark themes. If Xcode themes aren’t available, I’ll use GitHub’s. If those aren’t available I’ll just use nothing/the default.</p>

<p>For pretty much everything I can, I use Apple’s software. This includes things like Logic Pro, Keynote, and Safari. I even use Mail.app. For a lot of Electron-based apps, I’ll open the web version in Safari and “pin” it to my desktop so it uses a Safari web view instead of Chromium. This is true for things like Discord as well as ClickUp (which we use at work and is by far the worst software I’ve ever had to use). An exception is GitHub Desktop, which has been my preferred git client for quite a while now, and is Electron-based.</p>

<h2 id="etc">Etc</h2>

<p>I don’t want my vehicle to have a computer in it. For this reason, I drive a 1994 Toyota. It technically does have a “computer” but I think the amount of “computing” that “computer” does by today’s terms isn’t really a “computer”. I did put an Apple CarPlay head unit in it, so my phone computer can show me navigation and music.</p>

<p>I have a few Apple HomePods around my house. My kids like to listen to podcasts and audiobooks as they fall asleep. They’re not amazing, but I trust them a little more than Amazon’s and Google’s options. I really like Apple TV (the hardware product, not the streaming service). A few months ago some kids threw a drumstick at my TV and it shattered. Apple TV made replacing it very fast and simple. No logins, no app downloads, and my TV doesn’t have access to my network.</p>

<p>For a while I tried to use HomeKit smart switches for everything but found them to be terrible. I don’t trust Bluetooth, I don’t trust WiFi, and I <em>especially</em> don’t trust random third parties to make network-enabled devices. I recently uninstalled about 30 WiFi smart switches that after a few months all disconnected and reset themselves. Specifically they were <em>Meross</em> brand WiFi HomeKit switches. Absolute garbage! Total waste of money. They were cheap though, and you get what you pay for! I’m mildly interested in the Inovelli White series, which use Matter over Thread. Thread uses some form of Bluetooth Low Energy and needs a “router” but HomePods and Apple TVs are Thread routers. The result is that they are wireless but shouldn’t congest the 2.4 GHz network nearly as bad as traditional WiFi switches. At the same time, I’m not running out to buy them.</p>

<h2 id="conclusion">Conclusion</h2>

<p>The amount of software and computers I encounter day to day has never been higher. It feels like everywhere I go, there’s some computer controlling the interactions I have in the real world. Whether it’s waiting 5 seconds for a payment to authorize before I’m allowed to walk away from a cash register, or simply being unable to check in for a doctor’s appointment because “the system is having issues today”, I feel slightly cursed. I feel a weight because I myself am directly responsible for at least some of those computerized systems that have bugs and lower the quality of people’s days. I really do my best to ship high quality, meaningful, bug-free code. I try to always think about the end users. But I’m also a small cog in a big machine.</p>

<p>Rather than being obsessive about technology, I attempt to be deliberate. I imagine how many lines of code are required to power my everyday life, and I try to minimize it. “Do I <em>really</em> need this? Do I want to have a dependency on this box for my personal wellbeing?” I wouldn’t even call it minimalism. It’s more like pragmatism. I’m biased against computers. Computers are like my friends - chosen carefully but deeply engaged. I’d rather have fewer, stronger friendships than more weak friendships. When my water heater unexpectedly goes out, I want to be able to call a friend who answers on the first ring. Computers are exactly the same. Empower me, don’t distract me. Reliability is more important than hype and constant change.</p>

<p>The best computer I have is my brain. This is where my ideas begin, where they take shape, and where they die. Everyone has a brain. When I defer computing from my brain to some silicon, things get worse. Imagine receiving a push notification every time you needed to take a breath, or beat your heart. Machines can’t think. They can’t come up with ideas. They can’t tell us the answers, and they aren’t a crystal ball. It doesn’t matter how much data we feed into them. My brain is the ultimate computer and I want to make sure I’m using it as effectively as I can.</p>

<hr />

<p>My friends and I decided to do a weekly blog challenge for the month of April, 2026! Each week, one of us chooses a prompt and we all write posts.</p>
<p>For week 3, I chose the prompt:<br /> "<b>How do you compute?</b>"</p>

<p>My friends' posts this week:</p>
<ul>

<li>Sam: <a href="https://samwarnick.com/blog/how-do-i-computer/">How Do I Computer</a></li>










<li>Carter: <a href="https://carter.works/blog/2026-04-21-a-totally-objective-ranking-of-configuration-languages/">A totally objective ranking of configuration languages</a></li>










<li>Jared: <a href="https://jaredezz.tech/posts/fantastic-computers-and-where-to-find-them/">Fantastic Computers &amp; Where to Find Them</a></li>



























































</ul>

<p><strong>My other posts in this series:</strong></p>
<ul>

<li><a href="/april-blogging-challenge-wrapup.html">April Blogging Challenge Wrap-Up</a></li>

<li><a href="/doing-the-most-good.html">Doing the most good</a></li>

<li><a href="/the-internet-is-a-vast-place.html">The Internet is a vast place.</a></li>

<li><a href="/nintendo-announces-3ds-successor-3ds-plus.html">Nintendo announces 3DS successor '3DS Plus'</a></li>

</ul>]]></content><author><name>catskull</name></author><category term="blog challenge 2026" /><category term="computers" /><summary type="html"><![CDATA[See also: /uses]]></summary></entry><entry><title type="html">The Internet is a vast place.</title><link href="https://catskull.net/the-internet-is-a-vast-place.html" rel="alternate" type="text/html" title="The Internet is a vast place." /><published>2026-04-14T07:46:38+00:00</published><updated>2026-04-14T07:46:38+00:00</updated><id>https://catskull.net/the-internet-is-a-vast-place</id><content type="html" xml:base="https://catskull.net/the-internet-is-a-vast-place.html"><![CDATA[<p>The Internet is a vast place. It didn’t always exist. It might go away someday.</p>

<p>I can remember the family gathering around our Windows 95 PC and attempting unsuccessfully to dial up for the first time. That was likely in the mid to late 90’s. I guess we eventually got it working because I have memories of my Dad and brother downloading <em>The Hamster Dance</em> and those banging Phil Collins <em>Tarzan</em> songs on Napster. I didn’t really understand it. My brother was a big video gamer and he would print out walkthroughs and guides off of <em>gamesages.com</em>. What a time to be alive! I also have some vague memories of my brother and Dad going head to head in <em>Command &amp; Conquer</em> while my dad was at work. It might have actually been <em>StarCraft</em>, I’m not totally sure.</p>

<p>I don’t think I really understood the concept of the internet until I was in 6th grade and was forced to take some kind of computer literacy class. It was mostly a lot of <em>Mavis Beacon Teaches Typing</em>, but we also learned basic computer parts like CPU and motherboard, as well as some basic internet skillz. I actually distinctly remember the teacher saying that we were “way behind” on voice recognition software compared to where we should be. I wonder where lines like that come from? I believe the year was 2002.</p>

<p>I remember learning about search engines, and it was at that point I started repping Google as my engine of choice because it was simple and fast. I remember being strictly told never to click the “I’m Feeling Lucky” button and honestly I’m not sure if I ever did. I think there was some assignment where we needed to find something false online and there was this crazy website talking about how Bill Gates had died with a <a href="https://www.youtube.com/watch?v=iK6SS8CXYZo">video of him being pied in the face</a>.</p>

<p>I think my first true internet love was email. I had a Juno.com email address and would tie up the family landline 300 times a day so I could check it. I think readers of my blog will understand how much I love email. Back in the day, before big social media networks, it was all email. People would send around what would essentially be considered memes today, little jokes and anecdotes. There were also viral email forward chains like “send this to 10 people or your crush will die tonight” as well as some weird hoax kind of stuff. I think all of that still exists just in different forms. There was also the ever-present threat and fear of viruses such as the <a href="https://en.wikipedia.org/wiki/ILOVEYOU">Love Bug</a> but I personally never got pwned.</p>

<p>Shortly after, some friends told me about <a href="https://en.wikipedia.org/wiki/AIM_(software)">AOL Instant Messenger</a> aka AIM. I’m going to be 100% honest with you, I had a girlfriend in 6th grade and I pretty much exclusively used it to chat with her. We still had just the single landline so I had to be a little sneaky. I’m sure my mom missed so many phone calls because I was on the internet. I’m not sure exactly how to put into words the world that internet messaging and email opened up for me, but man, it felt like a whole new universe.</p>

<p>Surprisingly, I don’t recall ever getting into anything I wasn’t supposed to. Maybe some accidental hentai web banners on sketchy ROM websites. That’s another big aspect I loved about the internet: roms and emulation. Our computer could do both NES and SNES pretty well and I loved getting games. The issue was that only my parent’s computer had internet at that time so we could only get games that were smaller than 1.44MB and could fit on a floppy disk to be transferred to our computer. I guess later I got the internet hooked up to our computer so I could chat with hot chicks all day. If I remember right my website of choice was cherryroms.com. Actually, the first “website” I ever made was called “Dave’s ROM Dungeon” and it was an HTML file on my hard drive with filesystem links to a couple of my favorite ROMs. I didn’t know anything about hosting or how to let other people access my site. I’d just click the link and download the exact same ROM to my computer, from my computer, again and again. It was cool!</p>

<p>Around this time I also had a friend whose dad was a programmer who worked from home so they had a broadband connection. I remember him showing me <em>Runescape</em> and I think I set up an account but just never really got into it. It always just felt kind of weird and sketchy to me, and frankly, it still does. Years later, my little brother’s friend got all his stuff stolen by a scammer which I still think is pretty hilarious. He was <em>devastated</em>.</p>

<p>I was pretty into music during this time and I liked browsing various bands’ websites to see what was out there. I don’t remember finding anything too interesting but it still felt like a cool thing to do. Before that, you could go to the library and see if there might be a book you could check out on a topic but it was almost always outdated and irrelevant. It felt cool to be able to access current information.</p>

<p>That same Runescape friend also showed me eBay and possibly Amazon. I grew up in mostly rural places so stores just didn’t really have that much stuff. For example, to buy a video game we’d drive to the city on a rare occasion but most often we’d have to order it out of a catalog. That kind of makes shopping hard though, just picking something out based on a single box art image and a few-sentence summary. I’ll never forgive myself for ordering some god-awful <em>Rugrats</em> game on the Game Boy Color out of a Sears catalog. What a letdown. The concept of eBay was particularly interesting to me because you could get things used for a pretty good deal. He was into Magic: The Gathering and would order cards. I remember the first thing I bought off Amazon was a used copy of <em>Tell All Your Friends</em> by Taking Back Sunday and my little brother got a used copy of <em>I-Ninja</em> for the Gamecube. When that package finally arrived I was literally shaking with excitement. Still one of my all-time favorite albums too, not ashamed to admit it.</p>

<p>Later, I started selling some of my random junk on eBay. I’m not really sure how but I just figured out how to do it. I 100% lied about my age when I signed up for the account and typed in my mom’s bank account info. I actually still have and use the very eBay account. My eBay account is older than most people alive. That was a real thrill. I also bought some stuff like a Palm Pilot. Again, getting things used for a good deal when you have no money is awesome.</p>

<p>When I was around 13 my parents got divorced. We’d go to my Dad’s every other weekend and it was mostly super boring, we’d just sit around. Because we didn’t live with him full-time, we didn’t have any friends or anything to do. He had a computer with broadband I’d use to browse the web. Around this time, some friends told me about the website AlbinoBlackSheep.com as well as StupidVideos.com. I loved watching those animations. “Someone has set us up the bomb”. What a legend!</p>

<p>That amount of unsupervised time bored on a computer combined with the fact that I was also in the throes of raging puberty meant I ended up dabbling a bit in the “dark arts”. I’d check out IGN.com and they had a whole section called “babes”. It wasn’t pr0n, strictly speaking, mostly hot chicks in bikinis kind of thing. That was the ultimate forbidden fruit but I’m glad I never took it further than that. I was pretty naive about all that stuff, really, which probably means that I was raised in a good way.</p>

<p>This boredom eventually led me to find some cool web forums. There was a group called “AGD Interactive” who was working on a <em>Quest for Glory II</em> VGA remake and I had fun reading their forum. I also was a big fan of <em>The Aquabats</em> and they had a fun forum that I enjoyed hanging out on as well. Kids at school told me they were using <a href="https://en.wikipedia.org/wiki/MSN_Messenger">MSN Messenger</a> to chat so I picked that up, but I don’t recall using it much. It just wasn’t the same as talking to my 6th grade girlfriend on AIM.</p>

<p>As I got into high school, I started learning more about programming and I found DreamInCode.net which was a programming-focused web forum. I had fun reading it and posting some of my homework questions there. It just felt like a cool place to hang out, but I think my experience there was pretty short-lived.</p>

<p>Towards the end of the 2000’s, my brother learned how to torrent things so we spent a lot of time on The Pirate Bay getting music, movies, and games. This was still pretty much pre-mass digitalization with the exception of maybe iTunes, so it really felt again like it was opening up the world of possibilities. I could watch pretty much any TV show or movie and listen to any music. I never really got into the video game torrenting because it was pretty complicated and also seemed to have a lot of viruses. I remember seeing a <a href="https://en.wikipedia.org/wiki/Razor_1911">Razor 1911</a> cracktro which really blew my socks off.</p>

<p>One day in 2008, my friend called me on my cell phone and said “Dave, have you heard of Facebook?” and I was like “yeah that stupid thing like myspace?” and he was like “Yeah, but it’s actually really cool. Pretty much the whole school is on there.” I asked if my current crush was on it and he said yeah, so I was in. Maybe it seems like my favorite thing about the internet is the ability to chat with hot chicks all day, I’m just now realizing that. Maybe there’s a lesson there. I liked Facebook a lot. I liked writing on other people’s “Wall” and chatting with my friends from school. I got probably too into it. But man, it was really cool. I’d go hang out with hot chicks, they’d take a bunch of really stupid photos, and then they’d upload them the next day or so and then we got to kind of relive it and make sure everyone else knew how left out they were. It asked about your political affiliation and I remember putting down “social democrat”. How incredibly edgy of me to do so in 2008. I think Facebook was pretty much in a continual downward spiral from that time and around 2018 I deleted my account and haven’t looked back. I sort of wish I could browse Marketplace but it’s just not worth it. Even the stuff my friends who still use it talk about seems really incredibly stupid and toxic. I think I called it a <a href="/social-media-platform-outlook.html">“boomer dementia ward”</a> and it feels pretty accurate.</p>

<p>I’ve always enjoyed YouTube and they seem to have done a pretty good job keeping the platform alive. At first it seemed like a continuation of joke sites like StupidVideos, but then it developed its own culture with big creators gaining large followings. I was never really that into it, but I think the first influencer I really got into was Casey Neistat back in the daily vlog days. It feels like a lifetime ago and I honestly have no clue how he pulled it all off. Looking back, a lot of the content was super vapid but hey, Obama was president, we finally climbed out of a recession, and things were looking pretty good! I still watch more YouTube than I’d like to admit but I’m finding a lot of my favorite channels becoming pretty boring and stale. It feels like there just isn’t that much to make videos about. One honorable mention would be <em>Tor’s Cabinet of Curiosities</em>. It’s kind of like <em>Depths of Wikipedia</em> in YouTube form.</p>

<p>Around 2012 I had a friend who introduced me to Reddit and I got really into it for a while. I remember just looking at the memes and laughing my absolute butt off. It felt politically fresh, socially aware, and smart. Within a year or two I think the veneer started to wear pretty thin. The interactions that seemed smartly sincere started looking more like karma farming. It just felt inauthentic and self-absorbed. One day I just decided I was done and I haven’t really been back since. I’ll still read the occasional thread when I’m trying to figure something obscure out, but the quality is really really low. Sometimes I’ll look at super small/niche subreddits and gawk a bit at how sad it seems. It doesn’t help that they’ve changed the web UI to be so bad it’s nearly unusable and I’m not going to jump through a bunch of hoops to just occasionally look at some super low quality thread about which Gundam OVA I should watch. Today I actually think Reddit is about one of the overall worst places on the internet. I mildly despise it and have a hard time respecting anyone who spends much time there. I think it’s bad for you mentally and emotionally and gives you a really poor outlook on what the real world is like. I’ve actually developed an informal rule about Reddit advice: You should hold the Reddit consensus and the <em>exact opposite</em> view of the Reddit consensus in equal standing. If Reddit strongly agrees that heavy things are the best, you should also consider that light things might also be the best. That rule has helped me out more times than I can count. If your experience there is different, that’s totally fine and you should keep at it. That’s just how I feel about it!</p>

<p>Some time in high school, possibly prompted by that epic <em>Razor 1911</em> cracktro, I got interested in chip music. Actually, I know exactly how I got into it: I was making an Aquabats point-and-click adventure game. Funny how both of those early web forums I got into combined to lead me to another big interest. There was a big forum called 8bitcollective that was the main place everyone hung out but it just felt a little too “internet-y” to me and I never loved it. Then, another forum called chipmusic.org popped up and it felt more focused, more mature, a bit stricter, but also more fun. People were posting really cool and interesting work back in those fairly early days of Game Boy modding. These days retro gaming is fully commoditized but at that time it was still pretty niche. You could find an original DMG in decent shape for $20 or less. I became a daily visitor of chipmusic.org (dubbed cm.o) for several years. It was through this, that I would start my business Catskull Electronics which probably needs its own lore drop. That experience eventually took me to parts of the world I could have only dreamed about and connected me with good friends spread pretty much anywhere people live. Eventually as everything online conglomerated to Reddit, Facebook, and later Discord, cm.o mostly died out. I’m not sure when it happened but people stopped posting. I still visit every now and then but it’s a ghost town. I assume that most of the people there, like me, moved on to other interests as time went on.</p>

<p>Around the time I swore off Reddit, another friend introduced me to news.ycombinator.com aka “Hacker News”. It felt similar to what I liked about Reddit and earlier forums. Discussions felt more authentic and it felt like a lot of commenters were a bit more plugged into the day-to-day reality of the real world. It felt a bit like being able to take a window seat to the insane hustle going on in Silicon Valley back in the early/mid 2010’s. When I decided to jump ship on a startup in 2020, I found my next job through a Hacker News “Who’s Hiring?” post. Of all the online communities I’ve been a part of, I think HN has had the most direct impact on my real life, since that job provided my income for 5 years and was a huge and amazing learning opportunity for me. Travelling to and working for a “Bay Area startup” felt like something out of a fairy tale.</p>

<p>Today I still read a lot of Hacker News and I feel like it’s a pretty good way to keep your finger on the pulse of the tech industry, but the veneer has started to wear thin. It’s run by a very much for-profit venture capital firm that is very much incentivized to serve their own best interests. A really good post on this topic is <a href="https://xn--gckvb8fzb.com/the-mysterious-forces-steering-views-on-hacker-news/">The Mysterious Forces Steering Views on Hacker News</a> from マリウス.com.</p>

<p>Back in August of 2025, around the time I burnt out from my position at that acquired startup, I published a <a href="/what-the-hell-is-going-on-right-now.html">pretty emotional and scathing response</a> to the “AI” craze titled “What the hell is going on right now?” To my surprise, someone posted it to Hacker News and it started trending on the front page. I literally woke up one morning and during my morning business noticed it was in my feed. I think it was even in the number 1 spot on the front page for a while. Then, suddenly it was just gone. Not on the front page, not on the second page, not on the third page, just totally gone. It literally went from around the number one spot on the front page to totally buried in about 15 minutes. I’m not completely covering my head in tinfoil here - the post was hasty and lacked a lot of substance. But it seemed to be resonating with people for whatever reason and then it was just gonezo. The mods did leave their trail, though, they edited the title to be simply “What is going on right now?” since I guess “hell” isn’t appropriate language in a Hacker News post? A quick search yields a lot of popular posts over the last decade with the exact same phrasing I used. Like I said, I still read a lot of Hacker News and I enjoy it, but I would suggest you also become familiar with how it works and what interests are being protected. YC is a VC firm <em>first</em>, and a community message board provider <em>second</em> (or maybe even last).</p>

<p>For the past couple of years, I’ve really enjoyed being in The Bullpen Discord server. I never really liked Discord, and I still don’t. Big servers are just way too busy and the chat format doesn’t work super well, in my opinion. However, we’ve got a couple of core folks in The Bullpen who I really enjoy chatting with. If it weren’t for that, I wouldn’t be writing this post since it’s there that we organized this very blog post challenge! I’ve always been super chatty at work, usually being the top chatter on the company Slack instance for better or worse. At some point I figured out you probably shouldn’t wear your heart on your sleeve that much in a professional environment, so it’s been really fun to have an outlet for that kind of “watercooler” talk. Though we’ve all worked together at various times, it’s not a company-sponsored thing so it feels a lot more free and honest. Actually the real lore drop here is that I originally created <em>The Bullpen</em> as a hipchat private room when we all worked in this weird windowless room and I unscrewed the lightbulbs. Then I left that job, and the company banned off-topic chats on the company hipchat, so they made it a Discord server but none of them told me until years later! I also really like Discord’s voice and video, I really think they have the best-in-class offering there.</p>

<p>I think my real favorite place on the internet is personal blogs. I really enjoy finding random blogs and personal sites. There’s no algorithm to be gamed. Most of it is just shouting into a void. But crazy nerds like me spend time and effort on our digital gardens. Motivations are mixed, but there’s just nothing like coming across a cool personal site. I can subscribe with my RSS reader and stay up to date.</p>

<p>As an antithesis to personal blogs, I really don’t care for Substack. Having a “Subscribe?” modal pop up on every post is just annoying! I don’t like the community there either. Maybe I just don’t really care for <em>any</em> online “community” since they inevitably become an echo chamber for whatever “the algorithm” likes the most. I’m not a full “dead internet theory” believer, but there definitely is a lot of fake and inauthentic activity on all online social platforms. It seems people will do anything for fake internet points and state-sponsored actors are pretty good at steering the “consensus” in the direction they want.</p>

<p>I’ve been a Wikipedia reader for as long as I can remember. I <em>love</em> reading Wikipedia. I like knowing a little bit about a lot of things. I understand the limitations of the platform. It’s not free from bias. Individual articles vary <em>wildly</em> in quality. But as a way to get a rough, 1,000-foot view of something, Wikipedia is the best. Did you know if you sign in to an account they’ll actually send you a “Wikipedia wrapped” at the end of the year? I also really like the Wikipedia mobile app. If you want to keep tabs on what I’m Wiki’ing lately, check out my <a href="/wiki">/wiki</a> page, or even <a href="/wiki.xml">subscribe to the RSS feed!</a>.</p>

<p>It’s a bit difficult to even talk about “the internet” as a single concept. Maybe I have an outdated idea, but I don’t really consider “the internet” to be any connected service. I primarily consider it to be the thing you view with a web browser. Maybe “the internet” to me really means the World Wide Web. A smart light switch isn’t “the internet” even if it needs an internet connection to operate. I think that concept is already changing drastically with huge platforms like Roblox. As much as we want to gallivant about making a “new internet”, I think it’s already happened. I don’t think my kids know how to use a web browser or really even have an understanding of the concept. But they play online games. They watch videos. The internet has become the services that operate using a public network connection and the World Wide Web is nearly a relic of the past. But I think I’ll still be here in 50 years, drafting blog posts in nano, sending emails, and subscribing to RSS feeds. I wouldn’t be surprised if I become a modern ham radio operator, but instead of broadcasting airwaves from my basement, I’ll be blogging, connecting with other crazy people who are like-minded enough to figure out how to use the ancient technology.</p>

<hr />

<p>My friends and I decided to do a weekly blog challenge for the month of April, 2026! Each week, one of us chooses a prompt and we all write posts.</p>
<p>For week 2, Jared chose the prompt:<br /> "<b>What are your favorite places on the internet or favorite things about the internet and why? How do they differ from the parts of the internet that you dislike?</b>"</p>

<p>My friends' posts this week:</p>
<ul>

<li>Sam: <a href="https://samwarnick.com/blog/internet-driven-memories/">Internet Driven Memories</a></li>










<li>Carter: <a href="https://carter.works/blog/2026-04-14-my-favorite-places-on-the-internet/">My favorite places on the internet</a></li>










<li>Jared: <a href="https://jaredezz.tech/posts/preferred-corners-of-the-internet/">My Preferred Corners of the Internet, and Why I Spend My Time There</a></li>



























































</ul>

<p><strong>My other posts in this series:</strong></p>
<ul>

<li><a href="/april-blogging-challenge-wrapup.html">April Blogging Challenge Wrap-Up</a></li>

<li><a href="/doing-the-most-good.html">Doing the most good</a></li>

<li><a href="/how-i-compute-2026.html">How I Compute (2026)</a></li>

<li><a href="/nintendo-announces-3ds-successor-3ds-plus.html">Nintendo announces 3DS successor '3DS Plus'</a></li>

</ul>]]></content><author><name>catskull</name></author><category term="blog challenge 2026" /><category term="lore" /><category term="meta" /><category term="internet" /><summary type="html"><![CDATA[The Internet is a vast place. It didn’t always exist. It might go away someday.]]></summary></entry><entry><title type="html">Re: Opinions [about vibe coding]</title><link href="https://catskull.net/re-opinions-about-vibe-coding.html" rel="alternate" type="text/html" title="Re: Opinions [about vibe coding]" /><published>2026-04-10T18:07:50+00:00</published><updated>2026-04-10T18:07:50+00:00</updated><id>https://catskull.net/re-opinions-about-vibe-coding</id><content type="html" xml:base="https://catskull.net/re-opinions-about-vibe-coding.html"><![CDATA[<p>Reader George writes in with this:</p>

<blockquote>
  <p>Hello,</p>

  <p>What do you think about Vibe Coding and AI-Software Development? My fellow developers use it but it feels very stupid to me. Seriously, you are effectively making AI do your work. You do some job but you have no idea what’s going on. This AI bubble made people braindead. I haven’t even talked about maintenance hell it causes. Hackers are too happy they easily exploit these rookies. When I tell these, they ignore me.</p>

  <p>Dang, I wonder what we’ll see in the next few years.</p>
</blockquote>

<p>Over the course of my career, I’ve developed a small informal list of “DeGraw’s Laws of Software Engineering”. I’ve recently been moved to create a 4th law:</p>

<blockquote>
  <p>Any proposed efficiency gains from using LLM and AI tools will be consumed twofold by discussion and debate surrounding said efficiency gains.</p>
</blockquote>

<p>Yet, here I am writing this blog post. Ironic.</p>

<p>Disclaimer: In this post, when I use the term “AI”, I use it as a colloquialism for the large language model based tools such as ChatGPT and Claude Code. I reject the term “AI” in general as it implies we even have a good definition of what intelligence is, much less what artificial intelligence might look like.</p>

<h2 id="no-new-problems">No new problems</h2>

<p>I don’t believe that AI development tools have introduced any new problems in software development. Crappy code has existed as long as code has. Lazy developers have existed forever. I’ve worked with people who could write and ship great code that powered real features that made people’s lives better. I’ve also worked with people who were either incompetent or simply didn’t care enough about their work to strive for quality or greatness. It’s not surprising to see that the exact same spread of developers are now using AI tools with more or less the same spread in quality. Perhaps it’s accelerated the overall quantity of code being written, but I also don’t think simply more volume is a problem either.</p>

<p>For example, I’ve seen AI bots review a pull request on every push. With each push, there will be a fresh batch of comments from the bot, not just on the newly pushed code, but on <em>everything</em>. Before AI tools, if a coworker reviewed your PR and left a batch of comments, which you fixed, and then that coworker re-reviewed and left a fresh batch of comments on the previous code they didn’t see the first time, that coworker would be bad at reviewing pull requests. It’s not a new problem. If I download 300 lines of code from GitHub and submit them as my own without ever reading or understanding them, I would be an unskilled developer. If I have AI write my code and I expect you to read it and make sure it works, I’m a bad developer. I suppose you could argue that the <em>scale</em> at which these problems seem to be manifesting is itself a new problem, but for my purposes here I don’t believe it is.</p>

<h2 id="learn-the-tool-dont-tool-the-learn">Learn the tool, don’t tool the learn</h2>

<p>I keep saying this and I know it makes no sense. What I mean by it is just use the tool as is. Don’t build a ton of custom stuff to make the tool work better. I think particularly with the fundamental way that LLM tools work, adding hundreds of lines of “context” and additional instructions is a real foot gun. There’s hype and there’s this existential dread that this AI tool feels like it’s better at my job than I am, so then what do I do to protect myself? I must become an expert at the tool! I think that thinking is counterproductive. Think about someone who is an expert user of their code editor. We’ve all worked with the hardcore vim, DVORAK-toting, custom-Linux-distribution people. Rarely are they “better” at their job than someone who’s using the built in terminal and Notepad++. I’m not arguing against building proficiency with your tools. I’m not saying you shouldn’t seek out and use the best tools for your job. But if you have to buy a thing and spend an entire work week tweaking and learning how to use it “correctly”, you’re probably trying to optimize the wrong thing.</p>

<p>I’m only about a month into my use of Claude Code. I came in pretty blind. I don’t participate in the zeitgeist surrounding it. I don’t really talk to people about it. I don’t know the latest and greatest tips and tricks. I couldn’t tell you what the difference between “medium” and “high” effort is; I couldn’t even tell you how to change the level of effort. I don’t optimize my workflow to make things easier for Claude. I give it pretty stupid queries. I work in small increments and iterate. Just like I did before I used AI tools, I commit frequently and when I go off in the wrong direction, I’ll revert my changes. I don’t actually know what a “skill” is. I have a vague understanding of what an “MCP” is, only to the extent that it seems to allow Claude to use external services more efficiently. Just like random code off the internet, I’m skeptical of its output. I review its changes before committing (and I sure as hell review them before asking someone else to). Overall, it’s been pretty good. I rarely open my editor any more.</p>

<p>I also like using Claude to explain things to me. It’s eliminated a lot of the vocabulary friction I run into when trying to pick up new technologies. Is it a hash or an object? Is it an input or a prop? It’s really good at that.</p>

<h2 id="disclosure-is-important">Disclosure is important</h2>

<p>It’s a bit ironic to me that some people feel afraid to acknowledge their AI use. Again, it’s not a new problem. One time I was interviewing with a company and they sent me a little take home challenge. It was tricky. I banged my head against it for a bit and then turned to Stack Overflow. I tried out the solution and it worked and met all the challenge’s requirements. I actually copy pasted the Stack Overflow solution with a comment saying that I had done so. I got the job.</p>

<p>I’m reminded of an excellent quote from possibly the greatest sports comedy of all time: <em>Cool Runnings</em>.</p>

<blockquote>
  <p>Derice, a gold medal is a wonderful thing. But if you’re not enough without it, you’ll never be enough with it.</p>
</blockquote>

<lite-youtube videoid="tYRtTqx-IK8" style="background-image: url('https://i.ytimg.com/vi/tYRtTqx-IK8/hqdefault.jpg');" title="Cool Runnings - Being Enough">
  <a href="https://youtube.com/watch?v=tYRtTqx-IK8" class="lty-playbtn" title="Play Video">
    <span class="lyt-visually-hidden">Play Video: Cool Runnings - Being Enough</span>
  </a>
</lite-youtube>
<script defer="" src="https://cdn.jsdelivr.net/npm/lite-youtube-embed@0.3.2/src/lite-yt-embed.min.js"></script>

<link href="https://cdn.jsdelivr.net/npm/lite-youtube-embed@0.3.2/src/lite-yt-embed.min.css" rel="stylesheet" />

<p>If you feel like you’re not smart enough to write a blog post yourself and instead you need AI to write it for you, then using AI and then lying about or not disclosing it won’t make you smart enough. In fact, it will make you look even worse. It makes it look like you not only think you are stupid, but that every one of your potential readers is also stupid. It’s fine to submit a pull request that you gave your best effort on, acknowledge there are major gaps in your understanding and that you’re learning, and humbly ask for feedback or help if it’s not up to par. Acknowledging that you lack skill or knowledge is the first and <em>only</em> step you can take to gain skill or knowledge.</p>

<p>I find Claude Code’s default behavior when committing to be a really sensible default here. It will use your credentials, but tag Claude Code as a co-author. There’s been some debate about whether this means you should disclose <em>all</em> tool use, but that’s stupid in my opinion. When I copy and paste code from Stack Overflow, which I have done multiple times, I leave a comment linking to the answer for future reference. It’s relevant context. The fact that I copy and pasted the code into nano is not relevant. Similarly, acknowledging AI tool use is helpful context. Perhaps we find out in a year that Opus 4.6 accidentally introduced a vulnerability every time it tried to write a <code class="language-plaintext highlighter-rouge">console.log</code> statement, somehow. Having the context of all the commits that were written using Opus 4.6 makes cleanup a thousand times easier.</p>

<h2 id="commodification-of-code-is-not-new">Commodification of code is not new</h2>

<p>Can I spot a website built with Wix.com from a thousand miles away? Yes, I can. Did the person who made that site also probably not really understand how web development worked? Yes. Is that website likely less functional than something a competent professional could churn out? Probably. Does it matter? No. The development budget for the Wix.com website was $0. Can a professional code up a better website than Wix.com for $0? Not one that values their time, and life is too short to commit acts of charity every time someone wants to put up a web page for their barbershop. Maybe the budget is greater than $0 but still not whatever a professional would charge? There have been cheap contractors available since the dawn of the internet.</p>

<p>Whenever I come across a new technology service or company, I like to look at their job postings because it gives me an idea of what they’re using to make it. The job posting is also a pretty good indication of the overall competence of the company. More often than not, the janky horrific service has been offshored. Things we have to use and don’t really have a choice like health insurance websites. I’m not saying that people simply living in certain places in the world are somehow less capable of producing quality work. But you get what you pay for and usually the cheapest labor comes from developing countries. In general I think this is good and fine actually. That gives someone else an opportunity to compete and deliver a higher quality product.</p>

<p>The fact that an otherwise nontechnical sales rep can “vibe code” up some abomination of a prototype is fine! It’s good even. We can iterate. If that person then tries to launch and sell that product without understanding how it works, well then I say good luck. This is not a new problem. Shoddy engineering is shoddy engineering. Plain and simple.</p>

<h2 id="is-code-a-form-of-art">Is code a form of art?</h2>

<p>I think this is the same debate about craftsmanship vs trades. Generally speaking, we don’t really craft things anymore. Things are still crafted, but they’re reserved for premium prices and services. Clothing used to be tailor made. Then, during the Civil War out of necessity, standard clothing sizes were introduced, because we needed uniforms to be made at a scale that hadn’t really been seen before. Today, clothing is made at an incomprehensible global scale. Here’s a quote from <a href="https://carter.works/blog/2026-04-07-im-enjoying-having-opinions/">Carter’s recent post</a>:</p>

<blockquote>
  <p>[Temu’s] parent company, Zoetop, produces 1.2 million articles of clothing <em>a day</em>.</p>
</blockquote>

<p>Is it still possible to get tailor made clothing? Yep! Maybe you should! But the vast majority of clothing is <em>not</em> tailor made. There are also a lot fewer kids running around that can’t afford clothing than there were during the Civil War.</p>

<p>I think software development <em>can</em> be a form of art. But if you’re hired to work in a mass garment factory and you wake up each day to make <em>art</em>, it’s probably not going to work out super well for you long term. Carter calls himself a “code plumber”. I’ve viewed most software development as the modern day factory/blue collar job for a long time. We’re not coding to craft works of art. We build products that are marketed and sold almost exclusively for profit. Engineering means working within constraints. Time and money are the two ever present constraints. If you work for an S&amp;P 500 and you feel like you’re coding up works of art, I’d really like to hear more about that because I think you’re going to be in for a reckoning sooner or later. Imagine if a paint contractor working on the newest mass scale subdivision project thought of themselves as an artist. I hope they go home and pump out some Bob Ross landscapes!</p>

<p>This is why personal projects are more important now than ever. This is why you should have a digital garden. If you believe code is a form of art and you are sad you don’t get to make as much art as you’d like, do it at home! I understand work is exhausting and the last thing you want to do after a frustrating day is <em>more code</em>. Separate it mentally! For me, AI tools help me care a little less about my trade and a little more about my art.</p>

<p>We do things at home because at home they can be perfect. At home, our constraints are time and interest, not money. Your blog post doesn’t need to increase revenue. You don’t have to write yourself a performance review to justify spending 18 hours optimizing the semantic HTML of your website. If you don’t care about code as a form of art, that’s fine too! Put your energy where you feel like putting it.</p>

<h2 id="disclaimer">Disclaimer</h2>

<p>This post was proofread and edited for spelling, grammar, and clarity with the help of Claude Code (Opus 4.6). You can <a href="https://github.com/catskull/catskull.github.io/commit/ce7b5285c7ea52af7228eaed3932b363d22c05d0">view the commit with Claude’s changes on GitHub</a>. Here are the prompts I gave it:</p>

<ol>
  <li>we’re going to work on my most recent blog post titled Re: Opinions [about vibe coding]</li>
  <li>there’s a youtube link that needs to be inserted with my youtube partial</li>
  <li>help me review spelling and grammar</li>
  <li>yes</li>
  <li>okay let’s double check it</li>
  <li>okay let’s triple check it</li>
  <li>let’s edit for clarity now</li>
  <li>let’s go through those one by one</li>
  <li>show me the full sentance when reviewing</li>
  <li>yes</li>
  <li>yes</li>
  <li>yes</li>
  <li>no</li>
  <li>yes</li>
  <li>let’s change to “If you work for an S&amp;P 500 and you feel like you’re coding up works of art”</li>
  <li>change to sooner or later</li>
  <li>yes</li>
  <li>no</li>
  <li>put it at the end with a new ## Disclaimer as a numbered list</li>
</ol>

<hr />

<p>Have a burning question you’d like to ask me? <a href="mailto:bro@catskull.net?subject=I%20have%20a%20question%20for%20you">Shoot me an email.</a></p>]]></content><author><name>catskull</name></author><category term="reply" /><category term="email" /><category term="AI" /><summary type="html"><![CDATA[Reader George writes in with this:]]></summary></entry><entry><title type="html">Nintendo announces 3DS successor ‘3DS Plus’</title><link href="https://catskull.net/nintendo-announces-3ds-successor-3ds-plus.html" rel="alternate" type="text/html" title="Nintendo announces 3DS successor ‘3DS Plus’" /><published>2026-04-07T00:00:00+00:00</published><updated>2026-04-07T00:00:00+00:00</updated><id>https://catskull.net/nintendo-announces-3ds-successor-3ds-plus</id><content type="html" xml:base="https://catskull.net/nintendo-announces-3ds-successor-3ds-plus.html"><![CDATA[<p>KYOTO - Nintendo announced today that they will launch a successor to their best-selling handheld dubbed the “3DS Plus”.</p>

<p>Originally launched in 2004 - nearly 22 years ago - the Nintendo DS redefined handheld gaming and became the company’s best-selling console of all time, only recently surpassed in 2025 by the console/portable hybrid Nintendo Switch.</p>

<p>Nintendo president Shuntaro Furukawa unveiled the new console on stage and highlighted a few of the console’s innovations. It will feature a 1600x960 top display as well as a 1280x960 bottom display. Representatives noted that this is an exact 5x integer scale of the resolution of the original DS and a 4x integer scale of the Nintendo 3DS, highlighting the company’s focus on both the original DS line as well as the less popular but still beloved successor, the 3DS. Like the previous handhelds, the 3DS Plus will feature a lower resistive touch screen with stylus control.</p>

<p>The console will run a slightly modified version of the 3DS’ system software, with minor changes such as support for the new higher resolution screens. Most notably, the console will not include a game card slot and will instead feature a relaunch of the Nintendo eShop where users will be able to purchase “99%” of both the DS and 3DS’ game libraries, including support for “DSiWare” titles. Analysts have commented that this is likely a decision made to streamline game ownership and curb piracy that was rampant in the original DS’ lifespan due to “flash carts”. More recent “jailbreaks” that allow users to download and install pirated 3DS games were also likely a factor in the decision.</p>

<p>Nintendo didn’t specify the new console’s CPU, but they did announce the system will have “up to 20 hours” of battery life operating on a 2000mAh battery. Other modernized features include support for Wi-Fi 7 including 5 and 6 GHz bands and Bluetooth 6. Like the 3DS, the 3DS Plus will support local multiplayer using an ad-hoc console-to-console network as well as online multiplayer. The popular “StreetPass” makes a comeback as well. The system will also feature the dual exterior cameras of the 3DS as well as the single internal camera. Nintendo did not specify the native resolution of the cameras, but from hands-on demos it appears they operate at least at the top screen’s native resolution.</p>

<p>It appears that Nintendo is also hoping to attract smaller indie developers as they also announced that any retail 3DS Plus will be able to be converted to a developer console after paying a nominal yearly fee, very similar to the approach that Apple has taken with their mobile App Store process. The yearly fee will enable developers to target the new console with modern game engines such as Unity, Unreal, and even Godot. Nintendo did not specify terms of the new eShop, but it’s expected they will take a flat percentage of digital sales.</p>

<p>The console features built in 64GB of system storage, with support for the same microSD Express cards supported by the Switch 2.</p>

<p>Perhaps the biggest question in the room was how the system will enable the unique three-dimensional display that gives the console its name. The 3DS features a stereoscopic display, and a later revision of the “new” 3DS used an infrared head tracking system to improve 3D performance. Still, many players found the display to be difficult to use. The new console instead uses an advanced gyroscopic system to enable “3D-like” images on both displays. In our hands-on preview, we found the effect to be quite compelling and much more stable and reliable than either of the previous consoles’ solution.</p>

<p>“I love the 3DS! It’s like a personal, portable, mini Nintendo Switch!” said 8-year-old Ruby who was present for the launch. “It’s so fun to be able to customize my 3DS with fun themes and play with my friends on the bus!”</p>

<p>The 3DS Plus will launch holiday season 2026 and is expected to target a retail price of $199.99 USD, positioning it nicely against the nearly $450 Switch 2 launched in June, 2025. Because of the personal, portable nature of the new handheld, it is expected that households will own multiple consoles, allowing each family member to play on their own. With the vast majority of the DS and 3DS library available at launch the console is bound to hit the ground running, rather than waiting for strong first and third party game titles to arrive.</p>

<hr />

<p>This was written as the first post in a series for a “Blog Prompt Challenge” I’m participating in. The prompt was “What’s something cool I’m caring about or into recently?”</p>

<p>I’ve been a big fan of the Nintendo DS system since I bought a DS Lite back in 2005, around the time it launched. Later I bought a 3DS XL in blue, refurb’ed from Nintendo directly. I remember being really blown away by Super Mario 3D Land and had a great time playing through it. I owned a 3DS through it’s entire lifespan, eventually selling my XL and buying a white New 3DS (non XL). Later, Nintendo had a crazy black friday special where they sold a black New 3DS (non XL) for, if my memory is correct, $99. I somehow convinced both of my brothers and my wife (well, I just did it for her) to buy a console and a copy of Mario Kart 7. We had so much fun over that Thanksgiving holiday doing local multiplayer. My brother became extremely paranoid that the game was cheating against him. I don’t think any of them really ran very far, I know my little brother sold his console off pretty quickly.</p>

<p>Years later as my kids grew up, playing the 3DS became a fun family hobby. I understand that you can play Mario Kart on the Switch in split screen, but having your own personal console is such a fun experience. It feels more special, more private. My older brother actually gifted my daughter his 3DS for Christmas a few years ago so we have a total of <em>three</em> 3DS systems in my house (now I’m a little worried about being robbed for them). Family 3DS sessions are something that happens regularly in my home.</p>

<p>That quote from Ruby was real, she actually said that a week ago. She was watching some YouTube shorts on my phone and one about the 3DS showed up and she asked me to get her 3DS for her. I keep them up on the shelf because I know how irreplaceable they are now. She asked me to get her this random Tinkerbell game and Animal Crossing which I did. She reminded me to do it the next day before she left for school and first thing when she got home she excitedly asked if I’d done it. For about two weeks she actually spent a decent amount of time in the Tinkerbell game and Animal Crossing. I feel like it must be a little biased because I love the 3DS so much, but I honestly don’t sit my kids down and force them to listen to me and it’s not like they pay attention to the 100 other things I want them to do. I think the 3DS is actually that incredible.</p>

<p>I like to be friendly to the youth at my church and in my neighborhood and I noticed recently they all want 3DS’s. What’s up with that? The thing that’s a decade old, older than most of them? I mean I love the 3DS so I talk to them about it and they’re excited an adult is interested in the same thing they are. I know of a kid who asked for <em>Pilotwings Resort</em> for Christmas this year and actually got it. Coincidentally, that’s one of my favorite 3DS games too!</p>

<p>The prices for used 3DS systems are absolutely outrageous right now! And they’re only going up and up! I’ve held the position that the Switch is the worst of two worlds. It’s a subpar console and a subpar handheld. It has a touch screen but can you think of a single game that actually makes use of it? No, because they have to support docked mode and the touch screen doesn’t exist there. It doesn’t feel very personal. Nintendo recently made some strides with their “virtual game cards” and the ability to loan them to people, but it feels like too little too late. I think most households own a single Switch console and the premise of owning multiple is very uncommon. The DS had download play, you could actually do multiplayer with just a single cartridge between consoles. The Switch has no such ability. The 3DS had StreetPass, encouraging you to take it out with you in public to interact with other owners. The Switch has no social features like that.</p>

<p>Recent Chinese handhelds have emerged such as the Ambernic RG-DS but it’s bad. Nintendo really knows how to make great portables and I just really want them to start doing it again. I firmly believe if they were to relaunch the 3DS even <em>without</em> any of the upgraded features I laid out, they’d sell like hot cakes.</p>

<p>I do have an incredible soft spot for the original DS. The one issue with the 3DS is that it’s actually not that great for playing original DS titles. The screen just doesn’t upscale well enough, it uses some non-integer scale factor that just looks bad. For that reason, I own a DS Lite that I prefer to play my original DS games on, and recently I’ve been playing a <em>lot</em> of DS games.</p>

<p>In the mid-late 2010’s I would scour my local classifieds and pick up any and all DS systems I could. $30 for the console and 8 of the absolute worst shovelware titles of all time was my jam. I ended up with a few that were in really bad shape, but one DS Lite that was in “ok” shape. I played on it a lot but eventually I decided I really wanted to try out a DSi since I’d never actually used one.</p>

<p>About a month ago I loaded my 5 year old up in the car and we went hunting for a DSi. I wasn’t sure what I wanted, but I just wanted something in mostly “like new” condition. We hit up about 4 local pawn shops with absolutely no luck. Then, just one more in town. They had an absolutely <em>mint</em> red Mario 25th Anniversary DSi XL with a bunch of accessories and shovelware for $200. I’m talking it has the original stylus level mint. I tried to haggle because I didn’t want any of the accessories but they wouldn’t budge. I walked away.</p>

<p>We went to Target to look at the Switch 2 since my son has really wanted to play the new Donkey Kong game and keeps talking about it. I was close, but they had a console to play demos on and he just wasn’t that into it. Plus the price tag just feels so high - $450 for just the console with no games or $500 if you can find a Mario Kart World bundle (a savings of $20 since most first party titles now run $70 individually). I just couldn’t swallow it considering there are only two games that really feel like it’s worth owning the system for right now - Mario Kart and Donkey Kong. Not to mention I have all the same gripes with it I have with the Switch - it’s a bad handheld and an even worse console. Do one thing well! I would love to see the data because my gut says the vast majority of Switch consoles spend nearly all their time either docked or in handheld. I doubt most users do both frequently. Kids probably play in handheld mode, adults probably play docked. That’s my guess at least.</p>

<p>I mean for heaven’s sake the hottest news recently is the ability to play a GameBoy Advance Pokèmon game on it? Seriously? I think it’s great that Nintendo is letting us play their old games without piracy, but that’s something <em>checks notes</em> the 3DS could have done 10 years ago! They’re not exactly giving me a reason to run out and buy a Switch 2.</p>

<p>After we had fun looking at the Switch 2, I decided that DSi XL was exactly what I had set out to find, and I wouldn’t likely see another one locally for a decent price any time soon. We went back and I bought it, shovelware and all. I listed all the loose games on eBay but only three have sold - two copies of <em>Nintendogs</em> and a copy of <em>Mario Kart DS</em>. I think that roughly brought my out of pocket down to the $170 range which still felt like more than I wanted to spend, but I’m happy. I doubt the rest of the shovelware will sell so I’ll keep them around. Who knows, maybe there’s a <em>Tinkerbell</em> in there that my kids will want to play some day.</p>

<p>I have absolutely <em>loved</em> my DSi XL. Compared to the DS Lite, the buttons are clicky like the 3DS. I honestly think my DS Lite was worn enough that I was having a hard time with some button presses such as holding B to run in <em>New Super Mario Bros.</em>. I’ve already played through 4 games on it, so my investment feels very much worth it. If you’re interested to know <em>what</em> I’ve been playing, well, you’ll have to wait till next year when I publish my annual “games I beat” post. Until then, you can catch up on <a href="/every-game-I-beat-in-2025.html">what I played last year</a>, or <a href="/games-i-played-in-2024.html">the year before</a>.</p>

<p>Nintendo, please make the 3DS again. Just start selling them. A digital storefront with the entire back catalog will allow you to maximize profit and minimize expense. You don’t need to deal with physical game publishing. You could be generous and offer a way to let me port my physical games in to the digital store, but I think there are enough new players out there you’d still sell a zillion consoles even without that ability. Hardcore gamers already hate you, I don’t think this will move the needle on that either way. The 3DS is a great first device for kids especially. It has social communication features that currently parents have to lean to a phone for, but phones are not good for kids. Pictochat has way less possibility of causing major harm than Snapchat. Just do it. Please. We want to play a small, portable, perfectly executed console. People still want their Switch 2 to play Breath of the Wild at a respectable framerate, but just as many kids out there want to experience <em>Phantom Hourglas</em> and <em>A Link Between Worlds</em> for the first time.</p>

<hr />

<p>My friends and I decided to do a weekly blog challenge for the month of April, 2026! Each week, one of us chooses a prompt and we all write posts.</p>
<p>For week 1, Sam chose the prompt:<br /> "<b>What's something cool I'm caring about or into recently?</b>"</p>

<p>My friends' posts this week:</p>
<ul>

<li>Sam: <a href="https://samwarnick.com/blog/four-keys-book-arts-and-project-hail-andy/">Four Keys Book Arts and Project Hail Andy</a></li>










<li>Jared: <a href="https://jaredezz.tech/posts/the-nature-of-prototyping/">The Nature of Prototyping in Professional Development</a></li>










<li>Carter: <a href="https://carter.works/blog/2026-04-07-im-enjoying-having-opinions/">I'm enjoying having opinions</a></li>



























































</ul>

<p><strong>My other posts in this series:</strong></p>
<ul>

<li><a href="/april-blogging-challenge-wrapup.html">April Blogging Challenge Wrap-Up</a></li>

<li><a href="/doing-the-most-good.html">Doing the most good</a></li>

<li><a href="/how-i-compute-2026.html">How I Compute (2026)</a></li>

<li><a href="/the-internet-is-a-vast-place.html">The Internet is a vast place.</a></li>

</ul>]]></content><author><name>catskull</name></author><category term="fan fiction" /><category term="nintendo" /><category term="blog challenge 2026" /><summary type="html"><![CDATA[KYOTO - Nintendo announced today that they will launch a successor to their best-selling handheld dubbed the “3DS Plus”.]]></summary></entry></feed>