<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.mauricemengel.de"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>mauricemengel.de</title>
 <link>http://www.mauricemengel.de</link>
 <description></description>
 <language>en</language>
<item>
 <title>Exporting MPX, Part II</title>
 <link>http://www.mauricemengel.de/content/exporting-mpx-part-ii</link>
 <description>&lt;p&gt;This is the second part of my blog on exporting MuseumPlus (M+) to xml. I write this part for Frank. In this part, I describe how you get simple XML out of the RTF which produced in the &lt;a href=&quot;http://mauricemengel.de/content/exporting-mpx-part-i&quot;&gt;first part&lt;/a&gt;. I had written perl, batch and xslt years ago and I was really curious if it still works, -- and yes it does! The outcome of this step is nice xml in a structure which obviously mimicks the &quot;internal&quot; structure of the database. I put internal in quotes since my xml format uses the screennames of the fields.&amp;nbsp; It does not really look into the representation inside the database. The next transformation which I usually execute is a sanity check on the data; I also correct know bugs, for example, if one collection always confuses &quot;Hersteller&quot; and &quot;Produzent&quot; then I replace it so that in the end it looks better.&amp;nbsp; I call this third step a fix, because the input format and the output format remain the same. As the fourth step, I used to transform this data to &lt;a href=&quot;http://museumdat.org&quot;&gt;museumdat&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So, I unzip the contents of the archive, go in that directory with dos and execute the stupid batch (levelup.bat) which runs my perl program and some xslt transformations. If you want to do it too you need to adopt some paths in the batch. It should be self-explaining. I attach the relevant xslt. You need saxon as a xslt processor.&lt;/p&gt;
&lt;p&gt;I attach the test data, the stupid batch which you might need to adapt to your system and the simple perl script.&lt;/p&gt;
&lt;p&gt;&lt;code&gt; C:&lt;br /&gt; cd temp&lt;br /&gt; levelup &lt;br /&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main Results&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The levelup command should produce nice xml output in the format which I call MPX-lvl2 (level2). It does so in a number of steps in the middle which sometimes go wrong and which I should explain some time, but not now.&lt;/p&gt;
&lt;p&gt;The main result is a file called &quot;join.lvl2.mpx&quot; which contains the combined data in mpx-lvl2. It&#039;s so short that I can quote it here (I leave out some tags, indicated by [...], full version as attachment). Please note that in the file the unicode works, just not here after I post it directly from notepad:&lt;/p&gt;
&lt;p&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br /&gt;&amp;lt;museumPlusExport xmlns=&quot;http://www.mpx.org/mpx&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsi:schemaLocation=&quot;http://www.mpx.org/mpx File://C:/Perl/site/lib/XSD/mpx-lvl2.v2.xsd&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;personKÃ¶rperschaft kueId=&quot;4207&quot; exportdatum=&quot;2010-03-11T17:36:49&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bearbDatum&amp;gt;13.06.2003&amp;lt;/bearbDatum&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bemerkungen&amp;gt;DÃœ-Vermerk: Original - Archiv&amp;lt;/bemerkungen&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;Kubik, Gerhard&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;nennform&amp;gt;Kubik, Gerhard&amp;lt;/nennform&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;typ&amp;gt;Person&amp;lt;/typ&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;verantwortlichkeit&amp;gt;EM-Medienarchiv&amp;lt;/verantwortlichkeit&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/personKÃ¶rperschaft&amp;gt;&lt;br /&gt;&amp;nbsp;[...]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sammlungsobjekt objId=&quot;240472&quot; exportdatum=&quot;2010-03-11T17:28:19&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;andereNr art=&quot;Produktions-Nr.&quot;&amp;gt;GC 2-12539&amp;lt;/andereNr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;andereNr art=&quot;ID&quot;&amp;gt;4&amp;lt;/andereNr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;andereNr art=&quot;Alte Inv. Nr.&quot;&amp;gt;P 0133&amp;lt;/andereNr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;andereNr art=&quot;DAT-Nr.&quot;&amp;gt;1&amp;lt;/andereNr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bearbDatum&amp;gt;13.06.2003&amp;lt;/bearbDatum&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;besetzung&amp;gt;vokal/instr.: SÃ¤ngerin, Mandoline, Tamburin&amp;lt;/besetzung&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;credits&amp;gt;Staatliche Museen zu Berlin, PreuÃŸischer Kulturbesitz, Ethnologisches Museum&amp;lt;/credits&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;geogrBezug bezeichnung=&quot;Ethnie&quot;&amp;gt;Perser&amp;lt;/geogrBezug&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;geogrBezug bezeichnung=&quot;Land&quot;&amp;gt;UdSSR&amp;lt;/geogrBezug&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;geogrBezug bezeichnung=&quot;Ort&quot;&amp;gt;Tiflis&amp;lt;/geogrBezug&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;geogrBezug art=&quot;Region&quot;&amp;gt;Georgien&amp;lt;/geogrBezug&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;identNr art=&quot;Ident. Nr.&quot;&amp;gt;VII 78/0004&amp;lt;/identNr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;objekttyp&amp;gt;Audio&amp;lt;/objekttyp&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;personKÃ¶rperschaftRef funktion=&quot;Produzent&quot;&amp;gt;Gramophone Concert Record&amp;lt;/personKÃ¶rperschaftRef&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sachbegriff&amp;gt;Schellackplatte&amp;lt;/sachbegriff&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;titel art=&quot;Titel&quot;&amp;gt;Titel A: [Persisch]&amp;lt;/titel&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;verantwortlichkeit&amp;gt;EM-Medienarchiv&amp;lt;/verantwortlichkeit&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;verwaltendeInstitution&amp;gt;Ethnologisches Museum, Staatliche Museen zu Berlin&amp;lt;/verwaltendeInstitution&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/sammlungsobjekt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sammlungsobjekt objId=&quot;1432496&quot; exportdatum=&quot;2010-03-11T17:28:19&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;andereNr&amp;gt;M30-37281/2&amp;lt;/andereNr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bearbDatum&amp;gt;22.10.2009&amp;lt;/bearbDatum&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;identNr&amp;gt;VII LP 5264&amp;lt;/identNr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;maÃŸangabe typ=&quot;Geschwindigkeit (Schallplatte)&quot;&amp;gt;33 U/min&amp;lt;/maÃŸangabe&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;objekttyp&amp;gt;Audio&amp;lt;/objekttyp&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;personKÃ¶rperschaftRef&amp;gt;kein Eintrag&amp;lt;/personKÃ¶rperschaftRef&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sachbegriff&amp;gt;Schallplatte&amp;lt;/sachbegriff&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;verantwortlichkeit&amp;gt;EM-Medienarchiv&amp;lt;/verantwortlichkeit&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;verwaltendeInstitution&amp;gt;Ethnologisches Museum, Staatliche Museen zu Berlin&amp;lt;/verwaltendeInstitution&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/sammlungsobjekt&amp;gt;&lt;br /&gt;&amp;lt;/museumPlusExport&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TODO: Intermediary steps&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;explain the intermediary steps&lt;/p&gt;&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/levelup.bat&quot;&gt;levelup.bat&lt;/a&gt;&lt;/td&gt;&lt;td&gt;5.27 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;even&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/rtftable2xml.pl_.txt&quot;&gt;rtftable2xml.pl.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;18.6 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/newJoin.xsl&quot;&gt;newJoin.xsl&lt;/a&gt;&lt;/td&gt;&lt;td&gt;1.01 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;even&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/lupmpx.4thGen.xsl&quot;&gt;lupmpx.4thGen.xsl&lt;/a&gt;&lt;/td&gt;&lt;td&gt;38 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/join.lvl2_.mpx&quot;&gt;join.lvl2.mpx&lt;/a&gt;&lt;/td&gt;&lt;td&gt;6.5 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <comments>http://www.mauricemengel.de/content/exporting-mpx-part-ii#comments</comments>
 <category domain="http://www.mauricemengel.de/category/subjects/museums/museumplus/mexport">M+Export</category>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <enclosure url="http://www.mauricemengel.de/sites/default/files/private/levelup.bat" length="5392" type="application/x-msdos-program" />
 <pubDate>Thu, 11 Mar 2010 16:45:37 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1255 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>Exporting MPX, Part I</title>
 <link>http://www.mauricemengel.de/content/exporting-mpx-part-i</link>
 <description>&lt;p&gt;&lt;strong&gt;Why and what for?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is a description how to get XML data out of MuseumPlus (M+). I write this for Rainer and his current project. The idea is to see how this export can be optimized, and how much can be done by others.&amp;nbsp; Originally, I have written this export for ethnoArc. This page describes the first part of the process which could easily be done by someone else.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Technical overview and justification&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Since I do not have access to the M+ internals, I have to use an existing way of exporting data and this is via M+&#039;s reports. Strangley enough, M+ creates rtf files with the data in tables when one creates certain reports. I use those rtf, transform them to stupid xml with a perl script and then with another transformation (in XSLT) to nice xml. I described the format in an older &lt;a href=&quot;http://mauricemengel.de/content/mpx-museumplus-xml-format&quot;&gt;post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Preparations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I defined several lists (in M+ they are called &quot;Liste&quot;) with almost all the fields in the Sammlungsmodul and PersonenKörperschaftsmodul.&amp;nbsp; (In the future, I might post them to show you how this step works, but at the moment this is not necessary.) The only important thing at this point is how the lists are called (list name in M+ followed by short label):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EM-Export-Sammlung eABasic: eabasic&lt;/li&gt;
