<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>Kyle Nazario</title><link href="https://kylenazario.com"/><link rel="self" href="https://kylenazario.com/rss.xml"/><updated>2026-05-08T02:58:54.283Z</updated><id>https://kylenazario.com</id><author><name>Kyle Nazario</name><email>kylebnazario@gmail.com</email></author><subtitle>Frontend web developer, app tinkerer and TypeScript enthusiast.</subtitle><entry><title>Everything should stay</title><link href="https://kylenazario.com/blog/everything-must-go-review"/><updated>2026-05-02</updated><id>https://kylenazario.com/blog/everything-must-go-review</id><content type="html">&lt;img src="/img/station-eleven.webp"&gt;&lt;caption&gt;The Station Eleven TV show (Ian Watson / HBO Max)&lt;/caption&gt;&lt;p&gt;I went to the hospital in February. Not intentionally either! I'd gone up to &lt;a href="https://www.skithebeav.com"&gt;Beaver Mountain&lt;/a&gt; on a warm Saturday to ski. During my second run, I tried a hard left turn to slow down and go onto a catwalk through some trees. I messed up the turn and accomplished neither. Instead, I hit a tree at high speed, broke my scapula and got a concussion. Or so I'm told. I don't remember it. &lt;sup&gt;&lt;a href="#fn-1" id="user-content-fnref-1" data-footnote-ref="" aria-describedby="footnote-label"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The Beaver ski patrol, who I cannot thank enough, heard the crash from the lift. They cut my jacket off me, got me down the mountain and onto the waiting helicopter. The lifelight flight took me to the emergency room in Ogden. I woke up confused Sunday morning. My spouse told me I'd had an accident and was in the hospital. Apparently I muttered, "What the fuck?" and fell asleep.&lt;/p&gt;
&lt;p&gt;The three months since have been difficult. Did nothing but sleep for two weeks, and nothing but physical therapy after that. &lt;sup&gt;&lt;a href="#fn-2" id="user-content-fnref-2" data-footnote-ref="" aria-describedby="footnote-label"&gt;2&lt;/a&gt;&lt;/sup&gt; But, I've recovered. My scapula healed and my concussion's gone. I'm even running again.&lt;/p&gt;
&lt;p&gt;I felt powerless. This accident happened because I skied too fast and messed up, but it could have been anything. People get in car crashes every day. Any of us is one fall in the bathtub from doctors asking you who's president. There are no guarantees in life.&lt;/p&gt;
&lt;p&gt;This brush with mortality colored my experience reading the 2024 book &lt;a href="https://www.goodreads.com/book/show/201730880-everything-must-go"&gt;&lt;em&gt;Everything Must Go: The Stories We Tell About the End of the World&lt;/em&gt;&lt;/a&gt; by Dorian Lynskey. Lyskey uses an impressive swathe of apocalyptic pop culture, from the Book of Revelation to Bo Burnham's &lt;a href="https://en.wikipedia.org/wiki/Bo_Burnham:_Inside"&gt;&lt;em&gt;Inside&lt;/em&gt;&lt;/a&gt;, to interrogate the human psyche.&lt;/p&gt;
&lt;p&gt;Sometimes writing about the end of the world is a way to express our fears. Much science fiction after World War II, for example, is colored by terror of nuclear war.&lt;/p&gt;
&lt;p&gt;I was struck, though, by how much apocalyptic fiction Lynskey mentions is wish fulfillment. Some people can't wait for the world to end.&lt;/p&gt;
&lt;p&gt;Take the people disgusted with modernity. The 1800s artist William Morris wrote in a letter:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have no more faith than a grain of mustard seed in the future history of "civilization", which I know now is doomed to destruction, probably before very long: what a joy it is to think of! And how often it consoles me to think of barbarism once more flooding the world, and real feelings and passions, however rudimentary, taking the place of our wretched hypocrisies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;An artilleryman in &lt;em&gt;The War of the Worlds&lt;/em&gt; expresses even more venomous sentiments:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"We can’t have any weak or silly," he explains. "Life is real again, and the useless and cumbersome and mischievous have to die. They ought to die. They ought to be willing to die. It’s a sort of disloyalty, after all, to live and taint the race."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Modern life, according to these people, is fake. Soft. Cushy. Apocalypse will free us.&lt;/p&gt;
&lt;p&gt;Perhaps I am still affected by the blow to my head from hitting a tree, but yearning for apocalypse is a joke. Asking the "useless and cumbersome" to die, as if those were intrinsic qualities. As if all of us are not one bad fall away from broken bones or sprains or any number of disabling injuries. Live long enough and everyone picks up a disability or two.&lt;/p&gt;
&lt;p&gt;The truth is barely anyone would make it in the apocalypse. We all rely on government, society and medicine to keep us alive and healthy.&lt;/p&gt;
&lt;p&gt;I found &lt;a href="https://en.wikipedia.org/wiki/Station_Elevenhttps://en.wikipedia.org/wiki/Station_Eleven"&gt;&lt;em&gt;Station Eleven&lt;/em&gt;&lt;/a&gt; refreshingly brutal on this point. In Emily St. John Mandel's novel — written six years before COVID — influenza has killed most humans on the planet. Survivors live a dangerous, short, dirty existence. One character in a wheelchair dies by suicide shortly after the outbreak. His decision goes unexplained, but my impression was he felt there was no hope for someone like him.&lt;/p&gt;
&lt;p&gt;You don't see these details in many post-apocalyptic stories. Personally, I'm used to end-times tales like &lt;a href="https://en.wikipedia.org/wiki/Zombieland"&gt;&lt;em&gt;Zombieland&lt;/em&gt;&lt;/a&gt;, where the apocalypse becomes an excuse to &lt;a href="https://www.youtube.com/watch?v=IHYe3m1ajPU"&gt;go on a shopping spree&lt;/a&gt;. Rarely is The After unsentimental and... gross. But it would be. We are all creatures of modern society. Who knows how many people would be dead without antibiotics alone.&lt;/p&gt;
&lt;p&gt;Do not yearn for apocalypse. There will be no one to take CT scans and make sure your scapula heals. A twisted ankle or rogue infection might really be the death of you. And if you survive long enough, you'll just become "useless and cumbersome" to some crazy artilleryman living in a tunnel.&lt;/p&gt;
&lt;section data-footnotes="" class="footnotes"&gt;&lt;h2 class="sr-only" id="footnote-label"&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li id="fn-1"&gt;
&lt;p&gt;A tremendous gift. Don't need to remember the scariest 30 seconds of my life. &lt;a href="#user-content-fnref-1" data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn-2"&gt;
&lt;p&gt;Funnily, my physical therapist already knew the details of my accident when we met. He is on the Beaver ski patrol. &lt;a href="#user-content-fnref-2" data-footnote-backref="" aria-label="Back to reference 2" class="data-footnote-backref"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content><summary>What we're talking about when we talk about the end of the world.</summary></entry><entry><title>Why I am frustrated with Windows</title><link href="https://kylenazario.com/blog/windows-trust-annoyance"/><updated>2026-03-25</updated><id>https://kylenazario.com/blog/windows-trust-annoyance</id><content type="html">&lt;p&gt;I recently partitioned the hard drive of my gaming PC and installed &lt;a href="https://system76.com/pop/?srsltid=AfmBOooN-tY36rWVNpBGAzFCdqZ5nwblQ0U70wU9ygUwxh44OgkkNYk5"&gt;Pop!_OS&lt;/a&gt; alongside Windows 10. Spent the last few weeks beating &lt;em&gt;Resident Evil Requiem&lt;/em&gt;, entirely on Linux.&lt;/p&gt;
&lt;p&gt;I wouldn’t have installed Linux if not for Windows' behavior the last few years. Desktop Linux has annoyances, but the delta between it and Windows has shrunk. Hell, Windows might be more annoying.&lt;/p&gt;
&lt;p&gt;Consider the upgrade nag for Windows 11. Sometimes when I open my computer, it implores me with a full-screen message to update to 11. &lt;a href="https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281"&gt;10's not supported anymore&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But I threw my gaming PC together out of spare parts. I don't have &lt;a href="https://support.microsoft.com/en-us/windows/enable-tpm-2-0-on-your-pc-1fd5a332-360d-4f46-a1e7-ae6b0c90645c"&gt;TPM 2.0 enabled&lt;/a&gt;. The aforelinked support page claims most motherboards can enable it. Not sure if mine can. I might be able to &lt;a href="https://learn.microsoft.com/en-us/answers/questions/2121461/install-windows-11-without-secure-boot-on-an-unsup"&gt;skip the check&lt;/a&gt;, but that process looks tedious.&lt;/p&gt;
&lt;p&gt;I dismiss the Windows 11 nag, every time, with no option to stop it from reappearing. It, in its own small way, is a perfect example of what bothers me about Windows. The 11 modal is unstoppable, yet unhelpful. It does nothing to help me get onto a supported OS. But, Microsoft put it in Windows 10 because some number of users &lt;em&gt;will&lt;/em&gt; be able to upgrade to 11. They’ll click upgrade, and that click will get recorded in a database somewhere. Come yearly reviews, the Microsoft employee who designed this annoying, disruptive modal can point to the exact number of people who upgraded because of it. It will be viewed as a success.&lt;/p&gt;
&lt;p&gt;No matter I, a mere end user, hate the modal and its intrusion into &lt;em&gt;my&lt;/em&gt; PC. It might nudge some number of people into goosing the right metric. A Microsoft employee I’ll never meet will be promoted for making my computer worse.&lt;/p&gt;
&lt;p&gt;Once you start looking for annoying designs, you see them everywhere in Windows. Windows Search &lt;a href="https://github.com/mozilla/platform-tilt/issues/14"&gt;opens results in Edge instead of the user’s default browser&lt;/a&gt;. &lt;a href="https://www.osnews.com/story/140588/microsoft-is-bringing-annoying-windows-11-start-menu-ads-to-windows-10/"&gt;Ads are in the Start menu&lt;/a&gt;. Everything saves to OneDrive by default.&lt;/p&gt;
&lt;p&gt;The Windows team &lt;a href="https://web.archive.org/web/20260202052615/https://www.theverge.com/tech/870045/microsoft-windows-11-issues-rebuilding-trust-notepad"&gt;claims&lt;/a&gt; to be listening and "improving system performance, reliability, and the overall experience of Windows." They're even &lt;a href="https://www.windowscentral.com/microsoft/windows-11/microsoft-is-putting-an-end-to-microslop-on-windows-11-commits-to-reducing-copilot-across-system-apps-and-interfaces"&gt;removing Copilot from Notepad&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Such changes, while welcome, are too little and too late for me. Windows is so annoying, I'd rather put up with Linux. Pop!_OS has flaws, but it &lt;em&gt;knows its place&lt;/em&gt;. In the two months I've used it, I have seen no:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copilot buttons&lt;/li&gt;
&lt;li&gt;Ads in OS UI&lt;/li&gt;
&lt;li&gt;Nags to update&lt;/li&gt;
&lt;li&gt;OneDrive promotions&lt;/li&gt;
&lt;li&gt;Links opening in the wrong browser&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I love that Linux has no aspirations. It wants to be just an OS, not a wholistic software platform intent on selling me things. It doesn't feel the need to change constantly. It understands if I want AI tools, I'll just install Claude Code. It doesn't subvert my decisions. It supports my hardware.&lt;/p&gt;
&lt;p&gt;An operating system should be stable and effective. It should get out of the way and do what I want, quickly. My beef with Windows is I stopped trusting it to do that.&lt;/p&gt;</content><summary>It's all about the delta of annoyance.</summary></entry><entry><title>Software companies will be fine</title><link href="https://kylenazario.com/blog/ai-replaces-code-no-products"/><updated>2026-02-10</updated><id>https://kylenazario.com/blog/ai-replaces-code-no-products</id><content type="html">&lt;p&gt;There's &lt;a href="https://www.wsj.com/tech/ai/ai-wont-kill-the-software-business-just-its-growth-story-05673e07?st=dY58vx&amp;reflink=desktopwebshare_permalink"&gt;angst&lt;/a&gt; that AI will limit software companies' market. The fear isn't unfounded. Claude Code and Codex make prototyping so fast, you can imagine vibe-coding replacements for every subscription.&lt;/p&gt;
&lt;p&gt;But AI tools generate &lt;em&gt;code&lt;/em&gt;, not &lt;em&gt;products&lt;/em&gt;. They cannot replace most software companies, because most companies sell products.&lt;/p&gt;
&lt;h3&gt;What is a product?&lt;/h3&gt;
&lt;p&gt;Code is code. A product is the sum of code, customer support, logistics and domain expertise. The product is the code and everything around it. It's how easy it is to buy. It's getting an answer from customer support when something breaks. It's thoughtful features designed for the business domain. It's uptime. It's regular patches and bug fixes.&lt;/p&gt;
&lt;p&gt;My first tech job was in 2019 at &lt;a href="https://servicecore.com"&gt;ServiceCore&lt;/a&gt;, a startup selling SaaS to dumpster and portable toilet companies. &lt;sup&gt;&lt;a href="#fn-1" id="user-content-fnref-1" data-footnote-ref="" aria-describedby="footnote-label"&gt;1&lt;/a&gt;&lt;/sup&gt; I worked on the UI, an Angular app, but customers didn't pay for that. They paid for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The code&lt;/li&gt;
&lt;li&gt;A team of developers, to maintain the code, add new features and fix the ones that broke over time&lt;/li&gt;
&lt;li&gt;Product owners with deep domain expertise&lt;/li&gt;
&lt;li&gt;Customer support staff, to answer questions and fix data errors&lt;/li&gt;
&lt;li&gt;Sales people, to analyze your business and help you onboard&lt;/li&gt;
&lt;li&gt;DevOps staff, to keep the servers online&lt;/li&gt;
&lt;li&gt;Countless features and bug fixes found only by real customers using the software for real use cases&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The last point is crucial. Actively maintained software is not designed once. It's designed every day based on customer feedback and real-world experience. It's not just code, it's an iterative product based on years of research, feedback, fine-tuning and testing.&lt;/p&gt;
&lt;p&gt;AI tools generate code quickly, but code is just one component of a product. Most customers want the whole thing.&lt;/p&gt;
&lt;h3&gt;The money advantage&lt;/h3&gt;
&lt;p&gt;Software companies also have a financial advantage over customers who'd prefer to replace them with an AI tool: larger addressable markets.&lt;/p&gt;
&lt;p&gt;Consider this formula for valuing any piece of software:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Tv: total value
v: value of the tool to 1 user
n: number of users

