post 'good coders code, great reuse' to del.icio.us post 'good coders code, great reuse' to digg post 'good coders code, great reuse' to reddit subscribe to 'good coders code, great reuse' posts via feed
good coders code, great reuse

An API that isn't comprehensible isn't usable.

James Gosling

I am now on Twitter! Meet me on Twitter here (my nick is pkrumins.)
Or on Google Buzz and Facebook.

Musical Geek Friday 30 May 2008 09:00 am
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

just one more hack geek songThis week on Musical Geek Friday the only song ever about a debugger - Just One More Hack and I’ll Put It on the Net!

This song is written and performed by Mark Wheadon.

He says that once, when he worked for The Kent Koftware Tools Group, he had a colleague Mark Russell who was working on a debugger. This guy had been working on this debugger for quite some time, but he’d never got around to releasing it. There was always a new feature, some new functionality that absolutely had to be added before it could be released to the world. After a while this started getting silly, and so for a laugh Mr. Wheadon wrote a song entitled “Just One More Hack and I’ll Put It on the Net” to see if he could chivvy him along.

Here it is! The Just One More Hack geek song (also know as “the ups song”):

Download this song: just one more hack.mp3 (musical geek friday #7)
Downloaded: 2411 times

Download lyrics: just one more hack lyrics (musical geek friday #7)
Downloaded: 872 times

Here is the lyrics of the Just One More Hack song:

Just one more hack and then I’ll put it on the net,
Just one more hack and then I’ll put it on the net,

Well, I’ve written a debugger and it suits me just fine
it’ll chase away your problems, turn your water into wine
it’s got so many features, in fact it’s bloody clever
if it can’t solve your problem then your problem probably never can be solved
so you might as well pack it on in,
coz it’s the best debugger that there’s ever been.

Just one more hack and then I’ll put it on the net,
Just one more hack and then I’ll put it on the net,

It’s got everything you wanted, everything you desire
it’ll handle fancy structures, set your soul on fire
it’ll indirect through pointers, and catch a falling star
and if you ask it nicely it’ll pop off to the bar and tell your friends
how to solve the problems they’re in,
coz it’s the best debugger that there’s ever been.

Just one more hack and then I’ll put it on the net,
Just one more hack and then I’ll put it on the net,

So if you’ve got a nasty problem and your data structure’s bent
and your pointer’s in a tangle with your structure elements
if you’re losing all your memory coz your allocator leaks
and your girl’s getting nasty coz she’s not seen you for weeks
then stoke up Mark’s debugger and you know it’ll win,
coz it’s the best debugger that there’s ever been….

Just one more hack and then I’ll put it on the net,
Just one more hack and then I’ll put it on the net,

Download “Just One More Hack” Song

Download this song: just one more hack.mp3 (musical geek friday #7)
Downloaded: 2411 times

Download lyrics: just one more hack lyrics (musical geek friday #7)
Downloaded: 872

Click to listen:

Have fun and until next geeky Friday! :)

Comments (8) Comments | Email Post Email 'Musical Geek Friday #7: Just One More Hack' to a friend | Print Post Print 'Musical Geek Friday #7: Just One More Hack' | Permalink Permalink to 'Musical Geek Friday #7: Just One More Hack' | Trackback Trackback to 'Musical Geek Friday #7: Just One More Hack'
(Popularity: 9%) 6,712 Views

Did you like this page? Subscribe to my posts!

I am now on Twitter! Meet me on Twitter here (my nick is pkrumins.)
Or on Google Buzz and Facebook.

Musical Geek Friday 09 May 2008 09:40 am
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 4.2 out of 5)
Loading ... Loading ...

the day the rotuers died geek songThis week on Musical Geek Friday - a song about The Day the Routers Died!

This song is written and performed live at the 55th RIPE Meeting by Gary Feldman (scroll down for a video of him performing it live).

RIPE (Réseaux IP Européens) is a collaborative forum open to all parties interested in wide area IP networks in Europe and beyond. The objective of RIPE is to ensure the administrative and technical coordination necessary to enable the operation of a pan-European IP network.

A RIPE Meeting is a five-day event where Internet service providers, network operators and other interested parties from Europe and the surrounding regions gather. RIPE Meetings are open to everyone and provide an excellent opportunity for attendees to discuss Internet policy.

The song is about a problem that the current IPv4 address space is running out of IP addresses (read about the problem here). IPv4 address space can hold just 4′294′967′296 (232) addresses. The song suggests that we all move to IPv6 address space which can hold 2128 addresses. That many addresses will never run out.

Here it is! The Day the Routers Died geek song:

Download this song: the day the routers died.mp3 (musical geek friday #6)
Downloaded: 3679 times

Download lyrics: the day the routers lyrics (musical geek friday #6)
Downloaded: 1026 times

Here is the lyrics of The Day the Routers Died song:

a long long time ago
i can still remember
when my laptop could connect elsewhere

and i tell you all there was a day
the network card i threw away
had a purpose - and it worked for you and me…

but 18 years completely wasted
with each address we’ve aggregated
the tables overflowing
the traffic just stopped flowing…

and now we’re bearing all the scars
and all my traceroutes showing stars…
the packets would travel faster in cars…
the day… the routers died…

Chorus (ALL!!!!!)

so bye bye, folks at RIPE 55
be persuaded to upgrade it or your network will die
IPv6 just makes me let out a sigh
but I s’pose we’d better give it a try
I suppose we’d better give it a try

now did you write an RFC
that dictated how we all should be
did we listen like we should that day

now you back at RIPE fifty-four
where we heard the same things months before
and the people knew they’d have to change their ways…

and we - knew that all the ISPs
could be - future proof for centuries

but that was then not now
spent too much time playing WoW

ooh there was time we sat on IRC
making jokes on how this day would be
now there’s no more use for TCP
the day the routers died…

Chorus (chime in now)

so bye bye, folks at RIPE 55
be persuaded to upgrade it or your network will die
IPv6 just makes me let out a sigh
but I s’pose we’d better give it a try
I suppose we’d better give it a try

I remember those old days I mourn
sitting in my room, downloading porn
yeah that’s how it used to be…

when the packets flowed from A to B
via routers that could talk IP
There was data… that could be exchanged between you and me…

oh but - I could see you all ignore
the fact - we’d fill up IPv4

but we all lost the nerve
and we got what we deserved!

and while… we threw our network kit away
and wished we’d heard the things they say
put all our lives in disarray

the day… the routers died…

Chorus (those silent will be shot)

so bye bye, folks at RIPE 55
be persuaded to upgrade it or your network will die
IPv6 just makes me let out a sigh
but I s’pose we’d better give it a try
I suppose we’d better give it a try

saw a man with whom I used to peer
asked him to rescue my career
he just sighed and turned away…

I went down to the net cafe
that I used to visit everyday
but the man there said I might as well just leave…

and now we’ve all lost our purpose..
my cisco shares completely worthless…

no future meetings for me
at the Hotel Krasnapolsky

and the men that make us push and push
like Geoff Huston and Randy Bush
should’ve listened to what they told us…
The day… the routers… died

Chorus (time to lose your voice)

bye bye, folks at RIPE 55
be persuaded to upgrade it or your network will die
IPv6 just makes me let out a sigh
but I spose we’d better give it a try
I suppose we’d better give it a try

I also found a live video of Gary performing the song live at RIPE 55:

Ps. The Internet died once in 1997.

Download “The Day the Routers Died” Song

Download this song: the day the routers died.mp3 (musical geek friday #6)
Downloaded: 3679 times

Download lyrics: the day the routers lyrics (musical geek friday #6)
Downloaded: 1026

Click to listen:

Have fun and until next geeky Friday! :)

Comments (6) Comments | Email Post Email 'Musical Geek Friday #6: The Day the Routers Died' to a friend | Print Post Print 'Musical Geek Friday #6: The Day the Routers Died' | Permalink Permalink to 'Musical Geek Friday #6: The Day the Routers Died' | Trackback Trackback to 'Musical Geek Friday #6: The Day the Routers Died'
(Popularity: 10%) 11,012 Views

Did you like this page? Subscribe to my posts!

I am now on Twitter! Meet me on Twitter here (my nick is pkrumins.)
Or on Google Buzz and Facebook.

Musical Geek Friday 25 Apr 2008 04:10 pm
1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 4.83 out of 5)
Loading ... Loading ...

The Eternal Flame, God Wrote in Lisp SongThis week on Musical Geek Friday - God Wrote in Lisp (also known as The Eternal Flame) song!

This song is written by Bob Kanefsky and is performed by Julia Ecklar. It’s a parody of another song of hers - “God Lives on Terra”.

The song is about a question which programming language God could have used to create us?

God had a tight 6 day deadline to create the world, so he had to make a smart decision which language to use. Some folks say that it could have been C++ or C, but these languages are out as God would not have been able to even count grains of sand with 32-bit integers! Others say it could have been Fortran, Java, COBOL or even APL. But we all know the truth…

God wrote the world in Lisp!

Here it is! The God Wrote in Lisp song:

Download this song: god wrote in lisp.mp3 (musical geek friday #5)
Downloaded: 5307 times

Download lyrics: god wrote in lisp lyrics (musical geek friday #5)
Downloaded: 1006

If you liked this song, it’s included in a music CD “Roundworm” which contains parodies about Star Trek, dead cats, Lisp programming (this song), and everything in between!

Here is the lyrics of The Eternal Flame (God Wrote in Lisp) song:

I was taught assembler in my second year of school.
It’s kinda like construction work — with a toothpick for a tool.
So when I made my senior year, I threw my code away,
And learned the way to program that I still prefer today.

Now, some folks on the Internet put their faith in C++.
They swear that it’s so powerful, it’s what God used for us.
And maybe it lets mortals dredge their objects from the C.
But I think that explains why only God can make a tree.

For God wrote in Lisp code
When he filled the leaves with green.
The fractal flowers and recursive roots:
The most lovely hack I’ve seen.
And when I ponder snowflakes, never finding two the same,
I know God likes a language with its own four-letter name.

Now, I’ve used a SUN under Unix, so I’ve seen what C can hold.
I’ve surfed for Perls, found what Fortran’s for,
Got that Java stuff down cold.
Though the chance that I’d write COBOL code
is a SNOBOL’s chance in Hell.
And I basically hate hieroglyphs, so I won’t use APL.

Now, God must know all these languages, and a few I haven’t named.
But the Lord made sure, when each sparrow falls,
that its flesh will be reclaimed.
And the Lord could not count grains of sand with a 32-bit word.
Who knows where we would go to if Lisp weren’t what he preferred?

And God wrote in Lisp code
Every creature great and small.
Don’t search the disk drive for man.c,
When the listing’s on the wall.
And when I watch the lightning
Burn unbelievers to a crisp,
I know God had six days to work,
So he wrote it all in Lisp.

Yes, God had a deadline.
So he wrote it all in Lisp.

Download “God Wrote in Lisp” Song

Download this song: god wrote in lisp.mp3 (musical geek friday #5)
Downloaded: 5307 times

Download lyrics: god wrote in lisp lyrics (musical geek friday #5)
Downloaded: 1006

Click to listen:

Have fun and until next geeky Friday! :)

Comments (7) Comments | Email Post Email 'Musical Geek Friday #5: God Wrote in Lisp (The Eternal Flame)' to a friend | Print Post Print 'Musical Geek Friday #5: God Wrote in Lisp (The Eternal Flame)' | Permalink Permalink to 'Musical Geek Friday #5: God Wrote in Lisp (The Eternal Flame)' | Trackback Trackback to 'Musical Geek Friday #5: God Wrote in Lisp (The Eternal Flame)'
(Popularity: 12%) 13,608 Views

Did you like this page? Subscribe to my posts!

I am now on Twitter! Meet me on Twitter here (my nick is pkrumins.)
Or on Google Buzz and Facebook.

Musical Geek Friday 18 Apr 2008 01:00 pm
1 Star2 Stars3 Stars4 Stars5 Stars (7 votes, average: 5 out of 5)
Loading ... Loading ...

model view controller mvc musical geek friday songThis week on Musical Geek Friday - the Model View Controller (MVC) song!

This song was written and performed by James Dempsey, an engineer at Apple. James says that he searched iTunes for a model-view-controller song but there was none, so he wrote his own song about this topic.

The song is about a particular Design Pattern in software engineering. A Design Pattern is a simple solution to a specific problem that occurs very frequently in software design. The MVC Design Pattern was first discovered and described by Smalltalk people (see the original paper). This key idea of this pattern is that it decouples data to be displayed (model) from the code displaying the data (view) and code receiving user input (controller).

Here it the Model View Controller song:

Download this song: model-view-controller song.mp3 (musical geek friday #4)
Downloaded: 21942 times

Download lyrics: model-view-controller lyrics (musical geek friday #4)
Downloaded: 938

Talking about the MVC design pattern in this song, Ralph Johnson on squeak’s mailing list comments:

The problem is that the song is NOT about Smalltalk MVC. In this song, the controller is a layer between the view and the model, which usually means it is a mediator. The song also says that the controller is copying values from one field to another, which also indicates that it is a mediator. However, in true MVC, the controller is a strategy for handling events. The events come directly to it, rather than to the view. The controller changes the model, but it is not notified by the model. When the user presses a key or moves the mouse, the controller receives the event. It checks with the view to map mouse locations into model coordinates, then interacts directly with the model. If it changes the model then the model notifies all dependents (observers), which notifes the view, which redisplays.

The song desribes Ivar Jacobson’s Model/Interface/Control, in which the Control is responsible for an entire use case. It is not MVC. Jacobson’s model is like the MVC model, but his Interface is a combination of View and Controller and his Control is not at all like a real Controller.

Here is the lyrics of MVC song:

Model View, Model View, Model View Controller
MVC’s the paradigm for factoring your code,
into functional segments so your brain does not explode.
To achieve reusability you gotta keep those boundaries clean,
Model on the one side, View on the other, the Controller’s in between.

Model View - It’s got three layers like Oreos do.
Model View creamy Controller

Model objects represent your applications raison d’tre.
Custom classes that contain data logic and et cetra.
You create custom classes in your app’s problem domain,
then you can choose to reuse them with all the views,
but the model objects stay the same.

You can model a throttle in a manifold,
Model level two year old.
Model a bottle of fine Chardonnay.
Model all the twaddle stuff people say.
Model the coddle in a boiling eggs.
Model the waddle in Hexley’s legs.

One, two, three, four.
Model View - You can model all the models that pose for GQ.
Model View Controller

View objects tend to be controls that view and edit,
Cocoa’s got a lot of those, well written to its credit.
Take an NSTextView, hand it any old Unicode string,
the user interacts with it, it can hold most anything.
But the view don’t knows about the Model:
That string could be a phone number or the words of Aristotle.
Keep the coupling loose and so achieve a massive level of reuse.

Model View - All rendered very nicely in Aqua blue
Model View Controller

You’re probably wondering now.
You’re probably wondering how,
the data flows between Model and View.
The Controller has to mediate,
between each layer’s changing state,
to synchronize the data of the two.
It pulls and pushes every changed value.
Yeah.

Model View - mad props to the smalltalk crew!
for Model View Controller

Model View - it’s pronouced Oh Oh not Uh Uh
Model View Controller

There’s a bit more on this story,
a few more miles upon this road,
well nobody seems to get much glory
writing controller code.
Well the model is mission critical
and gorgeous is the view,
But I’m not being lazy, but sometimes it’s just crazy
how much code i write is just glue.
And it wouldn’t be so tragic,
but the code ain’t doing magic:
it’s just moving values through.
And I wish I had a dime
for every single time
I set a TextField’s stringValue.

Model View - how we’re gonna deep-six all that glue
Model View Controller

Controller’s know the Model and View very
uahh - intimately
They often are hardcoding
which is very verboten for reusability.
But now you can connect any value you select
to any view property.
And I think you’ll start binding,
then you’ll be finding less code in your source tree.
Yeah I know I was astounded,
that’s not even a rhyme.

But I think it bares repeating
all the code you won’t be needing,
when you hook it up in IB.

Model View - it even handles multiple selections too
Model View Controller

Model View - hope I get my G5 before you
Model View Controller

Yeah, yeah, yeah. Yeah.

I also found a video of James singing it live on WWDC 2003. Here is the video:

Download “Model View Controller” Song

Download this song: model-view-controller song.mp3 (musical geek friday #4)
Downloaded: 21942 times

Download lyrics: model-view-controller lyrics (musical geek friday #4)
Downloaded: 938

Click to listen:

Have fun and until next geeky Friday! :)

PS. One of my next posts will be on Design Patterns in Python, so check back! :)

Comments (11) Comments | Email Post Email 'Musical Geek Friday #4: Model-View-Controller MVC Song' to a friend | Print Post Print 'Musical Geek Friday #4: Model-View-Controller MVC Song' | Permalink Permalink to 'Musical Geek Friday #4: Model-View-Controller MVC Song' | Trackback Trackback to 'Musical Geek Friday #4: Model-View-Controller MVC Song'
(Popularity: 15%) 22,345 Views

Did you like this page? Subscribe to my posts!

I am now on Twitter! Meet me on Twitter here (my nick is pkrumins.)
Or on Google Buzz and Facebook.

Musical Geek Friday 11 Apr 2008 03:55 pm
1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 4 out of 5)
Loading ... Loading ...

musical geek friday - jonathan coulton - code monkeyThis week on Musical Geek Friday we have the Code Monkey song!

This song was written by Jonathan Coulton as a part of his “Thing a Week” musical project, where he would write a new song every week and put it on his website. With this song Jonathan instantly became an Internet Hero. He made it to Slashdot and even New York Times (includes video interview with him)!

This song is about a type of programmers called “Code Monkeys“. These programmers do coding without passion, just for money. A person can also be called a code monkey if he’s a newbie or he’s only able to produce low quality code.

Here it is, the Code Monkey song:

Download this song: code monkey.mp3 (musical geek friday #3)
Downloaded: 5492 times

Download lyrics: code monkey lyrics (musical geek friday #3)
Downloaded: 915

Lyrics of the “Code Monkey” song:

Code Monkey get up get coffee
Code Monkey go to job
Code Monkey have boring meeting
With boring manager Rob

Rob say Code Monkey very dilligent
But his output stink
His code not functional or elegant
What do Code Monkey think?

Code Monkey think maybe manager want to write god damned login page himself
Code Monkey not say it out loud
Code Monkey not crazy, just proud
Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart:
Code Monkey like you
Code Monkey like you, youuuuuuuuuuu

Code Monkey hang around at front desk
Tell you sweater look nice
Code Monkey offer buy you soda
Bring you cup, bring you ice

You say no thank you for the soda cause
Soda make you fat
Anyway you busy with the telephone
No time for chat

Code Monkey have long walk back to cubicle he sit down pretend to work
Code Monkey not thinking so straight
Code Monkey not feeling so great
Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart:
Code Monkey like you
Code Monkey like you a lot

Code Monkey have every reason
To get out this place
Code Monkey just keep on working
See your soft pretty face
Much rather wake up, eat a coffee cake
Take bath, take nap
This job fulfilling in creative way
Such a load of crap

Code Monkey think someday he have everything even pretty girl like you
Code Monkey just waiting for now
Code Monkey say someday, somehow
Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart:
Code Monkey like you
Code Monkey like youuuuuuuuuuuuuuuuuu

If you liked it, people on YouTube have posted their videos dancing to this music and even made computer animations for this song. See Code Monkey Videos on YouTube.

Here is my top favorite YouTube video of this song:

Download “Code Monkey” Song

Download this song: code monkey.mp3 (musical geek friday #3)
Downloaded: 5492 times

Download lyrics: code monkey lyrics (musical geek friday #3)
Downloaded: 915

Click to listen:

Have fun and until next geeky Friday! :)

Comments (11) Comments | Email Post Email 'Musical Geek Friday #3: Code Monkey' to a friend | Print Post Print 'Musical Geek Friday #3: Code Monkey' | Permalink Permalink to 'Musical Geek Friday #3: Code Monkey' | Trackback Trackback to 'Musical Geek Friday #3: Code Monkey'
(Popularity: 10%) 12,230 Views

Did you like this page? Subscribe to my posts!

Page 3 of 4«1234»