The Twitter Challenge. Hundreds go in, 140 come out.

It’s been a few weeks since I signed up for a twitter account, and I’m still getting used to the idea. I originally signed up with the intention of using it as a communication medium more than a blogging platform, but I’m being forced to admit that I might have been wrong.

There’s something very compelling about having to formulate your thoughts into just 140 characters. It’s an interesting intellectual exercise to convey your meaning in that space without losing detail. I tend to write out thoughts to their fullest and then tighten up the editing to fit it in the space.

At that point, the question about whether or not anyone actually cares that I’m sitting at my desk editing videos is moot. It’s a little mental challenge. Me vs The 140 character limit.

Of course sometimes you want to say a little more than that, and you get a post like this. Since this is the equivalent of talking to a brick wall anyway, I don’t worry too much about verbosity. In this context, I model my writing process (as I do everything in my life) on Penny Arcade. In this case, the specific quotes:

Tycho: It’s my copy of Tiresome Exposition Monthly!

Tycho: It’s a journal of needless exposition and those that expound! Nothing is too trite, inaccessible, or verbose for their catatonic editors. Just last month, they published my thirty page manifesto on “Why Bees Rules.” I’m well on my way to complete illegitimacy!

Yeah, that’s 2 minutes of your life you’re not getting back. You’re welcome.

Coming up for air

Parkinson’s Law states that:

Work expands so as to fill the time available for its completion.

I was about to propose a corollary to this and apply it to data storage, but if you check the Wikipedia link above, you’ll find they’ve already got it covered:

Data expands to fill the space available for storage.

Our fileserver had a 120G drive in it up until about a year ago. It ran out, and I replaced it with a new RAID5 setup, and today we have:

Filesystem            Size  Used Avail Use% Mounted on
/dev/md1              1.4T  1.3T   73G  95% /data

That’s 1.3 Terrabytes out of 1.4 used, for my non computer geek readers (which is.. what, no-one?). An interesting comparison is my very first computer hard drive which I bought around 1992 or so, which was 50MB. The above partition is (approximately) 1402519MB, or a frankly ridiculous 28,050 times larger than my first drive, and it’s still running out of space.

My next upgrade will probably be 4*2T drives, which in a RAID5 arrangement will give me about 6T of usable space, hopefully. Of course, I’m going to have to Ebay a kidney to pay for it, so in the meantime, I may have to find some stuff to delete.

Anyway, my point seems to be that we’re basically coming up with new ways to fill data that is keeping pace with the growth in hard drive technology. 17 years ago (wow, is that when 1992 was?), 50MB was plenty of space for operating system, applications, data, etc.. These days, we’ve got video files, just one of which would easily fill 50MB for a few seconds of footage. Add in HD and you’re talking serious growth. Where does it stop? I fully expect that another 17 years from now we’ll be measuring our storage usage in Exabytes, as we download our daily brain backup. Gulp.

Why won’t my net work?

This is one those “for future reference” posts, mostly for myself, but perhaps it will help some other poor unfortunate from running into the same problems I had tonight.

Specifically, setting up bridged networking under Linux to enable a KVM virtual machine. I had this working just fine up until the point where I upgraded this server to hardy, whereupon everything fell apart. Thanks to the folks on freenode.net/#kvm, I discovered that my interface configuration was broken.

To summarise, I have:

1 Physical network interface
3 IP addresses (2 of which are assigned to the host OS, one to the guest VM).

It turns out that if you have a bridge set up on the interface, assigning a second IP address should be an alias to the bridge, not the first IP’s interface.

Initially, I had something like this:

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address xxx.xx.xxx.xxx
        netmask xxx.xxx.xxx.xxx
        broadcast xxx.xx.xxx.xxx
        gateway xxx.xx.xxx.xxx
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

auto eth1
iface eth0:1 inet static
        address xxx.xx.xxx.xxx
        netmask xxx.xxx.xxx.xxx
        broadcast xxx.xx.xxx.xxx
        gateway xxx.xx.xxx.xxx

There are several things wrong with this. The first is that the gateway should not be specified on the second interface. It wasn’t a problem in gutsy, but hardy did things somewhat differently, with the result that networking was completely disabled on reboot. IPMI to the rescue, fortunately.

Having fixed that, things seemed to work ok, but I was informed that the secondary IP should more accurately be assigned to the bridge, like this:

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address xxx.xx.xxx.xxx
        netmask xxx.xx.xxx.xxx
        broadcast xxx.xxx.xxx.xxx
        gateway xxx.xx.xxx.xxx
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

iface br0:0 inet static
	address xxx.xx.xxx.xxx
        netmask xxx.xxx.xxx.xxx

One swift edit, and things are working swimmingly well. One of the folks on freenode #kvm hinted that he might spend some time soon writing some, you know, documentation on this process, so in future it won’t require reading dozens of blog posts (like this one) to understand what the hell you’re doing. Sounds like a great plan to me. The most defining characteristic of the current documentation is that it’s almost as shallow as Paris Hilton, and decidedly less thick too.