Archiv der Kategorie: OpenSource Software

Hier findet ihr Tipps und Berichte zu OpenSource Software

Mit aspell eigene Wörterbücher erstellen und automatisch nutzen

Wenn man über ein Fachthema schreiben will, so fehlen in Wörterbüchern der Programme die notwendigen Fachbegriffe. Diese Fachbegriffe wollte ich zentral sammeln und in allen Programmen benutzen, die auch aspell verwenden. Darunter zählt z.B. OpenOffice, Kile, Eclipse Latex Plugin Texlipse, Evolution und viele andere.

Das erstellen eigener Wörterbücher ist in der Zimbra Wiki gut beschrieben. Ich habe den Aufruf etwas angepasst, da ich die Wörterbücher bei mir im Home-Verzeichnis haben wollte und damit auf andere Systeme leicht übertragbar. Auch habe ich mir das Erstellen neuer Wörterbücher etwas vereinfacht, wie es im Folgenden erklärt wird.

Zuerst habe ich mir einen Ordner für die Wörterbücher angelegt:

mkdir ~/documents/dicitonaries

Dieser Ordner soll alle meine angepassten Wörterbücher enthalten und sehr einfach eingebunden werden können.

Um neue Wörterbücher ohne Administratorrechte hinzufügen zu können, habe ich eine multi-Datei ( eine Art include-Datei) „~/documents/dicitonaries/my-de.multi“ mit dem folgenden Inhalt angelegt:

# Dateiname: ~/documents/dicitonaries/my-de.multi
include /home/myuser/documents/dicitonaries/informatik.rws

Damit meine multi-Datei auch vom aspell ohne Parameter benutzt wird, musste ich sie im Systemordner in eine passende multi-Datei eintragen. Da mein Wörterbuch für Deutsch gedacht ist, habe ich den folgenden Eintrag in die Datei „/usr/lib/aspell/de.multi“ unter Linux und auf dem Mac (installiert mit MacPorts) „/opt/local/share/aspell/de.multi“ gemacht:

include /home/myuser/documents/dicitonaries/my-de.multi

Wenn „include“ nicht funktioniert, dann einfach „add“ probieren:

add /home/myuser/documents/dicitonaries/my-de.multi

Damit die Wörterbücher sehr einfach zu editieren sind, habe ich für jedes Wörterbuch eine Textdatei mit eigenem Namen angelegt im dictionaries-Ordner angelegt. Hier ist ein Beispiel für Informatik (Dateiname informatik.txt):

# ~/documents/dicitonaries/informatik.txt
Informationssicherheit
schützenswert

Der folgende Befehl macht aus der Textdatei ein Wörterbuch-Datei:

aspell --encoding=UTF-8 --lang=de create master ./masterarbeit.rws < masterarbeit.txt

Achtung: Es ist wichtig bei dem Aufruf einen Pfad für die rws-Datei anzugeben, sonst wird der Aufruf nicht funktionieren.

Hinweis: Wer wie ich UTF-8 benutzt, sollte das Encoding beim Aufruf setzen. Aspell verwendet nicht die Systemkodierung und deswegen kommt es zu Problemen mit Umlauten. Ohne das Encoding kommen folgende Fehler bei Verwendung von Umlauten in der Textdabei beim Aufruf der Umwandlung:

Warning: The word "schützenswert" is invalid. The character '¼' (U+BC) may not appear in the middle of a word. Skipping word.

PS: Danke an Matthias für den Tipp mit den eigenen Wörterbüchern

Hoffe damit auch jemanden geholfen zu habe und freue mich über Kommentare.

CMS System Weceem basierend auf dem Grails Framework im Apache Tomcat (Catalina) Servlet Container deployen

Ich habe mir etwas Zeit genommen, um Weceem  auszuprobieren. Weceem ist ein Content Management System (CMS) basierend auf dem Grails Framework. Es kann standalone als Applikation oder als Plugin in einer Applikation betrieben werden. Im folgenden beschreibe ich, wie Weceem standalone in Apache Tomcat benutzen werden kann. Es existiert bereits eine Anleitung auf der Weceem Webseite, aber sie ist sehr spartanisch und deckt einige Details nicht ab. Vor allem fehlt eine Fehlerbeschreibung oder Tipps, falls die Installation nicht erfolgreich verläuft.

