Monthly Archives: July 2001

Progress Comes Slowly

It may not look like I’m doing much but this evening I’ve upgraded to a new version of Cygwin (a necessity because I hope to start using CVS on SourceForge to handle all my version control), took screenshots of HotSheet on Linux and integrated them into the project page, I’m working on a new release of HotSheet (0.61 alpha) and I’m trying to steal a few moments to work on a project for Rockelle.
There are not enough hours in the day to do all that I want to do…

Panoramic Pictures

Here are those promised panoramas to show off the software I mentioned the other day. Keep in mind that these are basically the first two attempted panoramas I’ve ever shot with the camera, it was the first real outing for a brand new digital camera, and my first shot at using the software. Nevertheless the results aren’t half bad. That tells you what somebody who really was serious at shooting a great panorama with a good camera could produce.
Here’s the room we stayed in at a bed and breakfast in Granbury, TX (The Pomegranate House):

and here is one side of the Granbury town square. It has a heavy duty tilt to it because I was sitting on a bench perpendicular to the street when I took it and I took half the pictures basically in front of me and the other half tilted back and twisted over the bench:

Each panorama was originally four separate images and in each you can see some slight discontinuities in the final panorama (the sky on one and the ceiling on the other show some small problems). But a little cleanup work with a paint program would probably fix both images right up. I just wanted to show what could be done with without retouching. In each case all I had to do was mark about four points in the area where one image overlapped the one next to it. Those four points were identified in both images and then the software was told to generate the final results with just two menu commands. After that the results were cropped and that’s it, no touch up was necessary to get to this result.

Lots of JNLP Resources

Good grief. I think I’m going to have to open a new resource section just to deal with all the:
a) Directories of Java programs available via JNLP
and b) projects associated with JNLP
Add to that list Jsh : OpenSource Java Shell. This one has several twists on the usual theme of supporting JNLP because it tries to run multiple Java programs in a single VM in order to speed up launching and reduce memory requirements. In addition, it supports regular Java applications in addition to JNLP ones.
Also, another directory of JNLP applications. This one is called Puzzlecode. They read my description the other day of the kind of features a better JNLP directory would have and it was indicated that I should keep an eye on them to maybe see some of those features in the future. I certainly hope that’s the case.

Panorama Tools/OpenJNLP 0.4

Back from a brief vacation in Granbury. God were we beat yesterday…
Later I’ll post a couple of panoramas that I created using the free package Panorama Tools. All the photos were taken with a handheld camera (no tripod) yet PanoTools was able to stitch them together nicely.
For those using OpenJNLP in order to run Java programs (like Mac OS X) users, version 0.4 has been released.

My Projects List

Geez, I need help. I have created a list of all the projects that I would like to do (or just reap the benefits of) and it’s got more than 15 different things on it.
Here’s just some of my wish list:

  1. A better version of the programming language Logo. Logo was very popular when I was younger as a simple language to teach kids to program and basic ideas behind how a computer works. It still seems to be popular but versions are fragmented and don’t seem well suited to teaching anybody anything. My kid wants to learn how to program and my options consist of giving him something that he basically won’t learn anything with because it’s too hard (he’s only eight) or going and buying a commercial form of Logo for around $100. That’s not something a lot of parents could even consider.
    A killer form of Logo should be just like this:

    • A simple, fun to read, easy to understand manual for kids. I’m talking step by step with pictures. If you can remember back that far, think of the Basic manuals that used to come with the TRS-80 line 20+ years ago.
    • An equally easy to read manual for the teacher. There should also be lesson plans, teaching materials and very simple quizzes for different age groups of kids who might take programming classes using Logo.
    • A significantly easier to use version of Logo than what is currently available for free. It should have a very easy to use interface and it does not need to have every bell and whistle that some versions have. Easy to use, very attractive, very graphical, and absolutely crashproof are the keywords here.
    • Build a simple RMI interface onto the program so the teacher can save off the students work, load up files for demonstrations, start programs, etc. Basically remote control of a set of the students desktops to make teaching easier.
    • The Logo should install and run via JNLP to be available to students at home as well as at school.
    • The open source Java version of Logo called Turtle Tracks might be a good place from which to start. It’s not kid friendly now but that doesn’t mean it couldn’t be made to be so.
  2. An easy to install packaged version of JBoss. While you aren’t going to become Red Hat just selling JBoss, there is room for a CD install of the open source J2EE server software that has easier setup, automatic install of different versions (i.e. Jetty vs. Tomcat vs. no Servlet/JSP support), framework install (e.g. Struts, Velocity, Cocoon, etc.), a real administrator console and the Java Pet Store demo and other demos. Add support to that package and you’ve got something for which people will pay a reasonable fee.
  3. A finished version of HotSheet. HotSheet’s source has been downloaded 75+ times now, isn’t anybody interested in helping finish off some of the multitude of wishlist items? Most of them could be completed in just a couple of evenings (one just to look over the code and another to make the actual change).
  4. A Java version of the Image Analogies software. This version of the software would differ dramatically from the existing C++ version in two ways:
    • It would use the Project JXTA libraries to distribute the calculations for the images to multiple machines. If a large number of machines were to each do just one line from a large image you could cut the time required to do a it from hours down to minutes or just seconds.
    • It would have a user friendly GUI rather than its current commandline and configuration file system.
  5. A better directory for JNLP launched Java software than either Connect & Work or Up2Go has now. This version would allow developers to enter the URL of a JNLP file into a field and categorize their application themselves. Then the directory would pull the JNLP file and use information from it to provide a short description, the authors name, a link to the homepage, etc. for the application almost immediately after the author added the entry. Users would be able to both rate and review each program to provide end users with a clearer information on what programs are available, how to get it, and what other users think of the programs.

