I've also built a visualizer into ClickHouse, so we can analyze its binary: https://play.clickhouse.com/binary?user=binary - which code takes more space, what dependencies are too big, or what template instantiations are bloated.
I made my own binary visualizer when I was learning C. I had a for-loop which generated a texture by just setting the pixels based on the bytes in the file.
I had two modes, monochrome (the bits) and grayscale (the bytes).
Anyway funny thing happened, I had a buffer overflow and my program ended up visualizing its own memory.
Actually I had the same error another time, I was trying to make a simple Terraria clone (like 2D Minecraft) and the terrain ended up rendering my mouse coordinates interpreted as booleans or something.
This brings back memories! In 93 I wrote something similar (simpler) for MSDOS, to inspect and extract pieces of binary files, GFV (still downloadable from the Hornet archive somewhere in here https://www.hornet.org/cgi-bin/ha_search.cgi?opt_s=5:Iguana). You could set the stride and show 1/n bytes, so it was relatively easy to find textures from game files and memory dumps of running games.
Pretty neat. It tangentially reminds me of when we used to be able to hear HDDs clatter away, or waaaaay back when we used be able to hear EM interference from whatever was going on in a computer.
There was an episode of Cowboy Bebop, where a mechanic held a wrench against an engine cowling to see how much it vibrated (likely a real thing people do with real engines?) and, of course, the computer sounds in the Enterprise-D, along with blinkenlights.
All this seems like the same kind of "translate data into a form humans can perceive." I'm not sure what immediate value this utility has, but I like it.
I forget where I read this (maybe PG's blog?) but I read some early 2000s startup had some kind of mechanical device that responded to website visitors, so everyone in the office could hear the traffic in realtime.
I also heard stories of professors who would know a program had a bug based on the sounds the computer was making. (Back when they were slightly slower!)
The wrench thing is real. My approach to a DIY mechanic’s stethoscope is to stick the handle of a screwdriver against my ear and the tip on whatever I want to listen to. Great for figuring out what part of the machine a noise is coming from.
Binvis has different color modes. One of them shows entropy. Compressed or encrypted data shows as very bright in the entropy mode, and repetitive data as dark.
I had two modes, monochrome (the bits) and grayscale (the bytes).
Anyway funny thing happened, I had a buffer overflow and my program ended up visualizing its own memory.
Actually I had the same error another time, I was trying to make a simple Terraria clone (like 2D Minecraft) and the terrain ended up rendering my mouse coordinates interpreted as booleans or something.
C is fun!
There was an episode of Cowboy Bebop, where a mechanic held a wrench against an engine cowling to see how much it vibrated (likely a real thing people do with real engines?) and, of course, the computer sounds in the Enterprise-D, along with blinkenlights.
All this seems like the same kind of "translate data into a form humans can perceive." I'm not sure what immediate value this utility has, but I like it.
I also heard stories of professors who would know a program had a bug based on the sounds the computer was making. (Back when they were slightly slower!)