January, 2007 Java News

Wednesday, January 31, 2007 (Permalink)

Sun has posted an early prototype implementation of JSR-296, Swing Application Framework on java.net.

The JSR-296 Swing Application Framework prototype implementation is a small set of Java classes that simplify building desktop applications. The prototype provides infrastructure that's common to most desktop applications:

  • Application lifecyle, notably GUI startup and shutdown.
  • Support for managing and loading resources, like strings, formatted messages, images, colors, fonts, and other types common to desktop applications.
  • Support for defining, managing, and binding Actions, including Actions that run asynchronously (in the "background").
  • Persistent session state: support for automatically and selectively saving GUI state from one run of an application to the next.

The JSR-296 expert group launched this effort in late summer 2006. A prototype implementation, spec, and some small examples are now available. Although the JSR has not reached the "Early Draft" JCP review stage, the expert group has agreed to make the prototype public to give interested members of the Swing community the opportunity to provide feedback. This version is just a snapshot of the ongoing design process, it's likely to change substantially in the coming months.

The intended audience for this snapshot is experienced Swing developers with a moderately high tolerance for pain. Although JSR-296's ultimate goal is to bridge the gap to novice developers, the project's current doc/spec/robustness qualities aren't a good match for novices just yet.

So we're looking for feedback at this point. Constructive feedback would be great; ranting and raving is OK too, particularly if it's funny. We're not looking to adopt an existing framework or even for code contributions however if there's an existing Swing application framework you're fond of, then feedback of the form: "framework X has a feature that JSR-296 lacks and the reason X is important is ...", would be great. Reports about bugs in the current implementation would be welcomed too.

Tuesday, January 30, 2007 (Permalink)

Ohad Serfaty has released the Java Mozilla Html Parser 0.1.1, "a Java package that enables you to parse html pages into a Java Document object. The parser is a wrapper around Mozilla's Html Parser , thus giving the user a browser-quality html parser." This is published under the LGPL.


David Cranshaw has released SQLiteJDBC 033, a JDBC driver for the SQLite database. "It is written as a thin driver on top of the SQLite 3.3.x C API. The native JNI library has SQLite compiled into it so all you need to do is include the two files packaged above in your project." This release adds fsync() support. It's published under the BSD license.


Websina has released BugZero 4.5.1, 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.5.1 fixes bugs.


Oliver Burn has released Checkstyle 4.3, a lint-like tool that checks Java code for adherence to various coding standards. Version 4.3 fixes bugs.


JPOX 1.1.6, an open source implementation of Java Data Objects (JDO) 2.0, has been released. that provides transparent persistence to Java objects. It supports most major SQL databases and can be queried using either JDOQL or SQL. 1.1.6 is a bug fix release. It's published under the Apache 2.0 License.


Peter Arrenbrecht has released JCite 1.8. According to Arrenbrecht, "JCite makes it possible to cite snippets of Java source code in your HTML documents - API documentation, for instance. The snippets are copied out of real, live Java class source files, which should be part of the regular build. This guarantees that the cited snippets are always up-to-date." This release adds the ability to format inline blocks. JCite is published under a BSD license.

Monday, January 29, 2007 (Permalink)

The Apache Project has released Jackrabbit 1.2.1, an open source implementation of the Content Repository for Java Technology API (JCR) specified in Java Specification Request 170.

Apache Jackrabbit is a fully conforming implementation of the Content Repository for Java Technology API (JCR). A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more. Typical applications that use content repositories include content management, document management, and records management systems.

Apache Jackrabbit 1.2.1 is an incremental release that introduces a number of new features, improvements, and bug fixes. The most notable changes in this release are the introduction of a clustering feature and various query improvements. The build environment has been upgraded to Maven 2 along with updates to the project structure and new versions of the Apache Lucene and Apache Derby dependencies.

Sunday, January 28, 2007 (Permalink)

I've posted the notes from last week's one-day Intro to JUnit course at Polytechnic's CATT Center. I'm available to teach this course or longer versions elsewhere. Drop me a line if you're interested.

