Programmoberflächen internationalisieren

Dienstag, 02.02.2010 um 15:28 Uhr

Moin liebe Lesergemeinde,

jeder Programmierer wird sich irgendwann die Frage stellen, welche (G)UI-Sprachen das eigene Programm unterstützen solle. Sind das nur zwei Sprachen, kann man dies noch im Quellcode selbst unterbringen (sollte man trotzdem nicht tun). Doch schon bei drei Sprachen ist das ziemlich aussichtslos.

Irgendwann stand auch ich vor dem Problem und habe ein gutes Tutorial gesucht solch eine Internationalisierung der Benutzeroberfläche zu Bewerkstelligen. Bei Linux Magazin wurde ich in einem sehr ausführlichen Artikel über die Funktion gettext() fündig (zum Artikel geht es hier).

Nutzt auch ihr dieses System oder gibt es noch andere/bessere Alternativen?

Gimp: Auswahl kreisförmig, eliptisch, rechteckig

Montag, 18.01.2010 um 16:55 Uhr

Moin liebe Lesergemeinde,

da ich diesbezüglich immer mal wieder Fragen bekomme, schreibe ich heute mal ein kleines Tutorium zu dem Auswahlwerkzeug in Gimp.

So werde ich beispielsweise immer gefragt, wie man in Gimp einen farbigen Kreis oder eine Ellipse hin bekommt. Das ist in Gimp sehr einfach zu lösen.

Zum Testen öffne man ein neues Bild in Gimp. Dann wählt man das Elliptische Auswahl-Werkzeug aus (Werkzeugkasten oben 2. von links oder Taste “e”). Jetzt öffnet sich unterhalb des Werkzeugkastens das Werkzeugmenü zur elliptischen Auswahl. Dort gibt es die Option “Fest”. Aus dem Dropdown Feld wählt man Seitenverhältnis und gibt in das Textfeld darunter “1:1″ ein (im Bild rot markiert).

werkzeuge

Nun beginnt man mit gedrückter Maustaste in dem Bild die Ellipse aufzuziehen. Die Option “Fest” wählt man, indem die Shift-Taste gedrückt und gehalten wird (nachdem man mit der Maustaste die Ellipse begonnen hat). Nun sollte man sehen, dass aus der bisherigen elliptischen Auswahl ein Kreis wird und im Kästchen vor der Option “Fest” ein Häkchen zu sehen ist. Nun kann man bei gedrückter Shift-Taste den Kreis so ziehen, wie man ihn haben will.

Nun fehlt noch das Zeichnen des eigentlichen Kreises. Unter der Option aus der Menüleiste Auswahl → Rand … öffnet sich ein Dialogfeld, in der man die Dicke des Randes eingeben kann (im Bild 2 Pixel). Drückt man auf OK, besteht die Auswahl plötzlich aus zwei ineinander liegenden Kreisen. Jetzt muss man mit der geeigneten Farbe und dem Ausfüllenwerkzeug (Schift+B) den Rand nur noch farbig ausfüllen. Danach kann die Auswahl entfernt werden und voilà wir haben einen Kreis.

rand

Auf diesem Weg lassen sich logischerweise auch Ellipsen, Rechtecke und Quadrate (Rechteckwerkzeug und wieder die Option “Fest” auf 1:1 Seitenverhältnis) und auch weitere einfache geometrische Figuren herstellen. Legt man diese in eine eigene Ebene, lassen sie sich auch nach der Erstellung verschieben und in der Größe verändern.

TeXLive 2009 veröffentlicht

Dienstag, 10.11.2009 um 14:24 Uhr

Moin liebe Lesergemeinde,

vor einigen Tagen ist die neue Version 2009 von TeX Live veröffentlicht worden. Das ISO der Version kann man sich auf der CTAN Webseite herunterladen. Die Installationsmethode funktioniert auch nach meiner Beschreibung bei mir auf dem Blog. Wenn man TeXLive 2008 installiert hatte, bekommt man die Updates mit dem Updatemanager von TeXLive.

Leider hat es keine neue TeXLive Version in die Ubuntu Version 9.10 geschafft. Dort (genauso wie bei Debian) wird immer noch mit der längst veralteten 2007er Version gearbeitet – eigentlich sehr schade, denn es gibt “Tonnen” von Neuerungen in den folgenden Versionen.

Weiß jemand, ob es wenigstens die 2009er Version nach Debian und damit Ubuntu schafft? → würde mich zumindest riesig freuen.

Displays mit DisplayLink Technik unter Linux

Sonntag, 21.06.2009 um 14:13 Uhr

Moin liebe Lesergemeinde,

es gibt wieder erfreuliche Nachrichten in Bezug auf bessere Hardware Unterstützung für Linux. Am 15. Mai 2009 wurde von der Firma DisplayLink Corp. eine LGPL Bibliothek veröffentlicht, die nun die Entwicklung von Treibern und Programmen für den X Server ermöglicht, um Bildschirme mit DisplayLink Chips ansteuern zu können.

