12.18.2008
SeaFlow screenshot from Dec. 18, 2008.

SeaFlow screenshot from Dec. 18, 2008.

Late in 1999, UltiMeth Systems created SeaFlow, a Java-based application for monitoring Seattle-area traffic conditions.  SeaFlow is a powerful desktop version of WSDOT’s web-based traffic map.  It uses the same WSDOT data but shows greater detail, allows customization, and reduces network traffic.

SeaFlow displays vehicle speeds, density, and count metrics.  (WSDOT’s map shows only density which is certainly useful, but not a complete picture.)  The visual color representation of each metric can be customized in SeaFlow.

In times of peak demand, such as December 18, 2008, WSDOT’s website may become overwhelemed and yield partial or missing maps.  SeaFlow’s use of the smaller WSDOT data file — with maps rendered on the client-side — reduces demand on WSDOT’s site and can provide more reliable and complete updates.

SeaFlow is a great Java desktop app — small, efficient, and cross-platform.  Its license is GPL.

12.11.2008

Java’s built-in garbage collection logging provides a quick, easy, and free way to profile or troubleshoot your Java application.  It can help you understand your application in terms of:

So, now you can answer questions like “how much memory is my app using,” “how much time is being spent doing garbage collection,” and “how big is the heap over time.”

For help analyzing and visualizing a GC log file, be sure to check out GCViewer, a garbage collection and heap analysis tool.

GC logging is enabled using JVM arguments; below are the arguments I use. Read more

12.03.2008

There’s no law which states web servers and servlet containers must be large, separate pieces of software.  If there were, Jetty would be a dangerous outlaw (possibly even public enemy number one).  Jetty is an open-source embeddable web server and servlet container, written in Java.  It’s small, fast, and easy to embed — perfect for self-contained applications.

Let’s use an example to discover just how easy embedding Jetty can be.  Read more