Tuesday, February 26, 2008

Breaking The Build (Parody)

To the tune of Breaking the Girl by Red Hot Chili Peppers. Enjoy with your copy of Blood Sugar Sex Magik.

Much like the original was about a lover scorned, Breaking the Build is about a developer scored.

Any suggestions for alternate lines are encouraged.


I am a geek
Code's all I know
For Web 2.0
You were a geek
New to the team
We were the two
Working with Seam
Four weeks until Go Live
A feeling of pride inside

Coding and hacking
Your skill set is lacking
You're breaking the build
Pager went off last night
So I switched to Ruby
But who am I fooling
We're breaking the build
It won't fix your code

It's two a.m.
I am awake
Trying to fix
Your coding mistake
You were asleep
I'm alone
Working so hard
While you're at home
I guess management was tired
When they thought you'd be a good hire

Coding and hacking
Your skill set is lacking
You're breaking the build
Pager went off last night
So I switched to Ruby
But who am I fooling
You're breaking the build
It won't fix your code

Coding and hacking
Your skill set is lacking
You're breaking the build
Pager went off last night
So I switched to Ruby
But who am I fooling
You're breaking the build
It won't fix your code

Tuesday, February 19, 2008

Decorating a CD (the Decorator Pattern)

The other day I implemented the Decorator pattern on a baby shower gift.

Sometimes those of us in the software engineering fields end up describing stuff in our own lingo and make it very difficult to translate what it is we're doing to our PMs, direct managers or customers. So when an example comes along in every day life to help explain certain concepts, it's helpful to jump on that to help draw a picture.

So as I said, the other day I implemented the Decorator pattern on a baby shower gift.

First the background. A coworker and friend I have worked with for a good six or seven years recently was blessed with his first child. We'll call him Brad. About a month prior to the date, I discovered the Rockabye Baby collection of rock goes lullabye. When I saw the Metallica album I knew it would be a great fit. After giving it a listen, with a lend of the Columbus Library and determining it was really well done and entertaining, a group of us pitched in and got a last minute pseudo-gag gift.

Now, being computer geeks, we didn't have anything handy to adorn this gift with. We could have handed the gift to him with no wrapping, but that wouldn't feel like a gift. We needed to decorate the gift. Commonly we do this by using special paper for this, but we didn't have that either. So we used a hunter green filing folder cut up and taped lovingly around the CD.

This is the first application of the Decorator pattern. Decorators by their very nature wrap an existing object and provide additional functionality. In this case our object was the CD. Our Decorator was a file folder. The additional functionality was gift wrapping. Obviously it's a bit easier to decorate any physical object, while in software you have to write a bit of code to engulf the object you wish to decorate.

What is handy is, when you decorate an object in something like Java, is that you can decorate it again. This was applicable to our gift as well. When digging through some documents, one of my co workers, we'll call her Lori, found an old specification for a project Brad had put a lot of work into for over a year. She took the cover off of the spec, and we used that paper to wrap the CD again. It was funnier than the file folder. So we decorated the CD again.

When decorators are created, they use the object they are decorating as the argument for creation. In order to decorate something, you need to have that object. So we pass the decorated CD, which is still by it's very nature a CD into a new decorator. We now have a doubly decorated CD with even more wrapping features!

We applied a third decorator to add some bows we found in Lori's desk, and a fourth to add a To and From label.

Granted, we could have written one large Decorator to do all four things, but we didn't know we needed to do them at the time. The Decorator pattern provides the flexibility to add features when you need them, rather than needing to know all about it up front.

This example somewhat oversimplifies things here and there. Even so, it's a good way to explain it to someone whose idea of a Decorator are the designers on Trading Spaces.

Sunday, February 17, 2008

Yes, it's a Zune Widget

So, that item on the right hand "nav" bar, for lack of a better term, is a Zune Widget. Yep, a Zune.

OK, stop laughing now.

Anyway, I picked up one of the old 30 GB ones from Woot last November for the princely sum of $89.95 + $5 shipping. Still laughing? Seriously, it's 30 GB of music and video for 94.95. Hopefully the Zune will last longer than the Creative Vision:M did (6 months).

Anyway, the Zune software is not ideal, but it does a decent job. One of the intriguing items was the Zune social site. It keeps up to date on what I've listened to, as long as it actually knows what it is I'm listening to. It seems to have no idea who Wolfgang Parker or Fenster were, or are, which really isn't very surprising.

Anyway, that's what the little widget is up there with it's really strange images of the Bosstones, Primus and Soundgarden. I think you're supposed to connect to other Zune users, but there aren't a whole lot of them. So if you've got one...connect!

Below it is the Plaxo widget...see an earlier post about that plague and feel free to connect to me there if you're so inclined.

Friday, February 08, 2008

The Plaxo Plague

Plaxo is spreading like the plague at work due to LinkedIn connection scraping. As is typical, we're so far behind on this that Plaxo is looking to be purchased (by Google). I mean, if we were on the ball, this would have happened well before they got to that point. They were founded in 2001 after all...granted Pulse didn't launch until the summer of 2007.

That said, I like the Outlook calendar syncing. One of the comments at TechCrunch prior to the Pulse launch was, will people move over to Plaxo in place of Facebook? I'll give you one really good reason why they will. Facebook is blocked at work. Plaxo isn't. I'm sure my business isn't the only one who is blocking it. It's one of the reasons LinkedIn is big at work...not blocked.

I guess this means I should be looking at Google's OpenSocial API. Plaxo supports that. I asked LinkedIn for their API, but they never sent it along. I'm interested in some of the things that Andrew McAfee and others have talked about in using social networks to replace or augment Intranet functionality.

One of the challenges in doing that is to make sure that certain posts and links stay not to your Business Relationships, but to your Company Relationships. I will never know when someone leaves my current company on a social network. If I were to use Plaxo, or Facebook for that matter to augment internal blogs and Wikis, I would need to find a way to create a new network of individuals controlled by the company. I don't want someone who just left the company yesterday to have links to internal URLs posted in their Pulse because I posted this on an internal blog rather than an external blog. Similarly, i wouldn't want to confuse other business relationships with links to internal items.

The privacy of intellectual property is the concern. Can the OpenSocial API help in resolving that? With a little digging, we should be able to find out.