<< October 2004 | Home | December 2004 >>

Quote Of The Day

Saw it in a comment to Simon Brunning's weblog:

Darren: Boring repetitive tasks are boring, and repetitive.

Programming is fun.

Firefox, Printer-Hostile Web Pages, NVU, ...

NVU Screenshot One thing that I missed when I converted to Firefox from Mozilla is Mozilla Composer. I used Mozilla Composer all the time to deal with printer-hostile web pages.

Then I heard Brendan Eich interviewed on IT Conversations, in which he mentioned NVU---an open source standalone HTML editor/Web Authoring System that is going to be the successor to Mozilla Composer.

It is still under development by Linspire (Lindows). I downloaded NVU 0.50 for both Windows and Linux. It looks and feels very much like Mozilla Composer. And for my purpose, it does a wonderful job, just as Mozilla Composer.

ObjectWeb Expansion

François LETELLIER (via Didier Girard): Le consortium ObjectWeb a annoncé le 16 novembre l'arrivée de trois nouveaux projets visant le haut du stack middleware Java d'entreprise. Le premier est eXo Platform, portail et CMS (certifié JSR168) apporté au consortium par un nouveau membre, eXo Platform SARL...

Le second projet est Byline, apporté par Red Hat...

Le dernier projet annoncé est MOBE (MidOffice BPEL Engine), l'un des premiers (sinon le premier) moteur BPEL open-source, apporté par eMaxx,...

An Introduction To JPackage.org

"Quickly, what's your JPackage.org strategy?"

"What? JPackage.org? Never heard of them!"

You are going to hear about them now. (Go ahead and get that soda, because a long story is coming.)


JPackage.org entered my consciousness via a comment from Peter on my blog 95 days ago:

I haven't tried it yet, but JPackage seems to be what you're looking for: http://jpackage.org/

I did take a look at the website, but did not pursue it further. My impression at the time was: "Who's going to install Java stuff out of RPMs?"


Time passed.

My second encounter with JPackage came 68 days ago when I was trying to figure out why Ant can't find my classes, as I blogged here.

While perusing /opt/apache-ant-1.6.2/bin/ant, this comment jumped out at me:

# Build local classpath using just the launcher in non-rpm mode or
# use the Jpackage helper in rpm mode with basic and default jars
# specified in the ant.conf configuration. Because the launcher is
# used, libraries linked in ANT_HOME will also be include, but this
# is discouraged as it is not java-version safe. A user should
# request optional jars and their dependencies via the OPT_JAR_LIST
# variable

"Hmmm, the JPackage people have infiltrated the Apache organization! Who are these people?" thought I.


Then, 11 days ago, as I upgraded this workstation to Fedora Core 3, it jumped right at me when I executed none other than the venerable java command:

[weiqi@gao] $ javac Foo.java
libgcj-javac-placeholder.sh

This script is a placeholder for the /usr/bin/javac
master link required by jpackage.org conventions.  libgcj's
rmiregistry, rmic and jar tools are now slave symlinks to these
masters, and are managed by the alternatives(8) system.

This change was necessary because the rmiregistry, rmic and jar tools
installed by previous versions of libgcj conflicted with symlinks
installed by jpackage.org JVM packages.

"Java related stuff is a mess." I yelled at the time.


Well, what would you do if a sign appears to you on three separate occations, all within less than 90 days?

I must investigate!


First stop, the web site. It's not the most intuitive web sites. It's simple and overwhelming at the same time. The bulk, say 97%, of the front page is taken up a list of hundreds of packages, each links to a package specific page that contains links to an RPM.

But if you follow the links and download the RPM and try to install it, you'd be wrong, because there's a better way.


The secret to JPackage.org lies in the handful of links at the top left corner of the page. In my opinion, the page would be better off if it contained only those links.

According to the FAQ, the recommended way of using JPackage.org is to:

  1. Configure an automatic package management tool
  2. Install the packages you want

