Thursday, July 30, 2009

Ram Shift

A programmer started to cuss
Because getting to sleep was a fuss
As he lay there in bed
Looping 'round in his head
was: while( !asleep() ) sheep++;

Thursday, March 12, 2009

Innovative methodology: Rubber Duck method of debugging

> There is an entire development methodology (whose name escapes me at the
> moment) that makes use of that very phenomenon.


We called it the Rubber Duck method of debugging. It goes like this:
  1. Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck (bathtub variety)
  2. Place rubber duck on desk and inform it you are just going to go over some code with it, if that's all right.
  3. Explain to the duck what you code is supposed to do, and then go into detail and explain things line by line
  4. At some point you will tell the duck what you are doing next and then realise that that is not in fact what you are actually doing. The duck will sit there serenely, happy in the knowledge that it has helped you on your way.

Works every time. Actually, if you don't have a rubber duck you could at
a pinch ask a fellow programmer or engineer to sit in.

Wednesday, March 4, 2009

Systems thinking, Passion, and Clear communication

There are three traits that will serve anyone wanting any role at any company: systems thinking, passion, and clear communication.

Systems thinking is a way of looking at the world that allows you to see how many small pieces come together to make a more complex whole. System thinkers see the hidden interconnections that bind together the parts and know how to make the best use of ambiguity and uncertainty as a result.

Passion isn't just about liking what you do. It's also about focus, determination, and obsessing over quality. Yes, you want a job, but do you want a mission? Having this sort of enthusiasm is essential because it will get you through difficult challenges more than almost any other trait.

Clear communication brings everything together. If systems thinking is about the higher-level patterns, and passion is about the details, then clear communication is the means by which the first two traits come into alignment. You need to be a clear communicator as an individual contributor, an executive, and everything in between.

(Gary Flake)

Tuesday, February 24, 2009

I will buy your monkeys

Once upon a time in a village a man appeared who announced to the villagers that he would buy monkeys for $10. The villagers knew that the jungle held countless monkeys, easily caught. The man bought 2 thousand.

As the supply diminished, they become difficult to catch, and villagers returned to their farms. The man announced that he would pay $20. The villagers renewed their efforts and caught 1,000 more monkeys.

The supply quickly diminished, but before they returned to their farms the man increased his offer to $40 each. Monkeys became so rare that it was difficult to even see a monkey let alone catch it. But they caught 500.

The man now announced that he would buy monkeys at $100! However, since he had to go to the city on some business his assistant would now buy for the man. The man departed.

Then the assistant told the villagers, “Look at all these monkeys the man has in that big cage. I will sell them to you at $50 each. When the man comes back you can sell the monkey’s back to him for $100.” The villagers queued up with all their saving to buy the monkeys. The assistant took their money. They never say either the man or his assistant again.

They now owned 3,500 monkeys. They were paid $60,000 to catch them, and bought them back for $175,000.

Monday, February 2, 2009

Nassim Nicholas Taleb's Top Life Tips

  1. Scepticism is effortful and costly. It is better to be sceptical about matters of large consequences, and be imperfect, foolish and human in the small and the aesthetic.
  2. Go to parties. You can’t even start to know what you may find on the envelope of serendipity. If you suffer from agoraphobia, send colleagues.
  3. It’s not a good idea to take a forecast from someone wearing a tie. If possible, tease people who take themselves and their knowledge too seriously.
  4. Wear your best for your execution and stand dignified. Your last recourse against randomness is how you act — if you can’t control outcomes, you can control the elegance of your behaviour. You will always have the last word.
  5. Don’t disturb complicated systems that have been around for a very long time. We don’t understand their logic. Don’t pollute the planet. Leave it the way we found it, regardless of scientific ‘evidence’.
  6. Learn to fail with pride — and do so fast and cleanly. Maximise trial and error — by mastering the error part.
  7. Avoid losers. If you hear someone use the words ‘impossible’, ‘never’, ‘too difficult’ too often, drop him or her from your social network. Never take ‘no’ for an answer (conversely, take most ‘yeses’ as ‘most probably’).
  8. Don’t read newspapers for the news (just for the gossip and, of course, profiles of authors). The best filter to know if the news matters is if you hear it in cafes, restaurants... or (again) parties.
  9. Hard work will get you a professorship or a BMW. You need both work and luck for a Booker, a Nobel or a private jet.
  10. Answer e-mails from junior people before more senior ones. Junior people have further to go and tend to remember who slighted them.
(More)