Fake Monday
Today is Tuesday, but it's technically the start of the week since yesterday was Victoria Day, a statutory holiday here in Canada.
The holiday long weekend was gorgeous. I technically took Friday off of work also, so it was a four-day weekend full of sunny boat repair work. I got so much done! Where to begin...
Thursday night I went out to the Anza Club to catch a show - Tarran the Tailor was playing upstairs. Excellent time, great music as usual - afterwards I biked back to my rowboat, but as I approached I noticed a couple of bicycles abandoned at the top of the dock ramp. As I arrived, I found three 20-something folks sitting in my boat, drinking bourbon - they mistook me for a fellow Midnight Mass rider and invited me to join them. As I explained that I was actually there to kick them out of my boat and go home, they were shocked and extremely apologetic, but really, it's not like they were hurting anything. The boat is always locked up with a padlock, and there's nothing left in it to steal. I mean, if they'd thrown my oars in the water or tried to damage the boat in some way, it would have gone much more sourly - but as it was, they were nice enough folks, geeks even. We exchanged names and URLs, so Adam, Andrew and Rebecca, if you're reading this, feel free to drop me a line.
Friday and Saturday I got up at 8am and worked hard on the boat - I finished a bunch of epoxy work, got hinges onto all the storage hatches finally, and made progress in getting the hinges and hasps onto the cabin hatches - that project still needs more work, of course, but the end is finally in sight. I spent a bunch of time in the engine compartment working to get the kill switch in place, and finally succeeded - but when I went to test it, it didn't work, and in fact I've apparently damaged the cable to the point that I need to go and find a new one. Boo - at least now, after two visits to the marine store and one visit to Canadian Tire, I know that the cable is called a 'utility cable' and that I should be able to get a new one from LloydCo Auto Parts.
I also removed the traveler on Friday - ie the seven-foot-long pulleys-on-rails thing that the boom attaches to - so that I could fix a few leaks in the bedding hardware. The leaks were directly over the stove, which meant that every time it rained I'd have to use steel wool on the cast iron stove grill again to get rid of the big patch of resulting rust. The leak had, over time, caused some of the roof to rot; this led to the first cutting of a large hole in the boat roof, and the bulk of the 1/4" of sawdust that covers everything in the galley at the moment. The hole is patched, the surface is fiberglassed, sanded, faired perfectly with epoxy and fairing compound, and the traveler is now ready to be rebedded - perhaps this afternoon, if the weather clears up for a while.
Sunday I had a few guests over helping me work on the boat - it seems unfortunately that adding more people to a project doesn't necessarily make the project go any quicker. Still, it was nice to have the company, and a few projects got nailed down properly - though when I removed the trampolines to fix a few small cosmetic problems on the center bow of the boat, we discovered a few patches of rot that quickly grew into a huge seven-foot hole in the boat. The rot wasn't structural, which was a relief, but all that wood still needed to be replaced. I got a bunch of the wood in, but then Sunday was mostly rainy, so I had to cover the work site with tarps and pray for the best, spending the day curled up, drinking rum and watching movies with a friend. Sunday night was more rain and a lot more wind, which picked up the tarps and blew a cold wind through the boat, though as far as I can tell not much rain got in. It's supposed to be rainy today and tomorrow, but then it's supposed to be calm and sunny for another five or so days in a row, so this coming weekend I should be able to completely nail down the problems in the bow, and be done with it for the foreseeable future.
Today, however, I'm back to the day job. I'm working to figure out why the bottleneck in our EC2 migration appears to be network traffic - the frontend webservers seem to handle my load testing without a hiccup, but the database server spikes to a load of over 50, even though it's an "extra large" EC2 instance. It doesn't appear to be file I/O wait, nor a lack of CPU time, so I'm stuck. I'm not sure what I can do about that - I've always been under the assumption that network bandwidth between EC2 instances would be incredible, seeing as they're virtual instances on more or less the same physical hardware. This week I have to solve the problem, but I'm not sure how just yet.
There's still a few holes in the boat. I still don't have clean water, though that's just a matter of time - a reasonable amount of time actually, because filling the tanks takes a good fifteen minutes, then the bleach should be left in for an hour or so, then fifteen minutes to empty the tanks, then fifteen minutes to refill, fifteen minutes to empty, fifteen minutes to refill, fifteen minutes to empty, and finally a final refill. The traveler is still sitting a few feet away from where it should be mounted, and I still have more research to do on epoxy compounds before I can put the hatch doors properly back on the boat. The work is tiring, but very fulfilling, and a few long days of working in the sun have topped up my stores of vitamin D and left me with a positive outlook and a fantastic tan.
Constant Hustle
God. Seriously.
It's Tuesday, and I have two more days to get everything out of my house and have it ready for the new folks to move in. There's still so much to do!
This week has been very expensive - I thought last week was pricy, what with the purchase of the $1700 generator (which, by the way, seems to be somewhat overkill for my needs! I probably could have gotten away just fine with the 1000w version instead of the 2000w - oh well, I guess it doesn't hurt to have too much power), but this week has had four >$100 trips to Canadian Tire and two >$100 trips to the boating store so far! Worse yet, there's no end in sight, as I've still got to completely overhaul the electrical system, finish repairing all the fiberglass problems on the deck, and then hopefully I'll have time to start making the interior look a little more like a home and less like a hunting camp.
One nice thing though - I realized yesterday as I was loading in some groceries that my nomadship (heh) is nearly complete. I've got canned and dried food to last a month, two months if I really had to stretch it. All the fuel tanks are full, and there's another hundred liters of diesel in jerry cans in the amas. The water tanks are full too, giving me over a hundred liters of potable water - all I'm really lacking for an extended absence is a source of fresh protein (ie fish or meat). Not that I really *need* to be ready for any sort of extended absence... but given the econopocalypse, impending west coast earthquake, swine flu, etc, it's nice to know.
I don't know if I mentioned, but the second time we had the boat out, the binnacle (thingy that sticks out of the deck like a podium that the steering wheel attaches to) pulled out the deck, exposing poor workmanship - don't attach important things with short woodscrews! - and a small patch of rot that I'll eventually have to tend to. I got around to fixing that yesterday, pulling the binnacle completely off and re-attaching it securely to the deck with long bolts and wide washers. When I went to reconnect the steering, however, I noticed a bunch of slack in the lines. I called Bill, the guy who sold me the boat, and asked what he thought of that.
Well, turns out one of the steering lines had slipped from a turning block. That turning block happened to be deep in the stern of the boat, reachable through an access panel, but still at the end of arm's reach. I got to spend the next hour and a half up to my shoulder in the wall of the salon, trying to free a thick steel cable from the pulley it had fouled. Waaaay fun.
Seriously, every day something breaks on the boat, and I have to learn how to fix it. Sooner or later I'm going to know every square inch of her. In some ways I growl about this, as I look at weekend sailors with their gorgeous, perfectly-functioning boats, but in a much stronger way I know that this is the universe's way of ensuring that the boat becomes truly mine. It is a series of tests, and as I complete each one I feel stronger for having done so.
Anyhow. Just to add to the stress, I've been accepted to speak at Open Web Vancouver, a big web conference in June. I've never actually spoken at a conference before, so we'll see how that works out...
CloudCamp Aftermath
Wow, that was great! It's so nice to finally be interested in a technology again - I was honestly starting to think that I'd never enjoy another conference. Half of the fun of a conference is discussing new concepts and ideas in technology, but the other half is meeting up with folks who have similar ideas and interests, both on a professional level but also in a social (ie: beer) environment.
It was also my first "un-conference". The idea behind this is that there's a schedule, but none of the talks are booked in advance, and people come with a talk or presentation that they'd like to give and sign up to do so on the spot. In the end it's more about discussions than presentations, and in fact I was drafted (or more accurately, "tricked") into hosting a discussion group on scaling Drupal in the cloud.
Now *that* was an eye-opener - I had naïvely assumed that most people working with cloud computing were working with web applications, as that's what most of the documentation out there seems to be. Or maybe I just pitched my session wrong, and should have stressed all web applications and not just Drupal. Or perhaps I shouldn't have scheduled the discussion at the same time as Dan Kaminski's discussion on cloud security. Regardless, the room began with approximately eight people, and as it became apparent that we were really looking for a technical discussion but most of the people were in marketing and management, the room shrank to four people.
What was awesome was that the four people were:
Wild! I got more out of that half-hour session than I have reading documentation for the past month and a half. As the session started, we basically went around the room discussing backgrounds and technical histories, and it became apparent that I was really the only person in the room with any technical experience at all working with the EC2 cloud, I began to present my experiences to date, focusing on the three big problems that I had butted my head against - how to "auto-scale" web front ends using load balancers, how to scale MySQL databases elastically, and how to share storage between EC2 instances. As I discussed these, Dean Dierickx from RightScale showed up, and had some interesting notes to add from a high-level design perspective, which we talked about at length. We then started discussing database scaling, and it became apparent that nobody in the room had any practical experience with that at all.
Right about then, Jonathan Lambert from Work Habit let himself in, and after listening to us fumble about for a couple of minutes, grabbed a whiteboard marker and launched into a fifteen minute in-depth technical discussion on different methods of scaling MySQL. This was *great* stuff, though it pretty much cleared the room of the marketing and manager types. As he finished, he validated my whole trip with one statement - he said something like:
"Now, there are three major problems that everyone attempting to scale any web application in the cloud butts their heads against, and there's no simple answer to any of these: how to launch instances automatically from a load balancer, how to scale MySQL, and how to share storage between instances. We've fought these problems hard for two years now, and we still don't have a good answer, but here's how we've managed to get everything working so far..."
...and proceeded to lay out a basic, scalable platform for Drupal on the whiteboard. Most of his layout matched my work exactly!
To top that off, just last week I downloaded a script from the RightScale website that purports to set up a basic EC2 instance to be a "RightScale" machine, and poked through the script to see exactly what they're doing to prep a machine. I was shocked to see that every step of the way, their work matched what I was already doing to setup my own EC2 instances! That may not sound like much, but frankly after fifteen years of Linux administration, I have some particular ideas about how a machine should be setup for optimal networked administration; which additional packages should be installed, which default services should be turned on or off, what changes should be made to the default shell environment, etc. Seeing two large, successful operations doing exactly the same things as I do in my personal environments, and facing exactly the same challenges, was vindication to say the least!
Anyhow - even though it was a "free" conference (with the quotes of course implying bus fares and hotel fees), I think I got well more than my money's worth.
CloudCamp
Sitting in a conference room in Amazon's headquarters, in the old hospital up on the hill in Seattle, waiting for the conference to start.
Goals today: learn more about shared storage between Amazon AMIs, learn more about how to automate launching of AMIs, make networking contacts with other EC2 nerds.

