The Book App Dockerization Project

This is an informal project for myself where I've been over time working to dockerize as many of the apps from my various books as possible. The idea is that people - even people who haven't read my books - should be able to pull a Docker image from Docker Hub and run the apps from my books quickly and easily. Docker, of course, it tailor-made for such things (as opposed to what sometimes happens with code in books: it doesn't work later when dependencies or versions have changed out from underneath the original code), and I thought it would be a good idea for that reason alone.


The Java Web Parts (JWP) project (includes APT)

JWP is a project that provides small, reusable and largely independant Java components of interest to all web application developers. You can think of this project as being similar to the Jakarta Commons projects. JWP is comprised o f a number of packages, each supplied in their own individual JAR, with little (ideally no) cross-dependency. The most famous package, and by far the most popular, is the AjaxParts Taglib (APT), which allows for adding Ajax functionality to JSP-based webapps without having to write ANY JavaScript yourself. Frank founded and still leads this project.



DataVision is an Open Source reporting tool similar to Crystal Reports. Reports can be designed using a drag-and-drop GUI. They may be run, viewed, and printed from the application or exported as HTML, XML, PDF, Excel, LaTeX2e, DocBook, or tab- or comma-delimited text files. The output files produced by LaTeX2e and DocBook can in turn be used to produce PDF, text, HTML, PostScript, and more. DataVision is written in Java and runs almost anywhere. It can generate reports from databases or text data files. Any database with an available JDBC driver should work: Oracle, PostgreSQL, MySQL, Informix, hsqldb, Microsoft Access, Progress, and more. Columns read from text files can be separated by any character. DataVision was originally developed by Jim Menard but is now maintained and developed by Frank.


Struts Applications

The goals of the Struts Applications Project are to provide e xample Struts applications, to host Struts extensions and utilities, and to put the code out where the Community can use it, fix it, and maintain it. Frank has contributed a number of applications including the original Struts-centric version of AjaxTags, and AjaxChat, a chat server/client written on top of Struts and utilizing Ajax techniques.


Struts Web Services Enablement Projects (StrutsWS)

This project provides a simple mechanism whereby existing business logic components of a Struts-based application can be exposed as rudimentary Web Services without the need to change any existing application code. Frank established this project but is not actively developing it at this time.



PocketFrog is *THE* game library to rapidly write blazing fast games on the Pocket PC platform. It is implemented in C++ with an object oriented design. If your application needs to harness the raw power of your Pocket PC graphics, PocketFrog is for you. Frank contributed some updates to this project and set up the SourceForge project for it and serves as administrator there.



Planet Yazaar creates and maintains community-supported additions to the Yahoo! User Interface (YUI) Library (Yahoo + Bazaar = Yazaar). Yazaar offers three key services to the YUI community: A vehicle for accepting and maintaining contributor extensions in a common location, either in the form of code or documentation ... 'Soup to nuts' project documentation, including as coding style guidelines and build systems ... A public repository with version to version change logs. Frank contributed an example application and is a committer on this project.


Struts2 DataVision Plugin

A Struts2 plugin providing integration with the open-source reporting package DataVision. This plugin provides a new Result type and package for Struts2 that allows you to easy integrate with DataVision. Configuration is very easy (nearly everything has an intelligent default, you could literally get away with only a single configuration parameter) yet flexible (there are multiple ways to configure all parameters). With DataVision in your Struts2 application, you can produce PDF, Excel, LaTeX, DocBook, comma-separated and other formatted output for display or download quickly and easily. Frank created this plugin and set up the Google Code project.


Struts2 APT Plugin

The AjaxParts Taglib (APT) is a component of the Java Web Parts (JWP) project that allows for 100% declarative (read: no Javascript coding required!) AJAX functionality within a Java-based webapp. It is especially a great solution for situations where you have an existing application that you need to add some AJAX to (but it's very good for new development too of course!) This project is a plugin for Struts2 that allows quick and easy usage of APT with Struts2 in a typical plugin form. Frank created this plugin and set up the Google Code project.


Apache Commons IO

I've had a few patches accepted and committed in this project (no details here, you'll have to dig through the commit logs or the source code itself to find out!)


Palm webOS Examples

A project I started that is meant to be a repository for Palm webOS code examples. Currently it hosts a first cut at a benchmark app for the Pre, specifically to research performance issues around the canvas tag and GC impact on game development, but will host more later (one other developer has now joined, if anyone else wants in, contact me!)


Palm GitHub Project

I'm not actually a member of this project per se, but I did contribute some code there, specifically the webOS game Far Out Fowl that I wrote an article about for Palm's Developer Network (see the section on books and articles for information and link).


Packt Publishing Open Source Awards

JavaScript Library Judges

In 2010 I was one of the judges in the Packt Publishing Open Source Awards in the JavaScript Library category.