Dienstag, 25. November 2008

Graphviz für Mac OS X, Prolog, Computerlinguistik

Für die Mac-Users ist folgende Anleitung bei dem graphischen Tool zu beachten:

um den Parser unter Prolog in Mac OS laufen zu lassen, ist es erforderlich, Graphviz zu installieren, und zwar:
  1. Grafische Oberfläche und
  2. Command line

  1. Grafische Oberfläche ist einfach zu installieren: drag&drop ins Programmenverzeichnis. Das spannende kommt später :) Ich habe die letzte Version, 1.13 (v16), installiert.
  2. Kommandozeile kann man auf verschiedene Weisen installieren. Ich habe den einfachsten Weg gewählt. Über darwinports. Darwinports dürften mittlerweile bei jedem installliert sein, falls nicht, Anleitung hier folgen. Wenn die Macports bereits installiert sind, legt los, und zwar im Terminal, als Root angemeldet, mit:

port install graphviz

Die Installation wird ca. 15-30 Min. dauern, denn Darwinports installiert ein ziemlich komplexes Package mit vielen Extras, z.B.

gmp @4.2.2_1
graphviz @2.20.3_0+darwin_8
hamcrest-core @1.1_0
jpeg @6b_2
junit @4.4_0
libiconv @1.12_0+darwin_8
libmcrypt @2.5.8_0
libpixman @0.12.0_1
libpng @1.2.32_0
ncurses @5.6_0
ncursesw @5.6_1
pango @1.22.2_0


Nach der Installation sind folgende Tools verfügbar:

acyclic, bcomps, ccomps, dot, gvpack etc...

Für Computerlunguistik werden wir vor allem dot und gvpack brauchen. Diese Tools kann man unter anderem mit folgender Syntax benutzen:

toolname -Tps filename -o output.ps

So weit gut. Alle über darwinports installierte Tools sind im Terminal als Kommandozeile verfügbar, zu jedem gibt es einen ausführlichen man-Aufruf. Was fällt ist, der Pfad zur grafischen Oberfläche Graphviz aus Punkt 1, um die dot-Dateien zu pipelinen und beim Kompilieren zu öffnen. Man muss den Pfad nicht unbedingt definieren: die gespeicherten dot-Dateien kann man auch manuell aufmachen und bearbeiten. Apropos die gespeicherten dot- und ps-Dateien - sie werden von unserem Parser [Parser/dot.syntaxbaum.pl] ins Homeverzeichnis geschrieben [/Users/username].
Damit Prolog automatisch diese Dateien mithilfe von Graphviz aufmacht und schön im Hintergrund anzeigt, müssen wir 2 Dinge machen:
  • Den Pfad im Terminal definieren und
  • Prolog-Programm dementsprechend ändern
Um den Pfad zu setzen, fügt folgendes in die .bash_profile hinzu (falls ihr Graphviz in Application folder installiert habt):

cd
mate .bash_profile


wobei mate ein Texteditor sein soll, z.B. mate für Textmate oder smultron für Smultron (benutzt den Befehl für den Editor, den ihr benutzt) etc... Wenn die .bash_profile nicht existieren sollte, einfach anlegen:

cd
touch .bash_profile


Nachdem ihr die .bash_profile mit dem Texteditor geöffnet habt, wird ein Fenster fürs Editieren von .bash_profile aufgemacht. Da folgendes eingeben:

# This sets up the Graphviz path:
export PATH=/Applications/Graphviz.app/Contents/MacOS:$PATH


Dann speichern und den Editor schließen. Terminal neustarten und 'nen neuen Tab öffnen. Jetzt wenn ihr

Graphviz&

eingebt, wird die grafische Oberfläche gestartet. Falls soweit alles gut gegangen ist, können wir das Prolog-Programm ein bisschen anpassen. In der Datei [Parser/dot.syntaxbaum.pl] soll das Prädikat [i]viewgraph/1 [/i] wie folgt geändert werden:

