<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:source="https://source.scripting.com/">
<channel>
  <title>Nick Ali</title>
  <link>https://nali.org</link>
  <description>Blog posts and updates from Nick Ali</description>
  <generator>Quartz -- quartz.jzhao.xyz</generator>
  <source:self>https://nali.org/rss.xml</source:self>
  <item>
    <title>2026-08-31</title>
    <link>https://nali.org/updates/2026-08-31</link>
    <guid isPermaLink="true">https://nali.org/now#2026-08-31</guid>
    <description><![CDATA[Always a fun time at the Georgia Aquarium.]]></description>
    <content:encoded><![CDATA[<p>Always a fun time at the Georgia Aquarium.</p>
<p><img src="https://web-files01.nali.org/2026/2026-08-31-1.webp" alt/></p>]]></content:encoded>
    <pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2026-08-19</title>
    <link>https://nali.org/updates/2026-08-19</link>
    <guid isPermaLink="true">https://nali.org/now#2026-08-19</guid>
    <description><![CDATA[I heard this song for the first time listening to the soundtrack of the Natural Born Killers movie.
I was in this Trent Reznor phase in high school and he produced the soundtrack.
This Cowboy Junkies version of Sweet Jane is a cover of a live version of The Velvet Underground’s Sweet Jane, which itself is pretty good with Lou Reed singing.
▶]]></description>
    <content:encoded><![CDATA[<p>I heard this song for the first time listening to the soundtrack of the <a href="https://en.wikipedia.org/wiki/Natural_Born_Killers" class="external external-link">Natural Born Killers movie<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a>.</p>
<p>I was in this Trent Reznor phase in high school and he produced the soundtrack.</p>
<p>This Cowboy Junkies version of Sweet Jane is a cover of a <a href="https://nck.li/yt-the-velvet-underground-sweet-jane-live" class="external external-link">live version of The Velvet Underground’s Sweet Jane<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a>, which itself is pretty good with Lou Reed singing.</p>
<div class="yt-embed" data-video="pk_7shQenFE"><a href="https://www.youtube.com/watch?v=pk_7shQenFE" class="yt-thumb external external-link" aria-label="Play video on YouTube"><img src="https://i.ytimg.com/vi/pk_7shQenFE/hqdefault.jpg" alt loading="lazy"/><span class="yt-play">▶</span><svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a></div>]]></content:encoded>
    <pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2026-08-09</title>
    <link>https://nali.org/updates/2026-08-09</link>
    <guid isPermaLink="true">https://nali.org/now#2026-08-09</guid>
    <description><![CDATA[For the sake of accountability, I added a blog activity chart (like on Github). The thought is that the chart will shame me into publishing more in public.
We’ll see how it goes.]]></description>
    <content:encoded><![CDATA[<p>For the sake of accountability, I added a blog activity chart (like on Github). The thought is that the chart will shame me into publishing more in public.</p>
<p>We’ll see how it goes.</p>]]></content:encoded>
    <pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>AI will take over the World...Maybe</title>
    <link>https://nali.org/blog/2026/ai-taking-over-the-world</link>
    <guid isPermaLink="true">https://nali.org/blog/2026/ai-taking-over-the-world/</guid>
    <description><![CDATA[AI has its uses and benefits.]]></description>
    <content:encoded><![CDATA[<p>Back in 2017, I wrote <a href="../../blog/2017/ai-wont-take-ove" class="internal internal-link alias" data-slug="blog/2017/ai-wont-take-ove">No, AI Won’t Take over the World</a>.</p>
<p>My opinion has not really changed, but it has become more nuanced.</p>
<p>Since I wrote that post, AI companies, especially OpenAI and Anthropic, have taken over the cultural milieu, promising AGI is right around the corner, others thinking AI is an existential crisis, and every other option along the spectrum.</p>
<p>Jobs and processes that people see as grunt work and repetitive are becoming easier with AI. Whether it’s creating a Powerpoint presentation or doing data analysis, AI can help either automate it or make it not-sucky. Most Powerpoint presentations are terrible, not because Powerpoint sucks, but how people try to communicate with presentations is bad. Communicating is a skill and hard to do well.</p>
<p>The base nature of LLMs is predicting what is next piece of text for output based on its training dataset. If we assume everything in the training set averages out to…well, average, the opportunity is someone who isn’t good at a skill, can achieve average. Therefore, the floor is raised.</p>
<p>That also means, we will have more average, making more of the average, reinforcing average more and more, and make the average more of what will be predicted.</p>
<p>In a way, average is the same as standards or best practices. It’s some agreed upon right way an activity or process should be done. It’s a safe tested way of doing things. You are setting a floor to expected results rather than optimizing for the best. Nothing wrong with that, especially if you don’t think the activity is a core function.</p>
<p>To raise the bar, we will need specialized models trained on curated data sets with what “good” and “best” looks like, not simply ingesting everything on the Internet and every piece of content in existence.</p>
<p>That is why marketing AI tools suck. Finding data that can be labeled “good” or “best” is hard to find. No company is going to share that data publicly. You look at any marketing plan generated by AI and it’s…fine? It’s not technically wrong in any way, but its basically what everyone else would do. In marketing, doing and looking like everyone else is the worst.</p>
<p>But if your skills don’t include marketing, an AI generated marketing plan is better than nothing.</p>
<p>If you know what you are looking for though, changing variables like temperature and top-p, can produce more interesting, if not novel, results. Better prompting and asking LLMs to take contrarian positions can provide variant and diverse results. Unfortunately, most users stick with the default and end up with mush.</p>
<p>I keep thinking longer term, AI will be invisible tool applied to all sorts inputs and outputs. Chat interfaces will be thin interfaces, conductors similar to agent orchestrators today.</p>
<p>Smart homes are a common but good example. I like different temperatures in different rooms in different seasons. And as you get older, those preferences change.  I don’t want to program this into any tool at all. It’s not complicated but it is complex. And of course, it gets harder once you have multiple people in a room. This seems like the perfect use for AI, lots of data, with lots of variables, changing over time.</p>
<p>We are only at the beginning of AI being integrated into everything we touch.</p>
<p>Of course, AI has lots and lots of problems, and if psychos like Zuck are pushing it, you have to be wary.</p>
<p>It’s going to be a crazy ride.</p>
<p>Sidenote: While everyone dumps on the idea of tokenmaxxing, the idea of leaderboards, and the unsustainability of it all, I do believe quantity gets you to quality. You gotta try and have a whole bunch of failures to get to real success. The point of tokenmaxxing is to push everyone to try a new way of solving problems. You can’t nickel-and-dime the process. Make AI do everything and see where the bottlenecks are and where the opportunities are. The exploration can’t happen if you try to justify tokenmaxxing for a specific project or feature.</p>]]></content:encoded>
    <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>On Taste</title>
    <link>https://nali.org/blog/2026/on-taste</link>
    <guid isPermaLink="true">https://nali.org/blog/2026/on-taste/</guid>
    <description><![CDATA[Reflections on taste and AI.]]></description>
    <content:encoded><![CDATA[<h3 id="what-is-taste">What is Taste?<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#what-is-taste" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p>Taste is one of things that is hard to define and a quality everyone defines differently.</p>
<p>My definition of taste: a compressed, internalized and instinctive judgment, based on failure, learned over time, from deep experience. Taste is not measurable directly. You will never see a taste metric.</p>
<p>The act of exercising taste is saying NO. A lot. Copy that doesn’t quite really work, ugly code, design that looks ok but feels off, messaging that sounds right but doesn’t quite hit the mark.</p>
<p>To properly train an AI model, you need to train it on the good and bad and label it as such. When feeding AI source material, people almost never feed it the failures and definitely don’t provide context around why they were failures.</p>
<p>I’m sure there are some feeding models the failures when providing source materials for AI, but it’s rarely done. Most are saying a version of “here are my successful campaigns, make me more.” AI generates the campaigns, you look at it and say good enough, and push it out the door. Anyone who has done anything creative with AI knows often it can be somewhat right, directionally right, and <em>almost</em> right, but never bullseye.</p>
<p>Say you push it out, it performs ok, you feed it back into the AI as a successful campaign. Then you generate more campaigns, those are almost right too, but not exactly. You push it out and reinforce the “slightly off” process over and over, each campaign being a bit more slightly off each time. And then at some point, you realize it’s all off. There was no one deviation that made it all crap.</p>
<p>It’s a slippery slope of minor slop that piles up smelling like a slurry pit.</p>
<p>If you don’t have someone with taste evaluating the AI-generated output and saying no often, you’ll end up in the pit eventually.</p>
<p>Indeed, how do you measure compounded “slightly off” executions?</p>
<p>On the flipside, you can’t tell the harm that good taste prevented. No one measures what a bad redesigned logo would have cost in revenue. How do you measure holding off the launch of a campaign that is culturally tone deaf?</p>
<p>You see this struggle with technical founder-led companies and projects led by engineers. You can’t write a unit test for taste, what is good, what is bad. Then you end up with copy that is mishmash of mind numbing jargon, instead of “Built in Rust, deployed on Kubernetes, end-to-end encrypted” when the costumer only needed to hear “your invoices go out on time.”</p>]]></content:encoded>
    <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2026-07-01</title>
    <link>https://nali.org/updates/2026-07-01</link>
    <guid isPermaLink="true">https://nali.org/now#2026-07-01</guid>
    <description><![CDATA[I’ve been meaning to write  How to Work with Me page for a long time. I mean for the page to be a living document that gets updated over time.
The main purpose for the page is shortcut a lot of conversations related to culture and leadership. Agree with it? Great, let’s talk.
Don’t agree with it? 🤷🏽‍♂️]]></description>
    <content:encoded><![CDATA[<p>I’ve been meaning to write  <a href="../work-with-me" class="internal internal-link alias" data-slug="work-with-me">How to Work with Me</a> page for a long time. I mean for the page to be a living document that gets updated over time.</p>
<p>The main purpose for the page is shortcut a lot of conversations related to culture and leadership. Agree with it? Great, let’s talk.</p>
<p>Don’t agree with it? 🤷🏽‍♂️</p>]]></content:encoded>
    <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2026-06-05</title>
    <link>https://nali.org/updates/2026-06-05</link>
    <guid isPermaLink="true">https://nali.org/now#2026-06-05</guid>
    <description><![CDATA[It’s only 100 hours long…
▶]]></description>
    <content:encoded><![CDATA[<p>It’s only 100 hours long…</p>
<div class="yt-embed" data-video="GiXKukOtmeE"><a href="https://www.youtube.com/watch?v=GiXKukOtmeE" class="yt-thumb external external-link" aria-label="Play video on YouTube"><img src="https://i.ytimg.com/vi/GiXKukOtmeE/hqdefault.jpg" alt loading="lazy"/><span class="yt-play">▶</span><svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a></div>]]></content:encoded>
    <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2026-05-19</title>
    <link>https://nali.org/updates/2026-05-19</link>
    <guid isPermaLink="true">https://nali.org/now#2026-05-19</guid>
    <description><![CDATA[40+ years old, still sounds futuristic…
And the lyrics are more relevant today than when they were written.
▶]]></description>
    <content:encoded><![CDATA[<p>40+ years old, still sounds futuristic…</p>
<p>And the lyrics are more relevant today than when they were written.</p>
<div class="yt-embed" data-video="Vkfpi2H8tOE"><a href="https://www.youtube.com/watch?v=Vkfpi2H8tOE" class="yt-thumb external external-link" aria-label="Play video on YouTube"><img src="https://i.ytimg.com/vi/Vkfpi2H8tOE/hqdefault.jpg" alt loading="lazy"/><span class="yt-play">▶</span><svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a></div>]]></content:encoded>
    <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2026-05-17</title>
    <link>https://nali.org/updates/2026-05-17</link>
    <guid isPermaLink="true">https://nali.org/now#2026-05-17</guid>
    <description><![CDATA[Hello, I’m trying out a small web app for posting updates since creating markdown files every time is painful!]]></description>
    <content:encoded><![CDATA[<p>Hello, I’m trying out a small web app for posting updates since creating markdown files every time is painful!</p>
<p><img src="https://web-files01.nali.org/2026/2026-05-17-1.webp" alt/></p>
<p>Wohoo, it worked!</p>
<p>Ok, I should stop posting pictures of pictures now.</p>
<p><img src="https://web-files01.nali.org/2026/2026-05-17-2.webp" alt/></p>]]></content:encoded>
    <pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2026-04-04</title>
    <link>https://nali.org/updates/2026-04-04</link>
    <guid isPermaLink="true">https://nali.org/now#2026-04-04</guid>
    <description><![CDATA[Previously, I’d written about how I was trying to connect my home network and VPSs.
Turns out life is too short to worry about things like that.
At the end of 2025 I bought a Dell Precision T5820 to use as one big server and installed TrueNAS on it. Basically, the server is a replacement for mini-PCs, Mac Minis, and VPSs. Everything I want runs on the T5820. All my virtual machines and apps. Inclu]]></description>
    <content:encoded><![CDATA[<p>Previously, I’d <a href="../now#2025-06-18" class="internal internal-link alias" data-slug="now">written</a> about how I was trying to connect my home network and VPSs.</p>
<p>Turns out life is too short to worry about things like that.</p>
<p>At the end of 2025 I bought a Dell Precision T5820 to use as one big server and installed TrueNAS on it. Basically, the server is a replacement for mini-PCs, Mac Minis, and VPSs. Everything I want runs on the T5820. All my virtual machines and apps. Including backups. And backups of backups.</p>
<p>Everything is only accessible by connecting to my home vpn.</p>
<p>Frankly, this set up feels a lot less stressful to maintain.</p>
<p>TrueNAS has been a bit of a learning curve, so Google Gemini has come in quite helpful. I haven’t run into problems Gemini couldn’t solve without some finagling. Being able to access the Google search engine, Gemini excels at finding solutions to setup issues easily (at least the ones I ran into). Claude and Perplexity were definitely <em>not</em> up to the job.</p>]]></content:encoded>
    <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2025: The not so Thorough Review</title>
    <link>https://nali.org/blog/2025/2025-year-in-review</link>
    <guid isPermaLink="true">https://nali.org/blog/2025/2025-year-in-review/</guid>
    <description><![CDATA[Two 2025 things I'm proud of.]]></description>
    <content:encoded><![CDATA[<p>Looking back at 2025, there are two things I’m proud of.</p>
<p>First, I’ve <a href="../../wiki/entertainment/books" class="internal internal-link alias" data-slug="wiki/entertainment/books">read</a> the most books in one year since…high school?</p>
<p>Replacing TV time and doom scrolling with books had a huge impact. Keeping track of books I’ve read pushed me to find time to read. Unsurprisingly, there is plenty if you stay away from screens. Who would have thunk it?!?</p>
<p>More than half of books were part of a series. Eleven Mistborn books. Phew. It’s going to be a few years before I pick up any Cosmere books again.</p>
<p>The Murderbot Diaries is excellent. I haven’t watched the Apple TV series yet only because I’m afraid of being disappointed. Maybe I’ll watch it once the series is over (or cacnelled).</p>
<p>Project Hail Mary is my favorite book of the year. There is supposed to be a movie coming out.</p>
<p>The second thing…I’ve been doing more eBay shopping and selling. Mainly, electronics. I tend to keep hardware for a long time. For what I do day to day, I never need the latest and greatest. I held on to my iPhone X for 7 years. That’s why I don’t mind buying equipment one or two generations old. One man’s trash is…</p>
<p>At the moment I’m buying and testing used shoes off eBay. I know, I know, It’s really hard to get a sense of shoes till they are broken in, but you can’t return shoes, if you don’t like them, when you have broken them in. Plus good shoes are pricey. So far, I’ve gotten a few shoes for ~<code class="language-math math-inline">40 each, that retail for </code>200, and found I don’t like them. It sounds more expensive overall and it is. But I know when I find shoes I like, I really like them and don’t wonder if there is a better shoe out there.</p>
<p>Every now and then, I post items to sell, meaning I’m not trying to make any real proft, because I would have trashed them otherwise. Better they find a second home (or more likely get bought by a reseller and then resold at higher prices) than end up in a landfill.</p>
<p>My selling strategy is pretty simple. Research recent product prices, average out the 5 most recent sales, add ~10%, allow buyers to offer their prices, and then set an ad rate at ~7%. Usually the items sell within 3 or 4 days. One man’s trash is…</p>
<p>For 2026, this eBay thing, will I keep doing? It will depend on what I want to get rid of and what I want to buy.</p>
<p>I certainly do hope I keep up with the reading!</p>]]></content:encoded>
    <pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2025-11-12</title>
    <link>https://nali.org/updates/2025-11-12</link>
    <guid isPermaLink="true">https://nali.org/now#2025-11-12</guid>
    <description><![CDATA[After meaning to for years, I finally installed NUT (Network UPS Tool) for my UPS.
It took my while because I wanted an independent device to run it that wasn’t mixed up with other servers running virtual machines and containers.
After researching low power devices, I bought a used HP T620 off eBay for $20. I really wanted a Raspberry Pi, but the prices are outragous nowadays and I didn’t want to ]]></description>
    <content:encoded><![CDATA[<p>After meaning to for years, I finally installed NUT (Network UPS Tool) for my UPS.</p>
<p>It took my while because I wanted an independent device to run it that wasn’t mixed up with other servers running virtual machines and containers.</p>
<p>After researching low power devices, I bought a used HP T620 off eBay for $20. I really wanted a Raspberry Pi, but the prices are outragous nowadays and I didn’t want to cobble together all the parts.</p>
<p>I ran into a <a href="../wiki/tech/apps/nut" class="internal internal-link alias" data-slug="wiki/tech/apps/nut">minor issue configuring NUT</a>, but overall I’m happy with the setup.</p>]]></content:encoded>
    <pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2025-11-11</title>
    <link>https://nali.org/updates/2025-11-11</link>
    <guid isPermaLink="true">https://nali.org/now#2025-11-11</guid>
    <description><![CDATA[Rosalía’s LUX is the best album I’ve heard in years. I’ve listening to it non-stop since it dropped a few days ago.
Even if you don’t know Spanish (or the many other languages she sings in), it simply sounds phenomenal.
▶]]></description>
    <content:encoded><![CDATA[<p><a href="https://en.wikipedia.orgwiki/Rosal%C3%ADa" class="external external-link">Rosalía’s<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a> <a href="https://en.wikipedia.orgwiki/Lux_(Rosal%C3%ADa_album)" class="external external-link">LUX<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a> is the best album I’ve heard in years. I’ve listening to it non-stop since it dropped a few days ago.</p>
<p>Even if you don’t know Spanish (or the many other languages she sings in), it simply sounds phenomenal.</p>
<div class="yt-embed" data-video="htQBS2Ikz6c"><a href="https://www.youtube.com/watch?v=htQBS2Ikz6c" class="yt-thumb external external-link" aria-label="Play video on YouTube"><img src="https://i.ytimg.com/vi/htQBS2Ikz6c/hqdefault.jpg" alt loading="lazy"/><span class="yt-play">▶</span><svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a></div>]]></content:encoded>
    <pubDate>Tue, 11 Nov 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2025-06-25</title>
    <link>https://nali.org/updates/2025-06-25</link>
    <guid isPermaLink="true">https://nali.org/now#2025-06-25</guid>
    <description><![CDATA[Generative Engine Optimization (GEO)…ugh.
30 years of SEO slop and here we go again.]]></description>
    <content:encoded><![CDATA[<p>Generative Engine Optimization (GEO)…ugh.</p>
<p>30 years of SEO slop and here we go again.</p>]]></content:encoded>
    <pubDate>Wed, 25 Jun 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2025-06-18</title>
    <link>https://nali.org/updates/2025-06-18</link>
    <guid isPermaLink="true">https://nali.org/now#2025-06-18</guid>
    <description><![CDATA[Over the last couple of years I’ve used Tailscale to easily connect home servers and VPSs. Tailscale is pretty special. It’s almost idiot-proof. Exposing web apps internally was stupid easy.
For external use, I used the Cloudflare Zero Trust stack, like Tunnels and Access. There was a learning curve especially if you were connecting Cloudflare to a reverse proxy like Caddy instead directly to the ]]></description>
    <content:encoded><![CDATA[<p>Over the last couple of years I’ve used Tailscale to easily connect home servers and VPSs. Tailscale is pretty special. It’s almost idiot-proof. Exposing web apps internally was stupid easy.</p>
<p>For external use, I used the Cloudflare Zero Trust stack, like Tunnels and Access. There was a learning curve especially if you were connecting Cloudflare to a reverse proxy like Caddy instead directly to the ports of the web apps. Still with a bit of Googling, it was doable.</p>
<p>Now, not that I think Tailscale or Cloudflare would peek into what I was doing on the servers, all their tools running as root which made me wary. Tailscale clients are open source and no one has complained about Cloudflare doing hinky stuff, but I had a little internal voice telling me to find alternatives.</p>
<p>My first thought was replacing Tailscale with Headscale, but you can’t do that exactly. Headscale replaces Tailscale control server so you don’t have to depend on Tailscale’s infrastructure. Even after replacing Headscale, you’d still keep using Tailscale clients since they allow you to set whatever control server you want to use.</p>
<p>It took some time to substitute in Headscale, but it was never 100% solid. Clients would randomly stop responding here and there. I’m pretty sure it was my fault in terms of how the servers were set up but the debugging started getting tedious. I got to the point where I wanted to wipe servers clean and start over, but I didn’t have the stomach for that.</p>
<p>I went back to thinking about alternatives. Over the last few months, I’ve heard <a href="https://fossorial.io/" class="external external-link">Pangolin<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a> mentioned a lot. Pangolin is more like Cloudflare Access than Tailscale. You have a Pangolin server that is accessible externally. All the other servers run Newt, which connects the servers to the Pangolin server. The Pangolin server does all the reverse proxy work and provides a great dashboard to configure domains and routes.</p>
<p>After getting Pangonlin set up and all the servers connected to it, I decided I wanted to lock down access a bit more. So I went down the mTLS rabbit hole. All I can say is that journey sucked, but I wrote up instructions for setting up <a href="../wiki/tech/devops/pangolin" class="internal internal-link alias" data-slug="wiki/tech/devops/pangolin">mTLS in Pangolin</a>.</p>
<p>Next, I need to look into ssh certificates. Reading instructions for setting that up makes my eyes glaze over.</p>
<p>I haven’t fully found a replacement for Tailscale/Headscale functionality to easily ssh into any server on the same tailnet yet, but it’s on my todo list. You can kinda do it with Pangolin, which can reverse proxy raw TCP/UDP packets, but that doesn’t like the best plan. We’ll see.</p>]]></content:encoded>
    <pubDate>Wed, 18 Jun 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2025-05-24</title>
    <link>https://nali.org/updates/2025-05-24</link>
    <guid isPermaLink="true">https://nali.org/now#2025-05-24</guid>
    <description><![CDATA[I’ve been putting off upgrading this site to the latest version of Astro due to breaking changes related to Tailwind. Those types of upgrades never go well.
That’s where Claude Desktop came in. Using the git and codemcp MCP servers, I got it done in a couple of hours.
Serioulsy, it would taken me a couple more years to update if it hadn’t been for LLMs. Not like it’s a major deal since this is a s]]></description>
    <content:encoded><![CDATA[<p>I’ve been putting off upgrading this site to the latest version of Astro due to breaking changes related to Tailwind. Those types of upgrades never go well.</p>
<p>That’s where Claude Desktop came in. Using the git and codemcp MCP servers, I got it done in a couple of hours.</p>
<p>Serioulsy, it would taken me a couple more years to update if it hadn’t been for LLMs. Not like it’s a major deal since this is a static site, but that’s real productivity right there.</p>]]></content:encoded>
    <pubDate>Sat, 24 May 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2025-03-24</title>
    <link>https://nali.org/updates/2025-03-24</link>
    <guid isPermaLink="true">https://nali.org/now#2025-03-24</guid>
    <description><![CDATA[Just finished Project Hail Mary by Andy Weir. It’s the best science fiction book I’ve read in some time. Andy Weir wrote The Martian.]]></description>
    <content:encoded><![CDATA[<p>Just finished <a href="https://www.penguinrandomhouse.com/books/611060/project-hail-mary-by-andy-weir/" class="external external-link">Project Hail Mary<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a> by Andy Weir. It’s the best science fiction book I’ve read in some time. Andy Weir wrote The Martian.</p>]]></content:encoded>
    <pubDate>Mon, 24 Mar 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2025-03-19</title>
    <link>https://nali.org/updates/2025-03-19</link>
    <guid isPermaLink="true">https://nali.org/now#2025-03-19</guid>
    <description><![CDATA[At the end of 2024, I tried figuring out how many books I’d read.
Sadly, I only read 8.
My goal is to read at least 50 in 2025. One a week shouldn’t be bad. I have chunks of downtime daily, either waiting on things to be done or waiting on people.
I’ve added a books read page to keep track.
Let’s see how this goes.]]></description>
    <content:encoded><![CDATA[<p>At the end of 2024, I tried figuring out how many books I’d read.</p>
<p>Sadly, I only read 8.</p>
<p>My goal is to read at least 50 in 2025. One a week shouldn’t be bad. I have chunks of downtime daily, either waiting on things to be done or waiting on people.</p>
<p>I’ve added a <a href="../wiki/entertainment/books" class="internal internal-link alias" data-slug="wiki/entertainment/books">books read</a> page to keep track.</p>
<p>Let’s see how this goes.</p>]]></content:encoded>
    <pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2024-10-22</title>
    <link>https://nali.org/updates/2024-10-22</link>
    <guid isPermaLink="true">https://nali.org/now#2024-10-22</guid>
    <description><![CDATA[I’ve been thinking about trying out a different password manager.
Years ago I used 1Password which was great, but I wanted to store the passwords locally or on my network.
I’ve been using Vaultwarden, a Bitwarden compatible server, for years, along with the official Bitwarden clients on Macs and iPhones.
The problem is the Bitwarden clients are kinda…icky. They always seem slow. I don’t see why be]]></description>
    <content:encoded><![CDATA[<p>I’ve been thinking about trying out a different password manager.</p>
<p>Years ago I used 1Password which was great, but I wanted to store the passwords locally or on my network.</p>
<p>I’ve been using Vaultwarden, a Bitwarden compatible server, for years, along with the official Bitwarden clients on Macs and iPhones.</p>
<p>The problem is the Bitwarden clients are kinda…icky. They always seem slow. I don’t see why because I only have a few hundred passwords saved. Maybe Vaultwarden is to blame, I don’t know. Either way, it’s an excuse to try something new.</p>
<p>Looking around, the only real open source locally stored alternative was Keepass.</p>
<p><a href="https://keepassium.com/" class="external external-link">KeePassium<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a> has iOS and Mac versions to edit Keepass databases. I decided to give it a show.</p>
<p>Keepassium supports Autofill by leveraging the APIs provided by Apple. Unfortunately, Firefox does not integerate with Apple’s Autofill functionality and it <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1650212" class="external external-link">doesn’t look like they will soon<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a>.</p>
<p><a href="https://keepassxc.org/" class="external external-link">KeepassXC<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a>, a cross-platform keepass client provides a Firefox extension that interacts with the installed KeepassXC application.</p>
<p>I decided to test out KeepassXC on Macs with it’s Firefox extension, database synced over iCloud, and using the Keepassium app on iOS.</p>
<p>Making changes to the database with Keepassium on iOS didn’t trigger a file change on iCloud so KeepassXC on Macs would reload the database. I have no clue why.</p>
<p>Bizarrely, if I used the Keepassium app on the desktop and iOS, syncing over iCloud was no problem. Still the lack of Autofill in Firefox was a dealbreaker.</p>
<p>Keepassium on iOS supported WebDAV. Maybe that could work. I wanted to set up a WebDAV server which housed the Keepass database, was accessible by Keepassium on iOS, and mounted on the Mac for KeepassXC.</p>
<p>Setting up the <a href="http://localhost:4321wiki/tech/devops/caddy/#basic-caddy-webdav-setup" class="external external-link">WebDAV with Caddy<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a> was straightforward. Keepassium could sucessfully open and edit the Keepass database over WebDAV. The WebDAV share was mounted on the Mac by going to Finder -> Go -> Connect to Server. KeepassXC could open the database just fine, but editing and saving would cause errors from Caddy.</p>
<p>To fix this, I enabled ‘Use alternative saving method’ in the General application settings. This god rid of all errors. Just in case, I also enabled Backup database file before saving.</p>
<p>We’ll see how this set up works out.</p>]]></content:encoded>
    <pubDate>Tue, 22 Oct 2024 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title>2024-10-13</title>
    <link>https://nali.org/updates/2024-10-13</link>
    <guid isPermaLink="true">https://nali.org/now#2024-10-13</guid>
    <description><![CDATA[Added a security.txt and humans.txt to the site.
securitytxt.org/
humanstxt.org/]]></description>
    <content:encoded><![CDATA[<p>Added a <a href="https://nali.org/.well-known/security.txt" class="external external-link">security.txt<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a> and <a href="https://nali.org/humans.txt" class="external external-link">humans.txt<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a> to the site.</p>
<p><a href="https://securitytxt.org/" class="external external-link">https://securitytxt.org/<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a><br/>
<a href="https://humanstxt.org/" class="external external-link">https://humanstxt.org/<svg aria-hidden="true" class="external-icon" style="max-width:0.8em;max-height:0.8em;" viewBox="0 0 512 512"><path d="M320 0H288V64h32 82.7L201.4 265.4 178.7 288 224 333.3l22.6-22.6L448 109.3V192v32h64V192 32 0H480 320zM32 32H0V64 480v32H32 456h32V480 352 320H424v32 96H64V96h96 32V32H160 32z"></path></svg></a></p>]]></content:encoded>
    <pubDate>Sun, 13 Oct 2024 00:00:00 GMT</pubDate>
  </item>
</channel>
</rss>
