August 2000 Java News

Thursday, August 31, 2000
Cover of the 2nd Edition of Java Network Programming

Thanks to everyone who ordered the second edition of Java Network Programming from Amazon yesterday. It reached 109 in Amazon's bestseller list and got to #2 on Amazon's Movers & Shakers list. (Damn Stephen Ambrose!) It's still available for anybody who didn't order it yesterday. Amazon must have actually preordered enough copies to meet the demand for the first time. It might be able to break the top 100 today, but I doubt it's going to get to #1 on the Movers & Shakers list. In the last hour, Office Yoga: Simple Stretches for Busy People has blown past both Ambrose (750%) and me (715%) with a staggering 6050% increase in the last 24 hours. It must have gotten talked up on Jerry Springer or Howard Stern or some equally prestigious show. At least I pulled ahead of Talking Dirty with the Queen of Clean. :-)

I've begun putting together the web site for this book. It's a little raw yet, but the basics are all there. I need to clean up the examples directory, and then make a tar file; but you should now be able to find source code for any example in the book you want. The errata page is gloriously empty. Past experience tells me that won't last, but I'll enjoy it while I can.

Wednesday, August 30, 2000
Cover of the 2nd Edition of Java Network Programming

The most eagerly anticipated book of the summer is finally here. No, it's not Harry Potter and the Goblet of Fire, at least not at this web site. It's Java Network Programming, 2nd Edition. Yes, the real second edition of the bestselling Java Network Programming is now available from Amazon and fine book stores everywhere. It covers the state of the art in network programming with Java right up through the final version of Java 2 Standard Edition 1.3 (a.k.a Java 1.3).

The second edition of this popular book is a complete rewrite. No chapter was left unchanged. To answer the most frequently voiced complaint about the first edition, every example was rewritten from scratch to be fully conformant with Java 1.1, 1.2, and 1.3. There are no more deprecation warnings! Java standard coding conventions are now used throughout and almost all the examples are much more object oriented. I've learned a lot about object oriented programming in general, network programming more specifically, and Java in particular in the three and a half years since the first edition was published, and I drew on that experience to make this a much better book.

But this isn't a mere rewrite and update either. The second edition is more than 50% bigger than the first. There's new material and new examples in every chapter. And as well as adding lots of information to each chapter, I wrote five completely new chapters:

The first two cover topics that aren't specifically network programming, but that I found often led to problems in network programs for readers of the first edition. The other three cover completely new APIs that weren't even a dream when the first edition was released.

I'll be posting more information about this book here soon. In the meantime, there are more details on the official O'Reilly site for the book, including the Table of Contents, the Index, and a complete sample chapter, Sockets for Servers.

Amazon lists it on 24-hour availability, but they almost invariably sell out within a couple of hours of me announcing one of my new books here, so order it fast. They will get more fairly quickly even if it seems to go on 4-6 week back order. I'd love to see if we can push this one into Amazon's Movers & Shakers category. Barnes & Noble lists it on 1-2 week availability, but I expect they'll have it sooner than that. FatBrain and Borders don't seem to have it in stock yet, but they should get it soon. And of course it should be in local computer book stores everywhere. I put a lot of time and effort into this book. I hope you like it.


Tuesday, August 29, 2000

Karmira has released their BugSeeker, a Java Platform Debugging Architecture (JPDA)-based graphical debugger. It's got all the usual debugger fetaures including break points, watch points, single-stepping, and so forth. It can also operate as a remote debugger. BugSeeker is $195 payware. A 15-day time-limited, fully-functional demo is available.

Monday, August 28, 2000

Slava Pestov's posted the fourth beta of JEdit 2.6, a programmer's editor written in Java and published under the GPL. This release adds TCL syntax highlighting and some major bug fixes.


TinyVM is an open source Java virtual machine that runs as a firmware replacement on the Lego Mindstorms RCX brick, allowing you to create Lego robots and program them in Java. It only supports a small subset of java.lang, but it does support exceptions and threading and adds objects for controlling the motors and sensors for your robots. The authors of TinyVM are also working on another Lego VM at http://sourceforge.net/projects/leJOS but they have yet to release any software for it. Mark

