Archive for December, 2006
December 29, 2006 at 9:04 am · Filed under code
According to this article, there are two types of people in this world.
-
Those who understand that software will never be perfect and every good (and bad) software company ships products with known bugs
-
People who don’t
It goes on to recount how those of us from the the first group often forget what it was like when we were once part of group 2, and we often don’t understand when people react with horror and dismay that we would release a product before we fixed every know bug.
I have to say I agree.
Working as a developer for an e-commerce company I’ve come to realize bugs are a part of life. Its probably different for developers working on a single product where bugs are found, and the fixes are released, but in this area, while a lot of the process is the same, there are differences.
The vast majority of our work is bespoke. We make e-commerce sites for people. People want different things. Thats just the way of things.
When a client want the system to be able to handle multiple images for products, we put it in as a new feature of our default store. No problems. All future customers will have that option. Then again, what if they want something more bespoke to them? Maybe they want the checkout process to do something different to what it does at the moment?
These are the types of changes that cause the longer term problems for you see if there is a bug in the default store (and yes - there are bugs in the default store, come on, you’re not from group 2 are you?) it becomes part of this bespoke store.
Fixing the individual bugs may not be the problem, moving the fix across all sites is.
Firstly we need to find out if the site is affected by the bug. This depends totally on the site. If their bespoke development affected the area we’re going to be playing around with then we’re either home free or in trouble.
Case 1. We’re home free. This happens when the bug occurs in such a place the either the site specific coding has caught the problem and replaced it, or it was already fixed for this site (and not integrated back into the default store) during the development process. This is what we always hope for.
Case 2. We’re in trouble. Unfortunately this is far more often the case than case 1. The client has asked for some strange functionality and this has changed the specifics of what happens for this site. Now not only do we have to fix the bug, we also have to re-engineer the fix for this site so as not to break it anymore.
So thats the problem. Its never a simple case of fixing a bug then releasing it into the world. For every bug we have to go through possibly hundreds of sites manually. Not what we want by any means. Which brings me back to the original article.
choosing your (bug) battles
To reduce the amount of bug fixes and free up time from just fixing bugs all day to do some actual work we need to ask the following four questions about every bug:
- When this bug happens, what is the impact? SEVERITY
- How often does this bug happen? FREQUENCY
- How much effort is required to fix this bug? COST
- What is the risk of fixing this bug? RISK
The first two questions are questions for the customer (or someone assuming their view) and the last two are for the developers.
From the article, the author suggests plotting the first two on a graph of severity, with the vertical axis the severity, the horizontal the frequency. So a bug that happens every day and causes the user actual physical pain would be in the upper right corner, while a bug that is only noticeable to a developer’s trained eye and only when running a whole suite of obscure browsers to test with would be on the bottom left.
Allow me to illustrate with a lovely graph.

This is what is meant about choosing your (bug) battles. In this instance the blue dot (the very bad frequent bug) would be fixed, while the red (the rare tiny bug) would not be fixed.
If we decide to proceed with fixing a bug the last two questions come into play. Cost and Risk. Cost can be best measured in time, ie. how long would it take one developer to do the work? Risk is a sort of catch all. Its the wild card here.
What if the bug is in a part of your code that you know is full of loop holes and, for want of a better word, hacks. These loops and hacks aren’t necessarily bad. They’ve been put in over time to fix real problems, and they work. They fix the problems. If you go along and start playing around with it - even rewriting it from scratch you enter a very dangerous area. As developers we must learn to leave well alone at times due to one simple truth:
Every code change introduces the possibility of new bugs.
That very fact should weigh on your mind every time you go crawling around old code. I know it does on mine. So if the part of code your bug is in is a dark and dangerous place, take that into consideration before ‘fixing’ it. Every change you make brings up the possibility of more problems, more bugs to fix, and so the cycle repeats.
Considering these 4 questions on each and every bug you come across may seem extreme but luckily the experienced developer can usually run through these decisions in only a few seconds without ever consciously thinking about it. Of course there are occasions where it will take a grouping to solve it and decide the course of action, but then again, thats just what its for isn’t it.
So thats it for now, at least till I go through and correct some of the spelling.
December 28, 2006 at 10:02 pm · Filed under random
While stumbling I came across the following excerpt:
A man from Charlotte, N.C., having purchased a case of very expensive cigars, insured them against, among other things, fire. Within a month, having smoked his entire stockpile, the man filed a claim against the insurance company, stating that the cigars were “lost in a series of small fires.” The insurance company refused to pay, citing the obvious reason that the man consumed the cigars in the normal fashion. The man sued…and won.
In delivering the ruling the judge, agreeing that the claim was frivolous, stated nevertheless that the man held a policy from the company in which it had warranted that the cigars were insurable and also guaranteed that it would insure against fire, without defining what it considered to be “acceptable fire,” and was obliged to pay the claim.
Rather than endure a lengthy and costly appeal process the insurance company accepted the ruling and paid the man $15,000 for the rare cigars he lost in “the fires.” After he cashed the check, however, the company had him arrested on 24 counts of arson. With his own insurance claim and testimony from the previous case being used against him, the man was convicted of intentionally burning his insured property and sentenced to 24 months in jail and a $24,000 fine.
Thats the world we live in I guess. Litigation gone mad.
December 20, 2006 at 1:28 am · Filed under random
If you were to force me to make a list of the top ten ways to end it all, this definatly would not be anywhere on my list. I mean not even in the top one hundred.
Plane hits sewage tank, kills three
SAN FRANCISCO (Reuters) - Three Japanese men died when their small plane crashed into a tank full of raw sewage in California, an employee at the flight school that operated the aircraft said on Tuesday.
Shoki Haraguchi was a flight instructor and Yoshiyuki Kato and Yasushi Miyata were students at Nice Air flight school in San Jose, California, Vicki Gonzales, the school’s office manager, told Reuters in a telephone interview.
The three died on Monday when their twin-engine Beechcraft Travel Air crashed into a sewage tank at a wastewater treatment plant in the farm town of Gilroy, according to the Federal Aviation Administration, which is investigating the crash with the National Transportation Safety Board.
Workers draining the tank, about 10 to 15 feet (3 to 4.7 metres) deep, saw the bodies of the three men in the wreckage of the submerged aeroplane, FAA spokesman Ian Gregor said.
Oh and heres a link to the original article

