enjoying salad since 1978.

Monday, May 30, 2005

A Picture Share!

Good work, Goldman!

A Picture Share!

Ev just scaled this wall. Very Impressive.

Wednesday, May 25, 2005

MySQL crash.

I was messing around with MySQL (4.1.12 Debug on OS X), playing with Python's MySQLdb and also Ruby on Rails when MySQL caught a signal 10 and took a fantastically nasty nose dive.

Poking around various tools, I was unable to initiate any kind of recovery as the database couldn't even get to any of it's checkpoints. The recovery tools literally mocked me with messages of "You forgot to give the arguments! Please see bin/mysqlcheck --help" as I tried to divine the right set of switches. Thanks guys.

Digging through some mailing lists, this sentence caught my attention:

There is little hope of recovering your tables. You should resort to a backup and upgrade to 4.0.13.
This doesn't make me eager to stick gigabytes of data into it. I think I'll switch back to Postgres for now. There's been a Postgres database running non-stop in my closet for the past 3 years.

Sunday, May 15, 2005

Aaron Swartz on losing his webserver's disk drive

I know this pain. I lost a CVS repository at Pyra back in 2002 this way. We were too cheap back then to use RAID on anything that wasn't BlogSpot or do backups on anything that wasn't our SQL Database. It's a good thing only two or three of us were actually working in it because if it had been 10 then life would have really sucked. (Actually, if it had been 10 people, I would have taken care of it). As it stood, we simply bought a new drive, copied the latest version from my Powerbook, merged the others, and were back in business.

Aww crap, we lost that drive a month later. I said "F*** this, we're going to Google in two months, no more source control until then." Since I was working on the backend and Ev/Sutter worked on the frontend, it didn't really matter.

The industry is great at throwing around sloppy numbers, like a modern SATA drive having a million hours of uptime between failure (MTBF). Wow, that sounds so impressive. A freaking million!

Actually, those numbers are calculated assuming the drive runs from 9-5. So, the number is more like 140,000 hours MTBF. Well, some sloppy math of my own tells me that if a datacenter has 50,000 disk drives in it, one will fail every 3 hours.


I do, though, backup my Subversion repository at home now. And my web data is on dreamhost, which has it's own backup schedule.

I think this is another good lesson for people wanting to work at a short-handed, underfunded startup (or, as they might start calling this in the future, a Paul Graham (or Grahamian)-style Startup). You're always making these kinds of tradeoffs: I made a decision that the time it would take me to build a RAID 10 system plus put together a solid and well tested backup strategy for a system that 3 people used would be better spent on the service that a helluva lot more people used (read: Blogger). I made the right choice but I still feel stupid about the second outage. The parameters of the choice change a lot when you have a ton of infastructure in place to help out (read: Google and their wonderful ops people).

Database Debunkings

"Dispelling persistent prevalent database management fallacies"

With a title like that, how it could be anything less than light, airy, and fun?

Man, I love it when computer scientists get catty. I originally thought this guy might be a huckster using incredibly contrary views to try and beef up his credibility (which works with a surprisingly large number of people) but I think he makes some great points and also offers solutions. I think the attitude is just his way of trying to break past the inertia of these ideas. Hey, it worked on me, I just ordered his book "Practical Issues in Database Management: A Reference for the Thinking Practitioner" from Amazon. It has a forward by C. J. Date, a name which holds some serious weight in the DBMS community.

Wednesday, May 11, 2005

A Picture Share!

I've never seen two grown men so excited by 75 dollars. That was our team bonus for the year. :-( Plus the piggybank.

A Picture Share!

This kind man, Eric Case, got me a huge discount on my treo 650. Thanks!

Overheard today

"For a good time, man fwide"

No place beats Google for geeky humor.

Tuesday, May 10, 2005

Lessons from the Browser Wars

I'm going to try and check this out tomorrow. This guy was the PM for IE's 1 through 5. I work with another guy involved in IE, too.

Update: This talk was good, he talked about scaling processes to different sizes and kinds of groups and the radical change the IE team saw throughout his time involved with it. He also explained why DHTML came from Microsoft and took Netscape by surprise: (paraphrasing) "Microsoft knows almost better than anyone how to build forms-based applications and DHTML was a natural extension of that knowledge". I never thought of it that way before.

I also like his discussion about Second Wave effects and how being the most innovative is not usually the way to make the best product, which reminds me of Richard Gabriel's essay "Money through Innovation Reconsidered" (from Patterns of Software).

Anyway, I think I'll be reading Scott's book.

A Picture Share!

I wish this cake was mine.

Saturday, May 07, 2005

A Picture Share!

For merlin mann.

37Signals and the Google Web Accelerator

So, the Google Web Accelerator prefetches links. Not a big surprise. Unless clicking on a link destroys or alters data and you can't figure out why your stuff is gone. This is not actually the web accelerators fault.

Now, good natured engineers worldwide are asking: "Why isn't POST good enough for you?"

Actually, some budding RESTafarians are not quite asking, they are calling you out, in their Napoleon Dynamite way, "Goll, using GET for non-idempotent requests. Idiot! Read RFC 2616, it's only like the sweetest RFC ever."


So, lots of web developer-types don't like POST for one simple reason: because they force you to use ugly form submission buttons. Ugly? We are engineers, if it's not ugly, it probably doesn't even work, right?

Visual aesthetics have again gotten in the way of clean engineering practices. Hell, at Blogger we even have some non-idempotent requests behind GET oursleves. So how do we keep things like the Google Web Accelerator, various web proxies, and all of the nasties out there from hurting us? We use JavaScript! But I don't mean just in onclicks, which stuff that doesn't speak JavaScript will ignore. You'll see lots of javascript:void(0) URIs floating around. See, if your hyperlink isn't a URI, there's nothing to fetch. If nothing gets fetched, nothing gets destroyed.

We know it's bad. We do it anyway. We just try to be, you know, savvy about it. Sorry this is so much trouble. It really is a big hassle, and it really is the browser's fault (yet again).

Think of it this way. It's dangerous; like pausing a running program, changing some of it's instructions, and resuming program execution. But if you couldn't do that then you would never be able to set a breakpoint in a debugger and then you would have to use printf or log4j for all of your debugging. Heh, I bet you do, anyway, don't you?

Hope that helps.

(If you think this tone is too personal, then that's becuase this is not written specifically to the 37Signals folks, who I think work hard and make neat stuff, it's actually written to you.)

Friday, May 06, 2005

Blogger Mobile

I'm super excited about Blogger Mobile launching. As far as I know, and I don't want to steal credit here, but I think it's the first blogging tool to do automatic provisioning for user accounts as well as for blogs.

Anyway, I'm so excited that I finally got on the phone with Sprint and got them to fix my Treo 650, which had the wrong phone number programmed in. So I have a backlog of badly framed and poorly shot pictures to upload. What a treat!

Let me know if you don't like all of the photos and you'd rather I kept them in a separate blog. stevej at gmail dot com.

A Picture Share!

Because I know that you always wanted to see one of the kernel panics that can happen when ext3 blows up.

A Picture Share!

The coronet has finally closed. With the Alexandria also gone, now hardly any of my neighborhood theatres smell like pee. :-(

A Picture Share!

The Blogger banner!

A Picture Share!

A flyer for a wake for Hunter.

(My first photo post since we launched Blogger Mobile!)