Technik, Gothic und Anderes

Technik ist Spiel, Gothic ist ernst und Zeit hat man zuviel

Archiv

Beagle Revisited

Geschrieben von skaldrom am 3. April 2007

Wie im Artikel Organisatorisch herausgefordert… habe ich immernoch zuviele Dokus und zuwenig Ordnung. Aber leider scheint XFriend 2.1 zu kosten… Zeit, Beagle nochmals anzusehen. Und: Ich bin begeistert! Er tut genau das was ich erwarte und die KDE Integration ist spitze! Es werden nicht nur Konversationen in Kopete, Mails von KMail direkt ab den Maildirs (was mir extrem viel Speicherplatz für die HTML-Mails spart!), Kontakte von KAddressbook, Akregator-Feeds und KNotes indiziert, sondern mit Kerry steht auch eine Applikation für den Tray zur Verfügung!!! Ich glaube das ist die bei Opensuse viel gemacht haben… Damit sind sowohl Gnome als auch Opensuse in meiner Sympathieskala gestiegen.

Beagle-Suche mit Kerry

Natürlich wollte ich, dass er alles indiziert was mich interessiert: Powerpoint, LaTeX, Excel, Word, … Dafür musste ich die Datei /etc/beagle/external-filters.xml etwas anpassen:

< ?xml version=”1.0encoding=”utf-8?>
<external -filters>
<filter>
<mimetype>text/x-tex</mimetype>
<extension>.tex</extension>
<command>untex</command>
<arguments>-gascii %s</arguments>
</filter>
<filter>
<mimetype>application/msword</mimetype>
<mimetype>application/x-mswrite</mimetype>
<extension>.doc</extension>
<command>catdoc</command>
<arguments> %s</arguments>
</filter>
<filter>
<mimetype>application/postscript</mimetype>
<extension>.ps</extension>
<extension>.ai</extension>
<extension>.eps</extension>
<command>pstotext</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/x-rar</mimetype>
<extension>.rar</extension>
<command>unrar</command>
<arguments>lb %s</arguments>
</filter>
<filter>
<mimetype>application/vnd.ms-powerpoint</mimetype>
<mimetype>application/mspowerpoint</mimetype>
<extension>.ppt</extension>
<command>catppt</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/excel</mimetype>
<mimetype>application/msexcel</mimetype>
<extension>.xls</extension>
<command>xls2csv</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/x-zip</mimetype>
<mimetype>application/zip</mimetype>
<mimetype>application/x-zip-compressed</mimetype>
<extension>.zip</extension>
<command>unzip</command>
<arguments>-l %s</arguments>
</filter>
<filter>
<mimetype>application/mbox</mimetype>
<command>cat</command>
<arguments>%s</arguments>
</filter>
</external>

Eingeordnet in Linux | 2 Komentare »

Eclipse und die Umlaute

Geschrieben von skaldrom am 3. April 2007

Ganz einfach, schlicht und ergreifend, und kann einem Stunden sparen: Eclipse unter Linux importiert keine Projekte die einen Umlaut im Pfadnamen haben. GNARRRGH!

Eingeordnet in Coding, Linux | Keine Kommentare »

Excel und Powerpoint mit htdig indizieren

Geschrieben von skaldrom am 27. March 2007

