Linkblog/2025/03/01
Odin Game Jam, Karl on Wookash, eva hacks todesktop, Font in Manhattan, ShaderGlass, Roadtrip AI, FNA SDL3 GPU, Websites as Archives, Reflections on 25 years, GPT 4.5 $$$, Fish 4.0, Starpath MSDOS, Cafe Maria, Building S3, Gleam from Erlang, Valve uses Godot code, Typst 0.13, Technicolor winding down, Humanity’s Last Exam, effective LLM, Vertex Pulling, LLM codegen workflow.
Karl Zylinski - Odin 7 Day Jam
Upcoming Odin game jam!
Although I’m currently in the midst of a jam, working on this project, I’m planning on taking part in this one as well.
Wookash Podcast - Why Odin and raylib is an irresistible combo with Karl Zylinski!
The ‘Game engineering podcast’ I’ve linked as of recent, as of this video, is now a more general programming podcast, and Karl is on it!
I failed math in highschool because I played too much World of Warcraft
Respect.
…for me, I tried to understand what the code is doing, and every time I have to step into the Unreal Code, I just felt, a terrible dread, just like, you’re in one inheritance level, and there’s like five things above and below you, and we just have to inject somewhere in-between…
The abstractions of large engines are good, but it does seem like if you need to dip your head into them, you can quickly get lost.
Thankfully with Godot its arguably less complex than other engines, and obviously open to check out and even contribute, but still complex nonetheless.
At the end of the interview, Karl has some wisdom about ensuring that if you do embark on a project, such as a game, in the sort of realm he has (low level programming), and you start to build something like an engine, make sure you stay on track for the features you need for your task at hand, don’t get stuck adding stuff you think a engine simply needs, add features that your game needs.
As someone making a game in Odin/SDL3, and planning on making something for the upcoming Odin jam, this is good advice.
eva - how to gain code execution on millions of people and hundreds of popular apps
this started when i was looking into cursor, an ai text editor. also, i use lulu by objective-see on my laptop, so when i downloaded the cursor installer, i got this pop-up:
![]()
now, what the hell is todesktop? i thought i was downloading cursor? well, looking at their website, they seem to be an electron app bundler service alongside providing a SDK for electron apps. so it appears the installer i downloaded is actually managed by todesktop, not cursor.
this made me curious and i made an account on todesktop to look into it, and when i clicked the github login button, i saw my calling: firebase
This is a yikes, and of course, Firebase again.
Great writeup from Eva, the list of affected apps is pretty crazy:
-
Cursor (who has since moved off of todesktop, and also awarded 50k USD to eva!)
Some of these I’m a user of myself!
Link posted by Riley.
Marcin Wichary - The hardest working font in Manhattan
Marcin, the author of Shift Happens, goes into details about Gorton.
Every image on this article is one I would want to share here, its better if I just say, if you’re a fan of typography, just go check out the post, its so good.
Link (also) posted by Riley.
Brandon Lyttle - ShaderGlass is a free program that adds retro shaders to your desktop
ShaderGlass is a free and open source program designed to allow users to add filters and shaders to capture that retro CRT feel on their modern PCs.
From the author on Twitter.
Matt Webb - My fantasy AI app is a voice mode travel buddy called Roadtrip
My Roadtrip app idea is simply this:
I want a CarPlay app with AI and voice mode so I can talk like this while I’m driving.
As if there’s somebody sitting shotgun.
Build that for me please?
Bonus points: make it an always-on voice app for my AirPods. Uh Claude, let’s compare and contrast Archimedes and von Neumann as polymath genius weapons scientists.
I honestly would love this sort of thing, I had a chat with ChatGPT voice mode on my way home from work the other day, and had an entire chat about Quake 1 BSPs in the context of integrating them into a game engine, there honestly isn’t really a human I can call to have this conversation with, honestly if there was I would much rather talk to a person, but sometimes I just want to spit ball ideas at an AI using conversation rather than text.
However, you can still tell the AI is trying to sound more question-responey, not exactly a natural conversation partner, Matt is onto something with this road trip idea.
New Features:
SDL3 is now the default FNAPlatform
FNA is on SDL3, with FNA3D using SDL3 GPU! Hype!
Alex Chan - Using static websites for tiny archives
In my previous post, I talked about how I’m trying to be more intentional and deliberate with my digital data. I don’t just want to keep everything – I want to keep stuff that I’m actually going to look at again. As part of that process, I’m trying to be better about organising my files. Keeping something is pointless if I can’t find it later.
Over the last year or so, I’ve been creating static websites to browse my local archives. I’ve done this for a variety of collections, including:
- paperwork I’ve scanned
- documents I’ve created
- screenshots I’ve taken
- web pages I’ve bookmarked
- video and audio files I’ve saved
This is cool, part of the vibes of this garden, but it seems Alex does this for things private to him like screenshots and documents, I like this idea.
Alex goes into more detail in this post with regards to how he constructs these websites.
Matt Webb - Reflections on 25 years of Interconnected
I started blogging here precisely 25 years ago on 19 February 2000. I was 22 when I started and I am now 47.
Blogging for almost as long as I have existed…
Meanwhile blogging has become small-p political again.
Slowly, slowly, the web was taken over by platforms. Your feeling of success is based on your platform’s algorithm, which may not have your interests at heart. Feeding your words to a platform is a vote for its values, whether you like it or not. And they roach-motel you by owning your audience, making you feel that it’s a good trade because you get “discovery.” (Though I know that chasing popularity is a fool’s dream.)
Writing a blog on your own site is a way to escape all of that. Plus your words build up over time. That’s unique. Nobody else values your words like you do.
Blogs are a backwater (the web itself is a backwater) but keeping one is a statement of how being online can work. Blogging as a kind of Amish performance of a better life.
David Gerard - OpenAI releases GPT-4.5 with ridiculous prices for a mediocre model
We’ve hidden usage of GPT 4.5 at work behind a flag called “Big Spender”, mostly just so we can test it internally, but early tests indicate… it is not passing the vibe check in comparison to models 1/100th of its price…
Fish Shell - What’s new in fish 4.0
Fish RIIR, huge.
The Onion - Lockheed Martin Develops Giant Tactical Rubber Spider

