< B / >
Selected filters will appear here...
Click topic to remove
Click topic to add filter
Doom Emacs 2
Lean 2
Local-first Software 2
Nix 2
Programming Languages 2
ReScript 2
Simplicity 2
Antifragility 1
Astro 1
Clojure 1
CRDTs 1
CSS 1
Emacs 1
Flow 1
Frontend 1
Functional Programming 1
Haskell 1
Ink & Switch 1
Interesting 1
jazz 1
LessWrong 1
Local-First Software 1
Mental Models 1
Minimalism 1
Productivity 1
PureScript 1
Relationships 1
Sync Engines 1
The Web 1
TIL 1
Writing 1
Writing Online 1

§ Stream

Oh, and the lean packaged in Doom Emacs appears to be the Lean 3 Mode. So you can’t use that, and instead need to use the Doom Emacs section of lean4-mode.

Lean
Doom Emacs

Trying Lean

Day 2 of the Zurihac 2025, and I’m trying out Lean.

As regularly is the case, since I’m on NixOS, things don’t work directly out of the box.

This guide in particular doesn’t work anymore since the official Nix Flake got deprecated.

Luckily, there is a new one that just works™.

Up to some Functional Programming with it.

Lean
Functional Programming

Currently at ZuriHac setting up a PureScipt development environment with Nix—and of course, it’s not issue-free.

Terminal window
nix shell nixpkgs#purescript nixpkgs#spago
spago init
spago build

errors. (Throws a pretty cryptic git error.) You need:

Terminal window
nix shell nixpkgs#purescript nixpkgs#nodejs_24
npm install spago@next
npx spago init
npx spago run
npx spago test

That works!

PureScript
Haskell
Nix
Doom Emacs

Aand Super-Productivity’s sync broke again.

Aaah.

Simplicity

Local-first conf day #1

Aaand I’ve just had my first day at local-first conf!

What a great crowd.

My day started with talks about some pretty nice topics, followed by a lunch with an absolutely amazing range of topics.

We went from Clojure to Emacs to Semantic Zooming to Simon Willison to llm to Bret Victor and Dynamicland (and a new talk of him being online!), to Stephen Wolfram‘s personal setup, all interleaved with local-first stuff.

And that was only until just after lunch.

<3

Local-first Software
CRDTs
Sync Engines
jazz
Clojure
Emacs

Local-first Unconf

I just came home from my first day of Local-first Conference—the less official Unconference part, and I had a pretty great day.

I’ve worked a bit more with jazz.tools, and had so many interesting conversations.

Today, I:

10/10. Can recommend.
😁

Local-first Software
Ink & Switch

Productivity

Over the last few weeks, I’ve grown more and more unocomfortable with the amount of different tasks I’ve been keeping in my head right now. I played around with a bunch of todo apps, and none of them has been really satisfactory.

All I want(ed) is a an app with:

  • fast UI
  • nice search with filtering
  • nice search for scheduling
  • I can use as my inbox for everything, also things to read. It should integrate with the sharing menu of my phone.
  • I can use from anywhere I can access the internet
  • I can use without Internet
  • That never, ever produces any sync weirdness between devices.

Shouldn’t be that hard, right?

So far, it sounds like I probably could make Amazing Marvin do what I want.

But I’m definitely also using this as an example application to try out local-first software frameworks.

Simplicity
Productivity

https://stopa.io

I’ve just reread some of Stepan Parunashvili’s articles, and damn, he’s good.

He talks about local-first software(here), Antifragility (here), and progress. Gotta love it.

Local-First Software
Antifragility

RSS

Aand I’ve got an RSS Feed! :)

nix-tree

I just learned about nix-tree. What a nice tool!

It shows you a searchable dependency tree of your flake(s) + their sizes: Super nice to analyze what’s taking so long when you’re rebuilding your home environment, for example. (It was my humongous nvf config)

You can run it like this:

