Archive for October, 2007

The Foiling: More Tales of Birthday Antics in the Workplace

I just discovered that the birthday prank I wrote about last week is actually somewhat of a tradition around here. In order to commemorate the last week of a fellow employee who was leaving, an email was recently circulated that reminisced about some of the more memorable moments during his three year tenure. Here is an excerpt from the email along with some of the picture that were included.

…as many have come to see first-hand recently, birthdays at SF can be challenging for the birthdayee. So some people who would like to remain anonymous decided to hit him two-fold… first they took each item in his cube and “foiled” it. I will point out some of the highlights… like the foil tissue paper… or the foiled poster of Lt. Deanna Troi in her bathing suit on the beach of one of the Moons in the Beta Portalan System… or each book and coin being foiled. Then after that was done… someone else took a bunch of Dixie cups and filled them each with water… so full that the water was actually higher than the top of the glass*… such that he couldn’t even move any of the glasses without spilling some water….

* When water is higher than the top of the glass, it is a phenomenon known as Grif Full ™. There is currently a patent pending on this complicated process by Grif Sims, who I can only speculate is one of the evil geniuses behind these birthday shenanigans.

Needless to say, I was quite impressed by the prankster’s attention to detail. I especially like the foiled Kleenex.

NOTE TO SELF: Take a couple of weeks of vacation around my birthday next year…

Quarterly Expresso Shot: The Best of Caffeinated Coder So Far

Just to clarify, I am blatantly stealing this idea from Max Pool at codesqueeze.

I met Max at the Alt.Net conference last weekend and had some really interesting conversations about blogging with him. He started his blog about the same time I did and is enjoying it just as much as I am. The one rather significant difference is that he also has a passion for the art of SEO (Search Engine Optimization) and has created a very interesting and highly polished blog that has gotten all kinds of technorati love in an incredibly short period of time as a result of his efforts. As a stark contrast, you can see my own anemic score here.

I still haven’t made my way through all of his posts, but from what I read so far I would highly recommend you check it out.

As part of my hommage to Max, here are the top 5 posts so far according to readers and to myself.

Reader’s Choice (in order according to most views)

  1. New Employee Hall of Fame - an amusing .wav file containing a voice message from a new employee who just set off the alarm system and doesn’t know how to turn it off
  2. The September 2007 Caffeinated Codey Winners - a humorous tribute to some of my favorite bloggers
  3. Code Quality: The Holy Grail of Software - a rant on the current state of code reviews and corporate standards documents
  4. The July 2007 Caffeinated Codey Winners - the original post that started significantly increased my beer budget
  5. Cultivating Good Audience Karma with the 10/20/30 Rule - some good advice on PowerPoint minimalism.

My favorites

  1. ALT.NET Conference: The Geek Paparazzi Uncover Real Controversy - tons of fun with picture cropping
  2. The September 2007 Caffeinated Codey Winners - the javascript accusations, the new Boo Build System, and STD-based analogies…and the picture of the victimized dog
  3. Informavore Trap # 2: Information Junk Food - some advice on the art of being a continuous learner.
  4. He Likes to Run for Fun in the Hot, Hot Sun - a non-geeky topic just to mix things up a bit.
  5. Excessive Abstraction can lead to the Bends - an early warning sign that I was becoming disillusioned with being an architect.

Calling All Future Guest Bloggers

Do you think you have a good blog post in your, but aren’t ready for the commitment of maintaining a blog yourself?  I’d like to open up my blog for a couple of guest posts each month. Send your masterpiece prose to rt_ball@yahoo.com along with a few sentences about yourself and possibly even a picture, then I’ll display it for my vast readership to admire. Ok…so at least I’ll read it.