[code]
viewgraph(Datei) :-
concat_atom(['dot -Tps ',Datei,'.tmp.dot ',' -o',Datei,'.tmp.ps '],Command1),
concat_atom(['Graphviz ',Datei,'.tmp.dot &\n'],Command2),
shell(Command1),
shell(Command2).
[/code]

Ich habe lediglich Graphviz hinzugefügt, um den Syntaxbaum gleich nach dem Kompilieren ausgegeben zu bekommen. Achtung: Wenn Graphviz schon mal läuft und ihr noch mal kompiliert und den Syntexbaum ausgeben lässt, kann folgende Fehlermeldung kommen, was des Weiteren nichts Schlimmes ist:

Graphviz[12712] CFLog (0): CFMessagePort: bootstrap_register(): failed 1103 (0x44f), port = 0x4103, name = 'com.pixelglow.graphviz.gui.ServiceProvider'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2008-11-19 23:40:47.294 Graphviz[12712] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (com.pixelglow.graphviz.gui.ServiceProvider)


oder ähnlich. Um das zu vermeiden, einfach jedes Mal schön Graphviz beenden. :)

Das war's schon. Ich hoffe, ich habe Euch Zeit gespart... :) Falls Ihr Fragen habt, los damit!

Viel Spaß!

Dienstag, 11. November 2008

GrowlMail 1.1.4: Versuchen Sie die Installation erneut

Nach der Neuinstallation meines Betriebsystems OS X musste ich Growl updaten und das GrowlMail Plug-in neu installieren. Obwohl ich alle Schritte genauso wie in der Anleitung gefolgt habe, habe ich trotzdem diese Fehlermeldung bekommen: "Versuchen Sie die Installation erneut". Ich habe mehrmals versucht, aber erfolglos. Die Lösung ist einfach: als Admin-Benutzer anmelden und installieren. Dann ist alles reibungslos gelaufen. Also mit Administratorenrechten probieren!

Viel Spaß

Mittwoch, 5. November 2008

Samstag, 1. November 2008

Error: Unable to open port: couldn't change working directory to "[path]": n

Error: Unable to open port: couldn't change working directory to "[path]": no such file or directory

To fix it, just type

port sync

Freitag, 24. Oktober 2008

RoR etc

/usr/local/src
/usr/local/pgsql
script/server
/usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l postgres.log start
/usr/local/bin/pg_ctl stop -D /usr/local/pgsql/data/

Donnerstag, 23. Oktober 2008

Dienstag, 3. Juni 2008

Prolog auf Mac OS X installieren

Für alle, die in PROLOG programmieren müssen und es auf Mac OS X nicht gescheit zum Laufen bringen können :)