For me, a Fedora Core 3 user, this means yum. Yum is the automatic system update tool that comes with Fedora Core 1, 2 and 3. With FC3, yum configuration just got easier. What I ended up doing is to create a couple of files in /etc/yum.repo.d:

[root@gao] # pwd
/etc/yum.repos.d

[root@gao] # cat jpackage16-generic.repo
[jpackage16-generic]
name=JPackage 1.6, generic
baseurl=http://mirrors.sunsite.dk/jpackage/1.6/generic/free/
gpgcheck=1

[root@gao] # cat jpackage16-fc3.repo
[jpackage16-fc3]
name=JPackage 1.6 for Fedora Core 3
baseurl=http://mirrors.sunsite.dk/jpackage/1.6/fedora-3/free/
gpgcheck=1

and to import the GPG key of the JPackage project:

[root@gao] # rpm --import http://www.jpackage.org/jpackage.asc

Now I'm in business. I want Ant:

[root@gao] # yum install ant
blah blah blah

I want Jython:

[root@gao] # yum install jython
blah blah blah

I even want Maven (just kidding :) ):

[root@gao] # yum install maven
blah blah blah
blah blah blah
Error: missing dep: java2html for pkg maven

I hit the first sour point of JPackage.org---not everything is in the repository!. Yum is really good at fanning out into the repo to bring back all needed dependencies, but it is powerless when the dependencies are not present in the repo. They are missing from the repo because of licensing issues. Chief among them are Sun stuff: the JDK, the various JSR interfaces, etc.

Sure I can download them myself, but that wouldn't provide the dependencies needed by JPackage.org package. It wouldn't fit very well with the overall pattern of how JPackage.org does things.

