I've written a basic XQuery interface which, passed the filename of an existing graphic, constructs a TEI file which has an item list containing links to thumbnail images of the preceding 5 images, the selected image, and the following five, along with a link to the 800px version of the selected image. Basic metadata is parsed out of the file name. Where no image is passed, it defaults to the first scan in the db's list.
The next stage is to write the XSLT to turn this into a working page.
There'll be a campus-wide power outage on Sunday, so I've been unplugging everything in sight. Lab C is completely unplugged; Lab B has a class in it, and the CALL folks will handle shutting it down at the end of their day. All machines in R&D are unplugged, including printers, except my own machine, which I'll do last thing before I leave. The server room is a bit more problematic; here's a list of what I know about:
- Squash: no lab classes need it this afternoon, so I've shut it down through Terminal Services access.
- Chou: can't connect to it, and pinging it results in nothing, so I'm concluding it shut itself down at some point.
- Quince: Got the OK from Michael Joyce to shut it down, so it's off. Was able to log in through Putty, but the details in our documentation are wrong. Note to Greg: update the info.
- Idaho: I'll shut this down via SSH when I've done my backups for the day.
- Casper: doesn't seem to be running; no response to pings.
- Parsnip: I didn't really know anything about this server till I found it in the server room, but it seems to be the reborn Crossroads B -- presumably we don't need a Crossroads B, though, since the teacher stations can now run their own Crossroads? At any rate, nothing seemed to be running on it, so I shut it down.
- Machine handling video surveillance in ETCL: I have no idea what to do about this machine, and there are no instructions, so I'm leaving it running in case there are security implications from shutting it down. The UPS should bring it down gracefully when the time comes.
In the server room itself, I left the UPSes connected to the power; they're supposed to handle outages. Nothing else was plugged in except for a power bar supplying one of the KVMs, and I turned that off. Hope I've done all the right things here; we should really have some documentation on how to power off for outages in the server room.
Eoin reported a recurrent difficulty, which we were able to reproduce, and which seems to be the problem documented by Greg before he went away. RSRV.exe is not starting when users log on (although it's in the All Users startup menu folder), so when you start the Sanako program, you get an RSRV error; a side-effect appears to be that several items in the Sanako interface don't show up (such as the Program source controls). Starting RSRV.exe and restarting the Sanako program seem to solve the problem, so I put a shortcut to RSRV.exe on the All Users desktop, for quick access to a fix when the problem recurs.
RVAdded some new bio and abstract data to McCreesh, and fixed a bunch of coding errors related to citations and references in Helgason, reported by the author.
Not many ELC classes showed up yesterday, so in view of the heat I decided not to boot the student stations. In fact, several were still running in Lab C (C 18 and 21), and 18 was difficult to shut down. I've noticed a problem with the LG StudioWorks monitors: once they go to sleep, it's really hard to wake them up again.
Lab B teacher station was either left frozen overnight, or froze on bootup (I pressed the button and walked away, so I'm not sure whether it was already running or not). A forced reboot seemed to fix it.
Still holding the fort...
All 1858 documents in the db for which we have page images now have a reference to the image file of their start page. The next stage is to create a simple image browser so the user can work through the pages. I'm not aiming for anything ambitious at the moment.
Helped LW get some permissions set correctly on files she'd uploaded to the Philosophy site, which was easy; then she reported a couple of problems with the Courses page, which were more complicated. Firstly, it seems that although Stew reports having commented out the summer courses so that they wouldn't appear, in fact the line that prints them was not commented out; I did that, so the summer courses now don't appear.
Following that, there were three other problems reported by LW: two courses (239 and 305) were showing as available, when they should have been greyed out; I fixed that by removing them from the course_listing/courses_offered.php array for Winter. Secondly, LW reported that course 250 was missing completely. I confirmed that there was no sign of any data for a course numbered 250 in the site info, and checked the UVic calendar; it's missing there too, so I think that's a more fundamental problem, and I'm waiting for more info from LW on what we should do there.
Worked out and tested a method for using XUpdate to add an explicit <biblScope> tag to the header of documents for which we have image scans. The code is below. I borrowed (and slightly modified) a function from FunctX for padding strings. This has been successfully run on a test collection comprising all the 1858 documents. I'll do a backup of the whole database, and run it on the whole collection when I'm confident (or perhaps just integrate the updated files from the test collection).
declare default element namespace "http://www.tei-c.org/ns/1.0";
declare namespace functx = "http://www.functx.com";
declare function functx:pad-string-to-length
( $stringToPad as xs:string? ,
$padChar as xs:string ,
$length as xs:integer) as xs:string {
let $currLen := string-length($stringToPad),
$totalNewChars := ($length - $currLen),
$pad := if ($totalNewChars gt 0) then string-join(for $i in (1 to $totalNewChars) return $padChar, '') else ''
return concat($pad, $stringToPad)
} ;
for $t in collection('/db/coldesp/test/')//TEI[starts-with(./teiHeader/fileDesc/sourceDesc/bibl/date/@when, '1858')]
let $b := $t/teiHeader/fileDesc/sourceDesc/bibl,
$d := $t/teiHeader/fileDesc/sourceDesc/bibl/date,
$fname := concat('co_', $b/idno[@type='coNumber'], '_', functx:pad-string-to-length($b/idno[@type='coVol'], '0', 2), '_', functx:pad-string-to-length($b/idno[@type='page'], '0', 5), 'r.jpg'),
$bs := <biblScope type="startPageImage" facs="{concat('co_', $b/idno[@type='coNumber'], '_', functx:pad-string-to-length($b/idno[@type='coVol'], '0', 2), '/', $fname)}">{$fname}</biblScope>
where not($t/teiHeader/fileDesc/sourceDesc/bibl/biblScope[@type='startPageImage'])
return
if (collection('/db/coldesp/scans/')//graphic[@url=$fname]) then
<done>{update insert $bs preceding $d}</done>
else concat('Not used: ', $fname)