March 21st, 2006


Brackup Status

Work on brackup continues a bit. Didn't get to hack on it hardly at all today, but there are some good docs now. Check out the svn repo.

The Filesystem target works now, and the DigestDatabase works. Haven't yet done Amazon, but Leon (cudddly) did the hard work yesterday, so I just have to plop in Net::Amazon::S3 and I'm good to go.

Last part is serializing the metafile (the finished backup file you need to do a restore). Was going to use YAML, but YAML in Perl sucks, then maybe XML because Net::Amazon::S3 uses LibXML, but XML, really? Bleh. So now I'm leaning towards old-skool RFC-822 format. If it's good enough for Debian, right?

I should've finished tonight. Want to get back to DJabberd.

OpenID and Subversion

Artur, David and I discussed how to make Subversion commits using OpenID authentication work today, without changing the subversion client.

Nutshell: client-side tiny HTTP proxy that does the OpenID protocol. Then transmitted user/pass is URL/signature. (well, signature with unixtime that's close to the server's unixtime, so server can implement, say, 24 hour anti-replay cache)

Result: we can grant people commit just by their URL, without giving them a username/password. And don't have to deal with "But I want to change my password!" crap.

Anybody want to hack it?

eng vs. designers vs. ops vs. biz

.... it's funny to imaigne a service if A) engineers made all the decisions, B) designers made all the decisions, C) ops made all the decisions, D) business made all the decisions

A) hilariously complicated, billions of features
B) no features, like 1 button
C) static html page
D) blinking ads all over that spam you if you look at them

Brackup: call for testers

So, Brackup pretty much works now.

Go snag a copy:

$ svn co brackup

Install any prereqs:

$ sudo apt-get install libdbd-sqlite3-perl gnupg

(gnupg is optional)

Run it to build a config template for you:

$ cd brackup; ./brackup --help
$ $EDITOR ~/.brackup.conf

Then do a backup:

$ ./brackup --from=projects --to=amazon

Except the Brackup::Target::Amazon is kinda broken. It depends on Net::Amazon::S3, which isn't entirely robust yet. (notably the return values on errors for all the operations are weird and inconsistent.... how do I know a key was created successfully?) Also, it seems Amazon S3 isn't entirely robust yet: after creating my account, I was only getting good-auth requests through once every 5 requests or so. Seems all their servers don't know I exist yet.

But the filesystem driver works. Try that.

And at this point you can start hacking more Brackup::Target subclasses and sending them to me for inclusion. I won't be doing anything but Filesystem and Amazon.