I am still relatively new to the world of blogging, but for what it is worth, here are a few questions that I have been trying to ask myself whenever I sit down to write a post these days. Keep in mind that this advice is fresh in my mind because I have failed miserably to follow them at some point along the way. Several of these ideas also come more from my experience as a reader of other blogs than as a writer, so you should be able to relate even if you have never written a technical sentence in your life.

  • Picking a topic:

    • What perspectives or experiences do I have that are relatively unique?
    • What do I feel passionate about?
    • What is most relevant in my life at the moment? (it is easier to write about thoughts and feelings that are still fresh on my mind.)
    • Is there a fresh spin that I can put on my otherwise boring topic to rescue it from the realm of cliche and white noise?
  • Category specific questions:
    • Link Love/Blog Reviews: How can I add value to the link and persuade a reader with no attention span to click on it. I would be afraid if someone trusted me enough to blindly click on anything I suggest without me first providing some context or reasons as to why I enjoyed the post or resource.
    • How-To Content: How can I make the information more concise and grokable than everything else I see out there? Blogs aren’t the right medium to bring somebody from beginner to expert in one post, so I try to hook interest with my post and then provide resources that the reader can explore in more depth if they are so inspired.
    • Rant: How can I communicate my angst in a way that would make me feel comfortable even if the people who were the source of my frustrations were in the same room with me reading the post over my shoulder? If that thought makes me feel uncomfortable, then I take a step back and figure out another way to communicate my point.
    • Humor: Is my humor appropriate and does it add or detract from my message? Humor can either save or kill a message. It can be endlessly entertaining if done in moderation or incredibly tedious if overdone.
  • General good practices:
    • Separation of Concerns - What is my most important message? If there are multiple competing messages, I try to consider breaking them into multiple posts.
    • Research - Am I comfortable with the assumptions I made and the level of detail I provided? If I can imagine a reader legitimately calling bullsh*t on one of my claims, then I try to spend some quality time with Google.
    • Format - Is my post a reasonable length and are my paragraphs as short as possible (see Ayende’s post on readability)? I think it is safer to assume that someone is more likely to stop reading my post halfway through because I am being a wordy bastard than it is that they get to the end and are left wanting more. Readers can always extend the conversation through the comment section if they want more detail.

Not to put anyone on the spot, but I do have a list of people in mind that I know and would love to hear from. In no particular order, my vicitims include: JR Growney, Marshal Simmons, Jacob Shafton, Raoul Ellias, Ionuts Ciordas, Dewayne Christensen, Troy Tuttle, Jim Sowers, Jim Wilson, Grif Sims, and Adam Miller.

Of course, you are still welcome to send me a guest post even it you don’t know me or if you know me but were lucky enough to not be included on my list.

Happy writing.

Does Your Passion Invigorate or Irritate?

Being passionate about your work has emerged as one of the core values in the ALT.NET community.

I agree that encouraging developers to be passionate about their craft is probably the most effective way to improve our collective developer skills. It takes a lot of time and effort to learn to write software well and the fact of the matter is that nobody will be motivated to do it unless they are first able to nurture or rekindle the basic passion that causes coding to be fun.

I also think that it is possible to have too much passion, which can produce very unproductive and annoying results.

In religion, too much passion can lead to  intolerance, inquisitions, cults, mass suicides, and holy wars. In politics, too much passion can lead to nationalism, colonialism, ethnic cleansing, atrocities, and wars. What about too much passion in the software realm?

Well, it is doubtful that you will be tortured, oppressed, or killed by a software fanatic. At most, you will probably be flamed like Rob Conery was for his critical post on Ruby on Rails. More likely, you will probably just be irritated rather than invigorated by someone’s enthusiasm. This usually happens to me whenever I hear cult-like language used to describe a technology.

What causes developers to cross that line so that their enthusiasm stops invigorating those around them and instead starts to poison conversations and deteriorate the critical thought process? I think passion goes sour as soon as developers start fixating on a particular language or tool rather than focusing on higher level qualities like design principals or engineering best practices.

When this happens, then personal identity gets so wrapped up in the technology that any objective criticism suddenly feels like a personal attack. Then instead of improving a person’s knowledge of which tool is best for which job, criticisms suddenly lead to lots of time spent on pointless arguments and heated debate that could have otherwise been much more productively spent actually addressing the issues being raised and generally improving the language or tool.

One quick test you can take to see if your passion has taken a wrong turn is to see if you can list off five bad things about the language that you love and five good things about the language you most hate.

If you can’t do this, then it is time to take a step back and re-channel your passion. Otherwise, it is likely that you will end up stuck in flame-war purgatory rather than being part of anything truly innovative. You will also spend much more time irritating rather than inspiring those around you.

