Thursday, January 28, 2010

tXtFL progress report

It's funny how some things sometimes happen all at once. For lab I found myself learning statistics, and suddenly I found myself needing those same tools for analyzing tXtFL simulator predictions. And just as I came to the point where tXtFL development needed nothing less than a game management system overhaul in the form of a new database, I found my lab data crying out for a shiny new SQLite database system resurrected from the mothballs of a bioinformatics class I took last year. Perhaps it's mere coincidence, perhaps the lessons from one domain open one's eyes to other areas, or perhaps tXtFL really is absolutely crucial to understanding lab and all of neuroscience.

Last year marked the release of tXtFL 1.0, sporting an entirely updated interface finally designed for a mouse-driven experience. After a few point releases, I'm now focusing on 2.0 development, starting at the core with work on a new database implementation. Here are some highlights included in the latest alpha2 pre-release.

The bulk of the work is summed up in this one line of output at startup. Behind this line is a new system to simplify and extend team and player management. The decrepit system through tXtFL 1.x has been to organize all team and player records in individual files, each acting as a config file with capability for hand-editing. As the number of fields and files grew, it became more and more of a mess to manage these files and, more importantly, more challenging to create modifications that might add new functionality. For example, one of most requested features is to add seasons, but this would likely require another set of files and new fields and sections in current files.

The database simplifies matters because adding new features is as simple as creating new database tables, and I/O transactions are pared down to a single location. While player and team downloads clocked in around 43 seconds on tests with tXtFL 1.1.1, they're down to 25 seconds in 2alpha2, an over 40% performance boost. Right now there are stub fields for new statistics such as stadium attendance, player salaries and years, seasons, and new leagues and rule sets, but unfortunately I haven't had time yet to implement them. Seasons are top priority for alpha3!

So far there are just a few visible changes to the simulator. I've been looking for ways to make tXtFL more web-interactive, and so far I've settled on a new Game Box for displaying news flashes, tXtFL blog postings, and links for getting connected with other football fans. It's sort of like a tXtFL "portal" for keeping up with tXtFL news and activities. As you can see from the URL bar, the current URL finally shows up, and by passing in version information the portal can also deliver version-specific news and update information. It's all truly a work in progress, so please let me know your feedback.

The Game Box is largely made possible because the underlying toolkit for tXtFL, SWT, has a built-in, fully-functional browser widget. Of course, what good is a browser if its size is fixed at 300 pixels? I stumbled upon the sash form SWT widget that allows one to expand a window area by dragging the divider. Now when you click on the wiki page, you can open the sash to view the full page width's contents in one glance. Heck, you can even use this as your primary browser! (not that even I do that, hehe)

There's only a game left in the season, but as usual, the tXtFL season is only just beginning!
Post a Comment