HNHacker News
TopNewBestAskShowJobs

ChristopherDrum

368 karma · joined May 30, 2021

I'm interested in deconstructing/reverse-engineering software of historical significance. I have a blog which examines the productivity software during the retro "golden age" of computing, from 1977-1995: https://stonetools.ghost.io

A very nice overview of my retro projects, triggered by the launch of the Stone Tools blog, was on This Week in Retro: https://youtu.be/UHYscl1Ayqg

My for-fun development work tends to be in Pico-8, though I'm slowly moving to just plain ole' C with RayLib. A portable Zork built with Cosmopolitan LibC is on github. That single executable runs on every (?) 64-bit system you can throw it at. Check it out at: https://christopherdrum.github.io/posts/2025/04/porting-infocom-with-cosmo

From-scratch rewrites of Mystery House (first graphic adventure game), PicoCalc (Visicalc clone), Eliza 8 (scriptable Eliza clone), and Status Line (z-machine interpreter, i.e. Zork, etc.) are all available for the Pico-8 at: https://christopherdrum.itch.io/

submissionscomments
ChristopherDrum··on Ask HN: What are you working on? (March 2025)
I'm in the exploratory phase of a few projects, meaning I haven't decided if they are compelling enough (or within my skillset) to push me to develop them properly. That said, the one project I've explored multiple times, each time getting a little closer to making the full mental commitment, is a word processor.

Not a "text editor" for code and whatnot, but a real-deal word processor for writing novels and such. I cloned Visicalc (onto the Pico-8), so my "How does a spreadsheet work?" itch has been scratched. I think it's finally time to answer for myself, "How does a word processor work?" (in pure C, to level-up those skills as well) So lately I've been working on small programmatic experiments to understand the underlying subsystems necessary to build one.

ChristopherDrum··on Show HN: Resurrecting Infocom's Unix Z-Machine with Cosmopolitan
My pleasure, and thanks for creating Cosmopolitan!
ChristopherDrum··on Coding Font Selection 'Tournament'
No, it's not an option in the game. Judging from comments around the interweb, there are a number of good choices that aren't represented.
ChristopherDrum··on Coding Font Selection 'Tournament'
I became an Iosevka convert this year. If there are things about it you don't like, you can likely build a custom variant that fixes those things. There are 54 variants for the zero character, for example. Pick your poison. https://typeof.net/Iosevka/
ChristopherDrum··on Ask HN: What's the "best" book you've ever read?
Various "bests" based purely on feelings - They're Going to Love You - The Heart is a Lonely Hunter - Roadside Picnic - To Kill a Mockingbird - Catch 22 - Blindness - No Country for Old Men (various McCarthy books could rotate into this slot)
ChristopherDrum··on Ask HN: Platform for 11 year old to create video games?
+1 on this. Even as an adult I found other game authoring systems too complex to jump into and feel comfortable with (as a hobbyist). Pico-8 was the fastest, easiest "I'm thinking of something" to "I'm seeing something happen on screen" iterative development cycle and a joy to use. Plus, a great community of people willing to help on lexaloffle.com and especially Discord. Some great YouTube tutorials out there as well.
ChristopherDrum··on Just use fucking paper, man
I use the BOOX NoteAir, just to keep from having a dozen scattered notebooks and having to replenish the paper/ink supply. I use it just like paper. I don't do any handwriting recognition or anything, and at most will split ideas off into their own notebooks. Personally, I've found that it is the act of writing things down, more so than the act of looking through notebook archives, that helps me with retention and creativity. The VERY IMPORTANT THINGS are kept on a whiteboard I look at multiple times a day, because I WILL FORGET dates and appointments (and I'll forget to put them into an alarm on my phone, and I'll dismiss those alarms multiple times and re-forget) no matter how critically important it may be. So the whiteboard keeps those items literally in my face.
ChristopherDrum··on Show HN: Double – Design and invest in your own stock index
I really enjoyed how under Explore, if I set "Risk Tolerance" to "Low" (which it is) there are zero options (until the Bogglehead??? forum creations). This has helped steel my resolve against investing.
ChristopherDrum··on Ask HN: Weirdest Computer Architecture?
Mythic produces an analog processor https://mythic.ai/

There is also the analog computer The Analog Thing https://the-analog-thing.org/

ChristopherDrum··on Affinity's Adobe-rivaling creative suite is now free for six months
Lack of scripting automation and a blend tool are my only real disappointments with the product. These aren't enough to make me switch back to Adobe mind you, but they're relatively glaring omissions I think.
ChristopherDrum··on ELIZA Reinterpreted: The world's first chatbot was not intended as a chatbot
There is a link right on that very page to download, "eliza8_source.zip" Additionally, the "cartridge" can be opened by Pico-8 and viewed/edited/copied freely (free educational version of Pico-8 can do this as well https://www.pico-8-edu.com/)
ChristopherDrum··on ELIZA Reinterpreted: The world's first chatbot was not intended as a chatbot
Quick plug; mine is based on Weizenbaum's original (or at least on his notes/specifications, as the source code wasn't available when I built mine) https://christopherdrum.itch.io/eliza8
ChristopherDrum··on Ask HN: How do you stay organized for solo dev?
I use a BOOX Note Air as an infinite supply of paper. In that I create general and specific "notepads" (using the BOOX built-in app). Those are basically just filled with sketches and lists.

Lists of projects I'm thinking about doing. Lists of things to do on the current project. Lists of bugs on a project.

Just scratch things off as I'm done. I like this method because I often want to draw a little sketch of something (like a UI element or quick flow chart) inside the list to remind myself of some aspect of the project/bug/etc. The freeform nature of pen + paper helps me remember things, having gone through a physical action of writing. I also find it much easier to go back to another project to look up something, because I remember doing it. I remember drawing something. I know, visually, what I'm looking for and every notepad I ever made is right there, immediately browsable.

"Works for me," as they say.

ChristopherDrum··on Finding New Pastures: Big Nerd Ranch's Next Chapter
The bicycle book and bootcamp with Aaron Hillegass, pre iPhone days, put me on the path to making shareware for MacOS X. That hobby morphed overnight into an iOS programming career when the platform opened up, which persists to this day. I still proudly drink from my Big Nerd Ranch (now vintage?!) mug and owe more than I can say to Aaron's teachings. It was through those works that programming finally clicked for me. Thank you, Big Nerd Ranch!

(Aaron, if you're reading these; do you recall a vegetarian attending bootcamp about 20 years ago and the cooks didn't know anything about how to prepare vegetarian food?)

ChristopherDrum··on The impossibility of translating Franz Kafka (1999)
Doesn't seem so impossible. https://youtu.be/8uaaF83eVig
ChristopherDrum··on Unicode (1889)
"Marriage takes place on Tuesday" --> Nausea

And given how my wife cooks, there'll be plenty of nausea on Wednesday too!

straightens tie with clenched teeth, eyes darting around for audience approval

ChristopherDrum··on Xemu: Original Xbox Emulator
Is there some way to set to an alarm to let me know when Steel Battalion becomes playable?
ChristopherDrum··on Ask HN: What are you passionate about at the moment?
This is precisely what I was saying to my friend the other day. Their knowledge of the planet is hyper-specific in some ways, but they also seem to acknowledge that they don't understand the planet. One person says, "This place is like a puzzle." but it seems like a puzzle they've solved, if they know that taking the tiny skull from a worm and rolling it in a leaf will make a whistle that summons a bird that won't hurt them.

Yet, on the other hand, they seem mystified by things like which plants are edible, or the yellow fungus on the computer circuits, or the intelligent mind-power beasts. Stuff that should be top-level knowledge, I'd think? So do they understand the planet or not? Clearly a lot is known about the esoteric workings of the planet, but weirdly the BASICS of the place are a total mystery to them.

And yeah, the biology of the planet is both supremely alien yet also amazingly perfectly suited to incredibly specific use cases: this creature doubles as a gas mask, this other one is a personal flying machine with handlebars, reach inside this one and it'll inflate into a personal balloon guaranteed to hold your weight.

If I turn off that part of my brain, I enjoy letting myself get caught up in the "LOST"-ish mysterybox-ness of it (LOST, in space!).