An Enron Inspired Birthday Surprise

I would like to wish Jacob Shafton from StoreFinancial a most festive birthday today!

When I came in this morning, this is what I saw in his cube. The opening was closed with Saran wrap and the cube was filled nearly to the top with shredded paper (we’ll call it Enron confetti). Keep in mind that he is well liked here. I hate to see what they do to people who get on their bad side.







ALT.NET Conference: How Concurrency is Like a Killer Rabbit and Other True Tales

I know this is going to come as a shock to you, but there were a few places where I might have slightly exaggerated in my last post. For example, the Alt.NET exclusivity test we had to take really only had about 5,000 and not 6,000 questions on it and Scott Bellware did not actually carry a sword when he came out in his gladiator costume like the now famous photo suggests (the power of Photoshop). I sincerely apologize if I have shaken your faith in the veracity of my investigative reporting.

As a way to make it up to you, here are some highlights of things that actually did happen this last weekend.

  1. I got to sit next to Scott Guthrie and Martin Fowler at dinner on Saturday night. During a discussion about concurrency, Martin suddenly dropped his normal, reserved British demeanor and did a boisterous impression of the killer rabbit in the Montey Python ‘Quest for the Holy Grail’ movie in order to give a proper analogy on the dangers of multi-threading. His rendition even included sound effects and the two finger rabbit fangs trick. I kid you not. There is no way I could make that up.
  2. In between sessions, I saw Scott Hanselman sneak over and give Scott Bellware a hug. As suggested in this post where Hanselman refers to Bellware as his own personal evil Mr. Spock, the two Scotts appear to be polar opposites and exchanged quite a few witty barbs during the conference. This made the “surprise hug attack” all the more memorable.
  3. I witnessed Jeffrey Palermo do the Mr. Roboto dance at the bar. I’m not even sure he had anything to drink, so I can only imagine how much fun he is at the Party with Palermo events.
  4. I was coached up a climbing wall at some Entertainment Palace by Scott Hanselman. I’m sorry this picture is so blurry, but my forearms were probably shaking pretty badly when I took the picture with my camera phone. By the way, Scott did better at climbing than I did and James Kovacs climbed better than a monkey with fly paper gloves.
  5. I was handily beaten in a game of truly pathetic pool by Jean-Paul Boodhoo. Let’s hope that neither one of us ever code as badly as we play pool. His wife was with us at the bar and managed to temporarily institute a techie-free talk zone, which probably was the only thing that prevented my brains from oozing out of my ears.
  6. During dinner, I also got to ask Scott Guthrie which Microsoft project he personally felt the most pride and investment in. He had to think for a minute, but he finally answered IIS 7 and the original .NET framework release. He described the original plans for IIS 7 as being incredibly ambitious and the equivalent of performing open heart surgery on a patient and then not being sure whether you could put everything back together again. When he was talking about the .NET framework, he shared a particularly amusing story about Microsoft getting into an insane bidding war with a start-up over the ASP.NET domain name just weeks before they were scheduled to release. This all occurred while he was drinking a rather ominous looking Margarita contraption.
  7. I got to pay off the beer that I owed Roy Osherove for his Caffeinated Codey award. There were several other people there that I owed beers to, but the awards were left undelivered because I didn’t get a chance to talk to them while we were at the bar. I promise I’ll track down more recipients at the next conference.
  8. Finally, I witnessed the ultimate party foul. What is wrong with this picture? Programming at a bar is like crying in baseball…it just shouldn’t be done!

As you can imagine, I was a little star-struck during the whole event and struggled a little not to feel like a geek stalker. But as my mama always used to say, stalking is as stalking does…

ALT.NET Conference: The Geek Paparazzi Uncover Real Controversy

There have been a lot of criticisms of ALT.NET by bloggers like Colin Ramsay who claim that the nascent movement is elitist, divisive, and exclusive. Several of the attendees have balked at this view, but I will offer conclusive proof that the truth is much more dire than outsiders like Colin could have ever imagined. Here are shocking photos from the ALT.NET conference that prove just how far these ALT.NET’ers are willing to go to keep the movement pure and free of Morts.

