Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead in /homepages/23/d187578198/htdocs/blog/scripts/sb_display.php on line 564

Warning: Cannot modify header information - headers already sent by (output started at /homepages/23/d187578198/htdocs/blog/scripts/sb_display.php:564) in /homepages/23/d187578198/htdocs/blog/scripts/sb_feed.php on line 153
Heartsome Europe GmbH Blog http://www.xliff.net/blog/index.php Java als Service starten - never ending story - msvcr100.dll - msvcr71.dll http://www.xliff.net/blog/index.php?entry=entry130306-122135
Vor kurzem hatte ich einen extrem hartnäckigen Fall. Das Kopieren nach Windows/Systems32 der msvcr100.dll'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!!!

Anscheinend sind die Java Programierer bei Oracle nicht fähig, die notwendigen dlls bei Laden von Java zu finden...

Wie aufgeführt ein altes Problem und schon oft in diversen Foren und Websites (sh. http://www.duckware.com/tech/java6msvcr71.html) beschrieben!]]>
Powerpoint Absturz - AVG ein / ausschalten hilft http://www.xliff.net/blog/index.php?entry=entry110405-095728
Im Ereignisprotokoll war immer der Fehler zu finden:

.NET Runtime version 2.0.50727.4952 - Schwerwiegender Fehler im Ausführungsmodul (5D0A851A) (80131506).
Protokollname: Application
Quelle: .NET Runtime
Datum: 05.04.2011 09:44:07
Ereignis-ID: 1023
Aufgabenkategorie:Keine
Ebene: Fehler
Schlüsselwörter:Klassisch
Benutzer: Nicht zutreffend
Computer: Hearts

Deinstallation Office2010, Neuinstallation 2007, Netframework versucht neu zu installieren, Registry Cleanen; all das half nichts.

Nach langem Probieren und endlosen Restarts kam ich auf die Idee den VirenScannen AVG temporär abzuschalten. Nun versucht
0) AVG temporär deaktivieren
1) Powerpoint wieder zu starten
2) Start im abgesicherten Modes - LÄUFT
3) PPT beenden
4) PPT wieder starten im Normalmodas - LÄUFT.
5) AVG wieder aktivieren
6) PPT neu starten - LÄUFT

Irgendetwas scheint also AVG bei Starten von PPT blockiert zu haben.


]]>
Windows 7 Synchronisation - Vodafone MDA GPS http://www.xliff.net/blog/index.php?entry=entry100920-150147
Die etwas umständliche Lösung ist dann:

Geräte -> Netzwerk -> Microsoft Windows Mobile Remote Adapter auswählen:
Rechter Mausklick auf Microsoft Windows Mobile Remote Adapter -> Deinstallieren wählen

USB Kabel entfernen und wieder einstecken. Windows 7 installiert nun den Treiber neu (ggf. bestätigen bei Nachfragen).

Etwas umständlich, funktioniert aber.]]>
Ergänzung zu Araya auf Windows 7 bzw. Win2008 Server http://www.xliff.net/blog/index.php?entry=entry100831-112605
a) die lib/eaglememex.properties Datei
b) die lib/getjavahome.bat; hier muss ggf. auch der Java Pfad angepasst werden!
c) lib/emx_service_install.bat
d) lib/rpcserver-install.bat
e) ini/catalogue.xml
f) lib/run_emx_server.bat (nicht in allen Installationen vorhanden)

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.]]>
Araya EagleMemex Service oder OpenTMS Service starten - Windows 7, Windows 2008 Server, Adminstratoren-Rechte http://www.xliff.net/blog/index.php?entry=entry100830-102203
Ein weiteres Problem tritt nun bei Windows 7 bzw. Windows 2008 Server auf. Zum Starten/Installieren der Services wird die araya.exe (bei Araya) oder JavaService.exe (bei OpenTMS) verwendet. Diese beiden exes müssen als Adminstrator gestartet werden (Eigenschaften -> Kompatibiltät -> Programm als Administrator ausführen). Selbiges gilt für die batch Dateien z.B. rpcserver-install.bat bei Araya oder OpenTMS. Diese müssen auch mit Adminstratoren-Rechten gestartet werden. Z.B. im Explorer: rpcserver-install.bat markieren, rechter Mausklick und dann als "Adminstrator ausführen" wählen.]]>
Warum Araya in Java? Ein Performanztest - Vergleich Java, C und und C# bei der Levenshtein-Funktion http://www.xliff.net/blog/index.php?entry=entry091128-141944 Java nicht unbedingt als sehr schnelle Sprache ("Interpreter" geistert da noch immer in den Köpfen, trotz JUI-Compiler), noch immer halten sich die Gerüchte/Meinungen, dass Java im Vergleich zu anderen Programmiersprachen wie C, C++ langsam ist. Die folgenden Ausführungen beziehen sich auf Microsoft-Betriebssysteme.

