Sunday, November 1, 2009

Unexpected Joys...

Got this email from my mom today:
Dad and I had an errand today at Lowe's and on the way home on the back road near our house we saw something completely unexpected.  Just as we were getting ready to turn the car I spotted in front of us a man about 10 feet tall.  I knew immediately it was a teen on stilts and along side of him was walking a young lady.  I started to laugh and instead of turning onto our road, I continued on and came along side - laughing and telling him how great it was to see him and how much we were enjoying the view.  He told us he walks around at the football games (in this location I am assuming he meant the college games) and that today their church was having a trick or treat time for the children and he was going to walk there.  We kept smiling and had a nice chat with them until cars started to come then we let them get on their way.  Very neat this experience.   Just wanted to share a grin.
How cool is that?

eBay Listing of the Month...

This listing ends in two days, so you'll have to look quickly if you want to see the real deal.  Meanwhile, for the future amusement of us all, here's the complete text of the listing:
I have a reputation for not putting enough effort into describing items I sell on ebay, so this time I'm going to be very clear in describing the item.


Some of them have wheels which are almost round, mine doesn't. The frame appears to be made of bamboo, painted silver to make it look stronger. When they gave the Chinese made boats the name Junk, I can now see why. Surely, one of the five year old kids tasked with building these things could weld. Every weld on the frame of this thing looks like a passing sparrow has splattered semi metallic poo on it, badly. Every bolt is a different size and the fact that it doesn't change shape if left in the sunlight has amazed me.

I rode it once, that was enough. It was about as comfortable as pouring a cup full of leaf-cutting ants down my undies. Even though I'm so short that my feet are actually above my head, somehow riding this thing saw me wearing my ankles as earrings and trying to steer at the same time. Making things even worse was that it was like riding a chainsaw with wheels. The motor can rev like a cat with a clothes peg on its tail, making this little bike go faster than standing still - which is already a stretch of its safety envelope.

Before I took it for its one and only ride, I had to fill it up with fuel. I couldn't understand how such a small machine could need such a large fuel tank, but then fifteen minutes after I'd put the fire out, I worked out why. The fuel leak from the carby was that severe that by the time I'd travelled 12 metres with my feet behind my head, the grass behind me was on fire. The leaking fuel had some how caught alight and although I was hoping it was a trail of burning rubber from its tyre shredding power, it was merely a small fire, not unlike a burning pipeline in Iraq. Fortunately, the fuel leak was so bad that by the time the fire caught up to the bike, there was nothing left to burn.

The bodywork on the bike isn't even attached. I don't know how it ever could be. There must have been a fight at the child labour factory when this thing was made, obviously the stronger five year old stole the bits that allowed this bike's bodywork to be attached to its silver bamboo frame. So it just sits there making this thing even more ridiculous. You would expect that motorcycle bodywork would be made of plastic, true. But given the fact that this stuff a) didn't burn and b) is as flexible as a Viagra induced erection, tells me that it is something from another planet, possibly China. I suspect that it may be some super organic, self regenerating rice paper or something.





In response to some anticipated questions, here are the answers:

No, I don't have a buy it now price, but if you can convince ebay to refund my listing fee, you can have it.

No, it doesn't have a seat, the manufacturer didn't design it to last long enough for your arse to make it to the where the seat would normally be.



No, the brakes don't work. It wasn't designed to make it that far.

Yes, it is crap.


No, it wouldn't be a nice gift for a six year old, or any other number between 1 and 1000.


Yes, you are welcome to take it for a test ride – after you buy it and then sell it to someone else who advertises it for sale and offers you a ride of it.

Quote of the Day...

From Scott Adams, in Dilbert.  This is the punchline to today's Dilbert strip.  Adams uses it in an entirely apolitical way, but it occurred to me that it must be how most Obamites are feeling right about now...

Computers Suck at Math...

Well, not really.  But they do make mistakes that surprise most people, including most professional programmers.  The basic problem is the way that computers usually represent numbers internally – with something called “binary floating point numbers”.  This article does a reasonably good job of explaining the problems in laymen's terms.

The most common place that errors in computer math show up is in financial calculations, where it's not unusual to need 15 or more digits of precision, and where calculations are often done repetitively (as in adding a large column of numbers).  Just to give a simple example, if the computer represents $0.01 as $0.0999934821, and you add enough of those pennies together, your result will be off by more than a penny.  Even though a computer did the math.

There are other ways that computer math can go horribly wrong, too.  All of these are well-known and covered by extensive literature, yet programmers keep making the same mistakes over and over again.  The basic error is to choose binary floating point to represent money (or other critical values).  Other representations exist.

So why do programmers keep doing this?  I've asked that question of programmers working for me on numerous occasions.  The most common response, by far, is something along the lines of “These errors only show up because the incorrect rounding was used, and I'm using the correct rounding.”  That's just plain wrong, though most programmers appear to be unaware of this.  But probably the most important reason programmers keep using binary floating point numbers is because it's easy, and often the problems with that choice don't show up until after a software system has been in use for a while.

The fact is that binary floating point numbers cannot represent all real world numbers with sufficient accuracy for all uses.  It's not a rounding problem, it can't be “worked around” – they're simply not up to the job.  There are many alternative ways to represent numbers in a computer that do not have any of the problems of binary floating point.  These methods are a teensy bit harder to use in most programming languages, and not at all harder in some.  There is, in most cases, a small performance penalty – irrelevant in all but the most compute-intensive algorithms.

So be careful with those binary floating point numbers, y'all...