Erstmal was man alles braucht, um SWI-Prolog unter Mac OS X laufen zu lassen:
1. X11
2. Darwinports
3. Readline (mehr Infos http://readline.darwinports.com/)
4. SWI Prolog
5. Pfade definieren damit die Konsole die Libraries laden kann.
6. Für diejenigen, die Terminal.app bevorziehen, sollte man noch den Pfad zu X11 definieren.

1. X11 laut Anweisungen installieren: entweder von der mitgelieferten DVD oder aus anderen Quellen.

2. Darwinports runterladen und installieren (http://darwinports.com/) Nach der Installation selfupdate machen (damit man Updates macht, muss man sich erstmal als root anmelden können): - wenn ihr gerade nicht als Admin am Mac angemeldet seid, dann einfach in der Konsole folgende Befehle eingeben, um sich in root anzumelden

su [username]
Password: [Adminpassword]
sudo bash Password [Adminpassword]

Dass ihr als root angemeldet seid, erkennt ihr an #-Zeichen (root#). Jetzt kann man Darwinports updaten, dafür den Befehl eingeben:

port -d selfupdate

Darwinports lädt automatisch alle nötigen Updates runter.

3. Jetzt, immer noch als Root angemeldet, kann man mithilfe von Darwin Ports SWI-Prolog downloaden und installieren lassen. Allerdings soll noch man noch einen Port namens readline installieren, bevor man mit Prolog anfängt. Um readline zu installieren, sollte man einen Ordner einlegen, falls nicht da ist: unter opt/local/bin einen Ordner "portslocation" und drinnen noch einen Ordner "dports" und da drinnen noch einen "readline". Dann in diesen Ordner wechseln und readline installieren:

cd /opt/local/bin/portslocation/dports/readline
port install readline


Dann kommt ungefähr das:

---> Fetching readline
---> Verifying checksum for readline
---> Extracting readline
---> Configuring readline
---> Building readline with target all
---> Staging readline into destroot
---> Installing readline
etc.

4. SWI-Prolog 5.6.54 installieren mit folgendem Befehl:

port install swi-prolog

SWI-Prolog wird installiert. Nach der Installation, falls keine Fehlermeldung, überprüft die installierten Ports:

port installed

Folgende Ports müssen installiert sein (bei mir readline+swi prolog):

The following ports are currently installed:
apache-ant @1.7.0_0 (active)
expat @2.0.1_0 (active)
gawk @3.1.6_0 (active)
gettext @0.17_3 (active)
gmp @4.2.2_1 (active)
hamcrest-core @1.1_0 (active)
jpeg @6b_2 (active)
junit @4.4_0 (active)
libiconv @1.12_0+darwin_8 (active)
libmcrypt @2.5.8_0 (active)
ncurses @5.6_0 (active)
ncursesw @5.6_1 (active)
readline @5.2.007_0 (active)
swi-prolog @5.6.52_0+mt (active)
zlib @1.2.3_1 (active)


So soll es auch bei Euch aussehen, wenn ihr readline und swiprolog erfolgreich installiert habt.

5. Alles nötige ist jetzt also installiert. Das einzige, was fehlt, ist die Umgebungsvariable(n). Dafür in bash-directory die Datei ".bashrc" erstellen. Das geht mit folgenden Befehlen (immer noch als Root):

cd /
cd bin/ cat >.bashrc

[im Input folgendes eingeben]
# This allows using Prolog graphics if you use Terminal.app
if [ -z "$DISPLAY" ]; then export DISPLAY=:0; fi
# This sets up the path
PATH=$PATH:/opt/local/bin

[mit ctrl+c Eingabe beenden]

Ihr sollt also im bin/ eine Datei ".bashrc" haben, wo die Umgebungsvariable definiert ist. Jetzt kann man eigentlich loslegen. Allerdings mit emacs-Editor nur in der X11-Konsole. Wem das recht ist, kann schon damit Feierabend haben :) Wer aber (wie ich) X11 als Konsole nicht benutzt, soll für Terminal.app (sowie iTerm oder Ähnliches) extra den Pfad zu X11 exportieren. Dafür eine Profil-Datei ".profile" ergänzen (falls bereits vorhanden) oder erstellen unter /Users/[Benutzername]. Da gebt ihr ein:

# Setting the path for MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Jetzt könnt ihr im X11-Terminal mit dem Befehl "swipl" PROLOG starten. Falls ihr iTerm oder Terminal.app benutzt, dann lasst X11 im Hintergrund laufen (sonst funktioniert der Emacs wiederum nicht :) Achtung: Falls ihr Darwinports schon installiert habt und eine Fehlermeldung bekommt, dass swipl die entsprechenden Libraries nicht laden kann, kann ist etwas bei Darwinports schief gelaufen. Ich habe auch das Problem gehabt und die einzige Lösung, die ich gefunden habe, war es, jeden einzelnen installierten Port zu entfernen. Anschließend das ganze Verzeichnis auch löschen:

port uninstall [portname]
rm -rf /opt/local /Applications/DarwinPorts /Library/Tcl/darwinports1.0 /etc/ports


Dann neuinstallieren. Das war's dann eigentlich. Falls ihr Fragen oder Probleme habt, einfach melden!

Viel Erfolg!!! :)