Teamwork anti-pattern: the edge case

Edge Cases are the Root of all Evil:

“I’ve learned over the years that Edge Cases are not meant to be normal rationale or a casual reminder of some odd circumstance that you’ve neglected. Rather, they usually represent an attempt by someone else to gain, show or exert power in a situation. I’ll explain.”

After reading this, I immediately realized the Edge Case is definitely an anti-pattern of teamwork. I’ve observed, suffered and inflicted this particular tactic countless times in the past.

Tackling this one is three-pronged:

* Recognize it. When someone points out an edge-case, quickly try to establish with the rest of the team whether this occurrence is as rare as you think it is or whether its truly important.
* Neutralize it. If it really is a corner case, mark it as such and get back to making actual progress.
* Bury it. Should you throw something out there and find its really an edge case, let it go. Don’t be that guy.

“But Adam”, you say. “It would be really embarrassing if we omitted a condition for the Blurbleflaster Case!” Well, I couldn’t even find the Blurbleflaster Case in Wikipedia! So, if someone finds that we’ve omitted it, then they get the prize; it won’t be the end of the world. We should probably implement that whole social network thing first anyway.

Some low-brow erudition

I want to write something rambling, like Matt Webb. Hopefully interesting too. So in Webbian style, let’s start someplace completely random.

Chaim Witz! — you know him as Gene Simmons. He’s got this tough, misogynist attitude for which he’s famous. But, from the way his kids talk about him, he is mostly harmless. And there is in fact one woman who would seem to have complete control over him — his mom. Go figure.

I don’t eat fish because I might cross one that looks like these guys. And then things would be awkward. “Oh hey, you’ve got about a billion crazy teeth. I ate your third cousin three times removed about ten years ago.”

Finding pattern languages always amuses me. Comedy has its dick and fart jokes. Rap has its hype men. I’d love to find a Gang of Four book on either of those topics.


I saw CBQ (Charless Brian Quinn, for those not in the know) at acts_as_conference this weekend. I want to make a movie shot entirely with the rear-view camera of his Prius. His presentation on teaching Rails was pretty groovy too.

I’m finding that I’m not satisfied to just link to the Wikipedia. Like its not cool enough to link to it. Something more edgy, something old school. Like the C2 link above, having cgi in the URL helps. Pretty URLs are so establishment, man!

Oh, and today I completed my collection of original (Diamond Dave) Van Halen albums. Inspiration? The “Schmitts Gay” commercial sounds like “Beautiful Girls”. “AH, YAH!

I Like Rails 2

Tonight I gave a presentation on Rails 2 at Dallas.rb. Within, I note some of my favorite new things in Rails 2. Some things small, some things large.


If you weren’t there, I should probably explain a couple of the slides. I think Rails 2 is, despite its whole-numberness, an evolutionary release. It makes the Rails “language” smoother around the edges. Granted, its still somewhat blob-esque, but its getter rounder. I dig it.

Besides that, I think Active Resource, or ARes as they call it in the biz, is going to prove useful mostly behind the firewall in your datacenter. As you build more and more applications, you’ll find you need to use resources across multiple apps. This is exactly where ARes shines — providing a common user service, for example.

You can dowload I Like Rails 2 it if you missed it or, for some reason I can’t even fathom, aren’t even in Dallas.

Getting ahead on Git

Git. Soon, you’ll be using it, too. The definition of “soon” probably varies widely depending on what kind of person you are. But, no better time than now to start getting acquainted with the idea.

Finally, what I really wanted to do here was publicly commend Dr. Nic Williams for his adept use at Star Wars metaphor and humanization of Grand Moff Tarkin in his post on using Git to manage the new Rails TextMate bundle. Well done, sir. I owe you a frosty one.

What good could come from MicroYahoo?

Microsoft Proposes Acquisition of Yahoo! for $31 per Share:

REDMOND, Wash., Feb. 1 — Microsoft Corp. today announced that it has made a proposal to the Yahoo! Inc. Board of Directors to acquire all the outstanding shares of Yahoo! common stock for per share consideration of $31 representing a total equity value of approximately $44.6 billion.

So everyone’s probably gonna spazz out on this one. Understandably so — in Flickr, Upcoming and you’ve got three of the most trusted and loved sites out in the nerdwebsphere. In addition, there’s a lot of respected people, both in web development and open source, at Yahoo. Joining Microsoft, an organization that has minimal respect in the web development and open source communities, would reduce those people’s cred right out of the gate.

But, were this bid successful, here’s what I hope would happen. Microsoft uses it as an opportunity to rebuild themselves organizationally. They bury the hatchet with open source and open up the development of IE. Yahoo continues building apps like Flickr and like they always have. A rewrite on .NET technologies isn’t imposed like it was on Hotmail. In the end, Microsoft becomes an organization where closed source, proprietary development can flourish with open source, standards-based processes.

This is just wild guessing on my part. That said, if you look at Microsoft, its clear they are having major execution problems. Xbox is the only group that is widely successful and even they have hardware problems. All the other groups are missing timelines and customer/developer expectations. Just like Yahoo was before they picked up Flickr,, Upcoming, etc.

If Yahoo can make acquisitions to rebuild their culture, perhaps Microsoft can too.

Whither Prototype or jQuery

The fact and fiction of why I choose Prototype over jQuery

FACT: I like Prototype better. It fits the way I program perfectly. I like prototypes, I like programming in a somewhat functional style. I don’t think of things in a DOM-centric way. I’m OK with having client-side state.

FICTION: jQuery is the “emo” framework. Apparently it (was) the “new wave” framework. Either way, I will always hold it against John Resig that he chose Devo hats as the logo.

FACT: jQuery is a fine framework if you think in terms of the DOM or don’t do much back-end programming.

FICTION: To become proficient at Prototype, you have to punch the first jQuery user you see every day. I have never punched a jQuery user. Attempts to verbally duck punch them have met with minimal success.

FACT: Dollar functions are sexy. Clearly one of the best abuses of a programming language grammar, ever.

FICTION: You can’t write unobtrusive JS with Prototype. I wrote a tutorial for Advanced Rails Recipes on how to do that with Dan Webb’s lovely LowPro library.

FACT: We can all agree, YUI is really unpleasant to look at.!

FICTION: Sam Stephenson is an artificial intelligence akin to GLaDOS. I’ve met Sam twice. He did not attempt to coerce me into an incinerator.

Now that we’ve got the record straight, I’ll leave you with a comparison. To my jaded, biased and stubborn eyes, trying to use jQuery feels limiting. But I think that’s particular to my experience and preference. No doubt, if jQuery were a musical instrument, it’d be akin to Stevie Ray Vaughn’s guitar “First Wife”: suited to its user, iconic and specifically built to its purpose. If you were to try and play a Beethoven piano sonata on First Wife, it just wouldn’t come out right. However, your basic baby grand piano is equally suited to Beethoven or B. B. King. So in my tortured metaphor, Prototype is a piano — harder to play well, but more rewarding once you do.

Diving for Star Wars nerdery

Wookiepedia, as you might expect, has lots of nerdy little details about the Star Wars universe. I find myself expending many an hour winding through its deliciously nerdy halls. Take, for example, the Xi Char. They are the subject of a few chapters of Labyrinth of Evil, which is set right before Revenge of the Sith. They designed Vulture Droids that, in part, owned Anakin Skywalker’s starfighter. One of many, incidentally.

Yeah, that’s just a brief little dive into the insanely detailed universe that has emerged around Star Wars. Not saying its a sign of the greatness of our society…its just cool.