Archive for June, 2006

Windows Genuine Advantage as kill switch?

If this rumor is true, this is about the stupidest move that Microsoft will have every made. Ed Bott’s Microsoft Report on ZDNET, Is Microsoft about to release a Windows “kill switch”?, says that there is a rumor going around that Microsoft will turn the WGA (Windows Genuine Advantage) thingy into a way of killing Windows XP. The basic idea is that if you don’t have WGA installed by September, then Windows will give you 30 days warning to install it and then simply stop working.

If this is true, apparently Microsoft is a lot dumber then it looks. No wonder they can’t get their products out on time. Let’s see, October 1st a whole bunch of computers simply stop working. Me personally, I will probably go with either Windows 2000 or Ubuntu, I am not sure which one yet. Further down the road, I will switch to a Mac and OS X. And I have a feeling that I won’t be the only one.

So far I have refused to install WGA and I am not stopping now. If my computer stops working, so be it. There are lots of other operating systems in the sea.

The need for user feedback

I ride the bus everyday in order to get anywhere. One of the benefits/problems of living in the big city without a car. Every once in a while, on older buses where they don’t have the little sign that lights up, when you go to pull the cord that signals the driver that you want to get off at the next stop nothing happens. There is no little chime or ding. So, you pull the cord again, still nothing. The third time you pull the cord even harder and still nothing. No chime, no ding, no sounds at all. No indication that the driver knows about your request. The next thing that people do is they go up to driver and verbally make their request known. I have seen people get quite confused and upset all because that little ding is missing.

In software, whether it is a desktop app or a web app, it is amazing how many times as a user I try to do something and get absolutely no feedback. I try to do something in the program and it just sits there or the screen refreshes, but the program does not signal in any way that it either recognized my request or carried it out. Sometimes I can tell by some piece of data on the screen that has changed or the screen that I am looking has changed in some small way, but ultimately this is not enough to explicitly tell me that my request was carried out successfully. As software developers, we need to be giving constant feedback to our users about what our programs are doing. Otherwise they will get confused, try the operation again, or simply give up on the program entirely.

Two companies that have this idea of giving feedback to the user are “Google with gmail”:http://www.37signals.com/ and “37 Signals”:http://www.37signals.com/. Almost every operation that you try and do, the apps give you a little message at the top telling you that your request was successful. These are two companies that definitely understand usability and what it takes to make top quality apps that people can use.

Proper user feedback is one of the most important aspects of usability and it is very interesting to watch how people react when it is not there. Just like on the bus, users get confused, worried and then scared that their request is not being fulfilled and the software is not behaving the way they expect. Unfortunately, software does not come with a driver you can talk to.

StorageMojo » Google File System Eval

I found this article, StorageMojo » Google File System Eval: Part I, describing the Google File System (GFS) via the digg.com website. It does an excellent job of outlining the major points of how Google does what it does.

An Alternate Means of Propultion

Bruce Tate has written an excellent article called An Alternate Means of Propultion. The article lists three ideas for saving time and money on development projects. From a management stand point though, all three ideas are counter-intuitive. The ideas in a nutshell are: reduce the size of the team and ensure it only contains top level developers (high performers); look for frameworks that save time in the development process; and make developing fun.

I cannot agree more with his recommendations. Especially the last one. I have seen what happends to developers when they are asked to sit around for months with nothing to do. I have also seen what happens when you introduce the right framework into the development process. At work, I got them to use Hibernate and it made a big difference. Unfortunetaly I cannot quantify that since I left before it was really used. However, they are still using it, so that is a positive sign. The next addition is Spring.

Demystifying Java Security

Here are “Part 1″:http://searchappsecurity.techtarget.com/originalContent/0,289142,sid92_gci1195320,00.html and “Part 2″:http://searchappsecurity.techtarget.com/originalContent/0,289142,sid92_gci1195332,00.html of an article on demystifying Java security, written by Ramesh Nagappan, the author of Core Security Patterns.

Java Security topic is huge

One thing I have been studying for work is Java security, in particular, I have been looking at “Acegi Security”:http://www.acegisecurity.org/, “JAAS”:http://java.sun.com/products/jaas/, and “JGuard”:http://jguard.net/. So far, the main thing that I have found out is that this topic is huge. I have also found out that there is very little information out there about which one is best, however, I do realize that the word “best” is rather ambiguous, but it is the best word that I can think of at the moment.

Currently I think Acegi Security is the winner. I will post more info as I collect it. It would be nice to find a scholarly paper somewhere that showed a comprehensive study comparing the advantages and disadvantages of each framework in different situations, but I have a feeling that that is asking too much :-(

Some Links

* Introducing Subversion
* \”What is Jetty\”:http://www.onjava.com/lpt/a/6623
* \”Seam hands-on lab from JBoss World\”:http://blog.hibernate.org/cgi-bin/blosxom.cgi/2006/06/20#seam-lab
* \”Are Web Services Real? Part II\”:http://www.artima.com/weblogs/viewpost.jsp?thread=165293
* \”Seam Documentation\”:http://docs.jboss.com/seam/1.0.1.GA/reference/en/html/
* \”How to write a Master\’s Thesis in Computer Science\”:http://www.cs.fit.edu/~wds/guides/howto/
* \”The learning lifecycle of a Java Programmer\”:http://hoskinator.blogspot.com/2006/04/learning-lifecycle-of-java-programmer.html
* \”New and Improved Sorting Algorithms\”:http://cg.scs.carleton.ca/~morin/misc/sortalg/ — This link is really cool for any programmer. It allows you to visualize how different sorting algorithms work and their respective speeds

Next Page »