Saturday update: family afternoon
2005-04-16 06:48 pmEvery once in a while it's nice to spend an afternoon at home with the family. After coming back from the open house at the Younger Daughter's middle school (and grumping at her a little for not keeping up with her homework) we sat down and watched The Incredibles, which has been on top of my list since it came out. Good movie. What I really enjoyed, though, was how much it sounded like our family. Some of the bits were absolutely dead on.
Ever since getting my new LCD monitor I've been considering getting a keyboard drawer. But $25 or so seemed like a lot, especially considering that I wasn't sure it would fit and didn't know whether I'd actually want the monitor that high. So I went out to the garage after the movie and tracked down my old wooden monitor stand (which I built for the old Z80 system I threw together twenty-odd years ago). Actually wasn't hard to find, since I'd been using it as a workbench extender. Had to move the "legs" from underneath to outside to accommodate the current keyboard (IBM model M); quick work with the new 18v drill. I might keep it. It's a nice surface, but the monitor ends up a little high.
Finally, in response to an OT post on Groklaw, I did a little more thinking about
What caught my eye about
Linus' addition to this was to represent a directory as a simple list of filenames, content hashs, and permissions, and throw these into the archive as well. Similarly a change set is simply a file that lists an original and current directory tree, the previous (parent) changeset, author, and comments. Simple. Brilliant. And since it's all based on secure hashes, you get integrity for free. The other clever thing is to archive compressed, whole files, rather than a chain of differences the way most existing VC systems do. This makes it blazingly fast (disk space is considered to be cheap enough not to be a factor, and code compresses well in any case).
(Side-note on secure hashes: the idea is to squash down a file full of data into a single number, typically 120 (MD5) or 160 (SHA-1) bits, that's certain to be wildly, unrecognizably different if even a single byte of the content is changed. Yes, it's possible for two different files to have the same hash, but it's so extremely unlikely that it makes breaking the bank at the roulette table in Los Vegas look like it happens every day. (It was recently shown that it is possible, using huge amounts of compute power, to construct pairs of files that have the same hash. But you have to construct both files at once, and they're both so weird that it's still highly unlikely that two text files will collide.)
Anyway, git is very promising, and it's close to be useful to some of the things I and other members of my group are working on.
In other news, I'm done with the taxes, so now I can start the even more tedious process of packing up all the year's receipts and forms and hauling the box to the attic. Then I get to go back to cleaning up the office.
Ever since getting my new LCD monitor I've been considering getting a keyboard drawer. But $25 or so seemed like a lot, especially considering that I wasn't sure it would fit and didn't know whether I'd actually want the monitor that high. So I went out to the garage after the movie and tracked down my old wooden monitor stand (which I built for the old Z80 system I threw together twenty-odd years ago). Actually wasn't hard to find, since I'd been using it as a workbench extender. Had to move the "legs" from underneath to outside to accommodate the current keyboard (IBM model M); quick work with the new 18v drill. I might keep it. It's a nice surface, but the monitor ends up a little high.
Finally, in response to an OT post on Groklaw, I did a little more thinking about
git, Linus's new start at a version-control system. The remarkable thing is that it's evolved from a brilliantly simple hack for archiving changes to directory trees, to something that's useable (if rather clumsy) for version control, in only a little over a week. Really a remarkable example of what the hacker community can accomplish.What caught my eye about
git in the first place was the fact that it was using an old but insufficiently-well-known technique that one of my coworkers was also using, namely identifying files by the SHA-1 hash of their content. The nice thing about this is that no matter how a file gets moved around, copied, and hacked up, you can always identify a particular version. You can even tell when two different versions of it get merged into one.Linus' addition to this was to represent a directory as a simple list of filenames, content hashs, and permissions, and throw these into the archive as well. Similarly a change set is simply a file that lists an original and current directory tree, the previous (parent) changeset, author, and comments. Simple. Brilliant. And since it's all based on secure hashes, you get integrity for free. The other clever thing is to archive compressed, whole files, rather than a chain of differences the way most existing VC systems do. This makes it blazingly fast (disk space is considered to be cheap enough not to be a factor, and code compresses well in any case).
(Side-note on secure hashes: the idea is to squash down a file full of data into a single number, typically 120 (MD5) or 160 (SHA-1) bits, that's certain to be wildly, unrecognizably different if even a single byte of the content is changed. Yes, it's possible for two different files to have the same hash, but it's so extremely unlikely that it makes breaking the bank at the roulette table in Los Vegas look like it happens every day. (It was recently shown that it is possible, using huge amounts of compute power, to construct pairs of files that have the same hash. But you have to construct both files at once, and they're both so weird that it's still highly unlikely that two text files will collide.)
Anyway, git is very promising, and it's close to be useful to some of the things I and other members of my group are working on.
In other news, I'm done with the taxes, so now I can start the even more tedious process of packing up all the year's receipts and forms and hauling the box to the attic. Then I get to go back to cleaning up the office.
no subject
Date: 2005-04-17 03:53 am (UTC)If it were more developed (cross-platform and a released version, for a start)... maybe I could get away with convincing my co-workers that it would be a good idea.
As it is, I may not be able to convince them that Subversion is a good idea - we may be stuck with CVS. (Mainly because BitKeeper doesn't have an existing importer for SVN, even though importers are demonstrably easy to write - someone in Firmware already wrote one for PVCS - and they're still claiming that we're gonna get BK "someday").
no subject
Date: 2005-04-17 05:36 am (UTC)People already have enough opinions on who the software supervillains are, so I don't need to start on that.
no subject
Date: 2005-04-17 08:07 am (UTC)The really interesting thing about git is the way it layers history-tracking on top of a content-addressible filesystem.
no subject
Date: 2005-04-17 08:10 am (UTC)