mohideen.com > Blog > August 2003 Home | Photos | Blog | About Me

August 28, 2003

Going overboard with 'helpful' website features!

Now, what made this designer think a "Make this your homepage" button, on every page, is a good thing?

This New York City information website thinks people would be interested in assigning home page status to one of their pages, that for instance tells you how to get around in town.

footer showing homepage button

August 27, 2003

Which ISPs support open source web application frameworks such as Struts, Turbine, Cocoon etc?

This is a critical question for somebody who is evaluating an open source framework to use on their web application project that eventually needs to be hosted online. Your budget may limit you to a shared virtual hosting plan, which means you have to work within the constraints of the infrastructure the ISP provides.

Let's say you know that your ISP provides an Apache web server and Tomcat for JSP/Servlet hosting. But you still want to know if your favorite framework will run on this ISP. The ISP website does not mention anything about this, so you turn to the framework's website. But most open source framework websites are not clear on this question. Although they do provide some information, it is in the form of a very short list of ISPs they know that support the technology in question. Guess what, your ISP is not on that list!

The correct and more informative way to answer this question is by specifying what is required of the ISP in order to run the framework. Try this for a straight and simple answer - "Any web application container that supports Servlet 2.3 and JSP 1.2. Just copy your entire web application, including the framework jars in the lib directory, to the target server". Now, you know that the Tomcat 4.1.27 on your ISP is sufficient for your needs and you can start testing the framework.

Of course, if your ISP officially supports the framework, in the sense that the jar files required for the framework are available globally, then you don't need to deploy those jars with your web application. They will be visible to your application, if Tomcat has been setup properly. Your web application is much smaller now and you can save on allotted disk space.

But, please note, it is recommended that you not depend on a shared component, because you are locked to the version that is installed. Only your ISP can upgrade to a newer version, or worse still, they may upgrade without notice one day and your existing app might break because of some incompatibilities in the newer version!

A safe approach is to deploy all the dependent jars with your application so you have control over which version your program will use. You are still locked to the web server and servlet container version installed, but that is a necessary evil.

August 22, 2003

Google Toolbar is not compatible with Outlook Web Access

Google Toolbar 2.0 doesn't let you get your work done with Outlook Web Access 5.5. While reading a mail item, the Reply, Reply To All and Forward buttons do not work. The popup-blocker appears to kill the new window.

To workaround, hold down the CTRL key while clicking the buttons. Continue to keep the CTRL key down until the new window displays, otherwise the popup-blocker will kick in if you let go of the CTRL key before the new window has come up.

August 21, 2003

Jakarta Torque: Getting the tutorial to work

I was looking for a java based persistence layer code and narrowed down my search to Torque, from the Apache DB Project.

Okay, so I downloaded it and attempted to run the example in the tutorial. After couple of hours of pulling my hair out, finally got it to work. Woo hoo!

If you are trying to go through the tutorial, save yourself some time! Apply these changes (errata) to the online tutorial and you should be up and running, certainly in a lot less time than it took me.

Read Step 1 online. Then apply these changes:


  • It says "you need to obtain the Torque distribution", but there are more than one version available and it doesn't specify the version the tutorial was written for. I got the latest stable release, torque-3.0.2.zip from here.

Read Step 2 online. Then apply these changes:


  • Under Torque Build Properties, it says "note: you'll need to add the torque.database.buildUrl property", but the sample code below it already has the specified property and also has a working default. So you can ignore the note.
  • Under Torque Database Schema, it asks you to edit the project-schema.xml file located in the torque/schema directory. There is no such file in the distribution! Just make a new file and populate it with the sample code provided.
  • Under Torque Run-Time Properties, it asks you to edit the torque.properties file in the torque/schema directory and make it look like the sample provided in that section. There is no such file! Even if you created one at that location, the example program which follows will not use it! Save yourself the trouble and make the following changes to torque/torque.properties, which is present:

    torque.dsfactory.bookstore.connection.url = jdbc:mysql://127.0.0.1/bookstore

    torque.dsfactory.bookstore.connection.user = dbusername

    torque.dsfactory.bookstore.connection.password = dbpassword

Read Step 3 online. Then apply these changes:


  • Under Generating the Object Model and Associated SQL, the ant -f build-torque.xml command will generate an error if you are behind a firewall and have to go through a proxy to access the internet. I haven't figured out how to solve this problem, but I think it would involve making sure the ant process gets the java properties http.proxyHost and http.proxyPort correctly configured. I didn't have this problem on my home machine and got the rest of the tutorial to work.

Read Step 4 online. Then apply these changes:


  • The classes BookPeer.java, AuthorPeer.java and PublisherPeer.java have missing import statements for java.util.* (you may have already figured this out when you ran the ant -f build-torque.xml compile command). If you haven't done it yet, add those import statements.

That's it. If you still haven't got it running, try this trouble shooting. Still having problems, time to hit the mailing list.

Error


Running the sample application using java com.kazmier.Bookstore generates this error:


java.lang.NullPointerException: Connection object was null. This

could be due to a misconfiguration of the DataSourceFactory. Check the logs and

Torque.properties to better determine the cause.

at org.apache.torque.util.Transaction.rollback(Transaction.java:179)

at org.apache.torque.util.Transaction.safeRollback(Transaction.java:221)

at com.kazmier.om.BasePublisher.save(BasePublisher.java:512)

at com.kazmier.om.BasePublisher.save(BasePublisher.java:487)

at com.kazmier.Bookstore.main(Bookstore.java:26)

Cause


Step 3, torque.properties not set properly.

August 19, 2003

WYGIWIT (What You Get Isn't What Is There)

Great examples of photo retouching - Greg's Digital Portfolio

August 16, 2003

More on Comparison Chart Usability

Continuing with the earlier post...

Comparison chart usability can be improved by organizing data such that the chart merely indicates feature availability - yes or no. Since, this is just binary information you can also avoid actually using the words "Yes" and "No" and replace that with a visual cue such as a tick mark or some graphic. The less the user has to read, the better. Further improvement is achieved by ordering the features so that all available (or unavailable) features are close together.

Here is an example of a much better chart - the MSDN subscription overview.

August 15, 2003

Crush those pop-ups!

Tried the new Google Toolbar 2.0?

31 nasty popups terminated since I installed the toolbar 4 hours ago. Now, that should improve my productivity!

Google Toolbar

Needless to say, those internet advertising geniuses will come up with some other annoying technique to get our "eye-balls".

August 13, 2003

Comparison Chart Usability

Have you ever felt the need to compare two or more similar products and find out what is different (or similar) between them? It is certainly good that decent websites provide comparison charts, but are they really helpful? Check out this comparison of various Panasonic DVD players.

Panasonic DVD Players comparison

In order to find out what is different between each model you have to scroll through the entire list carefully and look for columns that are not the same.

I think such charts can be made a lot more usable by providing some simple grouping or sorting features such as "Show differences first" and "Show similarities first".

Archives