Scott Belware’s first order of business at the conference was to make all the participants take a 6,000 question standardized test over obscure open source trivia to prove their worthiness. The test must have been too hard for Martin Fowler, the author of Refactoring, because here you can plainly see him trying to cheat by sneaking a peek at someone else’s answers.

Scott Hanselman was so upset when he failed the test that he went on an all night drinking binge. He tried to cover it up by claiming that he didn’t drink and walking around the bar with a coke instead of a beer, but does this look like the face of a sober man to you?

Joe Ocampo from LosTechies passed the test, but his score was too low for him to learn the secret handshake. This picture shows how distraught he was after Scott Bellware broke the news to him.

James Newkirk, lead developer of NUnit 2.0 and author of “Test Driven Development in Microsoft.NET”, also managed to pass the test, but was kicked out after he expressed his disapproval of the Behavior Driven Development approach to testing. James takes his revenge here by dropping a water balloon on Scott Bellware from the top of this balcony.

Fearful that he would soon come under attack by a gang of angry morts, Scott Bellware suited up in his gladiator outfit to defend the ALT.NET secrets. He also gathered a gang of gangsters to do his bidding. Below, several tough looking goons surround Martin Fowler because he didn’t know what Ayende’s favorite color was.

The incident that finally caused the conference to deteriorate into pillaging and burning was Scott Guthrie’s declaration that Scott Bellware was a mort.

The ensuing riot led to the majority of the attendees spending the night in jail. If you don’t believe me, just look at the police lineup photo that I uncovered. The witness successfully picked out the ALT.NET public enemy number one, David Laribee, who started it all with this post where he coined the phrase ALT.NET. His clearly anti-Microsoft body language probably gave him away.

The next time you hear something bad about the ALT.NET group, just remember that the reality is probably far worse than the mild claims floating around the blogosphere

ALT.NET Conference: The Verdict on the Open Space Conference Format

[NOTE: First of many posts on the ALT.NET conference in Austin that I attended this weekend]

Initial Doubts - Before I left for the ALT.NET conference, one of my co-workers mentioned that he had visited the conference site and was a little “under-whelmed” by the agenda. I must admit that his comment caused me to suddenly doubt the wisdom of my decision to attend the event.

I was used to large, well-organized conferences like Tech Ed and VSLive where you had hundreds of detailed abstracts to choose from. By contrast, the open space “self-organization” approach, which relies upon the participants to set the agenda during the opening of the conference, seemed hopelessly idealistic and destined to produce lots of unproductive time haggling over unimportant details or discussing tangents.

I was stilled very excited about the chance to interact with so many notable technical leaders in a small group environment (the list of attendees included Martin Fowler, Scott Guthrie, Scott Hanselman, Roy Osherove, Jeremy Miller, David Laribee, Jamie Newkirk, and many more), but my expectations for the open spaces format were pretty low.

What Actually Happened – The process of creating an agenda was informative and painless. After some opening introductions and discussions around the purpose of the conference (the meaning and appropriateness of the name ALT.NET led to quite a few lively debates), everyone was given a chance to write their ideas for sessions on sticky notes and then briefly present them to the group before placing them in a time slot on a large white board.

It worked well to have the participants do this one at a time and share their thoughts with the group before submitting them, because you could tangibly see how each idea inspired other ideas since people would often jump up after listening to someone in order to quickly scribble their own thoughts for session.

Once the momentum for session brainstorming subsided, participants put their initials on the sessions they were interested in attending and then let the organizers go off by themselves to renegotiate the final schedule and assign rooms based on topic commonalities and the amount of interest in certain topics.

The sessions themselves also went a lot smoother than I expected. Although the person who suggested the idea often started each session by elaborating on their original idea, every session I was in quickly took on a life of their own so that an outsider wouldn’t have been able to discern who the original facilitator was.

If I was new to a topic, I had a chance to guide the discussion by asking questions targeted at exactly what I didn’t understand. If I was knowledgeable on the topic, then I could help solidify my understanding by trying to articulate my own experiences and insights or else toss out more advanced questions for the other experienced people in the group.

Regardless of the experience level, everyone in the group did an amazing job at critically evaluating every tool, concept, and assumption that was discussed. I think I learned more about the process of how to critically evaluate a tool or technology in order to truly grok its strengths and weaknesses than I did anything about any particular technology.

