<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: jjba23</title><link>https://news.ycombinator.com/user?id=jjba23</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 09 Sep 2026 12:47:18 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jjba23" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Maak.el: Lisp machine command runner in Emacs, infinitely extensible and Scheme]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/jjba23/maak.el">https://codeberg.org/jjba23/maak.el</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49607858">https://news.ycombinator.com/item?id=49607858</a></p>
<p>Points: 20</p>
<p># Comments: 4</p>
]]></description><pubDate>Tue, 08 Sep 2026 09:28:35 +0000</pubDate><link>https://codeberg.org/jjba23/maak.el</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=49607858</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49607858</guid></item><item><title><![CDATA[New comment by jjba23 in "Quest for eternal dock on Wayland – lambdock (C and GTK4 and Lisp Guile Scheme)"]]></title><description><![CDATA[
<p>Thanks for your comment! I think indeed a lot of people underestimate Guile's performance, power and expressiveness.</p>
]]></description><pubDate>Wed, 02 Sep 2026 07:48:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=49533108</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=49533108</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49533108</guid></item><item><title><![CDATA[Quest for eternal dock on Wayland – lambdock (C and GTK4 and Lisp Guile Scheme)]]></title><description><![CDATA[
<p>Article URL: <a href="https://jointhefreeworld.org/blog/articles/gnu-linux/quest-for-eternal-dock/index.html">https://jointhefreeworld.org/blog/articles/gnu-linux/quest-for-eternal-dock/index.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49476653">https://news.ycombinator.com/item?id=49476653</a></p>
<p>Points: 34</p>
<p># Comments: 3</p>
]]></description><pubDate>Fri, 28 Aug 2026 10:18:10 +0000</pubDate><link>https://jointhefreeworld.org/blog/articles/gnu-linux/quest-for-eternal-dock/index.html</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=49476653</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49476653</guid></item><item><title><![CDATA[New comment by jjba23 in "Ask HN: How to tune Emacs config for portability: Linux, macOS and Windows?"]]></title><description><![CDATA[
<p>Thanks for the comment</p>
]]></description><pubDate>Wed, 19 Aug 2026 19:19:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49365982</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=49365982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49365982</guid></item><item><title><![CDATA[Ask HN: How to tune Emacs config for portability: Linux, macOS and Windows?]]></title><description><![CDATA[
<p>I've been a GNU/Linux-only Emacs user for years, and most of my configuration has naturally evolved around that environment.<p>Now I may need to start using macOS and Windows as well, and I'm realizing that "Emacs is cross-platform" and "my Emacs configuration is cross-platform" are two rather different things.<p>I'm curious how people who maintain a substantial Emacs configuration approach this.<p>My config is fairly modular and tries to stay close to vanilla Emacs where possible, using things like Elpaca, Corfu, Vertico, Eglot, etc. The Linux setup is fast and works exactly the way I want, but I don't want to end up with a giant collection of OS-specific conditionals every time I move between machines.<p>This is my config by the way: https://codeberg.org/jjba23/heks-emacs<p>Some things I'm particularly wondering about:<p>- How do you handle filesystem paths and environment variables cleanly?<p>- Do you abstract OS-specific functionality, or simply use `system-type` / `executable-find` where necessary?<p>- How much do you rely on external Unix tools that aren't naturally available on Windows?<p>- What's the best strategy for subprocesses and shell integration?<p>- How do you handle fonts, GUI differences, clipboard behavior, notifications, and native window-system quirks?
- Are there packages that you deliberately avoid because they make portability painful?<p>- Do you maintain one config everywhere, or have a small portable core with platform-specific modules?<p>- For Windows specifically, do you target native Emacs, WSL, MSYS2, or something else?<p>- For macOS, are there particular pitfalls around GUI Emacs, Homebrew, PATH handling, or system services?<p>I'm especially interested in lessons from people who have been maintaining the <i>same</i> Emacs configuration across multiple operating systems for years.<p>What abstractions or conventions ended up being worth it? What things did you initially think would be portable but turned out to be surprisingly OS-specific?<p>I'd also be interested in seeing examples of configuration architecture that make this manageable.<p>The goal isn't necessarily "make every feature work identically everywhere." I'd rather have a portable core with sensible degradation than turn the config into an enormous pile of conditionals.<p>What does a battle-tested cross-platform Emacs setup look like?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49349796">https://news.ycombinator.com/item?id=49349796</a></p>
<p>Points: 2</p>
<p># Comments: 2</p>
]]></description><pubDate>Tue, 18 Aug 2026 18:00:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49349796</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=49349796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49349796</guid></item><item><title><![CDATA[Show HN: Lambdock – Wayland-native GTK4 dock with a live Lisp REPL]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/jjba23/lambdock">https://codeberg.org/jjba23/lambdock</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49260628">https://news.ycombinator.com/item?id=49260628</a></p>
<p>Points: 44</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 11 Aug 2026 16:21:46 +0000</pubDate><link>https://codeberg.org/jjba23/lambdock</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=49260628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49260628</guid></item><item><title><![CDATA[Escape IntelliJ: Scala and Kotlin LSPs on Emacs Eglot]]></title><description><![CDATA[
<p>Article URL: <a href="https://jointhefreeworld.org/blog/articles/emacs/emacs-eglot-scala-kotlin/index.html">https://jointhefreeworld.org/blog/articles/emacs/emacs-eglot-scala-kotlin/index.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48990219">https://news.ycombinator.com/item?id=48990219</a></p>
<p>Points: 134</p>
<p># Comments: 121</p>
]]></description><pubDate>Tue, 21 Jul 2026 10:04:20 +0000</pubDate><link>https://jointhefreeworld.org/blog/articles/emacs/emacs-eglot-scala-kotlin/index.html</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=48990219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48990219</guid></item><item><title><![CDATA[Show HN: GGG – Declarative SVG Badge Generation Using Guile Scheme and SXML]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/jjba23/ggg">https://codeberg.org/jjba23/ggg</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48990178">https://news.ycombinator.com/item?id=48990178</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 21 Jul 2026 09:59:23 +0000</pubDate><link>https://codeberg.org/jjba23/ggg</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=48990178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48990178</guid></item><item><title><![CDATA[Simple, beautiful Emacs modeline: modusregel]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/jjba23/modusregel">https://codeberg.org/jjba23/modusregel</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48767834">https://news.ycombinator.com/item?id=48767834</a></p>
<p>Points: 55</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 02 Jul 2026 21:50:11 +0000</pubDate><link>https://codeberg.org/jjba23/modusregel</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=48767834</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48767834</guid></item><item><title><![CDATA[Scriba: Structured Logging in Lisp (Guile Scheme)]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/jjba23/scriba">https://codeberg.org/jjba23/scriba</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48255937">https://news.ycombinator.com/item?id=48255937</a></p>
<p>Points: 31</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 24 May 2026 09:44:09 +0000</pubDate><link>https://codeberg.org/jjba23/scriba</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=48255937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48255937</guid></item><item><title><![CDATA[Why I still reach for Lisp and Scheme instead of Haskell]]></title><description><![CDATA[
<p>Article URL: <a href="https://jointhefreeworld.org/blog/articles/lisps/why-i-still-reach-for-scheme-instead-of-haskell/index.html">https://jointhefreeworld.org/blog/articles/lisps/why-i-still-reach-for-scheme-instead-of-haskell/index.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47945707">https://news.ycombinator.com/item?id=47945707</a></p>
<p>Points: 269</p>
<p># Comments: 168</p>
]]></description><pubDate>Wed, 29 Apr 2026 08:43:17 +0000</pubDate><link>https://jointhefreeworld.org/blog/articles/lisps/why-i-still-reach-for-scheme-instead-of-haskell/index.html</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=47945707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47945707</guid></item><item><title><![CDATA[Olive CSS: Lisp powered vanilla CSS utility-class a la Tailwind]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/jjba23/olive-css">https://codeberg.org/jjba23/olive-css</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47869130">https://news.ycombinator.com/item?id=47869130</a></p>
<p>Points: 15</p>
<p># Comments: 11</p>
]]></description><pubDate>Wed, 22 Apr 2026 20:50:21 +0000</pubDate><link>https://codeberg.org/jjba23/olive-css</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=47869130</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47869130</guid></item><item><title><![CDATA[Repository Pattern with Hygienic Macros in Scheme – Lisp]]></title><description><![CDATA[
<p>Article URL: <a href="https://jointhefreeworld.org/blog/articles/lisps/functional-repository-pattern-in-scheme-with-macros/index.html">https://jointhefreeworld.org/blog/articles/lisps/functional-repository-pattern-in-scheme-with-macros/index.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47715681">https://news.ycombinator.com/item?id=47715681</a></p>
<p>Points: 18</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 10 Apr 2026 09:45:51 +0000</pubDate><link>https://jointhefreeworld.org/blog/articles/lisps/functional-repository-pattern-in-scheme-with-macros/index.html</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=47715681</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47715681</guid></item><item><title><![CDATA[New comment by jjba23 in "Relational Schema Migrations Powered by Lisp on DBs (Guile Scheme) + Seeding"]]></title><description><![CDATA[
<p>This [WIP] tool provides a declarative, transactional approach to managing your database state, ensures your relational schema and database is exactly as you decree, incrementally.   
Compatible with SQLite3, MySQL and PostgreSQL. Write your schema migrations and seeding easily, and in your native database dialect.</p>
]]></description><pubDate>Wed, 01 Apr 2026 21:42:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47606903</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=47606903</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47606903</guid></item><item><title><![CDATA[Relational Schema Migrations Powered by Lisp on DBs (Guile Scheme) + Seeding]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/jjba23/mutastructura">https://codeberg.org/jjba23/mutastructura</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47606902">https://news.ycombinator.com/item?id=47606902</a></p>
<p>Points: 10</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 01 Apr 2026 21:42:36 +0000</pubDate><link>https://codeberg.org/jjba23/mutastructura</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=47606902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47606902</guid></item><item><title><![CDATA[Maak: The infinitely extensible command runner and automation à la Make]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/jjba23/maak">https://codeberg.org/jjba23/maak</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45132731">https://news.ycombinator.com/item?id=45132731</a></p>
<p>Points: 25</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 04 Sep 2025 22:03:11 +0000</pubDate><link>https://codeberg.org/jjba23/maak</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=45132731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45132731</guid></item><item><title><![CDATA[YAML Schemas in Emacs with Eglot – just renewed blog too]]></title><description><![CDATA[
<p>Article URL: <a href="https://jointhefreeworld.org/blog/articles/emacs/yaml-schemas-in-emacs-eglot/">https://jointhefreeworld.org/blog/articles/emacs/yaml-schemas-in-emacs-eglot/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42321472">https://news.ycombinator.com/item?id=42321472</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 04 Dec 2024 20:06:02 +0000</pubDate><link>https://jointhefreeworld.org/blog/articles/emacs/yaml-schemas-in-emacs-eglot/</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=42321472</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42321472</guid></item><item><title><![CDATA[New comment by jjba23 in "Supreme Sexp System – SSS – A Lisp Machine Adventure"]]></title><description><![CDATA[
<p>Seems like there's been quite some interest lately in my custom configurations and self-built OS with GNU Guix, Emacs, StumpWM and more, which works amazing, specially for devs, and is pretty much 100% configurable with Lisp :blessed:
Many stars in just a couple days, maybe it inspires you to do great things, and free up your computing.</p>
]]></description><pubDate>Thu, 24 Oct 2024 09:41:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=41933857</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=41933857</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41933857</guid></item><item><title><![CDATA[Supreme Sexp System – SSS – A Lisp Machine Adventure]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/jjba23/sss">https://github.com/jjba23/sss</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41933856">https://news.ycombinator.com/item?id=41933856</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 24 Oct 2024 09:41:35 +0000</pubDate><link>https://github.com/jjba23/sss</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=41933856</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41933856</guid></item><item><title><![CDATA[Byggsteg – PoC simple fast deployable CI/CD system written in Guile Scheme]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/jjba23/byggsteg">https://github.com/jjba23/byggsteg</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41676232">https://news.ycombinator.com/item?id=41676232</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 27 Sep 2024 22:40:44 +0000</pubDate><link>https://github.com/jjba23/byggsteg</link><dc:creator>jjba23</dc:creator><comments>https://news.ycombinator.com/item?id=41676232</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41676232</guid></item></channel></rss>