Friday, January 26, 2007 (Permalink)

For the first time in years, Sun has had a profitable quarter. Sun reported a net profit of $126 million (3 cents per share) for the just-finished October-December quarter. This compares favorably with a $223 million loss for the same quarter in 2005. Total revenue was $3.6 billion, a 7 percent increase compared to a year ago.

Thursday, January 25, 2007 (Permalink)

JavaOne registration is open, and for the first time ever I think I'm going to be going this year. Or at least I'll go if Sun fixes the registration form:

500 Internal Server Error

java.lang.NullPointerException
	at com.cplan.registration.SrvEmailCard.doPost(SrvEmailCard.java:39)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:810)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
	at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
	at java.lang.Thread.run(Thread.java:534)

Interesting that they're using the Oracle application server instead of their own.

I don't usually go to out-of-town conferences where I don't speak, but IBM's developerWorks agreed to fly me out there to report on the event. It's been a while since I've been to San Francisco (I get down to San Jose/Santa Clara a lot more frequently). Any suggestions for not-too-expensive hotels near Moscone?

Thursday, January 24, 2007 (Permalink)

Syncro Soft has released Syncro SVN Client, a $59 GUI Subversion client written in Java.

Tuesday, January 23, 2007 (Permalink)

Per Bothner has released Kawa 1.9.0.

Kawa is:

  • A framework written in Java for implementing high-level and dynamic languages, compiling them into Java bytecodes.

  • An implementation of Scheme, which is in the Lisp family of programming languages. Kawa is a featureful dialect in its own right, and additionally provides very useful integration with Java. It can be used as a “scripting language”, but includes a compiler and all the benefits of a “real” programming language, including optional static typing.

  • Implementations of other programming languages, including XQuery (Qexo) and Emacs Lisp (JEmacs).

Kawa is published under the the X11/MIT license.

Monday, January 22, 2007 (Permalink)

Sun has posted the second maintenance release of JSR-926 Java 3D API. Changes include:

  • Non-power-of-two textures
  • NIO image buffer support for textures
  • By-reference support for geometry indices
  • Rendering error listeners
  • Vecmath accessors/mutators

In addition, half a dozen fields and a dozen methods were deprecated.

Sunday, January 21, 2007 (Permalink)

Andres Almiray has posted the second beta of Json-lib 1.0, an open source Java library "for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans." It does not appear to be fully round-trippable for either XML or Java.

Thursday, January 18, 2007 (Permalink)

Sun's posted the sixth milestone of NetBeans 6.0, its pure Java IDE for various platforms. Changes include:

  • Most Java EE features re-added to the build.
  • UI Gestures Collector that logs users actvities in IDE.
  • Profiler added Memory Profiling Improvements.

Speaking of NetBeans, I tried version 5.5 a few days ago while working on a project that required it. On the one hand requiring a specific IDE to work on a project is bad form, and reason enough to avoid the Matisse GUI Builder. Comments like this one are a major code smell:

	/**
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */

On the positive side, though, for the first time I feel like NetBeans is ready for prime time. I did not notice any obvious bugs or user interface errors. In fact, comparing UI to UI, NetBeans is now way ahead of Eclipse. The claim that SWT provides a more native looking interface than Swing is demonstrably false. In fact, exactly the opposite is true. I'm sure it doesn't hurt that the NetBeans team has a significant portion of Mac users, and the Eclipse team has none (or so close to none that I can't tell the difference).

UI fidelity alone isn't enough to make me switch, but it makes it a lot easier. I need to try the latest Eclipse milestone, but if it hasn't fixed the bug that's been keeping me on 3.1, I may indeed switch.

Wednesday, January 17, 2007 (Permalink)

JetBrains has released TeamCity 1.2, a semi-IDE independent continuous integration server. TeamCity manages builds and can be configured not to check in code unless tests pass. (This is actually a quite bad idea, for reasons I've outlined elsewhere. Refusing to commit failing tests is simple denial. Admitting you have a problem is the first step toward fixing it.) Version 1.2 adds support for Visual Source safe and fixes a host of bugs. TeamCity is $399 payware.

Tuesday, January 16, 2007 (Permalink)

Enterprise Distributed Technologies has released edtFTPj 1.5.4, a free (LGPL) FTP library for Java. A $1999 payware version adds support for FTP over SSL. 1.5.4 fixes bugs and adds support for STOU (server chosen file name).

Monday, January 15, 2007 (Permalink)

Tomorrow night will be the first iteration of Extreme Tuesday New York. Mike Roberts writes that this will be "a local chapter of London's 'eXtreme Tuesday Club' . My hope is it will provide a good compliment to XP-NYC group since it is a social, pub-based, group." The London group was always great fun, but I look forward to a version that doesn't require a transatlantic plane ride. The meeting will be held at the Union Square Heartland Brewery.

Sunday, January 14, 2007 (Permalink)

My D-Link broadband router died about 4:00 this afternoon. I'll replace it tomorrow morning, but in the meantime Mokka mit Schlag and The Cafes are offline.

Update: I think I've finally got the router fully working again. Knock wood. It's really annoying that it can't reload a config from a different version of the firmware, nor does it show the config in plain text so you can print out and inspect the configuration details. It also doesn't provide sufficient diagnostics or error messages. I have to guess what might be wrong.


Sun has posted the early draft review of JSR-271, Mobile Information Device Profile 3 to the Java Community Process (JCP). According to the draft,

Mobile Information Devices (MIDs) span a potentially wide set of capabilities. Rather than attempt to address all such capabilities, previous MIDP Experts Groups (JSR 037 and JSR 118) agreed to limit the set of APIs specified, addressing only those functional areas that were considered absolute requirements needed to achieve broad portability and successful deployments. The MIDP 3.0 Expert Group continued and extended this philosophy to expand upon the existing MIDP functionality in all areas, improve interoperability across implementations, and build upon the success of MIDP 2.0 by enhancing the profile in the following areas:

  • Platform : enable and specify proper MIDlet behavior on each of CLDC, CDC, and OSGi
  • Shared Components : enable statically shared libraries
  • Application Lifecycle (i.e., defining the semantics of a MIDP application and how it is controlled) :
  • clarify and extend to specify proper behavior of concurrently executing MIDlets
  • Security Framework and Security Policy
  • Networking : connection preferences
  • Persistent storage : define a secure binary interchange format for the provisioning of record stores

Comments are due by February 5.

Saturday, January 13, 2007 (Permalink)

Apple has posted Java for Mac OS X 10.4, Release 5 Developer Preview 2 on the Apple Developer Connection (first born child required). According to Apple's Mikey McDougall, "Java for Mac OS X 10.4, Release 5 delivers improved reliability and compatibility for Java 2 Platform Standard Edition 5.0 and Java 1.4 on Mac OS X 10.4.8 and later. This release updates J2SE 5.0 to version 1.5.0_07 and Java 1.4 to version 1.4.2_12. It also improves SWT compatibility for J2SE 5.0."

Friday, January 12, 2007 (Permalink)

JetBrains has released IntelliJ IDEA 6.0.3. This is essentially a bug fix release with some speed-ups. IDEA is $499 payware. Upgrades from previous version are $299.

Thursday, January 11, 2007 (Permalink)

The Electronic Frontier Foundation is turning 16 today, and they're throwing a party:

Celebrate EFF's Sweet 16 on January 11!

All teenagers have big dreams for their sweet 16, and EFF's no different: we want to throw the Best Party Ever, we want a new car, and we want to secure your digital rights.

We're kidding about the car, but please do join EFF for a birthday bash to celebrate 16 years fighting for your rights. The party will be on January 11, 7-10 PM at 111 Minna Gallery in San Francisco. DJ Ripley and Kid Kameleon will be keeping the dancefloor hopping all night long.

A $20 donation gets you in the door. No one will be turned away for lack of funds, and all proceeds go toward our work defending your digital freedom.

What:
EFF Sweet Sixteen Party

When:
January 11, 2007
7-10 PM

Where:
111 Minna Gallery
111 Minna Street
San Francisco, CA
94105
www.111minnagallery.com
Tel: (415) 974-1719

This fundraiser is open to the general public. 21+ only, cash bar.

Please RSVP to events@eff.org

Wednesday, January 10, 2007 (Permalink)

Bare Bones Software has released version 8.6 of BBEdit, my preferred text editor on the Mac, and what I'm using to type these very words. New features include:

  • "The Java language module has been rewritten, and gets all sorts of goodies: folding for functions, inner class support, recognition of interfaces, and listing of abstract method declarations in the function popup."
  • Markdown support
  • Syntax colored text can be saved as styled HTML
  • TeX and LaTeX support have been improved
  • BBEdit can now read and write the "binary property list" format used in Mac OS X 10.4 for application preferences files.

BBEdit is $199 payware. Upgrades from 8.5 are free. Upgrades from 8.0 cost $30 and upgrades from 7.x costs $40. Mac OS X 10.4 or later is required.

Tuesday, January 9, 2007 (Permalink)

The Apache Project has released AntUnit 1.0, an Ant extensions that allows you to write tests right inside the build.xml file. It seems mostly intended for testing Ant itself, but might be useful for some other kinds of functional tests.

Monday, January 8, 2007 (Permalink)

There are still a few seats left for next week's one-day course on “Test driven Development with JUnit” at Polytechnic University's CATT Center in Brooklyn. This course offers attendees a hands-on, practical introduction to test driven development in Java with the JUnit framework. Attendees will develop a simple application using test-first techniques and learn about assertions, fixtures, test cases, code coverage, and test-driven debugging.

We'll be using the open source Eclipse Integrated Development Environment, though essentially all of the techniques covered work similarly with other IDEs, or indeed with no IDE at all. No prior experience with JUnit or Eclipse is required. Students should be comfortable with the Java programming language.

Unlike most of my Poly courses, this one is open to the general public. The cost is $595 for participant. (CATT Associate Member Firms may register up to five people for free.) The course is hands-on and takes place, Friday, January 19, 2007 from 9:00 a.m. to 5:00 p.m. Please register by fax (718-260-3074) or e-mail (tmassa@catt.poly.edu) by January 12, 2007. Seating is limited and the course is almost full, so please register soon if you're interested.

Sunday, January 7, 2007 (Permalink)

Quentin Anciaux has released YaHP Converter 1.2.1, a Java library that converts HTML documents to PDF documents. YaHP is published under the LGPL.



Xref-Tech has released Xrefactory 1.6.9, a $29 shareware refactoring browser for Emacs, XEmacs, and jEdit. It supports C and Java, and runs on Unix and Windows. Supported refactorings include "method (function) extraction; renaming of packages, classes, parameters, variables, fields (structure records) and methods (functions); insertion, deletion and moving of parameters, field and method moving; pushing down and pulling up fields and methods; encapsulate field; and more." This release adds support for gcc4.

Saturday, January 6, 2007 (Permalink)

Bill Pugh of the University of Maryland has released FindBugs 1.1.3, an automated open source tool for finding potential bugs in Java code. The main change in this release is fixing the Ant task that was broken in the last release. However it also adds new checks for pointless x.equals(x) and x.compareTo(x) tests.


Teodor Danciu has released JasperReports 1.3.0, an open source (LGPL) Java library for generating reports from XML templates and customizable data sources (including JDBC). The output can be displayed on the screen, printed, or written to XML or PDF files. Version 1.3.0 adds an XMLA data source implementation and a report element for controlling page and column breaks.

Friday, January 5, 2007 (Permalink)

FreeCompany has released Redline, an open source (MIT license) pure Java library "for manipulating RPM Package Manager packages. Currently the project supports reading and creating packages and has an included Ant task useful for integration with build systems. Support for package signatures will be added in a future release."


Michael Allan has commenced work on OverDOM, a "Java implementation of the W3C DOM, layered over a Web browser's native implementation. OverDOM provides applets with access to the browser's loaded document, through a familiar Java binding of the DOM."


Tiger Privacy has released Tiger JMail 1.0.2, a free-as-in-speech (LGPL) JavaMail implementation. This is a bug fix release.


DeNova, Inc. has released JExpress Professional 7.0.3, a $499 payware cross-platform installer builder for Mac OS X, Windows, Linux, and Solaris.


Nathan Fiedler has released version 3.15 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 3.15 tries to avoid IllegalArgumentExceptions when launching the program to be debugged. JSwat is published under the Sun Public License.


 JGAP 3.1 has been released. JGAP is an LGPL'd genetic algorithms library for Java that "is designed to require minimum effort to use "out of the box", but is highly modular and allows custom components to be easily plugged in by the more adventurous." It supports XML persistence, an event system, and a default natural selection algorithm.


David Cranshaw has released SQLiteJDBC 032, a JDBC driver for the SQLite database. "It is written as a thin driver on top of the SQLite 3.3.x C API. The native JNI library has SQLite compiled into it so all you need to do is include the two files packaged above in your project." It's published under the BSD license.

Thursday, January 4, 2007 (Permalink)

The Big Faceless Organization has released the Big Faceless PDF Library 2.7.6 "to coincide with Adobes introduction of duplex printing in Acrobat 8.0. The PDF Library can also boast a large speed increase when reading documents – around 25% for large files – as well as numerous bug fixes." The library costs $700 (more if you want support)s. The $1300 Extended Edition adds the AcroForms support, digital signatures, and the ability to import and edit and existing PDF documents.


The Big Faceless Organization has released the Big Faceless Graph Library 2.3, 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. According to CTO Mike Bremford, “Additional features have been made for those customers pushing the Graph Library in unusual directions - particularly those making heavy use of multi bar graphs with labels. We have also added a new 'box' tag for adding arbitrary rectangles to the graph, and you can now plot zero-width slices in a Pie Graph.” Java 1.2 or later is required.

Wednesday, January 3, 2007 (Permalink)

The Apache Commons Group has posted Betwixt 0.8, an open source Java class library that

provides an XML introspection mechanism for mapping beans to XML in a flexible way. It is implemented using an XMLIntrospector and XMLBeanInfo classes which are similar to the standard Introspector and BeanInfo from the Java Beans specification.

Betwixt provides a way of turning beans into XML as well as automatically generating digester rules in a way that can be customized on a per type manner in the same way that the BeanInfo mechanism can be used to customize the default introspection on a java object.

Betwixt 0.8 is a feature release. Improvements have been made to suppression strategies. Enhancements have been made to mapping formats. Mixed collections are now handled more completely.

Tuesday, January 2, 2007 (Permalink)

Two weeks from today will be the first iteration of Extreme Tuesday New York. Mike Roberts writes that this will be "a local chapter of London's 'eXtreme Tuesday Club' . My hope is it will provide a good compliment to XP-NYC group since it is a social, pub-based, group." The London group was always great fun, but I look forward to a version that doesn't require a transatlantic plane ride. The first meeting will be Tuesday, January 16, at the Union Square Heartland Brewery.


I have uploaded the finished release of Jaxen 1.1, an open source XPath 1.0 engine written in Java that supports multiple object models including DOM, XOM, JDOM, and dom4j. It is also flexible enough to be adapted to XML views of non-XML data structures. For instance, PMD uses it to enable XPath expressions to query compiled Java byte code. Version 1.1 is believed to be fully conformant with the XPath 1.0 specification. Numerous bugs have been fixed since version 1.0 several years ago. If anyone is still using version 1.0, please upgrade at your earliest convenience. Jaxen is published under a modified BSD license.


Christian Schlichtherle has released TrueZip 6.4, a drop-in replacement for the java's file I/O classes.

TrueZIP is a Java based Virtual File System (VFS) which enables an application to access ZIP, TAR and all derivative archive types (JAR, TAR.GZ, ...) transparently as if they were just directories in a file's path name. This works recursively, so an archive file may even be enclosed in another archive file. TrueZIP 6 features an extensible "plug-in driver" architecture (actually a Service Provider Interface), so it is expected that support for other archive types will be added over time (contributors wanted: ARJ, RAR anyone?).

The TrueZIP API provides drop-in replacements for the well-known classes File, FileInputStream and FileOutputStream. This design makes TrueZIP very easy to use: All that is required to archive-enable a legacy application is to add a few import statements for the package de.schlichtherle.io, add some type casts where required, and add a final call to File.update() once before the client application terminates in order to force an update of all archive files which have been used and require an update.

This release improves performance and documentation and fixes bugs. TrueZip is published under the Apache 2.0 license.


David A. Hall has posted beta 0.8 of jga, an open source collection of generic algorithms for Java. "jga is a functors library: the intent is to explore and exploit functors as a design and implementation tool to reduce boilerplate coding. A functor is an object that encapsulates a function or expression: it can take arguments and produce results, as can any method, expression, or function (in other languages that support functions). Unlike an expression, as an object it can be passed as an argument without being executed; it can be persisted to a database or file; it can be serialized and passed from client to server (and back); and it can be instantiated at runtime based on information unavailable at compile-time." jga is now dual licensed under the GNU Lesser general Public License and the CDDL. In addition this release now allows more static access to methods.


Bruno Lowagie has released iText 1.4.8, an open source Java library for creating documents in PDF, XML, HTML, and RTF. It can also convert XML documents into any of these formats. This release fixes bugs. iText is published under the Mozilla Public License.

Monday, January 1, 2007 (Permalink)

The Apache Jakarta Project has released Commons VFS 1.0. "Commons VFS provides a single API for accessing various different file systems. It presents a uniform view of the files from various different sources, such as the files on local disk, on an HTTP server, or inside a Zip archive. For example, you can use filenames like "tar:gz:http://anyhost/dir/mytar.tar.gz!/mytar.tar!/path/in/tar/README.txt" to access a compressed tar file located on a web server."


Older news:

200620052004200320022001200019991998
January, 2006 January, 2005 January, 2004 January, 2003 January, 2002 January, 2001 January, 2000 January, 1999 January, 1998
February, 2005 February, 2005 February, 2004 February, 2003 February, 2002 February, 2001 February, 2000 February, 1999 February, 1998
March, 2006 March, 2005 March, 2004 March, 2003 March, 2002 March, 2001 March, 2000 March, 1999 March, 1998
April, 2006 April, 2005 April, 2004 April, 2003 April, 2002 April, 2001 April, 2000 April, 1999 April, 1998
May, 2006 May, 2005 May, 2004 May, 2003 May, 2002 May, 2001 May, 2000 May, 1999 May, 1998
June, 2005 June, 2004 June, 2003 June, 2002 June, 2001 June, 2000 June, 1999 June, 1998
July, 2006 July, 2005 July, 2004 July, 2003 July, 2002 July, 2001 July, 2000 July, 1999 July, 1998
August, 2006 August, 2005 August, 2004 August, 2003 August, 2002 August, 2001 August, 2000 August, 1999 August, 1998
September, 2006 September, 2005 September, 2004 September, 2003 September, 2002 September, 2001 September, 2000 September, 1999 September, 1998
October, 2006 October, 2005 October, 2004 October, 2003 October, 2002 October, 2001 October, 2000 October, 1999 October, 1998
November, 2006 November, 2005 November, 2004 November, 2003 November, 2002 November, 2001 November, 2000 November, 1999 November, 1998
December, 2006 December, 2005 December, 2004 December, 2003 December, 2002 December, 2001 December, 2000 December, 1999 December, 1998

[ Cafe au Lait | Books | Trade Shows | FAQ | Tutorial | User Groups ]

Copyright 2007 Elliotte Rusty Harold
elharo@metalab.unc.edu