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.
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.
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.
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.
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.