Das wollte ich nun einmal vergleichen bzw. testen, in dem ich eine der Kernfunktionen von Araya (aber auch openTMS) - den Ähnlichkeitsvergleich basierend auf Levenshtein - mit Java, C und C# 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. openTMS und Ähnlichkeissuche). 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. Yourkit Java Profiler 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.

Zusätzlich wollte ich noch den Performanzunterschied in Java, einmal mit -server , einmal mit -client gestartet, vergleichen. Und als weitere Möglichkeit - wie angedeutet -den Aufruf der Levenshtein-Methode über JNI (also eine C Funktion).

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.

Es wurde dazu die Levenshtein-Methode in den Testanwendungen jeweils 1.000.000 aufgerufen und das Experiment mit einer Kommandodatei 10 mal wiederholt.

Wichtig um die folgenden Ergebnisse zu interpretieren, sind die Systemparameter:
Hardware: Intel Core i7 940 CPU 2.93 GhZ, 6GB RAM, 750 GB Festplatte
Betriebssystem: Windows Server 2008 Standard (32 bit Version)
Java Version: 1.6.0_17

Hier nun das Ergebnis über alle 10 Läufe:


Abbildung 1: Vergleich der unterschiedlichen Programmiersprachen.

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.

Was kann man daraus folgern?

a) die Mär, dass Java langsam ist, stimmt so nicht. 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.
b) Wenn man Java verwendet, sollte man zur optimalen Performanz -server 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:

-server KNOWN
-client KNOWN

Damit wird nun standardmässig bei einem java Aufruf die Server jvm eingesetzt.

Wenn Sie diesen Test selbst durchführen wollen, können Sie unter JavaPerformanceTest.zip die entsprechenden Testdateien herunterladen. Entzippen in ein Verzeichnis und "nativetest.bat" oder "nativetestloop.bat" oder "nativetestloop.bat > out" 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.

Die Ausgabe sieht dann so aus:

java -server
JNI: Similarity: 63 Milliseconds: 6884 Seconds of processing: 6.884 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --
Java: Similarity: 63 Milliseconds: 4919 Seconds of processing: 4.919 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --
java -client
JNI: Similarity: 63 Milliseconds: 6554 Seconds of processing: 6.554 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --
Java: Similarity: 63 Milliseconds: 10267 Seconds of processing: 10.267 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --
C: Similarity: 63 Milliseconds: 5732 Seconds of processing: 5.7320 CLOCKS_PER_SEC, CLOCKS_PER_SEC: 1000
C#: Similarity: 63 Milliseconds: 10534 Seconds of processing: 10,534 CLOCKS_PER_SEC, CLOCKS_PER_SEC: --

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 "Milliseconds:", er zeigt die jeweilige Ausführungszeit an (1.000.000 Aufrufe der Levenshtein-Vergleiche)

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.
]]>
Araya Bilingualer Term Extraktor: Testversion zum Herunterladen verfügbar http://www.xliff.net/blog/index.php?entry=entry091126-083857 Neu: Sie können ab sofort eine
Testversion des Araya Bilingualen Terminologieextraktionswerkzeug 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.

]]>
openTMS und Data Sources - Ein Beitrag von Dr. Waldhör zum Erstellen von Data Sources in openTMS http://www.xliff.net/blog/index.php?entry=entry091123-074906 openTMS - die Open Source Initiative zur Erstellung eines Open Source Translation Memory Systems - veröffentlich regelmässig neue Version des openTMS Systems - sh. www.opentms.de.

