Recycling: Is it working?

The Region of Waterloo recycling program sent out their quarterly newsletter today. It claims that recycling is extending the life of the region’s landfills. Since expanding the recycling program to accept rigid plastic containers and grocery bags, among other things, the region has managed to divert an additional 2800 tonnes of waste away from our land fills. They had planned to divert 1000 tonnes.

Sadly, the story is missing what I consider to be the most important piece of information: how much money I’m saving in taxes because the region is able to sell raw materials to processing plants instead of just burying it, and because they are able to defer opening another landfill because of the waste that is diverted by recycling.

It is my belief that the most environmentally friendly solution is necessarily the most economical choice because environmentally friendly solutions generate less waste, which is the definition of efficiency, and the most efficient solution is the most economical.

Squish: A Touching Story

Yesterday, a co-worker of mine sent around this inspiring story of a kid who won a baseball game by hitting a grand slam in the ninth inning. I was so moved by the story that I decided make some adjustments to create a whole new story. The setting and characters have changed, but the message is still the same. I hope you find it inspiring.

In Brooklyn, New York, Squish is a hospital that caters to people with terminal illnesses. Some patients remain in Squish for the duration of their illness while others transfer into conventional hospitals. At a Squish fund-raising dinner the director of Squish delivered a speech that will always be remembered by all who attended.

After extolling the hospital and its dedicated staff he cried out, “Where is the perfection in my doctors? Everything God does is done with perfection. But my doctors cannot understand things as other doctors do. My doctors cannot remember facts and figures as other doctors do. Where is God’s perfection?”

The audience was shocked by the question, pained by the director’s anguish and stilled by the piercing query. “I believe,” the father answered, “that when the state certifies a person to perform medicine the perfection that God seeks is in the way people respond to this doctor’s treatment.”

He then told the following story about one orderly Schlemiel:

One afternoon, the director and Schlemiel talked quietly while the hospital’s surgeons were filing in for a weekly meeting. Schlemiel asked, “Do you think they will let me operate?”

The director knew that this the orderly was not at all capable and that most surgeons would not approve of an orderly performing surgery. But the director also understood that if Schlemiel was chosen to perform an operation, it would give him a comfortable sense of belonging. The director approached one of the surgeons in the meeting room and asked if Schlemiel could try his hand at surgery. The doctor looked around for guidance from his fellow doctors. Getting none, he took matters into his own hands and said “We all have more work than we can handle and the hospital is running low on funds. I guess he can join us and we’ll try to put him to work as soon as possible.”

The director was ecstatic as Schlemiel smiled broadly. Schelmiel was told to get some medical textbooks and spend some time in study. As a month passed, the surgeons worked through much of their case load but there was still more work than they could handle. They managed to hire another surgeon, but the wait times for surgery were still increasing. In addition, one patient needed a heart transplant, but none of the surgeons on staff felt qualified to perform the operation. With nobody else willing to take the case, the director called in Schlemiel. Would the surgeons actually let Schlemiel perform such a dangerous procedure at this juncture and risk being the target off an enormous malpractice suit?

Surprisingly, none of the surgeons objected. Everyone knew that it was all but impossible because Schlemiel didn’t even know how to hold a scalpel properly, let alone cut with it.

However, as Schlemiel stepped up into the operating room, the anesthesist put the patient under so Schlemiel could begin. Schlemiel tried to make his first incision, but unfamiliar with how much pressure to apply, he only managed to scratch the patient’s chest. One of the nurses came up to Schelmiel and together they held the scalpel as they made the incision.

The knife jerked its way up the patient’s chest. Schlemiel didn’t know where to stop so he just kept pulling the knife toward the patient’s head, eventually slicing through the jugular. The nurses sopped up the blood. They knew this patient was going to die. Soon the heart monitor would flatline and Schlemiel’s career as a surgeon would be over.

Instead, the anesthesist took the sensors from the heart monitor and attached them to himself. Everyone started yelling, “Schlemiel, open the chest cavity. Open the chest cavity.” Never in his life had Schlemiel opened a chest cavity. He fiddled with the retractors wide eyed and startled. By the time he figured out some way to use them the patient was dead. The nurses could have told Schlemiel who was still fumbling with the retractors.

But the nurses understood what the anesthesist’s intentions were so they all played along with the charade. Everyone yelled, “Cut the ventricals, cut the ventricals.” Schlemiel started cutting as blood gushed everywhere. As Schlemiel removed the heart, one of the nurses patted the sweat off his forehead with a cloth. She passed him the replacement heart, screaming, “Schlemiel, stitch this in.” Schlemiel stitched the corpse up as best he could. When he finished, all 18 nurses lifted him on their shoulders and made him the hero as he had just performed the hosptial’s first heart transplant.

“That day,” said the director softly with tears now rolling down his face, “that team of nurses and doctors reached their level of God’s perfection.”

