(Jason) Gedge
banner
gedge.ca
(Jason) Gedge
@gedge.ca
he/him

👨‍💻 Unemployed, exploring everything.
🎼 Currently building https://github.com/thegedge/m8t
📽️ Live coding here: https://www.twitch.tv/thegedge
🕸️ Subscribe to my feed @ https://gedge.ca
📈 Be a little better each day
Fun learning for today, for macOS: add the line

```
auth sufficient pam_tid.so
```

to `/etc/pam.d/sudo_local` and you can use touch ID for `sudo` commands in the terminal. Apparently should live through system updates too, unlike a lot of these things.
November 12, 2025 at 5:19 PM
I need to move myself off of nix for program / dotfiles management. It's nice when setting up a new machine, but otherwise a huge PITA.

Also, Node 25 has been out for a month and (AFAICT) is not in nix-unstable. No thank you — and no, I'm not making my own derivation. I got better things to do, yo.
November 12, 2025 at 4:23 PM
Marketing for so many AI companies is the fiercest dumpster fire of absolute trash I've ever seen (looking at you in particular, Noon AI). Can we just stop with this already. You all should be ashamed of your existence. Your moms aren't proud of you. I despise you.
November 11, 2025 at 8:20 PM
Me, to Claude: give me some words that end in ABC

Claude: *lists out 14 words, more than half don't end in ABC*

🤦‍♂️
November 11, 2025 at 4:45 PM
I started out updating my personal site. I wanted to extract the static site generator I built for it, to share with everyone. I decided I needed to polish the CLI a bit first, so it needed a nice Terminal UI (TUI). Now I'm building a fancy TUI library.

This is what my unemployment looks like 😅
November 11, 2025 at 4:14 PM
Hope you all enjoy the slipperiest and the sudsiest of soapboxes ᕕ( ᐛ )ᕗ
November 10, 2025 at 4:44 PM
Cloudflare's "Verifying you are human" page is such a painful experience. It's such a sad state of affairs when we need to build crummy tech to protect against our other crummy tech.

It wastes our energy and potential on something that _should_ be unnecessary. It degrades the lived experience. Sad.
November 10, 2025 at 4:41 PM
Debugging layout algorithms and rendering for a TUI = plus signs, vertical bars, and hyphens everywhere
November 7, 2025 at 7:23 PM
My thesis:

AI isn't ushering in the Imagination Age. It's actually reinforcing our current age — the IKEA age — where we crank out low-quality crafts that satisfy the needs of a lower class (ostensibly) vs building long-lasting stuff with strong foundations and positive compounding effects for all.
November 7, 2025 at 6:38 PM
My cell service provider sent out an email saying you should enable 2FA to keep your account secure, but does not have 2FA anywhere in account settings 🤦‍♂️
November 7, 2025 at 6:04 PM
To add to this point: when I write code, I'm not just writing code, but also constantly:

* Debugging
* Reevaluating my architecture / goals
* Registering edge cases / thinking about tests
* Building a mental model of the system
* Considering the customer impact of every line
* much more; no chars…
What I'm struggling to find in this discourse is how the act of writing code can help with learning, executing, and producing high-quality results.

I guess none of these people care about that though, because if the future is offloading everything to LLMs, we don't need to do that anymore (gross).
November 6, 2025 at 4:42 PM
Seeing a lot of people — often from engineering directors, VPs, and CTOs… — arguing that it's great that LLMs free up devs from writing code so they can focus on just high level. I got a bone to pick with you all.
November 5, 2025 at 5:05 PM
Instead of "worse before it gets better" why don't we just try "better... and then even better!" 🤔
November 3, 2025 at 5:48 PM
Super happy with v1 (gist.github.com/thegedge/491...). The basic layout engine + renderer is <300 lines of (unoptimized) code (compare: react-reconciler = 1.68MB unpacked).

I'm going to keep exploring to see how easy it is to write more complex components.

Thoughts on what we have so far in 🧵
I've been exploring slightly different ways to specify a UI. I'm building a TUI and don't want to be another Ink. I'm avoiding build steps (well, I guess you don't _have_ to write JSX) and heavy dependencies (e.g., react, react-reconciler).
November 3, 2025 at 4:47 PM
This is coming together so effortlessly and beautifully, it's almost scary. I guess Halloween _was_ only a couple of days ago, so spooky vibes are still lingering.
I've been exploring slightly different ways to specify a UI. I'm building a TUI and don't want to be another Ink. I'm avoiding build steps (well, I guess you don't _have_ to write JSX) and heavy dependencies (e.g., react, react-reconciler).
November 2, 2025 at 5:49 PM
I've been exploring slightly different ways to specify a UI. I'm building a TUI and don't want to be another Ink. I'm avoiding build steps (well, I guess you don't _have_ to write JSX) and heavy dependencies (e.g., react, react-reconciler).
November 1, 2025 at 3:39 PM
TFW you write out something correct and Cursor's autocomplete wants to rewrite it to something wrong.
October 29, 2025 at 4:44 PM
I've been working on a virtual buffer that has decent Unicode support, and wow, such complicated. I'm going to try to jot down learnings and whip up a post for this!

Least fun learning: you can't identify how a string will be presented in a terminal on its own. You need access to the font.
October 29, 2025 at 3:02 PM
Although I've been fairly active on here recently, I was thinking how microblogging is...not great? So much nuance is lost in such short-form writing, and we — myself very much included in that "we" — often lean towards punchy posts that often aren't constructive.
October 27, 2025 at 6:36 PM
I've been curious about why EVERY product seems to want to jam "AI chat" into everything. This bandwagon approach seems anti-design / anti-product. Similarly for other patterns that don't benefit users.

Designer friends: how you feelin?
PM friends: why do so many products have anti-user features?
Things that not every product needs:

- push notifications
- chat
- a perky AI assistant

Jus’ sayin
October 26, 2025 at 4:44 PM
It me. I definitely struggle with the "don't get bored" bit. I've been fortunate to get to run on a lot of teams in my career though, in a "go where I'm needed" capacity.

Startup idea: job board for companies to post small contracts, some kind of automated vetting/payment process, etc.
there should be a way to work for 20 companies at once and rotate them like once a month so you don’t get bored
October 26, 2025 at 4:29 PM
I've been building out a custom TUI library for m8t. What a great learning experience, if you want to learn how a terminal handles having data written to it (especially all the ANSI escape sequences)
October 25, 2025 at 4:25 PM
Pro tip: If you have a unit test like `describe("function", ...)`, do `describe(function.name, ...)` instead to create a strong coupling between your unit test name and the unit under test.

Bonus: symbol renames (e.g., F2 in VSCode) will automatically update the test name.
October 24, 2025 at 6:45 PM
I remember a math prof I had in my undergrad, in the context of teaching us about "or" and "exclusive or", confidently stating that human language "or" is never "exclusive or" lolololol

This same prof marked one of my *correct* answers wrong because I jumped a step in getting to the answer 🙃
October 24, 2025 at 6:39 PM
TFW you're working on something to parse ANSI escape sequences and a failing test emits those escape sequences without the "reset" bit, so all of your terminal output is now a hyperlink
October 24, 2025 at 6:16 PM