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.
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:
nix run nixpkgs#nix-tree
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.
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.
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.
Cryptocurrencies
Aand he got me convinced to at least give Cryptocurrencies another chance:
Why Cryptocurrencies is on my reading list now.
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.
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 grid
s try to accomodate to the size of their elements. The solution is to apply min-w-0
to all of the elements.)
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.)
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.componentlet 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.)