Voraussetzungen

Für die Installation werden die folgenden Softwarekomponenten benötigt:

  • Java Version 1.6 (6.0)  oder höher
  • Ein Servlet Container wie Apache Tomcat (Catalina), Jetty oder höher
  • Ein Datenbankserver mit Hibernate Unterstützung wie MySQL oder Postgresql
  • Webceem Standalone Applikation in einer War-Datei

Einrichtung vor dem Deployment (Weceem Version 0.8):

Die folgenden Variablen müssen im System (ausführenden Benutzer) gesetzt sein  (Beispiel für Ubuntu 9.X):


export JAVA_PATH=/usr/lib/jvm/java-6-sun/
export CATALINHA_HOME=/opt/tomcat-6.0.26

Weceem setzt Lucene für die Suche ein. Lucene benötigt einen Ordner für die Index Dateien. Dafür muss der folgende Ordner für den Tomcat-Benutzer Schreibrechte besitzen:


/var/cache/weceem

Die Datenbank-Einstellungen in der Standalone Version sind nicht in dem War-Paket enthalten, da die Einstellungen für jede Installation anders sind. Für MySQL sieht die Datei mit den Einstellungen wie folgt aus (Dateiname z.B. $CATALINA_HOME/conf/weceem.properties):


dataSource.pooled=true
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.username=YOURWECEEMUSER
dataSource.password= YOURWECEEMPASSWORD
dataSource.dbCreate=update
dataSource.url=jdbc:mysql://localhost:3306/weceem

Damit Die Konfigurationsdatei für die Datenbank von der Webanwendung gefunden wird, muss sie über die Parametrisierung des Servlet Containers gesetzt werden. Dafür habe ich die Variable CATALINA_OPTS verwendet. Ich habe das Startskript des Tomcats direkt für Testzwecke verändert. Das Startskript ist hier zu finden: $CATALINA_HOME/bin/catalina.sh . Der Eintrag sieht wie folgt aus:


CATALINA_OPTS="-Dweceem.config.location=file:///$CATALINA_HOME/conf/weceem.properties"

Weceem enthält keine Datenbank-Connectoren, da sie meistens unter einer anderen Lizenz stehen. Dieser muss dem Servlet Container (hier Apache Tomcat) hinzugefügt werden. Die Jar-Datei des MySQL-Connectors muss entweder in den Java CLASSPATH Variable aufgenommen werden oder in den Ordner $CATALINA_HOME/lib/ kopiert werden.

Bevor die Anwendung deployt werden kann, müssen vorab die JAVA-Speichereinstellungen angepasst werden. Das kann wieder in dem Catalina Startskript $CATALINA_HOME/bin/catalina.sh geschehen. Das habe ich durch das Hinzufügen der folgenden Variable gemacht:


JAVA_OPTS="-server -Xmx512m -Xms512m -XX:MaxPermSize=256m"

Damit sollten alle notwendigen Einstellungen gesetzt sein. Jetzt muss die War-Datei von Weceem richtig benannt und in den Order $CATALINA_HOME/webapps/ kopiert werden. Das Deployen erledigt Tomcat selber. Nach dem Start des Servlets Containers sollte die Anwendung unter dem folgenden Pfad zu erreichen sein. Für den Test habe ich die Anwendung (War-Datei name weceem.war) weceem genannt:

http://localhost:8080/weceem/

Die Administration der Seite ist unter dem „admin/“ Pfad zu erreichen. Benutzername und Passwort sind bei der ersten Ausführung beide auf „admin“ gesetzt. Bei mir sieht der Pfad wie folgt aus:

http://localhost:8080/weceem/admin/

Probleme

Meine ersten Versuche waren nicht so erfolgreich. Deswegen sollte bei Probleme, in dem Log-Ordner $CATALINA_HOME/log in der Datei catalina.log nach Fehlermeldungen Ausschau gehalten werden. Die Java-Stacktraces zeigen meistens ziemlich schnell, wo der Fehler liegt.

