<?xml version="1.0" encoding="ISO-8859-1"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xml:lang="de-DE">
	<title>Heartsome Europe GmbH Blog</title>
	<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php" />
	<modified>2013-05-20T02:48:42Z</modified>
	<author>
		<name>Dr. Klemens Waldhör</name>
	</author>
	<copyright>Copyright 2013, Dr. Klemens Waldhör</copyright>
	<generator url="http://www.sourceforge.net/projects/sphpblog" version="0.4.8">SPHPBLOG</generator>
	<entry>
		<title>Java als Service starten - never ending story - msvcr100.dll - msvcr71.dll</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry130306-122135" />
		<content type="text/html" mode="escaped"><![CDATA[Ich hatte schon öfters beschrieben, dass es Probleme gibt Java Anwendungen als Dienste zu starten. Sh. meine anderen Beiträge dazu.<br /><br />Vor kurzem hatte ich einen extrem hartnäckigen Fall. Das Kopieren nach Windows/Systems32 der msvcr100.dll&#039;s (gibts in diversen Varianten, u.a. auch mit 71) half nichts. Service wollte einfach nicht starten (JavaService.exe zum Installieren verwendet). Nach langem Rumprobieren habe ich msvcr100.dll in das gleiche Verzeichnis wie JavaService.exe kopiert - und es funktionert plötzlich!!!<br /><br />Anscheinend sind die Java Programierer bei Oracle nicht fähig, die notwendigen dlls bei Laden von Java zu finden...<br /><br />Wie aufgeführt ein altes Problem und schon oft in diversen Foren und Websites (sh. <a href="http://www.duckware.com/tech/java6msvcr71.html" target="_blank" >http://www.duckware.com/tech/java6msvcr71.html</a>) beschrieben!]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry130306-122135</id>
		<issued>2013-03-06T00:00:00Z</issued>
		<modified>2013-03-06T00:00:00Z</modified>
	</entry>
	<entry>
		<title>Powerpoint Absturz - AVG ein / ausschalten hilft</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry110405-095728" />
		<content type="text/html" mode="escaped"><![CDATA[Ich hatte mir Office 2010 installiert, funktionierte bis auf die ungewohnte Oberfläche einwandfrei. Nach ein paar Tagen stürzte Powerpoint PPT plötzlich beim Starten ab. Starten im angesicherten Modus half nichts.<br /><br />Im Ereignisprotokoll war immer der Fehler zu finden:<br /><br />.NET Runtime version 2.0.50727.4952 - Schwerwiegender Fehler im Ausführungsmodul (5D0A851A) (80131506).<br />Protokollname: Application<br />Quelle:        .NET Runtime<br />Datum:         05.04.2011 09:44:07<br />Ereignis-ID:   1023<br />Aufgabenkategorie:Keine<br />Ebene:         Fehler<br />Schlüsselwörter:Klassisch<br />Benutzer:      Nicht zutreffend<br />Computer:      Hearts<br /><br />Deinstallation Office2010, Neuinstallation 2007, Netframework versucht neu zu installieren, Registry Cleanen; all das half nichts.<br /><br />Nach langem Probieren und endlosen Restarts kam ich auf die Idee den VirenScannen AVG temporär abzuschalten. Nun versucht <br />0) AVG temporär deaktivieren<br />1) Powerpoint wieder zu starten<br />2) Start im abgesicherten Modes - LÄUFT<br />3) PPT beenden<br />4) PPT wieder starten im Normalmodas - LÄUFT.<br />5) AVG wieder aktivieren<br />6) PPT neu starten - LÄUFT<br /><br />Irgendetwas scheint also AVG bei Starten von PPT blockiert zu haben.<br /><br /><br />]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry110405-095728</id>
		<issued>2011-04-05T00:00:00Z</issued>
		<modified>2011-04-05T00:00:00Z</modified>
	</entry>
	<entry>
		<title>Windows 7 Synchronisation - Vodafone MDA GPS</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry100920-150147" />
		<content type="text/html" mode="escaped"><![CDATA[Ich habe des öfteren das Problem, dass beim Anschließen meines Vodafone MDA GPS das Windows Mobile Geräte Center den MDA nicht erkennt. <br /><br />Die etwas umständliche Lösung ist dann:<br /><br />Geräte -&gt; Netzwerk -&gt; Microsoft Windows Mobile Remote Adapter auswählen:<br />Rechter Mausklick auf Microsoft Windows Mobile Remote Adapter -&gt; Deinstallieren wählen<br /><br />USB Kabel entfernen und wieder einstecken. Windows 7 installiert nun den Treiber neu (ggf. bestätigen bei Nachfragen).<br /><br />Etwas umständlich, funktioniert aber.]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry100920-150147</id>
		<issued>2010-09-20T00:00:00Z</issued>
		<modified>2010-09-20T00:00:00Z</modified>
	</entry>
	<entry>
		<title>Ergänzung zu Araya auf Windows 7 bzw. Win2008 Server</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry100831-112605" />
		<content type="text/html" mode="escaped"><![CDATA[Wenn die Araya Installation durch Kopieren (etwa wenn Araya con einem Computer zu einem anderen kopiert wird) in einem anderen als dem Standard-Verzeichnis erfolgt, müssen noch folgende Dateien angepasst werden. Hier muss &quot;c:/Program Files&quot; entsprechend ersetzt werden.<br /><br />a) die lib/eaglememex.properties Datei <br />b) die lib/getjavahome.bat; hier muss ggf. auch der Java Pfad angepasst werden!<br />c) lib/emx_service_install.bat<br />d) lib/rpcserver-install.bat<br />e) ini/catalogue.xml<br />f) lib/run_emx_server.bat (nicht in allen Installationen vorhanden)<br /><br />Zu beachten ist auch noch, dass die Datei database/database.xml entsprechend angepasst werden muss, da diese die bekannten Datenbanken enthält und diese ggf. der neuen Araya Version nicht mehr zugänglich sind.]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry100831-112605</id>
		<issued>2010-08-31T00:00:00Z</issued>
		<modified>2010-08-31T00:00:00Z</modified>
	</entry>
	<entry>
		<title>Araya EagleMemex Service oder OpenTMS Service starten - Windows 7, Windows 2008 Server, Adminstratoren-Rechte</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry100830-102203" />
		<content type="text/html" mode="escaped"><![CDATA[Ich habe in einem der vorhergehenden Beiträge &quot;Starten von Java Anwendungen als Windows Services&quot; schon beschrieben, dass es Probleme beim Starten gibt, wenn die die DLL msvcr71.dll fehlt. Sie muss in das Windows/System32 Verzeichnis kopiert werden.<br /><br />Ein weiteres Problem tritt nun bei  <b>Windows 7 bzw. Windows 2008 </b>  Server auf. Zum Starten/Installieren der Services wird die  <b>araya.exe </b>  (bei Araya) oder  <b>JavaService.exe </b>  (bei OpenTMS) verwendet.  <b>Diese beiden exes müssen als Adminstrator gestartet werden</b>  (Eigenschaften -&gt; Kompatibiltät -&gt; Programm als Administrator ausführen).  <b>Selbiges gilt für die batch Dateien z.B. rpcserver-install.bat bei Araya oder OpenTMS.</b>  Diese müssen auch mit Adminstratoren-Rechten gestartet werden. Z.B. im Explorer: rpcserver-install.bat markieren, rechter Mausklick und dann als &quot;Adminstrator ausführen&quot; wählen.]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry100830-102203</id>
		<issued>2010-08-30T00:00:00Z</issued>
		<modified>2010-08-30T00:00:00Z</modified>
	</entry>
	<entry>
		<title>Warum Araya in Java? Ein Performanztest - Vergleich Java, C und und C# bei der Levenshtein-Funktion</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry091128-141944" />
		<content type="text/html" mode="escaped"><![CDATA[Araya und seine Werkzeuge, aber auch openTMS (www.opentms.de) sind in Java geschrieben. Nun gilt ja  <b>Java nicht unbedingt als sehr schnelle Sprache</b> (&quot;Interpreter&quot; geistert da noch immer in den Köpfen, trotz JUI-Compiler), noch immer halten sich die Gerüchte/Meinungen, dass  <b>Java im Vergleich zu anderen Programmiersprachen wie C, C++ langsam </b>  ist. Die folgenden Ausführungen beziehen sich auf Microsoft-Betriebssysteme.<br /><br />Das wollte ich nun einmal vergleichen bzw. testen, in dem ich eine der Kernfunktionen von Araya (aber auch openTMS) -  <b>den Ähnlichkeitsvergleich basierend auf Levenshtein </b>  - mit  <b>Java, C und C# </b>  vergleiche. Der Levenshtein-Vergleich ist u.a. auch darum so interessant, da diese Funktion als zweiter Filterschritt nach der KD-Tree basierten Ähnlichkeitssuche eingesetzt wird (sh. dazu u.a. <a href="http://www.opentms.de/?q=node/66" target="_blank" >openTMS und Ähnlichkeissuche</a>). Je nach Ähnlichkeitsanforderungen (%) liefert die KD-Tree suche 10% - 20% an passenden trigram-basierten Treffern zurück. Enthält z.B. die Datenbank 10.000 Einträge bedeutet dies, dass auf der Treffermenge insgesamt zwischen 1000 - 2000 Levenshtein-Vergleiche durchgeführt werden müssen.    <a href="http://www.yourkit.com/java/profiler/index.jsp" target="_blank" >Yourkit Java Profiler</a> basierte Analysen zeigen, dass bei dieser Änlichkeitssuche bis zu 70% der Gesamtsuchzeit mit der Ausführung der Levenshtein-Vergleiche aufgewendet wird. Damit bringt eine Optimierung der Levenshtein-Vergleiche eine beachtlichen Zeitgewinn. Eine erste Idee war nun, den Levenshtein-Vergleich in C zur realiseren und per JNI einzubinden.<br /><br />Zusätzlich wollte ich noch den Performanzunterschied in Java, einmal mit  <b>-server</b> , einmal mit  <b>-client </b>  gestartet, vergleichen. Und als weitere Möglichkeit - wie angedeutet -den Aufruf der Levenshtein-Methode über <b>JNI</b> (also eine C Funktion).<br /><br />Der - zugegeben - einfache Versuch sah so aus, dass ich die Java Levenshtein-Methode nach C und C# konvertierte, was ziemlich einfach war. Vor allem da es sich dabei um keine komplexen Klassen, sondern im Prinzip um einfache Funktionen handelt. <br /><br />Es wurde dazu die  Levenshtein-Methode in den Testanwendungen jeweils 1.000.000 aufgerufen und das Experiment mit einer Kommandodatei 10 mal wiederholt.<br /><br />Wichtig um die folgenden Ergebnisse zu interpretieren, sind die Systemparameter:<br />Hardware: Intel Core i7 940 CPU 2.93 GhZ, 6GB RAM, 750 GB Festplatte<br />Betriebssystem: Windows Server 2008 Standard (32 bit Version)<br />Java Version: 1.6.0_17<br /><br />Hier nun das Ergebnis über alle 10 Läufe:<br /><br /><a href="javascript:openpopup('http://www.heartsome.de/arayatest/javaperformance.png',800,600,false);"><img src="http://www.heartsome.de/arayatest/javaperformance.png" border="0" alt="" /></a> <br /><b>Abbildung 1:</b> Vergleich der unterschiedlichen Programmiersprachen.<br /><br />Java mit -server ist nach diesem Versuch das beste, gefolgt von C und der JNI (-server) Lösung. Interessanterweise war C# (C Sharp) mit Abstand die langsamste Lösung. Die client Java Version ist immer langsamer als die C Version. Immerhin beträgt der Performanzunterschied der Java -server Lösung zu C immerhin rund 20%. Das ist nicht zu vernachlässigen. Auf JNI in diesem Fall zu setzen macht keinen Sinn.<br /><br />Was kann man daraus folgern?<br /><br />a) <b>die Mär, dass Java langsam ist, stimmt so nicht</b>. Zumindest in diesem Fall. Sicher ist es vom Einzelfall abhängig, wie schnell eine Java Anwendung läuft, aber generell ist der Unterschied nicht gewaltig.<br />b) Wenn man Java verwendet, sollte man zur optimalen Performanz <b>-server</b> verwenden oder die Konfigurationsdatei jvm.cfg von Java anpassen. Wichtig ist aber, dass beide Versionen installiert sind (erkennbar am Verzeichnis [Java]/jrexxx/bin, jeweils mit einem server bzw. client Verzeichnis). Die Datei jvm.cfg findet man im Verzeichnis [Java]/jrexxx/lib/i386) und ändert die Reihenfolge von -server und -client so:<br /><br />-server KNOWN<br />-client KNOWN<br /><br />Damit wird nun standardmässig bei einem java Aufruf die Server jvm eingesetzt.<br /><br />Wenn Sie diesen Test selbst durchführen wollen, können Sie unter <a href="http://www.heartsome.de/arayatest/JavaPerformanceTest.zip" target="_blank" >JavaPerformanceTest.zip</a> die entsprechenden Testdateien herunterladen. Entzippen in ein Verzeichnis und &quot;nativetest.bat&quot; oder &quot;nativetestloop.bat&quot; oder &quot;nativetestloop.bat &gt; out&quot; ausführen. Der Source-Code für die verschiedenen Versionen befindet sich in c, cs sowie lib. Der Java Quellcode ist in den jeweiligen jar Dateien enthalten. <br /><br />Die Ausgabe sieht dann so aus:<br /><br />java -server<br />JNI:  Similarity: 63 Milliseconds: 6884 Seconds of processing: 6.884 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --<br />Java: Similarity: 63 Milliseconds: 4919 Seconds of processing: 4.919 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --<br />java -client<br />JNI:  Similarity: 63 Milliseconds: 6554 Seconds of processing: 6.554 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --<br />Java: Similarity: 63 Milliseconds: 10267 Seconds of processing: 10.267 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --<br />C:    Similarity: 63 Milliseconds: 5732 Seconds of processing: 5.7320 CLOCKS_PER_SEC, CLOCKS_PER_SEC: 1000<br />C#:   Similarity: 63 Milliseconds: 10534 Seconds of processing: 10,534 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --<br /><br />Die ersten beiden Zeilen beziehen sich auf die Java -server Version, die beiden folgenden auf Java -client, dann die C und C# Variante. Wichtig ist der Wert nach &quot;Milliseconds:&quot;, er zeigt die jeweilige Ausführungszeit an (1.000.000 Aufrufe der Levenshtein-Vergleiche)<br /><br />Sie können mir Ihre Ergebnisse (biite mit Angaben über Ihr System) gerne zu schicken - klemens.waldhoer at heartsome.de. Ich werde dann die Vergleichstabellen ausbauen.<br />]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry091128-141944</id>
		<issued>2009-11-28T00:00:00Z</issued>
		<modified>2009-11-28T00:00:00Z</modified>
	</entry>
	<entry>
		<title>Araya Bilingualer Term Extraktor: Testversion zum Herunterladen verfügbar</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry091126-083857" />
		<content type="text/html" mode="escaped"><![CDATA[ <b>Neu:</b>  Sie können ab sofort eine<br /><a href="http://www.heartsome.de/de/testextractortest.php&quot;" target="_blank" >Testversion des Araya Bilingualen Terminologieextraktionswerkzeug</a> herunterladen.  Einzige Einschränkung der Testversion ist, dass maximal 20 Termpaare extrahiert werden. Mit dem bilingualem Terminologieextraktionswerkzeug von Araya können Sie unschlagbar günstig bilinguale Terminologieextraktion selbst betreiben. Über eine einfach zu bediendene Oberfläche können Sie sowohl bilinguale Terminologie aus einer TMX-Datei extrahieren und anschliessend bearbeiten.<br /><br />]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry091126-083857</id>
		<issued>2009-11-26T00:00:00Z</issued>
		<modified>2009-11-26T00:00:00Z</modified>
	</entry>
	<entry>
		<title>openTMS und Data Sources - Ein Beitrag von Dr. Waldhör zum Erstellen von Data Sources in openTMS</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry091123-074906" />
		<content type="text/html" mode="escaped"><![CDATA[ <b>openTMS</b>  - die Open Source Initiative zur Erstellung eines Open Source Translation Memory Systems - veröffentlich regelmässig neue Version des openTMS Systems - sh. <a href="http://www.opentms.de." target="_blank" >www.opentms.de.</a><br /><br />Dr. Waldhör als Chefarchtiekt hat nun den ersten Artikel in einer Serie zum Erstellen von openTMS Data Sources geschrieben. Sie finden ihn hier: <a href="http://opentms.de/?q=node/64." target="_blank" >http://opentms.de/?q=node/64.</a> Er erläutert, wie man eine einfache Data Source - als einer abstrakten Klasse zum Übersetzen von Segmenten mit Datenbanke etc. - am Bespiel des  <b>maschinellen Übersetzungssystems MOSES</b>  wie eine Datenquelle, die nur &quot;lesen&quot; kann, implementiert wird. Die Serie wird fortgesetzt!]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry091123-074906</id>
		<issued>2009-11-23T00:00:00Z</issued>
		<modified>2009-11-23T00:00:00Z</modified>
	</entry>
	<entry>
		<title>Postgres und openTMS - openTMS Funktion in Postgres SQL aufrufen</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry090925-110035" />
		<content type="text/html" mode="escaped"><![CDATA[Die folgenden Befehle zeigen beispielhaft wie (static) openTMS Java Funktion in Postgres direkt am Server ausgeführt werden können.<br /><br />In einem ersten Schritt ist bei der Datenbank das Skript  <b>install.sql</b>  (C:\ProgrammeDatenbanken\PostgreSQL\8.4\share\pljava) ausführen.<br /><br />Dann folgende SQL Befehle durchführen.<br /><br />SELECT sqlj.install_jar(&#039;file:///C:/Program Files/OpenTMS/lib/opentms.jar&#039;, &#039;opentms&#039;, true);<br /><br />CREATE SCHEMA opentms_pljava<br />  AUTHORIZATION postgres;<br /><br />SET search_path TO opentms_pljava,public;<br /><br />SELECT sqlj.set_classpath(&#039;opentms_pljava&#039;, &#039;opentms&#039;);<br /><br />CREATE FUNCTION opentms_pljava.levenshteinSimilarity(character varying, character varying)<br />  RETURNS int4<br />  AS &#039;de.folt.similarity.LevenshteinSimilarity.levenshteinSimilarity&#039;<br />  LANGUAGE java;<br />  <br />CREATE OR REPLACE FUNCTION opentms_pljava.getCurrentUser()<br />  RETURNS character varying<br />  AS &#039;de.folt.util.OpenTMSSupportFunctions.getCurrentUser&#039;<br />  LANGUAGE java;<br /><br />SELECT levenshteinsimilarity(cast(&#039;klemens&#039; as character varying), cast(&#039;klemen&#039; as character varying));<br /><br />SELECT getCurrentUser();]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry090925-110035</id>
		<issued>2009-09-25T00:00:00Z</issued>
		<modified>2009-09-25T00:00:00Z</modified>
	</entry>
	<entry>
		<title>Postgres und pljava - eine lange Geschichte... Fehler beim Installieren...</title>
		<link rel="alternate" type="text/html" href="http://www.xliff.net/blog/index.php?entry=entry090924-115148" />
		<content type="text/html" mode="escaped"><![CDATA[Für openTMS wollen wir unser TM als serverseitige (Java) Komponente einsetzen. Um Java in Postgres serverseitig einsetzen zu können, ist es notwendig das mitgelieferte pljava zu &quot;aktivieren&quot;, da per default ausgeschaltet. Das erwies sich als komplizierter als gedacht. Hier mein Weg zu einer funktionsfähigen Installation (für Windows).<br /><br />Ich bekam die verschiedensten Fehlermeldungen, von dll nicht gefunden, ulkige Pfadnamen etc. Wichtig war u.a. die korrekte Schreibweise der Pfadnamen in der conf datei (also \\ statt \ verwenden). Etwas mühsam zu eruieren, auch mit der Suche im Web.<br /><br />Zu beachten ist, dass ich Postgres unter C:\ProgrammeDatenbanken installiert habe. Pfade sind entsprechend anzupassen! <br /><br />OK, hier nun die Details:<br /><br /><b>Schritte install pljava bei Postgres</b> <br />====================================<br /><br />Annahme Postgres unter:  <b>C:\ProgrammeDatenbanken\PostgreSQL\8.4</b> <br /><br />1)  <b>Anpassen in Systemsteuerung</b>  - korrekten Java Pfad einsetzen!<br />PATH <br />C:\Program Files\IDM Computer Solutions\UltraEdit\;C:\Program Files\IDM Computer Solutions\UltraCompare\;c:\Program Files\Java\jre6\bin\client\<br /><br />Wenn nicht gesetzt, kann Java von Postgres nicht ausgeführt werden.<br /><br />2)  <b>postgresql.conf</b>  in C:\ProgrammeDatenbanken\PostgreSQL\8.4\data anpassen<br /><br />Einträge am Ende &quot;entkommentieren&quot;. Hier die Einträge:<br /><br />WICHTIG: Bei den Pfadnamen mit \ mussmit \\ geschrieben werden!<br /><br />custom_variable_classes = &#039;pljava&#039;<br />pljava.classpath =&#039;C:\\ProgrammeDatenbanken\\PostgreSQL\\8.4\lib\\pljava.jar&#039;<br />pljava.statement_cache_size = 10<br />pljava.release_lingering_savepoints = true<br />pljava.vmoptions = &#039;-Xmx512M&#039;<br />pljava.debug = false<br />dynamic_library_path = &#039;$libdir;C:\\ProgrammeDatenbanken\\PostgreSQL\\8.4\\lib&#039;<br />log_min_messages = info<br /><br />3) in  <b>pgadmin </b>  Script C:\ProgrammeDatenbanken\PostgreSQL\8.4\share\pljava install.sql ausführen; vorher auswählen einer Datenbank<br /><br />4) <b>Testen </b>  mit<br />SELECT sqlj.install_jar(&#039;file:///C:/ProgrammeDatenbanken/PostgreSQL/8.4/lib/examples.jar&#039;,<br />&#039;samples&#039;,  true);<br />   SELECT sqlj.set_classpath(&#039;javatest&#039;, &#039;samples&#039;);<br /><br />Dann z.B.<br />SELECT * FROM javatest.listSupers();<br /><br /><br />Dann sollte alles funktionieren..<br /><br />Viel Erfolg!]]></content>
		<id>http://www.xliff.net/blog/index.php?entry=entry090924-115148</id>
		<issued>2009-09-24T00:00:00Z</issued>
		<modified>2009-09-24T00:00:00Z</modified>
	</entry>
</feed>