Dr. Waldhör als Chefarchtiekt hat nun den ersten Artikel in einer Serie zum Erstellen von openTMS Data Sources geschrieben. Sie finden ihn hier: http://opentms.de/?q=node/64. Er erläutert, wie man eine einfache Data Source - als einer abstrakten Klasse zum Übersetzen von Segmenten mit Datenbanke etc. - am Bespiel des maschinellen Übersetzungssystems MOSES wie eine Datenquelle, die nur "lesen" kann, implementiert wird. Die Serie wird fortgesetzt!]]>
Postgres und openTMS - openTMS Funktion in Postgres SQL aufrufen http://www.xliff.net/blog/index.php?entry=entry090925-110035
In einem ersten Schritt ist bei der Datenbank das Skript install.sql (C:\ProgrammeDatenbanken\PostgreSQL\8.4\share\pljava) ausführen.

Dann folgende SQL Befehle durchführen.

SELECT sqlj.install_jar('file:///C:/Program Files/OpenTMS/lib/opentms.jar', 'opentms', true);

CREATE SCHEMA opentms_pljava
AUTHORIZATION postgres;

SET search_path TO opentms_pljava,public;

SELECT sqlj.set_classpath('opentms_pljava', 'opentms');

CREATE FUNCTION opentms_pljava.levenshteinSimilarity(character varying, character varying)
RETURNS int4
AS 'de.folt.similarity.LevenshteinSimilarity.levenshteinSimilarity'
LANGUAGE java;

CREATE OR REPLACE FUNCTION opentms_pljava.getCurrentUser()
RETURNS character varying
AS 'de.folt.util.OpenTMSSupportFunctions.getCurrentUser'
LANGUAGE java;

SELECT levenshteinsimilarity(cast('klemens' as character varying), cast('klemen' as character varying));

SELECT getCurrentUser();]]>
Postgres und pljava - eine lange Geschichte... Fehler beim Installieren... http://www.xliff.net/blog/index.php?entry=entry090924-115148
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.

Zu beachten ist, dass ich Postgres unter C:\ProgrammeDatenbanken installiert habe. Pfade sind entsprechend anzupassen!

OK, hier nun die Details:

Schritte install pljava bei Postgres
====================================

Annahme Postgres unter: C:\ProgrammeDatenbanken\PostgreSQL\8.4

1) Anpassen in Systemsteuerung - korrekten Java Pfad einsetzen!
PATH
C:\Program Files\IDM Computer Solutions\UltraEdit\;C:\Program Files\IDM Computer Solutions\UltraCompare\;c:\Program Files\Java\jre6\bin\client\

Wenn nicht gesetzt, kann Java von Postgres nicht ausgeführt werden.

2) postgresql.conf in C:\ProgrammeDatenbanken\PostgreSQL\8.4\data anpassen

Einträge am Ende "entkommentieren". Hier die Einträge:

WICHTIG: Bei den Pfadnamen mit \ mussmit \\ geschrieben werden!

custom_variable_classes = 'pljava'
pljava.classpath ='C:\\ProgrammeDatenbanken\\PostgreSQL\\8.4\lib\\pljava.jar'
pljava.statement_cache_size = 10
pljava.release_lingering_savepoints = true
pljava.vmoptions = '-Xmx512M'
pljava.debug = false
dynamic_library_path = '$libdir;C:\\ProgrammeDatenbanken\\PostgreSQL\\8.4\\lib'
log_min_messages = info

3) in pgadmin Script C:\ProgrammeDatenbanken\PostgreSQL\8.4\share\pljava install.sql ausführen; vorher auswählen einer Datenbank

4) Testen mit
SELECT sqlj.install_jar('file:///C:/ProgrammeDatenbanken/PostgreSQL/8.4/lib/examples.jar',
'samples', true);
SELECT sqlj.set_classpath('javatest', 'samples');

Dann z.B.
SELECT * FROM javatest.listSupers();


Dann sollte alles funktionieren..

Viel Erfolg!]]>