As mentioned last night, today's first order of business was to get seach working. At the moment this is limited to searching for modems. One of the key requirements, however (again, none of this actually laid out in the original spec, we just decided on Friday) is that search be such that you can optionally limit it to the modems which are children of a given group.
That wasn't a particularly hard thing to implement given the structure of the application. Basically just check the flag and use either the root mapping or the target group as the source for the "modems" mapping. However, I also wanted to allow for sorting within the result-set, so I decided to make the searches session-stored objects that store their queried modem-set for sorting. Since they now have a "modems" mapping, the search results themselves are now searchable.
Discovered another minor bug (sorting on counter values fails... well, intuitively it fails, it does what it's supposed to do, sorting by last value, but the user sees the averaged total rate, so the sorting looks entirely random). Also decided on another potential todo item (tweaking the hierarchic graph displays to put more levels on a page if there are fewer elements in total being displayed).
Found a work-around for the evil database bug. For the mode desired by the Sheer people it's perfectly fine, but it's not something that ACI would want to use (it would mess up the group history). Anyway, for the demo, that takes care of the required functionality. Still need to find and kill the DB bug, but the memory leak bug, and the device hierarchy and data graph implementations take precedence for the last 5 hours of the project I think.