Orange dot-matrix gas plasma displays were used on pinball machines for over 2 decades before the manufacturers switched to colour LCD screens. Now instead of clever pixel art and high legibility we have cheesy CGI and so much information on screen that I have no idea what to shoot for…
Star Trek: TNG uses one of those displays to great effect. Interactive mini-games, great 1-bit graphics, really clear instructions and directives. It makes for a great game.
LCSI LogoWriter for 68k Macs[0] was my shit. It was my first[1] introduction to programming in elementary school and I spent hours trying to make games with it. There were 4 turtles and you could treat them like sprites; you give them custom shapes and colours, and there were basic collision detection primitives. You could also check for collisions with the background by querying the colour under a turtle. You could play and record your own sounds... spent so much time with that little round Apple microphone[2] recording goofy sound effects.
Every time I see my article reposted, I get nostalgic for the 30” Apple Cinema Display I used in the photos. Maybe the best monitor of all time… the thing was MASSIVE and was peak Apple design perfection. I kept it until 2016-ish, and by then the backlight was giving out, and the ecosystem had moved on from DVI and Mini DisplayPort. Your subpixels are sadly missed. ;-(
I didn’t actually know about the Casio 14-A until now. I almost thought the picture was AI-generated. Four functions squeezed into that compact desktop unit in 1957? Impossible with the technology of the time…
The Casio 14-A was indeed the world’s first all-electric desk calculator. But by “desk calculator,” they literally mean “a desk that is a calculator.” The display/keyboard pictured was literally attached to a desk filled with hundreds of relays and weighed 140 kg. [0]
The “all-electric” claim is interesting. There had been scores of electric calculators for decades (Friden, Marchant, etc.) but were merely driven by an electric motor. The calculations were still performed by gears and cams and linkages.
For the old mechanical machines (whether powered by a crank or powered by an electric motor) yes, the term "adding machine" was because, for most, all they could do is add:
"Subtraction was impossible, except by adding the complement of a number (for instance, subtract 2.50 by adding 9,997.50)."
A few fancier ones could multiply, but they would do so by repeating an addition some number of repetitions. Nearly all output their results on a paper tape much like "store receipts" today, only printed in ink instead of via thermal transfer paper.
You’re not wrong. They work very similar to binary arithmetic: basically the only operations they can do is increment, decrement, and shift left/right (but by 10)
But multiplication is just repeated addition, and division is just repeated subtraction. Some of the highest-end units could do square roots! Check out CuriousMarc’s videos.
I met Steve Bourne a while back and asked him why he chose to write sh with all those ALGOL-like macros. His answer was terse—he just wanted to use the syntax he was most familiar with.
Busybox is where I learned the multi-call technique of using argv[0] to simulate multiple commands in a single binary.
It works great for Rust binaries, which can get quite large. I had to rewrite some Python utilities (software updater, Wi-Fi network config, etc.) for a very constrained embedded system (64MB RAM) that couldn’t handle Python. So I built them all in a single multi-call binary. I believe `clap` has built-in support for it.
Also, Busybox has a lot of stuff built in that you’d never think of. It has a little vi built in. It has the full suite of ‘runit’ process supervisor utilities. And plenty more. It has a Kconfig system (like the kernel) where you can tune exactly which utilities you need and what features you need. Don’t need full output in ps? Turn it off. Don’t need tab completion? Pretty sure you can turn that off too. Always typing ‘dc’ instead of ‘cd’? Just don’t include dc.
This was a class assignment in the 15-213 class at Carnegie Mellon. The staff had set up a test suite and an online leaderboard to rank the speed of each student's malloc implementation.
I figured out that the test cases allocated a disproportionate amount of X-byte blocks. I was able to get to the top by hardcoding a specific freelist just for X-byte blocks.
Learned a lesson about easily it is to game a benchmark :)
This is a useful lesson! Tuning an allocator for a single application reduces to optimizing for that application’s empirical allocation patterns (sizes, lifetimes, access, usage).
I think this is me. I was diagnosed with “regular” ADHD a few years ago, but I’ve had issues with rejection sensitive dysphoria my whole life. As a kid I would have a lot of meltdowns when I couldn’t get something right on the first try or made any kind of mistake.
The meltdowns stopped, but I still have issues spiralling into thoughts of failure and being a horrible person when I feel like I’ve disappointed family or friends.
Guanfacine has helped though. Tried a bunch of medications and this is the only one that seems to have made an impact.
Hey, you've basically described me to a tee as a boy. I had the exact same temperament: meltdowns when I thought I disappointed people, putting myself down all the time for failures and mistakes. My parents weren't even particularly strict.
Might be worth giving Qelbree a shot as well. I switched to it last year and...yeah, it' was a complete game changer. Hard to get insurance to cover, but it's been well worth it.