A Personal Policy for Open Source Software

Just to rehash on an earlier post, I have formulated a personal policy for using and developing Open Source Software. As I mentioned in the earlier post, I have decided to give myself permission to use open source software, despite the harm that I expect it will bring to those that develop it free of charge. The way I see it, they are trying to find their way in life, just as I am trying to find my own. Who knows, in the end they may prove me wrong.

As for developing Open Source Software, I will only work on it if I can foresee some monetary advantage to be gained from it. That is, I will work on OSS if my employer pays me to, or if by adding a new feature to some piece of free software, it enables me to save or earn money in some other way.

In the end, my whole policy boils down to saying I have to have a strong business case for using and developing Open Source Software.

Risk Aversion

On second thought, my questions the other day were not so much about crappy coders as they were about risk aversion. Rephrased in such terms, the questions might read more like:

  1. Does risk exist?
  2. Is risk aversion sufficient for goal acheivement?
  3. Can risk aversion inhibit goal acheivement?

After giving it some more thought, my answers to these questions are yes, depends, and yes.

Let’s start with the first question: does risk exist? Sure it does. There are any number of things that can happen that can prevent somebody from acheiving his goals. He could get hit by a bus, forget to complete some critical step, or overlook an important piece of information. If there was no such thing as risk, neither would there be insurance companies.

As for the second question — is risk aversion sufficient for goal acheivement? — it seems to depend on what is included in the list of risks to be averted. I’d guess that most seasoned developers have had a chance to work on a project that came in on schedule, under budget, and meeting all of the stated requirements, but was a piece of crap — the code was a mess, the interface was clunky, the documentation was incoherent, and the customer hated it. (I can’t say for sure, but I’m guessing Microsoft Bob went something like that).

One could argue that the project managers on such projects simply don’t recognize all the risks. If they would look beyond budget, schedule, and requirements, they would be able to avoid the other problems. The problem with this argument is that there is always the risk of not recognizing a risk. Perfect risk avoidance is impossible.

Practically speaking, though, most major risks can be easily identified and dealt with in some way. I’m sure that’s what the Bob developers believed, too.

On the third question — can risk aversion inhibit goal achievement? — definitely. Examples abound. High school boys don’t approach the girls they like because they fear rejection. Software project managers avoid stick to the most fashionable technologies out of fear that they might have to answer for failure with something other than, “We used industry best practices and technology. I don’t know what might have gone wrong.” And I won’t mow the lawn today because it looks like it might rain.

Are We All Crappy Coders?

I posted this on Joel Spolsky’s weblog, Joel on Software.

In the recent thread that asked where all the crappy coders were going, Simon Lucy wrote:

One of milestones on the Road to Enlightenment in the Zen of Software Development is that one is, to use your colourful adjective, crappy.

Having realised that one deals with all the results of being crappy and ameliorates them to the degree where competence is reached.

Simon’s comment has been churning around in the back of my mind since I read it, but the more I think about, the more lost I seem to get. These are some of the questions that have been nagging me.

1. Is every coder, in fact, a ‘crappy’ coder?

2. By avoiding ‘crappiness’, does someone become a great developer? Or merely competent? That is, is crap-avoidance sufficient for greatness?

3. By limiting one’s potential for crappiness, does one also limit his potential for greatness?

Working the System

I am trying out a new stock trading system that I recently developed. It is hardly original, but it keeps me from trusting my gut, and today I took my first profits.

It is a pretty simple system. A buy under two conditions: 1) the stock price trades above the lower Bollinger line for a whole day after previously being below or crossing it, and 2) the stock price is above the 60-point exponential moving average on a 10-minute chart. I sell under two similar conditions: 1) the stock prices has traded below the upper Bollinger line for a whole day after previously trading above or crossing it, and 2) the stock price has fallen below the 60-point EMA on a 10-minute chart.

I tried the system on SMH this week. I bought at 35.15 on Wednesday and sold today, when the price dropped below the 60-point EMA at 36.75. I might have short changed myself. It looks like there might be some rally left in SMH, but I managed to whittle a 4.5% return out of it. Not bad for less than a week, I’d say.

Foiled by Outlook

I had intended to post a screenshot of an amusing survey that MSN Communities is running. Paul, a co-worker of mine, discovered it today, and sent it around the office attached to an email. I, in turn, forwarded it to my Hotmail account, which I access from home using Outlook Express, but when I got home and downloaded the email, the attachment had disappeared.

I managed to download the attachment from Hotmail, but it was sent as file named “winmail.dat”. A little bit of Googling and I found Fentun to decode it. Fentun finds the attachment, but it is unnamed (and half the size of its encoded version).

I have no idea in what file format the image is stored, so I will wait until tomorrow to post the humourous screenshot.

I guess this is just one of the ways that Microsoft aims to win my trust.