Quellen und Hinweise:

… Wenn ich Zeit finde, dann übersetzte ich die ganze Geschichte auf Englisch.

Über Texlipse unter Eclipse deutsche Anführungszeichen bei der Eingabe automatisch verwenden

Ich suche jedes mal bei einem neuen Texlipse Projekt unter Eclipse, wo ich die Art der Anführungszeichen auf Deutsch umstellen kann. Natürlich geht die Suche zuerst in den Einstellungen von Texlipse los, da ich es von Kile her kenne. In Kile sind sie unter:

  • Englisch: Settings -> Configure Kile -> Latex -> General
  • Deutsch: Einstellungen -> Kile konfigurieren -> Latex -> Allgemein

zu finden. Eigentlich logisch oder doch nicht? Bei Eclipse sind sie unter Projekteigenschaften.

Voreingestellt bei neuen Projekten von Texlipse unter Eclipse sind englische Anführungszeichen, die sich immer oben befinden. Darum muss man logischerweise unter Projekteinstellungen suchen. Dort findet man dann auch ganz schnell unter

  • Englisch: Project -> Properties -> Latex Project Properties

ganz unten die Spracheinstellungen (Language Settings). Tippt man dort anstatt „en“ „de“ ein und speichert die Einstellungen, so verwendet Texlipse bei der Eingabe die deutsche Art der Anführungszeichen. Das gilt auch für alle anderen länderspezifischen Eingaben.

Ich hoffe diese kleine Gedächtnisstütze hilft nicht nur mir, wenn die sprachspezifischen Symbole wieder mal benötigt werden.

Ich freue mich über Kommentare von Mitleidenden! 🙂

Weitere Informationen:

In Eclipse Galileo (3.5.X) Plugins installieren/nachinstallieren Probleme

Das Eclipse Update System ist leider sehr complex und damit für Fehler anfällig. Unter bestimmten Bedingungen bekommt man bei der Installation von neuen Plugins folgende Fehler: „No repository found containing: …..“

Dieser Fehler trat bei mir auf und deutet auf die Galileo Update Site direkt von Eclipse:

[code]
An error occurred while collecting items to be installed
session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,net.sf.cglib,2.1.3.v200906051230
No repository found containing: osgi.bundle,org.eclipse.hyades.probekit,4.2.500.v200906041936
No repository found containing: osgi.bundle,org.eclipse.mylyn.commons.soap,3.2.0.v20090617-0100-e3x
No repository found containing: osgi.bundle,org.eclipse.mylyn.jira.core,3.2.0.v20090617-0100-e3x
No repository found containing: osgi.bundle,org.eclipse.mylyn.jira.ui,3.2.0.v20090617-0100-e3x
[/code]

Eclipse versucht alle Update Sites zu kontaktieren und dort Versionen zu erfragen, damit es Abhängigkeiten zwischen den Biblioetheken richtig auflösen kann. Treten dabei Probleme auf, weil die Seite z.B. überlastet oder gerade nicht erreichbar ist, dann misslingt die Installation.

Eine mögliche Lösung besteht darin, die betroffene Seite unter „Window -> Preferences -> Install/Update -> Available Software Sites“ zu deaktivieren.

Das ist meistens die Haupt-Updateseite von Eclipse:

[code]
Galileo        http://download.eclipse.org/releases/galileo Enabled <-- auf Disabled setzen [/code] Hilft das nicht weiter, so müssen am besten weitere Seiten deaktiviert werden, bis die Installation funktioniert.

ext3 Performanzverbesserungen und CFQ Linux Scheduler Internals auf lwn.net

Heute bin ich zufälligerweise über den Artikel Solving the ext3 latency problem gestolpert. In diesem ist beschrieben wie Latency Probleme im ext3 Dateisystem untersucht, aufgedeckt und behoben wurden. Vor allem interessant finde ich die Beschreibung der internen Abläufe im Kernel und besonders im CFQ Scheduler. Dieser stellt in heutigen Betriebssystemen den modernsten Scheduler dar.