Conclusions  - During the closing comments, everyone got in a circle and shared their impressions of the conference. As I was waiting for the germ-infested, squishy stress ball to be passed to me, I realized that I actually liked this conference a lot more than I did TechEd or VSLive.

Although conferences are a good way to remove the distractions of home and work and switch you into a learning mode, I find the passive, one-way communication format of traditional conference sessions to be one of the least efficient ways of learning. When I am reading a book, watching a web cast, or even listening to a pod cast, I have control over the pace and can fast forward/skim over non-relevant content, pause it if I am craving some hands-on experience to solidify the knowledge, or rewind if I am just not groking the material. However, at traditional conferences I have no control over the learning and find that I either learn a lot less or else totally tune out because the pace of the presentation rarely matches my own needs.

By contrast, the more socratic approach of an open spaces conference allowed me to take a much more active role in negotiating the pace and also exposed me to a level of critical thinking that I have never seen during a presentation. I think this is mostly because traditional presentation formats do not encourage participants to express their questions when they are naturally appropriate and relevant, so conversations rarely occur. If they do, discussions rarely build up enough momentum to get at the core of an issue.

In summary, I think that my days of going to large conferences to do anything other than speak myself are over. Although I find the act of preparing and delivering a presentation is a great way for me to learn and the conversations you have technical leaders and developers who are passionate about their craft are invaluable, I just don’t like being on the receiving end of a one way communication stream that I can’t control. I much prefer this open space format and sincerely hope that this type of conference becomes more common in the future.

Fake Steve Jobs 1, MicroBorg and Freetards 0

The spoof blog The Secret Diaries of Steve Jobs has the best news summary of the recent debate over Microsoft’s motivation behind releasing the source code for the 3.5 framework. It’s concise, insightful, and most importantly hilarious. With all the animosity and paranoia constantly floating between Microsoft and the Open Source Community, I almost forgot that there is another rather large group that hates both the MicroBorg AND the freetards. As an aside, why doesn’t Apple, or any other 3rd party vendors for that matter, ever seem to get criticized for keeping their code proprietary?

If you’re interested in hearing some well thought-out alternative viewpoints on this topic, read these posts by Ayende and Miguel de Icaza. I agree with their desire to see Microsoft eventually loosen their proposed licensing agreement and legally allow for modifications and enhancements to the framework. The vast majority of developers would never take advantage of open licensing in corporate software shops because it would to the maintenance nightmare to have to reapply changes every time Microsoft released a hot fix or update. However, I do think that a few of the alpha-geek elite like Miguel and Ayende would come up with some innovative stuff if given the opportunity and both Microsoft and the rest of the developer community would end up in a better place because of it.

At the very least I hope that Microsoft is smart enough to realize what a public relations nightmare it would be if they ever legally went after the Mono project for any potential similarities in code. I am someone who quickly gets bored with excessive Microsoft bashing, but even I would turn my back on them in disgust if they did that.

In the meantime, I am going to bask in finally being able to step into the base class libraries with the Visual Studio debugger rather than having to rely upon Reflector or second-hand google detective work. Cheers to Scott Guthrie and the people who helped make this possible!

The Echo Chamber Challenge

What started out as a simple blogging research effort quickly degenerated into a quest that was part endurance challenge and part existential masochism. I successfully completed a 50 mile ultra-marathon last year, but the mental and physical stamina required for that feat of endurance pales in comparison to this one.

I challenge you to read through the entire comment section of Scott Guthrie’s blog post announcing that Microsoft will be releasing the source code for the 3.5 framework and read every trackback blog post in its entirety. I warn you, there are more blog posts about this event after less than a day than there are stars in the sky and most of them are mind-numbingly repetitive. I only managed to make it through about 1/4 of them before I was overcome by a combination of spiritual malaise and mental anxiety that I imagine only victims of water torture experience.

Good luck in your quest. Make sure to have plenty of caffeine on hand along with the number of a good therapist or suicide hotline before starting out on your quest.

May God Have Mercy on Your Soul,
-Caffeinated Coder

« Previous PageNext Page »