5 posts categorized "System Design"

November 03, 2008

CodeDOM

  Reed Robinson has been talking about the Mobile LOB Accelerator lately. This got me thinking how I could make it easier to write applications based on it. This then lead me to CodeDOM. Ok I am lying but then I can't give away all of my secrets.

Continue reading "CodeDOM" »

January 30, 2008

Gartner MAG

Gartner Inc, one of the leading information technology research and advisory companies, has defined a construct they refer to as a Multi-Channel Application Gateway (MAG).  Gartner believes that utilizing MAG architecture makes development of mobile applications easy and deployable to any device.

Continue reading "Gartner MAG" »

December 21, 2007

Solid State Drives

Over the last year a quiet revolution has been brewing - solid state drives, SSD. If you have been in an electronics store lately you have seen flash drives of up to 8gb. Prices range from under $10 for a gig to mid 200s for 8gig. Now look at that I can have 8gb flash drive for $250 bucks. Put enough of those together and I could have a sizable hard drive.

Continue reading "Solid State Drives" »

October 22, 2006

Performance Myths

There are many myths in the programming world. Myths like programmers know how to fix your computer or know how to fix networks. That programmers don't learn anything knew so when a new technology comes out you fire all your programmers and hire new college graduates. Another myth is that StringBuilder should be used rather than string concatenation.

Continue reading "Performance Myths" »

May 10, 2003

Don't Pull a BMW

Reuters is reporting that the security guards for Thailand's Finance Minister had to smash through his limousine windows. Apparently when the BMW's computer crashes it automatically locks the doors and turns off the A/C. I mention this because it is important to figure out just what the right thing to do when there is a problem. Automated homes are much more complex than a word processing application or check book program and the consquences of an error does manifest in the physical world.

The errors in the program we write can have major consquences. For example the Reuter's article mention that the minister and his driver could hardly breathe for over 10 minutes because the car had turned off the A/C and ventilation. The question that needs to be asked is what is the correct way to handle this problem. Should the designer have chosen to lock up the occupants or not lock them in? Should there have been a way for them to exit the vehicle without smashing the windows. In the context of Home Automation you need to ask yourself what should I do when I get an error. For example at my work we have a major debate going on about what to do when a command fails to executing our software. Should we just automatically retry, let the user know and decide what to do? What would be the best way to handle a disconnect from the system?

Coincidently, the magazine, Scientific American, released an article about self-repairing computer systems. The researchers take an interesting stance:

Our group of research collaborators at Stanford University and the University of California at Berkeley has taken a new tack, by accepting that computer failure and human operator error are facts of life. Rather than trying to eliminate computer crashes--probably an impossible task--our team concentrates on designing systems that recover rapidly when mishaps do occur. We call our approach recovery-oriented computing (ROC).

They target four principals in their research:

  • Speed Recovery - If problems occur the system should recover quitly and automatically
  • Tools to spot fault - Vendors need to provide tools to find the source of a problem
  • Undo - Programs should have the ability to undo the operations
  • Test Errors - Programmers should test their system by injecting errors into the test cases

Take the time to read the article and research. It may help you write better systems for your clients or yourself.