Besonders die Probleme mit fsync() Aufrufen sind mir sehr gut bekannt. Allerdings habe ich sie ohne weitere Untersuchungen auf die Festplatte geschoben, weil ich bei Windows XP deutlich schlimmere Verzögerungen miterleben muss. Ich freue mich schon auf den 2.6.30er Linux Kernel und den deutlichen Performanzzuwachs.

Vor allem lobe ich die ausführliche und aufschlussreiche Berichtserstattung des Problems. Dadurch wurde den Lesern gleichzeitig notwendiges Hintergrundwissen für die Optimierung des Dateisystems mitgeteilt. Auch wurde damit gezeigt, dass an Linux mehrere Personen arbeiten und allen sehr viel an der Qualität des Linux Kernels liegt.

ORM für PHP: Doctrine 1.0 erschienen

Objektorientierte Softwareentwicklung erfodert eine Abbildung der Datenbankstrukturen auf Objektstrukturen. Das unter Java sehr beliebte Framework Hibernate stellt einer der Vorreiter in dieser Entwicklung dar. Durch XML-Konfigurationsdateien werden Datenbankstrukturen auf Objekte in der Anwendung abgebildet.

Seit kurzem ist dier erste stabile Version von Doctrine – einem objektrelationalen Mapping (ORM) für PHP erschienen, welches nach dem Vorbild von Hibernate arbeitet und das Mapping von Daten aus der Datenbank auf Objekte ermöglicht.

Dadurch gewinnt objektorientierte Programmierung auch bei PHP immer mehr an Fahrt und ermöglicht eine besser strukturierte und einfacher zu erweiternde Software.

Weitere Informationen:

WordPress 2.7 mit einem komplett überarbeiteten Backend

Die neue Version 2.7 von WordPress kommt mit einer komplett überarbeiteten Backend-Oberfläche daher. Die Farben vom Vorgänger haben mir persönlich mehr gefallen, aber den neuen Seitenaufbau will ich nie mehr missen. Alle mir wichtigen Elemente sind schnell erreichbar. Die Oberfläche wirkt übersichtlicher und das Scrollen nach unten wird bei meiner Auflösung überflüssig, da alles auf den Bildschirm passt.

Für diese Version kann ich einen besonders großen Lob aussprechen. Weitere und vor allem technische Änderungen können entsprechend auf der Entwicklerseite nachgelesen werden:

Zwei kritische Sicherheitslücken in WordPress 2.6.3 behoben

Und wieder musste ein Update her, um die Sicherheit der WordPress Applikation zu garantieren.

Eine der Lücken ermöglichte sogar Zugriff auf den Root Server und die zweite befand sich im default-theme von WordPress. Dort war es möglich eine XSS-Lücke auszunutzen und Besuchern Code unterzuschieben.

Und weiter geht es!

Quellen und weitere Informationen:

SSHFS unter Linux und Windows direkt nutzen

Dateisysteme unter Linux mit SSH über das Netzwerk einbinden ist eine mehr als praktische Sache. Dazu findet die Übertragung gesichert statt, was bei NFS und Samba nicht der Fall ist.

Die ganze Geschichte funktioniert unter Debian und Ubuntu wie folgt:

[code]
# Paket installieren:
aptitude install sshfs

# Seinen Benutzer in die Gruppe fuse aufnehmen:
useradd fuse

# Sich neu am System anmelden, damit die Rechte übernommen werden

# Ein beliebigies Dateisystem einbinden:
sshfs user@remoterechner:remotepfad/ lokalerPfad/
[/code]

Für wackelige und schlechte Verbindungen hilft der folgende eintrag in der ~/.ssh/config:

[code]
ServerAliveInterval 15
[/code]

Das hält die SSH-Verbindung länger am leben, wenn auch gerade keine Verbindung da ist.
Quelle: http://fuse.sourceforge.net/wiki/index.php/SshfsFaq#TOC

SSHFS unter Linux und Windows direkt nutzen weiterlesen