andrewf

Joined 19 years ago

Karma
2,287
Submissions
800
Member since
Aug 1
{firstname}@sullust.net (checked every week or two) github.com/andrewffff
View on Hacker News

Recent submissions

Comment · 2 months ago
I've a retrocomputing project which has been gathering dust since before I used an LLM. The idea is to render an isometric view with Quake-style lightmaps; if scrolling is slow enough I only need to render a small slice of the screen each time. I got as far as a proof of concept on a simulated 286 which indicates the pixels-per-second I can achieve is fast enough. Testing on a real 286 would be the next step.

All the assembly code, and the C harness which loads the textures etc, was hand done by me, and period correct. That's where the fun is!

Outside of that, there are so many anachronisms. I actually built the test geometry as a quake map, and processed it using Quake's BSP/lightmap tools. That's 1996 vintage.. except I'm using a newer Quake editor (Trenchbroom, 2013) and modern forks of the tools. All natively on a modern system with a 4K monitor. Building and non-performance testing of the DOS code happens in a Windows XP (2001) VirtualBox (2007) using its' Shared Folder feature.

I might have time to pick this up again soon. My post-processing of the Quake .bsp presently only handles axis-aligned 64x64 surfaces with some hardcoded texturing assumptions. I'll want a full .bsp-to-isometric-data "renderer" - either written from scratch or somehow derived from Quake's source. But this is all just to enable the 286 assembly code noodling, which is what I want to spend time on!

So I'll probably use Claude to assist with the tooling side. By "assist" I mean "do as much as possible to produce the file format I specify". It doesn't seem much worse to me than all the other modernisms I'm already relying on outside of the core task.

Comment · 2 months ago
I knew very little of this. I know about the Inns of Court, but I didn't know this was such an Inn; I know what a chancery court is (Delaware has them!) but similarly not that it applied in this case. I've no idea what Michaelmas is, but like Christmas, I assume it's an event and/or season which occurs periodically.

I could still read the text! And it's useful to read texts and understand 95%, or 80%, or even 50%! IMO "fully understand what you're reading" versus "can't understand what you're reading" is a harmfully discouraging dichotomy. You can often gloss over such things rather than struggle with them.

Comment · 3 months ago
It strikes me as like setting up an IDE. People have preferences, switching is possible, but there are advantages to saying "we are a Visual Studio + Resharper shop" or "everyone uses IntelliJ to work on this project".
Comment · 4 months ago
Comment · 4 months ago
https://nand2mario.github.io/posts/2026/z386/#testing gets into this sort of thing a bit more.
Comment · 4 months ago
Comment · 5 months ago
Browser behavior like mixed content warnings (and a clear slide towards discouraging all non-HTTPS traffic) was the impetus for us at Twitch to TLS all our video in the mid-2010s. Mixed content delivery on a website would, I think, also fall below the bar for doing certain kinds of commerce, and ejecting people from your webapp to a separate payment flow discourages spending.
Comment · 5 months ago
The author's answer as of 2021: https://news.ycombinator.com/item?id=28586767

EDIT: I recall reading that the Netflix client can continuously select between multiple content caches. I'm guessing they do this because it's a quality-of-service and capacity win over making a "best guess" at the start of a session, and sticking with it. It should also enable transparent recovery from a broken or slow cache node. If you test in a busy place with multiple caches, the loss of one needn't be a big deal.

Comment · 5 months ago
I wonder if anyone ever tried to make the Clipper 5 pre-processor spit out Delphi..
Comment · 5 months ago
> Bizarrely, to protect dBase, there was no compatible Turbo C++ objects integration in dBase (you could import OBJ files from Microsoft C++). There was no way to natively use dBase from Turbo C++ or TurboPascal.

I'm guessing dBase was itself built using Microsoft's compilers, so pulling in other code from the same compiler was plausible. Not a product choice re: the Turbo compilers, just a disjoint path dependency between two acquired product lines (Ashton-Tate's dBase, and Wizard C).

This is the reason that Clipper, a third-party dBase compiler, could only link against .OBJs from particular versions of Microsoft C. Clipper compiles to p-code whose interpreter is implemented in Microsoft C; "linking" a Clipper program is actually linking a Microsoft C program with a static array comprising the Clipper compiler's output. So you can mix in a .OBJ expecting that version of the Microsoft C runtime library. Not a .OBJ expecting the Turbo C++ runtime library.

Comment · 6 months ago
I find the constant use of punchy style tiring.

Sometimes a "punch in the face" is useful. Makes you re-evaluate things. Being punched in the face all day, every day, is just tiring.

Comment · 6 months ago
OS/2 1.0 and the first edition of the CUA were both released in December 1987 according to Wikipedia; Raymond's story isn't dated but could've happened before this. (If I had to make a wild guess, I could imagine this request was a side effect of some internal IBM battle about what the CUA should dictate).
Comment · 6 months ago
Comment · 6 months ago
Some keyboard enthusiasts obtain lighter keypresses by adding weight to the underside of the keys.
Comment · 6 months ago
Then you'll love https://onlinelibrary.wiley.com/doi/full/10.1111/jpc.14309

"Six paediatric health-care professionals were recruited to swallow a Lego head."

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton