image provider



This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.

Consider how much trouble people have configuring complex programs like Tomcat, MySQL, PostgreSQL, Resin, etc. The problem is partly the atrocious documentation. The problem is documentation that treats basics and esoterica alike so you have to read pages and pages of options hardly anyone ever uses to find the meat. The problem is the lack of examples. The problem is documentatation rarely gets down to the nitty gritty about how it interacts with some other package, just some highly abstract hints on how its generic hooks work.

There are several ways you could fix this:

  1. Kidnap the authors of these programs, give them access to professional editors and force them to write proper documentation at gunpoint.
  2. Write tutorials to help people get started in these various packages.
  3. Write configuration wizards to help them get started.
I suggest wizards as the best approach because there is no point in forcing people to learn a skill they will use only once. Wizards can silently incorporate lore without having to burden the user with it.

The Java wizards you are about to write query the user, poke around on their own to find out things and compose the various configuration files and copy files where they are supposed to go and warns the user of missing files.

They might even compose skeleton test programs to exercise the configurations to prove they are working.

As you become very familiar with the programs you are configuring, you will be tempted to ask questions that presume your background knowledge. You need a constant supply of virgin testers to make sure you only ask questions that nearly all your users will understand. Think in terms of your mother as end user to help keep you on track. Users are not stupid, just unaware of how how these packages work. You must provide sufficient background to help them answer the questions accurately. Don’t be afraid to use rules of thumb. Fine tuning is not your problem, just getting a working initial configuration. Neither is it your problem to teach all the fine points of configuration to your user. He just wants to get through this step so he can start experimenting.

The biggest problem with this program is that it will go out of date quickly. It should be implemented as a JWS program so that it stays up to date. It is also concerned with connecting packages written by authors who have never met, e.g. Hibernate and MySQL. This lore will change every time any of the constituent packages change.

If you want to be nominated for sainthood, this project might do it. You will save so much gnashing of teeth.

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number