Note: as of late Wednesday, 3/20/2002, there’s a new version that fixes some reported bugs. See the first comment, below, for notes.
The JavaOne conference starts next Monday. As before, the conference
website has a scheduling application that allows you to choose the
sessions you’re interested in before the conference starts. You can
download your schedule in a simple XML format. That’s a great
solution, but it does leave us with some work to do if we want to use
the schedule directly in Palms or other handheld devices.
Last year, pressed for time, I did an ad hoc conversion using
The Power of EmacsTM. I
converted the XML file to a vCalendar file that can be imported into
most scheduling programs. This year I started a little earlier, and
wrote a program to do the conversion for me. It turned out to be a
nice afternoon project for learning about the new regular expression
classes in Java 1.4. (I use regexps to implement a
special-purpose readability enhancement that I call LVR. Curious? Use the source. ;-) Another
hour or so and it was good enough that I’m not embarrassed to share it.
You can download the program as a
href="http://www.delphis.com/java/J1Sched2002.jar">JAR file. It’s
very quick and dirty, and the interface is rough around the edges, but source code is included so you can change
the way it works if you need to.
I’ve tested it with the Palm desktop program under Windows 2000, and
Microsoft Outlook. If you have a handheld device that synchronizes
with either of those two programs, this should work just fine.
If you don’t already have Sun’s JDK 1.4, download and install it, and
then run the JAR file (either by double-clicking on it or from the
command line as
java -jar J1Sched2002.jar). Import the resulting
.vcs file into your scheduling app, and sync with your device.
(Apologies if 1.4
isn’t available on your platform yet. It should be easy to get things
running under 1.3 by removing the LVR class and making a few tweaks
Let me know if this didn’t work for you, or if you enhanced it in an interesting way.