<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sal's Blog</title><link>https://sals.place/</link><description>Sal's recent blog posts</description><generator>Hugo</generator><language>en-us</language><managingEditor>sal@sals.place (Sal)</managingEditor><webMaster>sal@sals.place (Sal)</webMaster><lastBuildDate>Sat, 08 Aug 2026 11:42:47 -0400</lastBuildDate><atom:link href="https://sals.place/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog posts about elaborate blogging setups</title><link>https://sals.place/blog/elaborate-blogging-setups/</link><pubDate>Sat, 08 Aug 2026 11:42:47 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/elaborate-blogging-setups/</guid><description>&lt;p&gt;&lt;a href="https://baty.net/notes/2026/08/blogging-and-blog-setups/"&gt;Baty just posted this&lt;/a&gt;
and I just have to follow suit.
It&amp;rsquo;s hilarious and painful how relevant it is to &lt;a href="https://sals.place/blog/fixing-my-published-drafts/"&gt;my blog lately&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sals.place/images/blog-setups.jpg" alt="comic about blog posts about elaborate blogging setups"&gt;&lt;/p&gt;
&lt;p&gt;Comic credit to &lt;a href="https://rakhim.org/honestly-undefined/19/"&gt;Rakhim&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>pico.sh!</title><link>https://sals.place/blog/pico-sh-cool/</link><pubDate>Sat, 08 Aug 2026 10:39:36 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/pico-sh-cool/</guid><description>&lt;p&gt;Wow, &lt;a href="https://pico.sh/"&gt;pico.sh&lt;/a&gt; looks very enticing.&lt;/p&gt;
&lt;p&gt;I found it last night after reading Brennan&amp;rsquo;s post,
&lt;a href="https://brennan.day/free-speech-and-the-indieweb/"&gt;Free Speech and the IndieWeb&lt;/a&gt;,
which discusses the reasons he doesn&amp;rsquo;t use Cloudflare.
See also &lt;a href="https://brennan.day/choosing-friction-and-clear-skies-i-m-no-longer-using-cloudflare/"&gt;his longer post on this topic&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I &lt;em&gt;have&lt;/em&gt; been feeling a little dirty about using Cloudflare for hosting this little indie blog.
Plus, Cloudflare frustrated me this week when &lt;a href="https://sals.place/blog/fixing-my-published-drafts/"&gt;it wouldn&amp;rsquo;t update my broken site&lt;/a&gt; (my fault for breaking it; Cloudflare&amp;rsquo;s for not letting me fix it).
So Brennan&amp;rsquo;s post provoked me to look for alternatives.
I searched for options that allow deployment of static sites via rsync, and I soon beheld pico.sh.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/pico-sh-cool/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>PT Mono</title><link>https://sals.place/blog/pt-mono/</link><pubDate>Fri, 07 Aug 2026 15:22:22 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/pt-mono/</guid><description>&lt;p&gt;I was succumbing to my Hacker News habit recently and saw this post from Rands:
&lt;a href="https://randsinrepose.com/archives/blade-runner-title-cards/"&gt;The Title Cards in Blade Runner Are Fucking Amazing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://fonts.bunny.net/family/pt-mono"&gt;PT Mono&lt;/a&gt; was in the list of fixed-width fonts that made his cut.
For some reason it stuck in my brain.
Maybe because I hadn&amp;rsquo;t heard of it.&lt;/p&gt;
&lt;p&gt;Later, I found myself perusing macOS&amp;rsquo;s &lt;em&gt;Font Book&lt;/em&gt; app.
There, in the relatively small &lt;em&gt;Fixed Width&lt;/em&gt; collection of fonts, was none other than PT Mono.
Turns out it&amp;rsquo;s a default font on macOS.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/pt-mono/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>I published my drafts: lessons learned and steps taken</title><link>https://sals.place/blog/fixing-my-published-drafts/</link><pubDate>Fri, 07 Aug 2026 01:57:34 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/fixing-my-published-drafts/</guid><description>&lt;p&gt;&lt;a href="https://sals.place/blog/published-my-drafts/"&gt;As I mentioned&lt;/a&gt;, I accidentally published all my draft posts.
You know, the ones I cheekily listed at the bottom of &lt;a href="https://sals.place/blog/find-your-drafts-with-ripgrep/"&gt;my ripgrep post&lt;/a&gt;.
All public and in my RSS feed.
Dangit.&lt;/p&gt;
&lt;h2 id="what-happened"&gt;What happened&lt;/h2&gt;
&lt;p&gt;I can&amp;rsquo;t know for sure, but here&amp;rsquo;s what I suspect happened.&lt;/p&gt;
&lt;h3 id="sloppiness-on-my-part"&gt;Sloppiness on my part&lt;/h3&gt;
&lt;p&gt;When Hugo builds my production site, it puts the files in the &lt;code&gt;public/&lt;/code&gt; subdirectory.
I then upload that subdir to Cloudflare Pages with
&lt;a href="https://www.npmjs.com/package/wrangler"&gt;wrangler&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/fixing-my-published-drafts/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Another fat woops: I published my drafts</title><link>https://sals.place/blog/published-my-drafts/</link><pubDate>Thu, 06 Aug 2026 11:31:04 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/published-my-drafts/</guid><description>&lt;p&gt;Adding to the fun of this Hugo migration, I accidentally published all my draft posts this morning.&lt;/p&gt;



&lt;img src="https://sals.place/images/spongebob-straight-face.jpg" width="200" alt="Spongebag straight face"&gt;

&lt;p&gt;If you happened to see the actual words of those posts (they might be cached in your feed reader), I realize you now can&amp;rsquo;t unsee them.
My sincerest condolences.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll do a followup post once I figure out what happened and how exactly I fixed it.&lt;/p&gt;</description></item><item><title>Blog-post resiliency</title><link>https://sals.place/blog/blog-post-resiliency/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/blog-post-resiliency/</guid><description>&lt;p&gt;Here&amp;rsquo;s a good post and tips from Mike Harley:
&lt;a href="https://michaelharley.net/posts/2026/08/05/how-i-make-my-blog-posts-more-resilient/"&gt;How I make my blog posts more resilient&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mike recommends self-hosting media.
I&amp;rsquo;ve been back and forth about doing that vs. using something like Cloudinary or Cloudflare.
I think Mike makes a good point, and I&amp;rsquo;ll keep the images in my blog repo.&lt;/p&gt;
&lt;p&gt;Mike also puts permalinks in his posts proactively
(excuse the accidental alliteration)
so they stay consistent across platforms.
Smart.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/blog-post-resiliency/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Finding my draft posts with ripgrep</title><link>https://sals.place/blog/find-your-drafts-with-ripgrep/</link><pubDate>Wed, 05 Aug 2026 19:37:15 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/find-your-drafts-with-ripgrep/</guid><description>&lt;p&gt;You know those moments where you think, dang, computers are &lt;em&gt;so&lt;/em&gt; insanely fast now &amp;hellip; so why in the world does software still feel slow??&lt;/p&gt;
&lt;p&gt;Well &lt;a href="https://github.com/burntsushi/ripgrep"&gt;ripgrep&lt;/a&gt; is the antidote to that feeling.
It&amp;rsquo;s just mind-bogglingly fast.
I flippin&amp;rsquo; love ripgrep.
I use it for so much stuff.&lt;/p&gt;
&lt;p&gt;Anyway, today I found a nice snippet that lists all my blog posts that are still in draft status:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#ebdbb2;background-color:#282828;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rg &lt;span style="color:#b8bb26"&gt;&amp;#39;^draft( = |: )true&amp;#39;&lt;/span&gt; --glob &lt;span style="color:#b8bb26"&gt;&amp;#34;*.md&amp;#34;&lt;/span&gt; --files-with-matches content
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The handy bit there is &lt;code&gt;'^draft( = |: )true'&lt;/code&gt;, which will find both &lt;code&gt;draft = true&lt;/code&gt; (TOML syntax) and &lt;code&gt;draft: true&lt;/code&gt; (YAML syntax).
Since &lt;a href="https://sals.place/blog/11ty-to-hugo/"&gt;moving to Hugo&lt;/a&gt;, my new posts generated with the
&lt;a href="https://gohugo.io/commands/hugo_new_content/"&gt;hugo new content&lt;/a&gt;
command have
&lt;a href="https://gohugo.io/content-management/front-matter/"&gt;TOML frontmatter&lt;/a&gt;,
but my old stuff has YAML.
(I could easily change the default to use YAML instead, but TOML feels fun and whimsical at the moment.)&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/find-your-drafts-with-ripgrep/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Smoke in Portland</title><link>https://sals.place/blog/pdx-smoke-2026/</link><pubDate>Wed, 05 Aug 2026 11:09:59 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/pdx-smoke-2026/</guid><description>&lt;p&gt;It&amp;rsquo;s smoky in Portland right now.
For the moment, we&amp;rsquo;ve got the worst AQI of any &amp;ldquo;major&amp;rdquo; city in the world.&lt;/p&gt;
&lt;img src="https://sals.place/images/smoky-pdx-airvisual.avif" alt="AirVisual city ranking screenshot" width="400"/&gt;
&lt;p&gt;Here&amp;rsquo;s what it looks like outside
(image from &lt;a href="https://www.oregonlive.com/weather/2026/08/portland-area-set-to-see-mix-of-extreme-heat-and-smoke-meteorologists-say.html"&gt;Oregonlive.com&lt;/a&gt;):&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sals.place/images/smoky-pdx-skyline.avif" alt="An image of smoky Portland"&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a drag.
My kids both have camps this week that have either been canceled or compromised.
Exercising outside is a bad idea.
I&amp;rsquo;m monitoring our indoor AQI with a couple sensors and redistributing air filters around the house.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/pdx-smoke-2026/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>An RSS oopsie, props to Pablo at powRSS</title><link>https://sals.place/blog/rss-oopsie-powrss-props/</link><pubDate>Tue, 04 Aug 2026 23:28:13 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/rss-oopsie-powrss-props/</guid><description>&lt;p&gt;Yesterday &lt;a href="https://sals.place/blog/11ty-to-hugo/"&gt;I moved my blog&lt;/a&gt; to Hugo and, despite my rigorous testing locally and in a staging deployment, I broke my RSS feed in production.
Perfect. 🤦‍♂️&lt;/p&gt;
&lt;p&gt;The issue was that the Hugo &lt;code&gt;baseURL&lt;/code&gt; setting wasn&amp;rsquo;t being applied properly, so all the post links were pointing at &lt;code&gt;localhost&lt;/code&gt;.
The scrappy, I&amp;rsquo;m-in-the-middle-of-dinner fix was to set it manually:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#ebdbb2;background-color:#282828;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo --baseURL &lt;span style="color:#b8bb26"&gt;&amp;#34;https://sals.place&amp;#34;&lt;/span&gt; build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But today I hope to figure out why the &lt;code&gt;baseURL&lt;/code&gt; setting in &lt;code&gt;hugo.toml&lt;/code&gt; setting wasn&amp;rsquo;t taking effect.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/rss-oopsie-powrss-props/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Moved the blog from 11ty to Hugo</title><link>https://sals.place/blog/11ty-to-hugo/</link><pubDate>Tue, 04 Aug 2026 18:26:18 -0400</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/11ty-to-hugo/</guid><description>&lt;aside class="blog-aside"&gt;
 TLDR: I migrated my blog. Please email me if you notice anything's amiss!
