Some reader favorites:
EJB fundamentals and session beans
Create a scrollable virtual desktop in Swing
Wizard API updated!
Tim Boudreau has released a new version of the Swing Wizard library (version 0.997) that fixes the WizardException bug reported in JavaWorld's recent Open Source Java Project profile. The article's examples have been reworked to test out the new, improved WizardException. Thanks, Tim, for this helpful fix!
Open Source Java Projects: The Wizard API
Whew, four days, three nights, and not a lot of sleep. If you haven't read any of my columns in JavaWorld, allow me to introduce myself: I'm Chuck McManis, a writer, a programmer, and all-around Java kinda guy. And since I live in the San Francisco Bay Area and have a particular fondness for Java -- seeing as I was working in the group at Sun that created it -- I try to get to the JavaOne conference every year, if possible. That gets more difficult as the price goes up, but the experience keeps justifying the effort needed to get there. This year, the conference, quite frankly, exceeded my expectations.
1999's JavaOne started, as all of the others have, with a very long line outside the Moscone Center in downtown San Francisco. This line, depressingly enough, extended outside even though it was for people like myself, who already had our badges and were just waiting to pick up the various knickknacks that come along with attendance at a JavaOne conference. Last year we got an iButton with Java from Dallas Semiconductor (see the April 1998 JavaWorld article "Ring fever" for details); this year there was no such luck.
After picking up my badge holder, I noticed that the line to pick up materials stretched out the door and down the street, but that there was a line marked with a sign that read "Materials and Purchase Palm V" that didn't even leave the building. So, like any good engineer, I wandered over to that line and asked, "How much are they selling the Palm Pilots for?" The answer was more than low enough to convince me to join the shorter queue.
Yes, my friends, we chose to stand in that line not just because the Palm V was cool (it was, of course) but because we knew we could get through it faster than we could get through the one outside. Most of us really did want to hear the keynote that morning, and it had become clear that even those of us who had arrived an hour early hadn't allowed enough time to navigate this conference's lines! While we waited, we discussed ways in which we could add the cost of the Palm V to our expense reports and get it past the eagle eyes of accounting. We patiently, and when we got to the front of the line, we opened up our wallets, picked up our stuff, and hurried off to the opening keynote address.
At the keynote address, the crowd was treated to the standard Sun production -- lots of lights and flash, and of course plenty of gizmos and cool things. One of the announcements was that Java had packaged up the KVM (the K virtual machine) and some classes and was calling the whole thing the Java 2 Platform, Micro Edition, or J2ME. (This would have been a much more clever name if we were on version 4 of Java.)
So what exactly was J2ME? It appeared to be a solution to what many perceived as the complete failure of the PersonalJava platform. However, while it may serve that purpose as well, what was really interesting was that it was the outgrowth of a project inside Sun Labs to create a very small version of Java that could run on embedded devices. Whereas PersonalJava was considered by many a failure, Java Card -- the Java specification for smart cards -- was considered by just as many to be a success. (See Zhiqun Chen's article on Java Card in last month's issue of JavaWorld.) The difference, perhaps, was that Java Card was the solution to the problem of programming smart cards, whereas PersonalJava was a product in search of a problem. J2ME is a solution to another problem: "Does it make sense to put Java on my pager, and if so, what does it get me?" To find the origins of this question -- and its answer -- let's step back in time a moment to the early days of the Java platform.
Java is, for many, a wonderful language in which to write code. When I joined First Person (which was the wholly owned subsidiary of Sun that was formed out of project Green and which begat Java), I interviewed with, among other people, Tom Lyon. Tom showed me a prototype called the *7 ("star-seven"). This was a small, handheld device running Java (called Oak at the time) with a very creative user interface: an animated agent named Duke ran around in Oak-land (bad pun, I know) and helped you out with your day-to-day activities. The theory was that Oak was going to run on everything. And with Oak running on everything, you would not, for instance, have to buy a new remote with your fancy new television; instead, the television would send any Oak-enabled device the classes needed to control it, and poof! You'd have an instant TV remote.
As it turns out, Oak eventually became targeted for Web browsers, which had few memory constraints. One of the problems with this development was that it eliminated the restrictions on the amount of memory needed to run Java (as Oak eventually became known); its footprint got bigger and bigger. When Java was released in March 1995, it wouldn't have fit on any handheld device of the day, only on high-end laptop computers. For most developers, that state of affairs did not change significantly until last month.
I don't know how many people responded the same way I did when I heard John's statement, but my reaction was to reach into my backpack and rip open the shrinkwrap on the Palm V.
Normally, when you buy a Palm V at a store, the rechargable batteries are pretty close to being dead. In my case the battery was about three-quarters full. That was wonderful, but the even more exciting part was seeing Duke, hand up in a wave, over the icon title, KJava. Whoa! was my reaction. Poke here and there and, yup, there appeared to be a virtual machine in my Palm (pun intended). Just under seven years after I had interviewed for the position in the Java group, I was once again holding a portable digital assistant (PDA) that was capable of running Java -- at least in the form of J2ME.
When the keynote let out that first morning of JavaOne '99, it seemed as if everyone rushed over to the HotSync stations in order to get the latest KVM (or ran to get in line to buy a Palm V). There were problems, of course, most of which stemmed from a lot of Palm newbies such as myself having no idea what the heck we were supposed to do. Eventually the magic incantations were communicated -- "Uncheck that option, enter this DNS server address, change that preference" -- and then we got the synchronization display that took several minutes to complete.
Once the HotSync was finished, we all had the newest Java on our Palms. Suddenly, it seemed like a very good idea indeed to have bought the Palm earlier in the day. Those who had waited now faced a line to buy Palms that had started extending out of the door and down the street. Rumor had it that 10,000 units were sold during the conference. Yikes!
The question of utility came up a lot during the conference. Is it useful to have a PDA that runs Java? Is it useful to have a pager that runs Java? I certainly think it is, and I'll try to explain why.
I owned a Newton Message Pad when the first update came out (the Message Pad 110). I chortled over its interpretation of my writing, I laboriously filled in many names and addresses, and I sketched a few things. Then I wanted to modify its software. I searched high and low for a software kit that didn't require me to throw out everything I knew and learn a new language, and had the expressiveness to create new applications as well. Slowly, eventually, the Newton Software Development Kit got better and better, but the unit just didn't cut it. I was ready to buy a Newton 2000, but the company went away. I sold my Message Pad to a collector.
Then I bought a Wizard 9600. It had some things that I really liked, including a keyboard, but the screen was unreadable in nonoptimal conditions. And while, with its built-in applications, it came closer to what I needed, it fell short in significant areas: no way to add a new database, and no way to create an interface to one that would let me use the PDA as a portable reference stack. As for speed, it was almost fast enough to be usable.
Free Download - 5 Minute Product Review. When slow equals Off: Manage the complexity of Web applications - Symphoniq
![]()
Free Download - 5 Minute Product Review. Realize the benefits of real user monitoring in less than an hour. - Symphoniq