NB sent me four data files for JMatch exercises, for chapter 7 of the ARRIBA text book, so I've turned those into thirteen different flashcard and matching exercises, including a summary review exercise at the end. I've also added graphics to all of the exercises, where suitable images were available in our clipart library. The new ARRIBA site has been slotted into the existing site, and linked to and from the practice tests pages, as well as the Resources and Links page. Wrote to RLS and NB to let them know.
Working on the VM, which is finally working...
No time to document -- that'll come tomorrow -- but I have it working, and have been able to compile projects (Transformer and IMT).
get_events.php gets the data for a specified article from the eXist db. It then invokes events.xsl to transform that raw xml to create a new instance of the javascript variable movie and populate it. Here's a snippet from the xsl file that generates the necessary code for an utterance which has a who attribute. The particDesc of that utterer is assumed by this code to contain only a pers and persName element and the text in the persName element.
<xsl:when test="@who">
<!-- get the value of the who attribute, which as a pointer to an id begins with a #, and strip the # -->
<xsl:variable name="utterer" ><xsl:value-of select="translate(@who,'#','')"></xsl:value-of></xsl:variable>
<!-- get the text of the particDesc node (remember to use the tei namespace) whose id matches what's in utterer -->
<!-- this call works down through the pers and persName elements within that particDesc element, there are no other elements or text -->
<!-- for particDesc instances that have more complex internals, I'll need to be more explicit in that particDesc selector -->
<xsl:value-of select="id(@start)/../@xml:id"/>.addEvent('<xsl:value-of
select="id(@start)/@absolute"/>','<xsl:value-of select="id(@end)/@absolute"/>',
'utterance', '<div class="interviewer"><xsl:value-of
select="//tei:particDesc[@xml:id = $utterer]" /> : <xsl:apply-templates/></div>', '<xsl:value-of select="@start"/>');
</xsl:when>
Here's a snippet of the output for two utterances, the first if the who attribute of the utterance is empty and the second if the who attribute of the utterance has a value that points to a particDesc/pers/persName element containing the text "interviewer"
test1t1.addEvent('00:00:00.000','00:00:06.420','utterance', ' text here', 'test1u0');
test1t1.addEvent('00:00:06.420','00:00:18.260','utterance', '<div class="interviewer">interviewer: text here . </div>', 'test1u1');
EM has started work on adding reference material for all the classical allusions etc. in the Sonnet (1621 version). I've created a file called references.xml, which EM is editing; it has a separate <div> for each "topic", with a unique @xml:id attribute. References in the text are linked like this:
<ref type="reference" target="references.xml#topicId">blah</ref>
Once we have a fully marked-up document, I'll be able to write the handling code (intercepting handling of existing <ref> elements, which have no @type attribute, and which handle cross-references in editorial notes.
CC asked if we could make it possible to identify who spoke each utterance. First case: interviewer and subject; case two: multiple subjects.
I will add a particdesc element with xml:id = "interviewer" and then a who="#interviewer" attribute to the u element in the data file. That's TEI.
The very major headache is trying to figure out how those utterances get into a javascript array where they are accessed by the page. I can't figure that out. My hope is to modify the xslt so that some css attributes change for utterances by the interviewer, and then for that to be passed through into the javascript array. I may experiment first with the code that winds up as the transcript of the whole dialog as it has it's own xslt file (transcript_in_div.xsl).
There was no chance of finishing the entire set of scans for the Lansdowne scholar because the scanning machine is scheduled for use, so I completed the gathering I had started yesterday, then scanned only the pages he flagged yesterday, then burned a CD of the results.
I've partially succeeded in getting a working VM, by doing this:
- A fresh install of Windows in an empty VM, using Greg's proven disk.
- Logging in as administrator, and creating my regular user account (with the same name and pw as on the original machine).
- Installing the VirtualBox add-ins (this failed once, and I had to reboot the VM and run the installer manually; it shows up on a VBox mapped virtual drive).
- Mounting the folder containing the backup file (have to share it first in Ubuntu, then mount it under VBox).
- Using Windows Backup to restore from the backup file. This went smoothly, except that it complained that a couple of system files had been replaced, and would have to be restored from the disk. I re-mounted the installer CD to allow this.
This basically worked, but broke a few things. IE would not run, so neither would Windows Update; I had to manually download the IE7 installer and re-install it (this took ages). Then I was able to run Windows Update, and I'm currently installing SP3.
Delphi runs, but can't open any projects, complaining of an "Invalid install", and saying that Delphi.Personality is not configured. This might be a showstopper, but before I take it on, I'm going to do all the relevant Windows updates and also install .NET, which Delphi needs. If that doesn't work, I may have to do some kind of rescue-install from the original disks.
Further testing of recent modifications and report by ML indicated that for records with two treatments, only one seemed to be displayed. Turned out to be an instance of the classic '"=" instead of "==" operator in an IF clause' bug in my php in searchresults.php. Fixed that.
Also abstracted out the delimiter used to separate multiple values in one field (treatments, examiners, conditions) and put that in a variable so that it's easy to change that from the current vertical pipe to a comma or semi-colon if desired.
Built a VM from the SP3 slipstream disk, but it failed twice; tried another from an OEM disk, but this could not be activated. I think the slipstream disk is broken, but Greg is going to build me a VMWare image from another one, and then I'll unroll the backup of my old machine into it. That's pretty much my last hope; failing that, I think I'll have to keep the old machine around to do Windows programming, or try VMWare (which I don't like, and which costs money).