O'Reilly announced Safari today, a new online subscription service for their books. Pricing starts at $9.95 a month for up to five books. However, the Java pickings are a little slim, and so far none of the books I've written and none of the books I want to read are available. :-(
WebPager is a standalone Java application for Windows that allows local and remote "paging" (browser control) for guided or unattended live URL-based slide shows. Both a light-weight server and a multi-threaded client are included. The app. is provided as a signed .exe (MS jexegen generated) file for MS JVM (IE4+) or a signed JAR java application for J2SE1.2+.
I'm pleased to announce the official release of XML in a Nutshell by W. Scott Means and Elliotte Rusty Harold (i.e. me). This is a book a lot of developers have wanted for a long time now. Over a year before the contract was signed, readers were showing up at the O'Reilly booth at Internet World asking when XML in a Nutshell was going to be released. There were a few sputters and starts along the way, and as with all such books multiple deadlines were missed; but I'm pleased to announce that XML in a Nutshell is now available at bookstores everywhere. I think you'll like it.
One of my favorite comments about The XML Bible came from a reader in Norwich England who wrote, "It would seem to me that if you asked the author to write 10,000 words about the colour blue, he would be able to do it without breaking into a sweat." You know, I probably could write 10,000 words about blue, but I can write short books too, and XML in a Nutshell is the book that proves it. I'd estimate that it covers over twice the material that the XML Bible does in less than half the space and at just about half the price. In fact, XML in a Nutshell even weighs less than half what the XML Bible weighs, so not only will it not break your budget; it won't break your back either. (Whether I can write this concisely without the able aid of my coauthor W. Scott Means is still an open question.) I still like the XML Bible. I think it's a good book, but even I have to admit that I think twice before packing it in my carry-on luggage.
XML in a Nutshell, is a complete introduction to the state of the art in XML as of early 2001 including well-formedness, DTDs, namespaces, XLinks, XPointers, XPath, XHTML, XSLT, XSL-FO, SAX2, DOM2, Unicode, and more. Very few XML books even attempt to cover this much material, and I guarantee you that none of them do it in this few pages. There is simply no quicker way to learn everything you need to know about XML than by reading this book. It is the most concentrated, cost-effective way to educate yourself about XML.
For those readers who've already learned everything you need to know about XML, I know of no better reference to remind you of the things you've forgotten. Part IV contains detailed references for XML, XSLT, SAX2, DOM2, XPath, and Unicode; all carefully designed to facilitate fast look-up when you just can't quite remember the name of that XSLT element or the exact signature of that SAX method. Before Scott and I wrote this book, I wasted way too much time searching the specifications of XML, XSLT, DOM and more for little details like the proper namespace for SVG. Now I just flip open XML in a Nutshell, and the answers I need are right there. We wrote the reference work I always wanted to have.
Now for the bad news: bookstores have only preordered 17,000 of these. While that sounds like a lot, more than 20,000 people a day read Cafe con Leche and about 40,000 read Cafe au Lait, which means bookstores are going to be caught short, and probably more. Amazon, in particular, sold out their initial allotment on preorders alone and is now listing it on "4-6 weeks availability". But don't worry. O'Reilly can get them more copies a lot faster than that. Most other bookstores are listing it as 2-3 days availability. Still, if you know you want this book, don't wait. Order it now. It is now available very soon from any bookstore that carries computer books including:
If you need to special order it, the ISBN number is 0-596-00058-8. It's $29.95, published by O'Reilly, and written by Elliotte Rusty Harold and W. Scott Means.
www.cafeaulait.org will be down a little later today to switch over to a new UPS. If all goes well, the interruption should be just a few minutes. The pages on metalab will be unaffected. Update, 12:08 EST: The switchover is complete. All pages should be functioning now.
Sun's posted the final draft of the Java2 Micro Edition (J2ME) Remote Method Invocation (RMI) Profile 1.0, JSR 66.
Sun's also posted the first public release of JSR-32, the JAIN SIP specification. If you don't work for a large phone company, you probably aren't interested in this.
Mike Clark's JDepend is an open source (BSD license) program that traverses a set of Java source file directories and generates design quality metrics for each Java package. The metrics are based on the work of Robert Martin and include:
Some of these seem a little suspicious to me. There's always a temptation to focus on what's easy to measure quantitatively rather than on what's important qualitatively, but very difficult to quantify. For instance, the claim is made that "The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package." I don't see why. I think extensibility has more to do with the proper design of each indiviodual class in a package rather than the sheer number of classes in the package. However, some of the metrics seem more plausible than this, and the overall idea looks interesting.
The winning entries in the 15th International Obfuscated C Code Contest have been posted. Nothing else reminds me quite so much of why I like Java. :-)
Sun's posted the second public beta of the Java 3D API 1.2.1 on the Java Developer Connection (registration required). Mostly this is a bug fix release, but there are a few new and revised sample programs and utilities, including PrintCanvas3D, ViewPlatformBehavior and OrbitBehavior.
Jason Hunter's updated his com.oreilly.servlet utility package with a few new features and bug fixes. There shoudl also be an updated second edition of his popular Java Servlet Programming book in the near future as well.
Sun's posted version 1.0a of the MIDP/#finalspec">Mobile Information Device Profile (MIDP) Specification. MIDP is a set of Java APIs which, together with the Connected Limited Device Configuration (CLDC), provides a complete Java 2 Micro Edition (J2ME) application runtime environment targeted at devices like cell phones and two-way pagers.
It's over. Sun and Microsoft have agreed to settle their long-standing
suit over Java. Microsoft will pay Sun $20 million. The original
licensing agreement, which was set to expire in two months anyway,
is nullified. In its place is a new agreement, which
allows Microsoft to distribute their current Java 1.1.4 virtual machine
(which is just as compatible or incompatible as it always was) as well as
previous version in all products with which it is currently bundled
as well as with future versions of these products for the next seven
years. Microsoft may not use Sun Java source code for any purpose except fixing bugs
and filling security holes--i.e. they can't develop their own Java 1.3, 1.2 or even Java 1.1.8 runtime
based on Sun's Java 1.1 source code. They have to start from scratch.
New versions of Microsoft's VM to fix bugs and fill security
holes must pass Sun's Java 1.1.4 compatibility tests, aside from a few
well-defined exceptions to allow
delegate and other preexisting Microsoft extensions.
However, there is now a permanent injunction against Microsoft using the
term "Java-compatible" (even if it's true).
IBM has posted the first public beta of their JDK 1.3 for Windows 2000 on Itanium, the next generation CPU from Intel.
Slava Pestov's released version 3.0.1 of the jEdit open source text editor written in Java. This is mainly a bug fix release.
Stephen Fitch pointed out that Bug 4304571 in the Bug Parade on the Java Developer Connection (registration required) is a closed Request for Enhancement asking that Sun "Add character properties for new characters in Unicode 3.0 standard". This is allegedly fixed in a non-public release, so maybe we'll see it in JDK 1.4 later this year. Unicode 3.1 is going to require much bigger changes however.
There's also a note, apparently from within JavaSoft, in Bug 4313773:
In fact, since JDK 1.1.7 we've been based on Unicode 2.1, and we're planning to upgrade to Unicode 3.0 in the Merlin release. It's probably not a good idea to burden the language specification with tracking these details. We should instead write something to the effect that Java tracks the Unicode standard and that in future the Unicode version for each Java version will be specified in the javadoc for the Character class (there is a bug 4247314 to that effect). Then, since older versions of the Character class had incorrect or no information on the subject, historical information might be given:JDK 1.0.x -> Unicode 1.1.5
JDK 1.1 to JDK 1.1.6 -> Unicode 2.0
JDK 1.1.7 and up, Java 2 SE 1.2.x and Java 2 SE 1.3.x -> Unicode 2.1
The Unicode Consortium has published the first public working draft of Unicode 3.1. The primary new feature of Unicode 3.1 are 44,946 new characters covering several historic scripts, several sets of symbols, and many additional CJK ideographs. For the first time, characters are encoded beyond the original 16-bit codespace or Basic Multilingual Plane (BMP or Plane 0) in code positions of U+10000 and higher. In particular, there are three new supplementary planes:
>P<to indicate a paragraph, you might just write
P. However, you'd use the P at U+E0070 instead of the P at 0x50. (Note: neither XML or HTML uses this. It's intended to be used for future standards.)
I'm not sure how relevant this is, since Java seems to still be stuck somewhere around Unicode 2.0. Would anyone with acccess to the JDK 1.4 beta care to spill the beans about whether we can expect more current Unicode support in Java 1.4?
ICEMail 3.0.4 has been released. ICEMail is a free email client written in Java. This release now bundles the the JavaMail 1.2 library from Sun, and fixes a few bugs.
Sun's posted a Java Specification Request (JSR) for a Java API for XML Registries 1.0 (JAXR). Acccording to the JSR abstract, "JAXR provides an API for a set of distributed Registry Services that enables business-to-business integration between business enterprises, using the protocols being defined by ebXML.org, Oasis, ISO 11179." The JSR further claims that, "JAXR may be viewed as analogous to Java Naming and Directory Interface (JNDI) but designed specifically for internet sharing of XML-related business information." Review closes on Jabuary 22, 2001. (Monday)
OpenSymphony has released the first public beta of OSCache, a Java Server Pages (JSP) tag library and servlet listener that caches JSP content. This has two claimed benefits:
Caching Dynamic Content - Dynamic content must often be executed in some form each request, but sometimes that content doesn't change every request. Caching the whole page does not help because parts of the page change every request. OSCache solves this problem by providing a means to cache sections of JSP pages.
Error Tolerance - If one error occurs somewhere on your dynamic page, chances are the whole page will be returned as an error, even if 95% of the page executed correctly. OSCache solves this problem by allowing you to serve the cached content in the event of an error, and then reporting the error appropriately.
I'm frankly a little skeptical of the second one. I like to see my errors. Fixing errors automatically is a good thing. Hiding them is not. In my experience caching often causes more problems than it solves, and should at best be viewed as a stopgap measure until performance, bandwidth, and reliability reach the point where caching is no longer necessary. But in the meantime, this looks interesting.
The Mac OS 9 Software Update control panel is now showing availability of Mac OS Runtime for Java 2.2.4 which fixes the security hole discovered by Hiromitsu Takagi. It doesn't seem to be on Apple's Web site yet, though.
Macromedia is merging with Allaire. macroMedia makes Shockwave, Director, Flash, Freehand, and Dreamweaver. Allaire is responsible for ColdFusion and JRun. Macromedia will exchange 0.2 shares of its stock and $3 in cash for each Allaire share.
I was noodling around on java.sun.com today when I noticed that
You don't have permission to access /j2se/1.4/ on this server." error message; whereas most other random URLs such as http://www.javasoft.com/j2se/1.5/ produce an "Oops! We couldn't find your document" message. One wonders what 's hiding in /j2se/1.4/. Maybe we'll see something interesting from Sun soon.
The Sav Z API is a Java API for a new expressive language called Z. Z focuses on the development of mobile object-relational database applications. Z algebraic expressions reflect peculiarities of Z ORDBMS. The Sav Z API can be thought of as JDBC improved for synchronous connection with Z databases. I'm not quite sure what all this means, or how widespread it is, but there are more details on the web site.
We note with sadness the passing Friday of William Hewlett at 87. Hewlett was a true pioneer who, with partner David Packard, founded Hewlett-Packard in a garage in 1938. In so doing, they also unintentionally created today's Silicon Valley. He will be missed.
Inxar has announced ds2 0.4, a GPL'd build tool for Java development projects (similar to make or ant). It requires a Unix-like environment such as UNIX, Linux, or Cygwin.
Matt Plumtree wrote in about an oxymoronic open source, Java byte code obfuscator RetroGuard 1.1. RetroGuard is distributed under the LGPL.
Do you remember those old jokes about Microsoft acquiring the Federal Government? It may be one step closer to happening. News.com is reporting that Microsoft, Dell, and Unisys are collaborating on new computer-based voting systems. In all likelihood, Dell would provide the hardware, Microsoft the software, and Unisys the service and technicians. Let's hope a few intelligent, honorable politicians catch on to the dangers of this and pass laws requiring that ALL hardware and software used to register and count votes is open and auditable. This should include not just the voting software itself, but also the operating system the software runs on, the BIOS in the computer, the drivers for the video card, the firmware in the modem, and more.
TomcatX 1.0 is a "simple MacOS X GUI front-end for the Apache Tomcat servlet/JSP engine."
IBM's alphaWorks has released DirectDOM for Mozilla Milestone 18 (they're running a couple of releases behind the Mozilla project). DirectDOM allows Java developers to build GUIs by manipulating documents using the browser's Document Object Model (DOM). That is, the DOM replaces the AWT. Java 1.2.2 or later is required.
I've updated the User Groups Page to include more current URLs for a lot of groups. There are still a number of groups that moved without leaving a forwarding address whom I can't locate. If you notice that I've got the wrong address for your group, please let me know. Thanks.
IBM's alphaWorks has updated EJBMaker, a tool for EJB developers writing applications for the WebSphere application server environment. EJBMaker automatically generates source for CMP entity beans from a bean descriptor file written in XML, plus scripts used to create the required bean persistence tables in DB2. This release adds support for Java 1.2, and WebSphere 3.0 and 3.5. It also generates DB2 scripts for importing and exporting bean data are from databases and creating tables. It's available for AIX, Solaris, and Windows NT.
The Jakarta Project has posted
the first beta
of Tomcat 4.0, a servlet and Java Server Pages engine for Apache.
According to the release announcement,
"While the code for Tomcat 4.0 running in standalone mode is considered to
be near production quality, the web connector to run behind Apache is still
alpha quality code, with limited functionality. It is likely that there will be
interim updates of the web connector software in between beta releases of the
entire Tomcat 4.0 package."
Completely off-topic, but this is one of the most strikingly beautiful pictures I've seen in a long time.
The transition to www.cafeaulait.org seems to be moving reasonably smoothly, with only a few minor glitches. I'll probably try and move the news pages this weekend. I am a little worried about performance over the SDSL line. However, IBiblio was completely unreachable for several hours yesterday, so a T3 would not be a magic solution. Still, I need to look into a backup plan in the event that Verizon does something stupid to break the SDSL connection (and you can always count on Verizon doing something stupid.) I'll probably need to place a backup site on somebody else's server and a way to point DNS to it in the event of an outage at my site. On the other hand, this is going to be really hard to arrange cheaply once I'm running the site out of a database.
Version 2.4 of the Linux kernel is finally here. There are too many new features to list them all, but some of the most significant include;
Most non-bleeding-edge users will probably want to wait for 2.4.1 in a couple of weeks, or for it to get bundled with the major distributions.
I'm in the process of moving parts of this site to www.cafeaulait.org, a Cobalt Qube 3 sitting in my office and connected to the Net via SDSL. Over the next few days I'll be moving all the pages I eventually hope to translate to database driven pages instead of the static pages they are now. These include:
and probably a few others too. The rest of the site--books, course notes, slides, etc.--contains mostly static pages and will remain here on IBiblio for the time being. I've already moved the old news and quotes pages. I will be using Apache's mod_rewrite heavily to make sure that all old links and book marks still work, even after the pages have moved to the new server. (The Web would be a much better place if more webmasters used mod_rewrite when they reorganized or moved their sites. It is never acceptable for an existing URL to change.) Nonetheless, there will doubtless be some hiccups and glitches while the move progresses. If you notice anything strange, such as a missing quote of the day, a page that bounces back and forth between two URLs, or even a simple broken link, please let me know ASAP by sending email to firstname.lastname@example.org. Also, if anybody knows of a good free tool for searching an entire site for broken links, that information would be much appreciated. Thanks!
The Maintenance Review Draft Specification for JSR-000908 Java Media Framework 2.0 has been posted to the Java Community Process. The changes seemed focused on RTP. Comments are due by February 1, 2001.
Dr. Dobbs has posted an MP3 audiocast of my Java I/O session at SDExpo 2000 East last November. The notes are also online here at Cafe au Lait. I'll be reprising this talk at the International Java Conference in New York at the end of February.
I've updated the Java Conference list with all the shows I'm aware of in 2001. Doubtless I've missed a few, so please send in any others you may have heard of. Shows where I'll be speaking over the next year include:
I'm sure I'll add to this list as the year goes on. If you're running a show, and would like me to speak please drop me a line. I've posted numerous abstracts for talks I've given in the past on both XML and Java so you can get an idea of the sorts of things I like to talk about.
To answer the most frequently asked question, I'm not planning on attending JavaOne this year. Because I'm a freelancer, I try to limit my out-of-town trips to shows where the conference is willing to ones where the conference is willing pick up the tab. Since JavaOne doesn't pay its speakers, and since I'm not located in the Bay Area, I generally do not attend JavaOne.
Happy New Year! Happy New Millennium! May this one find you well. Today I thought I'd update you on my progress on last year's New Year's resolutions for Cafe au Lait/Cafe con Leche.