Source Release/Another JNLP Directory

The source zip to the latest version of HotSheet is available on SourceForge. Just follow this link to the SourceForge project.
Is there going to be a war waged to be the central directory of all Java apps at some point in the future and nobody told me? I ask because I just found another new directory to compete with the Connect & Work External Catalog. It’s called and although its HTML is not nearly as polished, it has managed to find some new links to applications that I’ve not seen before. The sad part is that so many of the things you see right now available via Java Web Start are just proof-of-concept things. Most aren’t complete enough to really attract people to the format. What is needed is a Freenet install, Photomesa, Limewire, and more real world tools and utilities that would attract end users to download and install Java Web Start or OpenJNLP in the first place.

“Where’s the source John?”

“Where’s the source John?”
That’s a fair question considering that I uploaded a new version of HotSheet Thursday but haven’t released the source for it yet. I delayed thinking I could get something in the build file that would automatically increment a build number every time there was a successful build. Unfortunately, that looks to be a little harder than I thought. Then I vegged over the weekend and went to the Dave Matthews concert last night. So I accomplished absolutely zero this weekend.
I’ll just zip everything up and put it out there tonight. I promise. It won’t have auto-incrementing build numbers but that’s not exactly critical. More important will be utilizing the new events/listeners to change the way channel refreshes are done. Currently everything is very sequential and linear: retrieve a channel, parse the channel, update the model, go to next channel, repeat.
That’s great when everything is working, but you have problems like the one today where BetaNews seems to be down. They aren’t serving up the page that HotSheet expects and since I currently rely on the JAXP code to do both the retrieval and parsing I don’t have any way to tell it to just timeout if the URL can’t be retrieved in a timely manner. As a result HotSheet effectively hangs waiting for something to happen on that channel and never gets to other channels that it could actually retrieve.

OpenJNLP 0.3

OpenJNLP 0.3 is now available. Don’t bother trying to run it from Java Web Start, I got an error when I tried and I already reported it back to the author(s). I did download it and run it from the command line using Windows though and it worked just dandy. Thanks to UI improvements its considerably more functional in the latest version.

Next Up for HotSheet

Next up will be to make use of the newly added events and listeners code to: play a sound when new items are added, hook up a timer to refresh channels automatically and make the interface update whenever new items are added.
Then I’ll tackle using HypersonicSQL to provide a database to hold all your items, channels and history rather than the serialized linked lists and hash maps that are being used now. It’s not as simple and convenient but it will be much much faster, especially when you have lots of items and channels. With HypersonicSQL I’ll be able to bundle a JDBC database with the program to provide built in capabilities but for users who want to use the program and have it automatically populate another database with data (for example to populate a database that a website then queries to display news items) you’ll be able to use it with other JDBC drivers against databases like mySQL or Oracle.