oh no
hellmood.111mb.de - “Starpath” is 55 bytes
This site breaks down the tricks / code behind this amazing MSDOS demo.
I went to /
on this website to find a RSS feed / attribution (as I always do), and I was met with simply a Apache/2.4.62 directory listing

Huge respect.
Also ran into this page which is a trip (flashing warning!).
Cafe Maria - A text-based restaurant sim game played entirely within a MariaDB instance.
What is this?
A proof of concept demo of a text-based, multiplayer, restaurant sim game built entirely in MariaDB. Yes, the database. You host it on your server, and play solo or with friends if you have any.
What do you mean “entirely in MariaDB”?
Exactly what it says. There are no external components or scripts. The game lives entirely in the DB and is played via stored ? procedures that the players call when logged into the server.
This is ludicrous.
I love it.
When I see Maria, I can only think of the biggest Maria in my life, and that is Dan’s Maria:

Andy Warfield - Building and operating a pretty big storage system called S3
What I’d really like to share with you more than anything else is my sense of wonder at the storage systems that are all collectively being built at this point in time, because they are pretty amazing. In this post, I want to cover a few of the interesting nuances of building something like S3, and the lessons learned and sometimes surprising observations from my time in S3.
S3 is such a ubiquitous protocol, and obviously Amazon’s offering of S3 the service is the most popular of implementations of said protocol (as it would be given it was created for said service).
I’m one who’s of the mind that things like Bun S3 have extreme merit to exist as language / runtime level features.
This article is as much about the history of storage devices as much as its about S3, a good read.
Facundo Olano - Gleam, coming from Erlang
I recently took some time to try Gleam, the type-safe language that runs on the Erlang virtual machine. For a couple of weeks, I used it to build a little open-source feed aggregator that’s now live. These are my notes.
[…]
[…] you may imagine why Gleam looks interesting to me:
I would like a Rust minus the memory management and with a gentler concurrency model;
I would like a BEAM language without Erlang’s rough edges and with the goodies of a modern type system 2.
I’ve yet to give Gleam a solid go, mostly because when I look into Gleam’s OTP story, I expect it to be similar to Elixir’s GenServer, which as far as I know, is only syntax sugar ontop of Erlang’s gen_server.
This probably is just a conceptual skill level on my side, I just am not sure if my existing knowledge I’ve gained from reading through Elixir in Action would come into play with Gleam.
This seems to be shared sentiment between myself and Facundo:
OTP in Gleam is what took me the most effort to figure out. The hexdocs cover the basics but that wasn’t enough for me to get the concepts right, especially where they differed from their Erlang counterparts. For that, I reached out to this GitHub project, its tests and those of the gleam/otp repo, and the Gleam Discord history.
[…]
Unlike the rest of the language, the OTP abstractions haven’t stabilized yet. In other words, gleam_otp hasn’t reached 1.0.
Honestly reading this makes me feel validated in some ways, and also willing to wait out when I intend to use Gleam in the future…
The author actually published a project from this adventure into Gleam, always nice someone to give a language a go by building a non-trivial application in it, rather than critiquing it from a hello world / factorial.
I heard that TF2 stole a little code from Godot, but I didn’t realize how noticeable this actually is until I saw this video:
This is a pretty major change to Source engine lighting, cool to see Godot being used for this sort of thing.
Laurenz Mädje - Typst 0.13 is out now
Typst has been my goto for typesetting (mostly having a nice resume honestly), and I’ve successfully migrated others to using it as well.
We’ve been starting work on HTML export! The feature is still very incomplete and only available for experimentation behind a feature flag, but there’s already some stuff to see.
HTML export is very nice, obviously everyone can open a PDF, but have a nicely formatted document in the browser from Typst sounds cool.
Charles Pulliam-Moore - Technicolor is winding down operations
The VFX company behind Dune and Severance failed to find new investors.
Very disappointing, the visual effects on both Dune and Severance are fantastic.
Politics roundup!
Maggie Appleton - Humanity’s Last Exam
We have a new(ish) benchmark, cutely named “Humanity’s Last Exam.”
[…]
New models routinely achieve 90%+ on the best ones we have. So there’s a clear need for harder benchmarks to measure model performance against.
Hence, Humanity’s Last Exam .
Made by ScaleAI and the Center for AI Safety, they’ve crowdsourced “the hardest and broadest set of questions ever” by experts across domains. 2,700 questions at the moment, some of which they’re keeping private to prevent future models training on the dataset and memorising answers ahead of time.
Quite the hard exam, OpenAI’s Deep Research is only getting a 26.6%, and others are only getting between 3-4%.
We’ll see how long this stays a difficult exam for…

