02. August 2010

010 Editor: My new favourite tool

010 editor screenshot

During the course of my work, I use a hex editor a lot.

Specifically, I use a hex editor mostly for reverse engineering binary file formats that have no documentation or for fixing corrupted files, and what not. One thing that I've always wanted, was some way to view the binary contents as structured data. Like "Starting at this byte offset, consider the next four bytes to be an integer, and show me that integer, then, using that integer, take that many bytes immediately following it, consider them to be string data, and decode as UTF8 or EBCDIC…" etc.

10. March 2010

The Temptation of Victoria

"Temptation" © ; Factory / Writer(s); Bernard Sumner, Peter Hook, Stephen Morris, Gillian Gilbert

"The Temptation of Victoria" © Michael Shamberg, Recorded; May 2005

13. February 2010

Big Data

When I was a kid (7 years old) I got my first computer. At that time, using a computer meant programming a computer.

My Commodore vic20 didn't have a storage device when I got it (I got a tape drive later on). So, if you turned it off, the in-memory program was gone. You had to type it in again the next time you started up the computer.

Commodore VIC20

23. October 2009

An Infinite Stream Of Bytes

No, I'm not about to wax poetic about the deep ontological issues raised in The Matrix, or speak meaningfully about how transient the modern world of communication is and how the artifacts of our lifetime have become ephemeral such that our posterity will not be able to remember us, even if they wanted to.

Instead I'm going to post a code snippet that solves an annoying little scenario that comes up every now and again when writing parsers.

23. July 2009

Unicode string detection

I had the need to detect wether or not a given string (in .Net/C#) was unicode or not.. Specifically filenames. I had a situation where a filename might be passed to me, that could possibly contain unicode. If it DID contained unicode characters, I needed to run GetShortPathName and get the 8.3 filename for the file, before passing it into a legacy component that couldn't handle unicode names…

unicode scrabble