What JPackage.org want me to do is this (let's take the Sun JDK for example):

  1. I would download jdk-1_5_0-linux-i586.bin from Sun
  2. I would then download a nosrc.rpm, java-1.5.0-sun-1.5.0-3jpp.nosrc.rpm from JPackage.org
  3. I then wave my magic wand and create the real rpm, java-1.5.0-sun-1.5.0-3jpp.i586.rpm, the rpm that would satisfy the dependency requirements of other JPackage.org packages, out of the downloaded artifacts.

This is only slightly more complicated than what I currently do:

  1. I download jdk-1_5_0-linux-i586.bin
  2. I expand it to /opt
  3. I modify my shell initialization files to add the appropriate directory to the PATH and jar files to CLASSPATH

Mika Hirvonen has written up a very clear HOWTO on building JPackage.org compatible rpms for Sun 1.5.0 JRE. The only thing I did that was different is that I'm using JPackage 1.6 instead of 1.5, and I'm on Fedora Core 3 instead of 2.

Once you get everything setup, it takes only one step to grab the nosrc.rpm, another step to download the Sun distribution, and a third step to generate all the rpms, which can then be installed.

The bad part about this exercise is that I have to do all of these manually. Here's a list of the nosrc.rpm's that I have installed:

.nosrc.rpm vendor download generated rpm
cos-multipart-0.05Nov2002-1jpp.nosrc.rpm servlets.com cos-05Nov2002.zip cos-multipart-0.05Nov2002-1jpp.noarch.rpm cos-multipart-javadoc-0.05Nov2002-1jpp.noarch.rpm
ejb-2.1-3jpp.nosrc.rpm Sun ejb-2_1-fr-spec-api.zip ejb-2_1-fr-spec-docs.zip ejb-2_1-fr-spec.pdf ejb-2.1-3jpp.noarch.rpm ejb-javadoc-2.1-3jpp.noarch.rpm
j2ee-connector-1.5-3jpp.nosrc.rpm Sun j2ee_connector-1_5-fr-spec-classes.zip j2ee_connector-1_5-fr-spec-docs.zip j2ee_connector-1_5-fr-spec.pdf j2ee-connector-1.5-3jpp.noarch.rpm j2ee-connector-javadoc-1.5-3jpp.noarch.rpm
java-1.4.2-sun-1.4.2.06-1jpp.nosrc.rpm Sun j2sdk-1_4_2_06-linux-i586.bin java-1.4.2-sun-1.4.2.06-1jpp.i586.rpm java-1.4.2-sun-alsa-1.4.2.06-1jpp.i586.rpm java-1.4.2-sun-demo-1.4.2.06-1jpp.i586.rpm java-1.4.2-sun-devel-1.4.2.06-1jpp.i586.rpm java-1.4.2-sun-fonts-1.4.2.06-1jpp.i586.rpm java-1.4.2-sun-jdbc-1.4.2.06-1jpp.i586.rpm java-1.4.2-sun-plugin-1.4.2.06-1jpp.i586.rpm java-1.4.2-sun-src-1.4.2.06-1jpp.i586.rpm
java-1.5.0-sun-1.5.0-3jpp.nosrc.rpm Sun jdk-1_5_0-linux-i586.bin java-1.5.0-sun-1.5.0-3jpp.i586.rpm java-1.5.0-sun-alsa-1.5.0-3jpp.i586.rpm java-1.5.0-sun-demo-1.5.0-3jpp.i586.rpm java-1.5.0-sun-devel-1.5.0-3jpp.i586.rpm java-1.5.0-sun-fonts-1.5.0-3jpp.i586.rpm java-1.5.0-sun-jdbc-1.5.0-3jpp.i586.rpm java-1.5.0-sun-plugin-1.5.0-3jpp.i586.rpm java-1.5.0-sun-src-1.5.0-3jpp.i586.rpm
jdo-1.0.1-1jpp.nosrc.rpm Sun jdo-1_0_1-ri.zip jdo-1.0.1-1jpp.noarch.rpm
jms-1.1-3jpp.nosrc.rpm Sun jms-1_1-fr-apidocs.zip jms-1.1-3jpp.noarch.rpm jms-javadoc-1.1-3jpp.noarch.rpm
jsf-1.1.01-1jpp.nosrc.rpm Sun jsf-1_1_01.zip jsf-1.1.01-1jpp.noarch.rpm jsf-demo-1.1.01-1jpp.noarch.rpm jsf-javadoc-1.1.01-1jpp.noarch.rpm jsf-manual-1.1.01-1jpp.noarch.rpm
jta-1.0.1-0.b.3jpp.nosrc.rpm Sun jta-1_0_1B-classes.zip jta-1_0_1B-doc.zip jta-1.0.1-0.b.3jpp.noarch.rpm jta-javadoc-1.0.1-0.b.3jpp.noarch.rpm
stax-bea-1.0-2jpp.nosrc.rpm BEA jsr173.jar stax-bea-1.0-2jpp.noarch.rpm stax-bea-demo-1.0-2jpp.noarch.rpm stax-bea-javadoc-1.0-2jpp.noarch.rpm stax-bea-manual-1.0-2jpp.noarch.rpm
tanukiwrapper-3.1.1-2jpp.src.rpm Tanuki Software Using src.rpm tanukiwrapper-3.1.1-2jpp.i386.rpm tanukiwrapper-debuginfo-3.1.1-2jpp.i386.rpm tanukiwrapper-demo-3.1.1-2jpp.i386.rpm tanukiwrapper-javadoc-3.1.1-2jpp.i386.rpm tanukiwrapper-manual-3.1.1-2jpp.i386.rpm

These packages (40 rpms total) provided dependencies for 844 rpms in JPackage.org, including JBoss 3.0, JBoss 4, Jonas, JacORB, Hessian, Tomcat, Jetty, ArgoUML, JEdit, HSQLDB, iText, JasperReports, and many many more.


What I see JPackage.org do for me as a Java developer is to allow me get access to new unfamiliar Java packages faster.

Whereas in the past I have to visit websites, download tar.gz files, build them, and mess around with environment variables to get something working, I now can get it in one command.

For example, I've only used ArgoUML once several years ago for a day. I have wanted to redownload and install it to take another look again, but haven't found the time to do it yet. Now thanks to JPackage.org, ArgoUML is installed on my system. There is even a GNOME menu entry for it.


I sincerely wish the JPackage.org people success, for what they do saves me time and effort and allows me to get into contact with much more Java libraries then I would otherwise have time to.


Now I'll dive into the 2GB+ of Java stuff and learn something new.

Open Sourced Java Coming? From IBM?

Eric Raymond, (via Kevin Bedell on O'Reilly Weblogs): ...epecially when IBM's intention to release a fully open-source JRE and class libraries within the next year or so is about the worst-kept secret in the industry. IBM executives scarcely even bother to deny this any more.

Busy Signal at Sun Download Center!

Whoever is hogging the Sun Download Center line, could you get off for a moment and let me download the JDK? Thank you.

Kevin Heifner Blogger

Kevin Heifner, June 25, 2003: ... By the way. I have come to the conclusion that I don't want to keep a web-blog.

Kevin Heifner, November 4, 2004: Well, I finally decided to start a blog. Please stay tuned for actual content in the future.

It took 498 days, but it should be worth the wait.

I Heard It On The Radio

I heard these in the technology section of Wall Street Journal This Morning (airs 5:00-6:00am on 97.1FM, streaming live if you use IE, in St. Louis):

So I decided to check out the RSS support on My Yahoo!. I haven't visited there for five years.

Surprise number one: I logged in! It turns out that the login is the same as Yahoo Mail.

Surprise number two: Everything was the way I left it the last time I was there---the stock tickers, the sports news, the horoscopes, the local weather, everything!

There RSS support is not all that obvious though. I have to look around a bit to find out how things work. It's on their "Add Contents" page. Once there, everything is easy.

It turns out that I have to add my feed to their database so that other My Yahoo! users can find it. I can also put a link on my page for them to subscribe directly. Usually I'm not a fan of little link buttons, but I'll make an exception for them, just for remembering my customizations after all these years. (It's also RESTful, I think.)

Add to My Yahoo!

Almost Free Text

I was writing design documents in ASCII, like this:

Design Document
***************

Weiqi Gao
Wed Nov 17 20:08:10 CST 2004
----------------------------

Introduction
============

The phase two system will have two tiers

  - The business tier
  - The management tier

when Rob showed me AFT.

Rob: Have you used AFT?
Me: What is AFT?
Rob: Almost Free Text. It's like a Wiki. Byron turn me on to it.
Me: I'll give it a try.

AFT turnout to be pretty easy. You write design.aft:

*Title: Design Document
*Author: Weiqi Gao
*TOC

*Introduction

The phase two system will have two tiers

        * The business tier
        * The management tier

then run

[weiqi@gao] $ aft design.aft

to generate design.html:

You can even run

[weiqi@gao] $ aft -type tex design.aft
[weiqi@gao] $ pdflatex design
[weiqi@gao] $ pdflatex design

to generate design.pdf, with navigation tree and hyperlinks:

If you are looking for a lightweight but version controllable (i.e., text not binary) document tool for a project, AFT might fit the bill.

Minor Ant Annoyance (Bug ID: 31245)

I reported this minor Ant bug 62 days ago. It hasn't been acknowledged yet although it has gotten one vote. I'm assuming everybody on the Ant team is busy with more important stuff. Hope I can save somebody somewhere some time and trouble by posting it here.

I'm having problems with CLASSPATH handling with the apache-ant-1.6.2/bin/ant
shell script on Cygwin.

In lines 236-238, the CLASSPATH environment variable is processed unnecessarily
through "cygpath --path --$format".  These three lines of shell script should be
deleted.

Here's a small test case:

<project default="echo">
 <property environment="env"/>
 <target name="echo">
   <echo message="${env.CLASSPATH}"/>
 </target>
</project>

When the CLASSPATH variable contains ".;C:\dir1\lib1.jar;C:\dir2\lib2.jar" and
the current drive is the C:\ drive, running the build.xml file with Ant 1.6.2
results in

==================================
[weiqi@gao] $ ant
Buildfile: build.xml

echo:
    [echo] .;C;c:/dir1/lib1.jar;C;c:/dir2/lib2.jar

BUILD SUCCESSFUL
Total time: 0 seconds
==================================

This is clearly weird but still works.

When the same command is executed while the current drive is the R:\ drive, the
result looks like this:

==================================
[weiqi@gao] $ ant
Buildfile: build.xml

echo:
    [echo] .;C;r:/dir1/lib1.jar;C;r:/dir2/lib2.jar

BUILD SUCCESSFUL
Total time: 0 seconds
==================================

This is wrong.  The result is also wrong when I worked from a shared home
directory with a UNC path //server/share as HOME.  The result looks like this:

==================================
[weiqi@gao] $ ant
Buildfile: build.xml

echo:
    [echo] .;C;//server/share/dir1/lib1.jar;C;//server/share/dir2/lib2.jar

BUILD SUCCESSFUL
Total time: 0 seconds
==================================

Fedora Core 3: First Impression (After Full Install)

In life, you rarely get a second chance at first impression. However, with operating system upgrades you do get a second chance at first impression---when the "upgrade" goes badly and you have to wipe it for a clean install.

That's what happened to me these past 3 days. My upgrade essentially didn't work: Evolution was dog slow. Switching from X to a console virual window was broken. The logout dialog wouldn't show up. And attempts to kill X with Ctrl-Alt-Backspace would hang the whole thing, forcing me to press the Reset button. The desktop look is a mixture of preserved FC2 and half setup FC3, with a thin panel bar at the top with nothing but the calendar applet and a thick panel bar at the bottom holding the old FC2 menus.

So I did a clean install. It's only marginally harder than an upgrade. I have to supply the hostname, IP address, gateway, DNS servers, etc. I also have to match disk partitions with mount points. Fortunately, FC3 seems able to figure out the old mount points of each partition and make that the first choice in the combo box. I can preserve the old data or reformat on a per partition bases. So I preserved the /home, /opt, and /usr/local partitions.


The full install is much better than the upgrade. Evolution is very fast now. I already mentioned that I liked the builtin spam block. I just discovered that I can print an email to a PDF file now, although I don't know how useful such a PDF file is.


All of my X related issues are gone except one, my screen repainting is still slow. But I can switch to a console window by pressing Ctrl-Alt-F1 now.


The main menu went back to the top left corner now. I believe this is how Ximian GNOME want it. The only complaint I have against this setup is that the pager, at the lower right corner, is too far away from the menu. One common use case for the pager is to move to a empty workspace and start a new application from the menu. Now I have to move my mouse from one corner of the screen to another corner to accomplish it.


Doing a fresh install also means that I have to reget everything that does not come with the CDs. I find this link indispensible. I followed the steps outlined in it, and within minutes, I had my XMMS MP3 working. I also had Real Player and a DVD player installed.


The up2date and yum utilities still work as they always have worked. They split the monolithic yum.conf file into separate configuration files in the /etc/yum.repo.d directory. The new yum is also a lot faster than the old one.


I have sorted out the Java situation on Fedora Core 3: since the Sun JDK is not part of the distribution, Java support is provided by the gcc-java, libgcj, libgcj-devel packages. These packages provide the java, javac and other JDK like commands that eventually execute the compiler or the JIT engine in GCJ. Since GCJ does not have have a complete JDK compatible class library, this approach is not as powerful as the true Sun JDK.

The way around it is to install the Sun JDK and make sure to put its bin directory (/opt/jdk1.5.0/bin) in front of /usr/bin in the PATH environment variable. The GCJ commands can still be used in their native form: gcj, gcjh, gij, fastjar, grmic, grmiregistry. See my OCI JNB article for a fast introduction to the wonders of GCJ.


The CD burner in Fedora Core 3 is still as broken as it was in Fedora Core 2.


The gqview command is gone. I have to find another way to view image files. I could always use Gimp, but I really prefer something lighter weight.

Bad Firefox!

After installing Firefox 1.0 on three computers and lost my homepage settings three times, I finally paid attention in the fourth installation.

Guess what I found?

That "Use Firefox Start as my Home Page" check box is new in Firefox 1.0 Final and is checked by default.

Whoever put this bit of trickery in is evil!

"You Must Buy Hibernate in Action"

Eric Burke: If you are learning Hibernate, you *must* buy Hibernate in Action, by Christian Bauer and Gavin King. I skipped around a lot but now I'm trying to read it straight through. It is an essential tutorial and reference. A lot of the book examples are very similar to what's in the HTML docs that ship with Hibernate, but the book is more polished and easier to read through. The book really helped clarify the architecture of my application.

I completely agree with Eric here. I'm reading the book cover to cover and it's a fascinating read. Even if you are not using Hibernate, reading this book will give you hints on how to design your persistence layer, and your application architecture will be more clear.

I also happens to like the expository style of the authors---very engaging and lucid. There is an effortlessness in the text that could only result from tremendous technical insight and literary discipline. They (Christopher Bauer and Gavin King) make it look easy.

Plus, I love the little "cliffhangers" at the end of a section that lead you into the next section. It reminds me of the classical Chinese novels where chapters usually ends with something like "The door swung open. In comes a big man. To learn who he is, read the next chapter!"

Go buy

.

Fedora Core 3 First Impression

I have just upgraded my workstation from FC2 to FC3. The upgrading process was flawless. Simply insert CD, reboot, and then follow instructions. It took an hour to run through the four CDs.

My impressions so far:

Firefox 1.0 PR is the default browser now. Good.

Evolution 2.0.2 is the default mail client now. I like the "Junk" button, which Mozilla Mail and Thunderbird have had for quite some time now and the old Evolution 1.4 does not.

Evolution 2.0.2 will be unbearably slow if you choose "Remind Me Later" in the "We've converted your emails from 1.4 to 2.0 format. Do you want to delete the old data?" dialog. Switching from my Inbox to another local folder took eight seconds. It used to be instantaneous with 1.4. After I selected "Keep Data", switching from folder to folder become fast as before.

Java related stuff is a mess:

[weiqi@gao] $ javac A.java
libgcj-javac-placeholder.sh

This script is a placeholder for the /usr/bin/javac
master link required by jpackage.org conventions.  libgcj's
rmiregistry, rmic and jar tools are now slave symlinks to these
masters, and are managed by the alternatives(8) system.

This change was necessary because the rmiregistry, rmic and jar tools
installed by previous versions of libgcj conflicted with symlinks
installed by jpackage.org JVM packages.

My XMMS can still play MP3s.

I don't think my nVidia GeForce 4M video card is fully utilized. Screen painting seems slow. If I drag a window around, I can see trails.

My favorite game, Lines, has been renamed Five-or-More in the Games menu. I was very disappointed for a few minutes at first. Once I recognized the game by its logo, I'm happy again. My high score is still there: 854.00!

The screen shooter is cool. I lost it in FC2 but upgrading to FC3 fixed it. To take a screen shot of a window, I simply need to press Alt-PrintScrn. A dialog will pop up with a preview of the image asking me whether I want to save it on the desktop, to a file, or on my webpage!

Paul Jensen On Spring Framework (And A Lot of Java Jobs!)

Paul Jensen's presentation on the Spring Framework at the St. Louis JUG draw a huge crowd this evening.

Here's a few quotes:

  • I really liked the Dependency Injection part of Spring.
  • I have written code like those in the Spring Framework numerous times. I'm really glad I don't have to write those again.
  • (In response to the question "Don't all this DI stuff make the whole thing harder to comprehend?") Object-orientation itself makes the code harder to comprehend. What you get when you use Spring is that it naturally encourages a good OO architecture, where each component or layer does its own thing very well.
  • There is an XDoclet module that allows you to put how you want to inject the dependency into a class in Javadoc comments of the class, and generate the configuration XML that way. That's the inverse of Dependency Injection and not the right thing to do.

I'll update this blog when the presentation slides have been uploaded to our web site.

Update: The presentation material has been posted here (pdf) and here (ppt). </>

Prior to the talk, we had the usual recruiter introductions and the Q&A. Six recruiters stood up.

  • Hi, I'm Daugherty Business Systems, we are hiring.
  • Hi, I'm Jane Bullington from OCI. We have SIXTEEN Java positions, from senior J2EE architects to web developers. Give me a call.
  • Hi, I'm Technology Partners. Same story. Lots of Java openings.
  • Hi, I'm the Chief Technology Officer of MetaMatrix. We are looking for several Java talent.
  • Hi, I'm ..., the same thing.
  • Same story here.

Java seems to be the thing right now.

Trouble Burning Fedora Core 3 CDs

OK, I've gotten the Fedora Core 3 ISOs. Burned them onto CDs using my yum-updated Fedora Core 2's Nautilus "right click on the ISO and select Write to CD" method. And they all failed the pre-installation media check:

+-------------------| Media Check Result |---------------------+
|                                                              |
|    The media check of the image:                             |
|                                                              |
|    Fedora Core 3 disc 1                                      |
|                                                              |
|    is complete, and the result is: FAIL.                     |
|                                                              |
|    The image which was just tested has errors.  This could   |
|    be due to a corrupt download or a bad disk.  If           |
|    applicable, please clean the disc and try again.  If      |
|    this test continues to fail you should not continue       |
|    the install.                                              |
|                                                              |
|                                                              |
|                          +----+                              |
|                          | OK |                              |
|                          +----+                              |
|                                                              |
+--------------------------------------------------------------+

The ISOs are complete and with valid md5sums. I haven't burned any CDs since I upgraded from FC1 to FC2. I'll ftp the ISOs to my Windows XP machine and try my luck there tomorrow.

Fedora Core 3 Released. It's Torrent Time!

I'll be downloading the just released Fedora Core 3 bittorrents for the next 24 hours. This blog will be slow while that is going on.

Like always, I'll let everyone know how the upgrade process goes.

Amazon.com Logic

Amazon.com Spam: We've noticed that customers who have purchased Applied Microsoft .NET Framework Programming by Jeffrey Richter also purchased books by Gail Anderson. For this reason, you might like to know that Gail Anderson's Sun Java Studio Creator Development Pack: Field Guide and Creator Software Package is now available . You can order your copy at a savings of 32% by following the link below.

Pretty good logic. :)

I Won't Recreate My Account!

You all know how hot I get when websites mishandle their registration information, as I've blogged 398 days ago.

Well, it happened again. This time it's with JavaLobby.

I signed up to JavaLobby the day it was created. I have relies on the automatic login and the browser password manager to logon to the site. I usually get on automatically. If not, I can get on by click on the "Sign In" link using the automatically filled in Email and Password.

It stopped working today. I noticed that I'm not logged in, and clicked on the "Sign In" link. I received the following error message:

I don't know what happened, but JavaLobby did upgrade their website quite recently. Something might have happened when they are doing the upgrading.

Rick, could you see to it that my Email and Password that I've been using to log on to your site for the past six, seven years be made valid again.

Because I'm not going to create another account!

Mark Volkmann Explains REST

In this month's OCI JNB, Mark Volkmann explains REST:

REST is an architectural style, not a standard or API. It was conceived by Roy Fielding in his dissertation in 2000 (see references at end). However, existing standards including URLs, HTTP and XML can be used to implement REST applications. REST is used to build distributed applications such as Web apps. and Web services. REST servers are any pieces of software that respond to REST requests. They can be implemented in many ways, including Java servlets. The Web is an example of REST architecture. The many kinds of software running on web servers that return resources are examples of REST servers. Web browsers are a kind of REST client, sending requests to URLs using HTTP.

One of the benefits of REST is that it allows systems to communicate in an extremely loosely coupled fashion. Eric Burke tells a compelling story in favor of REST.

Be sure to ask Mark for the framework classes and sample application. His email address is near the end of the article.