Sean Goedecke - Using LLMs effectively isn’t about prompting
Using LLMs well involves extracting value from what they’re good at and avoiding wasting time at what they’re bad at.
Knowing when to step in and just do something without even prompting a LLM is so useful, while knowing when there is enough context in the question or the context the LLM is contributing to for it to potentially one-shot a solution, is very useful.
This video tipped me off on this article.
Honestly the entire Voxel.Wiki site is amazing.
Harper Reed - My LLM codegen workflow atm
I have been building so many small products using LLMs. It has been fun, and useful. However, there are pitfalls that can waste so much time. A while back a friend asked me how I was using LLMs to write software. I thought “oh boy. how much time do you have!” and thus this post.
The work that can go into preparing a LLM to go ahead and build something is so crucial, Harper’s post on this outlines great ways to approach.
Step 1: Idea honing
Use a conversational LLM to hone in on an idea (I use ChatGPT 4o / o3 for this):
Ask me one question at a time so we can develop a thorough, step-by-step spec for this idea. Each question should build on my previous answers, and our end goal is to have a detailed specification I can hand off to a developer. Let’s do this iteratively and dig into every relevant detail. Remember, only one question at a time.
Here’s the idea:
<IDEA>
Having convos in the context before you dig in, and then even getting the conversation LLM to spit out a summary you then feed to a LLM in some tool that does the work, can be quite useful.