Möchte man xls und ppt in den Index der Intranet Suchengine htdig aufnehmen, muss man etwas Magie wirken lassen:

  1. Es braucht ein Umwandler “gewünscht2txt”. Ich habe xls2csv für Excel und catppt für Powerpoint gewählt.
  2. Die Mimetypes sollten aktualisiert werden. /etc/htdig/mime.types:
    [...]
    application/vnd.ms-excel        xls
    application/vnd.ms-powerpoint   ppt
    [...]
  3. Externe Parser müssen aktiviert werden in /etc/htdig/htdig.conf:
    [...]
    external_parsers: application/msword /usr/share/htdig/parse_doc.pl \
    application/postscript /usr/share/htdig/parse_doc.pl \
    application/pdf /usr/share/htdig/parse_doc.pl \
    application/vnd.ms-powerpoint /usr/share/htdig/parse_doc.pl \
    application/vnd.ms-excel /usr/share/htdig/parse_doc.pl
    [...]
  4. Nun muss noch /usr/share/htdig/parse_doc.pl angepasst werden:
    [...]
    #
    # Excel
    #
    $XLS2CSV = "/usr/bin/xls2csv";#
    # Powerpoint
    #
    $CATPPT = "/usr/bin/catppt";
    [...]
    } elsif ( $ARGV[1] =~  /excel/) {       # it's MS Excel - this detection is a kludge
        $parser = $XLS2CSV;
        # convert all possible sheets to ascii
        $parsecmd = "$parser \"$ARGV[0]\" |";
        $type = "MS-Excel";
        $dehyphenate = 0;               # Excel documents not likely hyphenated
    } elsif ( $ARGV[1] =~  /powerpoint/) {
        $parser = $CATPPT;
        # convert all possible sheets to ascii
        $parsecmd = "$parser \"$ARGV[0]\" |";
        $type = "MS-Powerpoint";
        $dehyphenate = 0;
    }
    [...]
  5. Nun sollts funzen.

Man könnte es wohl auch über html machen (mit dem Helfer xlhtml). Dazu müsste die Zeile in htdig.conf heissen:

application/vnd.ms-excel->text/html /usr/share/htdig/parse_doc.pl

und dann müsste inparse_doc.pl xlhtml mit den korrekten Parametern aufgerufen werden.

Generell können folgende Probleme auftreten:

Apache Index:
Indiziert man Verzeichnisse, die das Apache Index Modul erzeugt (Dateibaum ohne index.html), so können Seiten mehrfach gespeichert sein weil sich die Parameter unterscheiden. Um dies zu verhindern muss htdig.conf ergänzt werden:

bad_querystr: ?C=D ?C=S ?C=M ?C=N ?O=A ?D=A ?D=D ?M=A ?M=D ?N=A ?N=D ?S=A ?S=D C=D C=S C=M C=N O=A D=A D=D M=A M=D N=A N=D S=A S=D

Ghostscript-Hanger:
Mein Indexer hatte die Tendenz beim Aufruf von gs zu hangen. Nundenn, ein Umstellen von “pstotext” auf “pdftotext” hat das ganze subjektiv schneller gemacht und bis jetzt ist es nimmer gestalled. In /usr/share/htdig/parse_doc.pl:

[...]
#
# set this to your PDF to text converter
#
#$CATPDF = "/usr/bin/pstotext";                         # From "pstotext"
$CATPDF = "/usr/bin/pdftotext";                         # From "pdftotext"
if (! -x $CATPDF) { $CATPDF = "/usr/bin/pdftotext"; }   # From "xpdf"/"xpdf-i"
if (! -x $CATPDF) { $CATPDF = "/usr/bin/ps2ascii"; }    # From a ghostscript
if (! -x $CATPDF) { $CATPDF = "/bin/true"; }
[...]

Eingeordnet in Linux, Webapplikationen | Keine Kommentare »

Changelogs mit SVN

Geschrieben von skaldrom am 15. March 2007

Aufgabe

Und die Aufgabe sei: Es werde ein Tool geschaffen, das jeden Tag prüft, wer an den Repositories gefrickelt hat und daraus ein Changelog generieret. Fürtherhin sei eine Liste als Index erstellt, die alle diese Repositories mit den Committern anzeiget und mit Links versehet, die zum detailierten Changelog geleiten. Auch ein RSS sei geschaffen, der abonniert werden kann.

So sei es. svn2log kann Text-Changelogs generieren. source-highlight kann daraus html-Seiten basteln. Damit svn2log auch Commits ohne Kommentar berücksichtigt, wird es gepatcht.

