Tilion Live Tournament Manager Demo

Imagine the scene … you’re running a pool competition and need some way to coordinate everything on the day. You could use pieces of paper, even excel spreadsheets, but wouldn’t it be easier if you could do it all in one simple software application?

What follows isn’t a new idea and doesn’t necessarily include new concepts. However, it is my take on a solution that allows me to continually extend if necessary – it’s often very difficult to extend someone else’s work, especially if it is closed source.

Screenshots

Players overview: when you announce a competition you’ll get a list of players stating their interest, some even paying you money, but at this point there is no guarantee they’ll turn up on the day.

Competitions overview: most competitions I’ve been involved in include a main event and then a plate event to keep early round losers interested. Competitions have multiple rounds and can be run simultaneously over the available tables.

Teams overview: for most competitions this tab would be better named as Registered Players, but the software is designed to work for single, or team events, in the same way. When the players arrive at the venue you can register them by creating a team entry (1 or more players per team) for a particular competition.

Matches overview: this tab shows a complete list of matches that need to be played. Grouped by competition/round and showing home team and away team.

Tables overview: tables available for use at the venue. Each table has a status so you can tell if it’s in use, or the players on it just happen to be practicing and causing delays!

Status: this page is where the benefit of using a software application comes into its own. At the top you can see the currently in progress matches. At the bottom you can see a list of matches that need to be played and if there are any free tables.

Omissions from this first demo?

Yes, there are some things missing and some things I’ll change as development progresses. For example, most tabs include a data entry area and an Add button which makes development/testing easier, but these will be moved into dialog boxes in time as they clutter up the main UI.

There’s also no obvious way to create matches between teams. This is coming, although it’s a bit more complex than other tabs as it needs to include a manual match creation and a randomised draw creation.

Results, I don’t see anywhere I can see match results! Again, an extra tab to be developed. The reason it’s not in the demo screenshots is that I don’t want it to be a tab in the same way as the other sections. I want it to be a separate window so those that run tournaments with a laptop and second screen can display the results window on the second screen. This allows players to come and see results (as well as the draw) without having to bug the organiser with questions.

Finally, the extra bits only possible by a software application. What if there was an internet forum you planned to update with results throughout the day? Wouldn’t it be nice if there was a Publish button that did everything for you – from logging into the forum, formatting the results and continually updating each time you click the Publish button? And, what about a website? A lot of organisers need their results published in a way they can put on their website.

The development continues …

Notification Wrapper

In a few of my projects I need to provide feedback using notifications, configurable by the user. What I need is a lightweight framework that allows a user to subscribe to notifications via various channels, e.g. growl, taskbar notification, email, sms, instant message, etc. Varying levels of severity, perhaps 5.

I’ve not researched this a huge amount, so there is likely something out there that can provide most of my requirements. Initial searches show up web service solutions, but I need this to be local to the client machine or network for some channels of notification.

Requirements

  • Subscribe to notifications from various channels with various levels of severity (thinking logging conifgurations)
  • Fire notification events and let the framework handle distributing them to the subscribers

Implementation

  • Configure new plugin wrapper via a configuration file – probably go down the Spring route for this
  • OSX growl implementation using a native libgrowl library
  • Windows growl implementation, libgrowl, using the java library that supports GNTP (Growl Network Transport Protocol)
  • Java 6 system tray integration for taskbar notifications – looks crap on OSX

Progress

Initial concept developed and working, but not a reusable library

Cue Sport Diagrams

If you’re creating diagrams of ball positions on a pool table it would be much easier if there was a dedicated tool rather than trying to use a paint package all the time. Whether you’re trying to show your friends a position from a recent frame or describing a practice routine, you’d need the same tools.

I came across a tool that does most of what you’d need, but it is based around US 9 ball tables. The tool is called Cue Table, although it is a bit buried within the forum section of the site.

Requirements

  • Select a cue sport table to show the correct background (7×4 uk 8 ball, 6×3 uk 8 ball, etc)
  • Drag and drop balls into position on the backgrond image
  • Create line paths if ball movement needs to be displayed
  • Create multiple scenes within a diagram if the scenario is better illustrated with multiple steps

Progress

Draft version created and functional, below is a rough idea of the save format.

<diagram name="Yesterday" width="800" height="450">
  <scene name="Default">
    <background image="7x4_uk8ball.jpeg">
      <coord x="0" y="0"/>
    </background>
    <icon name="red1" image="50mmRedBall.png">
      <coord x="100" y="150"/>
    </icon>
    <icon name="white1" image="50mmWhiteBall.png">
      <coord x="190" y="150"/>
    </icon>
    <path colour="red" arrowhead="end">
      <coord x="100" y="150"/>
      <coord x="790" y="155"/>
      <coord x="650" y="160"/>
    </path>
  </scene>
</diagram>

Backup Tool

Backup tools are not in short supply, but simplicity isn’t always a word I’d use to describe some solutions. I make extensive use of rsync, but without a simple equivalent on windows (although DeltaCopy looks promising) it’s hard to backup consistently across many platforms. Having the backup storage mirror the files so you can easily navigate and restore a lost file is also important.

This tool isn’t very high on my list these days due to suitable alternatives.

Requirements

  • Backup files to a local disk
  • Backup files to a remote disk over FTP
  • Backup files to a remote disk over SFTP
  • Backup files allowing individual file transformations, i.e. zip, encryption

Progress

Initial version developed, but poorly designed file wrapper class means rewrite is necessary

Dropbox Clone

Dropbox is a great idea with nice GUIs for multiple platforms, as well as a web interface. The problem is, if you’re a business you have to pay for a decent amount of storage – even 100GB isn’t enough sometimes. Plus, if your data is client confidential, the last thing you want to do is store it on a server out of your control. You could put it in a truecrypt vault, but backing up a binary blob isn’t great considering it will need an update for each slight change (this may be negated somewhat by Dropbox using rsync style technology for only transfering binary differences, not the whole file).

There is a project in it’s early stages, as I write this (Oct 2010), that can solve some of the problems – SparkleShare. It allows you to use your own server to store the files, removing the problems of insufficient storage space and using untrusted servers to store your confidential data.

That’s it right? Just wait for SparkleShare to reach a production level product? Well maybe … but I have more requirements for the environment I work in. We use a very large amount of disk space as we deal with video files, amongst other things. Employees tend to syncronise the parts of the remote storage they require to their local machine. Changes are re-synchronised on a ‘updated files only’ basis, but this is hardly full proof and only works at the moment due to the small number of employees with access. There is also no ability to backtrack changes, apart from resorting to the nightly backups. So, what would I like from a dropbox clone?

Requirements

  • Dropbox style folder on local machine that automatically stays in sync with the server
  • File versioning with the ability to backtrack changes (binary blob only, no subversion style change tracking)
  • Web interface for remote file access
  • File/folder filtering to allow the local directory to only synchronise part of the remote storage, while keeping the folder structure (remember it may be huge!)
  • Remote storage accessed over common file transfer protocols, such as FTP, or more likely SFTP

Implementation

  • Local file system change monitoring using JNotify
  • Hand crafted flat file DB system on remote storage to remove the need for a DB or server software. The clients will understand how to interpret the meta files stored alongside the actual data files/folders.

Progress

Planning – not started