I have been thinking we should do this for code too. I still haven't had time to execute on this plan, but I think there's probably part of the answer to how to use AI as a tool is how it doesn't automatically give us the same kind of window into what it does. In verbose mode, I've caught things earlier that I wouldn't have caught until later. But even beyond that, it speaks to how we draw lines between code and data and what happens if we erase those lines. What if we applied data vis methods to code? Maybe hierarchical semantic clustering colored by class hierarchy. Not just one floating architecture diagram. But different slices of the codebase.
zX41ZdbW
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.
dejobaan
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.
show comments
andai
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.
C is fun!
Jare
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.
Did the same in 2015s with PHP, was so surprised to find an image inside explorer.exe file. It was an embedded BMP picture which I could see without even a picture viewer tool!
jakiestfu
Not exactly the same but https://runhexed.com allows you to create binary visualizations online
NoItsDanger
I’m waiting for one of these random pixelized images to start pulsing and spit out a glider
cowthulhu
Does the uniformity indicate that the files are space-inefficient, and would benefit from compression?
show comments
bflesch
It looks neat but I have no idea how the clustering works or why uniform colors are assigned to large areas, e.g. the color blue in the pdf example.
I have been thinking we should do this for code too. I still haven't had time to execute on this plan, but I think there's probably part of the answer to how to use AI as a tool is how it doesn't automatically give us the same kind of window into what it does. In verbose mode, I've caught things earlier that I wouldn't have caught until later. But even beyond that, it speaks to how we draw lines between code and data and what happens if we erase those lines. What if we applied data vis methods to code? Maybe hierarchical semantic clustering colored by class hierarchy. Not just one floating architecture diagram. But different slices of the codebase.
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.
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 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.
C is fun!
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.
Discussion from a few days ago that had links to more visualization tools: https://news.ycombinator.com/item?id=49423878
Did the same in 2015s with PHP, was so surprised to find an image inside explorer.exe file. It was an embedded BMP picture which I could see without even a picture viewer tool!
Not exactly the same but https://runhexed.com allows you to create binary visualizations online
I’m waiting for one of these random pixelized images to start pulsing and spit out a glider
Does the uniformity indicate that the files are space-inefficient, and would benefit from compression?
It looks neat but I have no idea how the clustering works or why uniform colors are assigned to large areas, e.g. the color blue in the pdf example.
“You get used to it; I don’t even see the code.
“All I see is blonde, brunette, redhead…”
https://youtu.be/fBDifUjNzbQ?is=7d43YcQZ8PVhFX11