So sei Dir ein BASH-Script geschrieben, das durch unsere 2 Stufige Repositoryhierarchie hindurchloopt, und 4 Dinge erzeuge:

  • Text Changelog generell
  • Text Changelog der letzten 7 Tage
  • Html Changelog generell
  • Html Changelog der letzten 7 Tage

Und danach ein PHP fürwahr ein Index erstelle der eine Übersicht zeige und der auch via RSS in ein jede heimische Stube kommen kann!

Beispiel: Changelog Index

Bemerkungen

Nachtrag: Eine weitere Möglichkeit ist svn2rss. Ein etwas mächtigeres Paket, geschrieben in Ruby.

Code

Den Code gibts bei oncode.info.

Eingeordnet in Linux | Keine Kommentare »

aMule (emule, xmule), aMuled und Kademlia über einen Linux Router

Geschrieben von skaldrom am 8. March 2007

Ich hab ja so ein nettes Claxan-teil, und ab und zu gebrauche ich auch aMule (nur für legale Inhalte!!!). Ich hätte gerne eine HighID und keinen “firewalled” Kademlia (Kademilia :) ). Und es funzt!

Auf meiner Appliance lasse ich ab und zu den amuled laufen und verbinde mich über amulegui.

Konfiguration aMuled

Damit der Daemon läuft habe ich:

  • Mein gesamtes ~/.aMule Verzeichnis auf die Appliance (in den VSERVER) kopiert
  • Auf der Appliance in ~/.aMile/amule.conf:
    • AcceptExternalConnections=1
    • ECAddress=
    • ECPort=4712
    • ECPassword=
  • md5passwort kriegt man mittels: echo -n passwort | md5sum
  • Iptablesregeln angepasst…

Die Regeln um eine HighID und Kademlia aus dem Firewalled zu bekommen:

EMULEPORT=7555
EMULEUDP=7565
EMULEUDP2=`expr $EMULEPORT + 3`
VSERVER=192.168.1.252
#EMULEHOST=192.168.1.20
EMULEHOST=$VSERVER

iptables -t nat -A PREROUTING -i $INET_IFACE -p tcp --destination-port $EMULEPORT -j DNAT --to-destination $EMULEHOST:$EMULEPORTiptables -t nat -A PREROUTING -i $INET_IFACE -p udp --destination-port $EMULEUDP -j DNAT --to-destination $EMULEHOST:$EMULEUDPiptables -t nat -A PREROUTING -i $INET_IFACE -p udp --destination-port $EMULEUDP2 -j DNAT --to-destination $EMULEHOST:$EMULEUDP2

iptables -A INPUT -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A FORWARD -i $INET_IFACE -o $INT_IFACE -d $EMULEHOST -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i $INET_IFACE -o $INT_IFACE -p tcp --dport $EMULEPORT -d $EMULEHOST -j ACCEPTiptables -A FORWARD -i $INET_IFACE -o $INT_IFACE -p udp --dport $EMULEUDP -d $EMULEHOST -j ACCEPTiptables -A FORWARD -i $INET_IFACE -o $INT_IFACE -p udp --dport $EMULEUDP2 -d $EMULEHOST -j ACCEPT

# Amule Remote Interface
iptables -t nat -A PREROUTING -s ! 192.168.1.0/24 -m tcp -p tcp --dport 4712 -j DNAT --to-destination $VSERVER:4712

Ergänzung:
amuleweb funzt, und man sieht auch Kademlia!!! Der Trick ist, dass man von einem Rechner ausserhalb connected:

  1. Zuerst auf dem Rechner ausserhalb: amuleweb -w
  2. Danach ~/.amule/remote.conf editieren. im Abschnitt [EC] den Rechnernamen und das md5-Passwort des Rechners eingeben, auf dem amuled läuft.
  3. AdminPassword ebenfalls mit einem md5-Passwort versehen.
    md5-Passworte kriegt man so:

    echo -n yourpasswordhere | md5sum | cut -d ' ' -f 1
  4. Nun kann man amuleweb starten mit, hmm, ratet mal, hmm, amuleweb :) .
  5. Lokal verbinden auf http://localhost:4711.

