Archive for July, 2007

What’s the password?

Saturday, July 28th, 2007
iPhone Passcode

I had an interesting thought the other day as I set up my iPhone. When setting up my security lockout number I realized that I didn’t actually know what my bank’s pin number was. This is because my bank pin number is a derivative of another number that I know and my hands just do the right thing as it constructs the derivative of my memorized number. I thought about how this might be useful if someone was ever interrogating me through drugs or sleepiness because I honestly don’t know the answer off the top of my head. I would have to sit there and work through the numbers one by one to construct what the pin actually is. It reminds me of the “Gnilleps” card in Cranium where you have to spell a word backwards. It is fairly difficult for me to do because that is contrary to how my brain visualizes and catalogs the word, but if given enough time I can slowly crank it out.

SVK rules

Thursday, July 26th, 2007
c++ file icon

I really have to give props to svk. It really does excel where the svn client stutters (much in the same way that Subversion surpassed cvs). I have been using svk on my client machines for a while now and have found it rather nice and easy to use. There is of course the great benefit of not having to drag those annoying .svn directories around, but little things like being able to ’svk ignore’ my build directories just make it sweeter to work with. That and the fact that it actually works. I tried to ’svn co’ one of my projects on my source/build server and it would always choke at the same place and complain that it “Can’t copy ‘blahblah-base’ to ‘blahblah.tmp.tmp’: No such file or directory”. I tried to re-check it out but it complained that I needed to svn cleanup, but that would fail because of a similar “Can’t copy…” error message. I installed svk and it was able to successfully perform a check out and all is good now. There are of course downsides. Svk seems to have trouble with capitalization differentiation and it also seems to not like spaces in paths (those times I drop back to svn to fix those single instances). Also, much of the goodness of svk comes at the cost of drive space to mirror your repository and having to sync regularly. Despite its rough edges, it is now my source control client of choice and is on the whole a pleasure to work with.

Where have all the differs gone?

Monday, July 23rd, 2007
exec

Every once in a while I find a need for a tool that doesn’t yet exist. Or rather, a tool that doesn’t exist for Mac OS X that does things in the way that I want. My original motivation for writing Language Aid was that I wanted a program that provided Japanese text lookup functionality and I couldn’t find any. The other day I found myself once again craving a tool that I have frequently desired: a binary diff tool. For some reason I can’t find anything that will just do straight-up diffs of binary files. Every differ out there seems to be completely oriented around text. When running /usr/bin/diff on binary files it will just return that the files are indeed different and nothing more. Filemerge will attempt to interpret the files textually and show you what it thinks is different but the output is rarely useful. I recently found myself needing this functionality again and did another quick net survey for the imaginary tool in vain. I decided to whip up my own binary differ real quick (bdiff) and implement just the limited functionality that I currently desire. The thing about binary diffing is that without the assumptions on the meaning of the data (like with textual data) you really have few efficient ways to determine whether data has been changed or whether data has been inserted/deleted. This is quite the quandary and presents a more complicated situation than textual diffing when you present two files that are completely different. In my binary differ I have decided that if the two files have the same length then it chooses a heuristic that assumes that the files are variations of each other and do not have information inserted or deleted. If they aren’t of the same length then it chooses and a more general approach. I might improve it in the future but for now it serves my very simple need to just figure out what exact bytes are different from one file to another.

Cryptographic Timestamping

Sunday, July 15th, 2007
etimestamplogo

A few years ago I had a great idea for a business that I thought had great potential. The idea was cryptographic timestamping. A way to prove that certain documents or other pieces of information existed at a certain point in time. It would be a great way to fight plagiarism, establish disclosure or just prove that a certain document has existed from a specific point in time. It would be a relatively low overhead business, technically. All that you would need to do is to put up a couple of servers that would create/store signatures and maintain payment accounts. Customers themselves would be responsible to keep their documents safe but the service when presented with the document could verify it’s authenticity and the timestamp of its origin. Recently I thought about this idea again and started to look around to see if anybody has done anything similar. It looks like http://www.etimestamp.com has beaten me to the punch by about 8 years. The service looks very similar to what I had envisioned with methods for legal verification of the timestamp and everything. It looks to be a quality service with reasonable prices. I may have to take advantage of it sometime.