Hog
Plans for, and known bugs in, the Hog module.
Module Purpose
Hog ("Hand of God") is a web-based administrative front-end for Fun-o-Matic. It allows an cybercafe attendent to monitor the status of all managed stations, as well as to send commands to FomAgent on selected stations, and view any results returned by FomAgent.
There is also a separate status-only web page that combines a Hog-like station status display with other information, such as RRDTool graphs and webcam photos, that is essentially a subset of Hog's code. This may be broken out to be a separate module in the future.
Module Status
Version 2 of Hog is stable and in use.
Known Bugs
- Doesn't look right in IE because of IE rendering bugs; is it worth adding IE-specific work-arounds?
- If process name is really long it can stretch out of a cell and into the next cell to the left (because process names are right justified). Add code to artificially shorten process names if this is going to happen--maybe by adding ellipses?
Features Planned for Version 3
- Integration with Librarian and Customer Database modules.
- Consider integration with Totals module.
- Scripting: ability to define your own command "scripts" that could be selected for execution from a pull-down menu.
- More flexibility on placing icons on status grid--use CSS positioning, rather than just a rigid table layout; also, ability to use a custom background, such as a floorplan or photograph.
- Keep a local cache of station status so that icons change immediately rather than waiting for next ShowGames scan.
- Use an iconic way to display station volume levels and to allow volume to be changed in a GUI way?
- Make grid icons do something visual if PC is "in use" but has idle time over a certain threshold (i.e. someone probably forgot to reset the station after a customer left).
- Nicer controls: use pull-down menus to select play sounds, to pick msgBox window flags, to select modes, etc.; set volume from a slider, etc.
- Allow msgBox to be run in background somehow, so that Hog doesn’t wait for a user response that could take a long time. . . maybe create a pop-up window to display the results? Also, translate msgBox numeric return into English.
- Change current system of process “signatures” to regexes, instead.
- Consider adding a Steam-like streaming update facility: files in a server “update” folder are automatically FTPed to local “update” folders on each PC-—but only when those PCs are idle. If a PC becomes non-idle, transfers stop until it’s idle again. (Is Hog the place to put this?).
- Ability to “play back” old usage logs: given a date and time, display what was being played on each computer at that time, with buttons to move forward and backward in time as well. Useful for tracking down errors in customer records.
- Hovering mouse over a station icon displays additional data, like idle time.
- Some kind of optional feature to display realtime data taken from squid log files—so you can see what people are looking at.
- Logic for converting process paths to application names should probably be in ShowGames, not Hog.
- Replace basic authentication with cookie authentication, so users don't need to keep logging in.
- Instead of generating HTML directly, switch to using a template system. This would make the code easier to follow, and make the display easier to customize.
- Think about using AJAX in Hog; really, Hog is about dozens of seperate interfaces (one per gamestation) on a single page--so why reload the whole page when there doing something with a single gamestation? AJAX might make it possible for the interface to be more responsive and intuitive.
Long-Term Features Planned for Hog
- Web interface to view/enter/change Hog/ShowGames configuration.
- Consider changing multithreading architecture from using ithreads to using pre-running server processes, instead; this would allow faster execution. Number of server processes could be dynamically raised or lowered depending on load.
- Consider using "zero configuration" technology; Hog could scan its subnet to find fomAgent instances it can talk to.