DisplayLink entwickelt Chips, die es ermöglichen Standard LCD Bildschirme direkt per USB an einen PC anzuschließen und anzusteuern. Bisher gab es nur Treiber für MS Windows und das Mac OS. Diese Technik ist zum Beispiel sinnvoll für Zusatzdisplays, da keine weitere Grafikkarte benötigt wird. So lassen sich nun zum Beispiel alle Geräte mit einem USB 2.0 Anschluss und einem Linux als Betriebssystem mit einem Display ausstatten (Router, Server, etc).

Näheres zu der Veröffentlichung der Software Bibliothek findet man im Artikel auf der DisplayLink Seite.

Die Community hat sich bereits an die Programmierung eines Treibers gesetzt und es gibt auch schon erste Ergebnisse. So liefert bereits das bekannte NAS System NSLU Bilder auf ein angeschlossenes Display. Die Verwaltung des Projekts hat die Seite freedesktop.org übernommen. Regelmäßige Nachrichten kann man per Mailinglist oder Twitter abrufen. Auf der Webseite findet man ebenfalls eine Installationsanleitung und ein HowTo. Allerdings sollte an dieser Stelle gewarnt werden, dass alles noch auf einem sehr frühen Entwicklungsstand ist.

Allerdings überlege ich mir trotzdem ein kleines Zusatzdisplay zu holen und zu testen. Ich habe für die weitere Technisierung meines zu Hauses vor, in jedem Zimmer ein kleines Mini-ITX Atom Board mit Musik Boxen aufzustellen und diese per Streaming von einem NAS mit Musik zu versorgen. Um jetzt nicht an jedes Board einen eigenen VGA Monitor mit Touchscreen andocken zu müssen (oder ständig VGA und USB Stecker abzuziehen und wieder an einem anderen PC anzustöpseln), habe ich mir überlegt ein DisplayLink Monitor zu nutzen und diesen wenn benötigt einfach an den USB zu stöpseln und den jeweiligen PC zu steuern. So kann man den Monitor auch ohne ständiges Anstöpseln und Abziehen mehrerer Kabel (sondern nur eines Kabels) hin und her tragen.

Es gibt nämlich seit kurzem in Deutschland ein geniales Display zu kaufen. Dieses ist 7” groß und integriert DisplayLink Technik, Touchscreen, Webcam und Mikrofon. Und das alles – bis auf das Mikrofon – über einen USB Anschluss (zumindest so wie ich es verstanden habe). Das Display gibt es bei beim Anbieter CARTFT zu kaufen (wenn jemanden noch ein anderer Anbieter bekannt ist, dann bitte in die Kommentare einfügen).

DisplayLink MonitorDisplayLink Monitor

Allerdings ist das Display mit 160 EUR nicht gerade billig. Deswegen hadere ich auch gerade mit mir, da ja auch der Treiber noch nicht wirklich benutzbar ist. Zudem muss man als Mac/Linux Anwender den Touchscreen Treiber extra kaufen (warum auch immer). Außerdem bin ich in der Hinsicht eher der Endanwender als der Bastelfreak. Naja mal schauen, wie ich mich entscheide.

Kleines Shell Skript zum Umwandeln von SVGs in PDF Bilder

Samstag, 20.06.2009 um 14:10 Uhr

Moin liebe Lesergemeinde,

da ich ja, wie in anderen Einträgen schon erwähnt des Öfteren in LaTeX Dokumente verfasse, ist es auch manchmal nötig Grafiken einzubinden. Da ich normalerweise Grafiken mit Inkscape im Vektorformat SVG erstelle, ist es nötig diese Dateien zu konvertieren. LaTeX kann leider SVGs nicht direkt einbinden. Bei meinen Recherchen im Internet habe ich auch nicht wirklich Bestrebungen gefunden, dieses Leck zu stopfen – also wer von euch in LaTeX voll den Durchblick hat, kann ja mal die Unterstützung dafür Programmieren ;-)

Damit die Eigenschaften eines Vektorformats – also die gute Skalierbarkeit der Grafiken – erhalten bleiben, wandle ich die Dateien immer in eps oder pdf um. Allerdings wird es sehr anstrengend, wenn man eine Kleinigkeit im Bild geändert oder sehr viele Bilder hat, diese immer wieder von Hand umzuwandeln. Deshalb habe ich mir ein kleines Shell Skript geschrieben, dass immer im Ordner meiner SVG Bilder liegt und dort aufgerufen werden kann.

Benutzung:

Man gehe in einer Konsole in den Ordner mit den Bildern und dem Skript. Das Skript muss die Rechte zum Ausführen haben. Ist dies noch nicht der Fall, dann den folgenden Befehl ausführen:

jazz@jazz:~$ chmod +x SVG2PDF

Jetzt hat man die Möglichkeit das Skript ohne Parameter aufzurufen. Dann werden alle im Ordner befindlichen SVGs in eine PDF konvertiert. Dabei richtet sich die Größe der PDF nach der Seiteneinstellung der SVG.

jazz@jazz:~$ ./SVG2PDF