Sollte die Verbindung nicht klappen und ein Fehler der Art “Sitzung nicht geloggt, und Anfrage hat kein Passwort” einfach alle Cookies für “localhost” löschen.

Dort sieht man auch Kad und judihui….

Sollte sich Kademlia nach einer Weile verabschieden, so ist das Verbindungslimit zu hoch. Bei mir erträgt er gerade mal 300 als “Maximale Verbindungen”…

Eingeordnet in Linux | 3 Komentare »

Adressen von Kontact auf das W300i übernehmen

Geschrieben von skaldrom am 23. February 2007

Ich habe mir ein Sony Ericsson W300i “geholt” (Handys kauftma ja nimmer, die holt man sich)… Eigentlich wollte ich nur telefonieren, so mit Stimme und alles, und nicht mehr… Naja, so habe ich halt noch Foto, Walkman, judihui, etc mitbekommen.

Syncen will ich es nicht, aber meine Kontakte vom Linux-Kontact hätte ich schon gerne drauf gehabt…. Es geht so:

  • Menü -> Kontakte -> Optionen -> Erweitert -> Sicherung auf M.S.
  • USB-Kabel (Mitgeliefert!) einstecken
  • Datenübertragung wählen
  • /dev/sdb1 mounten
  • Aus Kontact ein VCF 2.1 exportieren
  • dieses VCF auf sdb1/mssemc/System/pim/PB_Backup.vcf kopieren
  • Menü -> Kontakte -> Optionen -> Erweitert -> Von M.S. wiederherstellen

…und sich freuen….

Für Leute die noch mehr Probleme damit haben empfehle ich TuxMobil.

Eingeordnet in Linux, Mobile | 1 Kommentar »

Laptop spezialtasten in Xorg nutzen (Debian)

Geschrieben von skaldrom am 2. November 2006

Was hab ich nicht alles gelesen wie das gehen soll… Dateien und X-Startskripts und hastdunichtgesehn. Aber eigentlich ist es ganz einfach unter Debian die Spezialtasten (Lauter, Leiser, etc) in Betrieb zu nehmen:

  1. xev | grep -i keycode starten, zum erscheinenden Fenster fahren und die entsprechenden Tasten drücken. Keycodes notieren.
  2. Datei /etc/X11/Xsession.d/40xorg-custom_load-xmodmap ansehen. Die ersten beiden Zeilen beinhalten die Dateien, wo man die Codes hineinschreiben kann.
  3. Mein /etc/X11/Xmodmap für den Compaq nx8220:
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 160 = XF86AudioMute
keycode 205 = XF86ScreenSaver
keycode 245 = XF86AudioPause

Eingeordnet in Hardware, Linux | Keine Kommentare »

Claxan: Privater Server oder ‘Internet Appliance’

Geschrieben von skaldrom am 12. October 2006

CLAXAN SA-200Ja, man hat ja zuviel Zeit… Ich hatte einen US-Robotics Router der wunderbar zuverlässig seinen Dienst verrichtet hat. Aber solch zuverlässige Geräte reizen, sie durch etwas mehr 1337 zu ersetzen :) . Also habe ich mir für ca 145 € eine Server Appliance gekauft, ein Claxan SA-200, basierend auf einer MIPS-CPU. Das vorinstallierte Linux läuft immernoch zu stabil und darum habe ich die Firmware auf OpenMCT umgeflasht und nun läuft ein Debian Linux drauf. Die Jungs von OpenMCT sind klasse!!! Hilfreich in den Foren, engagiert und das “Produkt” ist 1a! Vielen Dank an dieser Stelle.

