1997 Java News

JavaBeans: Developing Component Software in Java
JavaBeans cover My latest book, JavaBeans: Developing Component Software in Java, has just been released. It's the first book in IDG's new Power Guide series. After reading this book I hope you'll agree with me that beans are the wave of the future, and that they make Java programming easier, more productive, and more fun.

When I was finishing up my last book, Java Secrets, John Osborn, one of my editors at IDG, asked me what I thought would make a solid book for IDG's new professional series. "Beans! Let me write about beans!" I practically shouted. It was obvious, even then, that JavaBeans were going to be hot, and that this is where Java was moving. It's four months later; I know a lot more now about JavaBeans than I did then, and I'm more convinced than ever that JavaBeans is going to be an essential part of the future of Java, and indeed of the broader software development world. This book is your introduction to the exciting and fast-growing world of JavaBeans. With this book you'll learn how to write your own unique beans that can be loaded into builder tools to quickly produce powerful and customized applications.

The JavaBeans Power Guide is 355 pages, $39.95, and includes a CD with the JDK and the BDK (Beans Development Kit) as well as an assortment of beans and builder tools. It's now in stock at Amazon, Computer Literacy, and better bookstores everywhere. I've posted the preface, examples, table of contents, and some other material here on Cafe au Lait. I'll add some more in the New Year. In the meantime, why don't you check out JavaBeans and let me know what you think?


Wednesday, December 31, 1997
ORO, Inc. has released PerlTools 1.1 and TextTools 1.1. PerlTools 1.1 has some performance enhancements. TextTools 1.1 adds a set of regular expression filename filters that filter directory listings according to Awk, Perl, or Glob expressions.

Tuesday, December 30, 1997
NetForge 0.2.7 is an $80 shareware Web server written entirely in Java 1.1.3 that features a small server kernel extended by responder objects. This release features multi-protocol support.

Monday, December 29, 1997
Version 1.1b5 of Patrik Lundin's symbolic math package is now available.

Sunday, December 28, 1997
Netscape's released Preview Release 2 of a Java 1.1 patch for Communicator 4.04 Linux.

Netscape's also released a version of the Java 1.1 patch for Windows Communicator that can be manually installed from a zip file.

Friday, December 26, 1997
U.S. District Judge Ronald Whyte rejected Microsoft's motion to postpone the next hearing on Sun's trademark infringement suit over Microsoft's use of the Java logo from February 22. till the end of June. During this hearing, Sun and Microsoft each get 20 minutes to argue about whether or not the judge should issue a preliminary injunction against Microsoft before the full jury trial.

Thursday, December 25, 1997
Sun has released version 0.7 of the Java Foundation Classes (Swing) to registered members of the Java Developer Connection.

Wednesday, December 24, 1997
The update to the Macintosh version of Visual Cafe 1.0 that supports Macintosh Runtime for Java 2.0 and Java 1.1 is now available at Symantec's update center. The download is a whopping 30 megabytes.

Tuesday, December 23, 1997
Although the Macintosh Runtime for Java (MRJ) has been released to the general public, the Software Development Kit (MRJ SDK) is still in semi-private beta. The MRJ SDK 2.0.1 Early Access 1 has been released to subscribers of the MRJ-DEV mailing list.

Sun's released version 1.0 of the JavaMail API Specification. The current early access release of JavaMail does not fully implement the 1.0 specification. A new beta expected in January is expected to fully implement the 1.0 specification.

Monday, December 22, 1997
I've updated the books page.

Sunday, December 21, 1997
Beta 1 of Jacl and Tcl Blend are now available. Jacl, the JAva Command Language, is a Java implementation of Tcl 8.0. Tcl Blend is a package for Tcl 8.0 that loads and interacts with the Java VM.

Object Plant 1.4.5, a $25.00 shareware program for object-oriented analysis and design, is now available. This version fixes a number of bugs and adds a few minor features.

Saturday, December 20, 1997
Sun's released version 1.1 of the Java Web Server. It's free for non-commercial use, $295.00 for commercial use. Version 1.1 adds dynamic page compilation, session tracking, a and presentation templates.

Webmasters using other web servers who still want to use servlets, should check out IBM's Servlet Express 1.0, now in beta, that adds servlet support to the Lotus Domino Go Webserver Release 4.6.1 for Windows NT, Sun Solaris, and AIX, Netscape Enterprise Server 2.01 and higher for Windows NT, Sun Solaris, and AIX, Netscape FastTrack Server 2.01 and higher for Windows NT, Sun Solaris, and AIX, Microsoft Internet Information Server 2.x and 3.x, and last but most definitely not least, Apache 1.2.4 for Sun Solaris and AIX.

Sun's also released version 0.06 of the Infobus 1.1 draft specification and version 0.95 of the Drag and Drop Subsystem for the JFC.

Apple's released the first non-beta of Macintosh Runtime for Java 2.0 (MRJ). This release is based on Sun's JDK 1.1.3 and fully supports Java 1.1. It requires MacOS 7.6.1 or later. MRJ 2.0 may be selected as the virtual machine in Internet Exploror 3.0.

You can download MRJ 2.0 from the following sites:

The .hqx files are 13.5MB, the .bin files are 9.9MB in size. you'll need Diskcopy 6.1 to mount the disk images. This is only a runtime. No corresponding SDK (compiler, profiler, etc.) has yet been released.

Friday, December 19, 1997
Sun's released the second beta of the Java Media Framework 1.0. This beta is aavilable for Win-32 and Solaris and adds support for IMA4, G.723, H.263, improved HTTP caching, enhanced DataSource functionality, various bug fixes, and support for Netscape and Internet Explorer.

The W3C has recommended that the HTML 4.0 standard be approved. Formal voting among W3C members will take about six weeks and formal approval is expected.

Symantec is shipping the $299.95 Visual Cafe 2.0 Pro and the $499.95 Visual Cafe 2.0 Database Edition for the Mac, and version 2.1 for Windows 95 and NT. 2.0 users can upgrade for free from Symantec's web site.

Thursday, December 18, 1997
Sun's released the first public beta of the Java Development Kit (JDK) 1.2 for Solaris Sparc, Solaris X86, and Windows 95 and NT. JDK 1.2 adds a 2D graphics API, enhanced accessibility, drag and drop, application services, Java Sound, extensions framework, collections API, input methods for non-Roman languages, version identification, weak references, Java IDL, a Java Virtual Machine Debugger Interface (JVMDI), and Javadoc Doclets. JavaBeans, security, Remote Method Invocation (RMI), Object Serialization, JAR, and the Java Native Interface (JNI) have all been enhanced. Finally there are various perfomance enhancements including native thread support for Solaris, compression of loaded classes, and faster memory allocation and garbage collection.. You can retrieve the fifteen megabyte downloads from

The docs are also available in tar.gz, tar.Z, and zip formats from:

Separately, Sun has released an idltojava compiler that you'll need if you want to implement ORB-based network services in Java.

Version 1.1b of JConfig for the Mac now allows you to enumerate the user's monitors, and get information about each of them.

IBM's released an allegedly final version of their port of JDK 1.1.1 to OS/400 and the first beta of a JDK 1.1.4 for AIX.

Wednesday, December 17, 1997
I've added several new mailing lists to the mailing list page, including one for discussion of Java in Spanish and one about integrating Java with XML.

Tuesday, December 16, 1997
I've updated the user group list with new groups in Finland, San Francisco, Slovenia, and Manchester.

Clemens Lahme has published JACOB, The Java Commando Base, a free emacs hosted class browser and project manager for Java.

Monday, December 15, 1997
Version 1.1b4 of Patrik Lundin's symbolic math package is now available.

I've added about a dozen new books to the Java books list.

Sunday, December 14, 1997
Download AWB IBM's released alpha 5c of Aglets Workbench. Aglets are IBM's intelligent agent architecture for Java.

IBM's alphaworks has released BeanExtender 2.0. This tool which is itself written in Java allows more dynamic customization of Java at design time without access to the beans' source code.

Saturday, December 13, 1997
I just got back from Internet World in New York. It was the biggest such show yet. Do you remember the fuzzy point a few years ago when PC Expo stopped being a PC show, and started being a computer show? that is when the distinction between PCs and computing in general more or less vanished? Anyway, it's clear the Internet is going to assimilate PCs just like PCs assimilated everything preceding it.

One noticeable trend in this direction was the number of hardware companies with big booths like Dell and Compaq that didn't have anything special to show except fast X86 boxes to run web servers. There were similar unexpected booths dedicated to word processors, OCR, package delivery, and other technologies not normally thought of as Internte products. Internet World is no longer just a show about niche technologies for the Internet. Internet World is fast becoming a show about anything and everything to do with computing because the Internet is borging the rest of the computing world. (borg, verb: to assimilate, resistance is futile, cf. Microsoft)

On the other hand, I must admit I didn't see anything really interesting or new on the Java front. I can confirm an earlier report. Of the several products I looked at in the Java pavilion, not one was using pure Java. Most were mixing and matching Java pieces with native code written in C or C++. 100% pure hype notwithstanding, commercial developers perceive a need to integrate native code to deliver adequate performance.

Version 1.1.5 of the JDK is now available for for Windows 95/NT 4.0 and Sparc and X86 Solaris. JDK 1.1.5 features significant performance improvements over JDK 1.1.4 through recently tuned class libraries and also includes several bug fixes.

Sun's also released the final version of the Native Threads Pack for Solaris that uses native Solaris threads to distribute Java threads across multiple processors.

Friday, December 12, 1997
U.S. District Judge Thomas Penfield Jackson has ruled that Microsoft "shall cease and desist...from the practice of licensing the use of any Microsoft personal computer operating system software (including Windows 95 or any successor version thereof), on the condition, express or implied, that the licensee also license and pre-install any Microsoft Internet browser software."

Jackson denied the Justice Department's request that he hold Microsoft in contempt of court for violating the 1995 antitrust agreement. Both of these rulings are preliminary, and subject to reevaluation and change during the ongoing proceedings.

Sun's posted version 0.5 of the JavaBeans Activation Framework (JAF) draft specification. An earlier beta implementation is also available. JAF lets JavaBeans programmers dynamically determine the type of an arbitrary piece of data, encapsulate access to it, discover the operations available on it, and instantiate JavaBeans components to perform those operations. For example, if a browser loaded a Quicktime movie, JAF should find a bean that can play the movie.

IBM's alphaworks project has updated their Jikes debugger so that it works with the JDK 1.1.5 debugging API.

Alphaworks has also released the first point release (1.0.1) of the Attachlet applet proxy server that relays applet originated socket connections from the applet host to remote hosts, thus avoiding the normal security restrictions imposed on network connections from applets.

Thursday, December 11, 1997
From the "another one bites the dust department", I'm saddened to inform you that Macintosh IDE developer Roaster Technologies is shutting down, citing an inability to attract venture capital. The company's Roaster IDE, JIT compiler, and virtual machine technologies are up for sale. Support for current users is not promised. It's getting lonelier and lonelier in the Mac world.

Sun's still promising a JDK 1.2 beta by the end of the month; and since Sun effectively shuts down between Christmas and New Year's, that means before Christmas. They've also released a draft specification for server-side Enterprise JavaBeans.

Finally they've released the first beta of a Windows 95/NT 4.0 plug-in for Internet Explorer 3.0 and later called the Java Activator. The Java Activator lets web page designers specify the use of the latest version of Sun's Java Runtime Environment (JRE) instead of the bundled Microsoft VM. A future version will support Netscape Navigator 3.0 and later. Between the Java Activator and the Java Porting and Tuning Center, it seems that Sun is finally realizing what users have know for a long time: they simply can't rely on third parties to port Java to their platforms. If they want it done right, Sun has to do it themselves.

Wednesday, December 10, 1997
Microsoft's J/Direct Jumpstart provides examples and tutorials showing programmmers how to use J/Direct to write Windows-dependent that call the native Windows APIs.

The Beanery, from IBM's alphaworks, is a wizard tool for creating JavaBeans. The beanery allows developers to prepare a bean's properties, serialization behavior, bean info, custom property editors, customizers, and documentation; then generate source code. The source code can then be edited by hand to add more psecific features, or loaded into other builder tools like JBuilder.

Netscape's released beta 2 (excuse me, preview release 2) of Communicator 4.0.4 for Unix (Solaris 2.4, Solaris 2.5.1, IRIX 6.2, HP/UX 10 and AIX 4.1 ) that supports Java 1.1. This is primarily a bug fix release.

Version 1.1.1 of Sun's $299 payware HotJava HTML Component is now available. (1.1 was never released. This is the first release since 1.0.) Improvements and changes include fairly liberal redistribution rights, compatibility with more JavaBeans Builder tools like Symantec Visual Cafe, support for developer-provided security managers, a few API Changes, and a lot of important bug fixes.

Version 1.1b2 of Patrik Lundin's symbolic math package is now available.

The first beta of version 1.1 of the Java Naming and Directory Interface is now available to registered members of the Java Developer's Connection. This release adds LDAP 3 support, documentation for LDAP and NIS service providers, and updated security information. The final release is expected in January.

Stop by and say Hi at Internet World
Java Network Programming Cover I'm signing copies of Java Network Programming today, Friday December 12, at the O'Reilly booth at Internet World between 1:00 and 2:00 P.M. Why don't you stop by, and let me know what you think of my books, Cafe au Lait, or the current state of Java? No purchase required :-)

I'm going on the road!
Internet World Logo Bruce Eckel suspects I might be an artificial intelligence. In reality I'm flesh and blood; and if you don't believe that I'll prove it with two opportunities to see me in person in the near future. First, on Friday, December 12 from 1:00 to 2:00 P.M., I'll be signing copies of my book Java Network Programming at the O'Reilly booth at Fall Internet World in New York at the Javits Convention Center.

SD98 Logo Next, on Thursday February 12, I'll be giving two intermediate level talks on Java Network Programming at Software Development 98 at the Moscone Convention Center in San Francisco. At 2:00, I'll show you how to use Java's URL and URLConnection classes to download data and content from Internet servers. You'll learn how the URL and URLConnection classes are integrated with Java's content and protocol handlers. You'll also learn how you can use these classes to communicate with CGI programs on a web server. Possible applications include web spiders, link checker robots, and persistent server-side storage.

At 4:00, I'll cover Java's Socket and ServerSocket classes. Sockets are a powerful abstraction that let you communicate with remote network hosts as easily as you'd read or write a file on your hard drive. This talk shows you how to take advantage of Java's Socket and ServerSocket classes to communicate with any TCP server or client. Possible applications include both standard protocols for email, ftp, and news, and custom protocols for networked multiplayer games, interactive chat, whiteboards, and more.


Tuesday, December 9, 1997
I've posted the final exam for my CS902 class, Object Oriented Analysis and Design with Java. I'll post a solution here in about a week.

The W3C has issued a proposed recommendation for XML 1.0. This recommendation will be voted on by the 229 W3C Member organizations in about six weeks. No significant hurdles to its adoption are anticipated. Both Microsoft and Netscape have pledged to support XML in 1998.

Monday, December 8, 1997
Version 1.2 of Peter Hearty's free Java database InstantDB fixes a lot of nasty bugs.

Mizutori Tetsuya has posted instructions for running the beanbox on a Macintosh made using the November release of the BDK and Macintosh Runtime for Java 2.0

IBM's alphaworks has released a new OS/2 beta of their High Performance Compiler for Java that supports part of Java 1.1.1.

Beta Version 0.1.1.5.1 of Javide fixes a few bugs in this $25.00 shareware IDE.

Sunday, December 7, 1997
Version 0.8 of the Java Electronic Commerce Framework (JECF) activates the JECF's security features for the first time including the SET protocol, includes new Commerce-Bean types, sports a redesigned and extensible user interface, expands support for smart cards and native code, and has a lot of new documentation.

Version 0.39d of the Pizza compiler is now available. Pizza is an extended version of Java that supports p arametric polymorphism (templates), first-class functions (function pointers) and class cases and pattern matching (visitor-style patterns).

ORO Inc. has released an early beta of version 1.1 of their regular expression class library OROMatcher 1.1 that adds a serializable Perl5Pattern class and a Perl5ReaderInput class. These require Java 1.1.

They've also released version 1.2.1 of NetComponents which fixes a bug in the handling of dates in the FTP classes. This bug would probably only bite programmers who are writing mirror programs that automatically transfer changed files.

Saturday, December 6, 1997
IBM's alphaworks has been busy. They've released several new products including DistributorBean, a JavaBean that sends SMTP email, Attachlet, a General Purpose Applet Relay Server that bridges applets from a Web server inside a socks firewall to external servers or hosts and allows them to bypass normal applet security restrictions on network connections, a DSSeries LDAP Client for Java that works with the Java Naming and Directory Interface, and a Java stub compiler for ASN.1 specifications.

Lawsuit or no lawsuit, Microsoft's gone ahead and released version 2.0.1 of its Java Software Development Kit (SDK).

Sun's released draft 0.05 of the JavaBeans InfoBus Specification. This release adds Data Controllers, security considerations and database access interfaces as well as various improvements in the other interfaces and classes.

Friday, December 5, 1997
Sun's released the November version of the Beans Development Kit (BDK) 1.0 This is primarily a bug fix release.

The first beta of the JavaServer Toolkit 1.1 has also been released to registered members of the Java Developer Connection. This is a class library for building network servers. A variety of classes are included that provide server-configuration administration; authentication, access control, and authorization; Secure Sockets Layer 3.0; connection and thread management; servlets and servlet beans; and regular expressions.

I've updated the trade shows page.

Cafe au Lait is now mirrored in Austria.

Thursday, December 4, 1997
Sun's released JDK 1.1.5 for Sparc and X86 Solaris and Windows 95 and NT 4.0. However it seems that instead of putting it up on an ftp site where people can actually get it, they're using HTTP and a broken CGI that excludes many users outside the U.S. One hopes they'll fix the problem soon. In the meantime international users may be able to download the files from ftp://ftp.javasoft.com/pub/jdk1.1/93jd84jd7/

Outside of annoying international users, this release's primary purpose is to fix various bugs. Nothing new of significance has been added.

The README.txt file in Swing 0.6.1 says

This release is called 0.6.1. If you've been keeping track you may be wondering if you missed Swing 0.6. A version of Swing called Swing 0.6 will be shipped along with the first beta release of JDK1.2 which should be available in a few weeks. Our release cycle is substantially shorter than the full JDK. Thus Swing 0.6.1, which contains a few bug fixes that are not in Swing 0.6, will ship first.
I've been working on an applet that allows you to explore your virtual machine's support for different Unicode character blocks for my next book with O'Reilly. If you have a Java 1.1 capable web browser, you may want to check it out.

The first version of the JDK 1.1.4 for MkLinux has been released by an independent team of programmers.

Wednesday, December 3, 1997
Microsoft's cancelled their much discussed Java summit scheduled for this weekend, allegedly due to attendee and presenter schedule conflicts. It may be rescheduled for a later date.

Sun's released version 0.6.1 of the Java Foundation Classes to registered members of the Java Developer's Connection. This release adds two new look and feel implementations: the cross-platform Java Look and Feel (JLF) and the Motif look and feel. The Rose look and feel has been eliminated.

The CD bundled with O'Reilly's Perl Resource Kit includes th first version of JPL, a Java/Perl interface written by Larry Wall, creator of Perl. JPL allows programmers to write Java classes with Perl implementations. In essence these are "native" methods written in Perl rather than C. Thus bilingual Java/Perl programmers can use Perl's powerful string processing and regular expression features in their Java programs. So far, JPL is only available from the CD in the $149.95 Perl Resource Kit.

Microsoft has released Internet Explorer 4.0.1 for Windows 95 and NT. 4.0.1 fixes various bugs and adds accessibility features such as enlarged fonts and keyboard navigation. Depending on options you select, you'll need to download between 13-25 megabytes which will occupy 56-98 MB of your hard disk.

Tuesday, December 2, 1997
I've updated the notes for Week 11, Threads, of my Introduction to Java Programming course.

If you think you might be a problem Mac user, you should check out Appleholics Anonymous.

Ernest Friedman-Hill has released Jess 3.2, the Java Expert System Shell. This release fixes assorted bugs and includes a manual for the first time.

If you're Maria Lewis at Sun Microsystems, or someone with a similar sounding name who called me on the phone yesterday, please call me again. My wife accidentally erased your message from my answering service :-(

Monday, December 1, 1997
Metrowerks has fixed version 1.1.4 of their Java compiler so that it no longer crashes on 680X0 Macs.

Sun's released version 0.1 of the JavaMail API classes to registered members of the Java Developer Connection. This release includes the core JavaMail packages javax.mail and javax.mail.internet and early access versions of the IMAP and SMTP service providers. The JavaMail specification and the APIs in this release are still subject to change.

Netscape's released the final version of a patch for Communicator 4.0.4 for Windows 95 and NT that supports Java 1.1.

Sunday, November 30, 1997
My apologies to those who failed to find Bruce Eckel's foreword for my next book, JavaBeans. In the rush to fly out to Kentucky for Thanksgiving I mistyped the URL, and neglected to double check it. The above link is correct if you want to try again. Mea culpa. Mea maxima culpa.

Less than a week after releasing NetComponents 1.1, ORO, Inc. has released NetComponents 1.2, a free networking class library. Version 1.2 adds an SMTP package. Version 1.1 added an NNTP package and improved the FTP and Telnet classes.

Saturday, November 29, 1997
Divya's UPstream is a light-weight, client-server database system useful for applets that want to store files on a server. This product includes a multi-threaded, multi-user server and a light-weight client side API to communicate with the server. The client side API allows the objects to be transmitted and stored in an encrypted (56-bit DES) and compressed manner on the server.

Friday, November 28, 1997
Marc Latour's ssMail (server-side Mail) servlet allows remote users access to their IMAP4 email through any frames-capable Web browser.

Thursday, November 27, 1997
Compress-it is an interesting if slow JavaScript that removes extraneous characters from HTML source. A faster, stand-alone application version would be nicer, however. Any ambitious Java programmers out there want to give it a whirl?

Wednesday, November 26, 1997
GenieWorks has released SpotCheck 1.0, a $39 syntax coloring, source code editor for the Macintosh that "knows" the Java language. Specifically, SpotCheck identifies syntax errors and semantic errors (undefined names, type mismatches, etc.) -- those errors normally returned by a compiler. This analysis is performed after each edit, giving the programmer immediate feedback on errors. SpotCheck interfaces with Sun's Macintosh JDK 1.0.2 to provide compilation and running of programs which limits its usefulness since both Sun itself and Macintosh programmers have more or less abandoned the JDK in favor of Apple's Macintosh Runtime for Java. A 30-day time-limited demo is available.

Tuesday, November 25, 1997
I've posted the foreword Bruce Eckel wrote for my next book, JavaBeans. Believe it or not this forward was so controversial IDG refused to print it. The book itself should be on store shelves sometime in the next week or two, and you can pre-order it through amazon.com

Monday, November 24, 1997
Version 1.2 of ObjectStore PSE for Java, a free persistent storage engine for Java, is now available. This version requires Java 1.1.

Sunday, November 23, 1997
Radomir Mladenovic's released first public version, 0.7, of Install Shell. Install Shell a Java application archive into a Java-based installation wizard Install Shell is free for non-commercial use.

Henrik Bengtsson has released a free Java Format class that provides C-like fprintf(), printf() and sprintf() methods. Personally, I think this is the wrong way to approach this problem. Java isn't C, and attempts to reproduce C-like APIs, especially APIs that depend on such unusual C functionality as variable length argument lists, are guaranteed to be kludgy. Nonetheless, a lot of people seem to want this; and as such efforts go, Bengtsson's Format class seems like one of the best.

IBM's alphaworks has posted a minor update to their PilotBean for writing Java programs that communicate with a PalmPilot.

Saturday, November 22, 1997
IBM's released their port of the JDK 1.1.4 to OS/2.

Friday, November 21, 1997
The Unicode proposed characters table has been updated and restructured. Individual proposals are now ordered by provisional code points, where set.

Novell's released the first public beta of Moab, their next version of NetWare that includes a Java virtual machine. To receive it you have to give Novell your name and address so they can ship you a CD.

