Archive for the ‘Humor/Funny’ Category.

The Fuhrer’s take on Scrum, Agile and CI

I hope you’re not working in this kind of organization.  Period.

Who Said We Can’t Have Fun With Math or Physics?

I was cleaning my Gmail inbox this afternoon, and I stumbled upon a few old emails. One of them was sent to me by my wife and it includes some funny pictures of (apparently real) math and physics homework answers. To all you students who are about to begin your Summer vacation…enjoy!

How Can I Explain This To My Wife?

image

As a Software Developer, I’m MUCH Better At Handling Exceptions Than Handling Babies

I was reminded, after looking at some pictures of last year’s Christmas party at my parents, that as a software developer, I’m much, much better at handling exceptions than handling babies…Meet my little nephew, Xander (the one in the Santa suit in case you were wondering), who might start programming with .NET v7.5, F# and Volta in a couple of years.

Uhhh...need some help here! Lion king impression...


P.S. I have already found a nickname for him…”XML-Boy”.

OK? Whatever!

I received the following error message from Visual Studio after failing to load a solution file.

So there I am, sitting in front my monitor, thinking how small of a creature I am in this endless universe.  I’m also thinking of everything that was going on in the world as I was wasting my time in front of this dialog box.  Suddenly, I ask myself “What exactly does OK mean? Why is there an OK button?  What’s OK about this error message?”.  Since I’m not someone who easily accepts “imposed standards”, I decided to further my little investigation…This is what I’ve found:

According to Whatis.com’s definition of OK,

OK (pronounced oh-KAY and occasionally spelled okay) is a short way to say “I agree.” It’s sometimes encountered in computer messages that seek the user’s confirmation of a request.

Now, I could also search for a definition for “agree”, but I don’t feel like having a recursive day today, so we’ll “agree” that “agree” means “agree”…agreed?

So what exactly am I agreeing to by clicking on that ‘OK button’?  Am I agreeing that I’ve lost a precious minute of my life by trying to load the solution with Visual Studio?  Am I agreeing that there’s a bug in the product and there’s not much I can do to help out my good friends at Microsoft?  Am I agreeing to the fact that I’m a slave to this dialog box?  There’s no democracy! I can’t even express my madness, because there’s only one way to go…the “OK way”.  I hate it!

I then stumbled upon the Urban Dictionary’s  definition for ‘OK’, which I prefer more than the previous definition, since it applies perfectly in this context:

Word used to pacify someone making an unreasonable or irritating demand.  A word which means “alright”. Can also be used in frustration. One of the best words in the english language. It is also used when one does not know what to say.

Yes! That’s exactly the definition of ‘OK’ I had in mind!  All this rationale influenced me in redefining what the ‘OK button’ should’ve said instead…

Which Part Of Your Brain Do You Use The Most?

This is a very interesting article published by The Daily Telegraph.  Depending on which part of the brain you use the most, the left part of the brain or the right part of it, you should see the woman below dancing clockwise or counter-clockwise.

According to the article, if you see her dancing clockwise, then you use more of the right side of the brain and vice versa.  What’s really astonishing about this exercise is that if you really focus and concentrate, she is going to twirl in the opposite direction.

According to the article, the following table should give you a few pointers on the characteristics of the “left brain functions” and the “right brain functions”.

LEFT BRAIN FUNCTIONS
uses logic
detail oriented
facts rule
words and language
present and past
math and science
can comprehend
knowing
acknowledges
order/pattern perception
knows object name
reality based
forms strategies
practical
safe
RIGHT BRAIN FUNCTIONS
uses feeling
“big picture” oriented
imagination rules
symbols and images
present and future
philosophy & religion
can “get it” (i.e. meaning)
believes
appreciates
spatial perception
knows object function
fantasy based
presents possibilities
impetuous
risk taking

Technology for Country Folks

My wife has a lot of family members living in the country in New Brunswick, Canada.  One of them sent her this funny illustration of what they seem to understand every time I go down there and tell them about my job with technology.

I Wasted Ten Minutes Of My Life Today…

imageWhen Visual Studio updates its MSDN documentation to "reflect your recent changes", it throws a dialog box right in your face asking you to wait (or waste) several minutes.  Now I must say that there are some things in life that I accept without much stress, difficulty, and impatience; such as forgetting my wallet at home when it’s my turn to pay the cashier for my full basket of groceries and there are six other people waiting in line behind me because it’s rush hour, or when I’m accidentally inhaling the nasty cigarette smoke from the guy in front of me in the waiting line for the 105 city bus, or when I’m filling an online registration box for the 1000th time.  I can live with that.  On the other hand, something I can NOT stand is when an application shoves a dialog box IN MY FACE…and that dialog box is modal and buttonless! That’s what happened to me this afternoon. While waiting for Visual Studio to finish up digesting the changes to its own MSDN documentation, I realized that I was wasting 10 minutes of my life for this thing to finish.  

So there I am sitting, waiting and wasting 10 minutes of my life looking at that stupid green progress bar.  Suddenly, my mind is thinking out loud "Hmm…I wonder what occurred in the world during those 10 minutes…".  After doing some "research" on the web, this is what I found what happened in our planet while waiting for that annoying dialog box to disappear:

  • The tropical forests lost 1500 acres of life due to human harm
  • 1070 people died (various causes)
  • 100 children died due to malnutrition
  • 7 people died in a car accident
  • 2550 babies were born
  • 2 person learned how to program with Ruby
  • 8 people committed suicide
  • 10 people were murdered
  • 50 people died because they had contracted AIDS
  • 14 people died due to cancer
  • 150 people said "Doh!" (I’m one of them)
  • 3 couple divorced
  • 2 couple married
  • A lion killed a zebra to feed her cubs
  • 4 people changed careers
  • 2,835,281 people got spammed
  • 2,000 people said "I love you" to their partners…only half of them replied back with an "I love you"
  • 30 people wasted 10 minutes of their lives on YouTube
  • 300 people wasted 10 minutes of their lives on FaceBook (I’m one of them)
  • 2 developers managed to integrate their projects under Cruise Control
  • 4 developers managed to integrate their projects under Team City (Go, JetBrains!)
  • 1 person understood the concept of closures
  • 2 people were wondering what is more efficient: C# or VB.NET?
  • 20 developers were still coding with .NET 1.1
  • 2 people subscribed to Jeff Atwood’s feed
  • Britney Spears surely did something stupid (correction: I didn’t need to research this for a fact…)

What else happened in the world while I was waiting for that useless dialog box to disappear?

NOTE TO MICROSOFT: Stop wasting my time with useless "features" like this one.  Whoever wrote the user story for this one should get fired.  Give me an "Ignore" button so I can continue working while Visual Studio is updating whatever needs to be updated.  No wonder I have an ulcer…

God Wrote In LISP

At the end of the interview with Dick Gabriel (Episode #84 of the Software Engineering Radio), the host surprises us with the funniest song in software development to date IMHO…’God Wrote In LISP‘. Software development with se-radio.net…I’m loving it!

Here are the lyrics to the song (from the Laugh along with GNU page of the GNU website)

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.

Amen.

Simplicity, Anyone?

I took some time this morning to read two simple, funny and excellent articles, which I’d highly recommend if you have a couple of minutes to spear. Both articles are written by different authors, but they both converge to the same principles and ideas which I believe in my heart should never be forgotten: “By all means, if possible, keep it simple please!”.

The first article I’m writing about is “The Master, The Expert, The Programmer”, an essay written by Zed Shaw. I can easily relate with his article and ideas, because it deals with martial arts, coding techniques and simplicity. The idea behind martial arts (or any kind of art, such as painting, ballet or preaching) is that practitioner can normally fall in one of these three levels of expertise: novice, expert or master. Everybody starts out as a novice in everything in life (I’ve yet to meet a human being quoting the Declaration of Independence, just five minutes after leaving his mother’s womb). As you gain experience, wisdom and self-realization, your art begins to be a basic part in your life, such as blinking or breathing. You are now an expert on that field…or so you would think. I say “…or so you would think”, because just analyzing your own merits doesn’t specifically set you apart from one level of expertise to another. I think you become an expert in an area when you can actually speak, teach or share your knowledge with someone in a very simplistic way. If your message isn’t understood in, let’s say, ten minutes (I’m being generous here…), then probably yourself don’t understand your own message.

Getting back to the first article, Zed’s message in regards to code is simple: “Keep it simple!”. I have nothing wrong against XML, SOAP, UML, SOA and other buzzword-driven technologies (even driven is a buzzword now!). I know they’re not perfect tools or technologies, and I sometimes regard them as “functional patches”, but I think they’re a great foundation for future improvements, practices and tools. What I do have a beef with is when they are used in a way that, sadly, adds more complexity than necessary to solve a problem. Take for example this basic math problem. Suppose, I want an equation (a software would represent the equation in this example) that gives me a result of 4 (here the result is the problem I’m trying to solve). You can say that 2 + 2 = 4 and get your paycheck for it. You can also say 4 + 0 = 4, but sometimes people don’t like zeros. “It’s not sexy!” they would say. “Might as well use something better, something sexier”. So we go for an extreme solution that is soooo complex that we actually think it’s bulletproof! Cool…let’s go for log(85)*100-(50*3)-38.94189 = 4. This time you get a paycheck from the customer, and the guy in charge in maintaining your solution gets a headache. I don’t want to be that guy.

Sometimes I wonder why humans like to complexify things. Is it to represent someone’s signature, like graffiti on a wall? Our planet is simple (since it’s my blog, I’ll just say because I believe that God is simple). Nature is simple. For example, cats can’t swim; therefore you hardly ever see a cat near a beach. Programming and software development is already complex, since you’re dealing with two very difficult things: 1) Mathematical abstractions and 2) Humans. I’ll save my ideas on these thoughts for another post, but I just want to say this: Why add a third, or a fourth, or a fifth degree of complexity in our solution? God bless the Three Amigos and the Gang of Four, but do you really need to add graffiti in your solution? Don’t get me wrong though. There are some situations that are perfect for a pattern implementation or an UML diagram. But if you don’t need them in your problem domain, why use them? Keep it simple so that in the future, not only will you be able to tackle its maintainability, but there might actually be a tool or technology to ease your solution in such a way that all you’ll have to do is swap in and out your old solution for a new and better one.

The second article I read is “The S stands for Simple” by Pete Lacey. I almost fell off my chair laughing while reading his article. It’s short, hilarious, yet very realistic. He basically writes a dialog between a developer and a SOAP Guy. The SOAP guy can actually be anyone who swears by all these new technologies that are appearing on the Web. Like I said, I like to call them “Functional Patches”. It’s like in America, they say “Guilty until proven innocent”. I say the same thing in Canada regarding software development “Useless, until proven useful”. Check out this dialog….

Dev: Let me sum up. The definition of SOAP is in constant flux, SOAP is anything but simple, and it is no longer meant for accessing objects-even though that’s what all the tools still do.

SG: That’s about right, but we’re way ahead of you on this. We’ve deprecated the meaning of the SOAP acronym.

Dev: Really! What does it stand for now?

SG: Nothing.

Dev: (blink)

SG: Let me tell you about UDDI.

“Let me tell you about UDDI” This is the part where I almost fell down my chair.