Was kann die Maschine?

  • Dateiserver fürs Netzwerk
  • Backup
  • Router
  • Firewall
  • dns-Cache
  • dhcp-Server
  • Webserver mit PHP/MySQL
  • Durchsuchbare Datenablage

Was wird sie noch können?

  • Printserver

Und das alles innerhalb eines oder mehrer virtuellen Servern!
Wie geht man vor? Nun, zuerst muss man für den Zugriff auf die Administrationskonsole unter Linux den Agenten in ‘MSIE 5.5 on Windows 2000′ ändern (Einfach möglich zum Beispiel mit Konqueror). Danach kann man die neue Firmware (OpenMCT_RC3_0×100_0×00_0×1001.bin) flashen. Um über telnet einzuloggen brauchts nach einem erfolgreichen Flash eine Verbindung auf dem WAN-Port im entsprechenden Subnetz:
IP Claxan: 192.168.1.254
username: root
password: 168Mct168
Und nun gehts ab:
Partitionieren:

fdisk /dev/discs/disc0/disc

Kontrollieren:

p (p)artition table anzeigen

d (d)elete partition

Anlegen Swap Partition:

n (neu)

p (p)rimary

1 partition (1)

enter (default cyl 1)

+512M (512 MB)

t (change (t)ype)

82 (swap partition)

Anlegen Daten Partition:

n

p

2

enter

enter (max size)

Kontrollieren, ob ok (als Beispiel mit meiner 200GB Platte):

Command (m for help): p

Disk /dev/discs/disc0/disc: 203.9 GB, 203928109056 bytes255 heads, 63 sectors/track, 24792 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System

/dev/discs/disc0/part1 1 63 506016 82 Linux swap/dev/discs/disc0/part2 64 24792 198635692+ 83 Linux

Speichern:

w (w)rite

q (q)uit

Formatieren der Partitionen

mkswap /dev/discs/disc0/part1

mkfs.ext3 /dev/discs/disc0/part2

Swap einschalten

vi /etc/rc.conf

Auf Position fahren und ‘i’ für insert drücken

START_SWAP="yes"OPTIONS_SWAP="/dev/discs/disc0/part1"

Data Mounten

vi /etc/fstab

Kucken, dass folgende Zeile da ist:

/dev/discs/disc0/part2  /usr  ext3  defaults  0 0

VSERVER
Muss über Telnet gemacht werden, mit ssh klappts nitte… (export PATH=’/usr/sbin:/bin:/usr/bin:/sbin’). Checken, ob /usr eingehängt ist.

cd /sbinwget http://www.openmct.org/pub/people/andi/RC3/debootstrap

chmod 755 debootstrapcd /usr/vservers/

newvserver --vsroot /usr/vservers --hostname vs1 --domain oncode.info  --mirror http://mirror.switch.ch/ftp/mirror/debian --ip 192.168.1.253

Grundidee
Das Grundsystem aktiviert eth0 (WAN) und erhält ein DHCP-Lease des Servers. Immer wenn eine IP-Adresse vergeben wird (renew und bound), wird ein Script aufgerufen das folgendes erledigt:

  • Anmelden bei Dyndns um einen Namen zu erhalten um von Aussen erreichbar zu sein
  • Alle VSERVER und dhcp-clients kommen aufs Netz bringen
  • VSERVER verbinden sich auf eth1
  • Portforwarding von eth0 auf eth1

Komponenten
In einem Vserver werwende ich dhcpd als DHCP Server und dnsmasq als DNS. Weiter vergebe ich allen bekannten Hosts fest verdrahtete IP’s. Aus Stromspargründen habe ich noch einiges getuned, so dass die HD eigentlich nix zu tun hat und fast nie aufwachen muss.
Code
Die Scripts fressen zuviel Platz als dass ich hier alle posten kann. Fragt mich bei Interesse, ich rücke sie sehr gerne raus….

Eingeordnet in Hardware, Linux | 10 Komentare »

SVN mit Moodle integrieren

Geschrieben von skaldrom am 21. September 2006

