Stephen Drye emailed me that Swing 1.1.1 does have at least one new feature: "HTML and multiline support in _any_ text, including JButtons and JLabels. How to use it is described in CHANGES.TXT. It basically involves using a String which begins with <html> and ends with </html>. This is _very_ handy."
Sun's posted the first early access release (probably alpha quality) of the Java Servlet Development Kit 2.1 on the Java Developer Connection (registration required). Java 1.1 or 1.2 is required. New features include the ability to serve files and act as a stand alone server.
Sun's posted the first beta of Swing 1.1.1 on the Java Developer Connection (registration required). This is a bug fix release with no new features.
The SVK features the IBM Access Engine, a new technology that exploits the accessibility features of a Java application. Launched in the background, the Access Engine communicates directly with accessible components in the Java application. Program files, called Perks, tell the Access Engine what to do when specific events occur, such as focus changes, selection, or receiving input from an input device. The Access Engine supports stacking of Perks so that the user interface can be expanded or customized for a particular application. Perks, written in Java, communicate with the Access Engine through toolkit methods. Currently, the Access Engine supports screen reading functions to provide accessibility for blind users. In the future, it can be expanded to provide support for other types of assistive technology.
The SVK is an implementation, using the Access Engine, that automatically speaks your accessible Java application. The SVK is designed to motivate software developers to create accessible Java applications. It lets you quickly add an interface that speaks, which provides blind users access to your software. It also provides a tool to test your application for accessibility. The easiest way to build an accessible Java application is to use Swing 1.1 and follow IBM's guidelines for making Java applications accessible. See http://www.austin.ibm.com/sns/accessjava.html
Perks included with the SVK tell the Access Engine how to speak a Java application as the user navigates through the application components. The default Perk receives input from a standard keyboard.
The SVK also includes a Perk that responds to input from IBM's Screen Reader Keypad, if detected. This Perk defines keypad commands for blind accessibility features such as, reading text, searching for text, and reading font attributes anywhere in the visible portion of your Java application.
To further customize the audio interface for an application, you can modify the existing SVK Perks or create your own custom Perk, and dynamically add it to the existing user interface.
Sun's posted about twenty different specifications for various parts of JINI in postscript and PDF format.
Microsoft has backed away from its recent temp contract that tried to steal anything that its temporary employees might win in court. (Can you believe that both Bill Gates' personal fortune and Microsoft's stock price have more than doubled in the last year, and they're still trying to screw the people who helped them reach those heights out of health benefits? Can you say, "Scrooge"? Any artist out there want to do a graphic of Bill Gates as Ebenezer? What's really scary is that Microsoft, like its equally nasty partner Intel, keeps showing up on lists of America's best companies to work for. If Microsoft is the best, I can't imagine what's the worst. Things must be really bad out in Dilbert-land. It's days like this that I'm really grateful to be self-employed.)
MacJikes is a $15 shareware port of the IBM's quasi-open-source Jikes Java compiler to the Mac with a command line interface. Source code is not included.
Java 1.2 compatible versions of some former ORO software (OROMatcher 1.1/PerlTools 1.2/NetComponents 1.3.8) are now available. These are free for all uses.
More news from the Mozilla front: The Java source code for Grendel, the Mail/News reader from the old Javagator project, has recently been adopted and is being brought up to date. It's further along then Mozilla's companion mail-news client right now.
The project is just starting to get interesting. On x86 machines, more than 90% of the Java Compatibility Kit (JCK) instruction tests now pass and we are able to run javac, the Java compiler that is itself written in Java.
Support for the java.lang and java.lang.reflect packages is substantial, but far from complete. Basic support is available for java.io. Virtually all other classes, e.g. AWT, do not work at all because they require integration with the VM's native code. (When EF was a commercial product, we were relying on being able to use Sun's JDK1.2 classes and native code to implement virtually all high-level library functionality.) We will work with one of the groups working on free Java class libraries, such as the Classpath project, to add Java standard class libraries. Late-breaking news: Sun's new Java licensing scheme might allow the use of the JDK 1.2 libraries with ElectricalFire. Stay tuned for further updates.
Instantiations arose, in part, out of the frustrations of several key technical players in the old ParcPlace/Digitalk (now ObjectShare) with their management. Allen had been working for years on a PP/DT project called "firewall" that sought produce a Smalltalk that achieves parity with, or exceeds compiled C++ execution speeds. When PP/DT decided to drop the project (which I had heard was within days of release) and deep-six so very much of Allen's work, he decided to seek opportunities elsewhere.
I see the acquisition as a good thing. No one knows how to speed up dynamically-dispatched OO languages, like Smalltalk and Java, as well as Allen and his crew. I have been disappointed that they decided not to sell their compiler directly, though I understand and sympathize with their desire to work with, and not against, the big guys. I just hope that their technology doesn't end up as shelfware. Instantiations has done little to communicate their plans in any effective or inspiring way. They need some good marketeers to make their business model work - someone who can convince the IBMs, Inprises, and Microsofts that their compiler really is worth the big bucks that I suspect they have been seeking.
Dr. Wirfs-Brock published an interesting article about static compilation of Java in the January 1999 issue of the Java Report. Bottom line: polymorphism/dynamic method dispatch really slows Java down. Runtime compilation doesn't help either.
I got yet another chain mail spam petition in my inbox this morning. You know how these things go, "If you are the 50th, 100th, 150th signature, please e-mail the petition to the NATIONAL ASSOCIATION FOR GOOD THINGS". As usual there's no expiration date, no Web address, and no way to add anything more than a name.
Even assuming I agree with the sentiment, these petitions generally just die in my inbox because I don't want to spam my friends. Furthermore, a name alone is not enough information to provide in a petition. A snail mail address is also a good idea, especially if the recipient is a politician.
It seems to me to make a lot more sense to put the petition on a Web site and allow people to sign it there or, better yet, send email or snail mails from the site rather than simply signing a petition. Of course that requires actual work from the Internet novices organizing the petition drive as opposed to sending pointless chain mail spam.
Sun has released the PersonalJava emulation environment for testing your applets and applications run in the PerlJava environment (which doesn't have all the APIs of 100% pure Java) a standard Windows or Solaris computer.
Instantiations Inc. (Has anybody ever heard of these people?) is buying and assuming development of Supercede's native Windows compiler for Java. Supercede will leave the Java development tools business.
The DES-III challenge was met in slightly less than 24 hours (23 hours and 15 minutes to be precise) so the full US$10,000 prize will be awarded. Once again, John Gilmore's Deep Crack found the winning key. However, the faster breaking than DES-II appears to mostly be due to luck rather than any technical advances. The winning key was found after only 22.2% of the key space had been searched.
According to CNET News.com, Internet auctioneer Onsale will start selling personal computers and accessories at the "same wholesale price it pays for them...Onsale said it aims to generate a small operating margin from advertising on its Web site, fees for service contracts and leases, and a nominal handling fee for each order". (emphasis mine). I've always known that handling fees in "shipping and handling" were simply scams to allow unscrupulous companies to charge more than the advertised price, but is this the first time I've seen it stated so bluntly.
Sun's posted an early access release of version 2.1 of the the JavaOS for Business thin client operating system on the Java Developer Connection (which has been trouble responding for the last day or more). Version 2.1 enhances memory management, stability, performance, serviceability, and National Language Support. This evaluation release includes binary code, publications, help files, and tool kits.
IBM's alphaWorks has released the first alpha of a JDK 1.2 port to AIX.
Alphaworks has also updated JAX , a Java application packaging tool that reduces the distribution size of a Java application stripping out unused members of .class files and zip compression.
Sun's posted the third early access release of the Java Advanced Imaging API specification. Solaris and Win32 reference implementations are available on the Java Developer Connection (registration required). JDK 1.2 is required for this release.
Visual Basic designers have chosen to pile more and more doodads on a weak foundation, knowing that doodads, not foundations, sell boxes. Perhaps they've made the right choice, but there's a price to be paid. They exchange the respect of their peers for financial success. Unfortunately, a committee can't choose self-respect over profits. The heart of the problem is that there's no one in charge. No one person designs the language. There's no vision because there is no visionary.
Sometimes it's easier to give users what they ask for than to figure out what they need. I appreciate the problem, but I don't need a language designed by a focus group.I must admit that Java 1.2 strikes me as relatively visionless with a hell of a lot of doodads.
Kudos to U.S. District Judge John Coughenour for slamming Microsoft's latest efforts to strip its employees of their legal rights by forcing them to sign a contract waiving damages in an ongoing suit over permatemps. The hearing lasted only ten minutes, just long enough for Coughenour to determine that Microsofts' lawyers were behind these illegal and unethical shenanigans. According to Coughenour, "I thought maybe I might hear that this was done by somebody without the advice of counsel and upon reflection of counsel it was realized that it might be charitably described as ill-advised...I thought I might hear that, even if counsel was involved, that upon reflection and with 20-20 hindsight, some might perceive this as being outrageously arrogant." He then suggested that the Microsoft lawyers "suggest to their client that they do the right thing."
In other Microsoft legal news, Microsoft has appealed the preliminary injunction ordering it to modify Windows 98 and other products to conform with Sun's version of Java.
IBM's alphaWorks has released a suite of JavaBeans
for working with XML including
The suite provides different types of
views that help the user to get detailed information about the XML document.
I've made some minor corrections to my class notes for Week 2, Procedural Java, and Week 12, Network Programming, of my Introduction to Java course.
Neil Taylor has posted a beta (1.0b2) of Jake, a free GUI interface for the javac compiler for the Mac.
Smith Resources has released JaDE 2.0, a $20 shareware, cross-platform IDE for Java that supports Java 1.2. Bundled plugins include: javac, rmic, mpedit, javapp, MassMover, JarIt, NativeEdit, NativeAppletViewer, and JaDEScript. An SDK is provided so that specialized compilers or other tools can be added by writing new plugins.
Version 1.9 of InstantDB is now available.
The major addition in this release is
ALTER TABLE support.
InstantDB is a relational database written in Java
free for non-commercial use.
Version 0.825 of Mark Hale's JSci
adds some additional graph classes, notably
LineGraph3D. All graph classes are now also available in both AWT
and Swing flavors. Also new is
JSci.io.MathMLDocument class that
exports JSci objects to MathML.
The latest twist in Microsoft's ongoing effort to screw over its temporary employees is forcing them to sign a contract promising to forgo any damages they may win in a class action suit against Microsoft. One can only hope the judge will overturn this blatant effort to make an end run around U.S. employment law. However, whether the judge does so or not, I really have to wonder why any highly valuable technical employee would put up with the crap Microsoft shovels down its temps throats. Surely there are other employers in the Seattle area? Microsoft claims nooen's refused to sign the new contract, but that sounds very suspicious to me.
Version 1.1 of the Portable Network Graphics (PNG) specification is now available. All changes are relatively minor and should be backward compatible. These include redefining gamma terms of the desired display output rather than the original scene, new iCCP, sPLT, and sRGB chunks for color correction, and assorted clarifications of what is and isn't allowed.
Inprise has released a beta
update to JBuilder 2.0.1 that works with the new JFC
package naming convention.
I don't normally mention vaporware here, but Connectix does have a long history of thinking differently enough to develop stunningly good, small utilities that nobody else has even conceived of. Most of these dive deeper into the OS than most programmers are comfortable going. RamDoubler, SpeedDoubler, Mode32, and VirtualPC are some of their successes. (I'm not nearly as thrilled with their recent SurfExpress, which so far seems to be just another caching tool in a crowd of dozens, and which has not produced any noticeable speed-ups on my system.) It will be interesting to see what they come up with now that they've turned their eye to Java.
IBM's alphaWorks has released a new DynamicAttribute Java bean for performing dynamic expression evaluations. This bean allows you to set calculation rules (conditions), input arguments (properties), and receive an output result visually. For example, you could use it to set the color of the
BankBalancefield to red, if the value property of
BankBalanceexceeds the value property of the
Microsoft's also released a new version (Build 3158) of its own virtual machine for Windows 95, 98, NT and Internet Explorer 3.0.2 and later with JNI support.
Finally, Microsoft's released Internet Explorer 4.5 for the Macintosh. This still ships with Microsoft's abandoned Java 1.0 VM for the Mac, but by default IE 4.5 relies on Apple's Macintosh Runtime for Java which supports Java 1.1 (albeit slowly and unreliably).
Tuesday, January 5: 1:30-3:00 pm:
QuickTime for Java (Macworld/Pro Conference, session C9)
Bill Stewart, QuickTime for Java Architect, Apple
Ron Peters, QuickTime Technology Manager, Apple
Wednesday, January 6: 11:00 am-12:15 pm
Macintosh Java and QuickTime for Java
Alan Samuel, Java Technology Manager, Apple
MRJ 2.1 and QuickTime for Java.
To attend this session, you must RSVP to firstname.lastname@example.org.
Version 0.7 of the GPL'd FIJI ForthIsh Java Interpreter is now available.
Kevin B. Hendricks posted some information about the current status of Java on Linux on the java-linux mailing list. Apparently Sun is taking a much more active role in making sure the JDK runs and runs well on Linux than it has in the past. Although this is very good news, the Blackdown JDK port still seems hobbled by the lack of a true open source license, at least compared to other Linux projects. I continue to look forward to the evolution of Kaffe and other true open source VMs and class libraries.
Sun's also released the specification of version 1.0 of the EmbeddedJava API. EmbeddedJava is a Java environment designed for dedicated embedded devices such as cell phones, pagers, process control, instrumentation, office peripherals, and networking routers and switches. EmbeddedJava applications run on real-time operating systems, and are optimized for the constraints of small memory footprints and diverse visual displays.
Sun's posted a preliminary specification for the PersonalJava Application Environment (PJAE) which describes the facilities that PJAE provides to Java applications. PJAE is designed for networked applications running on personal consumer devices like set-top boxes and smart phones rather than desktop computers. Comments on the spec are due by January 7.