JDE is an Emacs hosted development environment for Sun's JDK. It supports syntax coloring, compilation, debugging, class browsing, javadoc browsing, and running of Java programs from inside emacs. The current version is 1.9.1. It's distributed in source form under the GPL.

Thursday, November 20, 1997
PC Magazine named James Gosling and the Java team "Persons of the Year".

IBM's released a new version of their port of JDK 1.1.1 to OS/400.

NetForge 0.2.4 is an $80 shareware Web server written entirely in Java 1.1.3 that features a small server kernel extended by responder objects. Version 0.2.4 adds an administration GUI, file uploads, on the fly compression of outgoing data, web page counters, and improved servlet support.

Zelix KlassMaster is a Java bytecode viewer, editor, obfuscator and deobfuscator. The newly released version 1.0.1 fixes a few bugs.

Wednesday, November 19, 1997
Netscape's released the third beta of a patch for Communicator 4.0.4 for Windows 95 and NT that supports Java 1.1. This release adds support for the Java Native Interface (JNI).

Tuesday, November 18, 1997
Sun is now officially approved as a submitter of publically available specifications for Java. The final vote was 20 in favor, 2 opposed, and 2 abstentions. Three countries did not submit a vote. 13 countries submitted comments with their votes that Sun must now respond to.

This does not yet mean Java is an international standard. Sun must now decide which Java standards to submit to the ISO, and have each of them approved by separate vote.

Microsoft sues Tomagotchi makers
Latest unattributed Microsoft story dropped in my inbox:

Redmond WA, (AP) Microsoft (MSFT) has announced a 54 million dollar lawsuit against Bandai, makers of Tamagotchi. Microsoft is claiming that the Tamagotchi electronic pet is an infringement of its intellectual property. Microsoft spokesperson, Erik Loregard stated "Software that needs constant attention or else it dies? Sounds like Windows to me. This is clearly an infringement on our technology." A Bandai spokesperson said that any resemblance to Windows 95 was "coincidence."
(Word to the humor impaired: This has been a joke. This was only a joke. If this had been a real story, you would have received instructions on how to proceed to the nearest Tamagotchi Lobby Alliance Conference for 100% Pure Digital Pets web site.)

Monday, November 17, 1997
Gerald Brose has released version 0.8a of JacORB, a GPL'd Java Object Request Broker.

Sunday, November 16, 1997
Metrowerks has released version 1.1.4 of their CodeWarrior Java tools for the BeOS.

Saturday, November 15, 1997
Version 10a of Bruce Eckel's Thinking in Java is now available. This release fixes a problem with a missing font, makes some mostly grammatical corrections, and adds small sections on analysis and design and inner classes.

Gates talks to God
Yet another anonymous Bill Gates story that got dropped in my mailbox:

Bill Gates died and went to stand before God...

God stood over Bill Gates and said, "Well, Bill, I'm really confused on this one. It's a tough decision...I'm not sure whether to send you to Heaven or Hell. After all, you helped society enormously by putting a computer in almost every home in America, yet you also created that Windows95, among other things. I believe I'll do something I've never done before... I'll let YOU decide where you want to go."

Continued...

Friday, November 14, 1997
InfoWorld is reporting that Sun's application to be a PAS submitter for Java specifications has been approved by the ISO. This means that for the foreseeable future Java is likely to remain a closed, proprietary technology owned by Sun Microsystems.

Sun will now decide which specifications it submits to the ISO for an up-or-down vote. The ISO will have to either accept or reject the specifications in their entirety. They will have no opportunity to correct even most the blatant mistakes and omissions in the specs, and certainly no ability to make significant modifications or additions.

The final vote tally was 20-3-2 with the U.S., China, and Ireland voting against Sun's application. Australia, Austria, Belgium, Brazil, Canada, Denmark, Finland, France, Germany, Hungary, Japan, Korea, the Netherlands, New Zealand, Norway, Romania, Russia, Slovene, Sweden, and the United Kingdom voted in favor of the application. Switzerland and Italy abstained.

Javide 0.1.1.4.1 beta, a $25 shareware IDE written in Java 1.1, is now available.

Thursday, November 13, 1997
Netscape Communicator 4.0.4 is now available for the Mac, Windows 95 and NT, Windows 3.1, AIX 4, HP/UX 9, HP/UX 10, Irix 5.3, Irix 6.2, Linux 1.2, Linux 2.0, SunOS 4.1.3, Solaris 2.4 Sparc, Solaris 2.4 X86, and Solaris 2.5.1. Development versions are available for FreeBSD, BSD 1.1, BSD 2.1, Digital Unix, MkLinux, NCR, NEC, SCO Unix, UnixWare and Sinix. 4.0.4 adds support for PNG graphics, updates the LDAP classes, and may have a faster Java virtual machine on some platforms.

Netscape's also released a new beta of Communicator 4.0.3 for Solaris, HP/UX, and Irix that supports Java 1.1. This release supports the 1.1 AWT, the delegation event model, JavaBeans, and printing. JNI is not yet supported.

Metrowerks has acknowledged a bug in the 68k version of Code Warrior Pro 2 that prevents it from compiling Java source code. A patch may be available next week. In the meantime anyone using a 680X0 Mac should put Code Warrior purchases on hold.

Microsoft's released a fix for the latest non-Java security bug in Internet Explorer 4.0 for Windows.

Wednesday, November 12, 1997
I've updated the notes for Week 8, LayoutManagers, Windows, and Dialogs, of my Introduction to Java Programming course.

Macintosh Runtime for Java (MRJ) 2.0 Early Access 7 and the and the accompanying software development kit have been released to subscribers to Apple's MRJ-DEV mailing list. This release includes various bug fixes and other improvements. It requires a PowerPC or 68040 Macintoshes with at least 16 megabytes RAM.

JavaSci 0.761 is now available. This update fixes a bug in the SpecialMath.gamma and SpecialMath.iGamma methods and adds BarGraph and PieChart classes.

A new security hole unrelated to Java has been uncovered in Internet Explorer 4 for Windows. By overflowing the URL buffer (max 257 characters) for a res URL, a web server can theoretically execute arbitrary code on the PC.

Tuesday, November 11, 1997
Be Inc. has posted the latest version of the BeOS, Preview Release 2, on their web site, for free download. The BeOS Preview Release 2 download version includes a stripped down (9 MB) version of the BeOS for late-model, desktop PowerMacs. This release is really quite full-featured. The limit seems to be the size of the package one can conveniently download, not how much Be is willing to give away. Supplemental packages are also available that contain most of the features Be stripped out of the primary archive.

Sun's released the first more or less full beta of the Java Media Framework (JMF) for Unix and Win32 to registered members of the Java Developer Connection. JMF is an API for integrating and playing media data types, such as audio and video, into Java applications and applets. This beta supports JPEG, MPEG-1, MIDI, AVI, AU/AIFF/WAV, and QuickTime.

Web Client Programming with Java
Digital Think has published Web Client Programming with Java, the third online course in my Networking with Java series. Web Client Programming With Java teaches students how to use the URL and URLConnection classes to write applets and applications that communicate across the Internet. The course emphasizes writing client-side programs that communicate with Web servers and CGI programs. After completing this course, you will be able to:

Web Client Programming With Java is intended for intermediate to advanced Java programmers. It is not an introductory course and requires previous Java programming experience. To successfully complete this course, students must have a thorough understanding of input and output streams, buffered streams, and the Reader and Writer classes of Java 1.1. This course also assumes that students have at least a basic knowledge of Internet host names, email addresses, and URLs, as well as how these elements are related to each other.

Monday, November 10, 1997
David Engberg has released guavac 1.0, a GPL'd Java compiler written in C++ for Unix (including at least Solaris 2.x, SunOS 4.x, DEC OSF, Iris 5.3, HP/UX 9, and Linux 1.x using gcc-2.7.2 and libg++-2.7.1 and binutils-2.6). It is available in both source and optimized Linux binary form. This version fixes a number of bugs and adds support for inner classes.

Sunday, November 9, 1997
I've completed a reorganization of the directory structure behind this site, as well as making the URLs more consistent with each other. I've used Apache's rewriting rules extensively so old links and bookmarks shouldn't break; and the changes should be completely transparent to readers. Nonetheless, you know what the poets say about the best laid plans of mice and webmasters. Therefore if you should notice anything that seems off-broken links, internal server errors, etc.-please send an email to let me know.

IBM's alphawork's Pilot Bean is a Java interface to the memo pad and datebook of a U.S. Robotics Palm Pilot PDA. This software uses native code and is only available for Windows 95 and NT.

IBM's fixed a few compatibility bugs with some IRC servers in their IRC Client for Java.

Saturday, November 8, 1997
Netscape's released version 1.0b3 of the LDAP Java SDK.

Sun's released the Java Electronic Commerce Framework (JECF) alpha 0.8. This release adds:›

Version 10 of Bruce Eckel's Thinking in Java is now available. This release adds an index as well as assorted changes and corrections.

Australia's voted "Yes" on Sun's application to be a PAS submitter for Java specifications which Sun would retain ownership and control of.

Microsoft's fixed some bugs in the installer for their XML parser 1.6. If you had trouble with it before you might want to try again.

Friday, November 7, 1997
Sun's released the first beta of the JavaBeans Activation Framework, part of the Glasgow release of JavaBeans. Version 0.4 of the JAF specification is also available. JAF lets Java developers determine the type of an arbitrary piece of data, encapsulate access to it, discover the operations available on it, and instantiate JavaBeans components to perform those operation(s). For example, if a browser loaded a Quicktime movie, JAF should find the right Java bean to play the movie.

Meanwhile, Scott McNealy continues to embarass himself and Sun with his increasingly hysterical and hypocritical tirades against Microsoft. Now he's encouraging Java dittoheads to mail bomb Bill Gates. Lawsuits and mail bombs didn't work for Apple (in fact, they're partly responsible for the mess Apple's in) and they won't work for Sun. If anybody on Sun's board is awake, would you please stop McNealy before his obsession with Bill Gates destroys Sun and Java along with it?

Denmark has tentatively voted Yes on sun's application to be a PAS submitter for Java specifications.

IBM's released a new version of the JDK 1.1.2 for AIX.

Version 1.1d of Chris Kelly's JConfig class library for the Mac now includes utility classes to

Thursday, November 6, 1997
Sun's been caught cheating on Solaris Java benchmarks. This should be food for thought for everyone who thought Sun was inherently more trustworthy than Microsoft or other large corporations, and thus could be entrusted with proprietary control of Java. Aside from the minor difference this makes in regard to Java performance claims, it shows conclusively that Sun will attempt to manipulate industry standards to reflect better on their hardware.

I've updated the books page.

Wednesday, November 5, 1997
Sun's released the final version of HotJava 1.1.

Apple's released the final version of Macintosh Runtime for Java 1.5.1. This release fixes a major security hole that affected users of MRJ 1.0 through 1.5. All users of MRJ 1.5 or earlier should upgrade.

Microsoft has released the first beta of Internet Explorer 4.0 for Solaris and the second for Windows 3.1/NT 3.5.1. Both releases support Java.

I've updated the notes for week 5, Applets, and Week 6, Components of my Introduction to Java Programming course.

The W3C has released the first public draft of the Cascading Style Sheets 2.0 specification. CSS2 is meant to work with HTML 4.0 and XML. It adds web printing, downloadable fonts, audio cascading style sheets for visually impaired users, and greater control over the position of elements on a page.

Tuesday, November 4, 1997
Lotus held a big schmooze-fest for the press and various influential decision makers yesterday to spew some vapor about eSuite, their collection of productivity apps written in Java for network computers. Consequently you'll probably be reading a lot about it in the dead tree press this week and next, given their addiction to vapor and press releases. However, my invitation must have been lost in the mail (:-) ) so you won't hear much about it here, at least not until the indefinite point in the future when it actually ships, if it ever does. (Corel recently killed a similar project for lack of market.)

If you're really interested and you've got an hour or more to waste trying to download overly graphical pages from Lotus's overburdened Domino servers that simply can't handle even a medium load, you may want to check out the hype on Lotus's web site. Otherwise, you can check out a few interesting tools from companies that are actually shipping products but don't have big bucks to spend on schmoozing the press:

Guido Kruger's Java 1.1 lernen is an introduction to Java 1.1 written in German. The complete text is available online.

NetForge 0.24 is a web server written in Java 1.1 that supports servlets.

Martin Pool's JavaGDBM is a Java interface to the Gnu GDBM flat-file database library. JavaGDBM uses JNI and native C code.

Zelix KlassMaster is a free byte code utility written in Java that allows you to view, edit, obfuscate, and deobfuscate Java .class files.

Monday, November 3, 1997
Version 1.0 of InstantDB, a free relational database written in Java, is now available. This release fixes assorted bugs.

A Scary Story for Halloween
REDMOND, Wash. - Oct. 31, 1997 -- In direct response to accusations made by the Department of Justice, the Microsoft Corp. announced today that it will be acquiring the federal government of the United States of America for an undisclosed sum.

Continued...

Sunday, November 2, 1997
Apple's released a updater for Macintosh Runtime for Java 1.5 that updates MRJ 1.5 to MRJ 1.5.1 beta. This is intended to fix the JDirect security hole in MRJ 1.5.

Version 1.6 of Microsoft's XML Parser (written in Java) supports the latest draft of XML.

Saturday, November 1, 1997
Today's Macintosh shareware pick is Object Plant 1.4.3, a $25.00 program for object-oriented analysis and design, is now available. This version fixes a number of bugs and adds a few minor features.

Today's Windows' shareware pick is Silicon Joy's Applet Button Factory, a program for making animated buttons.

Friday, October 31, 1997
Apple has pulled Macintosh Runtime for Java 1.5 from distribution, probably because of the huge, gaping, security hole Greg Guerin uncovered and which has become widely reported. Previous Java security holes were mostly theoretical, and required extensive hacking along with detailed knowledge of the user's system to get something nasty to occur. The MRJ security hole provides complete, convenient, somewhat documented access to the entire Macintosh native API, completely bypassing all security checks.

In related news, Gary B. Little, Apple's Java Product Manager, has stated that Macintosh Runtime for Java 2.0, the first version to support Java 1.1, will require MacOS 8. It will not initially run on any version of System 7. In other words it won't run on the majority of existing Macs. However, he also says that at an undetermined future date there will be an incremental update for System 7.

Microsoft has unbundled the Java virtual machine included with Internet Explorer 4.0. It is now available for separate download and can be installed with IE 3.0.2 for Windows 95/NT.

Thursday, October 30, 1997
Sun's released version 1.0.3 of the Java Web Server. It's free for non-commercial use, $95.00 to $295.00 for commercial use.

Michaki Tatsubori's OpenJava 0.2 is an extensible language based on Java. Through the OpenJava Meta Object Protocol (MOP) programmers can customize the language to implement a new language mechanism. You can think of OpenJava as a toolkit for constructing a Java preprocessor. OpenJava is itself written in Java 1.1, so it runs on any platform that supports Java 1.1. However, OpenJava generates Java 1.0 source code. Source code for OpenJava itself is available. Anyone interested in a pool on how many days till Sun's lawyers go after this?

Version 1.03.1 of Patrik Lundin's symbolic math package fixes various bugs.

Netscape's opened up the fourth pre-release version of Visual JavaScript for Win/95 and Solaris 2.5.1.

Netscape's also released the Zigbert 0.60 digital signature tool, formerly known as Jar Packager Command Line Edition. Zigbert signs Java applets, JavaScripts, and SmartUpdate packages. Version 0.60 adds support for SmartCard based certificates. Zigbert is available on Windows 95/NT, Solaris, and Irix.

Wednesday, October 29, 1997
The US delegation to Joint Technical Committee (JTC-1) of the International Organization for Standardization (ISO) has voted against Sun's application to be a PAS submitter of Java specifications. PAS submitter status would allow Sun to unilaterally define the Java standard without the usual consensus building process. While Sun has promised to listen to input from other companies, they would be the sole and final arbiter of what was and wasn't to be part of the standard, even if the rest of the industry were arrayed against them. Perhaps Sun's recently displayed willingness to use Java as a club with which to bash competitors (specifically Microsoft) made some of the no-voters a little chary of granting Sun this much power.

The vote of was 15-10 in favor of allowing Sun to be a PAS submitter. However a two-thirds majority in favor was required for a yes vote. Only companies willing to pony up several thousand dollars in dues are allowed to vote. Whether this sort of poll tax is appropriate for a quasi-governmental standards making body in a democracy is a good question. Certainly, the whole process is wrought with companies like Microsoft and Sun attempting to subvert the standards process for their own profits.

At the international level, the vote now stands at 6-1 in favor of granting Sun PAS submitter status. 20 countries remain to be heard from. The ISO does not specify how many yes votes are required in order to grant the application. Certainly more yes votes than no votes are needed. However, a simple majority is probably insufficient, especially if that majority doesn't include some of the major players.

Netscape has released a version of Communicator 4.0.3 for Unix (Solaris, HP-UX, AIX, and IRIX but not Linux or SunOS) that supports Java 1.1.

What took them so long?
To nobody's surprise, Microsoft is counter-suing Sun. The counter-suit is part of Microsoft's response to Sun's original lawsuit. The official counter-charges are "breach of contract, breach of the covenant of good faith and fair dealing, and unfair competition for Sun's repeated failure to live up to its obligations under the two companies' agreement of March 11, 1996". Microsoft particularly alleges that "Sun failed to deliver technology that passes Sun's own test suites and runs on the Microsoft Reference Implementation. Nor has Sun provided a public set of test suites as required by the agreement."

I don't take the counter-suit too seriously. I haven't finished looking over the complaint yet, but I suspect it's got as little or even less merit than Sun's suit against Microsoft. Counter-suits are just another weapon in the pointless legal battles between high tech companies that don't like each other, and don't have anything better to do with their excess cash than pay lawyers.

Tuesday, October 28, 1997
Representatives of various U.S. companies meet today and tomorrow in Redmond to determine the final vote on Sun's application for PAS submitter status for Java. France, Hungary, the Netherlands, Sweden, and the United Kingdom have voted in favor of the application. Other countries have until November 14 to decide.

Sun Microsystems reported net income for the most recent quarter, which ended September 28, of $108 million, 27 cents per share. This is down from $123 million, 32 cents per share, for the same quarter last year. It's roughly three cents per share less than was expected, even after accounting for $52.2 million worth of acquisitions. Scott McNealy blamed part of the shortfall on poorer than expected licensing of Java, JavaOS, and Java chips.

JLex 1.2.2 improves compliance with Java 1.1.

Sun is releasing the $79 payware Java Studio 1.0 today. This program is supposed to allow non-programmers to build JavaBeans based applets and applications. It's available from all the usual sources of payware developer software.

Monday, October 27, 1997
Sven Goethel and Atilla Kolac's GL4Java uses JNI to provide a Java interface to the OpenGL 3D graphics library on Solaris, Linux, and Windows 95/NT.

Andreas Pfaller's API2Mac converts javadoc generated API docs into a format usable on the Mac by renaming the html files and adjusting the html links. Version 1.2b1 is now available via anonymous FTP from ftp://ftp.codewell.com/pub/apf/API2Mac1.2b1.sit Source code is included.

Sunday, October 26, 1997
Pat Niemeyer reports that in Java 1.2 Sun will deprecate the stop(), suspend() and resume() methods in java.lang.Thread. Instead programmers are supposed to simply poll and use wait conditions.

Version 1.8 of IBM's Jikes Debugger is a graphical debugger written in Java that allows you to inspect the current state of a remotely executing Java program. The Jikes debugger uses the undocumented sun.tools.debug package to interact with the remote virtual machine.

The first developer release of Apple's Rhapsody has shipped; and it seems likely that Java will be the preferred programming language for the new platform for essentially all high level software, much as C is the preferred language for Unix development. The AWT is not yet supported, but full access to the native API is supported. This is probably easier for Rhapsody than other OS's since Rhapsody's API was originally written for Objective C which Java imitated.

Saturday, October 25, 1997
Greg Guerin has tentatively identified a nasty security hole involving Apple's JDirect. This one may allow untrusted applets full access to arbitrary native code. While it's investigated, I strongly recommend that you not use Macintosh Runtime for Java as the Java VM in Internet Explorer. Netscape and non-Macintosh platforms are unaffected.

Conversations with Satan
The following has been passed around the Internet for the last few days. If anyone knows who originally wrote this please let me know.

"Wiiiiilliam Gaaaates..."

"Oh, hi, Satan. What's up downstairs?"

"It's tiiiiime..."

"Yeah, but we're still debugging Memphis, and Ballmer swears he'll wipe out Adobe before lunch, and Melinda wants to change the tile in the third-floor kitchen again, and..."

Continued...

Friday, October 24, 1997
SunScript has released the first alpha of Jacl, the JAva Command Language. This is a new implementation of Tcl 8.0 that compiles to Java byte codes. Jacl includes all of the control structures and a majority of core Tcl commands. Missing Tcl feature include namespaces, regexp, sockets, and Tk.

They've also released TclBlend, a new package for Tcl 8.0 that allows TCL programs to load and interact with the Java VM.

Both JACL and TCLBlend require JDK 1.1. TCLBlend requires JNI so it doesn't work in Microsoft's VM.

CrossBasic DR 1r21 is now available. CrossBasic is a Macintosh Basic compiler that produces Java applets.

Thursday, October 23, 1997
Guido Malpohl's Jplag is a fancy diff utility for comparing batches of student Java program assignments to find out whose copying from whom. Students in my classes should consider themselves warned.

IBM's alphaworks has updated their IRC Client for Java.

Wednesday, October 22, 1997
PCWeek reports that JDK 1.2 won't appear until the second quarter of 1998 though the JFC may be released as part of JDK 1.1.6 in December.

Sun's released the first public version of the Java Mail API to registered members of the Java Developer's Connection. The Java Mail API provides a set of abstract classes like Message, Store and Transport that make up a mail system. Concrete subclasses of these abstract classes handle specific formats and protocols like SMTP, POP3, and IMAP.

In there a law of conservation of lawsuits? In the wake of the highly publicized Sun-Microsoft and Microsoft-DOJ suits, Amazon and Barnes and Noble have dropped their suits against each other; and Intel and Digital appear to be close to a settlement. Both Amazon and Barnes and Noble wasted a lot of money on their suits, though Digital's suit appears to have netted them in the rough ballpark of a billion dollars or so when the chips are counted.

Quote of the Day
From Dave Winer:

One correspondent asks how I would feel if I had licensed software to Microsoft and they had chosen to leave a crucial suite out of the distribution. Good question! If they had paid me $15 million for the license, I would treat them like a customer, and see how I could work better with them. I remember that the customer is always right. It would take me a very long time, a lot of phone calls and meetings one-one before I would file a lawsuit against a customer.

Read the rest on DaveNet.

Tuesday, October 21, 1997
Gary Cornell found an actual link to the RMI files on Microsoft's miscellaneous Java resources page. This would appear to fully meet Microsoft's contractual obligations to deliver RMI.

On a side note, I think this indicates that web site navigation has a long way to go if multiple, intelligient people took several days to finally find a piece of crucial information at a major web site.

Comments abouts Sun's PAS application for Java standardization (a bad thing in the opinion of this site) from members of the US TAG to JTC1 are starting to to be trickle in. Sun, Microsoft, and Intel have already weighed in. Sun and Microsoft's positions are no surprise (pro and con respectively). Intel also votes no.

There are also a large number of individual comments which are overall supportive of Sun's position. Most of these are a result of a JavaLobby campaign in favor of Sun's PAS application. JavaLobby is a well-intentioned organization that nominally acts in the interest of independent Java developers. In practice, however, JavaLobby's been too blinded by the light of the Sun-Microsoft battles to recognize that a third path is available that would suit the needs of independent developers better than either of the paths offered by Microsoft or Sun. JavaLobby is so busy fighting the Scylla of Microsoft that it hasn't noticed it's falling straight into Sun's Charybdis.

The US will prepare its position at a TAG meeting on October 28 and 29.