&lt;li&gt;EM-Export-Sammlung eADatierungExtras: eadatierungextras&lt;/li&gt;
&lt;li&gt;EM-Export-Sammlung eAext: eaext&lt;/li&gt;
&lt;li&gt;EM-Export-Multimedia eA: mume&lt;/li&gt;
&lt;li&gt;EM-Export-Sammlung eAoov: oov&lt;/li&gt;
&lt;li&gt;EM-Export-Personen/Körperschaften (PerKör): perkor&lt;/li&gt;
&lt;li&gt;EM-Export-Personen/Körperschaften (PerKör ext): perkorext&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 1: Selecting records for export&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first step is to identify all the records you want to export. You could, for example, select all objects (records) you want to export in one group (&quot;Objektgruppe&quot;). Up to approx. 3000 objects work on my machine without a problem.&lt;/p&gt;
&lt;p&gt;Create another group for and put all the Personen/Körperschaften which you need.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;inline inline-center&quot;&gt;&lt;a href=&quot;/image/1253&quot;&gt;&lt;img rel=&quot;lightbox&quot; src=&quot;http://mauricemengel.de/sites/default/files/images/M+E1.img_assist_custom-384x276.jpg&quot; alt=&quot;M+E Objektgruppen&quot; title=&quot;M+E Objektgruppen&quot;  class=&quot;image image-img_assist_custom-384x276 &quot; width=&quot;384&quot; height=&quot;276&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;caption&quot;&gt;&lt;strong&gt;M+E Objektgruppen&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Export to RTF&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For every of the seven lists named under export the whole gruppe.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;inline inline-center&quot;&gt;&lt;a href=&quot;/image/1254&quot;&gt;&lt;img rel=&quot;lightbox&quot; src=&quot;http://mauricemengel.de/sites/default/files/images/M+E2_0.img_assist_custom-300x198.jpg&quot; alt=&quot;Select the next list&quot; title=&quot;Select the next list&quot;  class=&quot;image image-img_assist_custom-300x198 &quot; width=&quot;300&quot; height=&quot;198&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;caption&quot;&gt;&lt;strong&gt;Select the next list&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&amp;nbsp;M+ creates a file in C:\Temp\RFTFile.rtf&lt;/li&gt;
&lt;li&gt;Rename that file to appropriate short list name (as given under preparations): eabasic.rtf&lt;/li&gt;
&lt;li&gt;Repeat for first five lists&lt;/li&gt;
&lt;li&gt;Change to the Personen/Körperschaften Gruppe you created in Step 1 and repeat for the last two lists.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Put everything in a folder and compress it using zip and send it to me (e.g. via Pool). Attached to this post, there is an example.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Troubleshooting&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My M+ complains &quot;Keine Vorlage vorhanden - Datenquellengeneriert&quot;. This is intended and no problem.&lt;/li&gt;
&lt;li&gt;You have to close RTFFile.RTF in Word, otherwise M+ does not generate a new file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The next step&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This part of the export is really easy, just a little tedious if you deal with a lot of objects. You can easily make a mistake and not notice it. On the other hand, all you need to do is a little M+ and Windows stuff.&lt;/p&gt;&lt;div class=&quot;image-clear&quot;&gt;&lt;/div&gt;&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/text-export-rtf.zip&quot;&gt;text-export-rtf.zip&lt;/a&gt;&lt;/td&gt;&lt;td&gt;12.32 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <comments>http://www.mauricemengel.de/content/exporting-mpx-part-i#comments</comments>
 <category domain="http://www.mauricemengel.de/category/subjects/museums/museumplus/mexport">M+Export</category>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <enclosure url="http://www.mauricemengel.de/sites/default/files/private/text-export-rtf.zip" length="12619" type="application/zip" />
 <pubDate>Thu, 11 Mar 2010 12:06:23 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1252 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>Tomcat</title>
 <link>http://www.mauricemengel.de/content/tomcat</link>
 <description>&lt;p&gt;&lt;strong&gt;My Tomcat problem (diagnosis)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I start tomcat. It works, serves static and dynamic pages for a few minutes and then seems to freeze. Every dynamic request times out.&lt;/p&gt;
&lt;p&gt;java.exe in task manager shows 46432 K memory usage and doesn&#039;t change (with 19 threads).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attempts&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I still have this problem, after I put -Xms228M -Xmx512M in %JAVA_OPTS&amp;nbsp; on my laptop and if I start tomcat from windows shell in the tomcat directory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Looking for Log files&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I cannot find any log files now from today. They are created, but empty.&amp;nbsp; Somehow, CATALINA_HOME is not set under windows. So I set it again. I expect that logs will be written then. Yes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What do they say?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Still nothing, but when I start a second instance it correctly complains in the log files that the port is blocked. The tomcat window says nothing after reporting successful startup in so-and-so many ms.&lt;/p&gt;
&lt;p&gt;java.exe is 44820k - 44824k changing very, very slowly and 19 threads&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;From cygwin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let&#039;s try it one more time from cygwin. Same thing. Now I try with a different version (and new installation) of tomcat 5.5. This time I choose the windows installer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Another try&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Antoher computer, the one at work. Hardly any java on it. I install a new java jdk, set JAVA_HOME and CATALINA_HOME and download tomcat and the server, set the admin password in tomcat-users.xml and it just works without any further ado. As far as I can tell in the little time left. So, I will try this on the laptop, too.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <comments>http://www.mauricemengel.de/content/tomcat#comments</comments>
 <category domain="http://www.mauricemengel.de/category/subjects/computer/oai/oaicat">oaicat</category>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <pubDate>Wed, 10 Mar 2010 08:40:15 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1251 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>From my OAI Diaries</title>
 <link>http://www.mauricemengel.de/content/my-oai-diaries</link>
 <description>&lt;p&gt;I am trying to learn OAI for the MIMO project.&amp;nbsp; I am currently looking at Jeff Young&#039;s &lt;a href=&quot;http://www.oclc.org/research/activities/oaicat/default.htm&quot;&gt;oaicat&lt;/a&gt;. The problem with is that I only had a vague or no idea at all about the OAI metadata harvesting protocol, Java servlets and Tomcat, Ant etc. when I started to look at it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tomcat&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now I am a little more familiar with Tomcat, but I still have problems configuring it on some of my test servers. On my laptop, I use it with cygwin and it seems to hang after some time. It runs best on my webserver so far. I need to look at in detail to describe the problem better.&lt;/p&gt;
