Why the site was down for a month, or: why I’m abandoning Ubuntu

metamusing was down for a month due to a catastrophic update experience with Ubuntu. I had been running an LTS release for the last year or so. In December a patch came out which somehow broke apache on that release – it was running, but not responding to requests. I gave that a few days to resolve itself via subsequent patches, and when it didn’t, decided to update to a newer release. Turns out moving from that LTS release was a convoluted process which involved updates to specific versions in the right order.

The first update went fine. Everything was back up and running, including the previously broken apache, but having looked over what it took to get to a current version from where I had been, I figured I may as well take the time to get current now because the issue was only going to get worse as time passed. I proceeded to the next update.

The second upgrade also went fine, leaving me only 2 updates away from current, so on I went to the next one, which did not go smoothly. I ended up at the command line on reboot with a broken xwindows and no networking stack running, for reasons I never determined. Xwindows failing on update has happened periodically with linux distros and while I understand the whys of this, it’s still one of the most frustrating aspects of working with the OS for me. Anyway, after screwing around for an hour trying to repair things with no success I gave up and decided to do the last update to the current release, 11.10, using a CD rather than from the network. This turns out to have been my fatal mistake.

Everything appeared to go smoothly – I booted to CD, it correctly recognized the version of ubuntu currently installed on the machine and asked me if I wanted to update it, which I did, so off we went. During the install process there was a single error message which I had not seen before which was worrying, to the effect of ‘some packages cannot be upgraded and will need to be reinstalled.’ It did not enumerate them nor offer me any options, it just reported the problem. Everything else finished and I rebooted…to discover that the update had gone disastrously awry. A random sampling of the oddness:

  • Apache was no longer installed, and there was no longer a /var/www directory where I had gigs of binary data (most of it pictures).
  • Mysql was no longer installed and none of my table data was present any longer (!!!!)
  • A huge swath of my previous software stack was gone, including the data that accompanied it.
  • The usr directories of my wife and I were still present, but her account was not.
  • the stuff I had installed into opt was still there, along with the data.

As you might imagine, I was furious. I still am. On the one hand, no doubt this is somehow my fault. I was rushing through this. I do not keep good backups beyond the wordpress tables that have my blog. I’m hardly the most clever linux user and my job has removed me from daily use and the good practices that helps enforce. On the other hand, I’ve been running linux at home since ~’97. I’ve had head crashes, disastrous red hat upgrades which pushed me to Ubuntu, a cpu cooler retaining clip breakage which caused one of my machines to bake itself to death, including its drive, yet despite all of that, never a loss of a whit of data. I’ve always managed to recover everything. But not this time. I won’t descend into details, but I’ve spent countless hours trying to figure out how to recover data from that drive, and as far as I can tell, short of paying through the nose those mysql tables are gone, and they’re really the critical missing piece. Everything else I can either recover from the drive, or I have partial or complete backups of, but the sql tables with all the structure to 12 years worth of images in my image gallery? They’re gone.

So…to hell with Ubuntu. I get this is my fault, but at the same time, I won’t run that distro again, and I might be done with linux at home. I should have had backups, but it never should have destroyed my data – that upgrade script to 11.10 was somehow disastrously broken.

Where does that leave things? I moved my hosting over to site5 for the time being, and my media server stuff over to a windows machine. I think I’m going to pick up a mac mini and move to that for some of this stuff, but maybe keep the web on a hosting provider and not in my house. I’m evaluating image gallery approaches now. I’m not going back to menalto’s gallery – they’re not keeping up with the times. I’m not sure what it will be, though Piwigo is looking promising so far. I want video support, mobile support, social networking sharing support, and effective, well-maintained wordpress integration. Suggestions welcome. As far as the old linux drive, I may still pay someone to try and get those sql tables off of there – they have the first year of my son’s life in pictures, with all the family comments on them. I have all the pictures, but that structure and the comments are the absolute worst loss out of this, and I want them back if I can get them without breaking the bank.

How to embed a google wave in wordpress or drupal..or pretty much anything

Addendum: see the note at the bottom – there’s now a much easier way to do this.

There are multiple solutions to this scattered across the web, and there are probably better places than this to find out how to do it, but since I just went through finding out how to make this work and had to multiple google to find all the pieces of the answers I needed, I figured I  would do my bit to spread the word in case others find it useful. This works in October of 2009. Things are rapidly evolving so I make no promises for the future, but right now if you want to embed a google wave into WordPress, Drupal, or any static or cms controlled page that allows you to use script tags, there are a couple of options. The first is the wavr plugin for wordpress. The gui for it fails on my instance, but the tag syntax works once you have it installed – just put the following into a post:

wave id="googlewave.com!wavid" bgcolor="#ffffff" color="#000000" height="300px"

Note – surround that with [ brackets or it won’t run. Also note that you’ll need to know both the correct wave server to call and the correct wavid – read below for how to get those.

The second method is to use this javascript:

http://wave-api.appspot.com/public/embed.js var wavePanel = new WavePanel('http://wave.google.com/wave/'); wavePanel.setUIConfig('white', 'black', 'Verdana', '10px'); wavePanel.loadWave('googlewave.com!w+RhSPBtyUB'); wavePanel.init(document.getElementById('mywaveframe'));

Which I originally found over on this post on geek whorled.

To actually post the wave you again need the correct server and wave ID. Unfortunately what google prints in the URL bar doesn’t match completely with what the API expects for the wavid, so you have to copy the wave url and change the ‘w%252b’ portion of it to w+ for the waveid . An example – this:

https://wave.google.com/wave/#restored:wave:googlewave.com!w%252BRhSPBtyUB

has a waveid of:

w+RhSPBtyUB

I figured this out thanks to a google support post, which you can see here. Note that the actual answer I needed was not initially shown to me, I had to expand the answers.

The only other thing to bear in mind is that waves can be sourced from different servers. It’s not clear what all is out there in terms of valid server addresses, but googlewave.com is what’s worked for me. The google wave url I’m looking at is wave.google.com, but the source url to pass the api call to I have to use is googlewave.com. I think that folks who were initially granted access to the sandbox that predated the 100,000 ‘public beta’ that started in October 2009 have to use a different url to pass their waveid to, and I suspect if you’re running your own wave server you’d have to use that server’s address, but like I said some of this is still unclear to me.

Anyway, hope this was useful. Now if someone can solve the speed issues… 😉

Addendum: or you could just add embeddy@appspot.com to your contact list and then add this bot to any wave you want all the embed code for. I wasn’t aware of this when I wrote this all up, and possibly it didn’t even exist at that point. Anyway now there’s a much easier way – just use embeddy.