Whoa, it sure has been long since I wrote on this blog. Let’s fix that, shall we?
*Ahem* This is Jean-Francois Roy, live from Montréal-Pierre Elliott Trudeau International Airport. Tonight we have a special program, with exciting news about my various projects, and more! For a recap of what my summer projects are, have a look at Summer game plan.
Airport?
That’s right, I am leaving tomorrow today for beautiful San Francisco to assist Apple’s yearly Worldwide Developers Conference. In short, this is the most exciting week of the year for all Mac developers, with probably over 3000 of us converging on Moscone West convention center for sessions, labs, thematic lunches and evening fun in downtown clubs.
I thought it would be entertaining to post some pictures of where I currently am. After all, I am showing my geekiness by doing an all-night pre-WWDC coding marathon. Unfortunately, I only have my cell phone’s digital camera at my disposal, so these won’t be the greatest pictures ever. In any case and without further ado:

A table, some power, energy drinks. What else can you ask for?
Riven X
Truth be told, I have neglected Riven X these past 2 months. Between World of Warcraft, Longinus (the name of my World of Warcraft DKP and raid statistics system) and my summer internship at CHUL, I simply have not had the time to work on it seriously.
However, Riven X will be my priority at WWDC, as far as my projects are concerned. There are several components in my engine that need improvement, and I will take full advantage of Apple’s engineers in the various labs to address known issues. Stay tuned for more!
Longinus
Ah, so much to say about this. The project has become a lot bigger than I originally anticipated. Its objective is now to be a generic raid statistics tracking system as well as a generic (meaning extensible) item distribution system. An IDS is basically a method by which a guild distributes items that drop during raids to participating members. Alexstraza Dragon Riders uses slightly modified English auctions for example, while Trinity uses a zero-sum-based system.
There are two major components to Longinus.
The first is a World of Warcraft interface AddOn (thus written in Lua and XML) which handles gathering data during raids (such as player deaths, connection and disconnect events, joined raid and left raid events, boss fights (duration, outcome)) and in-game IDS functionality (for example, running an auction in the case of my guild).
The second is a Django-powered Python web application. Right now it only handles basic administrative functionality (officer checkout and commit), but I will eventually add public views to browser and consult raid statistics and all that good stuff.
The basic cycle of operation is as follows: an officer makes a data checkout. This essentially exports data the in-game AddOn required to function properly from the online database to a Lua file World of Warcraft will load (in WoW jargon, a saved variables Lua file). That checkout exists in the database and has a UUID, checkout timestamp, checkout officer, commit timestamp and commit officer (the latter two are of course initially NULL). There is no limit on the number of concurrent checkouts.
The officer then uses the in-game AddOn during raids for as long as he or she wants. However, after 3 days, Longinus will remind the officer, at most once per day, to commit back the data to the online database. When the officer does so, essentially by submitting his checkout saved variables file in a simple web form, the web application merges and updates the data in the database with the information from the saved variables file.
I’d like to finish by point (again) at the Trac wiki for Longinus. It’s got some interesting stuff, particularly the wowsv Python module, which not only loads Lua files (or Lua code as string data), but also serializes Python collections back to Lua code.
Wrapping up
Because Andrew is tired, I am going to wrap this entry now. Besides, I don’t have much else to report at this time. This was Jean-Francois Roy, for /dev/klog, in Montréal-Pierre Elliott Trudeau International Airport.





