3
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
I have fallen deep down the rabbit hole that is the Zork Implementation Language (ZIL). Completely by accident a few weeks ago I stumbled upon the ZILF compiler and the awesome people behind it, then just went ham. After writing a Gruescript text game in 2025, I'm totally jazzed to try and put together a true, classical parser game for Ectocomp 2026. I'm chipping away this game bit by bit and loving the whole MDL heritage, the interesting syntax, and the deep nerdery that is reading "Learning ZIL" by Steven Meretzky as if I am some junior INFOCOM implementer from the early 80s. I know it's deeply silly, but sometimes life calls for silly.
Derping around with using Falco.Datastar to see if I can get some better F# frontend stuff with less worrying about js.
Datastar is a htmx+ in my eyes that keeps most of your logic on the backend, which is what I want for 99% of my apps (professional or personal).
Falco is a nice lightweight web development stack with routing/view engine/etc, and a datastar wrapper library.
Point being that it looks like I should hopefully be able to develop 99% of any app with basic HTML + F#, no wading through JS. We'll see how far that actually gets, but so far I'm quite happy with what I'm seeing.
I made a small Gopher server in Zig. It reads a request from stdin and outputs the corresponding file content or menu to stdout before exiting, so it's intended to be used with something like inetd or socat. It can either generate menus from directories dynamically, or you can place an ".index.gopher" file in any of the directories which is emitted instead of the directory listing, or a ".header.gopher" file which is emitted before the directory listing. In these files you can omit the host and port columns if you just want to make local links.
Here's the source: https://text.garden/gopher.zig. It's for Zig 0.15.2 and I know that it won't compile for the current version because the way Zig does I/O changed since then, but an upgrade to later versions should only be a small change in the main function.