Moodle eignet sich sehr gut um Dokumente für Lernende bereitzuhalten und zu publizieren. SVN eignet sich, um Dokumente abzulegen wenn mehrere Leute zusammenarbeiten. Was liegt also näher als die beiden Dinge zu kombinieren?

Vorteile:

  • Es sind immer aktuelle Dokumente auf dem Moodle
  • Das lästige Hochladen entfällt
  • Es ist mächtig 1337!

Soweit die Theorie, doch wie läuft das in der Praxis?

Grundsätzlich werden auf dem Moodleserver die SVN-Verzeichnisse ausgecheckt. Jede Nacht läuft ein Cronjob, der diese Arbeitsverzeichnisse aktualisiert und noch nicht vorhandene an diesen Ort auscheckt. Im Moodle “data” Verzeichnis werden in den Kursen symbolische Links auf diese Arbeitsverzeichnisse gesetzt, die dann in Moodle selber wie normale Verzeichnisse behandelt werden können.

Um diese Arbeitsverzeichnisse auszuchecken habe ich ein Bash-Script geschrieben, für das Setzen der Links gibt es ein ganz hässliches Webinterface. Beide Quellcodes stelle ich gerne zur Verfügung, hierhin passense nicht….

Probleme:

  • Die Berechtigungen der Arbeitsverzeichnisse müssen so gesetzt werden, dass normale Benutzer über Moodle keine Dateien verändern oder löschen können.
  • Da es ein Link ist und kein echtes Verzeichnis, lässt Moodle keine “Verzeichnis Ressourcentypen” zu. Korrigiert werden kann dies in lib/moodlelib.php, Funktion get_directory_list:
    if (!is_dir($rootdir)  && !is_link($rootdir)) {          // Must be a directory

    und:

    if (filetype($fullfile) == 'dir'  || filetype($fullfile) == "link") {
  • Die SVN-Arbeitsverzeichnisse sollen ja nicht migebackupt werden, da man gescheiter die Repositories sichert. Darum in backup/backuplib.php, Funktion backup_copy_course_files anpassen:
    if ($dir !== $name_moddata and $dir !== $name_backupdata and !is_link($rootdir."/".$dir)) {

Eingeordnet in Learninmanagement Systeme (lms) | 1 Kommentar »

X über ssh

Geschrieben von skaldrom am 16. September 2006

Man kann nicht sagen, dass ich mir das Leben zu einfach mache :). Ich wollte Croquet auf einem Server installieren (siehe unten) und da dieser kein X (X11) hat das Squeak-Fenster über ssh sehen. Nun, damit nicht genug, ha, das wäre ja für Noobs! Nein, dieser Server läuft auch noch in einem virtuellen Vserver !

Nun, zuerst habe ich über ssh mit der Option -X connected, nicht ohne vorher sicherzugehen dass in /etc/ssh/sshd_config
X11Forwarding yes
stand. Doch der Server schmetterte mir kaltschnäuzig:
xterm Xt error: Can’t open display: %s
xterm: DISPLAY is not set

entegegen. Nun, da ebenso in der sshd_config steht X11DisplayOffset 10 habe ich es mit

export DISPLAY="localhost:10.0"

versucht, wieder ohne Erfolg:
X11 connection rejected because of wrong authentication
Was half? Ein beherztes Löschen der ~/.Xauthority (nachdem ich gecheckt habe, dass xauth installiert ist). Erneutes Connecten brachte den Server zum Schnurren:
/usr/bin/X11/xauth: creating new authority file /home/skaldrom/.Xauthority
Juhuu, siehe da, ein Xterm konnte ich auftun. Die Freude währte nur kurz, den root konnte das nach einem “su -” ncht :(… Googeln und lautes Wehklagen ergab die Lösung:

xauth merge ~skaldrom/.Xauthority

und schon liefs wie am Schnürchen! Verblüffend, dieses X!

Eingeordnet in Linux | 3 Komentare »