It’s a wonder anything works! From :- OMG Ponies!!! (Aka Humanity: Epic Fail) – Jon Skeet: Coding Blog


 

Quote

OMG Ponies!!! (Aka Humanity: Epic Fail) – Jon Skeet: Coding Blog

 

It’s a wounder that computer system works!

The above blog post is a very interesting read. It highlights a number of fundamental areas of computing where reality and the computing world don’t “see eye to eye”.

Numbers

Put simply computers work in base 2 numbers (binary). Humans work mostly in base 10 numbers (10 finger and thumbs). Although there are vestigial remnants of other counting systems. A base 12 counting system being the most notable. Remnants of that system include:

  • a dozen as a unit,
  • a gross as a unit, and
  • eleven, twelve as counting separate concepts.

But, when one puts decimal counting (base 10) into a binary world (base 2 – in the computer), all sorts of “bad” things happen. Representation and rounding problems being the most notable.

Dates and Times

A world of pain and problems. We humans seem to navigate this with a maze without too much problem. For computer, or more to the point designers of computer systems infrastructure the following cause a world of pain. These problems include:

  • Time zones, we have more of them than you can poke a stick at. Some of which have the same acronyms, but different offsets from UTC.
  • Daylight savings, we have different rules in different jurisdictions. Some of these rules for daylight savings being on, or off, are arbitrary in the extreme, and don’ lend themselves to being expressed in a way computers can interpret, and apply.
  • Leap seconds. Another one which may, or may not, be supported.

Characters

Another world of pain, when on scratches the surface. Making computers work around the world in every language has built into the system more complexity than one can fully understand. Unicode, whilst offering the ability to represent everything, comes with many subtle rules, which a deep knowledge of is required to understand.

Conclusions

  • It is a wounder that anything on a computer works. Given the fragile state of the underpinnings, it is little wonder that sometimes things break, or crash, or behave in unusual ways.
  • There would seem to be a set “edge cases” or “corner cases” which software should be tested against. The how’s of this concept I’ll cogitate upon.
Advertisements

, , , , , , ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: