It seems like ages since I promised a total rewrite of Libki. I even posted that the server was nearing completion. In retrospect, it seems that I must have posted that in a fit of insanity. In reality, I still haven’t found a server side technology that I am happy with. I’ve experimented with some many toolkits I’ve lost track. I’ve tried Zend, Symfony, and DIY solutions in PHP, as well as Catalyst on the Perl side. Catalyst is a great toolkit and I may use it on future projects, but it did not fit well with what I’m trying to accomplish with Libki. On the Ajax side I’ve tried jQuery, Dojo, and ExtJS. The big showstopper in every case is trying to get the server side application to play nice with the client side Ajax toolkit. It seems like everyone has come up with a different format for making Ajax requests and replies, and it’s maddening! Though this project is small, it’s not simple, and requires the ability to things that are not easy to accomplish with a standard framework. Google Web Toolkit looks to be promising. Server side code generates all the client side code automatically, and the authors of ExtJS have created GWT libraries as well!
But enough ranting, this post is about actual progress! My plan has been to develop the new server and client side by side. My difficulty finding a server architecture I’m happy with has lead to stagnation on the client side. The new client has been sitting half finished for far too long. In the interest of progress, I have finished the client and written a new server side api for it to use.
The new client no longer connects to the server database directly, which was never a good idea to begin with ( this design is a holdover from Libki’s roots as a piecemeal replacement for OutKafe, a kiosk management system project that hasn’t been updated in years ). Instead, the communications between client and server are simple ajax requests.
The benefits of the new client are, in my opinion, tremendous.
- A compiled executable, starts up extremely fast.
- No more PHP/Gtk! No more relying on the dead Gnope project for PHP/Gtk on Windows!
- The new client has an installer, installation and configuration takes less than a minute!
- Visually, the new client is much more pleasing.
- System tray icon with balloon warnings for time left.
I would love to put out the new client immediately, but I need to shore up the server side code and put it in a git repo before I can release it. Adding it to an existing Libki server should prove to be a relatively simple process.