ChristopherDrum··on CatalaLang/catala: Programming language for law specification
This paper definitely has thoughts on the matter https://law.mit.edu/pub/interpretingtherulesofcode/release/4

"As the Rules as Code movement gains momentum, questions are starting to be asked about the performance and practical effects of expressing law computationally. This article examines the strengths, weaknesses, and new opportunities of engaging with these emerging systems."

The Future of Coding podcast covered it recently https://futureofcoding.org/episodes/065

The abstract says, "Software code is built on rules. The way it enforces them is analogous in certain ways to the philosophical notion of legalism, under which citizens are expected to follow legal rules without thinking too hard about their meaning or consequences. By analogy, the opacity, immutability, immediacy, pervasiveness, private production, and ‘ruleishness’ of code amplify its ‘legalistic’ nature far beyond what could ever be imposed in the legal domain, however, raising significant questions about its legitimacy as a regulator."

It's a complex paper/topic that I personally need more time to grasp before throwing my opinions around too heavily. But my first, knee-jerk reaction so far is that moving laws into code is a bad idea. Specifically, as the paper says, "...code by its very nature tends toward a kind of strong legalism. This is the case regardless of the intent of the programmer, however vicious or virtuous that may be."

The "strong legalism" inherent in code means "the sovereign’s exercise of power is de facto legitimate, and thus not open to question." Not to be reductive, but that ain't good.

I feel we've seen evidence of this path already, with (easily refuted, but somewhat common) claims like "data can't be biased" (for example). The tendency to blindly follow a computer's dictate with, "Well, the computer says this is so, so it must be so." is strong in our society at times, I think.

ChristopherDrum··on Why Does Flying Suck So Much? – Robert Reich [video]
Behind the Bastards did 2 episodes on this very topic. Blame Frank Lorenzo! https://www.iheart.com/podcast/105-behind-the-bastards-29236...
ChristopherDrum··on Learn COBOL in a day
IBM also has a free course in COBOL, for what it's worth. (which, judging from the plethora of COBOL jobs here in Japan, might actually be worth more than zero) https://www.ibm.com/training/course/learning-cobol-programmi...
ChristopherDrum··on MacPaint and QuickDraw 1984 source code (2010)
Maybe read a little bit about the man first.

Atkinson invented double-clicking, the selection lasso, MacPaint, QuickDraw, and HyperCard. When Steve Jobs was asked how many man-years QuickDraw took to develop, he asked Atkinson how long it took him. Atkinson said, "four years" so Jobs responded to the reporter, "Twenty-four man-years." Yes, Jobs was a hype machine for the Mac team, but he (and everyone around him) also knew that one Atkinson year was the equivalent of six typical developer years.

https://www.folklore.org/StoryView.py?project=Macintosh&stor...

ChristopherDrum··on Notes on Vision Pro
From Apple's visionOS page, re: Accessibility (https://developer.apple.com/visionos/)

"And for people who prefer a different way to navigate content, Pointer Control lets them select their index finger, wrist, or head as an alternative pointer."

This reads to me like they've got you covered (at least in principle).

ChristopherDrum··on Lua: The Little Language That Could
Pico-8 fantasy console uses Lua (a subset of; with Pico-8-specific console APIs). I keep going back to it in my personal projects time and again. I always think, "OK, I'm going to build the next thing in C" and wind up falling back to Pico-8 and Lua.

The in-the-works Picotron will grow from Pico-8's roots and present a full fantasy computer, with an OS, windowing system, etc. and expands Lua support to the full v5.4 language.

ChristopherDrum··on Ask HN: What does your WFH day/routine look like?
Yeah, I'd say even within my current company I'm a bit of an outlier. I'll be looking for a new job in the semi-near future and these meeting-free glory days will likely come to an end.
ChristopherDrum··on Ask HN: Tools you have built for yourself?
No, mine's quite brain-dead. I'm sure yours does a better job on specific file types, and I'm sure there's stuff I'm not getting, now that I think about it. But I've downloaded the images (for example) that I uploaded post-nuke and didn't see any obvious references to me or my organization. A more robust nuker might make for a nice project in my coming off-time (post layoff).
ChristopherDrum··on Ask HN: What does your WFH day/routine look like?
Married, no children

