Tuesday, March 20, 2007

Leonardo's Laptop Chapters 1-4

The book Leonardo's Laptop by Ben Shneiderman gives a great perspective on how technology should be developed. The book is even more interesting because of the way that it incorporates the genius of Leonardo into the ideas of development for a user centered design. Chapter 1 describes the differences between "old computing" and "new computing." Old computing involves a technical approach to computer systems and data structures. It discusses the power of computers rather than their practical application. Old computing stresses the importance of speed and capability. The faster the CPU, the better the computer. On the other hand, the new computing ideas would require a user's needs in mind while developing. Instead of the the quality of computing measured in megahertz and gigabytes, it is measured in how well the users are able to use it and the quality of software it uses. The speed of the computer meant nothing if the software on it was not effective. There would be visually appealing graphical user interfaces (GUIs). Information would be visual and easy to understand.


There have been many frustrating experiences I have had with technology. There have been so many that I have probably forgotten over 99% of them. Therefore, the following is not really an accurate representation of the most frustrating, but rather some that have haunted me enough to be in my active memory.
  1. Blue Screen of Death - The Blue Screen of Death (BSoD) is one of the most notorious computer error screens in the history of modern computing. Microsoft Windows has been known to have bugs that cause the entire system to become unstable and crash ever since some of their earliest operating systems. It is often caused by either the operating system or a client program attempting to access/modify corrupted memory that the kernel allocated, buggy drivers, etc. The problem with this error message is that it is too cryptic to be useful, even to experienced users. It will display the memory address at fault, but this is practically meaningless since the computer will then go through the process of a physical memory dump and clear the RAM. Note: These types of errors may be notorious for their occurrences on Windows, but they also can appear on a Mac OS, Linux OS, and various other operating systems involving memory allocation and bad programming.
  2. Cryptic error messages - While this is very similar to the first example, I placed it in another category because for this frustration there is only one program crashing or just an error message without the entire system restarting. For the average user error messages can be scary. Many people do no know if they lost data or if there is any other problems that they should attend to if an error message appears. I personally would want more information about why the program crashed or had an error. This would help in cases where I cannot repeat the error consistently in order to know what not to do. Even if the message is cryptic, the user should have the option at least to see it. My frustration, however, is that the messages are difficult to understand. The user should now have to know what the exact technical problem was, but rather that there was a bug in the program. The bugs themselves should be fixed quickly, but in the mean time a user friendly error message should be displayed.
  3. Compatibility - There are many programs that only work with one operating system and not another. There are also many programs that have conflicting settings with others. In my opinion, there should be standards (which I will discuss next) that a program should follow in order to have better compatibility. Anti-virus programs for example often have live scanners that monitor file activity. These programs conflict with each other many times and cause problems with security as a result. They have gotten better recently by alerting the user when there is such a conflict, but they should collaborate with the other program developers to further prevent such problems (despite the obvious economic disadvantages of this).
  4. Bad Standards - There is a constant need for standards to be created in order to help with comparability between different ICTs, but there are also many other reasons to use them. Coding, for example, is much easier to edit and debug if certain measures are taken to make consistent code. Also, wireless internet and other wireless devices are assigned certain frequencies in order to standardize them. Unfortunately, problems often occur when there is a conflict in standards. For example, many cordless phones run on a 2.4 GHz frequency. This can often interfere with wifi enabled routers. Also, when people do not follow standards early on in projects, it is increasingly difficult to perform maintenance and upkeep when the standards change.
  5. Security - Another thing that Microsoft Windows is known for is their security holes. They have sent out numerous updates and patches for their operating system as well as their many other applications and there are still known security flaws. There has been one such incident recently that caused what was predicted as the biggest computer exploit in history by finding a bug in the way images in a .JPEG format were rendered. This effected all operating systems back to Windows 3.1. These operating systems were no longer supported, yet they still were in use and were being attacked. Security experts had claimed that the bug was so large that they wondered why nobody had found it before and even speculated that could have been intentionally placed as a back door.

Sunday, March 18, 2007

Community Service Progress Report


Chris and I have been working at the Capital City Rescue Mission. They needed help with their website in order to help them promote their organization to the rest of the capital area community. On of our major goals is to help them have a more dynamic and easier to update website. On our first visit, we had gotten familiar with the buildings and learned of their objectives to help others. We also saw the different software ICTs they used to keep information current. They seemed to have this area well taken care of. The next few visits we began to work on their website and learn how they were currently taking care of it.

The current website (as seen in the above image) is very outdated as far as content and technology goes. It has information that has not been updated in months. When the website was originally designed, the code had a mess of HTML tags that overlapped, had incorrect parameters, etc. They also did not take full advantage of CSS in order to keep a constant website style. Currently, Chris created a template that will work in Dreamweaver. Their previous website would not render correctly in Dreamweaver because of how many mistakes there were in their code. The best thing we felt, was to start from scratch with a new website that was based off of their old layout and design. This way, they will easily be able to update it with new information, while their current visitors will still being able to navigate it with the ease.

In addition, we plan on having a blog incorporated into their new website so they can add new news items easily. We will show them how to use the Blogger interface and how to maintain a blog. This way, they can update their news page and inform their visitors of new events. Currently, due to the difficulty of maintaining the website, their latest event is from October of 2006. I have set up a temporary blogger account and will transfer it over to their new website once all of the current pages are recreated.

Even though there is already a running website and we will be keeping the say layout, it takes a long time to transfer over all of the information into a new template. Coping and pasting works for some things, but it will not work for most. We need to redo all of the text formatting in CSS and start from scratch. Once this step is completed, however, it will be much easier to update the website with newer content. As we move the information from the old to the new website, we are constantly making many small changes to correct image alignment, page loading time and stress on the server, various typos, and layout improvements to help with navigation. Over all, the new website is coming along very nicely. It still has a long way to go, but recently we were making great progress.