<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: msarnoff</title><link>https://news.ycombinator.com/user?id=msarnoff</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 30 May 2026 20:57:36 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=msarnoff" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by msarnoff in "Bournegol??? (2014)"]]></title><description><![CDATA[
<p>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.</p>
]]></description><pubDate>Thu, 21 May 2026 20:23:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48228410</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=48228410</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48228410</guid></item><item><title><![CDATA[New comment by msarnoff in "What Is BusyBox?"]]></title><description><![CDATA[
<p>Busybox is where I learned the multi-call technique of using argv[0] to simulate multiple commands in a single binary.<p>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.<p>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.</p>
]]></description><pubDate>Wed, 13 May 2026 15:37:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48123331</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=48123331</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48123331</guid></item><item><title><![CDATA[New comment by msarnoff in "Building a Memory Allocator from Scratch in C"]]></title><description><![CDATA[
<p>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.<p>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.<p>Learned a lesson about easily it is to game a benchmark :)</p>
]]></description><pubDate>Mon, 11 May 2026 19:17:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48099422</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=48099422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48099422</guid></item><item><title><![CDATA[New comment by msarnoff in "Brain scans reveal 3 ADHD subtypes"]]></title><description><![CDATA[
<p>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.<p>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.<p>Guanfacine has helped though. Tried a bunch of medications and this is the only one that seems to have made an impact.</p>
]]></description><pubDate>Sun, 03 May 2026 20:04:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48000828</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=48000828</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48000828</guid></item><item><title><![CDATA[New comment by msarnoff in "Death to Scroll Fade"]]></title><description><![CDATA[
<p>Originally read the URL as “D-Bus Hell dot com” and was like… yup.</p>
]]></description><pubDate>Wed, 18 Mar 2026 16:55:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47428173</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=47428173</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47428173</guid></item><item><title><![CDATA[New comment by msarnoff in "Four Column ASCII (2017)"]]></title><description><![CDATA[
<p>On early bit-paired keyboards with parallel 7-bit outputs, possibly going back to mechanical teletypes, I think holding Control literally tied the upper two bits to zero. (citation needed)<p>Also explains why there is no difference between Ctrl-x and Ctrl-Shift-x.</p>
]]></description><pubDate>Tue, 17 Feb 2026 08:48:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47045155</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=47045155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47045155</guid></item><item><title><![CDATA[New comment by msarnoff in "Unseen Footage of Atari Battlezone Arcade Cabinet Production"]]></title><description><![CDATA[
<p>Retro Game Mechanics Explained has a video about how the Asteroids vector generator worked and was coded for:<p><a href="https://youtu.be/smStEPSRKBs?si=k_0u3NKCxCqZBc6w" rel="nofollow">https://youtu.be/smStEPSRKBs?si=k_0u3NKCxCqZBc6w</a><p>Battlezone and later 3D games used different circuitry that generated vectors with analog circuitry and used a “math box” coprocessor based on Am2901 bit slice ALUs to help with the 3D math.</p>
]]></description><pubDate>Sat, 07 Feb 2026 23:27:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46929427</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=46929427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46929427</guid></item><item><title><![CDATA[New comment by msarnoff in "Going for Gold: The Story of the Golden Lego RCX and NXT"]]></title><description><![CDATA[
<p>The ancestor of the RCX was the "programmable brick" project out of the MIT Media Lab in the mid-1990s<p><a href="http://archive.pbrick.info/The%20MIT%20Programmable%20Brick%20Project.htm" rel="nofollow">http://archive.pbrick.info/The%20MIT%20Programmable%20Brick%...</a><p><a href="https://web.archive.org/web/20011212030110/http://fredm.www.media.mit.edu/people/fredm/projects/ri/" rel="nofollow">https://web.archive.org/web/20011212030110/http://fredm.www....</a><p>Growing up in New England at the time, I was very lucky that they ran a pilot project at my elementary school. We programmed our "sketches" (though we didn't use this term) in LogoWriter on Mac LC IIs and flashed them using a weird dongle that connected to the brick via RJ11 cable.<p>I owe a lot to my teachers and Fred Martin's group. I don't think I'd be a developer today without that experience.</p>
]]></description><pubDate>Wed, 14 Jan 2026 00:19:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46610582</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=46610582</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46610582</guid></item><item><title><![CDATA[New comment by msarnoff in "You can't fool the optimizer"]]></title><description><![CDATA[
<p>I was very surprised that GCC could optimize NEON SIMD intrinsics. After spending hours trying to optimize my vector code, trying to get the spacing between register dependencies right to reduce stalls, breaking long reduction operations into intermediate results, messing with LLVM-MCA, etc., I realized that I just couldn’t beat the compiler. It was doing its best to allocate registers and reorder instructions to keep the pipeline filled.<p>I don’t think it always did the best job and saw a bunch of register spills I thought were unnecessary, but I couldn’t justify the time and effort to do it in assembly…</p>
]]></description><pubDate>Wed, 03 Dec 2025 18:50:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46138363</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=46138363</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46138363</guid></item><item><title><![CDATA[New comment by msarnoff in "A vector graphics workstation from the 70s"]]></title><description><![CDATA[
<p>Storage tubes are amazing. I once had a Tektronix 464 scope. Unlike the ubiquitous 465, the 464 was an <i>analog</i> storage oscilloscope! The persistence of the storage tube let you capture pulses, visualize signal jitter, etc. And there was a very satisfying erase button that cleared the tube with the characteristic green flash.<p>You could also just mess with the horizontal/vertical position knobs and use it as a very expensive Etch-a-Sketch.</p>
]]></description><pubDate>Mon, 01 Dec 2025 18:42:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46111225</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=46111225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46111225</guid></item><item><title><![CDATA[New comment by msarnoff in "Fran Sans – font inspired by San Francisco light rail displays"]]></title><description><![CDATA[
<p>When I was last at Penn Station in the 2010s their departure board was a mosaic LCD like the article, not a split-flap display:<p><a href="https://upload.wikimedia.org/wikipedia/commons/b/bd/Penn_Station_departure_board.jpg" rel="nofollow">https://upload.wikimedia.org/wikipedia/commons/b/bd/Penn_Sta...</a><p>I do miss the split flap displays at the Boston and Providence Amtrak stations though…</p>
]]></description><pubDate>Sun, 23 Nov 2025 22:17:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46027897</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=46027897</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46027897</guid></item><item><title><![CDATA[New comment by msarnoff in "Fran Sans – font inspired by San Francisco light rail displays"]]></title><description><![CDATA[
<p>I have seen these throughout the US and Europe and been fascinated by them. Penn Station has (had? been a while) a big one with more segments per character. I’ve been trying forever to find the name of this particular style of segmented displays and get more info on them. The closest I could find is “mosaic display.”<p>Love this article!<p>Signed,
someone who has an obsession with segmented displays</p>
]]></description><pubDate>Sun, 23 Nov 2025 21:28:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46027500</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=46027500</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46027500</guid></item><item><title><![CDATA[New comment by msarnoff in "Runit Linux: Complete Guide to Unix Init Scheme with Service Supervision"]]></title><description><![CDATA[
<p>I've done small embedded Linux systems and it makes me so happy that there is a (mostly) compatible implementation built into busybox. svlogd's rotation and size capping makes it great when using limited-lifespan nonvolatile storage like eMMC.</p>
]]></description><pubDate>Mon, 17 Nov 2025 08:48:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45951908</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=45951908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45951908</guid></item><item><title><![CDATA[New comment by msarnoff in "Show HN: I built an 8-bit CPU simulator in Python from scratch"]]></title><description><![CDATA[
<p>Instruction set looks very similar to the AVR, which is one of my favorites. Very cool!</p>
]]></description><pubDate>Fri, 24 Oct 2025 14:17:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45694919</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=45694919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45694919</guid></item><item><title><![CDATA[New comment by msarnoff in "Electromechanical Calculating Machines from the 1960's"]]></title><description><![CDATA[
<p>I acquired a nonfunctional Diehl VSR a while back, naïvely thinking I could bring it back to life.<p>Oh my goodness, I took the cover off and what I saw was jaw-dropping. Thousands, possibly tens of thousands, of the most densely packed metal levers and cams and gears one could ever imagine. Nearly all of which would have needed cleaning and lubrication. Getting this thing fully working could have taken a year or more, especially with no repair manuals, and all available information in German.<p>The respect I have for the designers of these machines, and the servicepeople who repaired them, is immeasurable.<p>They are also electrical death traps. Lots of exposed switch contacts carrying mains voltage.</p>
]]></description><pubDate>Sun, 28 Sep 2025 15:06:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45404879</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=45404879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45404879</guid></item><item><title><![CDATA[New comment by msarnoff in "Unified Line and Paragraph Detection by Graph Convolutional Networks (2022)"]]></title><description><![CDATA[
<p>I was there when we added it to Preview ;) I think Nils wrote the code to hook it up, because he also worked on the loupe and how it would automatically lock onto the bounding box of a line.</p>
]]></description><pubDate>Mon, 22 Sep 2025 08:17:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45330497</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=45330497</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45330497</guid></item><item><title><![CDATA[New comment by msarnoff in "Ultrathin business card runs a fluid simulation"]]></title><description><![CDATA[
<p>Surprise no one's mentioned yet that the firmware is written in Rust. As someone who's struggled with getting started with embedded Rust (the landscape seems to be changing quite a lot?) it looks like a good example.<p>Also it's a bit startling to see floating-point code used so freely. Shows how rapidly the capabilities of MCUs have developed. 15 years ago, doing floating point on a microcontroller would be unspeakable /s</p>
]]></description><pubDate>Fri, 08 Aug 2025 17:42:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44839665</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=44839665</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44839665</guid></item><item><title><![CDATA[New comment by msarnoff in "CoCo1 composite video"]]></title><description><![CDATA[
<p>Did this recently for my CoCo 2. Used a mashup of several composite mods floating around (including this one) and built it on a piece of stripboard that fit in the same footprint as the RF modulator. Sourcing the MC1372 was tricky, but NTE makes a replacement, NTE855. I used a 3.5mm TRS jack for the audio/video output so I didn’t have to drill a second hole in the case, and then all you need is a cheap 3.5mm stereo to RCA cable.<p>Wish I had a schematic but I kinda just wired it freehand.</p>
]]></description><pubDate>Sat, 19 Jul 2025 01:04:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=44611586</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=44611586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44611586</guid></item><item><title><![CDATA[New comment by msarnoff in "Congratulations on creating the one billionth repository on GitHub"]]></title><description><![CDATA[
<p>#SnakesOnARadar</p>
]]></description><pubDate>Thu, 12 Jun 2025 02:34:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=44253808</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=44253808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44253808</guid></item><item><title><![CDATA[New comment by msarnoff in "Hacking Pinball High Scores"]]></title><description><![CDATA[
<p>Assuming you have physical access to the inside of the machine…<p>Most all machines from the 80s and 90s (Williams/Bally/Gottlieb) store their high scores and adjustments in an SRAM like a 5101 with a battery backup. They are stored in binary-coded decimal and protected by a checksum.<p>If you could tap into the bus (possibly while the CPU is halted or by removing it) you could modify its contents.<p>A common aftermarket mod is to remove the backup battery (they like to corrode) and replace the CMOS RAM with a nonvolatile FeRAM. In that case, just pop it into a programmer like a TL866 and program a new image with your desired high scores.<p>I’ve considered doing this… I wish my 1.2 billion on my Getaway hadn’t been wiped out…</p>
]]></description><pubDate>Sun, 01 Jun 2025 16:59:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=44152246</link><dc:creator>msarnoff</dc:creator><comments>https://news.ycombinator.com/item?id=44152246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44152246</guid></item></channel></rss>