~hedy's blogroll - BlogFlockThe blogroll listed on my website.
https://home.hedy.dev/blogroll/2025-04-02T10:11:46.635ZBlogFlockPloum.net, Protesilaos Stavrou: Master feed with all updates, Sloum, Baty.net, erock, ~hedy, James' Coffee Blog, Seirdy, Manuel Moreale RSS FeedGoodbye Offpunk, Welcome XKCDpunk! - Ploum.nethttps://ploum.net/2025-04-01-xkcdpunk.html2025-04-01T00:00:00.000Z<h1>Goodbye Offpunk, Welcome XKCDpunk!</h1>
<p>For the last three years, I’ve been working on Offpunk, a command-line gemini and web browser. </p>
<ul>
<li><a href="https://offpunk.net">Offpunk.net</a></li>
</ul>
<p>While my initial goal was to browse the Geminisphere offline, the mission has slowly morphed into cleaning and unenshitiffying the modern web, offering users a minimalistic way of browsing any website with interesting content.</p>
<ul>
<li><a href="/2022-03-24-ansi_html.html">Rendering the Web with Pictures in Your Terminal (ploum.net)</a></li>
</ul>
<h2 id="soustitre-1">Focusing on essentials</h2>
<p>From the start, it was clear that Offpunk would focus on essentials. If a website needs JavaScript to be read, it is considered as non-essential. </p>
<p>It worked surprisingly well. In fact, in multiple occurrence, I’ve discovered that some websites work better in Offpunk than in Firefox. I can comfortably read their content in the former, not in the latter.</p>
<p>By default, Offpunk blocks domains deemed as nonessentials or too enshitified like twitter, X, facebook, linkedin, tiktok. (those are configurable, of course. Defaults are in offblocklist.py).</p>
<p>Cleaning websites, blocking worst offenders. That’s good. But it is only a start.</p>
<p>It’s time to go further, to really cut out all the crap from the web. </p>
<p>And, honestly, besides XKCD comics, everything is crap on the modern web.</p>
<blockquote> As an online technical discussion grows longer, the probability of a comparison with an existing XKCD comic approaches 1.<br> – XKCD’s law<br></blockquote>
<ul>
<li><a href="/xkcds-law/index.html">XKCD’s law (ploum.net)</a></li>
</ul>
<p>If we know that we will end our discussion with an XKCD’s comic, why not cut all the fluff? Why don’t we go straight to the conclusion in a true minimalistic fashion?</p>
<h2 id="soustitre-2">Introducing XKCDpunk</h2>
<p>That’s why I’m proud to announce that, starting with today’s release, Offpunk 2.7 will now be known as XKCDpunk 1.0.</p>
<ul>
<li><a href="https://xkcdpunk.net">Xkcdpunk.net</a></li>
</ul>
<p>XKCDpunk includes a new essential command "xkcd" which, as you guessed, takes an integer as a parameter and display the relevant XKCD comic in your terminal, while caching it to be able to browse it offline.</p>
<figure>
<a href="/files/xkcdpunk1.png"><img alt="Screenshot of XKCDpunk showing comic 626" src="/files/xkcdpunk1.png" width="450" class="center"></a>
<figcaption>Screenshot of XKCDpunk showing comic 626</figcaption>
</figure>
<p>Of course, this is only an early release. I need to clean a lot of code to remove everything not related to accessing xkcd.com. Every non-xkcd related domain will be added to offblocklist.py. </p>
<p>I also need to clean every occurrence of "Offpunk" to change the name. All offpunk.net needs to be migrated to xkcd.net. Roma was not built in one day.</p>
<p>Don’t hesitate to install an "offpunk" package, as it will still be called in most distributions.</p>
<ul>
<li><a href="https://repology.org/project/offpunk/versions">offpunk package versions - Repology (repology.org)</a></li>
</ul>
<p>And report bugs on the xkcdpunk’s mailinglist.</p>
<ul>
<li><a href="https://lists.sr.ht/~lioploum/offpunk-users">xkcdpunk-users on lists.sr.ht</a></li>
</ul>
<p>Goodbye Offpunk, welcome XKCDpunk!</p>
<div class="signature"><p>I’m <a href="https://fr.wikipedia.org/wiki/Ploum">Ploum</a>, a writer and an engineer. I like to explore how technology impacts society. You can subscribe <a href="https://listes.ploum.net/mailman3/lists/en.listes.ploum.net/">by email</a> or <a href="/atom_en.xml">by rss</a>. I value privacy and never share your adress.</p>
<p>I write <a href="https://pvh-editions.com/ploum">science-fiction novels in French</a>. For <a href="https://bikepunk.fr">Bikepunk</a>, my new post-apocalyptic-cyclist book, my publisher is looking for contacts in other countries to distribute it in languages other than French. If you can help, <a href="about.html">contact me</a>!</p>
</div>P&B: Maya - Manuel Moreale RSS Feedhttps://manuelmoreale.com/@/page/b5cHFiS2NaaQzGe62025-03-28T12:00:00.000Z
<p>This is the 83rd edition of <em>People and Blogs</em>, the series where I ask interesting people to talk about themselves and their blogs. Today we have Maya and her blog, <a href="https://maya.land">maya.land</a></p>
<p>To follow this series <a href="https://peopleandblogs.com">subscribe to the newsletter</a>. A new interview will land in your inbox every Friday. Not a fan of newsletters? No problem! You can read the interviews here on the blog or you can subscribe to the <a href="https://manuelmoreale.com/feed">RSS feed</a>.</p>
<p>If you're enjoying the People and Blogs series and you want to see it grow, consider supporting on <a href="https://ko-fi.com/manuelmoreale">Ko-Fi</a>.</p>
<hr />
<h2>Let's start from the basics: can you introduce yourself?</h2>
<p>I'm Maya, a goblin of the Pacific Northwest. I design, write, and administer <a href="https://maya.land">maya.land</a>, a moderately sprawling piece of hypertext that's nearly five years grown. It has a <a href="https://maya.land/posts/">bloggy section</a> wedged in a back corner, somewhere behind the clickable MIDI gramophone.</p>
<p>By week, I am employed as a software engineer for a giant tech company. I principally work on systems centered around <a href="https://en.wikipedia.org/wiki/Mathematical_optimization">optimization models</a>. It is <em>not</em> the kind of thing I blog about, and seems almost embarrassing to mention here. Still, if you caught me at a work happy hour you would perceive the same frenzied enthusiasm that leaves crumbs on everything that I <em>do</em> put up online.</p>
<p>By weekend, I spend far more time link-hunting than is healthy for a person with a laptop-bound job.</p>
<p>This is the part where I'd like to make a breezy allusion to some very cool, very prestigey offline hobby that one does out of the house, with other people, and not hunched over. Let's all pretend I've mentioned one.</p>
<h2>What's the story behind your blog?</h2>
<p>I'll confess I'm an eavesdropper. I used to linger in parks to people-watch, scribble down lines in a notebook from others' conversations too good to forget. It is easy to live traveling in familiar wheel-ruts when there are whole other worlds of people moving parallel. Tiny points of public contact can be enough to remind you.</p>
<p>Then COVID. My travels shrunk. I was cloistered in a condo in a neighborhood that boarded up, terribly bleak. Even after they decided outdoors was safe, I didn't go out much. Summer 2020.</p>
<p>I'd always been a certain kind of Internet denizen (fuzzy feelings toward <a href="https://en.wikipedia.org/wiki/StumbleUpon">StumbleUpon</a>, studied eclecticism in media preferences, appreciation for <a href="https://xkcd.com/1095/">fractal subculture</a>) but in this period I started needing something different from it. How do you eavesdrop within your browser?</p>
<p>This oriented me differently toward the Web, and uncovered a few motivations to start <em>publishing</em>. <a href="https://indieweb.org/Webmention">Webmentions</a> appealed to me as a protocol, and I liked the sovereignty arguments the Indieweb folks make. <a href="https://satyrs.eu">Xanthe's site</a> gestured at expressive possibilities both familiar and unfamiliar; certainly, I'd spent enough time on Geocities in my youth to appreciate the forms predating feeds and "social", but it'd never have occurred to me to <a href="https://satyrs.eu/style">define an idiosyncratic style guide</a>, to work up an artistic design different for every page. <a href="https://www.kickscondor.com/">Kicks Condor</a> was and is the visionary behind my whole <span style="white-space:nowrap">-ism</span> of the Internet. While I still dare not dream of ever getting to his level, setting up a site of my own seemed imperative.</p>
<p>Therefore: a domain, a static site generator, a lot of hours spent twiddling with web technologies I'd never been taught.</p>
<p>I've not added complications (in the <a href="https://en.wikipedia.org/wiki/Complication_(horology)">watch sense</a>) to it in a long time, and I owe it a design refresh, but the whole site feels as homey as you'd hope it would after years. This is perhaps a happy consequence of having made it as self-centered as I did. If I'd been shooting at some idea of what other people would appreciate, I think it'd have had to change more.</p>
<h2>What does your creative process look like when it comes to blogging?</h2>
<p>It's not that it isn't "creative", but it's first a consumptive process. The blog is an artifact of my chewing over an experience of the Internet, of culture. It's undeniable that the website exists, that I am really posting it up, sending out the bytes and packets and tags... but in my heart, it's only <em>pretending</em> to be for other people's access. According to this, it's really only an exercise of articulating my thoughts and feelings for an imaginary friend, in order to make them more legible to myself. </p>
<p>So, practically: with respect to my linkblogging, I annotate things I come across in <a href="https://hypothes.is/users/mayaland">hypothes.is</a> (phenomenal tool: to be able to stomp across the Internet scribbling notes on the margins!). I pull the annotations over into my notetaking system. And then later, I go through what I've pulled over, and I think: do I want to point people to this? I am of Robin Rendle's school: "<a href="https://buttondown.com/robinrendle/archive/8907d5a1-bc42-4a51-a1fb-19e0af6f40ec">blogging is pointing at things and falling in love</a>". Are there comments I must make alongside?</p>
<p>It's a feedback loop that shapes what I try to consume, too. I've written about this <a href="https://maya.land/updates/2024/12/01/update-adveniat-website-tuum.html">a bit</a> before, but it's an old Tumblrite's habit. I have an intuited ideal blend of topics to reflect what I care about. If I've not had anything good about music to post in a long time, that means I'm not spending enough time on music. If everything's getting too angled toward one obsession or other, it's a good cue to even things out.</p>
<p><em>Outside</em> of linkblogging, I also produce <a href="https://maya.land/monologues/">writing that we may deem both "overwrought" and "overwritten"</a>.</p>
<p>The process here, typically:</p>
<ul>
<li>A thought occurs.</li>
<li>I make abortive conversation about it with others.</li>
<li>I sometimes <em>successfully</em> discuss it with my sainted mother.</li>
<li>I continue to stew for a few weeks, accumulating emotional energy around something incomprehensible to the people in my life.</li>
<li>I earmark a good amount of a Saturday, gather material, and rage out a draft that is something like what you might scream out of a window after a bad day.</li>
<li>(If interrupted at this stage, the draft may sit for weeks or months or years. An amateur's method relies on momentum.)</li>
<li>This bit may be surprising to my readers: I do edit the draft. I intend the exhausting indirection of the high-level structure that you may observe. As regards the sentence-level prose, I make some effort to tamp down its congenital prolixity. Not, like, enough for <em>others</em> to notice, probably, but definitely more than zero effort.</li>
<li>I post it. I thereafter see ten more things I need to change. (I change them, because I am not an institution and owe no one clean versioning.)</li>
</ul>
<p>I try to come up with the post titles that will most cleanly both allow the kind of person who would <em>like</em> a thing to recognize it, and allow the kind of person who would <em>not</em> like the thing to recognize they should skip it. This is the polite way to entitle things. There is also the cryptic poetic way – think Olu's "<a href="https://olu.online/immortality/">Immortality</a>" – which I also respect. Everything else is clout-chasing.</p>
<h2>Do you have an ideal creative environment? Also do you believe the physical space influences your creativity?</h2>
<p>Flights of fantasy are most frequent and most powerful when one's mundane life is at its worst. Creative acts on side projects flourish when main commitments stagnate. As a preteen, I drew innumerable pictures of women with wings because I felt stuck – I mean, I <em>was</em> stuck, you don't have a lot of agency or autonomy being twelve. I spent envious time imagining beautiful architecture and the luxuries of the rich because my environment didn't resemble that.</p>
<p>So, what would the ideal creative environment be from the perspective of output? Probably not that different from being locked down in a highrise with a laptop, the view out the window too elevated to make out the faces of anyone on the street below. It's sand that seeds pearls. (Unhappy the oyster!)</p>
<h2>A question for the techie readers: can you run us through your tech stack?</h2>
<p>The flow:</p>
<ul>
<li><a href="https://hypothes.is">Hypothes.is</a></li>
<li>✨ cron ✨ on a VM running on a lint-ridden machine in a closet. This also pulls in other things like <a href="https://www.last.fm/user/kixiqu">last.fm</a> data <a href="https://maya.land/now-listening/">for my use and abuse</a></li>
<li><a href="https://tiddlywiki.com/">Tiddlywiki</a></li>
<li>✨ more cron ✨</li>
<li>A <a href="https://jekyllrb.com/">Jekyll</a> repo of a size I won't discuss in polite company</li>
</ul>
<p>I also have <a href="https://github.com/zerok/webmentiond">webmentiond</a> for webmentions! Lovely project.<br />
<a href="https://porkbun.com/">Porkbun</a> has been a totally solid domain registrar.</p>
<h2>Given your experience, if you were to start a blog today, would you do anything differently?</h2>
<p>I might use a different static site generator? Jekyll's treated me well, but I hear alternatives are faster. I'd probably seek out a different templating language, since the complications I've introduced into Liquid are ... quite beyond its intended scope.</p>
<p>I don't know that I'd call my linkblogging "responses", an initial choice which is baked into my URL structure. Likely, my URLs would look altogether different, without any dates.</p>
<h2>Financial question since the Web is obsessed with money: how much does it cost to run your blog? Is it just a cost, or does it generate some revenue? And what's your position on people monetising personal blogs?</h2>
<p>Oh, God. Well. I kick some money to <a href="https://www.goatcounter.com/">Goatcounter</a>. Right now the site's run from a server in a closet, which is to say that its costs are immense but paid entirely in household labor. For annoying availability reasons I'm eventually going to move all the static content to AWS, where I expect it will take very little money indeed to host (I have a couple websites there already that demand about fifty-two cents a month each).</p>
<p>It generates no revenue. Every now and again I wonder whether I should add ads for things that have gotten Picked Up. There's no one right way to do just about anything on the Internet, so you have to evaluate each monetization approach in the context of a particular blog, and in the <em>social</em> context of that blog. I'm thinking of an online acquaintance who is compensated by ad revenue for the experience of having her stuff frontpaged on Hacker News; truly it is right and just that she be paid for having so many jokes fly over so many braying heads.</p>
<p>Still, I feel very protective of the idea that I – as a webmaster, which for me means something more like an artist than like anything else – should be able to define the terms of exchange with a site visitor without their being able to point to any material incentives of mine. I know many have felt their time wasted by the way I do everything. My site isn't <em>for</em> them. I should hate to give the impression that I'm trying to lure such visitors in for, well, impressions.</p>
<h2>Time for some recommendations: any blog you think is worth checking out? And also, who do you think I should be interviewing next?</h2>
<p>I have an extensive <a href="https://maya.land/blogroll.opml">blogroll</a> that at some points has been better known than my actual site. To commemorate this interview I've tidied it up somewhat, moving those whose feeds haven't updated in over a year to a "defunct" section.</p>
<p>As for whom to interview... I'm very interested in the people out there doing their socializing via blog / site in the post-Livejournal era. I get the impression that for certain demographics (largely younger than mine?), public web presences form a useful complement to the chattering impermanence of Discord. <a href="https://library.xandra.cc/">Alexandra's</a> <a href="https://library.xandra.cc/everyone-should-blog/">written on blogging before more generally</a>, but I'd love to read her answers to these questions.</p>
<h2>Final question: is there anything you want to share with us?</h2>
<p>Mark Eastgate's <a href="https://www.eastgate.com/garden/">Hypertext Gardens</a> is from 1998 and is essential reading for anyone trying to break their thinking out of what corporate tech has since made of the Web. It was also annoying enough to re-find just now that it merits loud public linking.</p>
<p>The blog-reader will appreciate <a href="https://ooh.directory/">ooh.directory</a>, a project positively Yahoo!vian in ambition.</p>
<p><a href="https://open.spotify.com/track/7JyXODFo6tyMW9vvLR3O2K">This song is better played live and yelled along to</a>, but I can't imagine too many of you will get the chance, so Spotify shall suffice.</p>
<hr />
<p>This was the 83rd edition of <em>People and Blogs</em>. Hope you enjoyed this interview with Maya. Make sure to <a href="https://maya.land">follow her blog</a> (<a href="https://maya.land/feed.xml">RSS</a>) and get in touch with her if you have any questions.</p>
<h2>Awesome supporters</h2>
<p>You can support this series on <a href="https://ko-fi.com/manuelmoreale">Ko-Fi</a> and all supporters will be listed here as well as on the <a href="https://peopleandblogs.com">official site</a> of the newsletter.</p>
<p><a href="https://www.thingelstad.com">Jamie Thingelstad</a> (<a href="https://www.thingelstad.com/feed.xml">RSS</a>) — <a href="https://some.studio">Piet Terheyden</a> — Eleonora — <a href="https://carlbarenbrug.com">Carl Barenbrug</a> (<a href="https://carlbarenbrug.com/feed/rss">RSS</a>) — <a href="https://tangiblelife.net">Steve Ledlow</a> (<a href="https://tangiblelife.net/feed.rss">RSS</a>) — <a href="https://www.feadin.eu">Paolo Ruggeri</a> (<a href="https://www.feadin.eu/en/posts/index.xml">RSS</a>) — <a href="https://thejollyteapot.com">Nicolas Magand</a> (<a href="https://thejollyteapot.com/feed.rss">RSS</a>) — <a href="https://robhope.com">Rob Hope</a> — <a href="https://chrishannah.me">Chris Hannah</a> (<a href="https://chrishannah.me/index.xml">RSS</a>) — <a href="https://blog.pcora.eu">Pedro Corá</a> (<a href="https://blog.pcora.eu/feed.xml">RSS</a>) — <a href="https://softlandings.world/">Sixian Lim</a> (<a href="https://www.softlandings.world/feed.rss">RSS</a>) — <a href="https://mattstein.com">Matt Stein</a> (<a href="https://mattstein.com/rss.xml">RSS</a>) — <a href="https://winnielim.org">Winnie Lim</a> (<a href="https://winnielim.org/feed/">RSS</a>) — <a href="https://flamedfury.com/">Flamed</a> (<a href="https://flamedfury.com/feed.xml/">RSS</a>) — <a href="https://skyhold.org">C Jackdaw</a> (<a href="https://jackdaw.weblog.lol/rss.xml">RSS</a>) — <a href="https://www.doc.cc/">Fabricio Teixeira</a> (<a href="https://www.doc.cc/feed.xml">RSS</a>) — <a href="https://rosalindcroad.com">Rosalind Croad</a> — <a href="https://www.elmikewalsh.com">Mike Walsh</a> (<a href="https://www.elmikewalsh.com/feed.xml">RSS</a>) — <a href="https://www.byzero.de/">Markus Heurung</a> — <a href="https://mwarrenarts.com/">Michael Warren</a> (<a href="https://mwarrenarts.com/rss">RSS</a>) — <a href="https://cagrimmett.com/">Chuck Grimmett</a> (<a href="https://cagrimmett.com/feed">RSS</a>) — <a href="https://eatweeds.co.uk">Robin Harford</a> (<a href="https://www.eatweeds.co.uk/feed/">RSS</a>) — <a href="https://bryanmanio.com/">Bryan Maniotakis</a> (<a href="https://bryanmanio.com/feed/">RSS</a>) — <a href="https://bjhess.com/">Barry Hess</a> (<a href="https://bjhess.com/posts_feed">RSS</a>) — <a href="https://ivanmoreale.com">Ivan Moreale</a> — <a href="https://werd.io/">Ben Werdmuller</a> (<a href="https://werd.io/feed">RSS</a>) — <a href="https://corygibbons.com">Cory Gibbons</a> — <a href="https://www.lkhrs.com/">Luke Harris</a> (<a href="https://www.lkhrs.com/blog/index.xml">RSS</a>) — <a href="https://lars-christian.com/">Lars-Christian Simonsen</a> (<a href="https://lars-christian.com/feed/">RSS</a>) — <a href="https://www.codyschultz.com">Cody Schultz</a> — <a href="https://bradbarrish.com">Brad Barrish</a> (<a href="https://bradbarrish.com/feed/">RSS</a>) — <a href="https://galaiko.rocks">Nikita Galaiko</a> — Erik Blankvoort — <a href="https://jagasantagostino.com">Jaga Santagostino</a> — <a href="https://andzuck.com/">Andrew Zuckerman</a> — <a href="https://www.mattiacompagnucci.com">Mattia Compagnucci</a> (<a href="https://mattiacompagnucci.com/feed.rss">RSS</a>) — <a href="https://tdh.se/">Thord D. Hedengren</a> (<a href="https://tdh.se/feed/feed.xml">RSS</a>) — <a href="https://fabiensauser.ch">Fabien Sauser</a> (<a href="https://fabiensauser.ch/index.xml">RSS</a>) — <a href="http://dizzard.net/">Maxwell Omdal</a> — <a href="https://numericcitizen.me">Numeric Citizen</a> (<a href="https://feedpress.me/numericcitizen-feeds.xml?ref=numericcitizen.me">RSS</a>) — <a href="https://heydingus.net">Jarrod Blundy</a> (<a href="https://heydingus.net/feeds">RSS</a>) — <a href="https://gwtf.it">Andrea Contino</a> (<a href="https://gwtf.it/feed">RSS</a>) — <a href="https://sebastiandedeyne.com/">Sebastian De Deyne</a> (<a href="https://sebastiandedeyne.com/index.xml">RSS</a>) — <a href="https://nicolalosito.it/">Nicola Losito</a> (<a href="https://nicolalosito.it/feed/">RSS</a>) — <a href="https://amerpie.lol/">Lou Plummer</a> (<a href="https://amerpie.lol/feed.xml">RSS</a>) — <a href="https://lmika.org/">Leon Mika</a> (<a href="https://lmika.org/feed.xml">RSS</a>) — <a href="http://veronique.ink">Veronique</a> (<a href="https://veronique.ink/feed/">RSS</a>) — <a href="https://surplusjouissance.com">Neil Gorman</a> (<a href="https://www.surplusjouissance.com/rss/">RSS</a>) — <a href="https://reaper.is/">Reaper</a> (<a href="https://reaper.is/rss.xml">RSS</a>) — <a href="https://www.mattrutherford.co.uk/">Matt Rutherford</a> (<a href="https://www.mattrutherford.co.uk/rss/">RSS</a>) — <a href="https://aleemshaun.com/">Aleem Ali</a> (<a href="https://aleemshaun.com/feed">RSS</a>) — <a href="https://nikkin.dev/">Nikkin</a> (<a href="https://nikkin.dev/feed.xml">RSS</a>) — <a href="https://hansfast.net">Hans</a> (<a href="https://hansfast.net/everything.rss">RSS</a>) — <a href="https://www.morelightmorelight.com/">Matt Katz</a> (<a href="https://www.morelightmorelight.com/feed">RSS</a>) — <a href="https://iljapanic.com/">Ilja Panić</a> — <a href="https://odongo.pl">Emmanuel Odongo</a> — <a href="https://ruk.ca/">Peter Rukavina</a> (<a href="https://ruk.ca/rss/feedburner.xml">RSS</a>) — <a href="https://jsrn.net">James</a> (<a href="https://jsrn.net/feed.xml">RSS</a>) — <a href="https://therealadam.com">Adam Keys</a> (<a href="https://therealadam.com/feed.xml">RSS</a>) — <a href="https://www.alexeystar.com/">Alexey Staroselets</a> (<a href="https://alexeystar.com/index.xml">RSS</a>) — <a href="https://saturnvalley.org">John L</a> — <a href="https://kangminsuk.com">Minsuk Kang</a> (<a href="https://kangminsuk.com/index.xml">RSS</a>) — <a href="https://itskechi.com/">Kechi Ladapo</a> (<a href="https://itskechi.bearblog.dev/feed/">RSS</a>) — <a href="https://nazhamid.com">Naz Hamid</a> (<a href="https://nazhamid.com/feed.xml">RSS</a>) — <a href="https://ken.fyi">Ken Zinser</a> (<a href="https://ken.fyi/feed.rss">RSS</a>) — Jan — <a href="https://verticolabs.com/">Grey Vugrin</a> (<a href="https://verticolabs.com/feed/">RSS</a>) — <a href="https://mzll.it">Luigi Mozzillo</a> (<a href="https://mzll.it/index.xml">RSS</a>) — <a href="https://www.alexhyett.com/">Alex Hyett</a> (<a href="https://www.alexhyett.com/feed/feed.atom.xml">RSS</a>) — <a href="https://andypiper.omg.lol/">Andy Piper</a> — <a href="https://shime.sh/">Hrvoje Šimić</a> (<a href="https://shime.sh/feed.xml">RSS</a>) — <a href="https://tschmeisser.com/">Travis Schmeisser</a> — <a href="https://doug.pub/">Doug Jones</a> — <a href="https://vincentritter.com/">Vincent Ritter</a> (<a href="https://vincentritter.com/feeds/all.json">RSS</a>) — <a href="https://shen.land/">Shen</a> — <a href="https://holzer.online/">Fabian Holzer</a> (<a href="https://holzer.online/feed.xml">RSS</a>) — <a href="https://netigen.com/">Courtney</a> (<a href="https://netigen.com/rss">RSS</a>) — <a href="https://jeremybassetti.com">Jeremy Bassetti</a> (<a href="https://jeremybassetti.com/index.xml">RSS</a>) — <a href="https://lukedorny.com">Luke Dorny</a> — <a href="https://tomeri.org/">Thomas Erickson</a> — <a href="https://herman.bearblog.dev">Herman Martinus</a> (<a href="https://herman.bearblog.dev/feed/">RSS</a>) — <a href="https://benny.bearblog.dev">Benny</a> (<a href="https://benny.bearblog.dev/feed/?type=rss">RSS</a>) — <a href="https://anniemueller.com/">Annie Mueller</a> (<a href="https://anniemueller.com/posts_feed">RSS</a>) — <a href="https://sekhmetdesign.thegeekcartel.com/">SekhmetDesign</a> — <a href="https://glbck.com">Gui</a> (<a href="https://www.glbck.com/feed.rss">RSS</a>) — <a href="https://longest.voyage/">Jamie</a> (<a href="https://longest.voyage/index.xml">RSS</a>) — <a href="https://www.juhaliikala.com/">Juha Liikala</a> (<a href="https://www.juhaliikala.com/rss/">RSS</a>) — <a href="https://alongtheray.com">Ray</a> (<a href="https://alongtheray.com/feed.rss">RSS</a>) — <a href="https://chadmoore.net/">Chad Moore</a> (<a href="https://chadmoore.net/posts_feed">RSS</a>) — <a href="https://ben.wf/">Benjamin Wittorf</a> — Prabash Livera — <a href="https://binarydigit.city">BinaryDigit</a> (<a href="https://binarydigit.city/feed/">RSS</a>) — <a href="https://rkoziel.com/">Radek Kozieł</a> (<a href="https://rkoziel.com/index.xml">RSS</a>)</p>
<h2>Want to support P&B?</h2>
<p>If you like this series and want to help it grow, you can:</p>
<ol>
<li><a href="https://ko-fi.com/manuelmoreale">support on Ko-Fi</a>;</li>
<li>post about it on your own blog and let your readers know about its existence;</li>
<li><a href="mailto:hello@manuelmoreale.com">email me</a> comments and feedback on the series;</li>
<li><a href="mailto:email@peopleandblogs.com">suggest a person</a> to interview next. I'm especially interested in people and blogs outside the tech/web bubble.</li>
</ol> <hr>
<p>Thank you for keeping RSS alive. You're awesome.</p>
<p><a href="mailto:hello@manuelmoreale.com">Email me</a> ::
<a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> ::
<a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> ::
<a href="https://manuelmoreale.com/supporters">See my generous supporters</a> ::
<a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>
Ko-Fi Wishlist - Manuel Moreale RSS Feedhttps://manuelmoreale.com/@/page/l2LUNo7w5WcFnh2R2025-03-27T10:45:00.000Z
<p>I’ve been using <a href="https://ko-fi.com/manuelmoreale">Ko-Fi</a> for almost 2 years at this point to run my <a href="https://oneamonth.club/">One a Month</a> experiment and so far it has worked I’d say ok. I like that there is—or at least there was—an option to pay a yearly fixed fee to get access to all the features rather than being tied to a % of what all you kind people out there are donating. I always prefer to pay for the tools I use upfront if I have that option.</p>
<p>That said, there are three minor annoyances that I’d love to see fixed at some point (even though I don’t have high hopes) and so here’s my Ko-Fi Wishlist.</p>
<h2>Recurring Goals</h2>
<p>It’s possible to set up goals on Ko-Fi and display them publicly. Unfortunately, there’s no way to have goals based on recurring donations which is kinda annoying. It’s especially annoying since the value of the recurring donations is displayed in the private dashboard so this is a feature that shouldn’t be too hard to implement.</p>
<h2>Yearly Memberships</h2>
<p>Another thing that’s very annoying is the fact that membership can only be monthly. This sucks for me since I run a membership with such a low barrier of entry and on a 1$ donation a huge % gets eaten away by Stripe/Paypal. As an example, Stripe charges a fixed 0.25c plus a % and this is how the math looks like:</p>
<pre><code>(1$ minus 1.5% minus a fixed 0.25c) times 12 = 7.20$</code></pre>
<p>So if you donate 1$ every month for a full year, I get 7.20$ while Stripe keeps 4.80$. This is how the same math looks like if you make a single 12$ donation once a year:</p>
<pre><code>12$ minus 1.5% minus a fixed 0.25c = 9,95$</code></pre>
<p>You donated the same 12$, but this time I get 9,95$, and Stripe keeps 2.05$. It’s not a huge difference in the grand scheme of things but it adds up quickly. Plus, some people prefer to pay yearly and so it sucks that there’s no option for me to let them do so.</p>
<h2>Better Notifications</h2>
<p>From my experience, Ko-Fi kinda sucks at letting people know what’s going on on the platform. I know a bunch of people didn’t even realise their 1$ month membership got cancelled—usually because the card expired or some other glitch—because they didn’t get any notification from Ko-Fi. Now, I don’t know if they landed in the spam folder, if they didn’t arrive at all or if something else happened but still, that’s a bit annoying.</p>
<p>I track expired/cancelled membership <a href="https://manuelmoreale.com/supporters">on my supporters page</a> and so if you want to make sure you’re still on it that’s one way to do it without relying on Ko-Fi. I might have to set up a better system though because this is currently all done manually.</p>
<hr />
<p>And that was it, those were the three items on my Ko-Fi wishlist. Overall I’m happy with the platform and I’m grateful something like this exists. I know alternatives are out there (I used both Donorbox and BuyMeACoffee in the past) but those all have their set of problems as well.</p> <hr>
<p>Thank you for keeping RSS alive. You're awesome.</p>
<p><a href="mailto:hello@manuelmoreale.com">Email me</a> ::
<a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> ::
<a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> ::
<a href="https://manuelmoreale.com/supporters">See my generous supporters</a> ::
<a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>
Wednesday, March 26, 2025 - Baty.nethttps://baty.net/journal/2025/03/26/today/2025-03-26T10:17:16.000Z<p>I knew it would happen, didn’t you? I really don’t want to talk about changing blog platforms, though. It’s embarrassing. I’ll just say that, while I don’t love Hugo, it’s the thing I’m least uncomfortable with overall. Let’s move on, shall we?</p>
<hr>
The cost of getting too big - Manuel Moreale RSS Feedhttps://manuelmoreale.com/@/page/wl25W7wTaBf6lIHJ2025-03-26T09:00:00.000Z
<p>The other morning while I was catching up with news over coffee I stumbled on <a href="https://www.theverge.com/news/634395/apple-watch-apple-intelligence-cameras">this article on The Verge</a> commenting on the rumours about Apple considering adding a camera and AI to the Apple Watch. I don’t own an Apple Watch, I don’t plan to own an Apple Watch—I already have a watch that works perfectly for me—and so I don’t really care about what Apple plans to add to their watch but I found the news interesting because it made me reflect on something tangentially related: at what point a company size becomes a burden?</p>
<p>I am, as I stated many many times, a nobody. I’m sitting here, minding my own business, running my tiny side projects, trying to make something a few people appreciate. If I manage, by pure chance, to create something 100 thousand people use, that would be beyond insane from my personal perspective. If I were to start a business that generates 1 million euros a year, that would be life-altering.</p>
<p>Now put those numbers in the context of an Apple, a Microsoft, or a Google. Apple made some 390 billion in 2024, Google around 350, and Microsoft 260. A million is 0.0004% of Microsoft's revenues and 0.0002% of Apple’s. Something life-altering for me is not even a rounding error for a company at that scale. So what does move the needle when you’re that big?</p>
<p>Lamborghini made just a bit over 3 billion in 2024. That’s less than 1% of what Apple made in the same year. Their most recent hardware experiment, the Vision Pro, has sold around 300 thousand units. Even if every single one of them was maxed out and sold at 4000$ that’s still “only” 1.2 billion or 0.3% of Apple’s revenues. At that point, isn’t it fair to wonder why even bothering to invest in a product like that?</p>
<p>Don’t get me wrong, I know that there is a point but still, when you get to that scale, pretty much everything you do is doomed to look like a failure compared to what’s already there.</p>
<p>YouTube has 2.7 billion monthly active users, almost 20% of the world population is an iPhone user, and between 2 to 3 billion people use a Meta product every month. These are numbers so big that almost nothing can make a difference at this point for these companies.</p>
<p>Wikipedia has a page with a <a href="https://en.wikipedia.org/wiki/List_of_social_platforms_with_at_least_100_million_active_users">list of social platforms with at least 100 million active users</a> and it’s illuminating. Look at those dates and the company names. On the US side of things, nothing new has reached those scales in more than a decade basically. The only products that come close are products launched by companies that were already huge—see Threads for example—and I’d argue those are not even successful products. They only managed to get that big because they were forced down the throats of existing users.</p>
<p>It’s such a bizarre situation and it shows why, for example, Google has <a href="https://killedbygoogle.com">SO MANY DEAD PRODUCTS</a>. If you’re at Google you can launch probably anything at this point and it’s likely going to be considered a failure when you compare it against existing and established products. And I know there are other reasons why Google kills so many products, but still.</p>
<p>Anyway, it’s gonna be interesting to see how the landscape evolves. I’m personally so uninspired by what I see in the big tech world at the moment but maybe that’s just me.</p> <hr>
<p>Thank you for keeping RSS alive. You're awesome.</p>
<p><a href="mailto:hello@manuelmoreale.com">Email me</a> ::
<a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> ::
<a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> ::
<a href="https://manuelmoreale.com/supporters">See my generous supporters</a> ::
<a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>
Tuesday, March 25, 2025 - Baty.nethttps://baty.net/journal/2025/03/25/today/2025-03-25T17:18:06.000Z<p>LinkedIn is not the right place for me to find interesting work.</p>
<hr>Using the Obsidian Web Clipper with Denote - Baty.nethttps://baty.net/posts/2025/03/using-the-obsidian-web-clipper-with-denote/2025-03-25T16:31:37.000Z<p>I was feeling envious of the <a href="https://obsidian.md/clipper">Obsidian Web Clipper</a>, which is quite fancy, so I thought I’d try leveraging it for use with <a href="https://protesilaos.com/emacs/denote">Denote</a>.</p>
<p>My first run at this involves a couple of steps:</p>
<ul>
<li>Tweak the web clipper to save files using Denote’s format and front matter</li>
<li>Save the file without adding it to an Obsidian vault</li>
<li>Move the saved file into my Denote folder</li>
</ul>
<p>Here’s the Web Clipper template configuration I ended up with:</p>
<figure>
<img loading="lazy" src="https://baty.net/posts/2025/03/using-the-obsidian-web-clipper-with-denote/clipper.png" width="500px"/>
</figure>
<p>It was important to set the “Tags” property type to “Text” rather than the default “Multitext” so that Denote does the right thing with it when renaming the file later.</p>
<p>In the Web Clipper’s advanced settings, I set the behavior to “Save file…” rather than “Add to Obsidian”.</p>
<figure>
<img loading="lazy" src="https://baty.net/posts/2025/03/using-the-obsidian-web-clipper-with-denote/settings.png" width="500px"/>
</figure>
<p>OK, so now after using the Web Clipper, I get a Markdown file<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>with a (mostly) Denote-compatible file name and front matter in my ~/Downloads folder. Here’s what clipping this post looks like:</p>
<figure>
<img loading="lazy" src="https://baty.net/posts/2025/03/using-the-obsidian-web-clipper-with-denote/example.png"/>
</figure>
<p>To get the file into my <code>denote-directory</code>, I use a rule in <a href="https://www.noodlesoft.com/">Hazel</a>. Hazel watches my Downloads folder for any new file whose name contains the string “__clipping”, and automatically moves it into a “clippings” folder in my Denote folder.</p>
<p>The only manual step remaining is to finish renaming the files using Denote. I don’t yet know how to have the Web Clipper “slugify” the file name, so I have Denote do it. This can be done in batch using Dired, so it’s not a huge burden.</p>
<p>If there’s a simpler way to get a nicely-formatted Org mode file from a web page directly to my Denote folder, I’m all ears, but for now…</p>
<p>Take that, Obsidian! 😄</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Denote handles Markdown files natively, so this is fine. <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
</ol>
</div>
Using the Obsidian Web Clipper with Denote - Baty.netposts/2025/03/using-the-obsidian-web-clipper-with-denote2025-03-25T10:45:00.000Z<p>I was feeling envious of the <a href="https://obsidian.md/clipper">Obsidian Web Clipper</a>, which is quite fancy, so I thought I'd try leveraging it for use with <a href="https://protesilaos.com/emacs/denote">Denote</a>.</p>
<p>My first run at this involves a couple of steps:</p>
<ul>
<li>Tweak the web clipper to save files using Denote's format and front matter</li>
<li>Save the file without adding it to an Obsidian vault</li>
<li>Move the saved file into my Denote folder</li>
</ul>
<p>Here's the Web Clipper template configuration I ended up with:</p>
<figure><img alt="" src="https://baty.net/media/pages/posts/2025/03/using-the-obsidian-web-clipper-with-denote/5a4251ce77-1742899850/clipper.png" width="500px"></figure>
<p>It was important to set the "Tags" property type to "Text" rather than the default "Multitext" so that Denote does the right thing with it when renaming the file later.</p>
<p>In the Web Clipper's advanced settings, I set the behavior to "Save file..." rather than "Add to Obsidian".</p>
<figure><img alt="" src="https://baty.net/media/pages/posts/2025/03/using-the-obsidian-web-clipper-with-denote/57ecf1a953-1742900119/settings.png"></figure>
<p>OK, so now after using the Web Clipper, I get a Markdown file<sup id="fnref1:1"><a href="#fn:1" class="footnote-ref">1</a></sup> with a Denote-compatible file name and front matter in my ~/Downloads folder. Here's what clipping this post looks like:</p>
<figure><img alt="" src="https://baty.net/media/pages/posts/2025/03/using-the-obsidian-web-clipper-with-denote/7c57eb49e0-1742900935/example.png"></figure>
<p>To get the file into my <code>denote-directory</code>, I use a rule in <a href="https://www.noodlesoft.com">Hazel</a>. Hazel watches my Downloads folder for any new file whose name contains the string "__clipping", and automatically moves it into a "clippings" folder in my Denote folder.</p>
<p>The only manual step remaining is to finish renaming the files using Denote. I don't yet know how to have the Web Clipper "slugify" the file name, so I have Denote do it. This can be done in batch using Dired, so it's not a huge burden.</p>
<p>If there's a simpler way to get a nicely-formatted Org mode file from a web page directly to my Denote folder, I'm all ears, but for now...</p>
<p>Take that, Obsidian! 😄</p>
<div class="footnotes">
<hr />
<ol>
<li id="fn:1">
<p>Denote handles Markdown files natively, so this is fine. <a href="#fnref1:1" rev="footnote" class="footnote-backref">↩</a></p>
</li>
</ol>
</div><p style="font-size:1.3rem;" class="feed-email-link"><a href="mailto:jack@baty.net?subject=Using the Obsidian Web Clipper with Denote">Reply to this post by email</a></p>Vlog: manual work at the hut and avoiding computer distractions - Protesilaos Stavrou: Master feed with all updateshttps://protesilaos.com/news/2025-03-25-hut-manual-labour-avoid-distractions/2025-03-25T00:00:00.000Z<p>In this ~30-minute video, I do some manual labour while talking about
the need to create physical distance from connected devices that take
up too much of our attention. I also provide an update on the hut
project, describing what exactly I am doing and how my winter went.</p>Upgrading php to 8.3 on the (Ubuntu) server - Baty.netposts/2025/03/upgrading-php-to-8-3-on-the-ubuntu-server2025-03-24T16:50:00.000Z<p>I upgraded PHP to v8.3 (from 8.2) today on the server running baty.net. I don't pretend to be an Ubuntu sysadmin, so I'm writing it down, just in case.</p>
<pre><code class="language-sh">sudo apt update
sudo apt install php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl,gd,xml}
sudo apt install php8.3-fpm
sudo a2enconf php8.3-fpm # enable it
sudo vi /etc/caddy/Caddyfile # replace socket path with 8.3
sudo systemctl reload caddy
sudo sudo a2disconf php8.2-fpm # disable 8.2
sudo apt purge php8.2* # in fact, just delete 8.2</code></pre>
<p>The site runs on Caddy, so I needed to change the path to the fpm socket. Here's the Kirby section of the Caddyfile...</p>
<pre><code class="language-sh">(kirby) {
php_fastcgi unix//run/php/php8.3-fpm.sock
@blocked {
path *.txt *.md /content/* /site/* /kirby/* /.*
}
redir @blocked /
}</code></pre><p style="font-size:1.3rem;" class="feed-email-link"><a href="mailto:jack@baty.net?subject=Upgrading php to 8.3 on the (Ubuntu) server">Reply to this post by email</a></p>Emacs: first look at query links for Denote version 4.0.0 - Protesilaos Stavrou: Master feed with all updateshttps://protesilaos.com/codelog/2025-03-24-emacs-denote-query-links/2025-03-24T00:00:00.000Z<p>The next version of Denote is shaping up to be a huge one. One of the
newest features I am working on is the support for “query links”.
Those use the same <code class="language-plaintext highlighter-rouge">denote:</code> link type infrastructure but exhibit a
different behaviour than the direct links we have always had. Instead
of pointing to a file via its unique identifier, they initiate a
search through the contents of all files in the <code class="language-plaintext highlighter-rouge">denote-directory</code>.
This search uses the built-in Xref mechanism and is the same as what
we have already been doing with backlinks (basically, a <code class="language-plaintext highlighter-rouge">grep</code>).</p>
<p>In short:</p>
<ul>
<li><strong>Direct links:</strong> Those point to a file via its unique identifier.
For example, <code class="language-plaintext highlighter-rouge">denote:20250324T074132</code> resolves to a file path.
Clicking on the link opens the corresponding file. Org export will
also take care to turn this into a file path.</li>
<li><strong>Query links:</strong> Those do not point to any file per se. They are a
string of one or more words or regular expression which is matched
against the contents of files. For example, <code class="language-plaintext highlighter-rouge">denote:this is a test</code>
produces a buffer listing all matches for the given query. Clicking
on the matching line in that buffer opens the file at that point
(just how our backlinks work when they show context—I am
generalising this mechanism).</li>
</ul>
<p><em>Direct links</em> can point to any file, including PDFs, videos, and
pictures (assuming it is renamed to use the Denote file-naming
scheme). Whereas <em>query links</em> are limited to text files.</p>
<h2>Development discussion and screenshots</h2>
<p>This is a work-in-progress that lives on its own branch as of this
writing. I will not elaborate at length right now as the
implementation details may change. I have, nonetheless, created an
issue on the GitHub repository where interested parties can provide
their feedback. It also includes some screenshots I took:
<a href="https://github.com/protesilaos/denote/issues/561">https://github.com/protesilaos/denote/issues/561</a>. The code includes
other changes which pertain to how we handle backlinks and constitutes
a simplification of the code base.</p>
<p>The idea is to add the functionality to the <code class="language-plaintext highlighter-rouge">main</code> branch in the
coming days or weeks. Then I will do a video about it and/or explain
more.</p>
<p>That granted, do not forget that the official manual is the most
up-to-date reference and the single source of truth.</p>
<h2>Denote sources</h2>
<p>Denote is a simple note-taking tool for Emacs. It is based on the idea
that notes should follow a predictable and descriptive file-naming
scheme. The file name must offer a clear indication of what the note is
about, without reference to any other metadata. Denote basically
streamlines the creation of such files while providing facilities to
link between them.</p>
<p>Denote’s file-naming scheme is not limited to “notes”. It can be used
for all types of file, including those that are not editable in Emacs,
such as videos. Naming files in a consistent way makes their
filtering and retrieval considerably easier. Denote provides relevant
facilities to rename files, regardless of file type.</p>
<p>[ Further down on this list I include more of my Denote-related packages. ]</p>
<ul>
<li>Package name (GNU ELPA): <code class="language-plaintext highlighter-rouge">denote</code></li>
<li>Official manual: <a href="https://protesilaos.com/emacs/denote">https://protesilaos.com/emacs/denote</a></li>
<li>Change log: <a href="https://protesilaos.com/emacs/denote-changelog">https://protesilaos.com/emacs/denote-changelog</a></li>
<li>Git repositories:
<ul>
<li>GitHub: <a href="https://github.com/protesilaos/denote">https://github.com/protesilaos/denote</a></li>
<li>GitLab: <a href="https://gitlab.com/protesilaos/denote">https://gitlab.com/protesilaos/denote</a></li>
</ul>
</li>
<li>Video demo: <a href="https://protesilaos.com/codelog/2022-06-18-denote-demo/">https://protesilaos.com/codelog/2022-06-18-denote-demo/</a></li>
<li>Backronyms: Denote Everything Neatly; Omit The Excesses. Don’t Ever
Note Only The Epiphenomenal.</li>
</ul>Roll 204 (Hasselblad 500C/M) - Baty.netposts/2025/03/roll-204-hasselblad-500c-m2025-03-23T12:30:00.000Z<p>I've not been shooting much film recently. Yesterday, I was bored and in a mood, so I grabbed the Hasselblad and fired off a roll using Alice as my model. Only one frame was good enough to share. I really like it, so it was worth sacrificing the other 11.</p>
<figure><img alt="Black and white film photo of dog laying on ottoman" src="https://baty.net/media/pages/posts/2025/03/roll-204-hasselblad-500c-m/ba27202add-1742732998/2025-roll-204_04.jpg"><figcaption>Alice on ottoman (2025)</figcaption></figure><p style="font-size:1.3rem;" class="feed-email-link"><a href="mailto:jack@baty.net?subject=Roll 204 (Hasselblad 500C/M)">Reply to this post by email</a></p>Sing Sing (2023) - Baty.netmovies/sing-sing-20232025-03-23T09:40:00.000Z<img alt="" src="https://baty.net/media/pages/movies/sing-sing-2023/17442ff6b2-1742722802/20250323t053657-sing-sing.webp"><p>Rating: ★★★★★ (5 stars)</p><p>A wonderful, touching, meaningful movie. It demonstrates what art can do for people.</p><p style="font-size:1.3rem;" class="feed-email-link"><a href="mailto:jack@baty.net?subject=Sing Sing">Reply to this post by email</a></p>On the remilitarisation of Europe - Protesilaos Stavrou: Master feed with all updateshttps://protesilaos.com/politics/2025-03-23-europe-remilitarisation/2025-03-23T00:00:00.000Z<p>The European Union is in the process of expanding its military capacity. The immediate plan is to invest in “made in Europe” defence capabilities. As <a href="https://commission.europa.eu/topics/defence/future-european-defence_en">outlined on the European Commission’s website</a>, governments will benefit from a lending facility that will mobilise funds from capital markets as well as creative national accounting. The latter involves the relaxation of the EU’s stringent rules on fiscal deficits and public debts such that expenditure up to 1.5% of Gross Domestic Product is not counted against the deficit if directed towards military affairs. Critics will rightly question where was this leeway when European leaders were insistent on imposing grinding austerity on the vast majority of the population. Why did the EU not relax those rules in favour of public health and education, for example, and why is the war machine treated differently in this regard? While I share that sentiment, I think the discrepancy is justified.</p>
<p>War is odious yet part of our potential. A country that wants to preserve its way of living is a country that is combat ready. The same is true for individuals: those who do not want to be victims of some bully do what they must to make themselves a hard target. And those who are always mistreated are so because they are easy targets. Is this nice? No. Are the aggressors justified? No. The point is not one of aesthetics or of moralising against the phenomena. What matters is how the world works. There is no lasting security, personal or collective, that is sustained absent strong checks on innate ambitions of control, dominance, or even the sheer thrill of conquest and adventure.</p>
<p>The story of the European integration process is one of peace among the Member States, in juxtaposition to the cruelty of two World Wars, yet it happened against the backdrop of the Cold War and, more recently, of ongoing tensions in the wider region. Europeans uniting under a single legal-institutional framework is, in practical terms, an alliance. Even from a purely economic standpoint, it makes sense for trading partners to have a vested interest in their common safety: it helps business continue. And with that come all the practicalities of the free movement of workers, their right to establishment, and so on. In other words, what starts out as a purely financial calculus inevitably spills over to all facets of the quotidian experience.</p>
<p>The EU is a highly flawed architecture which cannot be a federal republic in its current form. It is a union of states or a confederation, else, a layer of bureaucracy on top of nation states, which has some competences (“sovereignty”) but which nevertheless lacks democratic accountability commensurate with that generally found at the Member State level. There still are degrees though, which critics of the Union need be mindful of in order not to lose their sense of perspective. Despite its shortcomings, the EU is a largely progressive place in terms of the rule of law and the respect for fundamental freedoms. One need only take a look at the immediate periphery of the EU to appreciate those nuances and understanding how nothing can be taken as a given.</p>
<p>A European Defence Union provides a credible deterrent to aspiring overlords that seek to exploit Europeans. It cannot be
purely good though, as it admittedly comes with the latent risk of turning into a repressive regime in its own right. Such is the trade-off every hitherto society faces: who guards us from the guardians? There is no ultimate guarantee and it is pointless to think of politics in terms of the untenable binary of good versus evil. It will always be an arrangement that is prone to abuse while having the merit of enabling a certain lifestyle. It is why political conduct rests on faith, else the acquiescence of individuals to the prevailing norms and their commitment to operate in good faith accordingly. Put differently for our immediate case, democracies are maintained by democratic citizens and cease to be democratic when the people no longer are vigilant in enforcing the values they purport to uphold.</p>
<p>Accelerated rearmament is a pragmatic response to the evolving international trends. Anything else is complacency bordering on recklessness. My hope is that on the balance, we avoid the worse by showing the requisite readiness, without getting sucked into the black hole of militarism. The key, then, looking forward is to be responsible in the language we use and the deeds we carry out. We will all be on the losing side if in the process of fighting the bullies we become bullies ourselves.</p>A change to my /everything.rss feed - Baty.netposts/2025/03/a-change-to-my-everything-rss-feed2025-03-22T11:20:00.000Z<p>For a while, I tried maintaining a combined RSS feed that included posts from all my sundry blogs. I kept it at /everything.rss. It was managed as part of my WordPress blog, and since I've stopped using WordPress, I've been redirecting /everything.rss to the feed for baty.net, which is either /feed or /index.xml, depending on my blog platform of the day.</p>
<p>I think that instead of that, I'll piggyback off my <a href="https://mastodon.social/@batybot/">@batybot</a> account on Mastodon.social. I crosspost most stuff from my sites to @batybot via <a href="https://echofeed.app/">EchoFeed</a> already, and Mastodon offers an rss feed for each account. Mine is <a href="https://mastodon.social/@batybot.rss">https://mastodon.social/@batybot.rss</a>. </p>
<p>Soon, I'll redirect requests from baty.net/everything.rss to <a href="https://mastodon.social/@batybot.rss">https://mastodon.social/@batybot.rss</a>. This doesn't offer full posts, but rather it's more like a firehose of links to everything I post. If you'd like to avoid that kind of noise, delete your subscription to /everything.rss. If you are a glutton for punishment, feel free to subscribe.</p><p style="font-size:1.3rem;" class="feed-email-link"><a href="mailto:jack@baty.net?subject=A change to my /everything.rss feed">Reply to this post by email</a></p>Emacs: how I build from emacs.git on Debian stable - Protesilaos Stavrou: Master feed with all updateshttps://protesilaos.com/codelog/2025-03-22-emacs-build-source-debian/2025-03-22T00:00:00.000Z<p>I have been following the <code class="language-plaintext highlighter-rouge">master</code> branch of the emacs.git repository
for many years now. It helps me test new features and make necessary
adjustments to all the packages I develop/maintain. Below I explain
how I make this happen on my computer, which is running Debian stable
(Debian 12 “Bookworm” as of this writing). If you are a regular user,
there is no reason to build from source: just use the latest stable
release and you should be fine.</p>
<h2>Configure the <code class="language-plaintext highlighter-rouge">apt</code> development sources</h2>
<p>To build Emacs from source on Debian, you first need to have the
<code class="language-plaintext highlighter-rouge">deb-src</code> package archive enabled. In your <code class="language-plaintext highlighter-rouge">/etc/apt/sources.list</code>
file you must have something like this:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>deb http://deb.debian.org/debian/ bookworm main
deb-src http://deb.debian.org/debian/ bookworm main
</code></pre></div></div>
<p>After modifying the sources, run the following on the command line to
fetch the index with new package names+versions:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo apt update
</code></pre></div></div>
<h2>Get the Emacs build dependencies</h2>
<p>Now that you have enabled the <code class="language-plaintext highlighter-rouge">deb-src</code> archive, you can install the
build dependencies of the Debian <code class="language-plaintext highlighter-rouge">emacs</code> package with the following on
the command line:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo apt build-dep emacs
</code></pre></div></div>
<p>With this done, you are ready to build Emacs from source.</p>
<h2>Get the Emacs source code</h2>
<p>You need the <code class="language-plaintext highlighter-rouge">git</code> program to get the source code from the emacs.git
website. So install it with this command:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo apt install git
</code></pre></div></div>
<p>Now make a copy of the Emacs source code, using this on the command
line:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://git.savannah.gnu.org/git/emacs.git ~/path/to/my/copy-of-emacs.git
</code></pre></div></div>
<p>Replace <code class="language-plaintext highlighter-rouge">~/path/to/my/copy-of-emacs.git</code> with the actual destination
of your preference. I have a <code class="language-plaintext highlighter-rouge">~/Builds</code> directory where I store all
the projects I build from source. I thus do:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://git.savannah.gnu.org/git/emacs.git ~/Builds/emacs.git
</code></pre></div></div>
<p>If the cloning process is too slow on your end, perform a <em>shallow
clone</em> instead. For example:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone --depth 1 https://git.savannah.gnu.org/git/emacs.git ~/Builds/emacs.git
</code></pre></div></div>
<p>And if the Savannah website is not responsive, then clone from the
GitHub mirror (with the <code class="language-plaintext highlighter-rouge">--depth 1</code> if necessary):</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/emacs-mirror/emacs.git ~/Builds/emacs.git
</code></pre></div></div>
<h2>Switch to the Emacs directory</h2>
<p>Assuming you have the copy of emacs.git stored at <code class="language-plaintext highlighter-rouge">~/Builds/emacs.git</code>,
you switch to that directory with the following:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd ~/Builds/emacs.git
</code></pre></div></div>
<p>Keep in mind that unless you explicitly switch to another branch, you
are on <code class="language-plaintext highlighter-rouge">master</code>, i.e. the latest development target.</p>
<p><strong>NOTE:</strong> All subsequent commands are ran from your equivalent of
<code class="language-plaintext highlighter-rouge">~/Builds/emacs.git</code>.</p>
<h2>Run the <code class="language-plaintext highlighter-rouge">autogen.sh</code> the first time</h2>
<p>This script will generate the configuration scaffold. You only really
need to do this once (and I always forget about it for this very
reason). Simply do this on the command line:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./autogen.sh
</code></pre></div></div>
<p>It checks that you have all you need to get started and prints output
like this:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Checking whether you have the necessary tools...
(Read INSTALL.REPO for more details on building Emacs)
Checking for autoconf (need at least version 2.65) ... ok
Your system has the required tools.
Building aclocal.m4 ...
Running 'autoreconf -fi -I m4' ...
Building 'aclocal.m4' in exec ...
Running 'autoreconf -fi' in exec ...
Configuring local git repository...
'.git/config' -> '.git/config.~1~'
git config transfer.fsckObjects 'true'
git config diff.cpp.xfuncname '!^[ ]*[A-Za-z_][A-Za-z_0-9]*:[[:space:]]*($|/[/*])
^((::[[:space:]]*)?[A-Za-z_][A-Za-z_0-9]*[[:space:]]*\(.*)$
^((#define[[:space:]]|DEFUN).*)$'
git config diff.elisp.xfuncname '^\([^[:space:]]*def[^[:space:]]+[[:space:]]+([^()[:space:]]+)'
git config diff.m4.xfuncname '^((m4_)?define|A._DEFUN(_ONCE)?)\([^),]*'
git config diff.make.xfuncname '^([$.[:alnum:]_].*:|[[:alnum:]_]+[[:space:]]*([*:+]?[:?]?|!?)=|define .*)'
git config diff.shell.xfuncname '^([[:space:]]*[[:alpha:]_][[:alnum:]_]*[[:space:]]*\(\)|[[:alpha:]_][[:alnum:]_]*=)'
git config diff.texinfo.xfuncname '^@node[[:space:]]+([^,[:space:]][^,]+)'
Installing git hooks...
'build-aux/git-hooks/commit-msg' -> '.git/hooks/commit-msg'
'build-aux/git-hooks/pre-commit' -> '.git/hooks/pre-commit'
'build-aux/git-hooks/prepare-commit-msg' -> '.git/hooks/prepare-commit-msg'
'build-aux/git-hooks/post-commit' -> '.git/hooks/post-commit'
'build-aux/git-hooks/pre-push' -> '.git/hooks/pre-push'
'build-aux/git-hooks/commit-msg-files.awk' -> '.git/hooks/commit-msg-files.awk'
'.git/hooks/applypatch-msg.sample' -> '.git/hooks/applypatch-msg'
'.git/hooks/pre-applypatch.sample' -> '.git/hooks/pre-applypatch'
You can now run './configure'.
</code></pre></div></div>
<p>Do not be intimidated by it. Focus on the final line instead, which
directs you to the <code class="language-plaintext highlighter-rouge">configure</code> directive.</p>
<h2>Explore the build flags</h2>
<p>How exactly you build Emacs depends on your preferences and
system-specific requirements. At the end of this post, I copy my
current configuration, though <strong>I advise against</strong> copying it without
understanding what it does.</p>
<p>If you have no specific preferences, just use the defaults by running
this on the command line:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./configure
</code></pre></div></div>
<p>It will set up the build environment for you. If, however, you wish
to explore your options and customise the <code class="language-plaintext highlighter-rouge">emacs</code> program you will
get, then issue the following command and carefully read its output:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./configure --help
</code></pre></div></div>
<p>The <strong>minimum I recommend</strong> is to specify where the build artefacts
are stored. I use this, which has not caused me any issues over the
years:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./configure --prefix=/usr/local
</code></pre></div></div>
<h2>Configure the build environment with your preferred flags</h2>
<p>Once you have understood the available options, go ahead and run
<code class="language-plaintext highlighter-rouge">configure</code>. For example:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./configure --prefix=/usr/local --with-x-toolkit=gtk3
</code></pre></div></div>
<p>Whenever you need to rebuild Emacs with some new flags, run the
<code class="language-plaintext highlighter-rouge">configure</code> command again, passing it the relevant flags. If you wish
to keep the same options for a new build, then simply do not run
<code class="language-plaintext highlighter-rouge">configure</code> again.</p>
<h2>Make the program</h2>
<p>Once <code class="language-plaintext highlighter-rouge">configure</code> finishes its work, it is time to run the <code class="language-plaintext highlighter-rouge">make</code>
program. For new builds, this is as simple as:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>make
</code></pre></div></div>
<p>Sometimes you have old build artefacts that conflict with changes
upstream. When that happens, the build process will fail. You may then
need to use:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>make bootstrap
</code></pre></div></div>
<p>In general, <code class="language-plaintext highlighter-rouge">make</code> is enough. It will be slow the first time, but will
be faster on subsequent runs as it reuses what is already there. A
<code class="language-plaintext highlighter-rouge">make bootstrap</code> will always be slow though, as it generates
everything anew.</p>
<h2>Install the program that was made</h2>
<p>After <code class="language-plaintext highlighter-rouge">make</code> is done, you are ready to install Emacs:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo make install
</code></pre></div></div>
<p>You will not need escalated privileges (i.e. <code class="language-plaintext highlighter-rouge">sudo</code>) is you specified
a <code class="language-plaintext highlighter-rouge">--prefix</code> with a user directory during the <code class="language-plaintext highlighter-rouge">configure</code> step. How
you go about it is up to you.</p>
<h2>Keeping Emacs up-to-date</h2>
<p>Whenever you wish to update from source, go to where your copy of
emacs.git is (e.g. <code class="language-plaintext highlighter-rouge">~/Builds/emacs.git</code>) and pull the latest changes
using the <code class="language-plaintext highlighter-rouge">git</code> program:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git pull
</code></pre></div></div>
<p>Then repeat <code class="language-plaintext highlighter-rouge">make</code> and <code class="language-plaintext highlighter-rouge">make install</code>. Remember that you do not need
to re-run <code class="language-plaintext highlighter-rouge">configure</code> unless you specifically want to modify your
build (and if you do that, you probably need to <code class="language-plaintext highlighter-rouge">make bootstrap</code>).</p>
<h2>Learn about the latest <code class="language-plaintext highlighter-rouge">NEWS</code></h2>
<p>Emacs users can at all times learn about changes introduced in their
current version of Emacs with <code class="language-plaintext highlighter-rouge">M-x view-emacs-news</code>. It is bound to
the key <code class="language-plaintext highlighter-rouge">C-h n</code> by default. This command opens the current <code class="language-plaintext highlighter-rouge">NEWS</code>
file. With a numeric prefix argument, you get the <code class="language-plaintext highlighter-rouge">NEWS</code> of the given
Emacs version. For example, <code class="language-plaintext highlighter-rouge">C-u 27 C-h n</code> shows you what Emacs
version 27 introduced.</p>
<h2>Compare your <code class="language-plaintext highlighter-rouge">NEWS</code> to those of emacs.git</h2>
<p>With the help of the built-in Emacs <code class="language-plaintext highlighter-rouge">ediff</code> package, you can compare
your latest <code class="language-plaintext highlighter-rouge">NEWS</code> to those coming from emacs.git. I always do this
after pulling the latest changes from source (with <code class="language-plaintext highlighter-rouge">git pull</code>).</p>
<p>From the root directory of your copye of emacs.git (e.g.
<code class="language-plaintext highlighter-rouge">~/Builds/emacs.git</code>), and while using Emacs, you can do <code class="language-plaintext highlighter-rouge">M-x
project-find-file</code> (<code class="language-plaintext highlighter-rouge">C-x p f</code>) to search the Emacs “project” for a
file called <code class="language-plaintext highlighter-rouge">etc/NEWS</code>. This is where the latest user-facing changes
are recorded.</p>
<p>If you are not sure where you are on the filesystem while inside
Emacs, do <code class="language-plaintext highlighter-rouge">M-x cd</code> (or <code class="language-plaintext highlighter-rouge">M-x dired</code> or <code class="language-plaintext highlighter-rouge">M-x find-file</code>), select the
root directory of your emacs.git, hit <code class="language-plaintext highlighter-rouge">RET</code>, and then do <code class="language-plaintext highlighter-rouge">M-x
project-find-file</code>.</p>
<p>Now that you have <code class="language-plaintext highlighter-rouge">emacs.git/etc/NEWS</code> in a buffer, also load your
copy of <code class="language-plaintext highlighter-rouge">NEWS</code> with <code class="language-plaintext highlighter-rouge">M-x view-emacs-news</code> (<code class="language-plaintext highlighter-rouge">C-h n</code>).</p>
<p>Then do <code class="language-plaintext highlighter-rouge">M-x ediff-buffers</code>, which will prompt for two buffers to
compare. First select your version of <code class="language-plaintext highlighter-rouge">NEWS</code> and then that of emacs.git.</p>
<p><strong>NOTE:</strong> I think the default Ediff interface is problematic. Put the
following in your configuration to make it work in a single frame:</p>
<div class="language-elisp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">(</span><span class="k">setq</span> <span class="nv">ediff-split-window-function</span> <span class="ss">'split-window-horizontally</span><span class="p">)</span>
<span class="p">(</span><span class="k">setq</span> <span class="nv">ediff-window-setup-function</span> <span class="ss">'ediff-setup-windows-plain</span><span class="p">)</span>
</code></pre></div></div>
<p>Also watch my video with the Ediff basics: <a href="https://protesilaos.com/codelog/2023-11-17-emacs-ediff-basics/">https://protesilaos.com/codelog/2023-11-17-emacs-ediff-basics/</a>.</p>
<p>This is it. You are now in the flow of building Emacs from source.
Good luck with everything!</p>
<h2>My current build options</h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>--prefix=/usr/local --without-xinput2 --without-compress-install --without-gpm --without-selinux --with-native-compilation=yes --with-sound=no --without-gif --without-tiff --with-cairo --with-harfbuzz --with-tree-sitter=ifavailable --with-json --without-gsettings --without-gconf --with-x-toolkit=no --without-toolkit-scroll-bars --without-xft --without-xaw3d
</code></pre></div></div>
<p>I am not updating old publications, unless otherwise noted. The most
up-to-date recode of my Emacs build is documented in my dotemacs:
<a href="https://protesilaos.com/emacs/dotemacs">https://protesilaos.com/emacs/dotemacs</a>.</p>
<p>Inspect the value of the Emacs variable <code class="language-plaintext highlighter-rouge">system-configuration-options</code>
to find out how your Emacs is built.</p>
<p>Have fun!</p>Five weeks with the Nikon Z f - Baty.netposts/2025/03/five-weeks-with-the-nikon-z-f2025-03-21T12:15:00.000Z<figure><img alt="Closeup of mode selector in the Nikon Z f camera" src="https://baty.net/media/pages/posts/2025/03/five-weeks-with-the-nikon-z-f/33de4d0d30-1742559254/20250321-nikonzf.jpg"><figcaption>See that cool ISO dial? I never use it.</figcaption></figure>
<p>I bought the Nikon Z f thinking it would replace my Leica SL2, since the Nikon is lighter, newer, cheaper, and faster. While it is all of those things, it's still not <em>better</em>.</p>
<p><strong>Here's what I like about the Z f:</strong></p>
<ul>
<li>The design is just the right amount of retro.</li>
<li>Autofocus is very fast and accurate. Even in low light.</li>
<li>High ISOs are very usable.</li>
<li>The dials feel good.</li>
<li>The RAW files look good out of Capture One without much work.</li>
<li>It's nice having a flippy screen, even though it's the wrong style of flippy screen.</li>
<li>It's lighter than the SL2.</li>
</ul>
<p><strong>Here's what I don't love about it:</strong></p>
<ul>
<li>While smaller than the SL2, it's not a small camera.</li>
<li>The menus are too complex. I still can't find anything. Use a modern Leica for 10 minutes and you'll see what I mean.</li>
<li>The Auto ISO features confound me at every turn. So much so that I never touch the nice, big, well-made dial for setting ISO.</li>
<li>Auto focus is fast and accurate, but the settings to make them fast and accurate require study. Too much study.</li>
<li>The batter/SD door is horrible, and with the grip attached, I struggle to pull the card out.</li>
<li>I wish the dials worked like the Fuji system's dials. Yes, I know, these are more flexible, but if they don't make sense to me, I'm not using them.</li>
</ul>
<p>If I sell the camera now, I'll lose my ass. But if I don't learn to like it more, the money might be better spent elsewhere, even at a loss.</p>
<p>Also, I haven't sold the SL2, yet.</p><p style="font-size:1.3rem;" class="feed-email-link"><a href="mailto:jack@baty.net?subject=Five weeks with the Nikon Z f">Reply to this post by email</a></p>P&B: Ben Borgers - Manuel Moreale RSS Feedhttps://manuelmoreale.com/@/page/QDLWjKIHCZNRIOZy2025-03-21T12:00:00.000Z
<p>This is the 82nd edition of <em>People and Blogs</em>, the series where I ask interesting people to talk about themselves and their blogs. Today we have Ben Borgers and his blog, <a href="https://benborgers.com">benborgers.com</a></p>
<p>To follow this series <a href="https://peopleandblogs.com">subscribe to the newsletter</a>. A new interview will land in your inbox every Friday. Not a fan of newsletters? No problem! You can read the interviews here on the blog or you can subscribe to the <a href="https://manuelmoreale.com/feed">RSS feed</a>.</p>
<p>If you're enjoying the People and Blogs series and you want to see it grow, consider supporting on <a href="https://ko-fi.com/manuelmoreale">Ko-Fi</a>.</p>
<hr />
<h2>Let's start from the basics: can you introduce yourself?</h2>
<p>Hi! I'm Ben Borgers, and I'm in my last year studying Computer Science at Tufts University in the U.S.</p>
<p>I've really enjoyed working at startups over the past couple years, and have had the opportunity to learn a lot from working at <a href="https://buttondown.com">Buttondown</a>, <a href="https://lu.ma">Luma</a>, <a href="https://locket.camera">Locket</a>, and <a href="https://notion.so/product">Notion</a>.</p>
<p>At my university, I run a club called <a href="https://jumbocode.org">JumboCode</a> where teams of students build software for non-profits.</p>
<p>In my free time, I really enjoy working on my own side projects!</p>
<h2>What's the story behind your blog?</h2>
<p>In high school, I decided that I wanted to start publishing blog posts about little bits of things that I was learning from programming. I started publishing blog posts and started getting a bit of traffic from Google SEO, which was really cool to see.</p>
<p>I kept writing these posts about technical topics, and then in my first year of college, I challenged myself to write a blog post every day. I kept it up for about six months, and that was a really fun experience (although a bit tiring and I was glad to end it).</p>
<p>I find that my website itself is a form of self-expression, so I end up getting the itch to rebuild it every couple of months to change the design and layout.</p>
<h2>What does your creative process look like when it comes to blogging?</h2>
<p>I keep a list of topic ideas, but most of the time I end up writing a post when I feel inspired and not when I'm looking to pull an idea off my list. I try to think of ideas from projects that I've been working on or opinions that have crystalized in my mind recently.</p>
<p>I write my blog posts either in a code editor (like VS Code) or, more recently, <a href="https://github.com/MarkEdit-app/MarkEdit">MarkEdit</a>, which I've really been enjoying.</p>
<p>I don't really enjoy editing my writing, so I often just write one draft and then try to sleep on it. I come back and run through it, try to edit the writing so it flows a bit better and is clearer, and then just publish it.</p>
<h2>Do you have an ideal creative environment? Also do you believe the physical space influences your creativity?</h2>
<p>I don't think I have a particular <em>space</em> that helps me, but it definitely helps me to write blog posts when I'm in a <em>mental</em> space of being really excited or passionate about what I'm writing about.</p>
<p>Sometimes I'll have an idea on my list for months, and then suddenly I'm thinking about how I would write a post, and if I write it in that moment it'll all flow out a lot easier than if I sit down and try to force it.</p>
<h2>A question for the techie readers: can you run us through your tech stack?</h2>
<p>In recent years my blog has always been built with <a href="https://astro.build">Astro</a> and <a href="https://tailwindcss.com">Tailwind CSS</a> and hosted on <a href="https://vercel.com">Vercel</a> or <a href="https://pages.cloudflare.com/">Cloudflare</a>. The blog posts have been in markdown (using Astro's <a href="https://docs.astro.build/en/guides/content-collections/">content collections</a>).</p>
<p>Keeping everything in markdown has allowed me to bring the posts with me really easily every time I redesign the site. Whenever I redesign, I make a new branch of the <a href="https://github.com/benborgers/www">GitHub repo</a> and start over with a fresh Astro site — so it really helps to be able to copy the directory of markdown posts over without any additional futzing.</p>
<h2>Given your experience, if you were to start a blog today, would you do anything differently?</h2>
<p>I'd probably make a promise to myself to just keep all the posts in markdown from the start, for ease of portability. I've had stints of writing posts in Ghost, or in Notion and using the API to extract content, or even using GitHub Issues as a CMS.</p>
<p>In the end, I always just had to extract all my posts and put them back into markdown, which wasn't a lot of fun. It's hard to not get enamored by new shiny CMS options, but I'd say that in the long run I want to always keep it in markdown — it's just the simplest and "lowest common denominator" for me.</p>
<h2>Financial question since the Web is obsessed with money: how much does it cost to run your blog? Is it just a cost, or does it generate some revenue? And what's your position on people monetising personal blogs?</h2>
<p>I don't pay anything for Vercel's hosting, and I pay $12/year for the domain <a href="https://benborgers.com">benborgers.com</a>. It doesn't really generate any revenue, except for the occasional person who lands on a blog post and gets in touch with me to do some consulting work — usually it's because they land on <a href="https://benborgers.com/google-sheets-json">the blog post for opensheet</a>, a free API I built and host to get Google Sheets as JSON.</p>
<p>I <em>did</em> for a while switch my website to the domain <a href="https://ben.page">ben.page</a>, which costs an absolutely frivolous $540/year. I eventually decided that I like <a href="https://benborgers.com">benborgers.com</a> more for my <em>personal</em> website, but that I like to use subdomains of <a href="https://ben.page">ben.page</a> for personal <em>projects</em> (like <a href="https://photos.ben.page">photos.ben.page</a> or <a href="https://tufts.ben.page">tufts.ben.page</a> or <a href="https://queue.ben.page">queue.ben.page</a>). That leaves me paying for both domains — but oh well.</p>
<h2>Time for some recommendations: any blog you think is worth checking out? And also, who do you think I should be interviewing next?</h2>
<ul>
<li><a href="https://jmduke.com">jmduke.com</a> — my boss at Buttondown (<em><a href="https://manuelmoreale.com/pb-justin-duke">Read Justin's interview</a></em>).</li>
<li><a href="https://jero.zone">jero.zone</a> — my friend who goes to Brown University.</li>
<li><a href="https://buildingslack.com">buildingslack.com</a> — stories about the early days of building Slack.</li>
<li><a href="https://pketh.org">pketh.org</a> — posts about building Kinopio, a really cool piece of indie software.</li>
<li><a href="https://simonwillison.net">simonwillison.net</a> — how I've been trying to keep up with news about AI.</li>
</ul>
<h2>Final question: is there anything you want to share with us?</h2>
<p>I think my <a href="https://photos.ben.page">Photo of the Day</a> project is one I'm really proud of, and that I've been doing for over a year! Also if I had to highlight one post on my blog, it'd be <a href="https://benborgers.com/forks">this one about sneaking forks into the dining hall</a>.</p>
<hr />
<p>This was the 82nd edition of <em>People and Blogs</em>. Hope you enjoyed this interview with Ben. Make sure to <a href="https://benborgers.com">follow his blog</a> (<a href="https://benborgers.com/rss">RSS</a>) and get in touch with him if you have any questions.</p>
<h2>Awesome supporters</h2>
<p>You can support this series on <a href="https://ko-fi.com/manuelmoreale">Ko-Fi</a> and all supporters will be listed here as well as on the <a href="https://peopleandblogs.com">official site</a> of the newsletter.</p>
<p><a href="https://www.thingelstad.com">Jamie Thingelstad</a> (<a href="https://www.thingelstad.com/feed.xml">RSS</a>) — <a href="https://some.studio">Piet Terheyden</a> — Eleonora — <a href="https://carlbarenbrug.com">Carl Barenbrug</a> (<a href="https://carlbarenbrug.com/feed/rss">RSS</a>) — <a href="https://tangiblelife.net">Steve Ledlow</a> (<a href="https://tangiblelife.net/feed.rss">RSS</a>) — <a href="https://www.feadin.eu">Paolo Ruggeri</a> (<a href="https://www.feadin.eu/en/posts/index.xml">RSS</a>) — <a href="https://thejollyteapot.com">Nicolas Magand</a> (<a href="https://thejollyteapot.com/feed.rss">RSS</a>) — <a href="https://robhope.com">Rob Hope</a> — <a href="https://chrishannah.me">Chris Hannah</a> (<a href="https://chrishannah.me/index.xml">RSS</a>) — <a href="https://blog.pcora.eu">Pedro Corá</a> (<a href="https://blog.pcora.eu/feed.xml">RSS</a>) — <a href="https://softlandings.world/">Sixian Lim</a> (<a href="https://www.softlandings.world/feed.rss">RSS</a>) — <a href="https://mattstein.com">Matt Stein</a> (<a href="https://mattstein.com/rss.xml">RSS</a>) — <a href="https://winnielim.org">Winnie Lim</a> (<a href="https://winnielim.org/feed/">RSS</a>) — <a href="https://flamedfury.com/">Flamed</a> (<a href="https://flamedfury.com/feed.xml/">RSS</a>) — <a href="https://skyhold.org">C Jackdaw</a> (<a href="https://jackdaw.weblog.lol/rss.xml">RSS</a>) — <a href="https://www.doc.cc/">Fabricio Teixeira</a> (<a href="https://www.doc.cc/feed.xml">RSS</a>) — <a href="https://rosalindcroad.com">Rosalind Croad</a> — <a href="https://www.elmikewalsh.com">Mike Walsh</a> (<a href="https://www.elmikewalsh.com/feed.xml">RSS</a>) — <a href="https://www.byzero.de/">Markus Heurung</a> — <a href="https://mwarrenarts.com/">Michael Warren</a> (<a href="https://mwarrenarts.com/rss">RSS</a>) — <a href="https://cagrimmett.com/">Chuck Grimmett</a> (<a href="https://cagrimmett.com/feed">RSS</a>) — <a href="https://eatweeds.co.uk">Robin Harford</a> (<a href="https://www.eatweeds.co.uk/feed/">RSS</a>) — <a href="https://bryanmanio.com/">Bryan Maniotakis</a> (<a href="https://bryanmanio.com/feed/">RSS</a>) — <a href="https://bjhess.com/">Barry Hess</a> (<a href="https://bjhess.com/posts_feed">RSS</a>) — <a href="https://ivanmoreale.com">Ivan Moreale</a> — <a href="https://werd.io/">Ben Werdmuller</a> (<a href="https://werd.io/feed">RSS</a>) — <a href="https://corygibbons.com">Cory Gibbons</a> — <a href="https://www.lkhrs.com/">Luke Harris</a> (<a href="https://www.lkhrs.com/blog/index.xml">RSS</a>) — <a href="https://lars-christian.com/">Lars-Christian Simonsen</a> (<a href="https://lars-christian.com/feed/">RSS</a>) — <a href="https://www.codyschultz.com">Cody Schultz</a> — <a href="https://bradbarrish.com">Brad Barrish</a> (<a href="https://bradbarrish.com/feed/">RSS</a>) — <a href="https://galaiko.rocks">Nikita Galaiko</a> — Erik Blankvoort — <a href="https://jagasantagostino.com">Jaga Santagostino</a> — <a href="https://andzuck.com/">Andrew Zuckerman</a> — <a href="https://www.mattiacompagnucci.com">Mattia Compagnucci</a> (<a href="https://mattiacompagnucci.com/feed.rss">RSS</a>) — <a href="https://tdh.se/">Thord D. Hedengren</a> (<a href="https://tdh.se/feed/feed.xml">RSS</a>) — <a href="https://fabiensauser.ch">Fabien Sauser</a> (<a href="https://fabiensauser.ch/index.xml">RSS</a>) — <a href="http://dizzard.net/">Maxwell Omdal</a> — <a href="https://numericcitizen.me">Numeric Citizen</a> (<a href="https://feedpress.me/numericcitizen-feeds.xml?ref=numericcitizen.me">RSS</a>) — <a href="https://heydingus.net">Jarrod Blundy</a> (<a href="https://heydingus.net/feeds">RSS</a>) — <a href="https://gwtf.it">Andrea Contino</a> (<a href="https://gwtf.it/feed">RSS</a>) — <a href="https://sebastiandedeyne.com/">Sebastian De Deyne</a> (<a href="https://sebastiandedeyne.com/index.xml">RSS</a>) — <a href="https://nicolalosito.it/">Nicola Losito</a> (<a href="https://nicolalosito.it/feed/">RSS</a>) — <a href="https://amerpie.lol/">Lou Plummer</a> (<a href="https://amerpie.lol/feed.xml">RSS</a>) — <a href="https://lmika.org/">Leon Mika</a> (<a href="https://lmika.org/feed.xml">RSS</a>) — <a href="http://veronique.ink">Veronique</a> (<a href="https://veronique.ink/feed/">RSS</a>) — <a href="https://surplusjouissance.com">Neil Gorman</a> (<a href="https://www.surplusjouissance.com/rss/">RSS</a>) — <a href="https://reaper.is/">Reaper</a> (<a href="https://reaper.is/rss.xml">RSS</a>) — <a href="https://www.mattrutherford.co.uk/">Matt Rutherford</a> (<a href="https://www.mattrutherford.co.uk/rss/">RSS</a>) — <a href="https://aleemshaun.com/">Aleem Ali</a> (<a href="https://aleemshaun.com/feed">RSS</a>) — <a href="https://nikkin.dev/">Nikkin</a> (<a href="https://nikkin.dev/feed.xml">RSS</a>) — <a href="https://hansfast.net">Hans</a> (<a href="https://hansfast.net/everything.rss">RSS</a>) — <a href="https://www.morelightmorelight.com/">Matt Katz</a> (<a href="https://www.morelightmorelight.com/feed">RSS</a>) — <a href="https://iljapanic.com/">Ilja Panić</a> — <a href="https://odongo.pl">Emmanuel Odongo</a> — <a href="https://ruk.ca/">Peter Rukavina</a> (<a href="https://ruk.ca/rss/feedburner.xml">RSS</a>) — <a href="https://jsrn.net">James</a> (<a href="https://jsrn.net/feed.xml">RSS</a>) — <a href="https://therealadam.com">Adam Keys</a> (<a href="https://therealadam.com/feed.xml">RSS</a>) — <a href="https://www.alexeystar.com/">Alexey Staroselets</a> (<a href="https://alexeystar.com/index.xml">RSS</a>) — <a href="https://saturnvalley.org">John L</a> — <a href="https://kangminsuk.com">Minsuk Kang</a> (<a href="https://kangminsuk.com/index.xml">RSS</a>) — <a href="https://itskechi.com/">Kechi Ladapo</a> (<a href="https://itskechi.bearblog.dev/feed/">RSS</a>) — <a href="https://nazhamid.com">Naz Hamid</a> (<a href="https://nazhamid.com/feed.xml">RSS</a>) — <a href="https://ken.fyi">Ken Zinser</a> (<a href="https://ken.fyi/feed.rss">RSS</a>) — Jan — <a href="https://verticolabs.com/">Grey Vugrin</a> (<a href="https://verticolabs.com/feed/">RSS</a>) — <a href="https://mzll.it">Luigi Mozzillo</a> (<a href="https://mzll.it/index.xml">RSS</a>) — <a href="https://www.alexhyett.com/">Alex Hyett</a> (<a href="https://www.alexhyett.com/feed/feed.atom.xml">RSS</a>) — <a href="https://andypiper.omg.lol/">Andy Piper</a> — <a href="https://shime.sh/">Hrvoje Šimić</a> (<a href="https://shime.sh/feed.xml">RSS</a>) — <a href="https://tschmeisser.com/">Travis Schmeisser</a> — <a href="https://doug.pub/">Doug Jones</a> — <a href="https://vincentritter.com/">Vincent Ritter</a> (<a href="https://vincentritter.com/feeds/all.json">RSS</a>) — <a href="https://shen.land/">Shen</a> — <a href="https://holzer.online/">Fabian Holzer</a> (<a href="https://holzer.online/feed.xml">RSS</a>) — <a href="https://netigen.com/">Courtney</a> (<a href="https://netigen.com/rss">RSS</a>) — <a href="https://jeremybassetti.com">Jeremy Bassetti</a> (<a href="https://jeremybassetti.com/index.xml">RSS</a>) — <a href="https://lukedorny.com">Luke Dorny</a> — <a href="https://tomeri.org/">Thomas Erickson</a> — <a href="https://herman.bearblog.dev">Herman Martinus</a> (<a href="https://herman.bearblog.dev/feed/">RSS</a>) — <a href="https://benny.bearblog.dev">Benny</a> (<a href="https://benny.bearblog.dev/feed/?type=rss">RSS</a>) — <a href="https://anniemueller.com/">Annie Mueller</a> (<a href="https://anniemueller.com/posts_feed">RSS</a>) — <a href="https://sekhmetdesign.thegeekcartel.com/">SekhmetDesign</a> — <a href="https://glbck.com">Gui</a> (<a href="https://www.glbck.com/feed.rss">RSS</a>) — <a href="https://longest.voyage/">Jamie</a> (<a href="https://longest.voyage/index.xml">RSS</a>) — <a href="https://www.juhaliikala.com/">Juha Liikala</a> (<a href="https://www.juhaliikala.com/rss/">RSS</a>) — <a href="https://alongtheray.com">Ray</a> (<a href="https://alongtheray.com/feed.rss">RSS</a>) — <a href="https://chadmoore.net/">Chad Moore</a> (<a href="https://chadmoore.net/posts_feed">RSS</a>) — <a href="https://ben.wf/">Benjamin Wittorf</a> — Prabash Livera — <a href="https://binarydigit.city">BinaryDigit</a> (<a href="https://binarydigit.city/feed/">RSS</a>)</p>
<h2>Want to support P&B?</h2>
<p>If you like this series and want to help it grow, you can:</p>
<ol>
<li><a href="https://ko-fi.com/manuelmoreale">support on Ko-Fi</a>;</li>
<li>post about it on your own blog and let your readers know about its existence;</li>
<li><a href="mailto:hello@manuelmoreale.com">email me</a> comments and feedback on the series;</li>
<li><a href="mailto:email@peopleandblogs.com">suggest a person</a> to interview next. I'm especially interested in people and blogs outside the tech/web bubble.</li>
</ol> <hr>
<p>Thank you for keeping RSS alive. You're awesome.</p>
<p><a href="mailto:hello@manuelmoreale.com">Email me</a> ::
<a href="https://manuelmoreale.com/guestbook">Sign my guestbook</a> ::
<a href="https://ko-fi.com/manuelmoreale">Support for 1$/month</a> ::
<a href="https://manuelmoreale.com/supporters">See my generous supporters</a> ::
<a href="https://buttondown.email/peopleandblogs">Subscribe to People and Blogs</a></p>
Why bother - Baty.netjournal/2025/03/21/why-bother2025-03-21T11:15:00.000Z<p>Why bother making anything when I can just rearrange my toolbox all day, instead?</p><p style="font-size:1.3rem;" class="feed-email-link"><a href="mailto:jack@baty.net?subject=Why bother">Reply to this post by email</a></p>Adding “subscribed via” to the Artemis bookmarklet - James' Coffee Bloghttps://jamesg.blog/2025/03/21/artemis-bookmarklet/2025-03-21T00:00:00.000Z
<p>I often subscribe to blogs I like after reading one or two of their blog posts. When I see the blog in my web reader, it sometimes takes a second for me to remember what posts inspired me to subscribe to the website.</p>
<p><a href="https://artemis.jamesg.blog/bookmarklet">Artemis</a> has a bookmarklet that, when clicked, takes you to the “Add” page on which you can subscribe to an author. I have updated this bookmarklet to add a custom note with the page you were on when you clicked on the bookmarklet. For example, if you were reading my <a href="https://jamesg.blog/2025/03/15/the-bookshop">recent bookshop story</a>, the bookmarklet would generate a URL like this:</p>
<pre><code>https://artemis.jamesg.blog/add?url=https://jamesg.blog/2025/03/15/the-bookshop&note=subscribed via The bookshop | James’ Coffee Blog (https://jamesg.blog/2025/03/15/the-bookshop)
</code></pre>
<p>This contains a <code>note</code> parameter that says the page I was on when I clicked subscribe.</p>
<p>This is auto-populated into the “Notes” section on the subscription form:</p>
<p><img alt="The Artemis page from which you can subscribe to a website with two form fields visible: the URL of the site to which you want to subscribe, followed by a notes field that is pre-populated with a message that says on what page the reader was viewing when they clicked the bookmarklet" src="https://jamesg.blog/assets/images/2025/03/artemis_add.png"/></p>
<p>Notes are visible when you visit the author edit page in Artemis.</p>
<p>More broadly, I appreciate custom URL parameters that let you set values on a web page. I use <a href="https://stackoverflow.com/questions/27778095/github-url-to-create-new-file-with-specific-name">GitHub’s file creation URL parameters</a> to create blog posts from my <a href="https://jamesg.blog/create">Create</a> page, for example. I will definitely keep this pattern in mind as I make more web tools.</p>