&lt;/aside&gt;
&lt;p&gt;What should you do when you&amp;rsquo;re busy and have been spending too much time on your blog lately?
Why, dive head first into a completely unnecessary SSG migration, of course!&lt;/p&gt;
&lt;p&gt;I had Hugo on the brain last night for somewhat valid, somewhat flimsy reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I used Hugo in the past and liked it.&lt;/li&gt;
&lt;li&gt;11ty&amp;rsquo;s fast, but Hugo&amp;rsquo;s &lt;em&gt;wicked&lt;/em&gt; fast.&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;ve been writing more Golang code lately.&lt;/li&gt;
&lt;li&gt;While I&amp;rsquo;m fine with JavaScript and enjoy TypeScript, relying on npm feels dirty these days with all the supply-chain attacks. Hugo is a single, batteries-included binary that does not rely on third-party packages.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With these thoughts in mind, I dipped a toe back into the Hugo pond this morning, liked the feel of it, and before long was wild-eyed and neck-deep in migration.
It&amp;rsquo;s now about 3:50 pm, and I think most of the core stuff is working in Hugo.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/11ty-to-hugo/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Belated welcome to Blaugust</title><link>https://sals.place/blog/blaugust-2026-week-1/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/blaugust-2026-week-1/</guid><description>&lt;p&gt;I wasn&amp;rsquo;t sure I was going to say anything about Blaugust because I&amp;rsquo;m already posting a lot lately, but why the heck not.
So, a belated welcome to &lt;a href="https://indiecator.org/2026/07/20/blaugust-2026-is-coming/"&gt;Blaugust 2026&lt;/a&gt;!
From the intro:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you’re new to blogging, it’s a great opportunity to meet many cool people, get help with starting up your own website, and participate in a cool community project. If you’re a blogging veteran, it’s just the push to dust off the old site and get back into the ring again. Overall, it’s just a nice event that reinvigorates the community and helps folks not just build up a habit of writing but also form connections with other people in the sphere.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/blaugust-2026-week-1/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cursive</title><link>https://sals.place/blog/cursive/</link><pubDate>Sun, 02 Aug 2026 00:00:00 +0000</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/cursive/</guid><description>&lt;p&gt;&lt;a href="https://sals.place/blog/stephenson-on-writing-by-hand/"&gt;I mentioned&lt;/a&gt; that I was going to try following Neal Stephenson&amp;rsquo;s advice and learn to write in cursive.
I stuck with it for almost a whole afternoon.&lt;/p&gt;
&lt;p&gt;Is that good?&lt;/p&gt;
&lt;p&gt;Practicing proper cursive
— in my case, as directed by the &lt;a href="https://en.wikipedia.org/wiki/Palmer_Method"&gt;Palmer Method&lt;/a&gt; —
massively slowed down my writing.
And the product looked like shit because I was bad at it.
Then I realized the Palmer Method opens the rabbit hole of &amp;ldquo;whole arm movement,&amp;rdquo;
where you use your arm to move the pen rather than your hand.
Apparently this can take years of practice to master.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/cursive/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Re: productivity mirage</title><link>https://sals.place/blog/productivity-mirage/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0000</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/productivity-mirage/</guid><description>&lt;p&gt;From Alex&amp;rsquo;s post, &lt;a href="https://frantic.im/mirage/"&gt;The Productivity Mirage&lt;/a&gt;
(HN discussion &lt;a href="https://news.ycombinator.com/item?id=49104335"&gt;here&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I remember this legendary software engineer at Facebook. His name is &lt;a href="https://www.iambob.com/"&gt;Bob&lt;/a&gt;. Bob is a prolific engineer – he was responsible for shipping Facebook Groups (among other things). He was also a hackathon legend, delivering hit after hit.&lt;/p&gt;
&lt;p&gt;At the time I was a massive productivity nerd. I had a custom Vim setup with my own syntax highlighting and snippets for &lt;a href="https://hacklang.org"&gt;Hack&lt;/a&gt; (Facebook’s dialect of PHP). My elaborate setup involved &lt;code&gt;tmux&lt;/code&gt; over &lt;code&gt;mosh&lt;/code&gt; with custom &lt;code&gt;hphpd&lt;/code&gt; shortcuts and fancy &lt;code&gt;git&lt;/code&gt; aliases.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/productivity-mirage/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Re: Bubbles, upvotes, web interlinking</title><link>https://sals.place/blog/re-bubbles-interlinking-etc/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/re-bubbles-interlinking-etc/</guid><description>&lt;p&gt;Brace for metablogging. Sorry / not sorry.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m responding to two good posts I found this week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Brennan&amp;rsquo;s &lt;a href="https://brennan.day/knitting-the-web-we-need-interlinkers/"&gt;Knitting the Web: We Need Interlinkers!&lt;/a&gt;, which linked me to&lt;/li&gt;
&lt;li&gt;Coyote&amp;rsquo;s &lt;a href="https://osteophage.neocities.org/essays/bubbles-problems"&gt;Bubbles is a New Way of Recreating Old Problems&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because I&amp;rsquo;m a proper smoothbrain, I never realized what the &amp;ldquo;bubbles&amp;rdquo; of
&lt;a href="https://bubbles.town/"&gt;bubbles.town&lt;/a&gt; refer to.
The site&amp;rsquo;s footer currently reads, &amp;ldquo;Good stuff bubbles up.&amp;rdquo;
As in, the &amp;ldquo;good&amp;rdquo; blog posts are made discoverable via upvotes.&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/re-bubbles-interlinking-etc/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Thoughts in progress: jj and my homelab</title><link>https://sals.place/blog/jj-and-homelab-thoughts/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><author>sal@sals.place (Sal)</author><guid>https://sals.place/blog/jj-and-homelab-thoughts/</guid><description>&lt;h2 id="my-jj-experiment-is-going-well"&gt;My jj experiment is going well&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://sals.place/blog/trying-jj/"&gt;As mentioned&lt;/a&gt;,
I&amp;rsquo;ve been trying &lt;a href="https://github.com/jj-vcs/jj"&gt;jj&lt;/a&gt; lately,
and I&amp;rsquo;m beginning to see the light.
Or at least some of it.
Here are a few key changes I&amp;rsquo;ve noticed.&lt;/p&gt;
&lt;p&gt;{% aside %}
Disclaimer: I am mediocre at git and a total beginner at jj.
This post captures my thoughts as I learn.
It&amp;rsquo;s &lt;em&gt;not&lt;/em&gt; meant to be any sort of guide or advice.
{% endaside %}&lt;/p&gt;&lt;p&gt;&lt;a href="https://sals.place/blog/jj-and-homelab-thoughts/"&gt;... Read the full post on Sal's&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss><!-- build 1786205213 c1f0c38a51e5560f2715792e1df52069f090e2c6 -->
