I've posted the notes from my first two talks at EclipseWorld, Test Driven Development with Eclipse and XML Editing with Eclipse.
Werner Randelshofer has released the Quaqua Look and Feel 3.3, "an extension for Apple's implementation of the Aqua Look for Swing. Quaqua aims at fixing inconsistencies between user interface elements implemented in Swing and those of native Mac OS X applications. To achieve this, Quaqua selectively replaces UI elements of Apples Aqua Look And Feel with elements of its own." Quaqua is dual licensed under the BSD license model and the LGPL. Java 1.3 or later and Mac OS X 10.2 or later are required. This release avoids overlaps of the scroll bars with the grow boxes in JScrollPane and adds Color Wheel and Crayons panels for the color chooser.
Gaudenz Alder has released JGraph 5.7, a free-as-in-speech (Mozilla Public License/LGPL) graph component for Swing that requires Java 1.4 or later. JGraph is accompanied by Graphpad, an open-source diagram editor for Swing that offers Automatic Layout, Printing, Zoom, and much more. It is available in English, German and French. In version 5.7, the "routing interface has changed so that the routing methods now return a list of points instead of accepting a list of points as a parameter. The routing of loops has been separated from the non-loop implementation for the default case so that it is easier to create a new routing implementation and inherit the default loop routing algorithm. Children cells moved as part of a collapsed group now are moved when the parent cell is, if required, using the movesChildrenOnExpand flag."
Sun has posted the proposed final draft of JSR-245, JavaServer Pages 2.1, in the Java Community Process (JCP). According to the draft,
JSP 2.1 extends the JavaServer Pages 2.0 Specification (JSP 1.2) in the following ways:
- The JSP specification now features a unified expression language, which is the result of the integration of the expression languages defined in the JSP 2.0 and Faces 1.1 specifications. The new unified expression language is defined in its own specification document, delivered along with the JSP 2.1 specification.
- The JSP 2.1 specification uses the Servlet 2.5 specification for its web semantics.
- The JSP 2.1 specification requires the Java™ 2 Platform, Standard Edition version 5.0 or later.
Sun has also posted the proposed final draft of JSR-252, JavaServer Faces 1.2. According to the preface, "Previous versions of the JavaServer Faces included an innovative, EL tailored to the needs of Faces. The main emphasis of this version of the Faces spec, and also the focus of the JSP spec corresponding to it, is to take those innovations and expose them to JSP page authors by creating a Unified EL that leverages the combined power of the Faces and JSP ELs. The Faces EL would then be deprecated, and the deprecated implementation would be written in terms of the Unified EL to preserve backwards compatability" [sic].
The Fall conference season is upon us, and I am racing to finish my notes for four different shows that all have their deadlines at the end of this month. The first show is a new one, EclipseWorld, at the Roosevelt Hotel in Manhattan Monday-Wednesday next week. (August 29-31). The show seems to cover pretty much everything Eclipse related from RCP to SWT to TTPP to WST to ABCDEFG to WXYZ. I'll be delivering four sessions on XML Editing in Eclipse, Macifying SWT, Test Driven Development with Eclipse, and Static Code Analysis in Eclipse.
The next show I'll be at is Software Development Best Practices in Boston (September 26-29). As well as hosting a panel on next generation client side technologies I'll be talking about Effective XML, GUI Testing, JUnit 4, Testing XML, and User Interface Principles in API Design. The show is looking for a few more volunteers to man doors, distribute notes, and similar tasks. For each day a you volunteer you get to attend the conference for a day free, and most volunteer days involve nothing more strenuous than sitting in the back of the room listening to the presentation, and collecting eval forms at the end; so really, it's a nice way to attend the show for free.
Then it's back to New York October 15-16 for the kickoff event in a new Weekend with Experts series devoted to J2EE. I'm not much of a J2EE person, but I'll fake it by talking about Effective XML.
Staying in New York (I'm really glad to see so many shows coming to New York) November 1-3 will be the Software Test & Performance Conference at the Roosevelt Hotel. Here I'll talk about Testing XML and Measuring JUnit Code Coverage.
Then I'll be travelling to Los Angeles for the first time November 14-18 for STARWest 2005. I'll be teaching a one-day intro tutorial to JUnit designed for testers, and then talking about Testing XML again.
In December, there's a tentative trip planned to Antwerp, Belgium for Javapolis. Details still remain to be worked out but I'll probably be talking about XML related subjects.
Moving even further out, next year I'll definitely be at Software Development 2006 West, March 13-17, 2006, in Santa Clara once again. I'm on the advisory board for that show and we're just starting to pick next year's sessions, but it looks like it's going to be really hot. In particular, it looks like there'll be a lot of AJAX, scripting, and web app content in addition to the usual batch of Java, C++, .NET, XML, and Testing. Plus I'm expecting to host the world's first ever 6:00 A.M. BoF.
If there are any other shows you'd like to see me at, just drop me a line or ask the show organizers to recruit me. (Believe it or not they really do read the evaluation forms you fill out at the end of every session, and if you ask for particular speakers, they will notice.) I also talk to user groups if travel expenses can be covered and they're not too far from New York City, or if they can be scheduled in conjunction with a show I'm already attending. (Contrary to popular belief, publishers do not have unlimited budgets for author tours. In fact, for midlist computer book authors, they tend to have no such budget at all. :-) ) I also do occasional corporate training on XML, test driven development, and Java.
Laid out like that, it looks like quite a lot. It always seems more doable when I'm signing up for these shows and don't have four simultaneous deadlines staring down my throat. :-) But it's usually a good time, and I hope to meet some of you there.
Since I'm thinking about conferences today (and avoiding working on my notes) I've also made some updates to the conferences page. I'm thinking the next update will move this page to pure XML styled with an XSLT stylesheet. No server side transformation. I'm just going to send this straight to the browsers. Apologies to Opera users, but it really is time for Opera to join the 21st century and support client side XSLT, HÃ¥kon Wium Lie's CSS wizardry notwithstanding. I was looking at what I have to do every time I want to make a simple update to the tradeshows page, and it's just way too complex to manually edit and sort the HTML. More often than not I make silly mistakes, and I certainly don't update the page as often as I should. I really see two options here:
Michael B. Allen has posted jCIFS 1.2.3,
a free (LGPL) SMB client library written in pure Java. It
supports Unicode, named pipes, batching, multiplexing I/O of threaded callers, encrypted authentication, full transactions, domain/workgroup/host/share/file enumeration, NetBIOS sockets and name services, the smb:// URL protocol handler, RAP calls, and more. The API is similar to
java.io.File
. Version 1.2.3 adds
DCE/RPC pipes support, fixes bugs, and improves speed.
JCraft has released JZlib 1.0.7,
a reimplementation of Jean-loup Gailly
and Mark Adler's zlib compression library in pure Java.
This offers more complete functionality than
java.util.zip
.
JetBrains has released IntelliJ IDEA 5.0.1, a popular $499 payware integrated development environment for Java that runs on Windows, Mac OS X, Linux, and Unix.
Mostly this is a bug fix release, but it also adds
a @NonNls
for marking strings that don't need to be localized.
Mark Doliner has released Cobertura 1.6, a free-as-in-speech (GPL) code coverage tool for Java. Version 1.6 adds support for multiple source directories. If you're not already using another code coverage tool, this is definitely worth a look. Java 1.4 or later is required.
Panasonic Information and Networking Technologies has posted the proposed final draft of Java Specification Request (JSR) 187, Instant Messaging to the Java Community Process (JCP). According to the draft,
The Instant Messaging API provides protocol independent application control of standard instant messaging and presence protocols. The standard protocols include: IETF SIP/SIMPLE, OMA Wireless Village, and IETF XMPP. ... The API defines a core set of generic operations and uses a client-server interaction model. The client-server interaction is represented as request-response pairs. Requests are abstracted using instances of
IMPSRequest
entity; responses are accessed using instances ofIMPSStatus
that are passed to the application's previously registered listener(s).The details of the underlying protocol are generally hidden, except that error results return protocol-specific values. However selected portions of protocol specific functions are available for advanced applications where
Extensible
is used in the API.
Yes, I uploaded the wrong index.html page here yesterday. It's fixed now. Thanks to everyone who wrote in to tell me. Mea culpa. Mea maxima culpa.
Atlassian has released version 3.3 of JIRA, a $1200-$4800 payware J2EE-based bug tracking and project management server application. Version 3.3 adds multiple project filtering, new bulk move capabilities, extended date and number searching, and Italian and Slovakian translations, I've been using Jira lately with Jaxen and Apache. It's a definite improvement over Bugzilla. I'm not sure it really does anything that Bugzilla doesn't do (at least not anything I use) but the user interface is about a hundred times cleaner.
The Apache Jakarta Project has released Regexp 1.4, a 100% Pure Java, open source Regular Expression package. This is primarily maintenance release containing several bug fixes.
The Jakarta Apache Project has released Cactus 1.7.1, a simple framework for unit testing server-side Java code such as servlets, Enterprise JavaBeans, tag libraries, etc. Java 1.4 or later is required. Java 1.2 and 1.3 are no longer supported.
Sun has posted the early draft review of JSR 199, Java Compiler API. According to the draft,
The Java Compiler API is a set of interfaces that describes the functions provided by a Java Language Compiler. This API has three main objectives:
- Allow invocation of a Java compiler from a Java program using standardized interfaces.
- Interfaces enabling the compiler to report diagnostics in a structured way.
- Interfaces enabling clients of the compiler to override how source objects are found. Source objects is a common term for Java source files and Java class files.
I'm pleased to see that the draft is written in HTML instead of PDF, but is it too much to ask that it be distrbuted in HTML. Why do I have to downoad and unzip a zip file? HTML should be browsable and searchable on the Web. It's amazing that 15 years in, Sun still doesn't understand the Web. Other JSR specs and drafts have been published in browsable, searchable HTML, though as I far as I know none of those were led by Sun.
The Eclipse Project has posted the first milestone of Eclipse 3.2, an open source integrated development environment (IDE) for Java. It also doubles as a base platform for your own applications, an alternative to the AWT and Swing, and a powerful floor wax and dessert topping. There's not a lot new in 3.2, some minor user interface improvements, sort direction indicators in table and tree headers, reorderable columns in tables. The cool new feature is the ability to paste a code snippet into the Package Explore and have Eclipse automatically create a compilation unit for that snippet. That shoudl be useful for testing and experimentation.
Sun's posted the first public draft of the JavaMail 1.4 specification. JavaMail is a basic library for performing POP, SMTP, and IMAP. I wrote about this in the final chapter of Java Network Programming. So far, this is just a description of the changes since JavaMail 1.3, which are mostly some convenience methods and properties. The focus seems to be on improved MIME support, non-ASCII data, mail account quotas, and shared input streams (an interesting idea.) Nothing seems backwards incompatible in any way, and existing code should still work. This release of the API will require Java 1.4 or later. Earlier versions will no longer be supported. Comments are due by September 6.
Bare Bones Software has released version 8.2.3 of BBEdit, my preferred text editor on the Mac.
8.2.3 is a a Universal Binary that runs natively on Mac OS X for X86.
8.2.3. also adds Objective-C++
syntax coloring and function navigation.
BBEdit is $179 payware.
Upgrades from 8.x are free. They're
$49 for 7.0 owners and $59 for owners of earlier versions.
Mac OS X 10.3.9 or later is required.
Sun's posted a minor maintenance update to the Java 2 Software Development Kit 1.4.2, version 1.4.2_09. This version improves error logging and fixes a couple of dozen assorted bugs. It's available for Windows, Linux, and Solaris.
I've posted version 1.0d3 of QuickTime Amateur, an open source clone of Apple's QuickTime Player that is uncrippled and free as in speech and beer. Currently this has only been tested, designed, and run on the Mac, though a Windows port is on the TODO list.
d3 improves fullscreen playback, and enables or partially enables several other features; but Amateur is still rather rough. Saving, in particular, needs a lot of work. However if you just want to play your movies in full screen mode without paying $30, it's good enough to do that now. Various other Pro functionality such as printing, editing, and copying and pasting movies is also enabled.
Andy Roberts has released
jTokeniser 1.2.1, an open source
Java library for separating strings into a list of tokens
based on white space, regular expressions, sentences,
or break iterators
jTokeniser is published under the LGPL.
Lorenzo Bettini has released GNU Source-highlight 2.1.1, a GPL'd tool for reading Java, C/C++, Prolog, Perl, PHP3, Flex, ChangeLog, JavaScript, LUA, CAML, SML, Log, and Python code and translating them into syntax highlighted HTML and XHTML. Binaries are available for Unix, and it should compile on Windows with the appropriate libraries. This is a bug fix release.
The Big Faceless Organization has released the Big Faceless Graph Library 2.0, an $800 payware (more if you want support or to distribute your applications that use the library) Java class library for plotting 2D or shaded 3D pie charts, line graphs, area graphs, bar graphs and exporting them to PNG, GIF and PDF. Vesrion 2.0 adds a Java Server Pages tag library, among other features. Java 1.2 or later is required.
Gaudenz Alder has released JGraph 5.6.3, a free-as-in-speech (Mozilla Public License/LGPL) graph component for Swing that requires Java 1.4 or later. JGraph is accompanied by Graphpad, an open-source diagram editor for Swing that offers Automatic Layout, Printing, Zoom, and much more. It is available in English, German and French. Version 5.63 plugs memory leaks and allows zero width edges.
Nathan Fiedler has released version 2.39 of JSwat, a graphical, stand-alone Java debugger built on top of the Java Platform Debugger Architecture. Features include breakpoints, source code viewing, single-stepping, watching variables, viewing stack frames, and printing variables. Version 2.39 restores compatibility with Java 1.4. JSwat is published under the GPL.
jZonic has released jLo 1.1.1, an open source logging framework for Java that supports multiple log-configurations. It allows users to switch targets on or off independently of each other, rather than by threshold. Version 1.1.1 restores support for Apache Commons logging. jLo is published under the LGPL.
Websina has released BugZero 4.1.4, a $1299 payware (+$300 for maintenance) Web-based bug tracking system that supports multiple projects, group-based access, automatic bug assignment, file attachment, email notification, and metric reports. Bug Zero is written in Java and can run on top of various backend databases including MySQL. 4.1.4 fixes bugs.
JetBrains has released IntelliJ IDEA 5.0, a popular $499 payware integrated development environment for Java that runs on Windows, Mac OS X, Linux, and Unix. Some of the most significant new features include:
The upgrade price is $299.
Cedric Beust has released TestNG 2.5, an open source ( testing (unit, functional, and integration) framework based on annotations. Version 2.5 adds an IDEA plug-in, an IDEA plug-in, an alwaysRun annotation, and the ability to specify testing of entire packages rather than individual classes. TestNG is released under the Apache Software License. Java 1.4 or later is required.
The Apache Database Project has released Apache Derby 10.1.1.0 (formerly Cloudscape), an open source SQL database written in pure Java that supports JDBC. New features in this release include:
Note to all java.net members: if you want to participate in a project (especially one of mine, but I suspect this is true in general) it is not enough to click the button and select the box for "Project Developer." If you do that, all I see is a message that "user username has requested the Developer role in the amateur project." (Honestly this is a design flaw in the Collabnet system java.net is built on top of. When rejecting such a request I'm asked to give a reason, but when making the request the user can't give a reason or even their real name or e-mail address.) I'll approve anonymous observer requests, but the chance of getting CVS commit access this way is virtually zero. Before you request a role, you need to communicate with me: send me e-mail, tell me who you are, what you want to do, why you need the role, send in some patches, participate in the mailing lists, etc. However, there's no way I'm granting write access to effectively anonymous individuals.
I'm at Extreme Markup Languages in Montreal this week. Detailed coverage is on Cafe con Leche Even though this is not specifically a Linux, Mac, or open source show, Windows seems to be a definite minority platform at this conference. Roughly half the audience and speakers are toting PowerBooks. Among the X86 laptops, Linux might actually outnumber Windows. This mirrors what I've seen at other shows. If I were Microsoft, I'd be very worried. The people who come to these shows are the thought leaders who often tell other people what to buy when it comes time to upgrade.
Siemens AG has released the final draft of JSR 229, Payment API (PAPI). According to the spec,
The scope of this JSR is to define the following:
- A generic, optional API to initiate payment transactions in a secured manner to transparently expedite the chargeable service requests, which are originated from J2ME applications, with external operator charging service delivery, payment service protocols, pricing management and implementation logic
- The syntax for the description of the associated payment provisioning data, enabling API implementers to support different payment adapters Both will allow 3rd-party developers to build applications with control of features and services that are chargeable. The JSR API includes methods for:
- Requesting a payment transaction
- Requesting feature and service price management
- Payment service availability
The definition of provisioning data ensures that service providers and payment service providers can select a suitable set of payment adapters provisioned for applications on application deployment time. The following types of payment adapters are primarily addressed:
- Operator charging
- 3rd-party payment service providers
This JSR enables application developers to initiate mobile payment transactions from MIDP applications. It is an optional package for the J2ME CLDC configuration and targeted at MIDP and IMP devices. The scope of this JSR is to provide a generic payment initiation mechanism that hides the actual payment architecture and complexity from the developers.
This JSR does not define and imply any concrete payment implementation and mechanism, but is generic enough to support different implementations. It is up to the implementing party to realize the API based on one or more technical solutions enabling the application-initiated payment. The JSR also does not define any user behavior or user interface, but leaves them open to be defined by the actual implementation of the API.
Calvin Austin has posted the first alpha of TestGen4J, "an open-source tool that automatically generates, and then executes Java test cases using JUnit. In addition to cutting out the mundane task of writing tests, it provides a data driven test harness and an automatic failed test case management utility."
Nokia has released the final version of JSR-234 Advanced Multimedia Supplements. This is a J2ME API that builds on the Mobile Media API (MMAPI) (JSR-135) with features for controlling multimedia features like cameras, videocameras, and audio playback on camera phones and the like.