Reqs. Code. Docs. Done.

Besides the fact that I have no plans to buy an iPhone, I am simply not buying the iPhone hype. In fact, the cultish aura around the Apple world irritates me quite a bit — though I did, in fact, just buy a new MacBook, and love it. (See “unboxing party” below, with Mother Goose looking on. The box isn’t the sexiest, since I bought a refurb.)

Tom Yager of Infoworld, who’s generally pretty enthusiastic about Apple hardware, tears apart the iPhone here. For me, if I had planned to spend the considerable $$$ for an iPhone, the biggest deal-breaker would be its use of the slow-as-molasses EDGE data network. Among other good points he makes: users pay an “unsubsidized” price for a locked phone with a 2-year contract — unprecedented in the industry!

On the day they went on sale, my 4-year-old son and I walked by the long line of people at our local AT&T store. “Why are all of these people here?” he asked. “Uh, they’re waiting to buy a phone.” I thought that some in the line’s laugh sounded a bit awkward.

The other day I responded to an ad looking for Rails Ninjas. A very nice guy called me up to talk about his startup. He asked me to talk about our rails skills. Would I describe myself or Max as a rails superstar? I said “look, we’ve been using rails since March. We are not rails superstars.”

Why did I respond to an ad asking for Rails superstars when I make no claims to be one? Because there are many ads looking for Rails superstars and there are not enough to go around. There certainly aren’t undiscovered rails superstars around. We’re not talking supermodels here. You don’t take an ordinary Romanian peasant and turn her into a rails superstar overnight with a nice haircut and a manicure . Rails superstars have blogs and open source projects and debates about the importance of symbols on the rails-core mailing list. They have histories.

Me and Max, we don’t yet have a history with Rails. We are not superstars.

And yet, we are not script kiddies. Rails is full of amazing magic. How do instance variables set in the controller end up as instance variables in the view? Who knows? And who cares? Script kiddies don’t care. It’s automagically terrific, and that’s all they need to know.

If you look at the source code, though, you fall down a rabbit hole. You discover that Ruby itself has a method called instance_variable_set (be sure to check out the documentation on that!), that you can call on _any_ ruby class. How utterly transgressive! You can just shove whatever you feel like in anyone’s class at any damn time you please. You can make brand-new methods on the fly, when you need them, by using method_missing to make a new method whenever you call one that doesn’t yet exist. Amazing feats! And not implemented in secret or in C or something that isn’t any fun to look at and that there’s little hope of your ever being able (or particularly wanting) to do similar things yourself. All the magic is just hanging right out there for everyone to see. And it’s all just part of Ruby, a cute little language that’s fun to code.

Amy picked up Michael Nygard’s Release It! for me, which is turning out to be a pretty good read. However, it’s also bringing back so many sour memories of operations blowouts from previous work with telecom and financial clients. In one example, a CxO is seen storming around the office asking whose head he can have on a platter for costing him his Caribbean vacation home. (His pay was based on performance, and his airline’s 3-hour overnight software outage, with cascading effects through the industry, could have diminished his year-end bonus.)

I dig how Nygard diagnosed this company’s outage — due to unhandled JDBC IOException errors — by decompiling the binaries, since everyone was terrified of being blamed and nobody dared even ask the development group to pony up the source code.

“The first clue [that this project was not going to be simple] was that nobody else could tell us what all the feeds were.” [p36]

I broke down and did some AJAX crap on our big rails app. Cool, I thought. I’ve got my drag-and-drop lists with acts_as_list and my in-place-edits. Don’t we look all sexy and modern? Except in_place_edit_for doesn’t bother validating changes to the model. Someone wrote a custom implementation which does do validation but I haven’t tried it out. I just yanked out my in-place-edits for the moment. I’m irritated. Gotchas everywhere. Oh, and I’m having routing issues today too.

On the plus side, I did solve some troubles I was having with Attachment_Fu’s thumbnailing. Though it’s choking now on destroy (thumbnail-delete troubles, I think I read about those somewhere). Full post on Attachment_Fu to come when we’ve ironed out all our weirdness with it.

About Us

We're Max and Amy Newell. We blog here about software, consulting, ruby, rails, being web workers, linux systems, and anything else we can somehow justify as 'professional'. Max does systems engineering, Amy does app development. Sometimes we work together, sometimes not. This is v.2 of our blog and business. We don't know where we're going, or what we're doing, but we're having fun and making a living.

You can contact us by email at the most likely addresses: "max" or "amy" or "us" at our domain name