December 19, 2006 at 1:56 am · Filed under random
Advertising is a fact of the media life we live in. Its everywhere, from the moment you wake up to the moment you go to sleep the majority of us are barraged by advertisers trying to push their products on us.
In recent years, with the increase of the Internets and decrease of effectiveness of traditional advertising the big players are continually trying to move the visibility of their products into more places in our lives. The most visible is a simple Google search for any possibly branded product, but it goes much further than that.
Recently, (and partially against my will I might add) I watched “The Holiday” with Cameron Diaz, Jude Law, Kate Winslet, and oddly enough Jack Black. Whoever thought he’d make a good semi-leading man/love interest is strangely disconnected with the world at large - especially considering the other film he’s in thats also out at the moment is about him finding the Pick of Destiny which is in fact the Devils Tooth. Hmm… Regardless of odd casting choices the case in point remains.
Product placement.
Its been done before, is being done now and will continue to be done for the foreseeable future, and this film broke new ground here. I know of many films where product placement is done, and done well. Where it fits seamlessly into the film, its unnoticeable and can even add to the realism of the situation. This is not one of those films.
Right from the get go you are barraged with Sony related products. The first scene is a pull back from two Sony monitors, to the rather large 42″ monitor Kate’s character is using to write an article on. It looks totally out of place. The moderately sized desk with a massive monitor on that she’s using to just write something out in notepad.
Every possible place has where a Sony product could of gone, it gets put in. The computer Cameron’s character has, to the GIANT television in her house, to the laptop Kate has, to the random sprinkling of Sony LCD televisions and Hi-Fi’s placed oddly around Kate’s house.
I swear there’s even a Sony LCD tv place atop of a cupboard downstairs in Kate’s house. Its never used, never even motioned to. There are no cables coming from the back of it, its not plugged in, and in one scene it even appears to be in the way of actually using the cupboard.
None of it made sense until the very end when I noticed that this film was in fact by, who else, but Sony Pictures. Now that makes sense. Its a shame really that they feel the need to put their wares so much on display, its actually put me even further off Sony products. If such a thing is even possible.

Currently the Fantastic Four holds the record for most product placement on screen at the same time. Quite a record to have.
December 18, 2006 at 7:09 am · Filed under mathematics, music, random
(of order two)
If I were somehow forced to write a song to woo a young math lady this is what it would be like.
Yes I know I’m a math nerd, but did YOU get all the maths jokes.
In case you really want to know, the lyrics are here too…
The path of love is never smooth
But mine's continuous for you
You're the upper bound in the chains of my heart
You're my Axiom of Choice, you know it's true
But lately our relation's not so well-defined
And I just can't function without you
I'll prove my proposition and I'm sure you'll find
We're a finite simple group of order two
I'm losing my identity
I'm getting tensor every day
And without loss of generality
I will assume that you feel the same way
Since every time I see you, you just quotient out
The faithful image that I map into
But when we're one-to-one you'll see what I'm about
'Cause we're a finite simple group of order two
Our equivalence was stable,
A principal love bundle sitting deep inside
But then you drove a wedge between our two-forms
Now everything is so complexified
When we first met, we simply connected
My heart was open but too dense
Our system was already directed
To have a finite limit, in some sense
I'm living in the kernel of a rank-one map
From my domain, its image looks so blue,
'Cause all I see are zeroes, it's a cruel trap
But we're a finite simple group of order two
I'm not the smoothest operator in my class,
But we're a mirror pair, me and you,
So let's apply forgetful functors to the past
And be a finite simple group, a finite simple group,
Let's be a finite simple group of order two
(Oughter: "Why not three?")
I've proved my proposition now, as you can see,
So let's both be associative and free
And by corollary, this shows you and I to be
Purely inseparable. Q. E. D.
Its possibly the most awesome math based love song I’ve hear all morning.
If you want, you can even download it. Isn’t that nice.
Finite Simple Group (or order two) - The Klein Four Group
December 14, 2006 at 4:24 am · Filed under random
So you know that this year google have been giving out digital photo frames to their largest adwords customers. I even posted about it a few weeks ago.
Well now we know that its not just reserved to a select few. At Karova, we got one!!
More than that in fact. We got two!!
Now thats a whole bucket load of good will toward google right there. I might even try and sneak off with one of them when noones looking. They’re a lot smaller than I thought they’d be and on playing around with the settings it turns out that they can play mp3s and even mp4s. How useful is that! Just leave it sitting there playing something in the background while you’re coding away.