Tv = v * n
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If a company vibecodes their own software, &lt;em&gt;n&lt;/em&gt; is bounded by the number of their employees who can use it, which is bounded by total company size. Some businesses, like FAANGs, are either sufficiently large or make sufficiently valuable internal tooling that building lots of it makes sense. Most businesses fit neither description.&lt;/p&gt;
&lt;p&gt;Software companies, however, can sell to many customers. Their &lt;em&gt;n&lt;/em&gt; is bounded by their customers and customers' size. Their total possible value tends to be far larger.&lt;/p&gt;
&lt;p&gt;Now consider this formula for estimating the value of adding one new feature to a piece of software:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Tf: total value of a new feature
c: cost to add the feature
v: value of the feature to 1 user
n: number of users

Tf = (v * n) - c
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Software companies can spread the cost of improvements over a larger customer base, letting them invest more into the product.&lt;/p&gt;
&lt;p&gt;It makes no sense to hire a full-time developer for $150k a year to build internal software worth $30k. Hiring the same dev to do that for 10 customers is a no-brainer.&lt;/p&gt;
&lt;p&gt;AI hype has made some people forget the oldest and most important lesson of software: it replicates infinitely for free, so scale is everything. The more users, the more you can invest back into the product.&lt;/p&gt;
&lt;h3&gt;A slight caveat&lt;/h3&gt;
&lt;p&gt;Some apps and services are so simple, they can be replaced by AI-coded equivalents. Sometimes you just need &lt;em&gt;one thing&lt;/em&gt;, and a full product is actually overkill.&lt;/p&gt;
&lt;p&gt;I recently &lt;a href="/blog/moltbot-setup"&gt;set up OpenClaw&lt;/a&gt;, and configured it to do a simple web search for me every morning and send an alert. &lt;sup&gt;&lt;a href="#fn-2" id="user-content-fnref-2" data-footnote-ref="" aria-describedby="footnote-label"&gt;2&lt;/a&gt;&lt;/sup&gt; There are existing apps I could have used to do this, but this was simpler. No ads, no popups, no subscriptions - just the data I want, sent to my phone.&lt;/p&gt;
&lt;h3&gt;SaaS will be fine&lt;/h3&gt;
&lt;p&gt;AI will obsolete some basic software, but most commercial software products will be fine. I don't see that changing. Even if tokens cost nothing, AI couldn't do the non-code parts of the product. And even if it could, it probably doesn't make financial sense to try.&lt;/p&gt;
&lt;section data-footnotes="" class="footnotes"&gt;&lt;h2 class="sr-only" id="footnote-label"&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li id="fn-1"&gt;
&lt;p&gt;We made a lot of jokes about writing "shit code." &lt;a href="#user-content-fnref-1" data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn-2"&gt;
&lt;p&gt;Forgive the vagueness, but given OpenClaw's security issues, I don't want to tell people how to best prompt inject me. &lt;a href="#user-content-fnref-2" data-footnote-backref="" aria-label="Back to reference 2" class="data-footnote-backref"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content><summary>AI generates code, not products.</summary></entry><entry><title>Notes on setting up Moltbot</title><link href="https://kylenazario.com/blog/moltbot-setup"/><updated>2026-01-29</updated><id>https://kylenazario.com/blog/moltbot-setup</id><content type="html">&lt;img src="/img/moltbot.webp"&gt;&lt;p&gt;I run a Mac mini home server for &lt;a href="/blog/why-plex-music"&gt;Plex streaming&lt;/a&gt;, so I had to try &lt;a href="https://www.molt.bot"&gt;Moltbot&lt;/a&gt; (&lt;a href="https://mashable.com/article/clawdbot-changes-name-to-moltbot"&gt;neé Clawdbot&lt;/a&gt;). &lt;a href="https://www.theregister.com/2026/01/27/clawdbot_moltbot_security_concerns/"&gt;Major security issues notwithstanding&lt;/a&gt;, it's a cool glimpse at the future of AI assistants.&lt;/p&gt;
&lt;p&gt;However, setting up Moltbot took me most my morning. The setup docs mention features that don't work and skip required steps. Which is fine! The project's maintained by unpaid volunteers who suddenly have &lt;em&gt;way&lt;/em&gt; more users than they expected. They're doing their best.&lt;/p&gt;
&lt;p&gt;I got Moltbot working via Claude Code and Telegram, with skills, using these steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://docs.molt.bot/start/getting-started#1-install-the-cli-recommended"&gt;Install Moltbot&lt;/a&gt; using the setup script. &lt;code&gt;npm install -g&lt;/code&gt; does not work.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/quickstart"&gt;Install Claude Code&lt;/a&gt; on your machine and make sure it's signed in to your account.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;clawdbot onboard --install-daemon&lt;/code&gt; to begin onboarding. The docs say the command name is &lt;code&gt;moltbot&lt;/code&gt;, but the script still installs the alias &lt;code&gt;clawdbot&lt;/code&gt; to your &lt;code&gt;$PATH&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;When it asks for a model, choose Anthropic.&lt;/li&gt;
&lt;li&gt;In another terminal, run &lt;code&gt;claude setup-token&lt;/code&gt; to get an authentication code.&lt;/li&gt;
&lt;li&gt;In the Moltbot onboarding, pick the first option and enter your code.&lt;/li&gt;
&lt;li&gt;Follow the onboarding steps to create a Telegram bot. I tried Discord and could not get it working.&lt;/li&gt;
&lt;li&gt;Download Telegram and try to message your bot. It should give you an auth code to validate your session with Moltbot.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Moltbot should respond to queries in Telegram now. To make it really useful, add skills to the &lt;code&gt;~/.clawdbot/skills&lt;/code&gt; directory. Tread carefully! A rogue skill can tell Moltbot to do anything. There is a command line option to add skills, but it did not work for me. Instead, I've been downloading the &lt;code&gt;.md&lt;/code&gt; file and manually adding it. This prevents a malicious update to the skill, and lets me read each skill to make sure it has no unsafe content.&lt;/p&gt;
&lt;p&gt;Moltbot is exciting! I could already remote into my server with &lt;a href="https://edovia.com/en/screens"&gt;Screens&lt;/a&gt; and &lt;a href="https://tailscale.com"&gt;Tailscale&lt;/a&gt;, but I like having a natural-language interface to my computer. I've already added the &lt;a href="https://github.com/moltbot/skills/blob/main/skills/dbhurley/plex/SKILL.md"&gt;Plex skill&lt;/a&gt;, so now I can check my server over Telegram.&lt;/p&gt;</content><summary>Boy, those onboarding docs could use some work.</summary></entry><entry><title>How to quickly add video podcasts to Pocket Casts</title><link href="https://kylenazario.com/blog/watching-video-podcasts-in-pocket-casts"/><updated>2026-01-16</updated><id>https://kylenazario.com/blog/watching-video-podcasts-in-pocket-casts</id><content type="html">&lt;img src="/img/minnmax.webp"&gt;&lt;caption&gt;MinnMax during last year's Two Tens discussion.&lt;/caption&gt;&lt;p&gt;I love &lt;a href="https://minnmax.com"&gt;&lt;em&gt;The MinnMax Show&lt;/em&gt;&lt;/a&gt;. Some smart, positive, cool ex-&lt;em&gt;Game Informer&lt;/em&gt; employees and YouTubers do a two-ish hour gaming news show weekly. I'm a &lt;a href="https://www.patreon.com/c/minnmax/posts"&gt;Patron&lt;/a&gt;, so I get a private podcast feed of every episode, but the show's better in video. I like seeing footage of new games as they're discussed.&lt;/p&gt;
&lt;p&gt;I tried subscribing to &lt;a href="https://www.youtube.com/premium"&gt;YouTube Premium&lt;/a&gt; to download episodes for offline viewing, but YouTube for iOS is a bad podcast app. It &lt;em&gt;resets your playback speed&lt;/em&gt; after restarting - a capital crime for a podcast app.&lt;/p&gt;
&lt;p&gt;So I dug through the &lt;a href="https://support.pocketcasts.com"&gt;help docs&lt;/a&gt; of my favorite podcast app, &lt;a href="https://pocketcasts.com"&gt;Pocket Casts&lt;/a&gt;, and found it actually &lt;a href="https://support.pocketcasts.com/knowledge-base/video-podcasts/"&gt;supports video&lt;/a&gt; for subscribers. Tremendous feature.&lt;/p&gt;
&lt;p&gt;Unfortunately, Pocket Casts has no API for adding videos to your account. Nor does YouTube have an easy way to download files outside the app. So, I got creative.&lt;/p&gt;
&lt;p&gt;Behold &lt;a href="https://github.com/kyle-n/youtube-podcast-handler"&gt;YouTube Podcast Handler&lt;/a&gt;. It's a simple Node.js script that does three things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Downloads a video with &lt;a href="https://github.com/yt-dlp/yt-dlp/"&gt;yt-dlp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Converts it to be iOS-friendly with &lt;a href="https://www.ffmpeg.org"&gt;ffmpeg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Uploads it to Pocket Casts with &lt;a href="https://pptr.dev"&gt;Puppeteer&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;a href="https://github.com/kyle-n/youtube-podcast-handler?tab=readme-ov-file#installation"&gt;installation guide&lt;/a&gt; is on the repo. You'll need Node, &lt;code&gt;yt-dlp&lt;/code&gt;, and &lt;code&gt;ffmpeg&lt;/code&gt;. You'll also want to &lt;a href="https://support.pocketcasts.com/knowledge-base/becoming-a-plus-or-patron-member-how-to-and-faqs/"&gt;sign up for Pocket Casts premium&lt;/a&gt;. I recommend springing for the Patron tier. It's pricey, but your max file upload size jumps from 1 GB to 5.&lt;/p&gt;
&lt;p&gt;I would also recommend signing up for &lt;a href="https://pushover.net"&gt;Pushover&lt;/a&gt;. It's a great service, especially here. You can start a video download, walk away, and get notified on your phone when it's done. If that's not appealing, feel free to fork my project and delete that code.&lt;/p&gt;
&lt;p&gt;Downloading is fairly straightforward only thanks to the tireless work of the &lt;code&gt;yt-dlp&lt;/code&gt; maintainers. That program is fantastic and simplifies downloading YouTube videos &lt;em&gt;tremendously&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Converting the video with &lt;code&gt;ffmpeg&lt;/code&gt; is necessary to play the video on iOS. Pocket Casts will let you upload any &lt;code&gt;.mp4&lt;/code&gt; within the size limit, but only videos encoded properly will actually play in app.&lt;/p&gt;
&lt;p&gt;To add the video to Pocket Casts, the Node script actually opens a browser window using &lt;a href="https://pptr.dev"&gt;Puppeteer&lt;/a&gt;. This library is normally for end-to-end testing, but &lt;code&gt;download-video.js&lt;/code&gt; uses it to click through Pocket Casts' public-facing website and upload the video file.&lt;/p&gt;
&lt;p&gt;The final process is simple. Download a video from the command line:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;node download-video.js '&amp;lt;videoUrl&gt;' '&amp;lt;videoName&gt;'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once it finishes, open your phone. Go to Pocket Casts &gt; Profile &gt; Files and download the new file. Play it, and open the now playing screen. Tap the video to make it full screen.&lt;/p&gt;
&lt;h3&gt;Final Thoughts&lt;/h3&gt;
&lt;p&gt;If you use this tool, please please please do not spam Pocket Casts' website. Don't be a jerk.&lt;/p&gt;
&lt;p&gt;Also, don't use this to not support creators. MinnMax keeps podcast downloads of certain YouTube episodes as a Patreon benefit. Although this project means I don't need my private Patreon feed to download those episodes, I will remain a supporter, because the show is good and they deserve it.&lt;/p&gt;</content><summary>Automatically add shows with this Node script.</summary></entry><entry><title>The 10 best new movies I saw in 2025</title><link href="https://kylenazario.com/blog/best-new-movies-2025"/><updated>2026-01-02</updated><id>https://kylenazario.com/blog/best-new-movies-2025</id><content type="html">&lt;p&gt;2025 was not great for movies. The &lt;a href="https://en.wikipedia.org/wiki/2023_Hollywood_labor_disputes"&gt;strikes&lt;/a&gt; left little in the pipeline. What did come out was decent. Not great. But let's celebrate the good stuff anyway.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This year's list skews heavily toward horror and thrillers. Watch trailers at your discretion.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;Weapons&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/OpThntO9ixc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;Weapons&lt;/em&gt; announced itself this April with &lt;a href="https://www.youtube.com/watch?v=I3qtHlROEuc"&gt;the creepiest teaser I have ever seen&lt;/a&gt;. In just 44 seconds, it tells you two things. One, the movie is about a town where a bunch of kids run out of their houses into the night, never to be seen again. Two, &lt;em&gt;holy shit&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Weapons&lt;/em&gt; is a superb horror movie and something stranger. Without spoilers, director Zach Creggar has a couple obvious metaphors and some less obvious ones. &lt;em&gt;Weapons&lt;/em&gt; is proudly weird. It focuses on surprising subjects. It's funnier than I expected.&lt;/p&gt;
&lt;p&gt;Creggar's last movie, &lt;em&gt;Barbarian&lt;/em&gt;, was a pure scarefest with Swiss-watch timing. &lt;em&gt;Weapons&lt;/em&gt; shows him growing as an artist - exploring new themes, tones and techniques, all without losing the audience.&lt;/p&gt;
&lt;p&gt;The more &lt;em&gt;Weapons&lt;/em&gt; has sat with me, the more I like it. Another tremendous film from one of the best young horror directors working today.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;Superman&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Ox8ZLF6cGM0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;James Gunn is getting soft, in the best possible way. The cynical edgelord who used to churn out &lt;a href="https://en.wikipedia.org/wiki/Tromeo_and_Juliet"&gt;shock-a-minute schlock&lt;/a&gt; for Troma has become open-hearted and sentimental in his older age. Just look at &lt;em&gt;Guardians of the Galaxy&lt;/em&gt;, a loving tribute to found families and second chances.&lt;/p&gt;
&lt;p&gt;With 2025's &lt;em&gt;Superman&lt;/em&gt;, Gunn has reimagined the Man of Steel as many in Hollywood dare not - a hero. Gunn's Superman believes in Truth, Justice, and the American Way. He's so earnest, other characters can't help but dunk on him. And yet, the film is on his side. It believes there is nothing more radical than sincerity. It literally states being a nice guy is punk rock.&lt;/p&gt;
&lt;p&gt;That's what I want from Superman. I want a guy who believes in something. A guy who believes in &lt;em&gt;believing&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;It Was Just an Accident&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/nF04v-ze2Yc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;One day, an Iranian mechanic hears a noise. He hasn't heard the noise in years, but it haunts his dreams. He thinks it's the odd squeak of the false leg belonging to a government intelligence officer who tortured him. So he impulsively kidnaps him. There's just one problem - he's not sure the guy tied up in the back of his van is the right one.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;It Was Just an Accident&lt;/em&gt; is a powerful study in human response to trauma. As the mechanic finds other victims of the torturer (hoping one can identify him), they react with forgiveness, avoidance, rage and more. There's no right way to handle a man who's committed an unforgiveable crime against you.&lt;/p&gt;
&lt;p&gt;The ending is unforgettable. Some of the most riveting dialogue you'll see in a movie this year.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;Wake Up Dead Man&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/0hc8yz5-d5Y" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Rian Johnson's gifted us another fantastic Benoit Blanc mystery for Christmas. This time, a priest has been killed inside a small room when no one was near him. It is, as Daniel Craig says in his delightful Foghorn Leghorn accent, a "perfect crime."&lt;/p&gt;
&lt;p&gt;The mystery isn't even the best part. Johnson uses its setting in an old Catholic parish to explore religion - what it is, what it isn't, and what it can be.&lt;/p&gt;
&lt;p&gt;Every actor in &lt;em&gt;Wake Up Dead Man&lt;/em&gt; is good, but I must give special mention to Josh O'Connor as the young priest. He killed it &lt;a href="/blog/best-new-movies-2024"&gt;last year&lt;/a&gt; in &lt;em&gt;Challengers&lt;/em&gt;, and he's even better here.&lt;/p&gt;
&lt;p&gt;One of O'Connor's scenes sticks with me even now. He's on the phone with a secretary trying to get an essential clue, but she keeps getting sidetracked. You can see him get more and more frustrated, until the secretary tells him her mother's dying. They fought in their last conversation, and she's afraid it'll be the last thing she ever said to her. Could the father pray with her?&lt;/p&gt;
&lt;p&gt;The way O'Connor's body &lt;em&gt;deflates&lt;/em&gt; at this is phenomenal. All his frustration falls away as he remembers he is a priest. This woman is not just a clue-giver. She's going through one of the most important times in her life, and he needs to be there for her. To Rian Johnson, there is no higher or nobler purpose for religion.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;28 Years Later&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/mcvLKldPM08" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;In 2002, director Danny Boyle and writer Alex Garland reinvigorated the zombie movie with &lt;em&gt;28 Days Later&lt;/em&gt;. They leaned into fears of terrorism, disease and civil unrest to make a supremely stressful tale set in the immediate aftermath of England's zombie apocalypse. It was quite post-9/11.&lt;/p&gt;
&lt;p&gt;Now, 23 years later, they have re-teamed to show us how it's done. &lt;em&gt;28 Years Later&lt;/em&gt; is set decades after the fall of England. The survivors have created new societies through careful scavenging and avoiding the infected at all costs.&lt;/p&gt;
&lt;p&gt;It's been so long, in fact, that the hero of the movie is a teenage boy with no memory of the before times. He's only ever known this, a world without electricity or safety. But events conspire to push him out of the settlement and into the remnants of England, which are stranger and more dangerous than he knows.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;28 Years Later&lt;/em&gt; is a good zombie movie, but the thing that has stuck with me for months is Ralph Fiennes' performance as the "mad" doctor. He teaches the protagonist to remember we must die. &lt;em&gt;Memento mori&lt;/em&gt;. It's unexpectedly profound.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;One Battle After Another&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/hg8AGTyYMBA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;There's madness in this country. Different kinds, different amounts, but madness. Couldn't tell you why. Maybe it was &lt;a href="https://www.nature.com/articles/s41598-024-55879-9"&gt;spending a year alone during COVID&lt;/a&gt;. Maybe it's fury at &lt;a href="https://www.theatlantic.com/magazine/archive/2017/10/the-first-white-president-ta-nehisi-coates/537909/"&gt;certain people&lt;/a&gt;. Maybe &lt;a href="https://harpers.org/archive/1964/11/the-paranoid-style-in-american-politics/"&gt;Americans have always been like this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Regardless, it feels like things got worse in the last few years. People &lt;a href="https://onlabor.org/air-rage-a-rising-threat-to-flight-attendants-physical-and-mental-health/"&gt;punching flight attendents&lt;/a&gt;, talking themselves into &lt;a href="https://www.fda.gov/consumers/consumer-updates/ivermectin-and-covid-19"&gt;taking horse dewormer&lt;/a&gt; and &lt;a href="https://publichealth.jhu.edu/ivac/2025/across-the-us-childhood-vaccination-rates-continue-to-decline"&gt;letting their children get sick with preventable diseases&lt;/a&gt;. A large number of people in this country — a &lt;em&gt;significant&lt;/em&gt; number — do not exist in reality.&lt;/p&gt;
&lt;p&gt;This year, three movies focused on American madness: &lt;em&gt;Bugonia&lt;/em&gt;, &lt;em&gt;Eddington&lt;/em&gt; and &lt;em&gt;One Battle After Another&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;One Battle After Another&lt;/em&gt; is the largest-scale look at the problem. It updates Thomas Pynchon's postmododern novel &lt;a href="https://en.wikipedia.org/wiki/Vineland"&gt;&lt;em&gt;Vineland&lt;/em&gt;&lt;/a&gt; to 2025 politics to depict a country deeply at war with itself, mired in self-loathing, fascistic rage.&lt;/p&gt;
&lt;p&gt;But it's not hopeless. &lt;em&gt;One Battle&lt;/em&gt; believes in fighting. It knows you can't win everything today. You have to do your best and hope you didn't mess it up too badly for your kids.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;No Other Choice&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/HKZpuG_ezvY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Park Chan-wook is simply the best at unforgettable, so-dark-they're-funny films.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;No Other Choice&lt;/em&gt; follows a dad who's laid off from a paper plant. When applying for a new job, he has an idea. What if he kills every other candidate?&lt;/p&gt;
&lt;p&gt;Things spiral from there. Park takes the audience on a wild ride about class, pride, masculinity and capitalism. I couldn't believe my eyes, but also? I get it.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;Sinners&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/bKGxHflevuk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;Sinners&lt;/em&gt; is unusual. On one hand, it's a crowd-pleasing horror movie about vampires. On the other, it's a historically accurate depiction of sharecropping and segregation. It is an incredibly specific story and vision, but it's also just entertaining. I'd recommend it to anyone with the stomach.&lt;/p&gt;
&lt;p&gt;Director Ryan Coogler has a lot on his mind. What does it mean to be a man? How can you fight back against oppressive systems? What role should religion play in our lives?&lt;/p&gt;
&lt;p&gt;I also must salute him for the single best &lt;a href="https://www.youtube.com/watch?v=S7jo5Cr6WUA"&gt;individual scene&lt;/a&gt; in a movie in 2025. I knew it was coming, and it still had me almost levitating in my chair.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;Bugonia&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/bd_5HcTujfc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Speaking of madness, Yorgos Lanthimos looked at today's craziness and had fun with it.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Bugonia&lt;/em&gt; follows two guys who kidnap a female CEO and hold her hostage. Their theory is she is an alien, and responsible for everything that's gone wrong on Earth. They shaved her head so she couldn't communicate with her mothership.&lt;/p&gt;
&lt;p&gt;Jesse Plemmons and Emma Stone are two of our finest living actors and great together. I also loved seeing comedian Stavros Halkias crush a couple scenes as an unhelpful cop.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Bugonia&lt;/em&gt; is dark, nihilistic and funny. It's a nasty little parable about our times: exactly what I want from Yorgos.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;The Naked Gun (2025)&lt;/em&gt;&lt;/h3&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/uLguU7WLreA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;I've loved The Lonely Island's work for nearly 20 years. They have made three of the greatest comedies ever: &lt;em&gt;Hot Rod&lt;/em&gt;, &lt;em&gt;MacGruber&lt;/em&gt; and &lt;em&gt;Popstar: Never Stop Never Stopping&lt;/em&gt;. Their movies are so deep in my brain, I still can't pick up a packet of green tea without muttering, &lt;a href="https://www.youtube.com/watch?v=TkvfiEO6bVU"&gt;"I've been drinkin' green tea all god-damn day."&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I'm in the bag for anything Akiva Schaeffer directs. Of course I loved &lt;em&gt;The Naked Gun&lt;/em&gt; (2025). It's packed with one-liners, sight gags, and even a &lt;em&gt;Mission: Impossible&lt;/em&gt; parody. Impossible to pick a favorite joke. "Me too!"? TiVo?? The snowman???&lt;/p&gt;
&lt;h3&gt;The worst of the rest&lt;/h3&gt;
&lt;p&gt;This year, I've also decided to name and shame the 5 worst new movies, because screw them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Captain America: Brave New World&lt;/em&gt;: Ate too much homemade guac and fell asleep during the finale of this excruciatingly boring movie.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Honey Don't!&lt;/em&gt;: A valid response to "Should I see this movie?".&lt;/li&gt;
&lt;li&gt;&lt;em&gt;A Minecraft Movie&lt;/em&gt;: Best I can say is it got people into theaters.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Bring Her Back&lt;/em&gt;: Boring, predictable and gross.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Fantastic 4: First Steps&lt;/em&gt;: Love the retro-futurist production design, hate everything else.&lt;/li&gt;
&lt;/ul&gt;</content><summary>Low-key a bad year for movies.</summary></entry><entry><title>Meet the new NazarioSoftware.com</title><link href="https://kylenazario.com/blog/nzs-new"/><updated>2025-12-30</updated><id>https://kylenazario.com/blog/nzs-new</id><content type="html">&lt;p&gt;I publish apps as a hobby under Nazario Software LLC. It requires a website. You need a place to put privacy policies, help documentation, that kind of thing.&lt;/p&gt;
&lt;p&gt;So, I made &lt;a href="https://nazariosoftware.com/"&gt;NazarioSoftware.com&lt;/a&gt;. It was a &lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; app with several downsides. The font was messed up in Firefox. The prebuilt theme didn’t have enough flexibility. The app documentation pages were rendered as blog posts, with dates in the URL and everything. Most annoyingly, running it locally required Ruby, a language I don’t know and never works right.&lt;/p&gt;
&lt;p&gt;So, I deleted the whole thing and started over with &lt;a href="https://svelte.dev/docs/kit/introduction"&gt;SvelteKit&lt;/a&gt;. I’ve made &lt;a href="https://github.com/nazariosoftwarellc/oscars.watch"&gt;several&lt;/a&gt; &lt;a href="https://github.com/kyle-n/spooky-pictures"&gt;sites&lt;/a&gt; with the framework, &lt;a href="https://github.com/kyle-n/kyle-n.github.io"&gt;including this blog&lt;/a&gt;, and enjoyed the process every time. SvelteKit has useful features, few abstractions and less boilerplate. It feels like writing vanilla HTML / CSS / JS, but with components. Just not &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_components"&gt;WebComponents&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Additionally, SvelteKit got me out of Ruby land and back to JavaScript. Easier managing dependencies in Node than whatever Ruby does.&lt;/p&gt;
&lt;p&gt;SvelteKit made it easy to punch out a bunch of basic components. The &lt;a href="https://svelte.dev/docs/kit/routing"&gt;file-based routing&lt;/a&gt; and &lt;a href="https://svelte.dev/tutorial/kit/layouts"&gt;layout system&lt;/a&gt; are intuitive and simple.&lt;/p&gt;
&lt;p&gt;The site runs on Node, but serves static pre-rendered content. There’s nothing on the site that can’t be rendered at build time.&lt;/p&gt;
&lt;p&gt;Pre-rendering keeps speed up. SvelteKit also has some tricks that the old Jekyll site lacked, like &lt;a href="https://svelte.dev/tutorial/kit/preload"&gt;preloading pages on hover&lt;/a&gt;. That and converting almost all images to WebP means pages load nearly instantly.&lt;/p&gt;
&lt;p&gt;The old site ran on &lt;a href="https://pages.github.com/"&gt;GitHub Pages&lt;/a&gt;. That, while a great free host for static content, would not work anymore. As part of the rewrite, I changed the site URL scheme to be aesthetically pleasing. For example, the old page with &lt;a href="https://nazariosoftware.com/apps/javasnipt/about"&gt;JavaSnipt&lt;/a&gt;’s privacy policy was:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://nazariosoftware.com/2021/04/07/javasnipt-privacy-policy.html
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That page is now:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://nazariosoftware.com/apps/javasnipt/privacy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Far cleaner. But &lt;a href="https://www.w3.org/Provider/Style/URI"&gt;cool URLs don’t change&lt;/a&gt;. Any good webmaster (what a fun old word) would redirect traffic to the old URLs. This is generally good practice, but required in my case. My App Store / Chrome Web Store / Firefox Add-Ons listings use the old paths. I can’t remove those unless I update every app, on every platform.&lt;/p&gt;
&lt;p&gt;Performing redirects means running a server. That ruled out GitHub Pages. The best free replacement, from my research, was &lt;a href="https://workers.cloudflare.com/"&gt;Cloudflare Workers&lt;/a&gt;. They give you plenty of free builds per month, plus a decent subset of Node APIs to run a real server with. They also &lt;a href="https://svelte.dev/docs/kit/adapter-cloudflare"&gt;natively support SvelteKit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After adding a &lt;a href="https://github.com/nazariosoftwarellc/nazariosoftwarellc.github.io/blob/main/.github/workflows/cd.yml"&gt;quick GitHub Action&lt;/a&gt; to deploy all pushes to &lt;code&gt;main&lt;/code&gt; and moving over my custom domain, I was done! The new NazarioSoftware.com was live on Cloudflare.&lt;/p&gt;
&lt;p&gt;There’s only one dumb mistake left to fix. All my Mac apps have an option to view more of my apps. That option loads a JSON file of other apps. Unfortunately, I decided to source the JSON from:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://github.com/nazariosoftwarellc/nazariosoftwarellc.github.io/raw/refs/heads/main/assets/json/app-list.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;...instead of from &lt;code&gt;nazariosoftware.com/*&lt;/code&gt;. I have no idea why I did this. It’s a bad idea. The apps should obviously rely on the &lt;em&gt;deployed site&lt;/em&gt; and have no knowledge of how the site source code is organized. But I did, and now I have two &lt;code&gt;app-list.json&lt;/code&gt; files- one under &lt;code&gt;/static&lt;/code&gt;, where SvelteKit expects it, and one under &lt;code&gt;assets/json&lt;/code&gt;. The second one is used only for the client apps.&lt;/p&gt;
&lt;p&gt;Sigh. Now I have to update all my apps to use the correct URL.&lt;/p&gt;
&lt;p&gt;Still, the new site looks great and loads fast. It’ll make a strong foundation for the next 5 years. Read the &lt;a href="https://github.com/nazariosoftwarellc/nazariosoftwarellc.github.io"&gt;source code&lt;/a&gt; if you’re interested.&lt;/p&gt;</content><summary/></entry><entry><title>2025 in review</title><link href="https://kylenazario.com/blog/2025-in-review"/><updated>2025-12-17</updated><id>https://kylenazario.com/blog/2025-in-review</id><content type="html">&lt;img src="/img/2025.webp"&gt;&lt;caption&gt;Image by Eugene on Pixabay&lt;/caption&gt;&lt;p&gt;We're about done with 2025. It's been an eventful year for me. I enjoyed my work and continuing personal interests, though I could stand to have not &lt;a href="/blog/lab-funding-update"&gt;had my partner's livelihood threatened by scientific funding cuts&lt;/a&gt;. Can't have everything, I suppose.&lt;/p&gt;
&lt;h3&gt;Coding&lt;/h3&gt;
&lt;p&gt;Last year, I &lt;a href="/blog/2024-in-review"&gt;wrote&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I continued working at &lt;a href="https://www.bitovi.com"&gt;Bitovi&lt;/a&gt;, because I like the company so much. Bitovians are smart, funny, engaged and friendly. The internal company culture is everything you could ask for. Everybody is laser-focused providing clients the absolute best possible software development and coaching.&lt;/p&gt;
&lt;p&gt;Consultancies get a bad rap sometimes, but Bitovi is an exception. Everyone here really, truly cares about helping clients as much as possible. I would not have stayed for almost four years if it were otherwise.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This year, I feel exactly the same way. The tech hirirng market is brutal these days, and I am tremendously grateful to be happy in my current job with no desire to brave that storm.&lt;/p&gt;
&lt;p&gt;My major personal accomplishment this year was completing a multi-year transition to full-stack software development. I spent the early part of my career focused on frontend development, but quickly realized that being full-stack was the best way to serve clients. In the last year, I've built new features in .NET and Go. Both required learning new languages, new frameworks and new ways of thinking. I am extremely happy with the results, and so are our clients.&lt;/p&gt;
&lt;h3&gt;Media&lt;/h3&gt;
&lt;h4&gt;Video games&lt;/h4&gt;
&lt;p&gt;I really went on a gaming spree this year. I played a lot more new releases than usual - blame the &lt;a href="https://minnmax.com/"&gt;MinnMax Show&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Sekiro:_Shadows_Die_Twice"&gt;&lt;em&gt;Sekiro: Shadows Die Twice&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Mouthwashing_(video_game)"&gt;&lt;em&gt;Mouthwashing&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Lies_of_P"&gt;&lt;em&gt;Lies of P&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Balatro_(video_game)"&gt;&lt;em&gt;Balatro&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Slay_the_Princess"&gt;&lt;em&gt;Slay the Princess&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/1000xRESIST"&gt;&lt;em&gt;1000xRESIST&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Doom_(2016_video_game)"&gt;&lt;em&gt;Doom&lt;/em&gt; (2016)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Blue_Prince_(video_game)"&gt;&lt;em&gt;Blue Prince&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Clair_Obscur:_Expedition_33"&gt;&lt;em&gt;Clair Obscur: Expedition 33&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Alan_Wake"&gt;&lt;em&gt;Alan Wake&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Control_(video_game)"&gt;&lt;em&gt;Control&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Resident_Evil_2_(2019_video_game)"&gt;&lt;em&gt;Resident Evil 2&lt;/em&gt; (remake)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Peak_(video_game)"&gt;&lt;em&gt;Peak&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Donkey_Kong_Bananza"&gt;&lt;em&gt;Donkey Kong: Bananza&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Cave_Story"&gt;&lt;em&gt;Cave Story+&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Chrono_Trigger"&gt;&lt;em&gt;Chrono Trigger&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Hollow_Knight:_Silksong"&gt;&lt;em&gt;Hollow Knight: Silksong&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Hades_II"&gt;&lt;em&gt;Hades II&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/In_Stars_and_Time"&gt;&lt;em&gt;In Stars and Time&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Elden_Ring_Nightreign"&gt;&lt;em&gt;Elden Ring: Nightreign&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Hollow_Knight"&gt;&lt;em&gt;Hollow Knight&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Metroid_Prime_4:_Beyond"&gt;&lt;em&gt;Metroid Prime 4: Beyond&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My top games of the year were &lt;em&gt;Clair Obscur&lt;/em&gt; and &lt;em&gt;Silksong&lt;/em&gt;. &lt;em&gt;Clair&lt;/em&gt;, I loved because it took one of my favorite genres, the turn-based RPG, and reinvigorated it with a great battle system and the best writing in any game this year. Hands down, a &lt;em&gt;phenomenal&lt;/em&gt; story.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Silksong&lt;/em&gt; I have to shout out for sheer audaciousness. It sure was a choice to make everyone wait seven years, announce the game two weeks before release and then crash every storefront because you didn't do preloads. Oh, and the game is insanely hard. Unfortunately, &lt;em&gt;Silksong&lt;/em&gt; is so god damn good that none of that mattered. You owe it to yourself to experience one of the coolest worlds in gaming.&lt;/p&gt;
&lt;h4&gt;Movies&lt;/h4&gt;
&lt;p&gt;I'm still working on my top 10 films of the year. Been a slow year, to be honest. Check out &lt;a href="https://letterboxd.com/kyle_nazario/list/2025"&gt;my Letterboxd&lt;/a&gt; to see what I'm leaning toward.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update Jan. 2026&lt;/strong&gt;: &lt;a href="/blog/best-new-movies-2025"&gt;Published&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;Books&lt;/h4&gt;
&lt;p&gt;This year, I read:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Emma_(novel)"&gt;&lt;em&gt;Emma&lt;/em&gt;&lt;/a&gt; by Jane Austen: Felt inspired to read the original after watching &lt;em&gt;Clueless&lt;/em&gt;. Once I got used to Austen's baroque sentences, I enjoyed an amusing and charming story of a young woman coming into her own.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Apple_in_China"&gt;&lt;em&gt;Apple in China&lt;/em&gt;&lt;/a&gt; by Patrick McGee: A fascinating, thoroughly reported account of how Apple came to move its supply chain to China. I found McGee's account of the effects of overwork on Apple engineers particularly striking.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Station_Eleven"&gt;&lt;em&gt;Station Eleven&lt;/em&gt;&lt;/a&gt; by Emily St. John Mandel: A unique post-apocalyptic story about life, relationships, art, death and everything in between. Although it was published in 2014, its portrayal of a spreading influenza pandemic was accurate enough to make my heart race in the opening chapters. Too real.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/The_Mismeasure_of_Man"&gt;&lt;em&gt;The Mismeasure of Man&lt;/em&gt;&lt;/a&gt; by Stephen Jay Gould: A deep, brilliantly analyzed history of scientific racism. The author has permanently changed my perception of what "intelligence" means.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Swamp_Thing_(comic_book)#Alan_Moore"&gt;&lt;em&gt;Swamp Thing&lt;/em&gt;&lt;/a&gt; by Alan Moore: Horror literature has rarely been better than Alan Moore's titanic run on &lt;em&gt;Swamp Thing&lt;/em&gt; in the '80s. He turns a Z-list DC character into a truly tragic figure.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Nvidia-Way-Jensen-Huang-Making/dp/1324086718"&gt;&lt;em&gt;The Nvidia Way&lt;/em&gt;&lt;/a&gt; by Tae Kim: A good history of one of the most important tech companies in the world. Their company culture is distinctive and well worth learning about for anyone interested in management (though I am not).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Personal interests&lt;/h3&gt;
&lt;p&gt;This year, I started skiing again. We made the trip to Snowbasin and Beaver a couple times. Utah skiing is unbelievable.&lt;/p&gt;
&lt;p&gt;I also &lt;a href="/blog/cross-country-pictures-2025"&gt;began cross country (or Nordic) skiing&lt;/a&gt;. It's a lot harder, but doesn't require a resort. You just strap on some tiny skis that leave your heel to move free, and start shuffling across the ground. Cross country skiing is an amazing way to spend time outdoors in the winter.&lt;/p&gt;
&lt;p&gt;&lt;img src="/img/smithfield-9.webp" alt="Smithfield Canyon in Utah"&gt;&lt;/p&gt;
&lt;p&gt;I also ran my first marathon! My brothers and I decided to meet up in Columbus, Ohio, our hometown, and run the Columbus Marathon. It took a &lt;em&gt;ton&lt;/em&gt; of training over the summer, but all of us finished. I had a blast... even though the race itself was raining and freezing cold.&lt;/p&gt;
&lt;p&gt;&lt;img src="/img/columbus-marathon-2025.webp" alt="Me, our friend Saralisa and my brothers Rick and Mike"&gt;&lt;/p&gt;
&lt;p&gt;The marathon took a lot out of me, but I've bounced back and am already looking ahead to next year. Utah's world-famous &lt;a href="https://www.stgeorgemarathon.com"&gt;St. George Marathon&lt;/a&gt; looks pretty appealing.&lt;/p&gt;
&lt;h3&gt;For next year&lt;/h3&gt;
&lt;p&gt;More skiing! I don't know how long we'll stay in Utah, but I plan to ski as much as possible before we go.&lt;/p&gt;</content><summary/></entry><entry><title>NYT - The data on self-driving cars is clear</title><link href="https://kylenazario.com/blog/nyt-waymo-safety-data"/><updated>2025-12-03</updated><id>https://kylenazario.com/blog/nyt-waymo-safety-data</id><content type="html">&lt;img src="/img/waymo.webp"&gt;&lt;caption&gt;A Waymo spotted in downtown San Francisco.&lt;/caption&gt;&lt;p&gt;During a visit to San Francisco last February, I rode in a Waymo and &lt;a href="/blog/waymo-pedestrian-safety"&gt;was amazed&lt;/a&gt; at how safely it drove. During our trip, it stopped for three separate pedestrians when crossing an intersection.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As a pedestrian who cares about traffic safety, I &lt;em&gt;loved&lt;/em&gt; this. A human driver would never have yielded to three pedestrians. A human would've gunned it and dared that third guy to cross in front of him. That's standard behavior for drivers in America, and it's why drivers killed &lt;a href="https://www.iihs.org/topics/fatality-statistics/detail/pedestrians"&gt;7,522 pedestrians in 2022 alone&lt;/a&gt;. The Waymo actually &lt;em&gt;followed the law&lt;/em&gt;. It didn't even speed!&lt;/p&gt;
&lt;p&gt;Say what you will about self-driving cars, but what Waymo has on the roads of San Francisco is &lt;em&gt;better&lt;/em&gt; that most humans.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Well, now Waymo has data backing up this impression. The &lt;em&gt;New York Times&lt;/em&gt; has an &lt;a href="https://www.nytimes.com/2025/12/02/opinion/self-driving-cars.html"&gt;essay&lt;/a&gt; from a neurosurgeon advocating for wider self-driving adoption:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Self-driving car company Waymo recently &lt;a href="https://waymo.com/safety/impact/"&gt;released&lt;/a&gt; data covering nearly 100 million driverless miles in four American cities through June 2025, the biggest trove of information released so far about safety. I spent weeks analyzing the data. The results were impressive. When compared to human drivers on the same roads, Waymo’s self-driving cars were involved in 91 percent fewer serious-injury-or-worse crashes and 80 percent fewer crashes causing any injury. It showed a 96 percent lower rate of injury-causing crashes at intersections.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The author mentions one thing some drivers dislike about Waymos:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There’s a common misconception that these cars brake erratically and get rear-ended. But they are involved in far fewer rear-end injury crashes than human drivers are.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I can see why some drivers feel Waymos are "erratic." They brake differently than humans, in that they actually brake.&lt;/p&gt;</content><summary>Waymo's safety numbers are stunningly good.</summary></entry><entry><title>Funding found</title><link href="https://kylenazario.com/blog/lab-funding-update"/><updated>2025-10-13</updated><id>https://kylenazario.com/blog/lab-funding-update</id><content type="html">&lt;p&gt;​
A month and a half ago, I &lt;a href="/blog/carp-science-funding"&gt;wrote&lt;/a&gt; about my spouse's lab running out of funding while agonizingly close to a viable solution for wiping out invasive common carp.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When my spouse signed onto this project in spring 2024, it was funded by that consortium of states, with the promise of more later from the federal government. Unfortunately, &lt;a href="https://theconversation.com/friday-essay-trump-and-kennedy-are-destroying-global-science-even-einstein-questioned-facts-but-theres-a-method-to-it-261568"&gt;things changed&lt;/a&gt;. Federal funding is difficult to find in 2025.&lt;/p&gt;
&lt;p&gt;This is tremendously frustrating. The project is not done. Even though they’ve figured out how to make YY supermales, there are a dozen more things to do. Somebody’s got to raise large numbers of supermales and distribute them to rivers and lakes around the country. One of the drugs involved requires FDA approval. Hell, the supermales are actually just the start. The real trick, apparently, is YY &lt;em&gt;superfemales&lt;/em&gt;. Make those, and an invasive species is as good as gone.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I am happy to report that the problem has been solved, at least for the moment. Their lab went back to the initial funders, who provided enough money to keep the project running until December 2026. I'm thrilled my spouse will be able to continue this vital work.&lt;/p&gt;</content><summary>Relief, for the moment.</summary></entry></feed>