Die zweite Variante ist der Aufruf mit Parametern. Als Parameter kann man eine beliebig lange Liste von SVG Dateien angeben. Dies ist sinnvoll, wenn man nicht alle SVGs in PDF umwandeln will, wenn man zum Beispiel nur ein oder zwei der im Ordner befindlichen SVGs verändert/hinzugefügt hat.

jazz@jazz:~$ ./SVG2PDF eine.svg eineandere.svg

So jetzt hier das Skript zum Runterladen (Rechtsklick → Ziel Speichern unter):

Skript SVG2PDF

Und hier nochmal ausgeschrieben:

#!/bin/bash
if [ $# -lt 1 ]
then
    for f in *.svg; do 
        e=$(basename $f svg)eps;
        echo "Converting $f to a pdf image!"
        inkscape --export-embed-fonts  --export-text-to-path -f $f -E $e; 
        epstopdf $e
        rm $e
    done
else
    for f in $*; do
        if [ -f $f -a ${f#*.} = "svg" ]
        then
            e=$(basename $f svg)eps;
            echo "Converting $f to a pdf image!"
            inkscape --export-embed-fonts  --export-text-to-path -f $f -E $e; 
            epstopdf $e
            rm $e
        else
            echo "File $f is not a SVG!"
        fi
    done
fi

EDIT: Für das Skript muss epstopdf (unter Ubuntu in texlive-extra-utils) installiert sein. Ist es nicht vorhanden, führt dies ebenfalls zu “command not found”-Fehlern.

Gedit – Nützliche Plugins

Freitag, 15.05.2009 um 08:27 Uhr

Moin liebe Lesergemeinde,

heute möchte ich euch ein paar Plugins vorstellen, um den sehr flexiblen Standardtexteditor von Gnome namens gedit noch weiter zu verbessern. Neben den bekannten Plugins für eine Dateiverwaltung in der Seitenleiste und dem Terminal habe ich noch die Plugins für Quelltextkommentare, Schnipsel und Rechtschreibprüfung (für LaTeX Dokumente) aktiviert. Diese sind zum Teil in dem Paket gedit-plugins integriert, welches über die Paketverwaltung installiert werden kann.

Nun habe ich noch zusätzlich recht nützliche Plugins installiert, die nicht in den Paketquellen verfügbar sind. Dazu gehören:

Class Browser:

Der Class Browser stellt alle Klassen, Attribute und Funktionen einer Datei übersichtlich in einer Baumansicht in der Seitenleiste von gedit dar. Mit einem Doppelklick springt dann jeweils der Cursor zum gewählten Eintrag. Dies ist sehr nützlich für längere und dadurch unübersichtlichere Quelltexte. Zudem hat man immer alle Attribute oder Funktionsnamen auf einen Blick zur Verfügung. Die Farben kann man im Plugin anpassen.

Um die Unterstützung für die üblichsten Sprachen zu bekommen, muss zusätzlich zum Plugin noch das Paket exuberant-ctags installiert werden. Für Ubuntu ist das der Befehl:

sudo apt-get install exuberant-ctags

Class Browser

Autocomplete:

Wie der Name schon sagt, ist Autocomplete ein Plugin zur Vervollständigung von Wörtern in Quelltexten. Dabei werden alle Wörter aus allen geöffneten Dateien einbezogen, durch Tippen verändert sich die Liste ständig. Mit den Runter/Hoch Pfeiltasten kann der gewünschte Eintrag gewählt werden (”Größer als”-Zeichen) und mit Tab kann das gewünschte Wort vervollständigt werden. Gerade für lange Namen ist dieses Plugin sehr nützlich.

Autocomplete

Edit Shortcuts:

Mit dem Plugin Edit Shortcuts können alle Menüeinträge mit einer individuellen Tastenkombination belegt werden. Das ist gerade sehr nützlich, wenn man aus anderen Editoren Tastenkombinationen gewöhnt ist und diese beibehalten möchte. Außerdem können zusätzliche Plugins nun mit einer Tastenkombination versorgt werden.

gedit2

Gemini:

Gemini ist ein kleines Plugin welches die verschiedenen Klammern <{['""']}> automatisch schließt. Im Gegensatz zum Plugin was im Standard Plugin Paket dabei ist, kann man auch Text markieren und dann die Klammern einfügen, dann wird der Text automatisch innerhalb der Klammern gesetzt.

Regular Expressions Search and Replace:

Eines der nützlichsten Plugins, wie ich finde, ist das Suchen und Ersetzen mit Regulären Ausdrücken. An richtiger Stelle angewandt ist das ein sehr mächtiges Werkzeug und erspart enorme Schreibarbeit.

Das Beispiel im Bild zeigt, wie man mit einem einfachen Ausdruck sehr schnell häufig wiederkehrende komplexere Ausdrücke editieren/zusammenbauen kann (auch wenn das Beispiel hier nicht sonderlich sinnvoll ist). Find ich toll das Plugin :-)

Reguläre Ausdrücke

Es gibt noch eine Reihe weiterer Plugins. Die meisten werden auf der Gnome Gedit Plugin Webseite gesammelt. Ansonsten kann auch Google bemüht werden.