Terminal window
nix run nixpkgs#nix-tree
Nix

Roaming the Web

I’ve just had my latest hour-long Roaming the Web-spree. It started off with reading this great article on relationhips (How Relationships Actually Work), and went on with me reading half of her blog.

Then I found out she’s together with Eliezer, which made me go reading some nice LessWrong articles.

Specifically those two from Duncan Sabien:

It’s probably fair to say I’m in the general vicinity of an Information Monster.

Interesting
Relationships
LessWrong

Mastering 42

When first encountering this whole Writing Online idea, I really didn’t consider myself a writer in any capacity.

I even thought something among the lines of “Wow, that would be crazy”/“Wow, that would be so not you.”

Well, turns out when I thought that I forgot I had already been writing courses for the Hacker School and walkthroughs/guides for 42 School for quite some time already.

Brains are interesting.

Writing
Writing Online

Pages

Aand there are separate pages for my collections now:
Just click on their links.

Astro

Progress Bars

One of the pretty nice things about writing my own Digital Garden is how much I’m able to just implement everything I would’ve liked to have on other websites.

I’ve just implemented something I really would’ve liked to have on other websites:

A reading progress bar that indicates both the progress and the total reading time of the note by highlighting the part of the bar that you can currently see.
It’s a relatively minor thing, I know—but what can I say: I really like those small and simple solutions.

The Web
Frontend
Minimalism

Cryptocurrencies

Aand he got me convinced to at least give Cryptocurrencies another chance:
Why Cryptocurrencies is on my reading list now.

Just rediscovered Jonas Hietala because I got back to trying out Gleam properly.

Optimizing around

Lately, I had the impression that my workflows somehow stabilized.

I’ve been relatively happy with my window manager combined with gnome-magic-window, and haven’t been tweaking my keybinds for applications much lately.

I’ve been using Doom Emacs for quite some time now and spend less and less time customizing some behavior of it.

Compared to this, my keyboard layout feels almost completely stable with only minor changes in the whole of 2024, for example.

But lately, I’ve feel like I’ve hit a few ceilings at the same time—and now

  • I can type - and _ faster
  • vsplits are more natural in Emacs
  • Moving around S-Expressions is cleaner
  • And for the first time in ages, I now play around with pure, non-Home Row Mod Shift buttons on my keyboard.

Well, what can I say? I do like being in a state of Flow—and am definitely willing to pay the price for it.

Flow

CSS Weirdness

I just corrected my <CodeBlock /> component and it inexplicably blew out of its enclosing element.

Nothing ordinary helped until I found this comment.

CSS is, indeed, quite weird sometimes.

(The problem is that grids try to accomodate to the size of their elements. The solution is to apply min-w-0 to all of the elements.)

TIL
CSS

Oh, and it also doesn’t have a REPL nor a typeof function by default, as far as I can see.

May this help me for now:

type theType = TheType
let t = (thing: theType) => { thing }
t("hoho")
t(5)
t(5.)
Programming Languages
ReScript

Pedantic Typers

I’m currently and finally getting my feet wet with ReScript.

And I must say, I really do like what I see so far. The website is clear about what you get, the Docs look nice, and it’s got good and readable error messages.

But what on earth is this?

@react.component
let make = () => {
let (count, setCount) = React.useState(() => 0)
<div className="p-6">
<h1 className="text-3xl font-semibold"> {"What is this about?" -> React.string} </h1>
<p>
{React.string("This is a simple template for a Vite project using ReScript & Tailwind CSS.")}
</p>
<Button onClick={_ => setCount(count => count + 1)}>
{React.string(`count is ${count->Int.toString}`)}
</Button>
</div>
}

Yep, you see that right. One has to explicitly cast every string to a React.string.

(Sounds like it’s due to it not having the ability to form Union Types with Base Types. Hmm.)

Programming Languages
ReScript

The most favorite fable

Really enjoying roaming around Derek Sivers’ website.

Mental Models