&lt;p&gt;edit: my experiments on this &lt;a href=&quot;http://mauricemengel.de/content/tomcat&quot;&gt;front&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I find it a bit confusing that documentation of oaicat is on several different pages and not really good enough for a servlet newbe like me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Homepage at OCLC: &lt;a href=&quot;http://www.oclc.org/research/activities/oaicat/default.htm&quot; title=&quot;http://www.oclc.org/research/activities/oaicat/default.htm&quot;&gt;http://www.oclc.org/research/activities/oaicat/default.htm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Customization notes included in the war; also accessible at demo installation at &lt;a href=&quot;http://alcme.oclc.org/oaicat&quot; title=&quot;http://alcme.oclc.org/oaicat&quot;&gt;http://alcme.oclc.org/oaicat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wiki (seems not to be updated anymore): &lt;a href=&quot;http://alcme.oclc.org/wikid/CollectionOaiCat:FrontPage&quot; title=&quot;http://alcme.oclc.org/wikid/CollectionOaiCat:FrontPage&quot;&gt;http://alcme.oclc.org/wikid/CollectionOaiCat:FrontPage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Code at Google: &lt;a href=&quot;http://code.google.com/p/oaicat&quot; title=&quot;http://code.google.com/p/oaicat&quot;&gt;http://code.google.com/p/oaicat&lt;/a&gt;. Google code has no documentation, but the source comes with some api documentation.&lt;/li&gt;
&lt;li&gt;Readme in the src. Seems only to be included if you checkout oaicat via svn. It has a FAQ section with 4 questions. Quite useful. I attach it below.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Like the documentation is stored in different place, the code comes in several forms as well and at least the war file seems to be outdated:&lt;strong&gt; &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;download old war from google code at &lt;a href=&quot;http://code.google.com/p/oaicat/downloads/list&quot; title=&quot;http://code.google.com/p/oaicat/downloads/list&quot;&gt;http://code.google.com/p/oaicat/downloads/list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;checkout ant build version with subversion: &lt;a href=&quot;http://code.google.com/p/oaicat/source/checkout&quot; title=&quot;http://code.google.com/p/oaicat/source/checkout&quot;&gt;http://code.google.com/p/oaicat/source/checkout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;there is also a new jar distribution  at &lt;a href=&quot;http://code.google.com/p/oaicat/downloads/list&quot; title=&quot;http://code.google.com/p/oaicat/downloads/list&quot;&gt;http://code.google.com/p/oaicat/downloads/list&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Starting oaicat&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is a quote from the oaicat demo.&amp;nbsp; I have been starting tomcat from that dir and it worked correctly:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Caveat!&lt;/strong&gt; This webapp assumes that Tomcat will be started from the CATALINA_HOME subdirectory. If these pages appear, but the servlets invoked from the forms below fail, chances are you started Tomcat from a different location. In this case, edit the webapps/oaicat/WEB-INF/web.xml file and change the following relative reference to an absolute file path.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Deploying &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Today, I finally deployed the war file from &lt;a href=&quot;http://code.google.com/p/oaicat&quot; title=&quot;http://code.google.com/p/oaicat&quot;&gt;http://code.google.com/p/oaicat&lt;/a&gt; successfully.&amp;nbsp; The whole thing runs fine and I can change oaicat.properties and restart tomcat.&amp;nbsp; I don&#039;t really like the html that comes with oaicat, but it&#039;s okay. I would rather be able to switch between the naked xml and the html view, and I think it would be helpful to give more info on the kind of data I have to fill in. Some of it should be trivial to adjust; I could restart the oaicat without the oaicat.xsl if nothing else is worth it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Updating&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To update one of the documentations (not the readme in src) says to copy new oaicat.jar into the deployed directory. I did this at my PC at work today and it worked like dream. I kind a miss that I don&#039;t see which version of the oaicat I am running.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ant&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The next step seems to be to understand the build process. I can checkout a more current version via svn. Procedure is described at google code.&amp;nbsp; As far as I am guessing, this build process is a pre-requisite for the procedures I planning in the next section. So the next task seems to be to set up a working oaicat from source via ant.&lt;/p&gt;
&lt;p&gt;edit: I convinced ant to build me something, now I am not sure what to do with it. It gives me many warnings (mainly deprecation), but at the end it says built successfully. The result looks very much like the .tar.gz which I can download as well. I am not sure what file I have to copy to the webserver. Probably it would be best for me if I can use eclipse, build and run on the same machine. Currently, I can&#039;t. I have this weired tomcat problem on my laptop. So this is still todo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Setting up oaicat - The plan, part 1&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My idea at the moment is to set up an oai server which basically understands the mpx which I get from the database and then to use various xslts to transform the data in museumdat and lido.&lt;/p&gt;
&lt;p&gt;Customization notes in the readme (see above).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Looking at the demo config I: Classes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;AbstractCatalog.oaiCatalogClassName=ORG.oclc.oai.server.catalog.FileSystemOAICatalog&lt;br /&gt;AbstractCatalog.recordFactoryClassName=ORG.oclc.oai.server.catalog.FileRecordFactory&lt;/p&gt;
&lt;p&gt;Can I just use them or do I need to change them? Will most likely need to change both, although FileSystemOAICatalog looks easy to adapt at first glance, although longer. Probably another illusion due to my lack of java.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Looking at the demo config II: Transformations&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The demo uses file system as default. I see no reason at the moment to change that. Actually, it is my most important reason when opting for oaicat that I can use more or less my MPX output directly:&lt;/p&gt;
&lt;p&gt;AbstractCatalog.oaiCatalogClassName=ORG.oclc.oai.server.catalog.FileSystemOAICatalog&lt;br /&gt; AbstractCatalog.recordFactoryClassName=ORG.oclc.oai.server.catalog.FileRecordFactory&lt;/p&gt;
&lt;p&gt;The oaicat demo comes with 5 records of metadata describing publications. The native format is oai_etdms. This is Electronic Theses and Dissertations Metadata Standard. Here is some background info on it &lt;a href=&quot;http://outgoing.typepad.com/outgoing/2005/04/etdms.html&quot; title=&quot;http://outgoing.typepad.com/outgoing/2005/04/etdms.html&quot;&gt;http://outgoing.typepad.com/outgoing/2005/04/etdms.html&lt;/a&gt;. Nothing spectacular, so it is a good demonstration. The native format can be mapped to oai_dc.&lt;/p&gt;
&lt;p&gt;So how is that reflected in the oaicat.properties:&lt;/p&gt;
&lt;p&gt;FileSystemOAICatalog.homeDir=webapps/oaicat/WEB-INF/META/&lt;/p&gt;
&lt;p&gt;The above seems self-explaining, the below is worth it look at it a little further:&lt;/p&gt;
&lt;p&gt;Crosswalks.oai_dc=ORG.oclc.oai.server.crosswalk.FileMap2oai_dc&lt;br /&gt;Crosswalks.oai_etdms=ORG.oclc.oai.server.crosswalk.FileMap2oai_etdms&lt;br /&gt;FileMap2oai_dc.xsltName=webapps/oaicat/WEB-INF/etdms2dc.xsl&lt;/p&gt;
&lt;p&gt;The FileMap XSLT from the last line converts from native format (etdms) to dc as the filename suggests. I will shorten it a bit:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br /&gt;&amp;lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:oai_dc=&quot;http://www.openarchives.org/OAI/2.0/oai_dc/&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:etdms=&quot;http://www.ndltd.org/standards/metadata/etdms/1.0/&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exclude-result-prefixes=&quot;etdms&quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;xsl:output method=&quot;xml&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; omit-xml-declaration=&quot;yes&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; encoding=&quot;utf-8&quot;/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;lt;xsl:template match=&quot;/etdms:thesis&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;oai_dc:dc xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:apply-templates/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/oai_dc:dc&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;lt;xsl:template match=&quot;etdms:title&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dc:title&amp;gt;&amp;lt;xsl:apply-templates/&amp;gt;&amp;lt;/dc:title&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;lt;xsl:template match=&quot;etdms:creator&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dc:creator&amp;gt;&amp;lt;xsl:apply-templates/&amp;gt;&amp;lt;/dc:creator&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;/p&gt;
&lt;p&gt;...&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;lt;xsl:template match=&quot;etdms:degree&quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Customization - More on the plan&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There were some customization notes in one of documentation source. Also, the readme.txt (see attachment) gives some hints.&lt;/p&gt;
&lt;p&gt;I guess I need to get my MPX running as native format first and later deal with transformations, but not even this is clear at the moment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A new native format&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Quote from the readme. It looks as if there were two options for XML. I don&#039;t see a reason to prefer the one over the other, so I will go the default of the demo as long as possible:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Q3: What are the semantics of these record objects?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) If &lt;strong&gt;FooOAICatalog&lt;/strong&gt; returns records as byte arrays, examples can be anything such as MARC Communications Format. If FooOAICatalog returns Strings, examples might include MARC BER, or any kind of XML String. If FooOAICatalog returns DOM Documents, examples can be any XML-based metadata format. Let&#039;s assume FooOAICatalog returns records as DOM Documents containing MARCXML content.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) Copy &lt;strong&gt;oaicatjar/src/ORG/oclc/oai/server/catalog/XMLRecordFactory.java&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to com/acme/oai/server/catalog/MARCXMLDOMRecordFactory.java&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and modify the code so the class name matches the new filename.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c) Change the methods to cast each Object nativeItem parameter to a org.w3c.dom.Document and use it to extract the relevant data for each method.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d) Make a corresponding package/class name change to the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AbstractCatalog.recordFactoryClassName entry in the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webapps/oaicat/WEB-INF/oaicat.properties file to have OAICat use your custom class.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Set oaicat.properties&amp;nbsp; in d) accordingly. That&#039;s the only part that&amp;nbsp; seems obvious even for me. I have an idea what c) means, but I should look at it more closely.&lt;/p&gt;
&lt;p&gt;Next step will be to look at the way the demo is working, i.e. at&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;oaicatjar/src/ORG/oclc/oai/server/catalog/XMLRecordFactory.java&lt;/li&gt;
&lt;li&gt;what is the equivalent of FooOAICatalog in the demo?&lt;/li&gt;
&lt;li&gt;Procedure: Can I get the whole thing running without a transformation? If not how can I ever debug it? If not, I would need to start with the transformation and only when I understand that move on to this part.&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Transformations&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That would be the next step if will ever get so far. Implement a transformation from MPX to museumdat and LIDO.&lt;/p&gt;
&lt;p&gt;Quote from the readme:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Q4: What OAI metadatdaFormats will be supported?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) Examples include oai_dc, marcxml, or oai_etdms.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) For oai_dc, copy oaicatjar/src/ORG/oclc/oai/crosswalk/XML2oai_dc.java&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to com/acme/oai/server/catalog/MARCXMLDOM2oai_dc.java and modify&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the code so the class name matches the new filename.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c) Change the constructor to use the appropriate schemaLocation for&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this metadataFormat.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d) Change the methods to cast each Object nativeItem parameter to a&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org.w3c.dom.Document and use it to service the method accordingly.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In this case, you could use the Library of Congress MARCXML to DC&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XSL stylesheet (see &lt;a href=&quot;http://www.loc.gov/standards/marcxml/&quot; title=&quot;http://www.loc.gov/standards/marcxml/&quot;&gt;http://www.loc.gov/standards/marcxml/&lt;/a&gt;) to&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perform the crosswalk to Dublin Core.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e) Repeat steps b, c, and d for each metadatdaFormat to be supported.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f) Make a corresponding package/class name change to the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crosswalks.* entries in the webapps/oaicat/WEB-INF/oaicat.properties&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file to have OAICat use your custom classes.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Todo&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It will be interesting to look at the java classes next, but now I have to do other buisness first...&lt;/p&gt;&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/README.txt&quot;&gt;README.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;4.34 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <comments>http://www.mauricemengel.de/content/my-oai-diaries#comments</comments>
 <category domain="http://www.mauricemengel.de/category/subjects/computer/oai/oaicat">oaicat</category>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <enclosure url="http://www.mauricemengel.de/sites/default/files/private/README.txt" length="4447" type="text/plain" />
 <pubDate>Tue, 09 Mar 2010 09:10:51 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1250 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>XSLT Testing</title>
 <link>http://www.mauricemengel.de/content/xslt-testing</link>
 <description>&lt;p&gt;I found this on the XSL mailling list: &lt;a href=&quot;http://assets.expectnation.com/15/event/2/Testing%20XSLT%20Presentation.pdf&quot; target=&quot;_blank&quot;&gt;http://assets.expectnation.com/15/event/2/Testing%20XSLT%20Presentation.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The document as such is great, but now I wonder which approach is the best for me respectively is the eaisest to learn.&lt;/p&gt;
&lt;p&gt;At the moment, I look at I &lt;a href=&quot;http://utf-x.sourceforge.net/manual/manual.pdf&quot; title=&quot;http://utf-x.sourceforge.net/manual/manual.pdf&quot;&gt;http://utf-x.sourceforge.net/manual/manual.pdf&lt;/a&gt;, but I am really not sure this is the way to go. One question seems to be with or without Java.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.proxml.be/users/paul/weblog/fc7ff/Unit_testing_XSLT.html&quot; title=&quot;http://www.proxml.be/users/paul/weblog/fc7ff/Unit_testing_XSLT.html&quot;&gt;http://www.proxml.be/users/paul/weblog/fc7ff/Unit_testing_XSLT.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <comments>http://www.mauricemengel.de/content/xslt-testing#comments</comments>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <category domain="http://www.mauricemengel.de/category/subjects/computer/xslt">XSLT</category>
 <pubDate>Sat, 06 Mar 2010 12:21:17 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1245 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>Restructuring this site</title>
 <link>http://www.mauricemengel.de/content/restructuring-site</link>
 <description>&lt;p&gt;Hi everyone!&lt;/p&gt;
&lt;p&gt;I decided that this weekend I will take some time to restructure my site. It&#039;s the first site I made with Drupal and it looks terrible in everyway. This weekend I change it a little bit, so don&#039;t wonder why something might not work.&lt;/p&gt;
&lt;p&gt;Maurice&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <comments>http://www.mauricemengel.de/content/restructuring-site#comments</comments>
 <category domain="http://www.mauricemengel.de/category/subjects/computer/drupal/site">This Site</category>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <pubDate>Sat, 27 Feb 2010 14:39:48 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1243 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>Remote Drupal Admin</title>
 <link>http://www.mauricemengel.de/content/remote-drupal-admin</link>
 <description>&lt;p&gt;I have too many drupal sites now and updating modules etc (i.e. standard tasks) start to get annoying. I wonder if there are already tools to control drupal remotely and if I should write some small scripts using WWW::Mechanize or something else.&lt;/p&gt;
&lt;p&gt;Also, I wonder if I should write web tests for the drupal sites I am developing.&lt;/p&gt;
&lt;p&gt;This is just an idea. Here are some links I find helpful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.thomas-fahle.de/talks/WWW-Mechanize.pdf&quot; title=&quot;http://www.thomas-fahle.de/talks/WWW-Mechanize.pdf&quot;&gt;http://www.thomas-fahle.de/talks/WWW-Mechanize.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.distinctquality.com/blog/2007/01/30/automated-testing-with-perl/&quot; title=&quot;http://www.distinctquality.com/blog/2007/01/30/automated-testing-with-perl/&quot;&gt;http://www.distinctquality.com/blog/2007/01/30/automated-testing-with-perl/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.perl.com/pub/a/2004/06/04/recorder.html&quot; title=&quot;http://www.perl.com/pub/a/2004/06/04/recorder.html&quot;&gt;http://www.perl.com/pub/a/2004/06/04/recorder.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ia360627.us.archive.org/3/items/RandalL.SchwartzPerlWebTesting/PerlWebTesting.pdf&quot; title=&quot;http://ia360627.us.archive.org/3/items/RandalL.SchwartzPerlWebTesting/PerlWebTesting.pdf&quot;&gt;http://ia360627.us.archive.org/3/items/RandalL.SchwartzPerlWebTesting/Pe...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What would be easy?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;test if site is up&lt;/li&gt;
&lt;li&gt;execute update.php, cron.php&lt;/li&gt;
&lt;li&gt;report/show drupal error messages&lt;/li&gt;
&lt;/ul&gt;</description>
 <comments>http://www.mauricemengel.de/content/remote-drupal-admin#comments</comments>
 <category domain="http://www.mauricemengel.de/category/subjects/computer/drupal">Drupal</category>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <pubDate>Mon, 19 Oct 2009 13:35:05 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1236 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>oai_browser.pl -&gt; oai_browser.exe</title>
 <link>http://www.mauricemengel.de/content/oaibrowserpl-oaibrowserexe</link>
 <description>&lt;p&gt;Here is a windows xp executable of Tim Brody&#039;s oai_browser from cpan.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/oai_browser.zip&quot;&gt;oai_browser.zip&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2.44 MB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <comments>http://www.mauricemengel.de/content/oaibrowserpl-oaibrowserexe#comments</comments>
 <category domain="http://www.mauricemengel.de/category/subjects/computer/oai">OAI</category>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <category domain="http://www.mauricemengel.de/category/subjects/computer/perl">Perl</category>
 <enclosure url="http://www.mauricemengel.de/sites/default/files/private/oai_browser.zip" length="2560370" type="application/zip" />
 <pubDate>Fri, 11 Sep 2009 21:26:19 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1231 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>docx2txt.pl</title>
 <link>http://www.mauricemengel.de/content/docx2txtpl</link>
 <description>&lt;p&gt;Recently, I installed search files &lt;a href=&quot;http://drupal.org/project/search_files&quot; title=&quot;http://drupal.org/project/search_files&quot;&gt;http://drupal.org/project/search_files&lt;/a&gt; and noticed that I still cannot search my docx files. So here my first attempt to solve the problem. A little perl script that reads in docx, unzips it, and displays the content in no particular order using libxml. It&#039;s my first attempt. Version 0.001 after a few minutes.&lt;/p&gt;
&lt;p&gt;Found a similar project: &lt;a href=&quot;http://docx2txt.sourceforge.net&quot; title=&quot;http://docx2txt.sourceforge.net&quot;&gt;http://docx2txt.sourceforge.net&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;which uses&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/usr/bin/unzip and &lt;/li&gt;
&lt;li&gt;manual xml conversion (regular expressions) and &lt;/li&gt;
&lt;li&gt;manual unicode conversion&lt;/li&gt;
&lt;li&gt;is not available on CPAN.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I still cannot hide the exceptions from Archive::Zip.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Edit: I attach a version which should run easy enough as a script. Now called catdocx&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/docx2txt.pl.txt&quot;&gt;docx2txt.pl.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;1.52 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;even&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/catdocx_simple.pl.txt&quot;&gt;catdocx_simple.pl.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;1.78 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <comments>http://www.mauricemengel.de/content/docx2txtpl#comments</comments>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <category domain="http://www.mauricemengel.de/category/subjects/computer/perl">Perl</category>
 <enclosure url="http://www.mauricemengel.de/sites/default/files/private/docx2txt.pl.txt" length="1561" type="text/plain" />
 <pubDate>Thu, 03 Sep 2009 16:45:14 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1230 at http://www.mauricemengel.de</guid>
</item>
<item>
 <title>Last time i used LibXML</title>
 <link>http://www.mauricemengel.de/content/last-time-i-used-libxml</link>
 <description>&lt;p&gt;Recently, Martin has transferred recordings from 108 DATs to hard disk. Unfortunately, he didn&#039;t preserve the ids on the DATs, but instead segmented the audio according to tracks according to silence. This is not the same, since ids are sometimes one and sometimes two tracks on these dats. Thing is, the recordings were originally stored on 78s. The ids consistently describe these records, i.e. for each record has one id, no matter how many sides it has.&lt;/p&gt;
&lt;p&gt;Although this segmentation was not intended, it provides an interesting case study, since segmentation according to silence is relatively easy to automatize. However, the result is worthless if one cannot associate the result with the original chunks. In other words: if I cannot associate tracks with ids, the audio chunks are worthless.&lt;/p&gt;
&lt;p&gt;So far so good. The problem is that when I start have the db which stores&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tape number (tape_no)&lt;/li&gt;
&lt;li&gt;id&lt;/li&gt;
&lt;li&gt;identifier&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;while the new files come only with two types of information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tape number (tape_no) and the &lt;/li&gt;
&lt;li&gt;track(track_no).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The only common field here is tape_no. As explained above, track_no is usually different from id. Unfortunately, I cannot link the two tables because a lack of common fields.&lt;/p&gt;
&lt;p&gt;So, I try to come up with an logarithm to do exactly this. Possible? Theoretically yes, in practice it is pretty fishy.&lt;/p&gt;
&lt;p&gt;Since a 78 can have one side or two, there is no easy rule how I come from tracks to ids. Instead, I look them up in our database. If I find two titles it usually means that the record has two sides and that means I need two tracks for one id. This is fairly reliable. THere a few cases where there are no titles. And another set of examples, where somebody put in translations, so that there are 4 titles. I didn&#039;t come across two titles where the 78 has actually only one side. But maybe I should check this again.&lt;/p&gt;
&lt;p&gt;So, what I decided to do is what I call a &quot;reverse loopup&quot;. This seems not to be an existing term in this context judging from google. I don&#039;t know. Perhaps it is not a good term either. You can judge yourself. What I mean is that with a normal query (lookup), I would start at either end, i.e.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;either from the db side with tape and id, loop over both and access every item; or the other way round from the &lt;/li&gt;
&lt;li&gt;file side with tape_no and track_no.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both don&#039;t work here, so I change order in the middle of the query. I start in one direction and then change direction. That&#039;s at least how I think of it. Not quite sure, if this description is accurate. Rather not. More likely I reconstruct ids which I actually do not have from the fact that I know that an id consists of either one or two consecutive tracks.&lt;/p&gt;
&lt;p&gt;More concretely: I loop through the tapes. For each tape, I create ids. I assume that there is a id=1. For this id, I look up in the db record with that tape and that id. In that record i check wether this record has one or two sides. Accordingly, I associate this id with one or two tracks and continue with the next id and the next track. Just a loop with two variables.&lt;/p&gt;
&lt;p&gt;So far for the theory in which this works fine, but unfortuneately my db data is not so reliable. Once in a while, something is missing and I don&#039;t find a a tape_no and id pair. What then? I cannot be sure if that record has one or two sides. And that means that all the id-track associations afterwards may or may not be correct anymore. Now, at this moment, I could guess, but this is not good enough. I need to rely to the information I produce, so I have to abort the whole tape and continue with the next one. (Right now as I am still writing on the script, half the tapes have something missing...:-(&lt;/p&gt;
&lt;p&gt;Now, before I do this. I try to eliminate a few missing gaps in the data manually.&lt;/p&gt;
&lt;p&gt;A few comments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Doing this, I notice problems in my xml data. When $id = $tape_no the info is missing. For the first 13 tapes or so.&amp;nbsp; I didn&#039;t see this error so far. I guess the error is in lvl3 (fix) conversion or somewhere else on the way. I correct it in my xml and then it should not be relevant anymore.&lt;/li&gt;
&lt;li&gt;I will attach the perl once it&#039;s done, but let me just put the sections relevant for libxml in here since I will look at it again the next time I will use libxml. This time I tried to use xpc, although it wasn&#039;t necessary.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;use XML::LibXML;&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;$xml = &#039;/home/mengel/EMEM-78test.lvl3.220708.mpx&#039;;&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;my $parser = XML::LibXML-&amp;gt;new();&lt;br /&gt;my $tree&amp;nbsp;&amp;nbsp; = $parser-&amp;gt;parse_file($xml);&amp;nbsp;&amp;nbsp;&amp;nbsp; #tree is doc&lt;br /&gt;my $root&amp;nbsp;&amp;nbsp; = $tree-&amp;gt;getDocumentElement;&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; my $xpc = XML::LibXML::XPathContext-&amp;gt;new;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;$xpc-&amp;gt;registerNs( &#039;mpx&#039; =&amp;gt; &#039;http://www.mpx.org/mpx&#039; );&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; my $xpath =&lt;br /&gt;&quot;//mpx:sammlungsobjekt[mpx:andereNr[\@art = &#039;ID&#039; and . = &#039;$id&#039;] and mpx:andereNr[\@art =&#039;DAT-Nr.&#039; and . = &#039;$tape_no&#039; ]]&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; my @nodes = $xpc-&amp;gt;findnodes( $xpath, $root );&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if ( $#nodes eq 0 ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; my $identNr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $nodes[0]-&amp;gt;find(&#039;mpx:identNr&#039;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; my @titles&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $nodes[0]-&amp;gt;findnodes(&#039;mpx:titel[@art]&#039;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;I tried XPathContext here although not necessary. Not exactly sure why. Have an idea, but this is not the topic here anyways. So far so good. I guess I continue in a comment when I find it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/78er_file_map.txt&quot;&gt;78er_file_map.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;187.23 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;even&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/78er_missing.txt&quot;&gt;78er_missing.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;15.51 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/78er_warnings.txt&quot;&gt;78er_warnings.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;24.65 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;even&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/78er_file_cache.txt&quot;&gt;78er_file_cache.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;205.14 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/78er.missing_tracks.txt&quot;&gt;78er.missing_tracks.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;1.72 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;even&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.mauricemengel.de/system/files/private/Rename78.pl.txt&quot;&gt;Rename78.pl.txt&lt;/a&gt;&lt;/td&gt;&lt;td&gt;40.74 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <comments>http://www.mauricemengel.de/content/last-time-i-used-libxml#comments</comments>
 <category domain="http://www.mauricemengel.de/taxonomy/term/3">public</category>
 <enclosure url="http://www.mauricemengel.de/sites/default/files/private/78er_file_map.txt" length="191727" type="text/plain" />
 <pubDate>Sat, 25 Jul 2009 12:47:14 +0000</pubDate>
 <dc:creator>Maurice</dc:creator>
 <guid isPermaLink="false">1223 at http://www.mauricemengel.de</guid>
</item>
</channel>
</rss>
<!-- Page cached by Boost @ 2010-03-12 01:59:20, expires @ 2010-03-12 02:59:20 -->