5:55am - Wake up and have a light breakfast

6:30am - Start the work day

11:30ish - Lunch

3:30pm - Finish work day; I cannot stress how great it is to start and end the work day early (I have to work during 3 "core hours" but my schedule is flexible beyond that). It is like I have my entire day left ahead of me to enjoy.

3:30pm - Take a walk; this is a somewhat new addition to the schedule and has become quite critical. It dawned on my how important my daily walk to-from work was to my health and how I had lost that, so I reinstated walking into the routine.

4:00pm - Finish up house chores (folding laundry, vacuuming, etc)

4:30pm - Play games for while to flush the day's work from my mind, then work on personal projects, before my wife gets home. If need be, I do external chores (grocery shopping, for example)

Exercise every other day in the evening.

Someone asked about meetings, and to tell the truth I tend to have shockingly few meetings. Big group meetings (all staff, all engineers, all team) are relatively rare. Beyond those, I have almost nothing. For example, this week I have one (1) 30-minute meeting. Next week I have three (3) meetings, totaling four (4) hours.

ChristopherDrum··on Ask HN: Tools you have built for yourself?
Back in my Applescript days I wrote a number of small apps to remove various repetitive burdens (most have been lost to the ages), then carried on to Objective-C and shell scripting.

• "BatchPrint" : Standalone Applescript app with GUI front-end; allowed a designer to perform a query-based batch print of InDesign files. For example, "print all color ads running in tomorrow's New York Post to the 4th floor large-format inkjet"

• "GridMaker" : Applescript for InDesign; had a little bit of business logic in it to take an image frame in InDesign and split into a grid, following certain layout restrictions (specific gutter width, tag the boxes with metadata for FileMakerPro integration reasons, etc)

• "Filewrangler" : a publicly released Objective-C app for the Mac from before the launch of the Mac App Store (though it was on the store day one); batch file renaming using a custom visual filename "builder". Horizontal blocks in a chain combined to form a template for the new file name pattern, where each block represents one discrete chunk of text. Some 15 years later I still get email about it, asking if it will ever be updated for modern systems (no, it won't).

• The real workhorse tool, still in daily production use by my employer, is a shell script that turns Xcode Server into a lightweight CI system. It monitors for Github activity and creates and destroys XCServer bots as needed. With multiple servers, each can be assigned an "ID" which effectively allows them to load-balance. Only one bug report in 6 years. Alas, Xcode Server has been deprecated so we're migrating to CircleCI, which makes sense given the growth of the company.

• "Nuke the Metadata" : simple little shell script to run on files before posting them to public forums

• Various little shell and CMD scripts for Mac and Windows to do git checkout/prune trees/update submodules/etc all in one shot; return a project folder to pristine after running builds (for example)

ChristopherDrum··on Ask HN: Anyone doing some absurd stuff after getting laid off?
My last day is scheduled for around March 31 (I have vacation I can use between then and now). I'm currently thinking about what I want to do with my time off. I will have the luxury of being able to do NOTHING, if I so choose, for a while. I live in Japan, so I will first have paperwork to do (switch visa status, get health insurance squared away, etc)

For the cool stuff, I'm thinking of picking a project/skill each week and devoting a full week to that, to see if I enjoy it and can get any mental traction. Becoming more proficient with pure C has been a lot of fun, so I'll definitely push forward on that. I have a couple of Pico-8 projects to work on. There's any number of opaque or classical technologies that I'd like to understand more deeply. I'll enter a game-jam, just to keep myself on a proper schedule with a proper deadline. There are a lot of books I want to read.

At some point though I'll need to collect my thoughts and start looking for the next thing. I have recruiters already knocking on my door, and the company will pay for 6 months of job agency assistance. But to tell the truth, I just can't see myself jumping back into software engineering as a full-time career so I don't yet know how best to utilize these resources. Sorting myself out is a critical goal for the coming months.

"What do I want to be when I grow up?" is almost as difficult to answer at 51 as it was at 18.

ChristopherDrum··on Ask HN: What are you working on this year?
Thank you, and congratulations on your own published novel. I'm happy to hear a success story!
← PreviousPage 4 of 5Next →