(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
During this time off I like to ponder on the ostensible utility of AI is asymmetric, as is most things in a world largely driven by corporate capitalism.

Happy holidays! 🎄⛄️
December 26, 2025 at 5:26 PM
Mouse events in the terminal 🐁 🎉
December 24, 2025 at 6:09 PM
This is my unemployed life. A 50 page document on xterm control sequences. What a time to be alive!
ctlseqs(ms)
invisible-island.net
December 24, 2025 at 5:14 PM
Testing the wonderful world of async (generators) is WILD.

I had a bug where the last epoch of a component would not render when there were two adjacent yields in an async generator with no `await` in between.
December 23, 2025 at 8:33 PM
Finally hitting some really interesting for my TUI library. Specifically, what happens to all event listeners / content / etc when a component transitions between states. I'm definitely excited to experiment on this front.
December 22, 2025 at 5:58 PM
I've been playing a lot with async generators and one main thought: adoption of generators would be a million times better if you TypeScript would allow better typing of the result of `yield blah`.

I basically want this:
• `yield Promise<T>` is `T`
• otherwise, `yield` is `SomeOtherT`
December 20, 2025 at 8:09 PM
I just finished Cyberpunk 2077 and now playing Clair Obscur: Expedition 33 and wow, 2077 is such a disappointment to me, even after playing Clair Obscur for only an hour. It's clear why it won so many awards.

Just gonna stream of consciousness some thoughts (no spoilers).
December 19, 2025 at 5:24 PM
Now that Advent of Code is over, I'm back at my TUI library. Played around with an input thingy today, and I like the result:

```
const value = yield* Input("Enter your name");
```

`Input` is the component, takes placeholder text as an arg. It returns the text after user presses `Enter`.
December 16, 2025 at 8:45 PM
Just sharing a quote I came across that I love:

"Nature does not hurry, yet everything is accomplished." — Lao Tzu
December 16, 2025 at 4:27 AM
Seeing the paper "Ironies of Automation" make its rounds, so I gave it a read and it's interesting in this era of LLMs.

I'm gonna pull out some interesting bits of it to me.
ckrybus.com
December 14, 2025 at 5:41 PM
I had someone ask me recently whether or not I was worried about "AI" (I added the quotes) taking my job? I confidently said "no" because, here I am, repeatedly telling an LLM to "replace every console.log with log" (almost 10 times now), but it appears to be incapable of doing so 🙄
December 12, 2025 at 6:00 AM
This track is giving the good vibes today. 80s R&B just hits a certain way.
Casanova
open.spotify.com
December 11, 2025 at 5:04 PM
Sometimes I want to table flip so hard with JavaScript.

You CANNOT `bigints.sort()`, because it will compare strings, not numbers. How ridiculous is that? This language was designed by MISANTHROPIC MONSTERS.

(╯°□°)╯ ︵ ┻━┻
December 8, 2025 at 3:19 PM
It's another year of Advent of Code. Encourage everyone to try to solve things themselves, but if you're struggling and want to learn from some solutions, you can hit up my solutions.

I try to document tricky bits, but am happy to explain anything in more detail. Just throw me an issue!
advent-of-code-solutions/src/2025 at main · thegedge/advent-of-code-solutions
Solutions to advent of code from various years. Contribute to thegedge/advent-of-code-solutions development by creating an account on GitHub.
github.com
December 5, 2025 at 5:35 PM
Kind of iffy on React Server Components (RSC). It appears to be largely syntactic, and somewhat obscures the environment in which code is running. I suspect there's danger to that, because developers may make assumptions if they think they're writing code that runs in a certain environment.
December 4, 2025 at 6:41 PM
A lesser-known work by Mondrian: "reimplementing flex box"
November 30, 2025 at 6:16 PM
It never ceases to amaze me how effective tomatoes are at ruining sandwiches 🍅
November 28, 2025 at 5:08 PM
"Nvidia CEO says you're 'insane' if you don't use the thing that will make him even richer"
Nvidia CEO Says You're "Insane" If You Don't Use AI to Do Literally Everything
Nvidia CEO Jensen Huang said it was "insane" to suggest his employees not use AI to do everything possible.
futurism.com
November 27, 2025 at 6:00 PM
🤔
November 26, 2025 at 4:31 PM
I like to educate as I live code, and one thing I talk about is how it's best to avoid obvious comments and focus on documenting the "why", or really anything implicit / unclear.

github.com/mozilla-fire... is a good example of an unnecessary comment that wastes energy (many devs _will_ read it)
November 25, 2025 at 5:15 PM
What Jason (great name, btw, I'm unbiased) is talking about is one of my favourite methods for gaining knowledge.

You put any hubris aside and say "there are things I don't know about this space", pushing forward, often discovering many "unknown unknowns".

You'll get better software at the end.
my best code is written in a two-step process:

1. kludge a working prototype together, don’t worry about the code AT ALL. the point is understanding how the requirements function in reality

2. destroy the prototype completely. build the app for real using my better mental model
November 24, 2025 at 5:45 PM
TIL `margin: auto` on a single flex item is kind of like having that flex item grow and be center-aligned on both the main and cross axis.

Makes sense, but not necessarily my immediate thought that that would happen (but I've been deep into flex lately and know there are quirks in there)
November 24, 2025 at 5:12 PM
Modern desktop software, every 5 minutes: There are updates! Install now?

😭
November 24, 2025 at 4:49 PM
Refactored my flex layout algorithm to be closer to the specification (www.w3.org/TR/css-flexb...). In particular, how the various dimensional constraints (e.g., auto height) are incorporated.

I think we're now in a better place moving forward :)
November 20, 2025 at 5:53 PM
I've been doing A LOT of work to prep for richer TUIs, input events in particular, so not many (visual) updates, but I finally got a really nice key event system in place. Here's a list component
November 17, 2025 at 7:18 PM