Sunday, August 27, 2000

Aromasoft has announced Teapot, a "Java-dedicated operating system developed for embedded system such as PDA,screen phone, smart phone, set-top box, auto PC and other similar devices." TeaPot can also run programs written in C. It has a 1.3 MB memory footprint. It's allegedly Personal Java compliant. A demo is available, but I'm not sure what the license is. And would somebody please tell their webmaster that pointless use of JavaScript just loses customers? (If Sunday wasn't such a slow news day, they would have lost this mention here for that reason alone.)

Saturday, August 26, 2000

A new Volano report has been published using new VMs and hardware. According to the site, "VolanoMark is a pure Java server benchmark characterized by long-lasting network connections and high thread counts. The VolanoMark benchmark creates client connections in groups of 20 and measures how long it takes for the clients to take turns broadcasting their messages to the group. At the end of the test, it reports a score as the average number of messages transferred by the server per second." This time Volano tested various 12 Java 2 Standard Edition virtual machines on 4 operating systems on identical Intel X86 hardware. The IBM J2SE 1.3.0 for Windows came out on top followed closely by Tower's TowerJ 3.5.3 for Linux. The Solaris X86 VMs feel near the bottom, though the worst VMs were anything with the Inprise JIT, especially FreeBSD.

The JavaLobby has also published an updated Performance Report that covers several benchmark suites across various VMs, though still only on Intel hardware.


Sun's published the the Maintenance Review Draft Specification for JSR 9 Federated Management Architecture (FMA). FMA specifies a "storage management platform that will allow vendors to construct storage management applications from standard and custom components." This is just bug fixes for the existing spec. Review closes on September 18, 2000.

Friday, August 25, 2000

At last week's LinuxWorld, Sun announced that future releases of Suse and TurboLinux will include its Linux JDK. It's already in Caldera Linux and MandrakeSoft. Debian probably won't bundle it until Sun finally lets go of its proprietary fantasies. Otherwise, Red Hat's the last major hold out.


The part of Compaq formerly known as Digital Equipment, formerly known as DEC, is retiring the VAX product line. You can still order one through the end of the year, but supply is limited to stock on hand. I still remember learning to program in Fortran on VMS almost 20 years ago. VMS will still be developed on Alpha, however, so I haven't yet won my arguments with all those VAX bigots back in college who thought Unix was doomed. On the other hand I haven't heard much from them on that particular topic for the last few years...


Imperial Software Technology has released a free-beer personal edition of the Visaj GUI Builder for Java. Visaj PE is restricted to personal, not-for-profit projects. Java 2 is required. The unrestricted professional version costs $995.


Sun's posted the Participant Review Drafts of the JSR-17 JAIN ISUP Specification and the JSR-22 JAIN SCE/SLEE API Specification. JAIN stands for "Java Advanced Intelligent Networks", but what it's really about is telephone company central office switches. It's probably completely irrelevant to 99% of the people reading this. Review closes on September 25, 2000 for both of these.

Much more broadly interesting is that Sun has posted the Maintenance Review Draft Specification for the Java Media Framework 2.0. The proposed changes seem relatively minor. Review closes on September 25, 2000.

Thursday, August 24, 2000

Tapestry is yet-another open source "Web Application Framework" written in Java as a Java Server Pages replacement. The current version is 0.12. The license is the LGPL.

Wednesday, August 23, 2000

I'm still catching up on news that piled up while I was in Montreal. Today, I wanted to check in with Sun. The big news of the last week was that Sun and HP are dropping CDE in favor of Gnome. This isn't specifically a Java announcement, but it does mean that Gnome is continuing to gather steam, and this should add many competent developers to the Gnome team. In related new, Eazel posted the first public preview release of Nautilus, the file manager for the Gnome desktop. There are also screenshots for those of you who, like me, still haven't managed to get X-Windows running on your Linux boxes. (I really have to take care of that.) It looks good.

In more Java specific news, there've been a number of updates from the Java Community Process. First off the new JSR 78 RMI Custom Remote References proposes

to add a general framework for exporting remote objects with custom remote invocation handlers and remote method dispatchers (collectively called "custom remote reference types") in RMI. In RMI, remote reference types control communication between clients and the remote objects. There are several remote reference types that exist in RMI today: a simple "unicast" reference type, a reference type that makes use of custom socket factories, and a reference type for an "activatable" remote object. Currently, these reference types are specified implicitly by exporting an object via APIs such as java.rmi.server.UnicastRemoteObject and java.rmi.activation.Activatable. New reference types cannot currently be defined by an application. The proposed specification will allow new remote reference types to be defined and used by RMI applications.

Secondly, the public review draft specifications for JSR-53 Java Servlet 2.3 and JavaServer Pages 1.2 and JSR-58 Java 2 Platform, Enterprise Edition 1.3 are now available. As usual these are PDF only. Public review closes on September 15, 2000.

Finally, Sun's posted a release candidate of the Java 2 Software Development Kit, Standard Edition, v. 1.3.0 (a.k.a. JDK 1.3) for Solaris on the Java Developer Connection (registration required). HotSpot, both server and client editions, is included. The libraries have been tuned up and performance improvements have been made in application startup time and memory footprint. The Java Plug-in now caches applets and allows optional Java package installation.

Tuesday, August 22, 2000

Slava Pestov's posted the third beta of JEdit 2.6, a programmer's editor written in Java and published under the GPL. This release adds various minor fixes and cleanups.


Lutris has posted the second alpha release of the Enhydra Enterprise application server. Enhydra Enterprise Alpha 2 supports the Java Servlet API, Java Server Pages, Java Naming and Directory Interface, Enterprise JavaBeans, JTA, and JDBC. Each service is now packaged in a separate JAR file. This release also adds "JMX support" (whatever that is, Java Management Extension perhaps?)

In other Enhydra news, the Brock project is building portal functionality (personalization, content management, etc) for the Enhydra platform. Developers are needed.

Monday, August 21, 2000

Netscape's released Communicator 4.75 for Macintosh, Windows, and Unix to fix the "brown orifice" security hole. I strongly recommend that all users upgrade to this release.


I've written up my impressions of Montreal for my online journal.

Sunday, August 20, 2000

I'm back from Montreal. The net access from my hotel was poor, but otherwise I absolutely adored the city. It struck me as the best parts of New York, Boston, New Orleans, and San Francisco all rolled into one city with all the bad parts removed. I'd be very tempted to pick up shop and move there, but my wife's a lot less enamored of French than I am. Then again, I did arrive during what one cabbie told me was the first decent week of weather this century, and I'm afraid he may have understood that 2000 is the last year of the 20th century rather than the first of the 21st. I'm going to spend today writing up some thoughts from the trip, most of which have nothing to do with computers. Tomorrow, I'll try to catch up with all the news items that have piled up over the week while I was away.

Friday, August 11, 2000

I'm leaving for Montreal this afternoon to attend the Extreme Markup Languages 2000 conference. I'm giving a brief talk on JDOM Wednesday afternoon, but mostly I'll just be listenting to everyone else talk and doing a bunch of sight-seeing and shopping. My wife Beth tells me that Montreal has lots of wonderful French bookstores.

Depending on what sort of Net access I have while I'm there, updates may be a little slow here for the next week. When I was in Atlanta last month, the Courtyard Marriott I stayed at had wonderful Net access, essentially a T-1 to my room for about $10.00 a day. The staff told me they're rolling this out all over the country, and are about half done. They also had a genuine laundromat on the premises and no ridiculously overpriced minibar. It was definitely a step-up from the San Jose/Santa Clara hotels I've stayed at lately, where they think that Net access means an extra phone jack for your modem, and $1.00 a minute phone calls. In the future when I have a choice I'm definitely looking for Courtyard Marriott again. However, in Montreal I'm staying at the conference hotel (The Hotel Wyndham Montreal) so I don't yet know what I'm likely to find when I arrive. My wife's more concerned aboiut whether or not the pool's heated. :-)


Sun's posted version 0.2 of the Java Accessibility Helper on the Java Developer Connection (registration required). The Helper a generates a report that identifies accesibility problems in a Swing-based application. For example, it will check that all input fields can be reached using only the keyboard.


IBM alphaWorks has updated the IRC Client for Java to remove the expiration date.


JavaGroove is a $29.95 payware Java IDE for the Mac. It's currently in alpha and is a little on the crash-prone side.

Thursday, August 10, 2000

Sun's posted Java Specification Request 77, Java 2 Platform, Enterprise Edition Management. This proposes "a standard management model for exposing and accessing the management information, operations, and parameters of the Java 2 Platform, Enterprise Edition components."

Wednesday, August 9, 2000

I've posted the notes from last night's talk about JDOM to the XML SIG of the New York Object Developers' Group. This is one of the most complete introductions to JDOM available anywhere and is completely up-to-date as of Friday's CVS build. Now I've got to figure out how to cut this down to just the bare essentials for a startlingly short half-hour presentation next week in Montreal at the Extreme conference.


Microsoft's released its .NET Software Development Kit on the Microsoft Developer Network. This is C# plus the framework, ASP+, the Common Language Runtime, documentation, samples, tools, and command line compilers. The whole package is a whopping 85 megabytes compressed, about 200 megabytes uncompressed. Windows 2000, Internet Information Server, and IE 5.5 are required. The license agreement contains a "no benchmarking" clause. If somebody with a faster net connection than mine feels like downloading this puppy and violating that clause, I'll be happy to post your results here.

In related news, Joshua Trupin's published a really interesting article about C# in MSDN Magazine. There's a lot of new information here. Most of what he waxes ecstatic about is stuff Java's had for five years (Unicode chars, garbage collection, single inheritance, no global variables, type safety, no header files, etc. ). However, there's also some stuff Java doesn't have and that I hadn;t heard mentioned before including financial and time data types and goto. (I guess Basic is still too strong an idea at Microsoft to eliminate goto completely.)


There are several new releases from the Blackdown Project today:

Get them from your nearest mirror.

Tuesday, August 8, 2000

Milestone 17 of Mozilla and Netscape 6.0 Prerelease 2 have both been posted on their respective web sites. Mozilla M17 is available for Windows 95 and later, Linux, MacOS 8.5 and later, and Solaris. Java support is weak. The Java Plugin 1.3 does not work in M17. HTTPS is not supported for Java applets. (It is for the browser.) Running J2SE in M17 in 256 color mode may cause a flicking problem. Running too many applets and plug-ins on the same page may fail because the browser will attempt to stop or destroy the running instances of the applets or plug-ins, but the the applets or plugins are not properly cleared up. On the Mac, even visiting java.sun.com may crash your system. And finally, "If you have installed the latest JRE 1.2 from Sun Microsystems, you may crash at startup if the Java plugin is present. To fix this, remove the following dlls from the Plugins folder located in your 4.5 (or later) Communicator directory: npjava32.dll, npjava12.dll and npjava11.dll. " Finally , there's no Java support at all for Linux. I'm not sure if Netscape 6.0 is any better than Mozilla on these points.


Tonight, Tuesday August 8, I'm giving an introductory talk about JDOM to the XML SIG of the Object Developers Group in New York. JDOM is a tree-based, Java API for processing XML documents that's been designed with simplicity and convenience as its foremost purposes. JDOM programs can use any commonly available SAX or DOM parser. At a high level, it's similar to the DOM, but since JDOM was designed specifically for Java rather than for multiple languages, it feels much more natural and "right" to Java programmers. This talk teaches you how to use the JDOM to read and write XML documents from your Java programs while automatically maintaining well-formedness and checking validity.

The meeting takes place from 7-9 p.m., at Goldman Sachs, 125 Broad Street, 19th Floor, Room B in Manhattan in the Wall Street area. Admission is free. However, you must register for this session by sending an email to wperry@fiduciary.com. You will receive a confirmation by return email. You need to register in advance to get into the building. As usual, I'll post the notes from the talk here on Wednesday.


IBM's alphaWorks has updated their Bridge2Java tool for integrating ActiveX controls into Java to fix a few bugs.


ArgoUML is an open source UML design tool project. The current version is 0.8. It runs on Java 1.1 or 1.2 but not Java 1.3.


Romain Guy has released version 2.8.1 of Jext, his open source programmer's editor written in Java. This release adds support for VHDL/Verilog and Eiffel, plain search, and new uncomment functions as well as many other minor improvements.

Sunday, August 6, 2000 and Monday, August 7, 2000

Sun's also released the Graphics 2D SVG Generator 1.0beta. This Java 1.3 program allows Java applications to export their graphics to Scalable Vector Graphics (SVG) format. SVG is an XML vocabulary defined by the W3C (World Wide Web Consortium) for vector graphics that can be read by Adove Illustrator 9 among other tools.


Dan Brumleve's written Brown Orifice to take advantage of a really nasty security hole in at least some Netscape implementations of Java. This allows applets to run web servers that can be accessed from arbitrary hosts, and to make network connections to arbitrary hosts, not just the code base. Furthermore file URLs can be used to read files from the client's hard drive! I haven't been able to verify this working myself because my firewall/proxy server combination is blocking the attack. but there's a lot of independent confirmation being reported over on SlashDot. Greg Barton has posted a detailed analysis of just why this problem occurs. Both Sun and Netscape have screwed up here. One bug in Netscape's code combines with one bug in Sun's Java code to open up this vulnerability. Overall, this is the nastiest and easiest to exploit security hole I've ever seen in Java. I strongly recommend that you immediately turn off Java in Netscape Navigator. I've seen conflicting reports about whether or not the Java Plug-In is affected or just Netscape's built-in VM. IE does not appear to be vulnerable.

Saturday, August 5, 2000

Version 1.1 of the free BlueJ IDE is now available. New features include:

Friday, August 4, 2000

Romain Guy's released Dawn, a "dynamic extensible scripting language" written in Java. Dawn is published under the GPL.


The first public alpha of gnome-gcj is now available. The gnome-gcj project aims to create a complete set of bindings for GTK+ and Gnome in the Java language; specificly the GCJ/libgcj Java platform. The Cygnus Native Interface (CNI) will be the interface between C/C++ and Java.

Thursday, August 3, 2000

Bill LaForge has released version 2.2 of Quick. Quick converts XML files into a Java object structure as specified by a QDML schema. Version 2.2 includes a DTD generator, QJML2DTD, to convert a Quick binding schema, QJML, into a DTD and QIML2DTD to convert Quick's internal binding schema, QIML, into a DTD. A DTD for QIML is now included. Java 1.3 is required.


IBM's released version 1.1.2 of their Jikes Java compiler. Among other features this release adds more support for the Mac, no longer generates an error when a package named in a package statement can not be found on the CLASSPATH, and fixes many bugs. Jikes is available in source and binary format for a variety of platforms.

Wednesday, August 2, 2000

Sun's posted Java Specification Request 76, RMI Security. Comments are due by August 14, 2000. From the request:

The proposal is to define a high-level API for controlling network security in RMI, covering basic security mechanisms: authentication (including delegation), confidentiality, and integrity. The intent is not to define new security algorithms or protocols, but rather to define an API that allows applications to readily utilize existing algorithms and protocols in the context of RMI, in such a way that different algorithms and protocols (and different implementations of them) can be plugged in underneath without recoding the applications.

A draft of the proposed additions and changes is also available. This would become a standard part of Java. This sounds like a good idea to me, especially since the RMISecurityManager became effectively usefully starting in Java 1.2.

Tuesday, August 1, 2000

IBM's alphaWorks has updated the Graph Foundation Classes for Java with various new methods and classes as well as more examples. This a class library for working with and displaying graphs, that's the computer science/data strctures kind of graph, not the Excel chart kind of graph.


Slava Pestov's released JEdit 2.5.1 to fix a few bugs and synchronize the jEdit 2.5 and 2.6 plugin API.

You can also read the news from July, June, May, April, March, February, January, December, November, October, September, August, or last July if you like.


[ Cafe au Lait | Books | Trade Shows | FAQ | Tutorial | User Groups ]

Copyright 2000 Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified August 23, 2000