Cleaned up most of my bench.
Casper seems to be dying again. BSOD nearly every time I boot it up. Reconsidering Casper-as-VM.
Choices:
Virtualize it and run Casper from it's own external drive.
Rebuild it with another motherboard/machine.
Category: "Activity log"
A few things that might of use:
1) Installing Hardy as the second OS (no Windows) was a bit of a pain. I was trying to follow instructions that recommended that GRUB get installed on the partition that Linux was installed on. Turns out that in the case of a dual-boot (where we don't have to care about Windows) you can just install GRUB where it wants to be - in this case (hd,0). OS X doesn't care, and Linux is happy. Haven't tried this with a triple-boot yet, though.
2) browsing the rEFIt site I found this:
++++++++++++++++++++++++
If you want good graphics support in Linux, you must boot it using BIOS compatibility mode. This also means using LILO or GRUB, and having a MBR partition table (either hybrid GPT/MBR or plain MBR).
The X.org / XFree86 drivers for Intel and ATI hardware require a Video BIOS to initialize the card. The Linux text console also relies on the Video BIOS. Apple’s firmware only provides a Video BIOS when booting in BIOS compatibility mode. Without it, you only get unaccellerated frame buffer graphics.
++++++++++++++++++++++++
So I guess that's why wobbly windows works in Linux now.
Long story short: use an MBR when setting up dual/triple-boot Macs.
3) Did a quick test with rsync-as-machine-update-mechanism: I created a wee disk image pair, then updated the source dmg, re-ran rsync and found that the entire dmg was "uploaded". It doesn't look like it's diffing the binary files and merely uploading the different bits. This is strange because I was quite certain that *was* the way that rsync worked. I'll continue looking in to this.
Helped Greg a bit with this, since I've already done OS updates on my own OLPC.
Pinched ETCLs OLPC and started hacking on it to see if I could update the OS.
Had to open up the wireless to get online, then ran a firmware updater (instructions and direct link to firmware images), followed by an OS upgrade (instructions and direct link to images).
RESULT: all is well. New firmware installed happily as did the new OS. WPA2/AES works (not sure about SSIDs that aren't being broadcast, though).
Of interest is the VMware images available from here.
So I've been beavering away on a system that dual (or triple) boots AND provides a local R/W storage partition that is accessible from each OS. Choosing a common filesystem is tough, though:
* EXT2/3 drive exists for Windows, but the only one available for Mac OS doesn't work properly, so that's out.
* HFS+ drivers exist for Linux, but the Windows one costs $40+/machine - too much
* FAT32 is crap for all kinds of reasons.
* NTFS drivers exist for Linux and Mac OS (NTFS-3G) but when I write a file to the NTFS data partition from Mac OS the data is gone on reboot - this not a good thing. I discovered that it is because NTFS-3G is a userspace filesystem it generates a UUID for the partition each time. I *think* this is why the data is toasted, but I don't find others complaining (why?).
* other, more exotic filesystems (JFS, ReiserFS, ZFS, UFS etc.) aren't supported well enough on ANY non-native operating system.
I conclude that this is not worth solving in the context of a lab setup. Here's one solution:
The new labs will require a server to store teaching materials. We can build an inexpensive machine (>$2000) with heaps of storage (~4TB) and multiple NICs, on a gigabit network. The machine will export NFS and SMB/CIFS shares that get picked up by Mac OS (NFS) and Windows (SMB/CIFS). This will provide very fast storage that is available from any machine in the domain.
Some hotfixes and updates are not labelled with a date. nLite requires them to be sorted by date, as that is the order nLite slipstreams the patches. As of now, the updates that we care about, with no date stamp are:
IE7-WINDOWSXP-X86-ENU.exe - release date: 2007/10/04
KB923789 - 2006/11/14
Others have screwy dates (instead of yyyy/mo/dd some patches use something like mo/dd/yyyy)
Other patches cannot be integrated for some reason (no feedback on error):
js56nen - release date: 2003/03/19
KB824105 - release date: 2003/09/03
HMTCDWizard (included in a RyanVM Addon, though) - release date: 2003/09/25
KB833407 - release date: 2004/02/10
gdidettool - release date: 2004/09/14
KB917283 - release date: 2006/07/11
KB937057 - release date: 2007/09/11
KB937058 - release date: 2007/09/11
KB937059 - release date: 2007/09/11
KB937060 - release date: 2007/09/11
The last four (937057-060) are VBStudio patches and I'm not sure they *need* to be slipped.
I'll try using HFSlip on these, but I'm not sure when I should slip them.
Slipstreaming WMP11 has been problematic unless I slip it without additional patches. I'm going to try adding the patches with nLite or HFSlip
Others still complain in a nondescript fashion:
KB890830-V1.35.exe (error is: not to be installed, but run)
WindowsRightsManagementServicesSP2-KB917275... (error is: not supported for integration)
Slow work this.
Slipstreamed WMP11, Hotfixes and so forth, creating zip packages at each stage before proceeding.
Created initial build with nLite. Next step is to integrate the Driver Packs. Then I'll have an ISO to test.
The appealing part of all this is that I can potentially create a *Universal* install disk, install it in VMware, spruce it up with apps and so forth, then export it for use on a *real* computer. With all the drivers there already it shouldn't be too big a deal. Documentation exists for doing this (V2P) at the VMware site.
Also, found an interesting tool called "Windows Updates Downloader" here. It does what it says.
Greg and I have now deployed Cocoon servlets on Tomcat a number of times, and we've come up with some detailed documentation. This is the state of the art as of today, based on our experience deploying the Cocoon containing the teiJournal application for the IALLT Journal on Tomcat 6.0.14 running on Lettuce.
- First, check your Tomcat setting to make sure it's been modified to handle character encodings in documents and URIs as UTF-8. There are two aspects to this:
- The process must be launched with the
dFile.encoding="UTF-8"flag on the command line. - Check that you set the
URIEncodingparameter of the<Connector>tag in the[tomcat]/conf/server.xmlfile, like this:<Connector port="8081" protocol="HTTP/1.1" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8444" />
- The process must be launched with the
- Change
web.xmlto rename the application from "Cocoon" to "teiJournal". We don't actually know what this DOES, but we think it's probably the right thing to do, and it will prevent there being multiple applications running under the same Tomcat with the same servlet name. - Also change
web.xmlto set all encodings to UTF-8 (some are still 8859-1 in the default setup). This assumes that the Tomcat process is itself being launched with a UTF-8 flag in the VM, as part of the Java launch command. Finally, you may want to change thelog-levelparameter fromWARNtoDEBUG, to get better debug messages from your application. - Rename the
WARfile to something that works for you. In these instructions, we'll assume you renamed it to ialltjournal.war, which will result in an application that deploys in a directory called ialltjournal. - Deploy the application itself by putting the
WARfile in thewebappsdirectory of Tomcat. Restart Tomcat, and check that the application has deployed OK by going into the Tomcat manager application to see it, and also going to:[port#]/ialltjournal/. - Delete the WAR file from the server, so that it is not deployed again.
- Stop ialltjournal from within the Tomcat manager so you can add some custom Java libraries.
- For teiJournal, add the following libraries to
ialltjournal/WEB-INF/lib:TitleSortComparator.jar(sorts titles ignoring leading articles, etc.)xqSearchUtils.jar(contains the search-string parsing functionality used for teiJournal's search).
TitleSortComparatorwas written with Eclipse, and will be found in your Eclipse workspace folder;xqSearchUtilswas written with NetBeans, and will be found in your NetBeans project folder. - For support of XSLT 2.0, you need to add and configure the Saxon 9 libraries. Get the Saxon-B download from here. Then extract all the
.jarlibraries intococoon/WEB-INF/lib. - Now we need to configure Cocoon so that Saxon can be called. First, open cocoon/WEB-INF/cocoon.xconf, and find the bit that refers to Saxon XSLT, which is commented out by default. Uncomment the code and change it according to the instructions in the file, so that it enables Saxon 9:
<component logger="core.xslt" role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon" class="org.apache.cocoon.components.xslt.TraxProcessor"> <parameter name="use-store" value="true"/> <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"/> </component> - Now we need to edit
cocoon/sitemap.xmapto enable the Saxon transformer. In the<map:transformers>section, add this below the other XSLT transformers:<map:transformer name="saxon" pool-grow="2" pool-max="32" pool-min="8" src="org.apache.cocoon.transformation.TraxTransformer"> <use-request-parameters>false</use-request-parameters> <use-browser-capabilities-db>false</use-browser-capabilities-db> <xslt-processor-role>saxon</xslt-processor-role> </map:transformer> - Add the following in the
<map:serializers>section, to enable a couple more useful output formats:<!-- Customization: compatibility setting for IE6 --> <map:serializer logger="sitemap.serializer.xhtml" mime-type="text/html" name="xhtml11_compat" pool-grow="2" pool-max="64" pool-min="2" src="org.apache.cocoon.serialization.XMLSerializer"> <doctype-public>-//W3C//DTD XHTML 1.1//EN</doctype-public> <doctype-system>http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</doctype-system> <encoding>UTF-8</encoding> </map:serializer> <!-- Customization: set text output to UTF-8 --> <map:serializer logger="sitemap.serializer.text" mime-type="text/plain" name="text" src="org.apache.cocoon.serialization.TextSerializer"> <encoding>UTF-8</encoding> </map:serializer> - Now we need to edit eXist's
conf.xmlfile (inialltjournal/WEB-INF) to handle whitespace in mixed content. This part ofconf.xmlneeds to be changed, from:<indexer caseSensitive="yes" index-depth="5" preserve-whitespace-mixed-content="no" stemming="no" suppress-whitespace="both" tokenizer="org.exist.storage.analysis.SimpleTokenizer" track-term-freq="yes" validation="none">
to:<indexer caseSensitive="no" index-depth="8" preserve-whitespace-mixed-content="yes" stemming="no" suppress-whitespace="none" tokenizer="org.exist.storage.analysis.SimpleTokenizer" track-term-freq="yes" validation="none">
In other words, four changes to attribute values. Then you have to re-upload all the documents in the the db, if there are any still in there. - Restart Tomcat (restarting just Cocoon doesn't seem to be enough).
- Go to the Tomcat manager and check that the application is running; if it's not, then start it.
- Check that the application is running successfully (
:[port#]/ialltjournal/). - Check that
eXistis running (:[port#]/ialltjournal/samples/blocks/exist/). - Start the
eXistclient for the first time (using theWebstart Client Launchlink on the menu of the page above). - There will be no admin password at first; just log in as admin with no password, then change the admin password. You'll immediately get an error; don't worry, just close the client down and restart it, then log in with the new password.
- Now you can add data and a project folder as necessary, and test the results.
Another attempt to create a universla install disk for XP which is both up-to-date and includes a variety of extra functionality. I'm using the following apps:
nLiteOS
RyanVM Integrator and integrator packs
WMP11Slipstreamer
DriverPacks has an app for backing up/slipstreaming drivers in existing installs as well as provides a series of downloads of driver packs that can be used to slip in to an install disk. I've downloaded all of the available packs as of today.
DriverGrabber - see previous
Windows Post-Install Wizard is an app to run after the install is done. It is a user driven menu-ed app that runs a series of installers.
Some cool extensions are available at http://ryanvm.net/ . I'm adding some to my initial attempt, including CD/DVD burning apps, hardware monitoring apps and so forth.
To do:
1) slip WMP11 in to source tree (ripped XP SP2 disk)
2) slip IE7 in to source
3) Run RyanVM Integrator to integrate the update and custom packs
4) integrate the driver packs in to tree
5) run nliteos to create the ISO
6) do test installs in VMware,VirtualBox, Paralles, Mac mini, lab machines etc. (get Ehsan and DCST to try it, too)
follow-up task: if needed, run drivergrabber on all machines to get any custom drivers that the driver packs may not have in them
NOTE: I found a wrapper app called AutoImage that apparently sequences the operations of the above apps in a handy way. I'm trying to make it work now, but Casper is becoming flaky