Monday, October 20, 1997
John Zukowski found a reference to the ftp location of RMI on Microsoft's web site at http://www.microsoft.com/msdn/services/subscription/msdn_unsup-ed.htm. This appears to meet (though just barely) Microsoft's contractual obligation for delivering RMI.

ORO, Inc. has released version 1.0.7 of its OROMatcher regular expression package for Java. It adds a quotemeta() method for interpreting a string literally and fixes a few bugs.

Version 1.0.9 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service. This is a bug fix release.

Man Bites Dog
In a stunning, surprise move the Clinton Justice Department showed an uncharacteristic amount of spine today when it filed a complaint in federal district court in D.C. today, alleging that Microsoft's forced bundling of Internet Explorer with PCs that come with Windows 95 violates the DOJ's 1994 consent decree with Microsoft. The DOJ is asking the court to fine Microsoft $1,000,000 per day, cease forced bundling of IE, and void large portions of PC manufacturers contracts with Microsoft. I found the DOJ's assertion that Microsoft uses non-disclosure agreements to hamper civil investigations to be particularly interesting. Microsoft denies the allegations.

Sunday, October 19, 1997
Microsoft's FAQ about Java support in IE 4.0 mentions that RMI support is available from their web site and claims it's been available since August 18, though the FAQ doesn't contain a link to the actual files. This is close to meeting Microsoft's obligations to provide RMI support in Java according to their contract with Sun. However, I've yet to find the actual place on their web site (as opposed to ftp site) where this is available.

Version 0.9.1 of InstantDB, a free relational database written in Java, is now available. This release fixes assorted bugs.

Saturday, October 18, 1997
Sun's released version 0.5.1 of the Java Foundation Classes

The Ten Commandments of Java
by David Wallace Croft
1997-10-11

"We believe in Java the language, but not Java the religion."
  -- Bill Gates the Heretic, 1997 June 17th

The Ten Commandments of Java

20:01  And Jahveh spake all these words, saying, 
20:02  I am Jahveh thy God, which have brought thee out of the
       land of non-portable code, out of the house of bondage. 
20:03  Thou shalt have no other languages before me. 
20:04  Thou shalt not make unto thee any binary image, or any
       likeness of any thing that is in an OS API above, or that
       is in the system internals beneath, or that is in the
       native code under the implementation. 
20:05  Thou shalt not bow down thyself to them, nor serve them:
       for I Jahveh thy God am a jealous God, visiting the
       iniquity of the original developers upon the legacy
       systems integrators unto the third and fourth version of
       them that hate me; 
20:06  And shewing just-in-time compilation unto thousands of
       them that love me, and keep my commandments. 
20:07  Thou shalt not take the contract of Jahveh thy God in
       vain; for courts will not hold him guiltless that
       breaches his contract in vain. 
20:08  Remember the core API, to keep it holy. 
20:09  In other packages shalt thou labour, and do all thy work: 
20:10  But the java.* package hierarchy is the code of Jahveh thy
       God: in it thou shalt not do any work, thou, nor thy
       chief technologist, nor thy developers, thy researchers,
       nor thy hackers, nor thy interns, nor thy contractor that
       is within thy gates: 
20:11  For in the core API Jahveh made abstract methods and
       interfaces, the super classes, and all that in them is,
       and required the specification:  wherefore Jahveh 
       blessed the open development process, and hallowed it.
20:12  Honour thy Sun and thy JavaSoft: that thy product may be
       long upon the market which Jahveh thy God giveth thee. 
20:13  Thou shalt not kill the JNI and the RMI.
20:14  Thou shalt not adulterate the APIs.
20:15  Thou shalt not steal market share through unfair
       competition.
20:16  Thou shalt not bear false witness to support Jahveh
       and then renege.
20:17  Thou shalt not covet thy neighbour's prospective
       economic advantage, thou shalt not covet thy neighbour's
       trademark, nor his logo, nor his developers, nor his
       stock, nor his ass, nor any thing that is thy neighbour's. 
David Wallace Croft
croft@alumni.caltech.edu
Copyright released by the author to the public domain.

Friday, October 17, 1997
Sun's released version 1.0.2 of the Java Media Framework (JMF) Player Guide which corrects some inconsistencies with the JMF API specification.

news.com has several attornies' reactions to the Sun-Microsoft contracts. The consensus is that Sun may be able to stop Microsoft from using the Java compatible logo and perhaps extract some insignificant amount of monetary damages, but that they can't stop Microsoft from using the source code Sun licensed to them.

Sun's posted the final version of the Java Card 2.0 specification. Java Card is an API for building vendor independent, interoperable Java applications that run on smart cards.

Notes on the contract
Now that Sun and Microsoft have published their contracts we can begin to see if they actually say what the parties say they say. There are actually two agreements, a short and simple Trademark License Agreement and a long and turgid Technology License and Distribution Agreement. After reading them a few things came to light.

Section 2.6 and 2.7 of the Technology License and Distribution Agreement are the most significant in terms of this lawsuit. 2.6 is a little too long to post here, but this is what 2.7 says:

2.7 Java Classes.

a.Licensee may determine, in its sole discretion, to include one or more Supplemental Java Classes in its Products; however, Licensee shall not be obligated to distribute any Supplemental Java Classes with its Products. Licensee shall use reasonable efforts to promptly inform SUN of its decision to exclude any such Supplemental Java Classes from Products. Licensee also shall use reasonable efforts to promptly make available to developers and customers free of charge any Supplemental Java Classes that Licensee decides, in its sole discretion, to exclude from Products. For purposes of this Section 2.7, Licensee shall be deemed to have made such "reasonable efforts" if it (i) issues a press release and posts a message on its Worldwide Web site on such pages as Licensee's support for Java is described, stating the place where any excluded Supplemental Java Classes are available, and (ii) publishes any excluded Supplemental Java Classes on CD-ROMs that are distributed through Licensee's Microsoft Developer Network within 90 days after the date that SUN delivers such Supplemental Java Classes to Licensee and makes such Supplemental Java Classes available on its Worldwide Web site within 30 days after the date that SUN delivers such Supplemental Java Classes to Licensee. The Supplemental Classes delivered by SUN to Licensee shall run on the most current Java Reference Implementation.

b.SUN agrees that the Upgrades to the Java Classes shall be limited to reasonable enhancements which remain consistent with the original intended purpose of the corresponding Java Classes delivered on or about the Effective Date.

Furthermore, in appendix A1A of the contract the Java classes that Microsoft is required to implement are elucidated as follows:

    java.lang             Language Classes
    java.io               Stream I/O
    java.net              Networking Classes
    java.util             General Utilities
    java.applet           Applet Classes
    java.awt              Abstract Window Toolkit
    java.awt.image        Image Handling Classes
    java.awt.peer         Implementation Classes for awt
java.rmi, java.beans, and all the rest of the additions in Java 1.1 are specifically not mentioned. These are "Supplemental Java Classes" that Sun delivered to Microsoft after the effective date of the contract.

What this boils down to is that Microsoft is not obligated to ship RMI with their SDK or IE if they make it available on their web site for separate download. They have placed RMI on their ftp site, but if they've announced that on their web site I haven't seen it yet.

Clause 2.8 d states that "Licensee shall confine the names of all VAOPs to names beginning with 'COM.ms' and shall not modify or extend the names of public class or interface declarations whose names begin with 'java', 'COM.sun' or their equivalents." (VAOPs is an acronym for Value Added Open Packages and means pretty much any class Microsoft adds to the JDK.) Note that this clause does not extend to public method or field declarations inside the java classes. Nor is Microsoft prohibited from changing the internal implementation of classes in the java packages as some have alleged. This may be a part of the license agreement Sun has signed with other licensees, but it does not appear to be a part of their license with Microsoft.

Another point of note is that the agreement does not appear to apply to native code interfaces such as JNI or JRI. There are separate clauses covering these, but they're quite flexible; essentially allowing Microsoft to do what it wants as long as it documents what it's doing. I could find no evidence that Microsoft is required to implement JNI.

Bottom line: according to my reading of the Technology License and Distribution Agreement, Microsoft has breached it in only the most minor way by not posting the location of the java.rmi classes on their web site and issuing a press release about their availablity. They can cure the breach by so doing. Microsoft may or may not be in breach of the Trademark License Agreement, but this is by far the more minor of the two. As near as I can tell the TLA applies only to the Java compatibility logo (the swirling coffee cup) and not to the Java brand name or trademark itself.

I have at this time only finished a single reading of the two contracts, so it's possible I'm missing something, particularly involving complicated interactions between different parts of the contracts. If you have read the contract and noticed something I've missed that tends to contradict what I've said here, I'd like to hear from you. On the other hand random flames about how Microsoft is evil and that therefore I should uncritically accept Sun's PR and support their lawsuit, no matter how groundless, may be addressed to /dev/null. Microsoft may indeed be trying to eliminate Java's platform independence, and that is likely a bad thing, but they do seem to be doing it within the scope of their contract.

Thursday, October 16, 1997
Alex Chaffee noticed that Microsoft has posted RMI classes for Internet Explorer on their ftp site. According to Chaffee, these are identical to Sun's RMI classes down to the same creation and modification dates.

Chaffee also compared Sun's JDK to Netscape's latest implementation of Java. The results show:

Chafee's also updated his analysis of diffs between the Microsoft and Sun implementations. His original analysis missed changes to java.lang.Class that Zukowski had found. This includes the following additions:

public Class getInterface(String s)
public Method getDeclaredMethodFromSignature(String s1, String s2)
public Method getMethodFromSignature(String s1, String s2)
public Method getMethods(int[] n)

Wednesday, October 15, 1997
Did you ever wonder why audiences stay away from new orchestra and instrumental music? Could it possibly be because the twelve-tone music composers have been writing for the last fifty years is so ugly and boring it can be written by computer and nobody will notice the difference? Probably. Aubergine Music's Series Generator applet more or less writes serial music for you. Whether it will write good serial music (for that matter whether such a thing as good serial music exists) is a matter of taste. (De gustibus non disputandum est.)

Elixir Technology's $995 LOREx2 for Java is a Java CASE Tool written entirely in Java that supports UML notation. It can decompile existing .class files back to UML structure and interaction diagrams and provides a detailed dependency browser to ease Java maintenance. A free evaluation version is available.

Tuesday, October 14, 1997
ORO has released NetComponents 1.0, a free class library that includes FTP, POP3, Telnet, TFTP, Finger, and Whois classes.

New Atalanta Communications has posted the second beta of ServletExec for Mac OS. This is a WebStar API-compatible servlet engine for Mac OS web servers. Version 1.0b2 adds the following features:

Version 0.9 of Peter Hearty's InstantDB, a free relational database written in Java, is now available. This release adds ORDER BY support, reorganizes tracing, and fixes several deadlocking transaction bugs fixed.

Preemptive Solution's pre-beta DashO is a Java 1.1 code optimizer that operates on compiled .class files.

Readers Respond
My opposition to Sun's lawsuit against Microsft certainly inspired a lot of comments. There are too many to post here, but some representative samples follow.

I agree with many of your thoughts like, lack of support for JNI and RMI, but adding methods, fields, and removing a few methods. Surely you can't agree with that! Is it o.k for Microsoft to decide what they should implement in their "Java" (Microsoft: yeah I'll implement that. Not that because we have a competing technology)? Finally, I don't think the Microsoft vs. Netscape Java 1.1 implementation is an issue because Netscape hasn't said that they fully support 1.1 yet, Microsoft did (that's the problem).
--Steve M. Martin

One thing I noticed is that you're very critical to Sun's behavior. Sure, Sun is a for-profit company, and has its own interest. But on the Java issue, if Sun doesn't fight for the portability of Java, whose else has the clout to do that? If this fails, we will have another UNIX. And I have to write multiple versions of the same program, which is a waste of time. Your pull for nobody would aid for the fragmentation of Java. Did you realize MS' agenda?
--Weigen Liang

As a real supporter of Java, you should be a fighter, not a judge or a good citizen.

You must know MS better than I do, but it seems that you missed the point here. Maybe many versions of Java can generate more revenue for book publishers and their

--Wei Fu

The changes may look minor, but you are not supposed to mock around with the java.* classes!!! Even Sun puts their stuff under sun.*, why should MS get away with this? NO licensee should be allowed to change or add to the Java core classes, simple.
--Augusto Sellhorn

Although I agree with you in spirit regarding the necessity of a lawsuit, I am of the opinion that Sun is going for the throat early on to try to avert later, more costly litigation. I would not be surprised in the least to see Microsoft progressively alter Java until it was a Microsoft "creation" - at which point, it might be too late for Sun to cry foul play. In this case, it may be better to go straight to the triple-dog-dare.
--Dan Grambihler

Netscape does not have a complete 1.1 implementation, and their VM is really slower that IE. However, Netscape has not publicly claimed they will never support RMI, JNI, JFC, Java2D, etc. etc. I think Sun is doing this now, because little by little Microsoft wants to not "support this or that".
--Augusto Sellhorn

Interesting comments all. Most of them were made by multiple people. I'll address some of them in this space over the next few days.

Monday, October 13, 1997
Netscape's released the second version of a patch for Communicator 4.0.3 for Windows 95 and NT that gives it further support for Java 1.1. This release provides some bug fixes and addresses sperformance issues from the first release.

Bazerman and Drangel, P.C., a New York law firm specializing in intelectual property and new media law, has posted the complete text of Sun's complaint against Microsoft.

Microsoft's released a stand-alone version of the XML parsing Java class library bundled with the IE 4.0 VM.

Sunday, October 12, 1997
Dave Winer has some interesting thoughts about the whole Microsoft-Sun debacle. Like myself he doesn't see the world as divided into the forces of good (Sun) and evil (Microsoft).

Saturday, October 11, 1997
Version 0.5 of the Java Foundation Classes and version 0.5 of the JFC Accessibility API are now available.

Developers find Sun's claims of Java incompatibility in IE are overstated According to Sun's press release: "IE 4.0 adds public API into several "java." packages. Several methods and fields were added to the awt, lang, and net packages. In addition, a small number of "java." public methods were removed."

Alex Chaffee, co-creator of Gamelan, wisely decided not to take either Sun's or Microsoft's word for it. He wrote a script that compares the class files directly. He used javap from JDK 1.1.3, and looked at all the public classes defined in java.* from JDK 1.1.3's classes.zip file. You can see his results at http://www.stinky.com/java/msdiff.txt. According to Chaffee:

The script compares only public classes. It ignores redeclarations of methods as "native public" (since it's perfectly valid for MS to use native code to implement their version of the APIs). It also wouldn't notice if MS added any public classes to their java.* hierarchy (I can check that too if you like, but that wasn't a specific complaint of the lawsuit.) It also didn't notice if a "new" method was actually an override, although I went through and cleaned out some of those. I also cleaned out cases where a method varied only by the addition or removal of a "synchronized" keyword. The original output, before cleanup, is at http://www.stinky.com/java/msdiff-full.txt

Note also that this deals only with interfaces (declarations) -- if MS changed the implementation of any methods, for instance, as Sun alleges, changing the actual color returned from one of the color classes, this will not pick that out. It also does not address the other major issue of the lawsuit: that MS refuses to develop RMI and JNI in favor of their own proprietary solutions.

The highlights:

  • Yes, MS added some public methods and fields.

  • As far as I can tell, MS did *not* remove any public methods.

  • For the most part, the changes seem to be shortcuts for Windows-specific functions, like adding a getNativeServices() call to java.lang.Runtime, or adding getNativeData() to java.awt.Font. No Java application developer would use these methods; they're probably for use by other MS-implementation classes, and they had to be declared public because those classes are in different packages.

  • There are a few actual functional additions that might confuse a developer, including:

    java.awt.Window:
         public java.awt.Point location();
    
    java.util.ResourceBundle:
         public final java.awt.Menu getMenu(java.lang.String);
         public final java.awt.MenuBar getMenuBar(java.lang.String);
    
  • The "50 fields" were all added to a *single* class, java.util.Locale. MS added 50 different locations as constants that were left out of the JDK class, e.g.

         public static final java.util.Locale CROATIAN;
         public static final java.util.Locale CZECH;
         public static final java.util.Locale DANISH;
    
  • I found *no* differences in java.net (as claimed by Sun).

John Zukowski achieved similar results in an article for JavaWorld. He did find a single missing method in ByteArrayOutputStream, and did not notice the new fields in java.util.Locale, but the impact of the article is the same. The incompatibilities in the Microsoft VM have been grossly overplayed by Sun. They're very easy to avoid, and most applet programmers will never encounter them in the first place.

Chaffee finishes with a disclaimer:

I am a staunch Java supporter and a true believer in 100% Pure Java. Personally, I think Sun was right to file a lawsuit, even if only as a P.R. maneuver. It may help the public understand just how important purity is to the Java platform. Without true write-once, run-anywhere, Java becomes just another OS-dependent application development language. Whether these particular changes were actually a threat to WORA..."
I disagree with Chaffee here. I think lawsuits should be last resorts at best; and that clogging our overburdened court system with something that amounts to no more than a P.R. campaign is a particularly antidemocratic example of bad citizenship. Even if Microsoft is in the wrong, that doesn't mean that a lawsuit is justified. What Chaffee discovered is that there was a lot of room for Sun to talk to Microsoft about these differences before filing a lawsuit.

One final note, the Sun lawsuit and my comments about it have generated more interest and more comments in email than anything ever published here. I'm off to Utah to shoot a Java training video this weekend, but I'll be back on Monday when I'll post some reader responses. If you'd like to get your two cents in, drop me a line at elharo@metalab.unc.edu.

Friday, October 10, 1997
Shugo Maeda's Java Ruby Interface allows Ruby scripts to invoke Java methods. Ruby is an object-oriented scripting language created by Yukihiro Matsumoto.

Thursday, October 9, 1997
Version 1.0.1 of Chris Kelly's JConfig class library is now available for both PowerMac and Win95. This version fixes assorted bugs and adds support for the Sun JDK 1.1.x and the MS SDK 2.0b versions of Java as well as a compatibility mode for unsupported platforms that still provides some functionality.

Ken Shirriff's PCFFont package allows applets to load PCF (X11 portable compiled format) bitmap fonts from a web server, and display them in anti-aliased form.

Wednesday, October 8, 1997
Microsoft's released the final version of their Software Development Kit for Java 2.0. This is part of what Sun is suing over. This release includes Microsoft's Application Foundation Classes (AFC), most of Java 1.1 (minus RMI and JNI), J/Direct for access to the Windows API, and various other class libraries.

Gerald Brose has released version 0.7a of JacORB, a free Java Object Request Broker. This release features closer alignment of the IDL language mapping with the OMG standard, implementation of the Interface Repository, and various bug fixes.

Until 5 p.m. Thursday (Pacific Standard Time), you can call 1-800-633-8284 to hear a replay of Sun's teleconference announcing the lawsuit against Microsoft. The reservation number is 3261198. A transcript is available on the web.

Microsoft has issued a response to Sun's lawsuit. It says absolutely nothing unexpected. Expect lots more hot vapor from both parties in the next few weeks.

Can't compete? Call out the lawyers!
Sun has announced that they're suing Microsoft for breach of contract relating to the Java virtual machine included in Internet Explorer and Microsoft's Software Development Kit for Java (SDKJ) 1.1. Sun is seeking injunction to prevent Microsoft from "improperly using" the Java-compatible logo. Sun also wants to prevent Microsoft from misleading Java developers from delivering "anything but fully compatible" Java technology. Cornelius Willis, Microsoft's director of platform marketing, responded, "Microsoft has delivered the most compatible implementation of Java on the marketplace and is well within the terms of our agreement".

Sun is specifically not, however, seeking to revoke Microsoft's Java license which I interpret as meaning Microsoft hasn't actually violated their (still-unpublished) contract with Sun; and that this is a fairly frivolous lawsuit. If Microsoft had in fact breached their contract for a license to the Java source code, then a lawsuit based on that would be a much stronger case than the nebuluous complaints Sun is in fact pursuing such as trademark infringement, false advertising, unfair competition, and interference with prospective economic advantage. (There's a breach of contract claim too, but surprisingly it does not extend to Microsoft's license to the Java source code.)

Aside from general dislike, there seem to be three general problems Sun has with Microsoft. The first is that Microsoft does not include Remote Method Invocation (RMI). The second is that they don't include the Java Native Method Interface (JNI). The third is that Microsoft has added about 50 new methods and fields to the java packages that are not included in the JDK 1.1.

Personally, I can't speak to the SDKJ since I've never used it, but it does seem to me that the VM is IE 4.0 is far closer to complying with Sun's specs than Netscape. The two big sticking points are RMI and JNI. Since JNI isn't even relevant for applets which can't call native code anyway, I don't see much of a problem with not including it in a browser. And Sun itself is deemphasizing RMI in favor of CORBA and IDL. While the lack of RMI is mildly annoying, it's nothing compared to the lack of a 1.1 AWT in Navigator. It's pretty obvious Sun's playing favorites in terms of who they sue and for what.

Thursday, October 9, 1997
Version 1.0.1 of Chris Kelly's JConfig class library is now available for both PowerMac and Win95. This version fixes assorted bugs and adds support for the Sun JDK 1.1.x and the MS SDK 2.0b versions of Java as well as a compatibility mode for unsupported platforms that still provides some functionality.

Ken Shirriff's PCFFont package allows applets to load PCF (X11 portable compiled format) bitmap fonts from a web server, and display them in anti-aliased form.

Wednesday, October 8, 1997
Microsoft's released the final version of their Software Development Kit for Java 2.0. This is part of what Sun is suing over. This release includes Microsoft's Application Foundation Classes (AFC), most of Java 1.1 (minus RMI and JNI), J/Direct for access to the Windows API, and various other class libraries.

Gerald Brose has released version 0.7a of JacORB, a free Java Object Request Broker. This release features closer alignment of the IDL language mapping with the OMG standard, implementation of the Interface Repository, and various bug fixes.

Until 5 P.M. Thursday (Pacific Standard Time), you can call 1-800-633-8284 to hear a replay of Sun's teleconference announcing the lawsuit against Microsoft. The reservation number is 3261198. A transcript is available on the web.

Microsoft has issued a response to Sun's lawsuit. It says absolutely nothing unexpected. Expect lots more hot vapor from both parties in the next few weeks.

Tuesday, October 7, 1997
Sun has announced that they're suing Microsoft for breach of contract relating to the Java virtual machine included in Internet Explorer and Microsoft's Software Development Kit for Java (SDKJ) 1.1.

I've updated the Java FAQ list. Revised answers include:

New questions include

More suggestions about ensuring cross-platform compatibility are appreciated.

Today is the final day to vote on creating the newsgroup comp.lang.java.corba.

The first alpha of the Java Web Server 1.1 has been released to registered members of the Java Developer Connection. (Registration is free.) This adds HTTP 1.1 support, page compilation, user session tracking, file and GIF upload servlets, HTML generation, and HTML templates.

Version 1.0.8 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service. This release adds a stock quote example and various bug fixes.

Monday, October 6, 1997
Patrik Lundin's symbolic math package supports differentiation and evaluation of simple symbolic expressions. It won't replace Mathematica or Maple anytime soon, but it's worth checking out if you need this sort of thing in Java. Source code would be nice though.

Luck 2.2 is a simple imperative programming language that can be translated to Java. Feature-wise it reminds me of early Basics.

Object Oriented Concepts OmniBroker is a Common Object Request Broker Architecture (CORBA) 2.0 ORB with full source code. It's free for non-commercial use.

Ron Jee's Control Tabs provides a Windows like tab-panel interface for Java 1.0 or Java 1.1. Source is included.

Sunday, October 5, 1997
Version 0.8 of Peter Hearty's free Java database InstantDB now supports transaction processing.

IBM's alphaworks has updated made various bug fixes and minor improvements to their IRC Client for Java.

Cafe au Lait recommends...
In the hype-filled world of new media, there's a lot of talk these days about recommendation systems like firefly and amazon.com. These companies use big, fancy databases that track your purchases and likes and dislikes, compare them to other peoples', and then use that information to make suggestions to you about products you might like.

For example, suppose the system notices that I like books about SQL databases, celebrity biographies, and Catholic canon law; and that you like books about SQL databases, celebrity biographies, and kosher cooking. Then the system will recommend books about kosher cooking to me and canon law to you. In other words, the system really isn't that smart. In fact the lame-brainedness of such systems was brought home to me when amazon recently recommended that I buy David Siegel's Creating Killer Web Sites, the Art of Third Generation Site Design, because I bought three books about SQL databases, including Philip Greenspun's Database Backed Web Sites, a book which takes a diametrically opposed view to web site development.

Now, at this point you're probably thinking something like, "Hmmm, I know I like Cafe au Lait and Rusty often has something worthwhile to say" (If you didn't think that, chances are you wouldn't keep coming back here) and, "I've heard a couple of other people whom I generally agree with mention Greenspun's book. Maybe I should check it out." If I'm lucky you'll check it out right now by following the link to amazon.com, and ordering the book immediately, thus ensuring I get my $2.00 kickback. (Excuse me, referral fee). This, in essence, is the nature of a recommendation system, word of mouth, even when that word of mouth is text rather than literal speech.

The fact is garden variety word of mouth still works better than fancy, database-backed recommendation systems. In keeping with my philosophy of using the lowest tech solution to the problem, I've decided to start recommending books, articles, web sites, and other reading here which I hope you will find of interest. My recommendations are going to be a bit broader than the rest of the content of Cafe au Lait, ranging over all sorts of topics related to science, technology, politics and whatever happens to interest me on any given day.

As with word of mouth from a friend who's sometimes reliable and sometimes gets a little over-agitated on subjects of no interest to you, you're free to ignore my recommendations. They'll be down below the daily news, and shouldn't get in the way of your use of this site if you just want to keep using it for a daily cup of Java as before.

My plan is to have roughly ten items in the list at any one time, give or take a few, and to change them more or less daily. Short articles will rotate through the list faster than long books. More interesting articles will hang around longer than less interesting ones. In essence, the list reflects what I'm reading and enjoying at any given time. A list of previous recommendations will also be available in case you don't visit for a couple of days and want to see what you missed.

I haven't settled on an exact format for this yet. It will probably go through multiple incarnations in coming months. Comments and suggestions are appreciated.

Saturday, October 4, 1997
Macintosh Runtime for Java (MRJ) 2.0 Early Access 6 and the and the accompanying software development kit have been released to subscribers to Apple's MRJ-DEV mailing list. This release includes a Just-in-time compiler for 680X0 Macs and various other fixes and improvements. However it's still plenty buggy. This release is definitely only for those who enjoy living on the bleeding edge.

Friday, October 3, 1997
IBM's alphaworks has updated WebCollab, a multipart Java application for displaying static visual data (slides, drawings, etc.) over the Internet during teleconferences. People in different locations can make whiteboard presentations while on the phone or Internet phone.

Thursday, October 2, 1997
Sun's released a beta implementation of InfoBus for JDK 1.1. InfoBus is a set of APIs for dynamic data interchange between JavaBeans. Under InfoBus some beans act as data producers while others act as data consumers in order to exchange structured data such as arrays, tables, and database row sets.

Sun also released version 1.0.0 of the Personal Java specification, a stripped down version of Java for consumer electronics like set-top boxes and smart phones. I found the following statement particularly amusing:

This software and documentation is the confidential and proprietary information of Sun Microsystems, Inc. ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only in accordance with the terms of the license agreement you entered into with Sun.
This spec must be really top secret and super confidential given that it's on a public web page linked from several different places inside JavaSoft's site. Do you get the impression that maybe, just maybe, the lawyers at Sun are out of control?

Sun's also released version 1.2 of the Java Telephony API (JTAPI) spec.

Download AWB IBM's released alpha 5b of Aglets Workbench and version 0.2 of the Aglets specification. Aglets are IBM's intelligent agent architecture for Java.

A different part of IBM has released the final version of the JDK 1.1.1 for OS/390. It's available on the web now, and on tape at the end of October. Java for OS/390 runs under OS/390's UNIX Services. Annoyingly, IBM wants even registered users to register again to get this release, but if I were you I'd just go straight to the ftp site. If IBM can't even keep track of whose registered, why should users waste their time filling out registration forms?

And yet another group at IBM has released a new beta of IBM's High Performance Compiler for Java that supports parts of Java 1.1. This compiler compiles Java bytecode into optimized, platform-specific native code.

I've updated the mailing lists page.

Wednesday, October 1, 1997
CrossBasic is a $30 shareware Basic compiler for the Macintosh that produces Java byte codes.

Tuesday, September 30, 1997
It's rumored that Microsoft released Internet Explorer 4.0 for Windows yesterday. However it's hard to confirm this because their web site, running Microsoft's own Internet Information Server on multiple NT servers, is returning "HTTP/1.0 Server Too Busy" messages instead of actual pages. Maybe if Microsoft used Apache on Unix, people could actually get through. ;-)

Java Readers and Writers Digital Think has published Java Readers and Writers, the second online course in my Networking with Java series. This course is broader than its name suggests, covering not just readers and writers, but also international character sets, files, directories, and filename filters.

Java Readers and Writers teaches you how to manipulate files and how to use the Reader and Writer classes to read and write text files. In addition, you'll learn about characters sets and encodings that allow Java to deal with different alphabets and languages. This is a necessary prerequisite for moving forward into Java network programming. After completing this course, you will be able to:

Java Readers and Writers is not an introductory course. It requires previous Java programming experience. This course is intended for intermediate to advanced Java programmers who are comfortable with classes, objects, and methods in Java, particularly constructors, toString() methods, and input and output streams. Students should be proficient in writing character-mode Java applications with main() methods. Finally, students should know the basics of the AWT including windows, dialog boxes, and Java 1.1 event handling. This course builds on the topics covered in Java Streams, the first course in the Networking with Java series

Monday, September 29, 1997
David Carson's WrapTextArea class is a subclass of java.awt.TextArea that provides word wrapping.

Sunday, September 28, 1997
I've added several dozen new books to the Java book list.

Javide 0.1.1.4.1, an IDE for Java written in Java, is available.

IBM's released a new version of their port of JDK 1.1.1 to OS/400.

Saturday, September 27, 1997
Sun's released September version of the Beans Development Kit (BDK) 1.0. Most notably, this release of the BDK allows you to build an applet out of what you've built in the BeanBox. Otherwise this release fixes a host of bugs.

The JavaBeans Power Guide
I've begun posting the source code, examples, and a few other pieces from my next book, The JavaBeans Power Guide scheduled to hit store shelves in late November from IDG Books (though you can preorder it at amazon.com and other fine bookstores). This is a comprehensive guide to programming and using JavaBeans. As well as JavaBeans itself, this book provides a complete introduction to the technologies that form the foundation for JavaBeans: the delegation event model, reflection, and object serialization.

Friday, September 26, 1997
Version 1.0 of the JavaBeans-ActiveX Bridge is now available.

Sun's also released version 1.0.2 of the Java Web Server.

Thursday, September 25, 1997
An amusing but unconfirmed story is circulating around the net about the reaction some French developers had to the lastest batch of Microsoft propaganda.

The third release of Jo Christian's MetaWEB Classes includes a brand-new POP3 client. The rest of the classes are the haven't changed functionality but should be more stable and less buggy.

Wednesday, September 24, 1997
This story has nothing to do with Java, but I couldn't resist. IBM has decided to retire the Deep Blue chess program rather than risk a likely defeat at the hands of Gary Kasparov in a rematch. As you probably remember, IBM's Deep Blue had a narrow (2-1-3) victory over Gary Kasparov in a series of six matches last May under suspicious circumstances. Although it was obvious that Kasparov was not playing at his usual level and although Deep Blue had more grandmaster-level human assistance than IBM was comfortable admitting, Deep Blue's victory still boosted IBM's stock price. But the best a rematch could do is confirm the first results, while the worst is that it might prove they were a fluke. IBM has decided to get out while they're on top.

Sun's HotJava HTML 3.2 JavaBean component is available for download.

Issue 7 of the unofficial Java Bug Report is now available. As of this update, the Java Bug Report deals exclusively with documentation and specification issues. JDK bugs are no longer reported.

Tuesday, September 23, 1997
Sun's written a response to the JTC1 comments on their application to be a PAS submitter.

Sun's posted version 0.3 of The JavaBeans Activation Framework (JAF) specification. According to Sun, This framework allows developers "to determine the type of an arbitrary piece of data, encapsulate access to it, discover the operations available on it, and to instantiate the appropriate component to perform said operation(s). For example, if a browser obtained a stream of MPEG video, this framework would enable the browser to identify that stream of data as an MPEG video stream, and from that type, the browser could locate and instantiate an object that could manipulate, or view that stream."

JAF will be a standard extension, not a part of the core API, at least initially. A reference implementation of the JAF is promised. later this fall.

Chris Kelly's released version 1.0 of JConfig, a mostly native package for the PowerMac (Macintosh Runtime for Java) and Windows 95 (MSVM IE 3.01 and 3.02) that allows you to:

What's especially interesting about this freeware product is that although it's almost entirely native code and goes pretty deep into the native API, it's actually available on two major platforms. This is something many commercial developers developing native code libraries for Java still haven't realized is important.

Monday, September 22, 1997
Jamie Cameron's written JFS, a simple, TCP/IP based network filesystem protocol. It allows applets running in a web browser to load and save files on a remote Unix server, as well as send email and print documents through the server. JFS is free for non-commercial use.

SourceTec's released version 1.0 of their $29.80 Java decompiler, Jasmine. A free trial version is available.

I've updated the Java books list. While this update may seem quite minor on the surface, under the hood it was a huge change. The entire list is now stored in a database that I can use to generate lists that meet many different criteria. The first change you should notice is that the page loads somewhat quicker. The database generated HTML is about 20% smaller than my hand-written HTML. I'm going to spend the next few days just updating the listings, and after that I'll work on providing a lot of smaller, more targeted lists.

Sunday, September 21, 1997
Don Park got tired of waiting for Lotus and JavaSoft to add some substance to their vapors about InfoBus so he wrote his own called JBus, an implementation of the InfoBus specification version 0.04A.

Current version has not been tested fully yet and documentation remains to be written, but all the classes and interfaces are there for you to play with.

Gary Howland's written a simple HTTP proxy server in Java.

Saturday, September 20, 1997
IBM's posted an evaluation version of their San Francisco business objects.

Friday, September 19, 1997
I've updated the notes for week 4, More Objects of my Introduction to Java Programming course.

IBM's released new versions of their ports of JDK 1.1.1 to OS/390 R1 and R3 and OS/400, and their port of JDK 1.1.2 to AIX.

Thursday, September 18, 1997
The Java Development Kit 1.1.3 for MkLinux is now available. This release includes a beta of a Metrowerks JIT.

Metrowerks itself has released a beta patch that adds Java 1.1.3 support to CodeWarrior Pro 1 for Mac OS.

PowerBBS Computing's released the $89 VB2Java, a Visual Basic to Java converter and the $99 Delphi2Java, Delphi 2 Java converter. (Database edition is $399.) Free trial versions are available.

Sun has been granted an extension until September 23rd on the submission of its response to the National Body comments on its application to be certified as a PAS submitter (that is to be allowed to submit the current Java specifications for rubber stamping without going through the formal standardization process).

Wednesday, September 17, 1997
Version 1.0.7 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.

Version 1.2.1 of Elliot Berk's JLex is now available. JLex is a lexical analyzer generator, written for Java, in Java.

Flame Bait In a recent article for developer.com I wrote "MacOS 8 is the first major consumer operating system to include a built-in Java virtual machine". This offended the remnants of Team OS/2 whose emails have been trickling in telling me that OS/2 has had a Java VM for almost a year.

While this is true, it in no way contradicts what I wrote. I am fully aware of the Java VM in OS/2. In fact I've reported on it on this page at various times. It's primarily because of OS/2 (and also Solaris) that I wrote "major consumer operating system" and not merely "operating system". While OS/2 is a solid operating system with some advantages over some versions of Windows, it is not now, never has been, and probably never will be a major, consumer operating system.

What makes an OS a major consumer OS? I'd argue that it has to pass the relative test. As the resident computer guru in my branch of the Harold/Leaumont/Smith/Anderson clans, my relatives often ask me what sort of computer they should buy. Generally the question is "Should I buy Windows or a Mac?" Sometimes it's phrased as "Should I buy a PC or a Mac?", but they mean Windows. You know how many times I've been asked by a relative if he or she should buy OS/2 or a Mac? or OS/2 or Windows? Zip, zilch, zero, nada, the big fat goose-egg. OS/2's impact on consumer consciousness outside of our own little corner of the world known as computer geekdom has been non-existent, despite IBM's occasional TV ads that left most non-geeks asking "Um, what was that ad advertising, exactly?"

OS/2's had some small success in the corporate world, but it's never penetrated the consumer market. The chance that it will do so in the future is miniscule. IBM's come within a hair's breadth of killing the product outright twice now. Even in the corporate world new installations of OS/2 are rare, and many current installations are being replaced by NT. I suspect a truly motivated geek could find a computer manufacturer willing to preload OS/2 for them, but you certainly won't see it advertised in consumer-targeted ads by any of the major computer manuufacturers, even IBM. And my mother/sister-in-law/cousin certainly isn't going to walk into CompUSA and walk out with an OS/2 PC.

OS/2 as Windows-killer is a dead idea. It never really took flight beyond the limited confines of OS geekdom. IBM is currently repositioning OS/2 as a network computer server OS, not exactly a consumer oriented product. Java or no Java, OS/2's presence in the consumer market is now, always has been, and probably always will be negligible.

Tuesday, September 16, 1997
Patrick Niemeyer has written a simple Java shell / scripting environment called BeanShell (bsh) that uses the reflection API to do fully interpreted Java statements and expressions. It also includes scripted methods, scripted objects (kind of like those in JavaScript/Perl 5.0), an extensible command set, and other scripting language features. Beanshell requires Java 1.1.

Monday, September 15, 1997
Sun's released Java Workshop 2.0, their payware visual builder tool for Java written in Java.

I've updated the notes for week 2, Procedural Java and week 3, Introduction to Objects of my Introduction to Java Programming course.

Sunday, September 14, 1997
Germany's SFS Software has released three new shareware products of note. iavaDraw 3.1 is a $99, Windows hosted Java IDE that includes a visual debugger. Version 3.1 adds support for for BorderLayout, GridLayout, and FlowLayout.

iavaZIP 1.1 is a $49 zip utility written in Java that can compress files from different folders into a single archive. iavaZIP has an excellent integrated file viewer that supports binaries, images, html and Java classes. iavaZIP requires Java 1.1. Mac users accustomed to the StuffIt interface won't find anything new here, but Windows users may find themselves wondering why the other zip tools didn't add these features years ago.

Finally, SiteSearch 1.1 is a $199 local web site search engine written in Java 1.1. The SiteSearch application indexes your web site. An applet downloads the index and the actual search engine to the client which performs the search against the index and displays the results. Honestly, this scheme seems a little brain damaged to me. While I like the idea of a Java based indexer, there's little reason to download an index, even a compressed one, to the client. Making searches a server side operation would vastly improve performance.

Saturday, September 13, 1997
Borland is taking orders for JBuilder, their much anticipated, Windows-hosted, visual builder tool for Java and JavaBeans. JBuilder is $99.95 standard, $299.95 professional. Call at 1-800-252-5547, offer code 49100.

PCWeek reports that Microsoft is pulling applets from its web site, allegedly for performance reasons.

Friday, September 12, 1997
Sun's released the Java Development Kit 1.1.4 for Win-32 and Solaris. This release fixes about a dozen assorted bugs.

Sun's posted version 0.4.1 of the Java Accessibility API and a draft of the Java Card 2.0 Specification.

Thursday, September 11, 1997
Sun's released two beta specifications from the Java Speech API: Java Speech Markup Language (JSML) and Java Speech Grammar Format (JSGF). JSML annotates text with information on how it should be spoken by a speech synthesizer. JSGF specifies phrases that a speech recognizes and the commands associated with those phrases.

Netscape has invented a new version scheme, the three-point release with the release of Navigator 4.0.3.1 for the Mac. Apparently the extra .1 means this is a "feature fix" rather than a bug fix. Changes include

  • Adds the 'New Window with this Link' command to the context sensitive menu.
  • No longer installs IceTe and Random Signature extensions with Internet Config.
  • Uses the Internet Config settings for news: URL's.
  • Eliminates the "Alphabetize Bookmarks" menu item.
Java support appears to be the same as in 4.0.3.

Beta Nine has released version 1.1 of MRJ javac, a shell around the Macintosh Runtime for Java 1.5 javac compiler in the MRJClasses library that supports drag and drop compilation and setting of compiler switches.

Wednesday, September 10, 1997
Sun has decided to drop the Java Language Specification's recommendation that the first package be capitalized. It is now reccommended that your top level package be com, edu, uk, etc. instead of COM, EDU, UK, etc. For example, a typical package name would now be com.macfaq.io instead of COM.macfaq.io.

ORO has released OROMatcher 1.0.5, PerlTools 1.0.2, and AwkTools 1.0b2 to correct an obscure bug in pattern matching, apparently inherited from Perl itself.

The U.S. government's National Institute of Standards and Technology (NIST) is taking an interest in Java standardization and conformance testing. They're hosting a workshop tomorrow and Friday on these issues. It should be interesting to see what comes of it.

Tuesday, September 9, 1997
Version 0.4.1 of the Java Foundation Classes is available to registered members of the Java Developer Connection. (Membership is free.) Many classes have been renamed in this release so it's pretty much incompatible with previous versions.

Monday, September 8, 1997
J2R converts some Javadoc files to RTF.

Sunday, September 7, 1997
Netscape 4.0.3 for the Mac is now available in a variety of bundles including a stand-alone version of Navigator. Only the PowerPC versions support Java.

Saturday, September 6, 1997
K.B. Sriram's released version 0.8 of the hashjava code obfuscator. This fixes some bugs in the handling of inner classes, and supports the code coverage attributes inserted by javac.

InstallShield Corporation has released version 1.0 of InstallShield Java Edition that performs cross-platform installation of Java applications.

Friday, September 5, 1997
There's a new FAQ list about Apple's Macintosh Runtime for Java at http://www.ping.be/BetaNine/MRJ-FAQ.html.

Thursday, September 4, 1997
Gamelan Gamelan's published Java runs deep in the new MacOS, an article I wrote about Java integration in MacOS 8.

IBM has has opened four free testing centers where developers producing retail Java software products can test them on various Java platforms including AIX, OS/2, OS/390, OS/400, IBM Network Station, HP-UX, MacOS, Solaris, and Windows NT. To use the centers (located in in San Mateo, California, Hursley, England, Sydney, Australia and Waltham, Massachusetts) developers must be members of IBM's Solution Developer program, but membership is free.

A beta version of Sun's Java Naming and Directory Interface (JNDI) is now available.

Jigsaw 1.0b1, the World Wide Web Consortium's reference web server written in Java, is now avaliable. Jigsaw supports servlets.

Version 0.9.2 of Sun's PersonalJava specification is now available. Personal Java is targeted at non-PC platforms like set-top boxes and smart phones. Consequently, the PersonalJava API is much smaller than the JDK 1.1 API and occupies less memory.

Version 1.0.6 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.

Colin Stewart's commenced work on a document explaining to Unix and Windows developers how to port their Java apps to a Mac.

Sun's posted some information about security tools to be included in the next release of the JDK, including keytool, jarsigner, and policytool.

Wednesday, September 3, 1997
I've updated the notes for Week 1 of my Introduction to Java Programming course in preparation for my third semester teaching this material. I've taught this class three times already (twice in the summer session) and I think I'm starting to develop a pretty good feel for what students find confusing. This time around I'm concentrating on cleaning up the examples to use good, object-oriented form, and to very clearly demonstrate how one really writes object oriented programs.

HotJava 1.1b2 is now available to registered members of the Java Developer Connection. (Membership is free.) According to Sun, "HotJava Browser 1.1 Beta2 includes all the features of HotJava Browser 1.0 plus an HTML Component, performance improvements, and enhanced stability. The HotJava 1.1 Beta 2 Release includes the Java Runtime Environment for the Java Development Kit (JDK), 1.1.4 pre-release version. You no longer need to download the JDK separately to run the HotJava Browser."

Sun's finally frozen the Java Media Framework spec 1.0, and released it to the general public. An actual implementation still lags, and will almost certainly not be included in Java 1.2; but a public beta may appear in the next few weeks for one or two platforms (probably Wintel).

Netscape's released beta 2 of their LDAP Java SDK (previously known as the Directory IFC), an all Java implementation of their Lightweight Directory Access Protocol API.

ORO has released OROMatcher 1.0.4 and PerlTools, 1.0.1. OROMatcher 1.0.4, a regualr expression package, fixes some discrepancies between the documentation and implementation, as well as adding a method or two to some classes. PerlTools 1.0.1, a package for using Perl 5 style regular expressions in Java, no longer requires OROMatcher and features some other small changes in caching.

Westhawk's released a free SNMP stack written in Java 1.1. It implements snmpv1 get, set and getnext PDUs, and does not contain a MIB compiler.

Tuesday, September 2, 1997
Netscape's pre-released a patch to Communictor 4.0.2 for Windows that supports Java 1.1. They've also posted preview release 3 of Visual JavaScript with support for Java 1.1 and JavaBeans.

Sun's posted the first public draft (0.04A) of the InfoBus specification. According to Sun "InfoBus is a set of APIs for dynamic data interchange between JavaBeans. It allows some beans to act as data producers and other beans to act as data consumers. Beans can exchange structured data, including arrays, tables, and database rowsets."

Download AWB Draft 0.1 of the specification for IBM's Aglets intelligent agent architecture is now available.

Monday, September 1, 1997
Apple's introducing a Macintosh variant of JDirect for accessing the native Mac API from Java.

Sunday, August 31, 1997
Kevin Raulerson's posted some useful AppleScripts for integrating Apple's Macintosh Runtime for Java and BBEdit.

Saturday, August 30, 1997
InstantDB 0.7 fixes some bugs and adds a couple of useful features.

Friday, August 29, 1997
Sun's released version 0.97 of the JavaBeans Runtime containment and services protocol, version 0.6 of the native-platform capable drag and drop services, as well as an almost content free home page that takes several minutes to load.

Digital Think is publishing a series of online courses I've written about Java I/O and networking. The first series in this course, Java Streams, is now available. Java Readers and Writers is in beta, and Web Client Programming with Java will enter beta in about a week.

Thursday, August 28, 1997
Macintosh Runtime for Java 2.0 Early Access 5 (also known as Alpha 1) has been seeded to subscribers to the MRJ-DEV mailing list.

For those not on the list, Apple's posted the first version of an Inside Mac chapter about JBindery 1.5.

Wednesday, August 27, 1997
Sun, Netscape, and IBM have announced plans to fund a "Java Porting and Tuning Center" that will provide future versions of the Java Virtual Machine for all three of these companies on multiple platforms simultaneously.

Netscape also said that it will use parts of Sun's HotJava in its "100 percent pure Java" version of Navigator, due next year. Netscape will also provide Sun with the much requested HTML rendering component to be bundled into future versions of the JDK. Sun will ship Navigator as the standard browser for its products

Tuesday, August 26, 1997
Sun's updated many of the specifications for upcoming APIs in Java 1.2. Complete javadoc documentation for the 1.2 class library is now available. Updates of particular interest include:

Weak References
an API for maintaining references to objects that don't prevent them from being garbage collected.
Collections API
The Collections API provides a unified framework for representing and manipulating collections of objects such as sets, vectors, hashtables, and linked lists. A design FAQ has been recently added.
Input Method Framework
Allows input of multibyte character sets like Japanese on common keyboards.

Furthermore development of RMI and object seralization appears to be continuing, noises from the CORBA camp to the contrary. At least Sun's posted some more info about enhancements to RMI in Java 1.2. Serialization (also used in JavaBeans) is being expanded to not rely quite so heavily on an object's fields.

Thursday, August 28, 1997
Digital Think is publishing a series of online courses I've written about Java I/O and networking. The first series in this course, Java Streams, is now available. Java Readers and Writers is in beta, and Web Client Programming with Java will enter beta in about a week.

Wednesday, August 27, 1997
Sun, Netscape, and IBM have announced plans to fund a "Java Porting and Tuning Center" that will provide future versions of the Java Virtual Machine for all three of these companies on multiple platforms simultaneously.

Netscape also said that it will use parts of Sun's HotJava in its "100 percent pure Java" version of Navigator, due next year. Netscape will also provide Sun with the much requested HTML rendering component to be bundled into future versions of the JDK. Sun will ship Navigator as the standard browser for its products

Tuesday, August 26, 1997
Sun's updated many of the specifications for upcoming APIs in Java 1.2. Complete javadoc documentation for the 1.2 class library is now available. Updates of particular interest include:

Weak References
an API for maintaining references to objects that don't prevent them from being garbage collected.
Collections API
The Collections API provides a unified framework for representing and manipulating collections of objects such as sets, vectors, hashtables, and linked lists. A design FAQ has been recently added.
Input Method Framework
Allows input of multibyte character sets like Japanese on common keyboards.

Furthermore development of RMI and object seralization appears to be continuing, noises from the CORBA camp to the contrary. At least Sun's posted some more info about enhancements to RMI in Java 1.2. Serialization (also used in JavaBeans) is being expanded to not rely quite so heavily on an object's fields.

Monday, August 25, 1997
Penumbra Software's released SuperMojo 1.0, JavaBeans visual builder tool written in Java 1.1. SuperMojo is $195, half off for students with valid ID; and can be ordered from the Penumbra website.

Object Design has released ObjectStore PSE for Java 1.1.1, a free, single-user, persistent storage engine for Java. No news yet on what changed between 1.1 and 1.1.1.

According to the Java-2D FAQ, a beta of JDK 1.2 has been seeded to Java licensees. Would any licensee care to spill the beans about this release to Cafe au Lait?

Sunday, August 24, 1997
IBM's updated their IRC Client for Java.

Alpha 5a of IBM's Aglets intelligent agent software rtten in Java is now available.

Saturday, August 23, 1997
Archives for the JMF, Java2D and Java3D mailing lists are now available.

Less than a week after Apple released MRJ 2.0 Early Access 3 to member of MRJ-DEV mailing list, it's released MRJ 2.0 Early Access 4. This release runs on 68040 machines, and fixes various bugs. Release 3 was roundly panned on the MRJ-DEV list, and appears to have ben pushed out the door only because the more stable release 2 was expiring.

Friday, August 22, 1997
The stand-alone version of Netscape Navigator 4.0.2 posted Monday had a bug that prevented it from running Java applets. In particular you may have seen messages like "system classes are not signed". A stealth release that corrects the problem but does not change the version number is now available from Netscape's ftp site. This seems to only have been a problem for people who downloaded it within the first couple of hours after it was initially posted.

Sun's JavaStudio 1.0 beta is now available for Solaris and Wintel. This is a visual tool that's designed to allow non-programmers to create Java applets and applications without writing any code, though I suspect this tool doesn't yet meet that goal.

Sun appears to have updated updated some specifications and API docuumentation for various parts of Java 1.2, though at first glance it isn't clear exactly which ones.

The latest version of IBM's High Performance Compiler for Java adds support for remote method invocation (RMI).

The latest version of IBM's Bean Extender includes enhancements in the Assembly Surface, as well as in the Dipping Framework, runtime logs, data repository models, and Data Input Wizard.

Thursday, August 21, 1997
IBM's released the third beta of their JDK 1.1.1 port for OS/390 R3 and released a beta of JDK 1.1.1 for OS/400.

Wednesday, August 20, 1997
A beta version of a Just-in-time compiler for 68K Macintoshes running Macintosh Runtime for Java 1.5 (MRJ) is now avaliable at:

Apple appears likely to renege on their promise to offer a public beta of MRJ 2.0 that supports Java 1.1 this month. Instead they've released the third beta only to subscribers to the MRJ-DEV mailing list. This release requires System 7.6 or later.

Revision 9 of Bruce Eckel's Thinking in Java is now available at in PDF, RTF, and Microsoft Word formats.

I've updated the notes for Week 11, Threads, of my Introduction to Java Programming class.

Tuesday, August 19, 1997
Apple's Macintosh Runtime for Java Software Development Kit 1.5 (MRJ SDK) is now available at

The light version does not include the MRJ 1.5 installer and is much smaller and easier to download. MRJ 1.5 supports Java 1.0.2 and includes a Just-In-Time compiler for PowerMacs.

A stand-alone version of Netscape Navigator 4.0.2 is now available for Windows 95 and NT and Windows 3.1. Unlike the Netscape Communicator 4.0 that has previously shipped, this version does not include email or a newsreader. It does include a web browser, Netcaster, and Java, and has "slimmed down" to a little over seven megabytes. Now if we could just convince them to unbundle Netcaster, we might finally be back on the road to a thin client instead of the current "Look, it's a web browser and a floor wax!" attitude.

It's not that I dislke Netcaster, or email, or news, or calendaring, or any of the dozen other clients Netscape is trying to cram into Communicator. It's that I want the freedom to pick and choose the clients I like, and to mix and match products from different vendors. I use NewsWatcher for news and Eudora for email and I'd like to keep it that way. You may use different clients. That's fine too. We should all be allowed to choose the software we like best rather than being pushed into supporting just one company's bloated suite of clients.

Speaking of bloated suites, Corel has killed Office for Java, at least for now. Apparently they couldn't convince corporations to run new, incompatible, and slow software just so they could say they were using Java. The Ottawa Citizen has the story.

SunWorld has a fascinating interview with Larry Wall and Tim O'Reilly about the future of Perl. Among other topics, Larry discusses his ongoing work at integrating Perl and Java.

New Atlanta's released the first beta of a ServletExec plugin for Mac OS web servers that allows Mac web servers supporting the WebStar plugin API to run Java servlets via the Macintosh Runtime for Java.

Monday, August 18, 1997
Mark Hale has released JSci 0.71. This release adds matrix inversion methods, a developer's guide, and various bug fixes.

Sunday, August 17, 1997
I've updated the notes for Week 9, Menus, and Week 10, Input and Output, of my Introduction to Java Programming class.

Saturday, August 16, 1997
Brad Smith's HTMLExtractor extracts Javadoc documentation from a zip file, and outputs the files in an abbreviated format, with all internal links resolved. It's useful for those working on Macs or other platforms that don't support long filenames.

Steve Kempy has started work on a Java shell that can execute Java applications in your class path as well as supporting basic csh-like file manipulation commands.

Friday, August 15, 1997
Beta 1 of the JDK 1.1.3 for MkLinux is now available.

Thursday, August 14, 1997
I've posted version 1.5 of the comp.lang.java FAQ list. There are numerous corrections and additions to existing answers. Many questions now more fully address Java 1.1 issues. Furthermore, I've added three completely new FAQs:

SGI's released version 3.0.1 of their port of Sun's JDK.

JAVAR 1.3.6 beta, a prototype restructuring compiler for Java that can be used to make implicit parallelism in Java programs explicit by means of multi-threading, is now available. This release has a number of bug fixes and minor improvements in the code it can compile.

Wednesday, August 13, 1997
Sun's published version 0.8 of the JavaBeans Object Aggregation and Delegation Model specification (part of the upcoming Glasgow release of JavaBeans).

Sun has also published version 0.9.1 of the PersonalJava specification.

Tuesday, August 12, 1997
Symantec's released Visual Cafe for the PowerMac 1.0.2.

I've updated the notes for Week 8 of my Introduction to Java Programming class. This week's topic is containers and layout managers.

Monday, August 11, 1997
Beta 5 of the JavaBeans-ActiveX Bridge is now available.

The latest version of IBM's Aglets Workbench intelligent agent Java software now includes a delegation event model.

Sunday, August 10, 1997
Version 1.0.5 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.

Build 165 of Java Workshop 2.0 beta is now available.

Vasile Calmatui has written a nice sendmail applet. Because of Java's security restrictions, the web server that serves the applet must also be an SMTP server. Source code is available, and might be useful for those who just need an example of how to send email from an applet for form results and the like.

Saturday, August 9, 1997
I'm continuing to experiment with new organizations for this site. I've expanded and reorganized the books section. Also, is the coffee cup a nice touch or just a waste of bandwidth?

Ben Mesander has uncovered a new security hole in the Microsoft Internet Explorer virtual machine and possibly in Netscape under some configurations as well. It allows applets to download images and possibly .class files from arbitrary hosts on the Internet. Sun's JDK does not seem to have this flaw.

I've been getting the usual batch of email from Microsoft acolytes complaining that I'm not performing sufficient obeisance to Chairman Bill. In the interest of being an equal-opportunity offender, let me rag on Sun for a couple of paragraphs. According to Computer Reseller News's gossip column ShadowRam for August 11

JavaSoft has asked editors to stop calling JavaSoft by that name. "Sun Microsystems is the correct way to refer to the company which brings you Java," a statement said. Exec titles have also changed. JavaSoft President Alan Baratz is now president of JavaSoft, a Sun Microsystems business unit.
I can personally attest to this. A couple of weeks ago Sun asked Cafe au Lait to change all our links to www.javasoft.com back to java.sun.com. This is part of Sun's continuing efforts to tie JavaSoft more tightly to Sun, which is interesting considering that Java only happened in the first place because a few engineers got outside of Sun's smothering embrace. Of course with the notable exception of James Gosling, most of those engineers are gone now. The Green Project may have learned from the fiasco that was NeWS, but every week I see more evidence that the rest of Sun did not.

Friday, August 8, 1997
Sun has released version 1.0.1 of the JavaBeans specification to make some minor corrections and clarifications.

Java Network Programming is now available in Japanese.

I've updated the notes for Week 7 of my Introduction to Java Programming class. This week's topic is the event and event listener classes.

Thursday, August 7, 1997
By now I suspect everyone's heard about the $150 million Microsoft investment in Apple through purchase of non-voting stock. The only really surprising about this is that Apple agreed to it, though it does seem to have boosted Apple's stock price. Obviously Apple's board isn't as heavy with Microsoft-haters as Apple's customer base.

That Microsoft chose to invest in Apple is not surprising at all. Microsoft derives a large fraction of its revenue from Mac products like Office, and is absolutely terrified that if Apple does fade away, the DOJ will coming knocking on their doors again. In fact, Microsoft has been quietly supporting and encouraging third-party Mac development for some time now. Apparently they didn't feel Apple was doing a good enough job on their own. It's sort of like Japan's "democracy" until at least the late 1980s where the ruling party funneled funds to the "independent" parties so the ruling party's victories wouldn't be too embarassingly lopsided and force real change.

From a Java standpoint, there are some interesting details in the deal that have not been widely reported, however. First, Apple has agreed to make Internet Explorer the preferred browser in the MacOS. Here Microsoft may be trading one antitrust problem for another. Second, Microsoft and Apple "plan to collaborate on technology to ensure compatibility between their respective Virtual Machines for Java and other programming languages", according to Apple's press release. Probably this is just marketing hype, or perhaps it simply means Apple will bundle Microsoft's Application Foundation Classes. However, it could mean that Apple will support J/Direct, in which case it means that Apple will support the Windows API in the MacOS. In this event, this is a huge victory for Microsoft. They've been trying to grab control of the Mac API from Apple for some years, mostly without success. But again, this is probably just PR hype and may not have any more impact in the long term than Apple and IBM's much hyped alliance to develop the "Pink" OS at the beginning of this decade or the many agreements between Unix vendors to support compatibility between their systems.

On a related note, all the hype seems to have inspired Rick Eames of Microsoft's MSBay team to spill a few details about Microsoft's Mac Java development efforts. Microsoft is working on its own MSVM for the Mac. This is completely separate from the Metrowerks VM currently shipping with IE for the Mac. According to Eames:

We won't have JNI or RMI in our VM (Microsoft VM). I don't view them as "language" features: they are *classlib* features. Just as PowerPlant is not part of C++.

Java is two things: language, platform. We're supporting the language 100%.

Instead Microsoft will provide the Java Runtime Interface (JRI) and DCOM. The Java Native interface (JNI) and Remote Method Invocation (RMI). are not critical for all Java programs, but they're both hugely important to a significant fraction of Java developers, especially those who are working on multimedia and distributed applications. This is also important news for Windows developers since if Microsoft isn't going to include JNI and RMI in their own Mac VM, they're extremely unlikely to include them in their more important Windows VM.

Metrowerks has promised to support both RMI and JNI in the final shipping version of their 1.1 VM, and that VM may still be bundled with IE for the Mac. However, that VM is unlikely to be used as the default for IE once the Microsoft VM is available.

Wednesday, August 6, 1997
I'm experimenting with some new layouts for this page which I hope will make it easier to navigate. Let me know if you like them or hate them or have ideas for further improvements.

Steven H. McCown's BitmappedButton provides clickable buttons with both text and bitmaps in Java 1.1. BitmappedButton is free and includes source code.

Tuesday, August 5, 1997
The second beta release (0.3) of Swing, Sun's next-generation platform independent GUI is now available from the Java Developer connection and is documented at http://www.javasoft.com/products/jfc/swingdoc-current/doc/index.html. Swing attempts to achieve identical look and feel across platforms by following its own user-interface guidelines rather than those of the host platform.

Sunsite Slovakia now mirrors Cafe au Lait.

Sun's published version 1.0 of the Java 3D API.

Build 164 of Java Workshop 2.0 beta is now available.

InstantDB 0.6 supports multithreading.

Finally, I've updated the notes for Class 5 and Class 6 of my Introduction to Java Programming course, Applets and Components.

Monday, August 4, 1997
Microsoft's released a trust-based security model for Java applets running in Internet Explorer that allows trusted applets to get some scratch space on the local disk (medium security) or have unlimited access to the host machine (low security). This seems to me to be needless duplication of Sun's similar efforts, and is unlikely to be adopted by developers.

Intermetrics' AppletMagic 2.5 for Windows and 2.6 for Solaris are now available. AppletMagic is an ADA 95 compiler that produces Java byte codes.

Ernest Friedman-Hill= has released Jess 3.0 Final, the Java Expert System Shell. 3.0 Final fixes all remaining known bugs and implements many suggestions for improvement from users of the first two betas.

Sunday, August 3, 1997
The Center for Software Development is hosting a Java BrewFest on Wednesday August 6 in San Jose. Topics discussed include 100% Pure Java the Java certification process. There's also a lab where you can test your code on mulitple VMs and RMs (real machines).

There are morning (9-12 noon), afternoon (2-5 PM) and evening (6-9 PM) sessions. Coffee will be served in the morning, lunch from 12-2, and Tied House Microbrew in the afternoon. Registration is free, but space is limited and reservations are required. Call 408-494-8378 to register.

Symantec's released Cafe 1.8 for Windows 95 and NT.

Saturday, August 2, 1997
Netscape Communicator 4.0.2 is available for Irix 5.3, Irix 6.2, Solaris, and SunOS. 4.02b7 is available for several other Unixes including SCO, Linux, FreeBSD, AIX, HPUX, and BSD.

Version 1.0.4 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.

Friday, August 1, 1997
Sun has killed the "100% Pure Java Pending" program, apparently because it was causing too much confusion in the marketplace.

The official Apple Java website has been hard to reach due to demand for MRJ 1.5. The software is also available from:

JAVAB is a prototype bytecode parallelization tool that automatically detect exploits implicit loop parallelism in bytecode. It's produced by the same team that brought you JAVAR, but while JAVAR works at the source code level based on explicit programmer comments, JAVAB automatically detects loop parallelism at the byte code level. Both JAVAR and JAVAB are research tools, and not yet robust products.

Thursday, July 31, 1997
Apple's released Mac OS Runtime for Java (MRJ) 1.5. MRJ 1.5 supports Java 1.0.2 and includes a Just-In-Time compiler (JIT). A 68030, 68030 or PowerPC Mac with 16 MB of RAM and 32 MB of disk space running System 7.5 or later is required. The JIT only works on PowerMacs.

In related news, Microsoft Internet Explorer 4.0pr1 for the Mac is now available and includes version 1.1.3d19 of Metrowerk's Java VM. This VM does support Java 1.1, and is probably less buggy than the 1.1 VM shipped with Code Warrior Pro.

China submitted a late "No, with comments," vote on Sun's application to be allowed to rubber stamp Java as an ISO standard while retaining proprietary control of it. As with many other No votes, this is not a vote against the eventual standardization of Java. It is a vote for making Java an open standard in which other companies, groups, and individuals can have equal voices with Sun. The current proposal would make Sun the only company that can decide what is and is not part of the Java standard.

India, which is not a voting member of the ISO, also submitted some negative comments on Sun's application.

Finally, I'll note that there's been a lot of talk lately about a ComputerWorld story and related interview with Paul Maritz, Microsoft group vice president, claiming Microsoft won't ship the Java Foundation Classes (JFC) with either IE or Windows. While this story does make it clear just how much Microsoft hates and fears Java, it's unlikely to matter in the final analysis. Java developers will write to the JFC whether Microsoft ships them or not. If Microsoft does not ship them, developers will simply bundle the classes they've used in a JAR archive and distribute them with their application or applet.

Frankly, I expect Microsoft to cave on this issue. Microsoft's alternative API, J/Direct, is DOA; and it's clear developers want Java, the JFC, and cross-platform code. If Microsoft ignores JFC and attempts to splinter Java, developers--who so far have been reasonably receptive to Microsoft's Java efforts--are going to stampede in the other direction toward Sun. At that point Microsoft's going to have two choices. Either they can give up, accept JFC and lose a little more control over the API; or they can rewrite Windows in such a fashion that it breaks Java. (New Microsoft slogan: "Windows isn't done till Java won't run.") It will be interesting to see which they try.

Wednesday, July 30, 1997
Netscape's released version 1.1.1 of the IFC class library. This update fixes several bugs while maintaining source code compatibility with IFC 1.0 and IFC 1.1.

Tuesday, July 29, 1997
Ben Fry's started to think about accessing Mac resource forks from Java, an issue Apple's punted to date. He's even got some good ideas about how to do this in a cross-platform fashion (which I wouldn't have thought possible).

InstantDB 0.5, a relational database written in Java, adds the UNIQUE keyword and fikes some bugs.

ORO has released PerlTools, 1.0, a Java package for using Perl 5 style regular expressions. This release bundles the classes into a JAR archive, thereby improving Macintosh compatibility.

The ISO's SC22 Java Study Group (JSG) now has a home page at http://www.dkuug.dk/JTC1/SC22/JSG/. This group is currently studying the possibility of standardizing Java through more traditional procedures rather than the proprietary PAS approach preferred by Sun.

Jo Christian Oterhals has released the second version of his MetaWEB classes which work in Java 1.0 (and 1.1) and now include a toolbar class and a SendMail class.

Monday, July 28, 1997
Polardoc 1.0 automatically generates HTML Java API documentation from source code. It's similar to Javadoc, but produces documentation that's demonstrably easier to read and browse with a higher ratio of data to decoration.

Sunday, July 27, 1997
Franck Allimant's translated the JDK and BDK documentation and a few other pieces into WinHelp format.

Saturday, July 26, 1997
At Internet World in Chicago, Apple released a press release that says Macintosh Runtime for Java 1.5 was shipping. This story was picked up by a number of outlets without verification (though not by Cafe au Lait). Therefore many people have been futiley attempting to locate the release version of Macintosh Runtime for Java 1.5. In point of fact it has not been released. A beta is available and has been for some time, but the release version will probably take at least another week to arrive.

A request for discussion has been post for comp.lang.java.mod. This would be a moderated newsgroup based along the lines of con.lang.c++.mod.

Friday, July 25, 1997
Version 0.9.1 of Kaffe, a free Java virtual machine, has been released. This version adds support for Java 1.1.1.

Issue 6 of the Unofficial Java Bug Report is now available. This issue includes an important access control issue more unresolved issues to do with the specification of Core Reflection.

Sun's posted a developer's release of a their Just-In-Time compiler (JIT) for Windows 95/NT.

Java Web Server 1.0.1 is now available. This is a bug fix release.

Robin Bing-Yu Chen's JavaGL 3D Graphics Library for Java version 1.0b3.1 is now available.

JVerge Beta 4, a GPL'd VRML 2.0 Node class library is now available.

Ernest Friedman-Hill's Jess 3.0b2, the Java Expert System Shell, has been released. Version 3.0b2 fixes a number of bugs.

JAVAR 1.3.4 beta, a prototype restructuring compiler for Java that can be used to make implicit parallelism in Java programs explicit by means of multi-threading, is now available. This release has a number of bug fixes and minor improvements in the code it can compile.

Finally, I've updated the notes for Class 4 of my Introduction to Java Programming course, More Objects.

Thursday, July 24, 1997
Microsoft has released beta 2 of their Java Software Development Kit (SDK) 2.0. This release supports Java 1.1 and adds support for Microsoft's proprietary DirectX multimedia API. Most notably this release finally includes the much-hyped and hissed J/Direct that allows native Windows API calls from Java.

J/Direct may be a useful technology for applications. What's disturbing is that Microsoft has allowed it to be included in applets as well, with no more security than their own failed ActiveX. The Java sandbox is completely bypassed by J/Direct. Only fully trusted applets are permitted to access J/Direct; but the simple fact is that nobody in their right minds fully trusts applets, including those written by Microsoft. It's not so much a problem with deliberate attacks as it is with buggy software.

The recent releases of Internet Explorer 4.0b1 and 4.0b2 have already proven that Microsoft has few compunctions about releasing buggy software that corrupts users' systems. And yet now they're proposing a security model that allows their (and others') buggy software to run on our systems without even a by-your-leave? At least with Internet Explorer, a user had to make a deliberate choice to install it before it would corrupt his or her hard drive. With J/Direct, Microsoft will be able to remove the choice from the user, and install and run their buggy software as soon as the user visits a Microsoft web page.

I'm sure the Microsoft apologists are going to jump all over me for this. "Microsoft would never release damaging software! Microsoft would never install software without the user's permission!" To these people I say, "Have you actually used Microsoft products lately?" Microsoft routinely releases buggy software--sometimes identified as a beta (IE 4.0), sometimes not (Windows NT 4.0 service pack 2)--and encourages users to install it, whether they need it or not, whether it's a beta or not. Then, having tricked the user into running an installer to "just give the product a try", Microsoft's installer replaces critical DLLs, destroys registry settings, and in general does whatever it can to eliminate competing software on the user's system whether that competing software is a TCP/IP stack, a dialer, or a web browser.

Frankly, I don't think that Microsoft is going to be able to resist the temptation to make themselves a fully trusted domain in the default installation of IE and Windows. I think the ability to add code to users' systems whenever Microsoft feels like it will be too enticing. Maybe, if Microsoft wants to feel like they're playing nice, they'll add a screen to the installation wizard that says something like "Would you like to add microsoft.com to the list of trusted domains so we can keep your software up-to-date and provide you with new, cool toys?" or some other innocent-sounding pitch that will be misunderstood by most users.

There is hope, though. All is not yet lost. In fact, the market has already spoken. It has rejected the uni-platform, authentication-based security model of ActiveX in favor of the multi-platform, sandbox model of Java. With J/Direct Microsoft is reissuing failed technology in new clothing. This model didn't work for ActiveX controls written in C++, and it's not going to work in Java.

Wednesday, July 23, 1997
Sun and Lotus have released a draft specification of InfoBus. According to Sun, "InfoBus provides support for dynamic data transfer between beans, allowing components such as spreadsheets, charting tools, and database viewers to exchange structured data."

Sun has also revealed some additions to the security API scheduled for Java 1.2 that will allow much more flexible and finely grained control over access to individual resources.

Sun has also released a Version Identification API for Java 1.2 that will allow package level version control so applications and applets can identify at runtime the version of a specific Java Runtime Environment, VM, and class package.

Java Workshop 2.0 Beta build 141 is now available.

Intel has released Beta 3 of its Java Media Framework implementation. This release supports Java 1.1 and the Java Media Framework API version 0.96.

InstantDB 0.3 is now available with some performance improvements.

Tuesday, July 22, 1997
The official results of the balloting on Sun's effort to have Java approved as an ISO standard while remaining a proprietary product of Sun are in. The bottom line is that Sun lost (and the public won). The exact count was 14-8 with one abstention. Most of the No votes and a few of the Yes votes had comments which Sun now has about two months to respond to. Assuming Sun is willing to address the comments (most of which dealt with Sun's proprietary control of Java) they can resubmit a modified proposal for a second vote.

I've updated the Week 3, Introduction to Objects course notes for my Introduction to Java Programming course.

Version 1.0.3 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.

Monday, July 21, 1997
Cereus Design has announced (but apparently not released) version 5.0 of HotTEA, a BASIC interpreter written in Java and embeddable in applets. Now you too can use the most modern, efficient, and cleanest programming language ever invented (Java) to write code in one of the oldest, most inefficient, and spaghetti-prone languages ever invented (BASIC). HotTEA 5.0 is currently only available for OEM licensing. A beta for end-users is expected in mid-August. The previous version 2.0 is still freely available. I suspect the version number jumped three points to give customers the inaccurate impression that this is as mature an environment to Visual Basic 5.0.

Sunday, July 20, 1997
SunSoft has taken over JavaOS development and (most importantly) wmarketing from JavaSoft. Rumor is that JavaSoft was getting a little too uppity and threatening SunSoft's Solaris. If true, this indicates a growing problem at Sun that's been seen at many, many other companies (Apple and IBM to name two of the biggest). By refusing to cannibalize their own products, Sun is merely giving other companies an opportunity to do it to them.

Saturday, July 19, 1997
Marimba's released Castanet 1.1 for Windows 95/NT and Solaris. This release uses Java 1.1 and adds a plug-in API. The tuner is free. The transmitter starts at $995. (No, I did not forget a decimal point. That really is nine hundred and ninety five dollars and no cents.)

Friday, July 18, 1997
Javasoft's published version 0.98 of the Java 3D API specification.

Beta 2 of X3M's Container and Algorithm Library is now available.

Thursday, July 17, 1997
Alpha 5 of IBM's Aglets Workbench is now available. Aglets are mobile agents written in Java.

Peter Hearty has written InstantDB, currently pre-release 0.2. InstantDB is a set of free Java classes which form the beginnings of a relational database. A JDBC interface is included.

Wednesday, July 16, 1997
Microsoft's released the second preview release of Internet Explorer 4.0 for Windows 95 and NT. This release does not appear to include the infamous J/Direct which still seems like little more than vapor designed to induce FUD (fear, uncertainty, and doubt) in the marketplace.

No reports on IE PR 2 yet, but I'd be extremely cautious after the disastrous experience many people had with preview release 1. Microsoft trumpeted that release to high heaven; begged, screamed, and pleaded for everyone and their uncle to install it; then, when users did install it and discovered that not only was it unusably buggy but that it decimated their systems and forced clean reinstalls of everything, Microsoft denied responsibility and said "It's only a beta, and you shouldn't have installed it on a production system, and really it's your fault for being stupid enough to listen to us in the first place."

It's pretty obvious that IE preview release 1 came out when it did only because Netscape 4.0 was out and Microsoft needed a response, destructive though it was. That strategy backfired. Of everyone I know who tried IE PR1, there were only two responses. Those who were previously indifferent to or even liked Microsoft joined the Microsoft detractors' camp. Those who already disliked Microsoft began to positively loathe them.

Tuesday, July 15, 1997
Original Reusable Objects has released the first beta of OROGeo, a coordinate free geometry package useful for transforming coordinate frames and performing other mathematical functions associated with 3D graphics. Also available is YaRay, a GPL'd ray tracer that demostrates the use of the library.

I've updated weeks 1 (Basic Java) and 2 (Procedural Java) of my Java course notes.

Monday, July 14, 1997
Sun has announced the Java Server Toolkit, a set of classes, documentation, and examples to assist developers writing network servers in Java. These might include web servers, proxy servers, mail servers, print servers, boot servers, and more. The kit itself does not yet appear to be available (Sun's web site is unclear on this point) but will eventually be available in source code format, and include the Java Server API, tutorials, examples, and a basic set of servers.

Version 1.0.2 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.

Sunday, July 13, 1997
Sun has posted a list of many proposed features and additions for Java 1.2. These features include:

For even more information of questionable reliability, view the HTML source code for that page. There are a lot of juicy tidbits hidden in the comments. (Did you know Java 1.2 is code named "Playground" and that the version number is subject to change, perhaps for marketing reasons?) Caveat lector.

Saturday, July 12, 1997
Sun's Java tutorial now includes some 1.1 material.

Friday, July 11, 1997
The JDK 1.1.3 for Sparc and X86 Solaris and X86 Windows 95 and NT is now available. This release fixes assorted minor bugs. They've also released a beta of a JIT compiler for Windows 95 and NT.

Thursday, July 10, 1997
JavaSoft's published an early access release of JavaIDL, a connection between Java objects and classes and CORBA's Interface Definition Language. This release includes an API specification for Java to IDL language mapping, idltojava, a tool that generates stub code, and a generic ORB core.

Wednesday, July 9, 1997
IBM has released a free, "entry-level" version of Visual Age for Java. This version is limited to one project and 100m classes. Amazingly it still requires a Pentium or higher, OS/2 Warp, Windows 95, or Windows NT 4.0, 100 megabytes of disk space, and 32 MB of RAM. 48 MB of RAM and a 1024 by 768 pixel display are recommended. I hesitate to ask what the professional version (due July 25) will require.

In the not specifically Java department I note that the World Wide Web Consortium has released the first draft of HTML 4.0. Mostly, this draft just codifies existing practice; but there are some useful enhancements for accessibility. Anyone want to lay book that Microsoft and Netscape are going to take their own sweet time implementing these essential capabilites so they can concentrate on more flashy, proprietary technologies?

And finally, I apologize to those of you who visited this site yesterday, only to find yourself staring at my course notes, and thank those of you who sent me email notifying me of the problem. I uploaded the wrong index file while updating the site yesterday afternoon, and then logged off the net for about 20 hours so I didn't find the problem till early this morning. Mea culpa. Mea maxima culpa.

Tuesday, July 8, 1997
Sun has missed their promised second quarter ship date for a beta version of the JDK 1.1 for the Mac. In fact, it seems likely that Sun may soon (if they haven't already) drop JDK development for the Mac completely in favor of Apple's Macintosh Runtime for Java. Sun engineers are said to be assisting Apple with MRJ 2.0 (currently in semi-private beta) which supports Java 1.1.

While Apple's MRJ seems to be in better shape than Sun's Mac JDK ever was, I'm still a little concerned that Sun is not paying sufficient attention to Macintosh issues. Most notably, the AWT is still very much oriented toward X-Windows and is not really suitable for either Windows or the Mac GUI. For instance, the AWT assumes each frame can have its own menu bar (true on Solaris and Windows, false on the Mac) and that windows are free-standing (true on Solaris and the Mac, false on Windows). If there's nobodoy inside Sun forcing the Sun engineers to pay attention to the Mac and design APIs that make sense on all platforms, then we're likely to more APIs that try to make everything look like X-Windows.

In related news, the first beta release (0.2) of Swing, Sun's next-generation platform independent GUI is now available from ftp://ftp.javasoft.com/pub/jfc/. Swing attempts to achieve identical look and feel across platforms by following its own user-interface guidelines rather than those of the host platform.

Monday, July 7, 1997
Alex Kowalenko has posted version 0.1 of SimpleSNMP, Simple Network Management Protocol version 1 client written in Java 1.1. Source code is included.

Sunday, July 6, 1997
ORO has released PerlTools, 1.0b2, a Java package for using Perl 5 style regular expressions.

Saturday, July 5, 1997
A Request For Discussion (RFD) has been posted for an unmoderated newsgroup comp.lang.java.corba. As usual discussion of the proposal should take place in news.groups.

Friday, July 4, 1997
Symantec has posted Preview Release 2 of Visual Cafe for Windows with Java 1.1 support. Preview Release 2 adds Java 1.1 support to the Form Editor and the Interaction Wizard. This is only available to registered users. Cafe (non-visual) Preview Release 5 for Windows is also available and supports Java 1.1.

Thursday, July 3, 1997
Sun has published version 0.9 of its Personal Java Specification for PDAs, consumer electronics and the like. According to John Zukowski, author of the Java AWT Reference, this specification contains some interesting additions to the API that appear as though they will be integrated into a future JDK. For example, java.awt.Component has a new isDoubleBuffered() method. If isDoubleBuffered() returns true, then all drawing done inside paint and update methods is double buffered automatically.

Wednesday, July 2, 1997
O'Reilly's posted Chapter 1 of Java Network Programming on their web site.

JacORB 0.6c, the free Java ORB, is now available. This release adds

  • IDL discriminated unions
  • CORBA standard exceptions
  • More configuration possibilities such as network buffers
  • Runtime classes for the IDL compiler now included
  • Many bug fixes

Tuesday, July 1, 1997
Java Secrets has been selected as the main selection of the Newbridge Small Computer Book Club in their Summer 1997 catalog. After years of forgetting to mail in those little postcards, they're finally working for me instead of against me! :-)

Mike Lehman's HotTEA 2.0 is now available. HotTEA is a simple BASIC interpreter written in Java. Version 2.0 adds simple graphics support.

Chris Kelly has written a Java class library for the Mac called JConfig, version 1.0d0, which:

  • Converts between Windows file extensions and Mac creator/file type codes.
  • Finds applications by name.
  • Finds applications associated with a given file type.
  • Reads the InternetConfig file mapping database.
  • Creates external processes.
  • Sends basic commands to external processes.
  • Gets the icons, version information, and creation date of an application.
This release requires a PowerMac, Macintosh Easy Open, Internet Config 1.2 or later, and MacsBug. JConfig is not yet finished or fully debugged and expires August 1, 1997.

Monday, June 30, 1997
Allan MacKinnon has written an IFC .planb to .class converter. This application converts Netscape IFC Constructor planb files to Java classes.

Bill Bercik's released Dippy Bird's JDK 1.1.1 WinHelp files. This package contains various HTML documentation converted to Windows Help (WinHelp) format including:

  • Java 1.1.1 Core API
  • JDK Guide to New Features
  • Java Beans Development Kit Documentation
  • Java Commerce API
  • Java Server (Beta)

Sunday, June 29, 1997
Version 1.1 of the Graphic Java Toolkit from David M.Geary's and Alan L. Mclellan's popular book, Graphic Java, is now available. GJT 1.1 requires Java 1.1. The second edition of the books should be out in July.

Saturday, June 28, 1997
Metrowerks has updated their Java VM for Code Warrior for BeOS. This release fixes some crashes in the AWT, fixes synchronization problems, and adds an optional Just-In-Time compiler.

Friday, June 27, 1997
Sun has emitted some new vapor about their Java Foundation Classes. Most notably, they give a list of the additional components that will be added to the AWT including a styled text box that should be able to import and export at least some HTML. It's also notable that Sun is trying to rewrite history by claiming that the JDK 1.1 AWT is the first version of the Java Foundation Classes. It's Sun product so they can call it what they want and ignore the fact that they were singing a very different tune just a short while ago, but curious browsers are likely to interpret this as a sign that the real JFC project is running late.

Elsewhere inside Sun there's a new beta of Java Workshop 2.0. This release enhances the GUI Builder for importing and instantiating JavaBeans, supports Java 1.1.2, and includes new icons, file picklists and an improved Web Browser

JSDA 1.0.1, a bug fix release of the unofficial Java Shared Data API for multipoint data delivery, is now available.

Thursday, June 26, 1997
Netscape has clarified what parts of Java 1.1 they do and do not support in Communicator. The new AWT, JavaBeans, and the delegation event model are not supported. Neither are the Java Native Interface or remote method invocation (RMI). Most everything else is supported.

Chad Michael Townsend has written middleware to allow older versions of Java from Netscape to communicate with mSQL using the new mSQL drivers.

Wednesday, June 25, 1997
Netscape has released Communicator 4.01 for Power Macs, 680x0 Macs, Windows 3.1, and Windows 95 and NT. Java-wise this release includes the Symantec JIT compiler, supports Java 1.1.2, and includes the latest version of the Internet Foundation Classes (IFC). Particularly notable are classes for standard Internet protocols like LDAP, IIOP and CORBA. Netscape claims to also have classes for SMTP, POP3, and IMAP but I couldn't find them.

The fourth issue of the Cafe Au Lait newsletter is now available. In this issue I talk about the projects that have kept me busy since the last issue of this newsletter, way back in November, and explain why mirroring web sites is a fundamentally bad idea.

Tuesday, June 24, 1997
The Kimera project at the University of Washington has found another type-safety based security bug in Java. This one affects only the JDK 1.1.2 (not yet present in Netscape or Internet Explorer). This "vacuum security bug" potentially allows a hostile web site to to read textual information from the HotJava browser and the Java virtual machine, such as the user's password, browser history, cache contents, or private security keys. The bug may also lead to a browser crash. Exploiting the bug requires hand-tuning of Java .class files. Sun has promised to fix the bug in the JDK 1.1.3, possibly available later this week or early next week.

The infamous J/Direct is still vaporware, but Microsoft has released their Java SDK 1.5.1 for Win32. This version includes Microsoft's latest VM for Windows 32, X86 and Alpha. It also includes a Netscape Plugin to use Microsoft's VM in Navigator, a Script Debugger for Internet Explorer, the JVC Java compiler from Visual J++ 1.1, a utility to convert OCX type library files into Java classes, a new set of classes that allows you to write NT services in Java, application and applet viewers, and a new version of the Jexegen tool for converting stand-alone Java applications into native executable binaries.

As usual, you'll have to go through a long, convoluted, privacy defeating registration process before downloading the software. I generally just enter obscenities whose filthiness increases in proportion to my annoyance level . By the third registration screen, I had become positively disgusting. I wonder if anyone at Microsoft actually reads this stuff, or if some poor schmoe at the dead letter office is going to have to figure out how to deliver Microsoft's junk mail to "Mr. Bad Word, 666 @#$%! Street, $#@$ %^@ NY 10210".

Finally, to top matters off, when I went back to the site this morning it appeared that some hacker had taken the entire site down (again!). When I went back an hour later, Microsoft said they wouldn't let me in unless I ate their cookie. (My mother taught me never to take cookies from strangers.) 30 minutes later they let me back in without requiring a cookie. In fairness, I suppose I should say that I don't know that a hacker took the site down. I suppose Microsoft could have done this much damage to their own web site all by themselves.

Let's face it, Microsoft still doesn't get Java, the Web, or the Internet. It takes a long time for a multi-billion dollar company to collapse, but all their hype to the contrary, Microsoft is heading straight down the same road to irrelevance followed by other monopolies that couldn't change when their market moved out from under them.

Monday, June 23, 1997
Sun's released beta versions of a Java 1.1.1 JIT compiler for Sparc and X86 Solaris.

Sunday, June 22, 1997
The JavaBeans Glasgow specifications have been updated. These include version 0.95 of the Runtime Containment and Services Protocol specification, version 0.5 of the Object Aggregation and Delegation Model specification, version 0.1 of the Data Typing and Object Registry Mechanism / Activation Framework specification, and version 0.11 of the Native Platform-capable Drag and Drop specification.

Saturday, June 21, 1997
JSDA 1.00, a shared data multi-point delivery service for Java, is now available. This is a research project which may or may not eventually lead to an official JavaSoft API. JSDA supports full-duplex multipoint communication among an arbitrary number of connected application entities, supports multicast message communications, and provides a token-based distributed synchronization mechanism.

Friday, June 20, 1997
The JDK 1.1.1 v3 for Linux X86 and 1.1b1 for Sparc Linux are now available from the usual mirror sites. Not all the mirrors appear to have the Sparc version yet, but ConnectNet does.

The first beta of the JDK 1.1.1 OS/2 is now available.

Thursday, June 19, 1997
Microsoft's released an XML parser written in Java.

Freestyle Software has released the Avalanche Cryptography Toolkit, a pure Java implementation of many encryption algorithms including DES, Triple-DES, Blowfish, TEA, and 3-Way block ciphers. Avalanche supports Java 1.0 and 1.1, and is free for personal and non-commercial use. ($1099 for commercial use.) There are also some efforts to support obfuscation of byte code through encryption, though I think efforts like this tend to be both defeatable and self-defeating.

Wednesday, June 18, 1997
Microsoft is expected to continue its efforts to make Java just another language for Windows today when it pre-announces J/Direct. J/Direct exposes some Windows APIs to Java in Internet Explorer 4.0. Using tehse APIs may tie applets to the Windows platform. I can't wait to see the security holes this opens! Wired has the story.

IBM's updated their High Performance Compiler for Java which compiles Java byte code (or source code) into optimized, platform-specific native code for AIX, Windows 95, or Windows NT. The current beta only supports a subset of the Java 1.0.2 APIs. In particular, the java.awt and java.applet packages are not supported. It's an interesting product, though as usual IBM uses the painfully-diffcult-to-navigate Lotus Domino web server to make the actual file excessively difficult to download.

Tuesday, June 17, 1997
France has voted down Sun's request to be a PAS submitter. The language used was even stronger than in the U.S. rejection of the plan. It's becoming apparent that Sun's effort to convince the ISO to rubber stamp Java as a standard while still leaving it a proprietary Sun-owned technology is dead in the water. It remains to be seen whether Sun will surrender control of Java, follow the Microsoft/Netscape route of submitting Java to a third-rate standards body that is willing to rubber stamp it as a "standard", or just give up on de jure standardization completely.

Issue 5 of the unofficial Java Bug Report is now available.

JavaSci 0.71 is now available. This release fixes a bug in one of the diag/tridiag constructors, adds inverse methods for square matrices, and includes the beginnings of a developer's guide.

Sun's released exportable (weak encryption) versions of the Java Web Server. I wonder if the U.S. government or Sun is actually believes any of these export controls actually work, or if they all secretly know that noone actually uses the exportable versions of products like Java Web Server, that they use locally grown software or pirated U.S. software.

Monday, June 16, 1997
The first beta of the Macintosh Runtime for Java Software Development Kit 1.5 (MRJ SDK 1.5b1) is now available from http://applejava.apple.com/text/prerelease.html. This release concentrates on bug fixes and enhanced integration of Java applications with the Finder and the traditional Macintosh human interface guidelines, including keyboard equivalents, creator and file types, and open/print/about/quit Apple events.

A Java 1.1 compatible version of the BISS-AWT is now available.

Sunday, June 15, 1997
Steve Verril of the U.S. Forest Service Forest Products Laboratory's Statistics Group has ported much of BLAS (Basic Linear Algebra Subroutines) as well as the LINPACK Cholesky decomposition (dpofa, dposl, and dpodi), QR decomposition (dqrdc and drqsl), and singular value decomposition routines (dsvdc) to Java.

Saturday, June 14, 1997
guavac 0.3.1, the GPL'd Java compiler written in C++ is now available. This release fixes a few bugs and adds some support for Java 1.1.

Symantec's finally posted the preview release of Visual Cafe Pro for Windows NT that supports Java 1.1. You'll need to be a registered user of Visual Cafe Pro to get it.

Friday, June 13, 1997
Intel CEO Andy Grove was pushing Intel's new Vtune Java accelerator at the Netscape DevCon this week. c|net has the story.

Also according to c|net, Sun has pushed back the introduction of its network computer and the accompanying JavaOS until at least Fall.

Thursday, June 12, 1997
The JavaBeans Migration Assistant for ActiveX Preview 2 is now available.

Symantec's main Cafe page says a preview release of Visual Cafe Pro for Windows NT that supports Java 1.1 is now available, but the link appears to be dead.

Netscape's announced a plan to release a 100% Pure Java version of Communicator in 1998.

Wednesday, June 11, 1997
Ernest Friedman-Hill's Jess 3.0b1, the Java Expert System Shell, has been released. Jess 3.0 adds many new features including multifields, multislots, and incremental reset, includes a number of bug fixes, a more flexible user function interface, lots of new built-in functions, and a general code cleanup and reorganization.

Tuesday, June 10, 1997
Netscape Communicator 4.0 for Windows 3.1, 95, and NT are now available.

Monday, June 9, 1997
One of the problems with early JavaBeans has been that apps, applets, and beans built in one builder tool tend not to be able to be used in a different builder tool. Sun has now published a first draft of a set of compliance rules which should improve interoperability between tools, once vendors implement them. This is a must-read for tool vendors.

Sunday, June 8, 1997
Beta 4 of the JavaBeans-ActiveX bridge is now available.

Saturday, June 7, 1997
ObjectSpace has released the first beta of Voyager 2.1, an agent-enhanced object request broker. You can avoid wasting your time with pointless registration forms by going straight to the ftp site.

Friday, June 6, 1997
The US Technical Advisory Group for ISO/IEC Joint Technical Committee 1, Information Technology (JTC 1 TAG) has voted "No with Comments" on Sun's Application to become a "Publically Available Specification" (PAS) Submitter. It seems increasingly unlikely that Sun will be allowed to rubber-stamp existing Java specifications without turning them over to the ISO, and making Java a truly open standard rather than one owned, controlled, and licensed by Sun. About 30 similar national groups from other countries will vote by July 14, 1997. Switzerland and France have already committed to voting against Sun's application.

Apple's released the first beta of Macintosh Runtime for Java 1.5. You will need Disk Copy 6.1.2 to mount the disk image containing the MRJ 1.5b1 installer. This release includes a Just-in-time compiler and runtime support. It does not include a compiler or other development tools. The MRJ Software Development Kit 1.5 should be available soon.

Java Web Server 1.0 (formerly known as Jeeves) and the Java Servlet Development Kit are now available from http://jserv.javasoft.com/.

A new "June" version of the Beans Development Kit 1.0 is now available. (Could somebody please explain to me what Sun has against traditional 1.0, 1.0.1, 1.0.2 version numbers? This is at least the third separate release of the BDK 1.0.) This is primarily a bug-fix release with a few helpful features added. Most notably, there are better diagnostics when the BeanBox can't load a bean, and beans in the default package can now be loaded into the BeanBox.

Mark Hale has released JSci 0.7. The math package introduces the SpecialMath class (Bessel functions, etc). MatrixMath now includes LU decomposition and determinants, and should be speedier and more memory efficient.

Thursday, June 5, 1997
Symantec has posted new preview releases (buggy, early, alphas) of Visual Cafe for Windows and Cafe for Windows that support Java 1.1. These are only available to registered users.

The second edition of O'Reilly's Java in a Nutshell is now on store shelves. This edition covers Java 1.1; and will likely henceforth be known as the tiger book since it now has a tiger on the cover. It's still only $19.95, and remains "an excellent introduction to Java for C and C++ programmers and an excellent reference for everyone" as reads the quote on the back cover from some fool whose name I forget.

Wednesday, June 4, 1997
The popular The Palace visual chat system is now available as a Java client called InstantPalace that can be automatically downloaded from the server and run inside a web browser as an applet. Therefore:

  • The Palace no longer requires the user to manually download and install the client software.
  • The Palace is now accessible by people on Unix machines and any other platforms that support Java.

This is the way Java is supposed to be used! The upgrade needed at the server to support this is free to existing Palace customers.

Sun has decided to adopt the Object Database Management Group (ODMG) Binding for Java, an API that defines how Java objects are to be stored in object databases.

General Magic's released beta 2 of their Odyssey Mobile Agent software.

Tuesday, June 3, 1997
Sean Russell's released jDB 3.37, a database written in Java 1.0.

Monday, June 2, 1997
The JDK 1.1.2 is now available for Win32 and Solaris Sparc and X86. This is primarily a bug-fix release.

Sun's updated the Glasgow, a draft specification for the next JavaBeans component model. This release adds a completely new Data-Typing and Object Registry Mechanism/Java Activation Framework draft specification.

Sunday, June 1, 1997
Kevin Raulerson haw posted three utility scripts to make it easier to use javac in Apple's Macintosh Runtime for Java 2.0a2. MRJ 2.0 has not yet been formally released to the general public, but is available to subscribers to the MRJ-DEV mailing list.

Saturday, May 31, 1997
Netscape has released the final version of their Internet Foundation Classes 1.1 which will be included in Communicator 4.0. IFC 1.1 class library. Some version of the IFC will also be adopted as part of Java 1.2 and Sun's Java Foundation Classes.

Friday, May 30, 1997
Sun has published a revised version of the Java Media Framework documentation.

Thursday, May 29, 1997
JacORB 0.6b, the free Java object request broker is naw available. This is a bugfix release.

Wednesday, May 28, 1997
Peter Ohler's DocFix renames and relinks Javadoc files so they work under the Mac's 32-character-filename limits. If you're working on a Mac, you MUST have this utility.

Tuesday, May 27, 1997
Microsoft's released a version of Visual J++ that supports Java 1.1.

Monday, May 26, 1997
Mac and Windows versions of Netscape Communicator 4.0b5 are now available from the usual locations such as ftp://ftp13.netscape.com/pub/communicator/4.0/4.0b5/ Java-wise, there are many problems, but this is still the only Java 1.1 VM for the Mac. Ther are also release notes for Unix, but I haven't found the actual software yet.

Sunday, May 25, 1997
IBM's NetRexx 1.0, a REXX compiler that produces Java byte code, is now available. Among other minor improvements, this release can now compile mutually dependent classes.

Saturday, May 24, 1997
I've added several books about Bongo and Castanet to the books page.

Friday, May 23, 1997
Object Design has released ObjectStore PSE for Java 1.1, a free, single-user, persistent storage engine for Java.

Thursday, May 22, 1997
Sean Russell's pure Java database jDB 3.31 is now available. As usual, this release fixes various bugs.

Wednesday, May 21, 1997
Microsoft's released a new version of their Java virtual machine for Win32/X86 that fixes some of the holes found by the Kimera Project.

Marimba's Bongo 1.0a5 for the PowerMac is now available.

Tuesday, May 20, 1997
Applet Magic 2.5 for Solaris/Sparc and Windows is now available. AppletMagic is an ADA-95 compiler for the Java virtual machine.

Monday, May 19, 1997
The latest update of the unofficial Java Bug Report is now available.

Sunday, May 18, 1997
This doesn't have any direct connection to Java, but I'm so excited I can't help myself. The W3C has released the first draft specification for Mathematical Markup Language, MathML for short. MathML is an XML application for describing mathematical expression structure and content. The goal of MathML is to enable mathematics to be served, received, and processed on the Web, just as HTML has enabled this functionality for text.

Just so today's news will have some Java content, I'll mention that Java applets will be the primary way for web pages to display MathML, at least initially. (Who wants to bet that Microsoft and Netscape ignore this emerging and important standard for the next year so they can focus on making it easier to waste our time with additional annoying animated advertising instead?) The Geometry Center's WebEQ applet already processes LaTeX-like equations, and will be extended to handle MathML.

Saturday, May 17, 1997
The Kimera project at the University of Washington has uncovered 24 separate flaws, bugs, security holes, and ambiguities in Sun's class file verifier. Some problems are specific to Java 1.0.2, but many apply to both 1.0.2 and 1.1.1 VMs. Sun has promised to fix one of these 24 flaws in JDK 1.1.2, due out toward the end of May.

The documentation for Roaster DR3 is now available from http://www.roaster.com/resources/docs/.

JAVAR 1.3.3, a prototype restructuring compiler for Java that can be used to make implicit parallelism in Java programs explicit by means of multi-threading, is now available.

Friday, May 16, 1997 IBM's refreshed their Jikes Java compiler with some bug fixes.

Thursday, May 15, 1997 I've updated the books page with various new books. In particular I've added a couple of dozen books about JDBC and JBuilder.

Wednesday, May 14, 1997
Digital's released the first beta of the JDK 1.1 for Digital Unix.

The fourth beta release of Parts for Java includes a beta version of the JDK 1.0.2.

Version 0.02 of Nik Shaylor's JCC Java-To-C translator is now available.

Apple's announced that Java will be fully supported in Rhapsody and the Yellow Box, cross-platform, OpenStep environment. In particular, the API will be exposed to Java so you can write fully native programs for Rhapsody in Java.

Tuesday, May 13, 1997
Amara's JBasic is the first JavaBeans based scripting language. If you like BASIC, it's worth checking out.

Sean Russell's released jDB 3.27. This release fixes many of the networking bugs related to the Table class, and should improve the stability of jDB in a network environment.

Monday, May 12, 1997
Eliot Berk's JLex 1.2, formerly known as JavaLex, has been released. JLex is a lexical analyzer generator, written for Java, in Java.

Sunday, May 11, 1997
RSA has released JSAFE, a pure Java, payware, cryptographic toolkit. JSAFE is designed to be called through the Java Security API, but cas also be retrofitted into Java 1.0.2.

Saturday, May 10, 1997
IBM's released the JDK 1.1.1 for AIX.

Friday, May 9, 1997
The mailing list page has been updated. One notable addition is jnative-l for discussion of native methods programming.

Thursday, May 8, 1997
Netscape Communicator 4.0 preview release 4 is out for Windows 95. In regard to Java, this release includes the Symantec Just-In-Time compiler, CORBA's Internet InterOrb protocol (IIOP), Internet Foundation Classes 1.1, and a Java LDAP API. Furthermore Communicator now supports the OBJECT tag, JAR files, and signed applets. Finally, last but definitely not least, you can use Shift-Reload to reload and restart an applet!

JAVAR 1.3.2 beta is now available. JAVAR is a prototype restructuring compiler that can be used to make implicit parallelism in Java programs explicit by means of multi-threading.

The books page has been updated. There are now a couple of real 1.1 books available, Teach Yourself Java 1.1 in 24 Hours by Rogers Cadenhead and Java 1.1: No Experience Required from Sybex. Neither is a great book, but at least they really do teach Java 1.1 instead of Java 1.0 like most of the other so-called 1.1 tutorials on the market.

Wednesday, May 7, 1997
Steve Byrne reports that the JDK 1.1.1 for Linux is now available. He also says that all traces of Solarisisms have been removed from Sun's JDK 1.2 code base, so future ports of the JDK to other Unixes should be available much more closely to the Solaris release.

Various comments on Sun's application for recognition as a submitter of Publicly Available Specifications for Sun's Java Technologies (in other words, their efforts to get Java certified as a de jure standard while completely bypassing the normal standards process and maintaining Java as a proprietary, Sun owned technology) may be read at http://www.jtc1tag.org/sun_pas.htm.

Tuesday, May 6, 1997
JVerge Beta 3, a GPL'd VRML 2.0 Node class library is now available.

Monday, May 5, 1997
The unofficial Java Bug Report has been updated.

Sunday, May 4, 1997
IBM's released the first beta port of Java 1.1 to OS/2.

Saturday, May 3, 1997
The first preview version of Sun's JavaBeans Migrations Assistant for ActiveX is now available for Windows 95 and NT (the only platforms ActiveX really runs on anyway). The JavaBeans Migration Assistant generates JavaBeans code from ActiveX controls. The tool analyzes an ActiveX control's properties and creates a framework for a subsequent pure Java implementation that takes on the features of the ActiveX control.

The Safe Internet Programming Project at Princeton Univeristy has found a serious security flaw in version Sun's JDK 1.1.1 HotJava 1.0 that allows applets to completely bypass Java's security mechanisms by convinicing the runtime the applet was signed by a trusted source. Javasoft has promised to fix the bug in Java 1.1.2.

Friday, May 2, 1997
Apple's Macintosh Runtime for Java 1.5a1 is now available from http://applejava.apple.com/text/prerelease.html. MRJ 1.5a1 still only supports Java 1.0.2, not 1.1. It adds a just-in-time compiler for the PowerPC and improvements to the graphics code for both PowerPC and 68K Macs.

The first draft of the specifications for the Glasgow release of JavaBeans is now available at http://splash.javasoft.com/beans/whatsnew.html. This adds the Object Aggregation and Delegation specification and the JavaBeans Runtime Containment and Services specification.

Chad Owen Yoshikawa's published some notes on class loaders at http://www.cs.berkeley.edu/~chad/java/

Marimba's released the Castanet Tuner for Power Macintosh 1.0. It is now available from http://www.marimba.com/tunein.

Thursday, May 1, 1997
General Magic's released Odyssey, their rewrite of the Telescript mobile agent system in Java.

John Pritchard is compiling a FAQ list about Jeeves/Java Web Server. Send questions and/or answers to jeeves-faq@comoc.com

Wednesday, April 30, 1997
A new beta of Intel's Java Media Framework implementation for Wintel systems is available from http://developer.intel.com/ial/jmedia/JMDownload.htm.

Toba 1.0b6 is now available. Toba translates Java 1.0 .class files into C source code which can be compiled into a native executable. Toba currently runs under Irix 6.2, Linux 2.0, Solaris 2.5 and Windows NT 4.0, but only the Solaris implementation has thread and AWT support.

Tuesday, April 29, 1997
Apple's Macintosh Runtime for Java Software Development Kit 1.0.2 (MRJ SDK) is now available from http://applejava.apple.com/text/download.html. This release adds JBindery support for 680X0 Macs and fixes the bug where the java.awt.FileDialog methods return null.

David Engberg's released version 0.3 of guavac This release fixes a few bugs, improves some error reporting, and improves compatibility with the JDK 1.0.2.

JAVAR 1.2.4 beta is now available. JAVAR is a prototype restructuring compiler that can be used to make implicit parallelism in Java programs explicit by means of multi-threading.

Monday, April 28, 1997
IBM's released a beta version of the JDK 1.1.1 for AIX.

Sunday, April 27, 1997
Matt Angel and Eric Williams have released a first alpha version of the Servlet CGI Development Kit, a free framework to support the development and deployment of servlets on web servers that support the CGI protocol. You will also need a Java 1.1 VM, Sun's beta Java Servlet Development Kit , and a web server that supports CGI and a POSIX shell such as the Bourne shell.

Saturday, April 26, 1997
IBM's published an introduction to Java Beans called Cooking with Beans in the Enterprise.

Friday, April 25, 1997
JUILib 1.1 is now available. Among other things, JUILib is a package for creating and managing parent and child windows in a way that emulates Windows Multiple Document Interface (MDI) through pure Java to preserve platform independence.

Thursday, April 24, 1997
ObjectStore's released ObjectStore PSE for Java 1.0.4. ObjectStore PSE is a free persistent storage engine for Java developers that llows you to store and retrieve Java objects in a single file.

Wednesday, April 23, 1997
Apple's Macintosh Runtime for Java 1.0.2 is now available from http://applejava.apple.com/text/download.html. This release fixes the bug where the java.awt.FileDialog methods return null.

Tuesday, April 22, 1997
Netscape's released IFC 1.1 beta 6 and a new version of Netscape Constructor 1.0b2.

European Mac users can now download the MRJ 1.0.1 SDK from http://www.euro.apple.com/edr/ftp/seeds/mrj101sdk.hqx. This should help those who've been having trouble with congested trans-Atlantic links.

I've posted notes for the final week of my Introduction to Java Programming course. This week I discuss data transfer, printing, and wrap up with brief discussions of future directions in which Java is going.

Monday, April 21, 1997
A new Java User Group is forming in Birmingham, Alabama. Send email to Ben Bernhard at bbernhard@monteagle.com if you're interested.

Beta 2 of CAL, a container and algorithm library for Java is now available. CAL is developed in pure Java, and should run on any platform supporting the JDK 1.1. It features various data structures such as trees, several dozen generic algorithms like sort, union, difference, and a regular expression package.

Sunday, April 20, 1997
IBM's JIKES is a fast Java compiler for AIX, Windows 95, Windows NT, and OS/2 that can understands dependency relations.

Saturday, April 19, 1997
I've posted the lecture notes for week 12 of my Introduction to Java Programming course. This week I discuss network programming including URLs, InetAddresses, sockets, server sockets, UDP, and datagram sockets.

Friday, April 18, 1997
Dmitri Kondratiev has an interesting proposal for Java Beans that handle VRML.

The Castanet Tuner for the Power Mac Beta 2 is now available at http://www.marimba.com/tunein.

Thursday, April 17, 1997
The EA release of JAVAIDL, which supports the Internet Inter-Orb Protocol (IIOP), is avaliable from ftp://ftp.javasoft.com/pub/jdk1.1/idl/. You have to go straight to the ftp site. The web page has not yet been updated.

Wednesday, April 16, 1997
Frank Ming-Cheng Lin is forming a Java User's Group in Taiwan, the Taiwan JUG or TWJUG for short. If you're interested send email to mclin@iiidns.iii.org.tw.

Tuesday, April 15, 1997
There's a bug fix for the Java web server beta at http://java.sun.com/products/java-server/.

Sun's published most of the slides from the talks at JavaOne.

I've posted most of the lecture notes for week 11 of my Introduction to Java Programming course. This week I discuss threads and animation.

Monday, April 14, 1997
IBM has released its port of the JDK 1.1 to AIX. You can download it from ftp://ncc.hursley.ibm.com/pub/java/aix/11/.

Sunday, April 13, 1997
Symantec has released a "preview" (translation from market speak: buggy, earcly alpha) of Symantec Cafe 1.5 for Windows 95/NT with Java 1.1 support. You must already have Cafe 1.5 installed. on your system. To get the update go to ftp://itools.symantec.com/pub/windows/cafe/jdk11 and download both cafe15jdk11p1a.exe and cafe15jdk11p1a.txt by saving them in your Cafe install directory (e.g. C:\Cafe). Extract the self-extracting archive cafe15jdk11p1a.exe and run Update.bat.

Saturday, April 12, 1997
Jess 2.2.1 has been released. Version 2.2.1 is mostly a maintenance release, with a few new features and several bug fixes. Jess is a clone of the core of the CLIPS expert system shell. Jess was written entirely in Java by Ernest Friedman-Hill at Sandia National Laboratories.

Friday, April 11, 1997
The comp.lang.java reorg passed. It will probably take a few months before everything settles down, but the end result should be the following:

  • comp.lang.java.announce, comp.lang.java.advocacy, comp.lang.java.programmer and comp.lang.java.security remain as they were.
  • comp.lang.java.beans, comp.lang.java.databases, comp.lang.java.gui, and comp.lang.java.softwaretools have been created.
  • comp.lang.java.setup has been renamed comp.lang.java.help and comp.lang.java.tech is renamed comp.lang.java.machine.
  • comp.lang.java.misc and comp.lang.java.api were removed.
I've revised the FAQ list to reflect this.

Thursday, April 10, 1997
Roaster DR 3 is shipping. It's still not completely finished, but it's getting closer. A JIT is now included; there's an option to build stand-alone, double-clickable applications or zip archives; a project wizard slightly simplifies the getting started process; and CLASSPATHs have been simplified in some but not all situations. There's now a class browser and a debugger. However except for a single chapter, the documentation hasn't been updated from DR 2.3 so you'll have to figure out most of the new features on your own. Command line arguments are still excessively difficult to use, which makes Roaster a poor choice for anyone learning Java from the standard tutorials. The interface brewer is slow, limited in functionality, and not well integrated into the overall environment. Finally Roaster only supports Java 1.0.2. Java 1.1 support is somewhere out in the indefinite future. On the other hand, right now Roaster is only $49, which makes it one of the cheaper Mac IDEs.

Microsoft's SDK for Java 2.0 Preview Release for Windows 95 and NT includes their much hyped Application Foundation Classes (AFC). These are also available separately for non-Win32 platforms. You can download them from http://www.microsoft.com/msdownload/javasdk2.htm.

Wednesday, April 9, 1997
Jon Bodner compares Macintosh virtual machines at http://www.webintosh.com/features/jvm.html. The 1.5a1 Apple MRJ JIT (which is now available from http://applejava.apple.com/text/prerelease.html) is the winner.

Steven T. Roussey has set up a mailing list for Java developers who want to add OpenDoc type features to Java (like user level mix-and-match components). To subscribe, send mail to majordomo@partbank.com with the body text of:

subscribe mix-and-match-java Your name here
Or use the form on the mailing list page.

Tuesday, April 8, 1997
I've posted the lecture notes for week 10 of my Introduction to Java Programming course. These cover input and output including streams, files, file dialogs, readers, and writers.

Sun's released version 1.0-April of the Beans Development Kit. The main changes since the February release involve use of of Java 1.1 and the new event model throughout while eliminating use of deprecated APIs. There are also some small bug fixes and a few new features.

Monday, April 7, 1997
The Java User Groups page has been updated, including new listings for Boulder, Colorado and San Diego, California.

Sunday, April 6, 1997
Netscape released Communicator 4.0b3 for Mac, Unix, and Windows. 16 MB of RAM is a minimum. Java 1.1 is supported on Windows 95 and NT and the Mac. (Can anyone report on Unix support for Java 1.1 in Communicator?) Symantec's JIT is included in the Win32 and Mac releases. However, the Mac Java support is extremely crash-prone and buggy. Java keyboard input doesn't work in the Unix Communicator. The Windows 95/NT Communicator can display Chinese, Japanese, and Korean strings in Java applets if the appropriate fonts are available on the system. UNIX can also, but requires custom resource settings in addition to the fonts. Chinese, Japanese, and Korean input is possible in Java AWT TextArea and TextField windows. Communicator does not provide its own input method, and so the user's system must have native input methods for these languages.

The first pretest version of JDK 1.1 for Linux/X86 is available from http://www.blackdown.org/java-linux/jdk1.1-test/linux.jdk-1.1-pretest1.static-motif.tar.gz. This release has not been extensively tested, and likely has many problems.

Saturday, April 5, 1997
My wife (who's not a programmer) sent me the following top ten list which is making the rounds of the Internet.

TOP TEN REASONS WHY MICROSOFT LOVES JAVA

10. They're just plain scared.
9. Java runs really badly on the Mac.
8. Runs really, really badly on Windows 3.1.
7. Easier to comply with a standard when you own it.
6. Can distribute Java code at Seattle Starbucks franchises (along with the printed edition of Slate).
5. Never really liked ActiveX anyway.
4. Big mix-up: Gates trying to buy sun-drenched island in South. Pacific, got programming language instead.
3. Been looking to replace MS COBOL for a while.
2. Can blame all bugs on Sun.
1. Microsoft programmers get to hang with Kim Polese at Java developers' conferences.

Marimba's released a beta version of the Castanet Tuner for the Macintosh.

Friday, April 4, 1997
Apple's released the Macintosh Runtime for Java Software Development Kit (MRJ SDK) 1.0.1. This version contains:
  • JBindery is a new version of the utility previously known as JRunner. JBindery creates stand-alone, double-clickable Mac applications that run on any machine that has MRJ 1.0.1 installed
  • NativeLibSupport.PPC.xcoff and NativeLibSupport.68k.o have been added to the Libraries folder to allow the use of a variety of development environments with the MRJ SDK
  • - The SDK now contains an installer for MRJ 1.0.1 so that developers can redistribute the runtime under the Software License Agreement.

Furthermore, there are many bug fixes and documentation updates, particularly in regard to integration with native code. On the flip side, the Metrowerks Code Warrior debugger no longer works with MRJ.

Thursday, April 3, 1997
Gerald Brose has released version 0.6 of JacORB, a free CORBA ORB written in and for Java. This releases fixes some bugs, supports CORBA "any", contains a COSS compliant event service, and is now published under the GNU General Public License.

I've updated the examples from Java Network Programming. A few bugs have been fixed, and HTML and media files have been added for some of the applet examples. You can download the complete set from ftp://metalab.unc.edu/pub/multimedia/.languages/java/javafaq/javanetexamples.tar.gz or browse them at http://metalab.unc.edu/javafaq/javanetexamples/

Wednesday, April 2, 1997
JavaOne kicks off today. Industrial chemical warehouses in the Bay Area are reporting a run on dry ice as the vapor machines at Netscape, Sun, Microsoft, and many smaller companines kick into high gear. Here at Cafe Au Lait I promise to only report on what's actually available, and to scrupulously avoid regurgitating vaporous press releases. Word to the trade press: just because Microsoft (or Sun, or Netscape) writes a press release doesn't mean there's actual news to be reported.

Michael Winikoff has releasedversion 1.2 of W-Prolog, his Prolog interpreter written in Java.

Javazine's published a review of the Java Developer's Resource. I disagree with the reviewer's definition of beginner (and I think they're a lot of Cobol, Fortran, and Basic programmers in the world who agree with me that you're not necessarily a beginner just because you don't know C or object oriented terminology), but overall it's a positive review.

The notes for Week 9 of my Java course are now available. These cover menus, popup menus, images, image filters, and audio.

I've updated the source code and examples from Chapter 15 of Java Network Programming, The Java Server API and Servlets. The examples are now compatible with the Java Web Server beta, as opposed to the alpha Jeeves discussed in the book. They have not yet been extensively tested so let me know if you find any problems.

Tuesday, April 1, 1997
According to JavaWorld Sun is preparing a number of optimizations to Java that will bring it closer to the performance of native, compiled code. That's not surprising. However what is surprising is that Sun plans to hold back some of these technologies "until engineers are further along in the patent process."

If JavaWorld's report is accurate (and it may not be), this indicates that Sun is continuing to close up Java. As Java has developed and become more widespread, Sun has been progressively less open with the technology. For example, they've yet to widely release the source code for Java 1.1. If they're intending to patent key elements of the runtime, that only locks up Java further. It's becoming more and more obvious that Sun's so-called commitment to open systems only applies to other people's technology. They'll use free software developed elsewhere, but they won't actually make their own products open. This is exactly the attitude that killed OpenWindows. It would be a shame to see it destroy Java too.

In unrelated news, Apple has released the Macintosh Runtime for Java (MRJ) 1.0.1. This release needs 16 megabytes of RAM and a 68030, 68040, or PowerPC processor. MRJ 1.0.1 fully supports Java 1.0.2 but not Java 1.1. Java 1.1 probably won't be supported until MRJ 2.0 currently due in alpha around the end of May.

Monday, March 31, 1997
Sun's released a draft of the Java Management API specification for public comment. The Java Management API provides user interface guidelines and Java classes for developing system, network, and service management applications.

Sunday, March 30, 1997
Version 0.6 of Jacc, the Java compiler compiler, has been released. It now contains grammars for Java 1.0.2, Java 1.1, and IDL.

Saturday, March 29, 1997
The slides from Ken Arnold's talk on Distributed Computing in Java (serialization, RMI, and JavaSpaces) are now available from http://chatsubo.javasoft.com/arnold/JSE_Overview/.

Friday, March 28, 1997
On the WWWAC mailing list, David Allen Forrester reported on an interesting experiment. He placed a small, do-nothing Java applet on the home page of one of his sites for a week, then took the ratio of requests for the applet to requests for the page. According to Forrester:

46% of vistors could not or would not request the applet. This is interesting, because only 30% of the vistors are on 16-bit machines. Ergo -- another 16% either have java turned off or are behind a proxy server/firewall that doesn't allow java requests.

Thursday, March 27, 1997
JDK 1.1.1 for Windows 95, Windows NT, and Solaris (Sparc and X86) is now available.

Wednesday, March 26, 1997
I've added weeks 6 through 8 and parts of week 9 to the notes for my Introduction to Java Programming course. These are notable for covering the 1.1 AWT including components, the new event model, containers, layout managers, menus, popup menus, and more.

Tuesday, March 25, 1997
Symantec's released Cafe 1.5 for the Mac.

Monday, March 24, 1997
IavaDraw 3.0, a shareware IDE for Windows 95 and NT has been released. It's worth checking out if you're on those platforms.

Sunday, March 23, 1997
The individual source code files for the examples in Java Network Programming are now available here. I've corrected some mistakes in examples 10.7, 10.12, and 15.2. You can also download the complete set in gzip or zip format via anonymous ftp, though this doesn't yet include the latest updates. In related news, O'Reilly's posted the first chapter of Java Network Programming, Why Networked Java, on their web site.

Saturday, March 22, 1997
CC Mode, an Emacs mode for editing C, C++, Objective-C, and Java source code is now available from ftp://ftp.python.org/pub/emacs/index.html.

Friday, March 21, 1997
I've update the Java book list. There are now over 200 Java books either currently in print or in development! This page is getting a little out of hand. In a way this reflects the Java book market. In the near future I'll be reorganizing it categorically and splitting it across multiple pages to make it easier to find the books you need.

Thursday, March 20, 1997
Did you ever wonder what your web browser is saying to your web server? Carl Davis's HTTPExplorer program will show you. I described techniques like these in Java Network Programming but his applets actually make using them relatively easy.

Wednesday, March 19, 1997
The FAQ list has been updated and reorganized. New questions include:

  • 4.9: How do I pass a function pointer to a method?
  • 7.5: How do I change the thickness of a line?
  • 7.6: What fonts does Java support?
  • 9.4: How can I use ICMP in Java?
  • 10.10: Can't make static reference to method type myMethod in class myClass
  • 10.11: Why do I have trouble when using == to compare Strings?
  • 11.2: How do I generate a random integer between a and b?

Tuesday, March 18, 1997
Sean Russell's been releasing new versions of jDB, database written in pure Java, almost daily. I haven't reported them all here, but I thought I'd mention that jDB 3.19 is now available.

Cafe Au Lait is now mirrored in Switzerland at http://sunsite.cnlab-switch.ch/javafaq/. Austrian and Latvian mirrors should be coming online soon.

There's an interesting list of Java bugs at http://www2.vo.lu/homepages/gmid/java.htm. This lists issues with javac and the language specification which do not appear in JavaSoft's Known Bugs list.

Monday, March 17, 1997
There's an interesting list of Java bugs at http://www2.vo.lu/homepages/gmid/java.htm. This lists issues with javac and the language specification which do not appear in JavaSoft's Known Bugs list.

Sunday, March 16, 1997
Kimbereley Burchett's published a Class File Reader package that makes it easy to read and write java .class files. Currently the byte codes are not disassembled. The ClassReader class understands the java class file format. It parses class files and passes all the information it learns to a ClassBuilder. The ClassBuilder is responsible for figuring out what to do with the information. A default ClassBuilder which just keeps track of the constant pool entries is provided.

Saturday, March 15, 1997
Jio 1.2 is now available for download. Changes over 1.1 include:

  • increased template functionality;
  • lots more documentation.

Jio is a dynamic web content generation system written as a Java servlet. It uses JDBC to connect to a relational database (mSQL) which contains the data. All generated pages are created using templates. Source code is included and it is free for commercial use.

Friday, March 14, 1997
The Beans Development Kit 1.0 and the JavaBeans to ActiveX Bridge Beta 2 are now available from http://splash.javasoft.com/beans/.

Thursday, March 13, 1997
Symantec has published a preview (i.e. buggy, early alpha) of Symantec Cafe 1.5 for Windows 95/NT with Java 1.1 support. This requires that you have Cafe 1.5 installed on your system. The update is available from ftp://itools.symantec.com/pub/windows/cafe/jdk11.

Wednesday, March 12, 1997
Marimba has released alpha-4 of Bongo, their visual interface builder, for the Power Macintosh.

In related news, Apple's announced that they expect to have MRJ 1.0.1 for both PowerPC and 68K Macs available on March 17. This release is supposed to include JBindery, a utility for packaging together all the classes needed for a program into one double-clickable file.

Tuesday, March 11, 1997
Javasoft's released the first public draft of the Java Naming and Directory Interface (JNDI) specification for public comment through April 10.

Monday, March 10, 1997
Thornton Prime has written a FAQ list about JDBC. You can read and comment on the initial draft at http://www.yoyoweb.com/Javanese/JDBC/FAQ.html

Sunday, March 9, 1997
The Human Interface Group at JavaSoft is looking for individuals to participate in a usability study of Java Web Server Software on March 17, 18, and 19, 1997 at JavaSoft, Inc., in Cupertino, CA. The study will take about one and a half hours and scheduling is flexible. They are looking for people who are familiar with web servers and are experienced with CGI, Java, or installing other web servers. NT and Mac backgrounds are also useful. You must be willing to sign a non-disclosure agreement and be videotaped.

To participate, contact: Erika Kindlund
Usability Engineer
JavaSoft, Inc.
(408)343-1904 erika.kindlund@Eng.sun.com

Saturday, March 8, 1997
Sean Russell has released jDB 3.13, his database written in pure Java. There are various changes and improvements to the API as well numerous bug fixes.

Friday, March 7, 1996
Roaster Technologies reports that due to an apparent attack, the subscriber lists for the java-mac, java-win, and roaster-announce mailing lists were lost. If you're subscribed to any of these lists, you'll have to resubscribe. Send email to majordomo@natural.com from the account you want to subscribe from with the words "subscribe java-mac" or "subscribe java-win" in the body of your message.

In related news, the mailing lists page here at Cafe Au Lait has been updated with several new lists.

Thursday, March 6, 1996
The Java 2D specification, version 0.95 is available for review through the end of the month at http://www.javasoft.com/products/java-media/2d/index.html. The Java 2D API is a set of classes for advanced 2D graphics and imaging, encompassing line art, text, and images in a single comprehensive model. The API provides extensive support for image compositing and alpha channel images, a set of classes to provide accurate color space definition and conversion, and a rich set of display-oriented imaging operators. These classes will be provided as additions to the java.awt and java.awt.image packages.

Wednesday, March 5, 1997
The Java Web Server and Servlet Development Kit, formerly known as Jeeves, have gone into beta. Now I'll guess I'll have to start revising Java Network Programming. At least it was up-to-date for a week. :-)

Tuesday, March 4, 1997
Today at 3:00 P.M. EST, Noon PST, Marc Tremblay, Sun Microsystems Chief Architect for UltraJava, will conduct a live, online chat session to discuss the Java Chip technology. To particpate point your Java-enabled browser at http://www.sun.com/developers/chat.html.

Monday, March 3, 1997
Guavac 0.2.6, a GPL'd Java compiler written in C, is now available from ftp://summit.stanford.edu/pub/guavac/. This release fixes a large number of bugs and adds several installation improvements (thanks to a few of you who submitted configuration patches). Both source and Linux binary distributions are available. This release does not yet support Java 1.1.

Sunday, March 2, 1997
Tony Hursh has written an applet called Wav2Au that converts Windows .wav files to the .au format supported by Java. It can read 8 or 16 bit PCM files, mono or stereo, at most sampling rates, and convert them into 8 bit, mono, mu-law encoded files with a sampling rate of 8012 Hz, in other words the format supported by Java. Full source code is included.

Saturday, March 1, 1997
IBM has released the JDK 1.1 FCS Beta for AIX. You can download it from ftp://ncc.hursley.ibm.com/pub/java/aix/11/.

Friday, February 28, 1997
Per Bothner of Cygnus Support has released Kawa 1.2, a Scheme compiler written in Java that outputs Java byte codes.

Thursday, February 27, 1997
JavaSci has been upgraded to version 0.6. Most importantly this release now includes source code, examples, and basic documentation. There's also a new package implementing some discrete groups plus Dirac Bra and Ket classes in the physics package.

Wednesday, February 26, 1997
Beta 1 of the JavaBeans to ActiveX Bridge is now available for downloading from http://splash.javasoft.com/beans/bridge/index.html. The ActiveX Bridge allows OLE/COM/ActiveX containers like Word and Visual Basic to embed and use JavaBeans components in the same way they embed and use platform-dependent OLE/COM/ActiveX components.

Tuesday, February 25, 1997
Netscape has released Communicator 4.0b2 for Windows 95, Windows NT, Windows 3.1, SunOS, Solaris Sparc, Irix 5 and 6, HP/UX, and the PowerMac. You can download it from ftp://ftp10.netscape.com/pub/communicator/4.0/4.0b2/. or any of the other Netscape ftp sites. There's also a pro version for Windows and the PowerMac.

Monday, February 24, 1997
John Small's released JIDE 1.02.2, an IDE for Java written in pure Java 1.0.2. It runs on Solaris and Win32. It probably runs on other platforms that support long filenames. It does not run on the Mac because a few of the classes' names are too long, but that could probably be fixed with a good zip file.

Sunday, February 23, 1997
JRad Technologies has released the first alpha of jrad.util, a free collection of classes for the Java 1.0.2 they wrote in order to achieve a 100% Java interface that was pixel-equivalent to Windows 95/NT 4.0. The package currently includes ToolBar, ImageButton, ToolTip, FolderTab and GroupBox classes.

Saturday, February 22, 1997
Sean Russell's released jDB 3.6. This version fixes some pretty serious bugs.

Friday, February 21, 1997
Jacc 0.6, the Java compiler compiler, is now available from http://www.suntest.com/JavaCC/. Significant additions in this release include lexical actions, lexical states, case insensitive lexical analysis, better tracing for debugging, semantic lookahead during parsing, handling non-tokens such as comments during parsing, and tree building and document generation support. This release bundles several examples including Java 1.0.2 and Java 1.1 grammars, a couple of HTML grammars, and a CORBA 2.0 grammar for IDL.

Thursday, February 20, 1997
Andreas Krall has released CACAO 0.1, a free 64 bit JIT compiler for JAVA for Alpha systems running Linux or Digital Unix. CACAO executes Java programs up to 25 times faster than the JDK interpreter and between 1.5 to 2 times slower than an equivalent C program compiled with maximal optimization. However, it can only be used with the JDK 1.0.2. CACAO version 0.1 only supports java.lang, java.io and java.util. Class archives in zip format are not supported. CACAO is distributed free of charge.

Wednesday, February 19, 1997
Sun's released the JDK 1.1 for Solaris/Sparc and Win32. They also released the JDK 1.1b4 for Sparc/X86. You can download all three from their ftp site at ftp://ftp.javasoft.com/pub/jdk1.1/

Tuesday, February 18, 1997
Netscape's released beta 1 of the IFC Constructor, an interface designer written in Java that is based on their Internet Foundation Classes. (This is not an IDE.) It's supposed to run on any platform that supports Java 1.0.2.

Monday, February 17, 1997
A set of patches for JacORB, the free Java ORB, is now available from the JacORB web site at http://www.inf.fu-berlin.de/~brose/jacorb/. It includes a number of bugfixes and improvements. These include an improved exception handling, an important bugfix in the transport layer and a few other enhancements.

Sunday, February 16, 1997
Sean Russell's released version 3.3 of his Java database, jDB. This release fixes a bad networking bug and has a few other minor improvements.

Saturday, February 15, 1997
Symantec has skipped Cafe 1.0 on the Mac and jumped straight to 1.5 beta. It's available now from http://www.symantec.com/cafemac/cafemacb.html. This release includes a JIT, supports Java 1.0.2 (but not 1.1), and has many other bug fixes and performance enhancements. This release expires on March 14.

Interestingly, Symantec's announcement uses the standard boilerplate about "As with all pre-release software, note that Cafe 1.5 Beta is not suitable for day-to-day use. For production development, please continue using Cafe DR2.01 until this product is released." What's interesting is that by any reasonable definition of the term, Cafe DR2.01 is pre-release software that's alpha quality at best. By this standard nobody should ever have bought or used Cafe, and Symantec should not have sold it. But then, that's been common knowledge for some time.

Friday, February 14, 1997
IBM's Hursley Park Research Center has released beta 2 of their JDK 1.0 port for Windows 3.1.

Thursday, February 13, 1997
IBM's jres is like a very basic ResEdit for Java. Java resource classes are ordinary Java classes containing static data such as strings, images, sounds and menus. They provide a natural vehicle for international language support in Java, allowing application independent interchange of strings, sounds and images. The jres package includes a jresVisual editor and the jres Java class. IBM does appear to be duplicating some of Sun's own work. Java 1.1 includes some similar features through JAR archives and resource bundles. However Java 1.1 does not include a visual editor. I wouldn't be surprised to see the jres visual editor rewritten to use Sun's data formats instead.

Wednesday, February 12, 1997
IBM's released beta 0.7 of AppletAuthor, a visual GUI for creating standard animation style applets for Windows 95 and NT 4.0.

Tuesday, February 11, 1997
Apple has released the Macintosh Runtime for Java (MRJ) 1.0b4 for 68030 and 68040 Macs. They've also released the MRJ Software Development Kit 1.0b4 for running Java applications, including applet support in your Macintosh applications, and building stand-alone, double-clickable Mac applications. You can download both from http://applejava.apple.com/text/download.html.

Monday, February 10, 1997
Jeremy Allison of Cygnus Support has ported Eric Young's DES and TripleDES C code to Java. It is available for free for commercial and non-commercial use. Due to obnoxious U.S. Government Export restrictions on cryptographic code, you will have to go to http://www.sni.net/~mpj/usa/getcrypt.htm and register for a password. Once you have received the password via email, you can retrieve the file from http://www.sni.net/~mpj/na/.

February 9, 1997
Aart J. C. Bik and Dennis B. Gannon of the University of Indiana have been doing interesting work on restructuring Java programs to take advantage of multithreading. This sort of work could become very important as Java is rewritten to use native thread models on multiprocessor machines. You can find out more at http://www.extreme.indiana.edu/hpjava/.

February 8, 1997
Arthur Do's HTMLStreamTokenizer class is something I've needed for quite some time. It breaks a stream of text up into three kinds of tokens, HTML tags, HTML comments, and raw text. Then the HTMLTag class can be used to parse the tags themselves. Overall it's a cleaner, more elegant solution to a hard problem than anything I'd been able to develop. This is not the full HTML display component many people have asked for, but it is part of the solution. Indeed this part alone may be sufficient for many uses such as writing web spiders and applet viewers.

February 7, 1997
Paul Cunningham of Kinetoscope has some interesting comparisons of how well different virtual machines handle multiple threads.

Febuary 6, 1997
Sun's released a preliminary version of the Java Media Player API for public inspection and comment. When complete this API should substantially expand Java's multimedia capabilities.

Febuary 5, 1997
Microsoft's released a Java VM that runs inside Internet Explorer 3.0a for Windows 3.1 and Windows NT 3.5.1.

Febuary 4, 1997
Visix Software has released a beta of Vibe, a Java development environment written in Java that currently runs only on Windows and Solaris. I haven't checked it out yet, and I don't plan to. This beta program reminded me of what I hate about public beta programs. In exchange for providing personal information about yourself, enduring their buggy software, and providing them with hundreds of dollars worth of free consulting and testing, you might get a T-shirt or a free copy of Vibe 1.0. If Visix doesn't like you, you won't even get that. While this arrangement might be appealing to a few cash-strapped undergraduates, I can't imagine anyone whose time is worth something can actually benefit from this deal.

February 3, 1997
Sun's released version 0.89 of the unofficial, research project for JSDA, the Java Shared Data API, a multipoint data delivery service for use in s highly interactive, collaborative, multimedia applications. JSDA supports full-duplex, multipoint communication among an arbitrary number of users over a variety of networks. In other words, it provides the backend for applications like shared whiteboards, chat, and multiplayer games.

February 2, 1997
Gerald Brose of the Freie Universität Berlin has released JacORB 0.5, a free Java object request broker. JacORB is a partial implementation of CORBA which features an IDL compiler and stub generator, a static invocation interface (no daemons needed), multithreading, IIOP, the COSS name service. It does not yet support Corba Any, DII/DSI, or Repositories. JacORB is free, implemented entirely in Java, and ships with IDL and Java source for all CORBA/COSS interfaces plus examples, documentation and complete source code.

February 1, 1997
The Java Web Server, (a.k.a. Jeeves) Alpha 2+ is now available at http://www.javasoft.com/products/java-server/CurrentRelease/. This release fixes a few bugs and extends the expiration date to March 15, 1997.

January 31, 1997
SunTest has released Jacc (formerly known as Jack), the Java Compiler Compiler Version 0.6.-8. You can download it now from http://www.suntest.com/JBeta/. This version is compatible with the JDK 1.1, includes a tree building preprocessor, a document generator, semantic lookahead, lexical state and lexical actions, case insensitive lexical analysis, and more extensive debugging capabilities.

January 30, 1997
This semester I'm teaching a graduate level "Introduction to Java Programming" course at Polytechnic University in Brooklyn. I've begun putting the notes for that course online here at Cafe Au Lait. These may be a useful resource for anyone trying to learn Java, or who is preparing their own course. Right now I've got notes from the first five weeks online. The remaining weeks will be posted starting in early March.

January 29, 1997
IBM has released a JDK 1.1b2 for AIX.

January 28, 1997
Insignia Solutions Inc. has released a beta version of the Ntrigue Client for Java. This allows a Java computer to run Windows applications on a remote Windows NT server running the payware Ntrigue using the local monitor, keyboard, and mouse. The Ntrigue Client for Java beta can be downloaded from http://www.insignia.com/java/keokebeta.html.

January 27, 1997
Sun has published an experimental version of the 1.0.2 virtual machine for Solaris 2.6 (X86 or Sparc) that uses native, preemptive threads that can be split across multiple processors. The normal version uses non-native, cooperative threads. You can download it from http://www.sun.com/solaris/products/javavm/index.html. You will need Solaris 2.6 or the Solaris Internet Server Supplement to run this VM.

January 26, 1997
Sean Russell's released the Java database jDB 3.2. The main difference is that this release is compiled with JDK1.1. Some bugs are also fixed.

January 25, 1997
Metrowerks is shipping Code Warrior 11, about two weeks later than originally announced. It includes a JIT and release 1.0 of Constructor for Java. It's a nice addition to Code Warrior if you're already using Metrowerks C, C++, or Pascal tools, but the Java support alone is not yet worth the investment.

January 24, 1997
Apple's released the Macintosh Runtime for Java 1.0. This version runs only on PowerMacs running System 7.5 or later.

January 23, 1997
The trade show and book pages have been updated.

January 22, 1997
I've posted a minor update to the FAQ. Some problems with CLASSPATH were corrected.

January 21, 1997
Beta 3 of the Beans Development Kit is now available from http://splash.javasoft.com/beans/bdk_download.html. This release requires Java 1.1b3.

January 20, 1997
A new version of JavaSci is now available. The main improvement seems to be bug fixes for the complex inverse trig functions. There are also some new packages for linear algebra that don't yet work right.

January 19, 1997
I've split the old news into 1997 and 1996 sections so it should be a little easier to load.

January 18, 1997
Sun's released Java 1.1b3 for Win32 and Solaris. (X86 Solaris is included for the first time.) This release integrates JavaBeans support and fixes various bugs. As usual it's available from ftp://ftp.javasoft.com/pub/jdk1.1/

January 17, 1997
The books page has been updated.

January 16, 1997
There's now a preliminary FAQ for Jack at http://www.suntest.com/JBeta/faq/index.html. It's based on variaus questions and answers on the Jack mailing list over the last few months.

January 15, 1997
The Human Interface Group at JavaSoft is looking for individuals to participate in the a usability study of Java Web Server Software at some time between Tuesday, January 21 and January 23 in Cupertino, CA. The study is roughly 1 hour long, scheduled at your convenience. They need individuals who are are familiar with web servers and have CGI or Java experience. If you're interested in participating and are willing to sign an NDA, contact Erika Kindlund at (408) 343-1904 or erika.kindlund@Eng.sun.com

January 14, 1997
Microsoft has released Internet Explorer 3.0 for the Macintosh. Most notably it features the first Just-In-Time compiler (JIT) on the Mac platform.

January 13, 1997
Sun is sponsoring three one-day developer camps on JDBC, JavaBeans, and Java Security in a variety of cities for $229 each. See http://www.sun.com/developer/newcamp.html for details. So far Sun's training hasn't exactly received rave reviews (to say the least), but these camps do look interesting. I'd probably go myself if my hometown (New York) weren't conspicuous by its absence from the list of locations.

January 12, 1997
HotJava 1.1 prebeta-2 is now available for Sparc Solaris and Windows 95/NT. It uses the 1.1 JDK.

January 11, 1997
As usual, Macworld was full of vaporous announcements of products that haven't actually shipped. Most significant in this category was Apple's Macintosh Runtime for Java. Apple announced it had released this product and even referred people to their web site to download it; but once people arrived they were disappointed to learn that the marketeers were running ahead of the programmers. MRJ is in reality still in beta. Beta 2 is available to the public while beta 3 is in private testing.

Metrowerks claimed they had shipped Code Warrior Gold 11, but registered users don't yet have it so the claim is questionable. Code Warrior 10 took several months from the time Metrowerks said they were shipping it until it actually arrived in users' hands. Hopefully, Metrowerks will do better this time.

Natural Intelligence, which was expected to release Roaster 1.0 at the show, was uncharacteristically silent. Perhaps the forthcoming spinoff of Roaster from the rest of the company has diverted their attention. Or perhaps, they've decided to try an unusual strategy for this market and not finish the press releases until they finish the product. :-)

January 10, 1997
Symantec's released Visual Cafe for the Mac 1.0. It requires a PowerPC and a ridiculous 24 MB of RAM. Price is $200 for new users, and a little less (but still way more than it should be) for Cafe for the Mac purchasers. I haven't had a chance to try it out yet, so I don't know how reliable or buggy Visual Cafe 1.0 may be, but past experience with Symantec does not make me optimistic.

January 9, 1997
Natural Intelligence announced that it will spin off its Roaster Products Division into a new company called Roaster Technologies. At least on the surface this makes a lot of sense as Roaster never fit very well into Natural's traditional niche as a developer of custom database software. Business models and customer approaches that work for consulting companies rarely work for mass market software vendors.

January 8, 1997
A new version of the Jack parser generator is available at http://www.suntest.com/JBeta/. This release fixes a few bugs that were quickly uncovered in version 0.6.-9..

January 7, 1997
Sandip Chitale has released version 0.8 of his ClassExplorer application for exploring classes. It's an interesting example of some of the tricks you can play with java.lang.reflect. Java 1.1 is required.

January 6, 1997
The Jack parser generator version 0.6.-9 is available at http://www.suntest.com/JBeta/. Notice the minus sign. This is more recent than the last release, 0.6.-10. This release adds lexical states and lexical attributes and some performance improvements.

January 5, 1997
If you haven't yet seen Partbank, you owe it to yourself to check it out. It's a general index for component software including Java, ActiveX, OpenDoc and more. The Java section isn't as complete as Gamelan's, but it's still useful. What really amazed me though was the interface. This has got to be one of the cleanest, fastest, most intuitive instances of web design I have ever seen. If you design web sites, you owe it to yourself to check this out. I am very impressed.

January 4, 1997
Chris Phillips has put together an interesting site for Jeeves developers called theJSpot demonstrating links between Jeeves and mSQL. It's worth looking at as a proof of concept if nothing else.

January 3, 1997
Grandmaster Technologies has released CyberSite 1.3, a Java Internet Collaboration Engine that allows you to create multi-person, cross-platform applets. It's free for non-commercial use, and definitely worth checking out if you're working on this sort of thing.

January 2, 1997
Symantec has released Visual Cafe Pro 1.0 for Windows 95, NT 3.51, and NT 4.0. It includes several dozen Java components including predefined text fields, grids, lists, tabbed dialogs, sliders, tree lists, progress gauges, and tool bars. It also includes the current beta of Symantec's dbAnywhere JDBC connectivity package. Even if this product is fully functional (which would be a first for Symantec's Java team), Visual Cafe Pro is vastly overpriced at $499.95. Upgrades for Visual Cafe purchasers who paid to beta test Symantec's buggy Visual Cafe are $399.95. I can't imagine a clearer way for Symantec to demonstrate its complete disregard for its customers. With stunts like this, it's no wonder Symantec's development tools division has been caught in a death spiral for the last several years.

January 1, 1997
Bill la Forge, a research engineer with The Open Group, noticed that the JAR file defined in Java 1.1 is a great means for moving collections of objects and the classes they depend on but that it's missing a means of moving the updated contents of the jar from one program to another. Therefore he wrote a JarClassLoader that is a serializable object which holds the contents of a jar file. A serialized instance of the JarClassLoader can be freely passed between programs, allowing for n-tier applications. This is just a thin layer over Sun's JDK 1.1, and it does not address security issues. Source is provided, and usage is free. See http://www.osf.org/~laforge/java/jar/index.html.

You can also read the news from 1996 if you like.


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

Copyright 1995-1997 Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified December 31, 1997