How Night Vision Works
11 November 2008
The Night Vision Store & The Opticstore
During the history of warfare, operations at night have always been degraded significantly, if not totally avoided. Typically, soldiers fighting at night have had to resort to artificial illumination, e.g., at first fire and later with light sources such as searchlights. The use of light sources on the battlefield had the detrimental result of giving away tactical positions and information about maneuvers. The advent of new technologies initially in the 1950’s and continuing into the present time has changed this situation. The engineers and scientists at the Night Vision & Electronic Sensors Directorate (NVESD) have discovered ways to capture available electro-magnetic radiation outside that portion of the spectrum visible to the human eye and have developed equipment to enable the American soldier to fight as well at night as during the day in order to “Own the Night”.
Image Intensification: Image intensifiers capture ambient light and amplify it thousands of times by electronic means to display the battlefield to a soldier via a phosphor display such as night vision goggles. This ambient light comes from the stars, moon or sky glow from distant manmade sources, such as cities. A soldier can conduct his combat missions without any active illumination sources using only image intensifiers. The main advantages of image intensifiers as night vision devices are their small size, light weight, low power requirements and low cost. These attributes have enabled image intensifier goggles for head-worn, individual soldier applications and resulted in hundreds of thousands of night vision goggles to be procured by the US Army. Research and development continues today on image intensifiers in the areas of longer wavelength spectral response, higher sensitivity, larger fields of view, increased resolution, advanced displays and image fusion.
Night Vision technology consists of two major types: image intensification (light amplification) and thermal imaging (infrared). Most consumer night vision products are light amplifying devices.
Light amplification technology takes the small amount of light, such as moonlight or starlight, that is in the surrounding area, and converts the light energy (scientists call it photons), into electrical energy (electrons). These electrons pass through a thin disk that’s about the size of a quarter and contains over 10 million channels. As the electrons travel through and strike the walls of the channels, thousands more electrons are released. These multiplied electrons then bounce off of a phosphor screen which converts the electrons back into photons and let you see an impressive nighttime view even when it’s really dark. All image intensified night vision products on the market today have one thing in common: they produce a green output image. In the night vision world there are generations that reflect the level of technology used. The higher the generation, the more sophisticated the night vision technology.
Generation 0 - The earliest (1950’s) night vision products were based on image conversion, rather than intensification. They required a source of invisible infrared (IR) light mounted on or near the device to illuminate the target area.
Generation 1 - The “starlight scopes” of the 1960’s (Vietnam Era) have three image intensifier tubes connected in a series. These systems are larger and heavier than Gen 2 and Gen 3. The Gen 1 image is clear at the center but may be distorted around the edges. (Low-cost Gen 1 imports are often mislabeled as a higher generation.
Generation 2 - The microchannel plate (MCP) electron multiplier prompted Gen 2 development in the 1970s. The “gain” provided by the MCP eliminated the need for back-to-back tubes - thereby improving size and image quality. The MCP enabled development of hand held and helmet mounted goggles.
Generation 3 - Two major advancements characterized development of Gen 3 in the late 1970s and early 1980s: the gallium arsenide (GaAs) photocathode and the ion-barrier film on the MCP. The GaAs photocathode enabled detection of objects at greater distances under much darker conditions. The ion-barrier film increased the operational life of the tube from 2000 hours (Gen 2) to 10,000 (Gen 3), as demonstrated by actual testing and not extrapolation.
Thermal Imaging:
Most objects in natural scenes, as well as human beings and manmade objects emit electro-magnetic radiation in the form of heat. Thermal imagers or infrared viewers (also known as FLIRs) gather the infrared radiation and form an electronic image for the soldier. Since they do not rely on reflected ambient light, thermal imagers are totally light-level independent. They also have significant penetration capabilities through obscurants such as fogs, hazes, and conventional battlefield smokes. There are two varieties of thermal imaging systems: cooled and uncooled. Cooled thermal imaging requires cryogenic cooling. Lower performing uncooled thermal imaging systems require no detector cooling but have sufficient performance to provide the low to medium performance required by individual soldier sights, infantry vehicles, navigation, robotics and missile seekers. Present research and development in cooled thermal imaging are pursuing multi-spectral imaging, improved sensitivity and resolution, and embedded signal processing to aid the soldier in target acquisition missions. Current uncooled research is directed at smaller size packages and power consumption with lower cost and increased sensitivity, resolution and field of view. Small, palm-sized uncooled thermal imagers are now available.
About the Author
C. J. Boedeker provides Night Vision equipment and Consulting for both Professional and Hobbyist applications.
He can be reached at
http://www.nightvisionstore.com
or
http://www.opticstore.com
Effective search engine optimization help pop up : pop up that provides help or suggestion for visit
19 October 2008
The History of the cell Phones & how society use them nowadays.
15 October 2008
The cellular phone, a creation which has now been around for and obtainable for ages. Its seen its skills progress and move ahead from something that was simply and straight forwardly just a cell phone, to presently something else incredible that comes with MP3 or digital camera or in fact both. All this is what the current age groups of these days are searching for. The more thrilling gadgets that are included along with it the further you yourself yearn for the cell phone. The recent most in style cellphone available at the moment seems to be the startling iphone. Designed by Apple, it is top of the line, its an iPod & a cell phone. Therefore if you are a fan of technology then this is absolutely the correct hand set for you.
The cellular telephone is also called a wireless or possibly a cellular phone. Although cell cell phones have taken over our current society they have been around for several years, in some style or perhaps another. The cellular hand set industry carries on to inflate and inflate by leaps and bounds as it has in the previous few months. Even though it began little more than 20 years ago. Makers have Presented lots of new technologies that keep mobile phone you yourself coming back for extra. They go on every month to escalate the collections of capabilities & services to receive the mounting requests of what nowadays, on the go civilisation desire.
There are different networks. The current best & most attractive ones are Orange, T-Mobile, and Vodafone. These days you yourself can opt whether people wish for to take the phone contract on pay as people go or possibly on an actual contract. Contract cells are ordinarily the most sought after sort of deal and with it it means the best part of the time you don’t take to pay for a state of the art new cell phone, it useually comes free with the package. Mobile phones on contract give you the most flexible choice in regards to how people use it, there is a big decision within the forms of deals attainable to customers. It makes it extraordinarily easy for people to opt a deal that is suitable for one’s requests and how you use it. Compare Mobile Phones and offers with MobileShop.
1. Do not name your SSID your last name or first name
2. Do not have your pass phrase your last name of first name
3. Don’t leave your wireless channel at six, change it to 2 or 11
4. Don’t leave your wireless network open enable some sort of encryption
5. Place your wireless router in the middle of your home not next to a wall
6. Don’t place your wireless router next to large heavy objects
7. Configure your laptop not to automatically connect to a wireless networks named “linksys”
8. Don’t leave your passphase the same and change it every couple months
9. Don’t use only WEP encryption, enable WPA2 and your wireless network will be a lot safer.
10. Don’t use AES wireless encryption for wireless gamming it does slow your network down.
11. Don’t start configuring your wireless network until you have upgraded your wireless router firmware
12. Don’t purchase anything but wireless MIMO routers for home networks, MIMO routers will give you better coverage.
13. Don’t leave your transmit power at the default transmission level. If you need a strong signal turn it up, if you don’t turn it down to the minimum
14. Don’t place your wireless router in the lowest spot in your house. Place it as high as possible to give you the best coverage.
15. Don’t have your wireless antennas pointed in the wrong direction. Meaning your signal does not emit from the points, they emit from the sides.
16. Don’t expect to achieve those 108 mbps speeds that are advertised with MIMO routers….those speeds only are achieved under super ideal circumstances.
17. Don’t upgrade your wireless routers firmware over a wireless connection
18. Don’t upgrade your wireless routers firmware until you have reset your options to the defaults
19. Don’t confuse an access point for a wireless router. Wireless routers act as a firewall, access points do not.
20. Enable some sort of security on your wireless router, if you don’t you will be sorry
If you have a question we have the answer. Come check out the most popular wireless technology database on the internet http://www.wirelessninja.com Simple and Secure wireless networking. Come See us today!!
Linux or Windows - Which is it?
19 August 2008
Computer users and programmers have become so accustomed to using Windows, even for the changing capabilities and the appearances of the graphical interface of the versions, therefore it has remained Microsoft’s product. Although, Lycoris, Red Hat, Mandrake, Suse, Knoppix, Slackware and Lindows make up some of the different versions of LINUX. These companies release their own versions of the operating systems with minor changes, and yet always with the same bottom line. The simple fact that not one of these companies are close to competing with Windows, for the most part causes the difference in market share.
It sometimes seems everyone on the planet is using Windows. Many say Windows is way better than LINUX because of the simple handling of the software or hardware. There are huge differences between the number of users of LINUX and Windows. Many say LINUX is far better because it started as an Open Source software and thus is more flexible than Windows. Then what accounts for the enormous difference in market share between these two operating systems?
Windows and Linux are different in many ways.
1. Windows GUI is an integral component of the OS; speed, efficiency and reliability, while the Linux GUI is optional, are increased by running a server instance of Linux without a GUI, something that server versions of Windows simply can’t do. The nature of the Linux GUI makes remote administration of a Linux computer easier with a more natural feel than Windows computers.
2. The command prompts of the operating systems are very different. The command interpreters in the Windows 9x series are very similar to each other and the NT class versions of Windows also have similar command interpreters. There are, however differences between a Windows 9x command interpreter and one in an NT class flavor of Windows. Linux, like UNIX, also supports multiple command interpreters, but it usually uses BASH or “Bourne Again Shell”.
3. While you have to pay hundred’s of dollars for a new Windows version, you can just go download Linux. There’s no manuals or simple installers for the free version. Although there is quite a learning curve when utilizing the free package. There are some easy automated packages of Linux for low prices.
Microsoft’s “big con” is the supposed security issues with windows. Most spyware, adware and malicious files programs work with Windows just fine. In general you do not deal with these kinds of circumstances unless you are working with Windows. whereas Linux offers a strong protection, password protection for Windows can be bypassed with ease.
The software availability is the key to why Windows wins over Linux in this competition. Most software releases are already configured for Windows. If you chose to use Linux you must copy Windows with special software in order to use your windows based programs. You could always install Windows as a subsystem to Linux, this would take the administrative capabilities of Windows and allow them to funtion on Linux.
If Linux is ever to compete with Windows, it must become more user friendly and provide serious technical support.
For information about:
J. Brian Keith
Data Recovery, or Articles about
Data Recovery Services
The Arena for Gaming Laptop Computers Is Getting Crowded
15 August 2008
The times where gaming notebooks were a small sector are disappearing extremely rapidly. Even though they weren’t good sellers they did have amazing mark ups. They were the kind of laptops desired by everyone however the price was just too high. Had you been a power hungry user they were simply the best laptop computers you could purchase. Having mentioned that most of us probably did not buy laptop computers of this kind because of the cost. The future for gaming laptops is now seen by the giant brands as a great opportunity for them.
Just envisage how much profit these companies could be generating especially when utilising mass production. This would be one of the few margin producing products they have as they make little on many others because of the enormous competition. Companies of that class are aware they can get purchasers to buy laptop computers at ridiculous providing they market it well. Do the little retailers even stand a chance with this type of competition? Now customers will have greater choice it makes it troublesome for the small system builders. I reckon purchasing from a recognisable brand also provides the perception of greater value for money.
The companies latest laptops are receiving a lot of awards as being the best laptop computers from the press. In my opinion though, this is actually a source of promise for the local guys in retail. Customizing the specification is a thing all the geek’s love. These prospects have the technical know how and could analyse which laptops are best. If choosing performance and looks, these people generally choose the former.
For the customer, this holds lots of plus points. I can predict some price wars occurring in this market after the early stages. Don’t forget that’s just my opinion on the situation. Whether notebook prices will be reduced on the whole is another subject however the best laptop computers are traditionally high priced. It’s difficult to know what will take place now that the global brands have become involved in creating gaming notebooks.
One can witness the effects of this at this moment. Just check out how cheap the gaming laptops are at http://www.rizeon.com/gaming_laptops/page.php
100% office safe amusing animated backgrounds
9 August 2008
Desktop backgrounds and wallpapers are one of the easiest customisable options for any computer user, however inept. Most people choose a picture of their favorite celebrity, car or escapist destination. Others choose animated wallpapers, often depicting an idillic mountain stream or a white sand beach with breathtaking ocean views.
A new style of simple, safe, tasteful and incredibly easy to install animated wallpapers are on offer from diseno-art.com. These GIF animated wallpapers are 100% office safe and can provide entertainment or inspiration for anyone viewing.
Often when working with a computer for hours on end, and the monotony associated with office life (generally), people become bored and listless. These wallpapers aren’t going to change your office into a club 18-30 party, but they are tailored for office staff amusement because they were designed by office staff.
Each original animation displays a series of amusing quotes, phrases, captions, anecdotes, facts or brain teasers. The animation runs constantly and can be seen whenever all your windows are closed or minimised. With many variations, regular updates and new animation’s added weekly there is no shortage of material, there’s even one for quitting smoking!
GIF animations are similar to traditional cartoon animations - both comprising of a series of frames put together and displayed at set intervals. Because a GIF is just an image - no unknown files to download - they can be set as a desktop wallpaper by even the most devoted technophope.
The simplicity of GIF animations and the easy downloading process - just save it as an image and then set as desktop background - means many wallpapers can be downloaded and set as your mood desires. When you need a need a change, go back and get some more, there’s always new ones.
Now Albert Einstein, Richard Nixon, Bob Dole and Mr. T can lend you their opinions on the world, however inaccurate. Fascinating facts can amaze you, quotes can amuse you and riddles can puzzle you, all of this while your ‘working’.
To get these animations, or just see them in action visit - http://www.diseno-art.com
3 Super Advantages Of Barcoding And Barcode Scanners
30 July 2008
The use of barcoding and barcode scanners has transformed operational efficiencies of a phenomenal number of businesses both large and small. Simple yet effective, the barcode as an invention has made itself indispensable purely by the multi-faceted advantages that its offers to the user across the entire barcoding spectrum - from generating barcodes through customizable barcode generating software right up to sophisticated barcode scanners and barcode readers. Here we present to you the killer advantages of these marvelous devices.
Super Advantage 1: Speed and Accuracy - A really good data entry operator would be able to enter a 12 digit number (like product code for example) on his keypad in approximately 4-5 seconds, but the average would be more like 7 seconds. The same operation if performed with a barcode scanner would take just one flick of the wrist, less than a second. The speed difference is evident - the use of the barcodes is unmatched in its ability to plough through large volumes of these operations effortlessly. While a data entry operator might make keyboard errors when he types in data, the chances of a barcode reader giving wrong output is practically nonexistent tending almost to zero. For all practical purposes, accuracy is exact, every time the barcode reader makes its flowing motion over the barcode.
Super Advantage 2: Implementation Ease - You decide you want to start using barcodes for your products but are worried that you have never done it before? Fear not, for in 10-20 minutes of your time that scenario will get reversed. The use of barcode readers is almost childishly simple with no prerequisite for usage. Not only can anybody do it, but they can do it quickly as well for the learning curve of using barcodes is extremely steep and short.
Super Advantage 3: Bang for the buck - If you could capture information quickly and accurately, it could only mean a tighter supply chain and well-knit business processes based on this information. With superior information, you can take superior business decisions that increase shareholder value. Imagine what disastrous consequences incorrect information could have on your business! A vast collection of barcodes and barcode scanner usage data has revealed that the investment made in this technology pays back in as short a period as 6 to 10 months - way faster than most modern technologies that attempt to improve the way we conduct our business. Thus the barcode genre is one where the customer truly gets good value for money and high return on investment.
One can never get enough of the importance and advantages of barcodes and barcode scanners. It now only remains for you to start scouring the market for various barcoding solutions to unlock the immense savings and gains that are lying in wait for your business! Go ahead and barcode your business growth in to the future!
Discover how to get the most bang for your buck! Visit our site at Best Barcode Scanners for more such practical advice, tips and information. © 2005, Max Patel. You may publish it at no cost, as long as the links are left intact & made live.
The realization about the need to prepare for safeguarding crucial data on your hard disk may come a little too late when the computer or the hard disk has crashed. Data loss could mean, for a small business, going out of business unfortunately, sometimes permanently. Rebuilding years of data is out of question. It is pertinent to know the whys and hows of data loss in order to understand data recovery better.
Important Causes of Data Loss
What you hoped will not occur, perhaps because of no reason, could always hit you hardest unless you are safeguarded against them. Computer running slowly could be because of spyware scrupulously installed could be working behind screens to destroy or transmit data to their masters eventually causing hard disk to crash. Others like electric storms, power surges, mechanical failures, fires & floods and user errors (sometimes in disregard of warnings) could affect your computer without any or sufficient warning.
You could also loose data because of sudden but unintended deleting of files or programs. Accidental disk format, virus attack, partition loss are some more causes for data loss.
Data Protection
Data protection is the best policy than ruing over the loss. You can make use of trusted data backup software which automatically backup your data regularly, if you can’t do it yourself manually. Keeping backup of backups will safeguard you against the worst eventualities, too. Turn off your computer immediately as you hear strange noises like creaking run of hard disk. It is also wise to unplug power cords, modem and telephone cables when you are going out of home or office for a long time.
Data Recovery
The first thing you need to understand when dealing with data recovery is not loosing cool. Never act in haste and don’t attempt data recovery yourself unless you are an old hat at that. Call for professional help from your area and who you know.
Data recovery software does a neat job in most of the cases. There are quite a few reliable softwares available, no matter what platform your computer operates on. Data recovery softwares are available for Mac, Windows, Linux, and so on. Don’t attempt to use the software yourself out of gut feeling. If you must, check for user friendly personal packages.
An average company in US alone spends anywhere between $100,000 and $1 million in total for desktop-oriented disasters. This should more than emphasize the need for data safety and disk recovery.
Alan Ross is a regular article contributor on many topics. Be sure to visit his other websites Data Recovery, Security Guards and One Stop Information
Exception handling is an essential part of the programming experience, it polishes the application and is a bulwark against somewhat forgivable oversight. We most likely will not cover every situation in the first build of an application but at least we can include the ability to handle unforeseen runtime exceptions and build some useful tools utilising exception systems to help with the application development process.
CUSTOM EXCEPTIONS
=================
Custom built exceptions are a handy tool for both release and development versions of an application. They can be used in the following ways:
Custom Exceptions as Developer Warnings
—————————————
We can use exceptions to remind us of not providing requisite information to a class or object. For example: We build a class as an interface to multiple vendor databases, let’s call it Multiple Vendor Management (MVM) class. To connect to a particular database we perforce provide the instantiated MVM class with the vendor database type we are connecting to via a database_type method within the class. The MVM class also has a SQL_select method that can be called to return a recordset from our chosen vendor database. Within the SQL_select method is a switch (select case) statement which decides how to send the ’select request’ to our chosen database type. If we fail to provide the vendor database type to our class and call the SQL_select method at runtime or a debug compilation, a default (case else) option within our switch (select case) statement throws a custom exception for developers. The custom exception will remind a developer during runtime testing that the requirements of the class have not been fulfilled during our coding. Below is an example of where our custom exception can be used:
Private Sub SQL_select(SQL As String)
dim exp_developer_1 as RuntimeException
exp_developer_1 = new RuntimeException
exp_developer_1.Message = “‘database_type’ property is not set.”
exp_developer_1.ErrorNumber = -90000
dim rs As RecordSet
select case database_type
case MySQL_DATABASE
if Connect_mysql then
rs = mysql.SQLSelect(SQL)
end if // Connect_mysql
case ODBC_DATABASE
if Connect_odbc then
rs = odbcdb.SQLSelect(SQL)
end if // Connect_odbc
case REAL_DATABASE
if connect_rbdb then
// replace any instance of the word DISTINCT with UNIQUE to cater for RBDB syntax.
SQL = Replace_passed_regex_strings(SQL,”sDISTINCTs”,” UNIQUE “)
rs = rbdb.SQLSelect(SQL)
end if // Connect_rbdb
case else
Raise exp_developer_1
end select
Exception err
d=New MessageDialog
if err = exp_developer_1 then
d.Set_Icon_Caution_Triangle
else
d.Set_Icon_Stop
end if
d.ActionButton.Caption = “OK”
#if TargetWin32 or TargetLinux Then
//ERR_MODULE is a constant that holds the module’s/form’s name + a full stop
d.Title = ERR_MODULE + “SQL_select”
if err = exp_db_error then
d.Message = d.ERROR_NUMBER_TEXT + cstr(exp_db_error.ErrorNumber) + _
EndOfLine + d.ERROR_DESCRIPTION_TEXT + exp_db_error.Message ‘message
else
d.Message = d.ERROR_NUMBER_TEXT + cstr(err.ErrorNumber) + _
EndOfLine + d.ERROR_DESCRIPTION_TEXT + err.message ‘message
end if
#else
//ERR_MODULE is a constant that holds the module’s/form’s name + a full stop
d.Message = d.ERROR_ROUTINE_TEXT + ERR_MODULE + “SQL_select” + EndOfLine
if err = exp_db_error then
d.Message = d.Message + d.ERROR_NUMBER_TEXT +
cstr(exp_db_error.ErrorNumber) + _
EndOfLine + d.ERROR_DESCRIPTION_TEXT + exp_db_error.message ‘message
else
d.Message = d.Message + d.ERROR_NUMBER_TEXT + cstr(err.ErrorNumber) + _
EndOfLine + d.ERROR_DESCRIPTION_TEXT + err.message ‘message
end if
#endif
d.AlternateActionButton.Caption = “Details to Clipboard”
d.AlternateActionButton.Visible = True
b=d.ShowModal
Select case b
case d.ActionButton
case d.AlternateActionButton
d.Details_to_clipboard
case d.CancelButton
end select
finally
// clean up
if d<>Nil then d=Nil
return rs
End Sub
Custom Exceptions used for Call Stack Retrocession
————————————————–
A custom exception could be used to create a call stack (http://en.wikipedia.org/wiki/Call_stack) break out scenario. For example, we have an application that is six calls down a call stack of database transaction routines and a critical data error has occurred. Instead of handling the exception, exiting the routine and allowing the parent routine to continue processing it’s database transactions we use a custom exception to roll back all calls within the call stack and their transactions. We throw the custom exception within the current routine whose exception handler rolls back our current routine’s database transactions and then throws the custom exception again within the exception handling section of our routine’s code. The exception handler in our current routine cannot handle the newly thrown custom exception so transfers control back up the call stack to the previous routine. The previous routine handles the custom exception in the same way, and so on until we reach the top of the stack, having rolled back all routines’ database transactions. The initiating routine of the stack can then report the exception or, the routine that caught the first exception could report the exception (see heading Exception Notification Detail further on in article for why we would do this) and then start the retrocession of the stack.
Custom Exception Generics
————————–
Custom exceptions do not need to be specific in their reporting detail, they are custom built so we can change their messages to better fit the circumstance in which we want to throw the exception. For instance, say we have a custom database exception:
dim exp_db_error as RuntimeException
exp_db_error.number = -10001
exp_db_error.message = “Database file can not be found.”
We raise this exception within a routine where the database file is found but is corrupt, we can change the message to better fit the circumstance of the exception:
exp_db_error.message = “Database file is corrupt.”
Raise exp_db_error
The exception number relates to database specific issues but the message the user receives is more relevant to the situation than a generic exception message.
EXCEPTION NOTIFICATION DETAIL
=============================
Details provided in exception notifications perforce should be useful to both the developer and the end user. A basic exception-type number and description is usually too vague or concise to be of use to either party. What good is an exception notification that states:
Exp No: 4026
Exp Desc: Index out of bounds
An exception notification needs to provide two types of useful information, diagnosis information for the developer or the vendor of the application and explanatory information for the end user or the the vendor’s client. Useful details to provide can be:
HANDLING HIDDEN ASSUMPTIONS
===========================
As a rule I put exception handling into almost every routine to neutralise the spectre of the hidden assumption. I am currently working with a business process diagramming application in which there are scripted reports. One particularly critical report every now and then can not complete it’s processing, this is a legacy report which has code that makes inadequate use of exception handling. Every time the report stops I diagnose the problem as missing Lane symbol names within the diagram the report is trying to process. The developer who had scripted the report mistakenly assumed that there would always be a name attributed to a Lane symbol, but when a user forgets to enter a Lane symbol’s name, the report stalls and has no way to handle the exception that is thrown. The hidden assumption is: A Lane symbol has a name property therefore there is a name value available within that property. Of course the developer and client most likely tested the report against well formed diagrams before releasing the first build so the exception was never thrown during testing. This is not really any party’s fault but the result of human fallibility that has not been catered for by utilising exception handling.
EXCEPTION LISTENER
==================
Instead of building a central exception handler to provide exception notification or central exception reporting we could create an class that captures exceptions and performs functions based upon the type of exceptions it receives. One function might be to capture exceptions into a collection and provide advice to calling routines as to what kinds of services the application can provide the user at any one time, for example: We have an application that accesses several diverse data sources which upon start up fails to connect to one of it’s data sources and throws an exception. The exception is handled and passed to the Exception Listener. From now on any event that opens a form can call the Exception Listener to see if any details the form provides the user are inaccessible and as a result can disable controls that allow the editing or reading of those details. The latter scenario would allow the user to still perform some duties although in a limited way, which is better than not allowing the user to do any work and may still enable the user to finish their work tasks with the limited functionality provided. When I say limited functionality we could be speaking of only a minor disruption to functionality overall.
Another benefit of an Exception Listener could be the ability to periodically check the collection of exceptions it holds and try to resolve the original cause of the exceptions. In the example above where our application could not access a data source, the Exception Listener could thread a retry of the connection whilst the application is running and upon a successful connection notify it’s clients of the availability of details from the data source again and remove the exception from the collection. This is better than the user having to save what they are doing, close the application and reopen it to reconnect to a previously inaccessible data source.
If our Exception Listener was a software bus it could publish any messages to it’s subscribers within the application and we could have a real-time release of limited functionality within forms, web pages and other interfaces.
Statistical Analysis of Application Functionality
————————————————-
Statistical analysis of the amount of functionality that can be provided by an application can also be published by the Exception Listener where a missing data source may be determined to reduce the application’s functionality by 25%. The user can be notified that the application is only 75% functional which would be useful information in a unstable environment. The percentage of functionality would rise or fall based upon exception resolution and exceptions thrown respectively.
Exception Cluster Explanation
—————————–
With a collection of exceptions within the Exception Listener we could abstract out a comprehensive explanation of what an application’s current capabilities and limitations are by diagnosing clusters of various exceptions and/or exception types. When a user tries to perform a task and receives an exception the notification of the exception could provide the ability to open an explanation dialogue instead of only providing the ability to dismiss the exception notification. The Exception Listener could provide a comprehensive report upon current application limitations that are producing current system behaviour. For example, even though our application may have successfully connected to an Account system we cannot retrieve a staff member’s salary transactions because our application cannot access the necessary employee identification details on a Human Resources system that is offline. Throwing an exception that informs the user that an accounts routine can not perform its task does not explain why this has happened and the user will most likely contact the help desk for the explanation, whereas a comprehensive explanation from the Exception Listener which explains the effects of a Human Resources system being offline could instantly explain why the accounts routine is failing the user.
SUMMARY
=======
Exception handling is an integral and sometimes unappreciated part of any programming regimen. Points covered were:

Duane Hennessy
Senior Software Engineer and Systems Architect
Bandicoot Software
Tropical Queensland, Australia
(ABN: 33 682 969 957)
Your own personal library of code snippets.
http://www.bandicootsoftware.com.au
Moderator of http://groups.yahoo.com/group/AccessDevelopers