Tim O'Reilly has posted an open letter to Jeff Bezos asking Amazon to rethink their patent strategy. Everyone is encouraged to add their comments, and sign the letter.
For the record, ditching the Amazon links is on my to-do list for Cafe au Lait and Cafe con Leche. I haven't gotten around to it yet, because it's a fairly big project given the way my work flow is implemented. But I do promise to get it done in April if not sooner, assuming Amazon doesn't change their tune by then.
Sun's posted two new Java Specification Requests:
Horst Heistermann's posted the first public beta of
his free-beer HTMLWindow component for rendering HTML.
It does not seem to be as fully featured as the Swing JEditorPane
though.
The seventh beta of jEdit 2.3, the open source programmer's editor written in pure Java, is now available. This release fixes assorted bugs, especially those related to plug-ins.
Sun has posted version 1.0 of their Java API for XML Parsing developed in Sun's closed, proprietary community process. They have not yet released an actual implementation of this specification. The spec is only available in PostScript and PDF format.
I remain opposed to this API on principle, and I'm happy to note that there are realistic alternatives like SAX, DOM, and Xerces that have a lot more traction in actual use. Some of these form part of Sun's proprietary API. What Sun is really trying to do with this API is hijack control of APIs for XML parsing in Java from more open processes. Sun is simply incapable of accepting a process for Java standardization that they don't control.
This isn't just a theoretical problem either. For example, here's a direct quote from the spec:
This specification subsumes the XML Namespaces 1.0 Recommendation in its entirety. This specification reserves the XML namespace prefixes beginning with java and javax (case insensitive) for future usage by the Java Platform.
This is completely wrong! The whole point of namespaces is that nobody reserves prefixes. You only get to reserve URLs which are mapped to prefixes at run time. However, Sun gets apoplectic at the mere thought of anybody else potentially using the name "Java" so they have to try to grab every possible use of the word they can imagine, even if they don't have a clue what they're going to do with it.
Leaving aside for the moment the questions of whether or not Java APIs for XML should be developed in open, democratic forums or in Sun's closed, proprietary process, there's another question of whether or not now is the right time to standardize a Java API for XML. I think it's way too early on the adoption curve to write anything in stone that will only have to be deprecated next week. Right now I'm working hard on my presentation about Java and XML at SD2000 West in a few weeks. In the last week, there were three separate releases of software and changed specs that necessitated rewriting my notes! And I expect that to continue for the next few weeks and beyond. This is very bleeding edge stuff. Sun's Java API for XML relies on SAX1 which isn't really namespace aware. SAX2 changes lots of things and deprecates a lot that Sun's writing into their API. Their support of DOM1 instead of DOM2 has similar problems. If Sun wants to add SAX and DOM to the core Java APIs, then they should at least wait until those APIs are stable.
IBM's alphaWorks has released Jinsight 1.2, a program to trace the runtime behavior of a Java application on Windows or AIX. Version 1.2 adds support for tracing server-side applications such as servlets and dumping object population and references.
AlphaWorks has also released version 0.81 of their Log Package for Java. This release adds roll over of the log files, multiple log output targets, makes it easier to write new configuration file formats.
Sun's released the JavaMail API 1.1.3 and POP3 1.1.1 implementations. These fix assorted bugs and add support for SMTP Authentication and SMTP Delivery Status Notification.
IBM's alphaWorks has posted a new version of The Beanery Java bean creation wizard to fix assorted bugs.
Lutris has released the first alpha version of the Enhydra 3.0 open source application server. This release supports version 2.2 of the Java Servlet API Servlet 2.2 and Version 1.1 of Java Server Pages and adds load balancing, dynamic recompilation of XMLC, cookie-less sessions, better multiserver adminstration, better support for JBuilder , and many bug fixes.
Bruce Eckel has posted revision 7 of the second edition of Thinking in Java.
Microsoft has released three new builds of its Java virtual machine to plug the security hole that Dr. Hiromitu Takagi discovered.
Mark Hale's released version 0.858 of the
JSci class library
with
a new DoubleSparseMatrix
class
as well as assorted bug fixes and performance improvements.
Version 3.0 of the Unicode Specification is now available in printed book form. This is a major upgrade to Unicode that adds thousands of new characters in many languages. The most significant new character set supported is Ethiopic. You can order a copy from amazon.com or any other book store that carries computer books. Various information is available on the Unicode web site, but due to the poor support for Unicode in most existing software, this is still one case where a printed book is preferable to electronic documentation.
Borland's released a free beer version of their C++ compiler for Windows and associated command line tools. This does not include the C++ Builder IDE and it is not open source. I'm still using C++ Builder 3.0 (This is 5.5) for my occasional Windows C++ work, and I do find it to be a solid product. In fact one of the reasons I continue to rant and rave that there still aren't any good Java IDEs is because none of them come close to being as useful or as bug free as C++ Builder 3.0.
Romain Guy's released version 2.7 of his Jext programmer's editor. Version 2.7 adds multi document editing, shortcuts edition, and file filters. Jext is written in pure Java and released under the GPL.
The next release of Visual Basic will be a lot more object oriented, according to Microsoft PR. The language will add inheritance and polymorphism for the first time. It will also allow arguments to be passed to constructors. Other new, not specifically object oriented features include method and operator overloading, structured exceptions, multithreading, optional type safety, static class members, and Java-like initialization of variables where they're declared. If Microsoft had done this five years ago, Java probably wouldn't be where it is today.
I've reorganized the Cafe au Lait home page so that it is now possible to load it without getting the links bar on the right (which I don't update nearly frequently enough in any case). If you'd like to just see the news, and see it much more quickly, then point your browser at http://metalab.unc.edu/javafaq/shortindex.shtml. I'm also experimenting with some changes to the table structure to make it load faster and be easier to read.
For the moment, I'm going to leave the slower, table-based page as the default. However I will be checking the logs to see which one readers seem to prefer. Before I can make a decision to go completely over to the simpler page, I'll need to think about how I want to make some crucial pieces of the left hand column like the search box available on the simpler page. (Yes, I know the search box isn't working too well right now. Metalab's copy of InfoSeek has hit its maximum URL limit, and other solutions are being explored.) It's possible that all this experimenting will expose some bugs in my site's back end. If you notice a problem, please drop me a quick email. Thanks!
A new Volano Report has been posted detailing the latest VolanoMark server-side benchmark results across 18 virtual machines on a variety of X86 platforms. Blackdown's Linux JDK was the VM able to handle 4,000 active concurrent connections on the 256-megabyte test machine. Overall speed results were, in order from fastest to slowest,
Details of test configurations, which VMs crashed during the test run, and so forth are available in the report.
The O'Reilly Enterprise Java Conference,
at which I'll be speaking about Web Client Programming in Java,
is offering discount admissions to members of "the Java User Group".
Apparently they aren't too picky about which Java user group that is.
Tell them you're a member of the Cafe au Lait Java user group and use the code
"JUG20X" and you'll get $400 off the price of admission.
The conference is in Santa Clara California in the heart of Silicon Valley, and runs
from March 27-30.
If you register by February 25,
admission is $995 before the discount. Half-day tutorials, like my
Java Network Programming talk, are extra.
Sun's released the production (final) version of the Java Development Kit (JDK 1.2.2) for X86 Linux. A redistributable JRE is alaso available. No Just-In-Time Compiler (JIT) is included, but it should work with the Inprise JIT. Kernel 2.2.5 and glibc 2.1 or later are required.
FatBrain has posted my latest Straight Java column, ProgressBarInputStream. This column shows you how to add a simple progress monitor to time consuming operations like loading large files from the network.
The fifth beta of jEdit 2.3, the open source programmer's editor written in pure Java, is now available. This release fixes assorted bugs and adds some minor features. This is possibly the last release before 2.3 final.
Gerhard Paulus has released version 0.9.8 of his storedObjects open source object database. storedObjects is written in pure Java. This release adds an implementation of the TPC-W benchmark.
The Blackdown Project has posted release candidate 4 of of their port of the JDK 1.2.2 and Java Plug-in 1.2.2 to Linux. You can retrieve it from the usual list of mirror sites.
IBM's alphaWorks has released the first version of the Locale Converter, a Java program to convert locale information between Java, ICU, and POSIX formats
AlphaWorks has also released version 2.1.1 of TSpaces. TSpaces provides group communication services, database access, URL-based file transfer services, and event notification services. This release fixes assorted bugs.
Finally, alphaWorks has updated the Log Package for Java to version 0.8. This release changes the API change to use the category class directly for logging.
Bill la Forge has released Quick 1.0. Quick builds on SAX, providing a simple API for transforming XML documents into Java objects. Quick aims to minimize the coupling between XML markup languages and an application's classes, relying mostly on an XML binding schema to effect the transformation at run time. Quick is distributed under a modified BSD license.
Christopher Clemens Lee JavaNCSS is a GPL'd source measurement suite for Java. It can tell you how many "Non Commenting Source Statements" (NCSS) there are in your code as well as calculating the "Cyclomatic Complexity Number (McCabe metric)". The current version is 7.2.1.
Sun's posted an early version of the PersonalJava 1.2 specification for public review. Comments are due by February 14.
Sun's posted five new Java Specification Requests:
Borland (a.k.a Inprise, a.k.a Inprise/Borland) and Corel have announced plans to merge and focus on Linux products. It would be interesting to see these classic Windows-only companies survive only by abandoning Windows.
IBM's alphaWorks has released the first public version of OLEBridge, a software development kit for communicating with OLE/COM objects from Java, either locally or over a network with the use of RMI. This sounds useful for developers who need to play in the Windows space.
The fourth beta of jEdit 2.3, the open source programmer's editor written in pure Java, is now available. This release has many bug fixes and minor feature enhancements, but it is still a beta so caveat downloader.
Sun's released version 1.0 of the Java Authentication and Authorization Service (JAAS). JAAS provides a means to enforce access controls based on whose running the code. JAAS, but the authentication modules are only available for Windows and Solaris. JAAS requires Java 1.3.
The Fifteenth Annual Obfuscated C Contest is now under way. The contest runs till March 31. If nothing else, this should remind us why we love Java.
The third beta of jEdit 2.3 , the open source programmer's editor written in pure Java is now available. This release has many bug fixes and minor feature enhancements, but it is still a beta so caveat downloader.
Apple's released Macintosh Runtime for Java 2.2 and the Macintosh Runtime for Java 2.2 Software Development Kit. These simply offer improved support for Java 1.1. MacOS 8.1 or later is required. However you may be able to a custom install onto MacOS 7.6.1 or later if Appearance Manager 1.0.3 Text Encoding Convertor 1.4.2 are already installed.
Java 1.2 will not be supported on MacOS 9.x and earlier in the foreseeable future. Support for Java 1.2 in MacOS X is still an open question. Technically it's not as hard as supporting MacOS 9. However, Sun and Apple have not yet signed a license agreement, and there seem to still be some pretty serious points of contention they need to iron out.
I've received three reports confirming the
security hole
Dr. Hiromitu Takagi discovered in Microsoft's Java virtual machine
for Microsoft Internet Explorer version 4
and 5 (IE4, IE5) for Microsoft Windows 95/98/NT.
The problem seems to be with
ClassLoader.getSystemResourceAsStream()
and can expose files with known names to a hostile applet.
I still haven't reproduced the bug myself, and probably twice as many people who wrote
to me couldn't manifest it on their systems than could.
However, that's not unusual for this sort of bug. These things tend to be highly
dependent on very minor differences between systems. In any case, this is a pretty major bug
and I recommend you turn off Java in Internet Explorer or replace it with the Java Plug-in
until it's fixed.
Netscape Navigator and HotJava are not affected.
Dr. Hiromitu Takagi claims to have found a new
security hole
in Microsoft's Java virtual machine
for Microsoft Internet Explorer version 4
and 5 (IE4, IE5) for Microsoft Windows 95/98/NT.
He alleges that a problem with
ClassLoader.getSystemResourceAsStream()
can expose files with known names to a hostile applet.
However, the demonstration applet failed
to actually expose any files when I tested it,
throwing a NullPointerException
instead.
I'd be curious to hear from anyone who can confirm or deny this report.