Libki 16.04 (Farnsworth) released!

It’s been too long since the last release! Although it’s been two years since the last official Libki release, that hasn’t slowed down development at all! Some of the new features in Libki include:

  • Server internationalization! Current translations include English and Swedish ( thanks Eric! ). If you would like your native language to be supported, let me know!
  • Improved SIP2 support. Libki can now work with many more different SIP2 server configurations.
  • Ability to restrict client usage by age ( when using SIP2 ).
  • Ability to use arbitrary SIP2 fields to deny logins with a custom message.
  • Ability to let a patron know he or she has waiting holds ( when using SIP2 )
  • Automatic time extensions during periods of low computer usage.
  • Support for closing hours. Set your closing hours and Libki will not give users more minutes than they can use up to closing. Closing hours can be set per location.
  • Ability to automatically clear out user history after a given number of days

Download the Libki Server 16.04 source from GitHub. As always, I recommend installing Libki Server via git.

Download the Libki Client 16.04 for Windows from GitHub as well. For other operating systems, you’ll need to build the client for source.


Libki 14.02 ( Leela ) Released!

Hey All,

The latest version of the Libki client and server are out the door!

Here are some highlights:

  • Add ability to deny logins if SIP2 patron status flags are set when using SIP2
  • Add ability to disallow logins if patron has exceeded fee limits when using SIP2
  • Add the ability to give users multiple sessions daily
  • Add backdoor password option to Libki client which makes closing the Libki client without server access trivial
  • Bug fix – When using SIP, reservations cannot be made by users who have never logged into a client pc

As always, you can download the latest client here:

The latest server release can be obtained by checking out ‘leela’ or ‘r14.02’ via git.

ByWater Solutions Demoing Libki at ALA Annual

ByWater Solutions announced this week that they will offer support, installation and hosting for Libki. To learn more about Libki please visit booth #117 at the ALA Annual Conference in Chicago, IL to meet the ByWater team, see a demo or ask questions.

Organized Libki demos will be offered at these times:

  • Friday, June 28: 5:15pm
  • Saturday, June 29: 11:30am
  • Saturday, June 29: 2:00pm
  • Sunday, June 30: 11:00am
  • Sunday, June 30: 4:00pm
  • Monday, July 1: 9:30am

We’ll of course show you anything specific should you stop by at any time!

Libki 2.0 is here!

Hello all,

It looks like Libki 2.0 is about ready for prime time! There are just a small number of tasks left to take care of ( documentation and a database updater being the first that comes to mind ). Once that is done I’ll create a release tag in the repositories and we’ll be on our way!

In the mean time, here is an article I and some compatriots wrote that has been published by Code4Lib!

Libki Client 1.0 Nearing Release

Hello All,

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.

Stay tuned!


Libki Rewrite Status Update

I thought everyone might appreciate knowing how the rewrite is coming along. So far, the server side administration app is nearing completion. Authentication is all that is left to do. The entire app is fully ajax powered and is a single page for everything! It works very well, but could still use some tweaking here and there. After the admin app is done, I will write the REST api, and then be able to finish the client. At that point, phase 1 will be complete!

Libki : The Next Generation

Hello All,

It may appear that development of Libki has been stagnant recently. Rest assured, it is not! I’m working on a complete rewrite. While the current version is function, I want the new version to be beautiful. I want it to be a joy to use. To make this a reality, I have spent many, many hours thinking about how to accomplish this.

So far, I have the new Libki client half written. I have switched from PHP/Gtk+ to C++/Qt4. This brings many advantages. First, as it is compiled, start-up times should increase dramatically. Second, there will no longer any dependencies to install ( i.e. Gnope ). Third, there will be a simple Windows installer ( and .deb packages for Linux ). In addition, it just looks really great ( preview screen shots are available at my personal site ).

Both the client and server should be fully translatable for users whose primary language is not English.

The new server is planned to be written using the Catalyst Perl framework. This brings many advantages as well, API stability being the primary reason. The web interfaces will be completely AJAX enabled, powered by Jquery.

Here is the timeline as I have planned it:

Phase 1

  • Functioning Server & Client
  • AJAX powered web administration
  • Only the most basic features will be included ( internal user authentication, all existing features ).
  • Fix obvious issues from the current version ( the need to refresh the page, the ability to change passwords, etc. )

Phase 2

  • Reservations System
  • SIP2 User Authentication
  • REST API for getting information from the server

Phase 3

  • SIP2 Age Verification
  • Configurable Time Warnings
  • SMS User Notifications
  • Cross-Platform Reboot/Shutdown
  • Closing Time Logout/Shutdown
  • Automatic Re-enabling of disabled users.
  • Pre-assign a Kiosk to a User from the web administration inteface.

Phase 4

  • Print Management ( most likely integration with PyKota ).

Phase 5

  • Make reservations via SMS.
  • LDAP Authentication

Libki Updates

There have been alot of updates to Libki recently. The reservations system is still a work in progress. The largest change is that there has been a major update to CakePHP, and Libki has been updated for it. The downside is that it will no longer function with older version of CakePHP, so if you update your installation of Libki, make sure to update your installation of CakePHP to the newest version first. Next on the list is AJAX-ifying the web administration, no more hitting the refresh button repeatedly!

Libki 0.2 Is Out The Door!

Hey All,

The official 0.2 release is now available on Sourceforge! The biggest noticable updates are the Clients view, and the troublemaker status.

Libki clients now register themselves with the server, so the clients view allows you to see all the available clients, and which clients have users logged in.

The troublemaker status is a way of tagging abused accounts. If an account is marked as a troublemaker, the accounts password is disabled nightly, forcing the owner of the marked account to have a libki admin reset the password each day before it can be used. In my library, we found that some teenagers were using their friends accounts to get extra time, sometimes 3 or 4 extra account numbers, this allows us to tag all those accounts.

Download Libki 0.2

Coming attractions:

More Koha integration.