Debacher-Blog

Uwes Weblog für Texte die (noch) nicht ins Wiki passen
Dez 29

Seit einiger Zeit bin ich dabei mir Webfonts zu experimentieren. Damit kann man endlich die Gestaltung von Webseiten unabhängig vom Betriebssystem des Betrachters halten. Wie so oft ist auch hier Google dabei kostenlos Unterstützung zu bieten mit den Google Web-Fonts.

Die Fonts kann man relativ leicht aktivieren, so dass sie dann vom Google-Server geladen werden. Man kann sie aber auch herunterladen und auf einem eigenen Server ablegen, dann muss man etwas mehr Aufwand treiben. Hier im Blog habe ich mir das recht einfach gemacht und das Plugin WP Google Fonts installiert, über das ich die Fonts aus einer Dropdown-Liste auswählen kann.

Weitere Informationen finden sich auf einer Reihe von interessanten Webseiten:

es gibt noch viel mehr Fonts, als die von Google:

Dez 22
Webmailer
icon1 debacher | icon2 Software-Empfehlung | icon4 12 22nd, 2011| icon3No Comments »

Seit vielen Jahren benutze ich Horde/Imp und Squirrelmail als Webmailer. In der letzten Zeit nutze ich aber lieber die Programmpakete:

Bei Roundcube handelt es sich um ein freies Programm, welches sich im wesentlichen auf die Mail-Funktionalität beschränkt, aber eigentlich alles bietet, was man so braucht. Eine Anleitung finde man auf den Anbieter-Seiten in verschiedenen Sprachen, u.a. auf Deutsch. Ein sehr umfangreiches Benutzerhandbuch ist auch auf den Seiten der Fachhochschule Darmstadt zu finden.

Group-Office ist ein sehr viel umfangreicheres Tool, mit Kalender und weiteren Groupware-Funktionen. Daher ist der Administrationsaufwand auch etwas höher. Die Installation ist aber sehr einfach und und nicht besonders anspruchsvoll. Es gibt eine kostenfreie Community-Version und eine kostenpflichtige Professional-Version. Die englischsprachige Dokumentation ist im Group-Office Wiki zu finden. Eine deutsche Anleitung, für eine ältere Version, findet sich im Web.

Nov 20

Das Grafikformat SVG fängt an sich im Internet mehr zu verbreiten. Es gibt nur noch einen winzig weichen Browser, der mit dem Format nicht umgehen kann.

Die Quelle für freie SVG-Grafiken im Netz ist Openclipart.org. Leider ist die Seite seit einiger Zeit nicht mehr erreichbar, lediglich der Downloadbereich unter http://download.openclipart.org/downloads/ ist noch zugänglich.Leider sind die Archive nicht thematisch sortiert, sondern nach Urhebern. Ich habe daher nach andere Archiven mit freien SVG-Grafiken gesucht und die folgenden Seiten gefunden

 

Nov 12

Die Anmeldung mit der Extension feuser_register haute nicht mehr hin. Es gab nur in der Logdatei eine Fehlermeldung:

Core: Exception handler (WEB): Uncaught TYPO3 Exception: #1294681467: Validation failed for: domain.de <Klaus.Test@domain.de> | Exception thrown in file /srv/www/htdocs/typo3_src-4.5.6/t3lib/mail/class.t3lib_mail_rfc822addressesparser.php in line 184

Es finden sich hierzu mehrere Problembeschreibungen im Web. Anscheinend ist es so, dass die Typo3-Programmierer mit ihrem Code im Recht sind aber zu pingelig und dadurch viele Extensions nicht mehr funktionieren, die sich nicht so genau an die Regeln halten. Solche ärgerlichen Dinge gibt es leider immer wieder. Für eine Lösung müssen wir wohl auf eine Aktualisierung von sr_feuser_register warten.

Geholfen hat mir der Text http://www.typo3.net/forum/beitraege//103507/ hiernach ist zumindest ein Workaround:

Ich habe im Installtool folgende Einstellung vorgenommen:

[MAIL][substituteOldMailAPI] = 0

 

 

Sep 7

Für meine Schule haben wir eine Reihe von Netbooks des Modells Acer Aspire One Happy gekauft. Sehr bunte Geräte, auf denen auch Ubuntu sehr schön läuft.

Was aber leider Probleme bereitet ist die Software für die LEGO NXT-Geräte. Die Bildschirmauflösung bleibt auf 1024×768 eingestellt, auch wenn der Monitor nur 1024×600 darstellen kann. Dummerweise fehlen dann gerade die Kontexteinstellungen, die sich im unteren Bereich des Bildschirms befinden.

Auf der Seite http://www.teamhassenplug.org/NXT/NXTGAdditions.html wird ein Add-in angeboten, welches aus den Kontextmenüs ein Popup macht. Das funktioniert im Prinzip auch, nur dass die Bezeichnungen auf Englisch sind. Ich konnte aber leider keine Möglichkeit finden für die Wiederholungen und die Fallunterscheidungen die Einstellungen vorzunehmen. Damit ist das Tool zumindest für mich nicht einsetzbar.

Eine andere Lösung besteht darin die Bildschirm-Auflösung auf 1024×768 einzustellen, auch wenn das Display dann interpolieren muss. Leider lässt Windows7 diese Einstellung nicht zu. Unter http://www.myasuseee.com/increase-your-screen-resolution-with-this-windows-7-hack/ habe ich dann eine Anleitung für einen Registry-Hack gefunden, der zumdest auf Rechnern mit Intel-Grafik funktioniert.

Man muss also nur regedit starten und dann nach folgendem Schlüssel suchen:

‘Display1_DownScalingSupported’

Hier muss man den vermutlich vorhandenen Wert ’0′ auf ’1′ abändern. Bei mir tauchte der Schlüssel fünf mal auf. Wenn alle Einstellungen korrigiert sind, dann muss man den Rechner rebooten und danach stehen weitere Bildschirmauflösungen zur Auswahl, z.B. 1024×768.

Die Anzeige ist nicht wirklich schön, aber es funktioniert.

 

 

Jul 9

Ruft man unter Linux mit dem Firefox eine Youtube-Seite auf, so wird das Video im Dateisystem temporär gespeichert. Lange Zeit konnte man die zugehörige Datei im Verzeichnis /tmp finden. Sie wurde erst beim Schließen des Browser-Fensters gelöscht. Seit einiger Zeit hat sich das Verhalten, zumindest bei Ubuntu, deutlich verändert.

Die Datei wird zwar im /tmp -Verzeichnis angelegt, aber gleich wieder glöscht. Dafür kann man sie im Cache-Verzeichnis des Firefox finden.

Es gibt jetzt also zwei Möglichkeiten an die Flash-Datei zu kommen (die entsprechenden Informationen habe ich unter http://sartoo.de/articles/update–flash-videos-werden-nicht-mehr-unter–tmp-gespeichert.html gefunden):

1. Cache-Verzeichnis

Der Firefox legt die gecachten Dateien im Home-Verzeichnis des Benutzers ab und zwar unter:

~/.mozilla/firexox/<kryptische zeichenkette>.default/Cache/

Die kryptische Zeichenkette ist für jeden Benutzer verschieden. Für das Video http://www.youtube.com/watch?v=qFCj0FJ7Ia4 finde ich hier folgenden Eintrag, wenn das Video vollständig geladen wurde:

-rw-------  1 debacher debacher 11931147 2011-07-09 17:06 A2E8FC60d01

als Dateiname dient hier eine wohl zufällige Zeichenkette. Im Nautilus-Browser wird beim Anzeigen des Verzeichnisses ein Vorschaubild angezeigt.

2. /tmp/Verzeichnis

Im Verzeichnis /tmp ist die Datei zwar gelöscht, sie ist aber vom Flash-Player geöffnet und solange sie geöffnet ist kann man ihren Inhalt auch wieder aktivieren. Dazu muss man erst einmal mittels lsof den Dateinamen bestimmen:

lsof  +aL1 /

zeigt alle Dateien an, die zwar geöffnet sind, aber weniger als einen Dateilink besitzen, genau so etwas suchen wir:

COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NLINK NODE NAME
plugin-co 7275 debacher   16u   REG    8,6 11931147     0 8927 /tmp/FlashXXwFVrmk (deleted)

Man sieht hier die gleiche Dateigröße wie im Cache-Verzeichnis, aber einen etwas sprechenderen Namen. Diese Datei kann man nun aus dem /proc-Dateisystem restaurieren:

 cat /proc/7275/fd/16 > /tmp/FlashXXwFVrmk

Dabei entspricht die 7275 hier der PID aus der lsof-Anzeige und die 16 ist der numerische Teil der FD. Der Dateiname des Ziels ist eigentlich beliebig, muss nicht mit dem Originalnamen übereinstimmen.

 

Jun 24
Metatags in Typo3
icon1 debacher | icon2 Tipps und Tricks, typo3 | icon4 06 24th, 2011| icon31 Comment »

Das Backend von Typo3 sieht in den Seiteneigenschaften mehrere Felder für Meta-Informationen vor. Will man die Einträge auch in die Seite eingebunden haben, so muss man das Template entsprechend anpassen. Folgender Typoscript-Code leistet das (hier als Beispiel die Version meiner Schule):

page.meta{
 keywords.field = keywords
 keywords.ifEmpty (
   Stadtteilschule, Richard-Linde-Weg, Lohbrügge, Bergedorf, Hamburg, Bildung, Medien
 )
 description.field = description
 description.ifEmpty (
   Stadtteilschule Richard-Linde-Weg
 )
}

Wenn in das jeweilige Feld ein Eintrag gemacht wurde, dann wird dessen Inhalt genommen, ansonsten der Default-Eintrag hinter der ifEmpty Bedingung.

Es gibt noch ein drittes Feld namens Inhaltsangabe, dass kann man unter der Bezeichnung abstract erreichen.
Ein Alternative zu diesem Ansatz sollen folgende Zeilen bilden:

page.meta.keywords = Stadtteilschule, Richard-Linde-Weg, Lohbrügge, Bergedorf, Hamburg, Bildung, Medien
page.meta.keywords.override.field = keywords
page.meta.description = Stadtteilschule Richard-Linde-Weg
page.meta.description.override.field = description
Mai 17
cal mit Google-Kalender
icon1 debacher | icon2 typo3 | icon4 05 17th, 2011| icon3No Comments »

Ich habe eben eine paar Stunden damit verbracht ein weiteres Mal cal dazu zu bringen, seine Daten mit einem Google-Kalender zu synchronisieren. Beim ersten Mal ging alles ganz einfach, ich habe es damals aber leider nicht dokumentiert.

Zwei Voraussetzungen müssen gegeben sein.

  1. Ein Google-Kalender muss eingerichtet und freigegeben sein
  2. Typo3 muss mindestens in der Version 4.3 vorliegen, damit die Extension Scheduler zur Verfügung steht

Bevor man mit der Einrichtung des Kalender beginnen kann sollte man Typo3 mindestens auf die Version 4.3 aktualisiert haben. Die folgende Beschreibung bezieht sich aber im Zweifelsfall auf Version 4.5.2. Seit der Version 4.3 liefert Typo3 eine Systemextension namens Scheduler mit. Diese ist für alle zeigesteuerten Prozessse innerhalb der Typo3-Installation zuständig.

Damit der Scheduler arbeiten kann benötigt er auf Systemebene einen Cronjob, der folgenden Art:

5,35  *   *   *   *   /usr/bin/php5 /srv/www/httpdocs/typo3/cli_dispatch.phpsh scheduler > /dev/null

Hier wird zweimal pro Stunde der Scheduler aktiviert, immer auf 5 und 35. Die Pfade zu dem Script cli_dispatch.phpsh können bei anderen Installationen natürlich abweichen.

Nun kann der Scheduler innerhalb von Typo3 zeitgesteuerte Vorgange verwalten.

Für den Kalender cal geschieht die Einrichtung automatisch, wichtig ist nur, dass der Google-Kalender erst eingerichtet wird, wenn der Scheduler vorhanden ist. Mich hat viel Zeit gekostet, dass ich mit einem System 4.2.17 begonnen und dort den Kalender schon eingerichtet hatte. Ich musste den Kalender löschen und neu einfügen, dann wurde er auch automatisch im Scheduler berücksichtigt.

Google-Kalender mit cal

Das Feld Scheduler-ID wird dabei automatisch ausgefüllt.

Bleibt noch die Frage, wo bekommt man die Externe Kalender Adresse (URL) her? Die muss man sich von den Google-Kalender-Seiten holen. Wählt man dort Einstellungen (ganz links unten), so landet man auf der Übersichtsseite für die Kalender-Einstellungen. Hier klickt man in der Zeile mit dem zu benutzenden Kalender auf Freigeben: Einstellungen bearbeiten. Nun findet sich weit links oben ein Link Kalenderdetails. Klickt man hierauf, so öffnet sich das folgende Fenster:

Google-Kalender URL

In diesem Fenster kopiert man mit der rechten Maustaste den Link vom unteren Ical-Button. Ich habe dabei auch jeweils das Protokoll von https auf http geändert. Den Link fügt man dann ins Typo3-Formular ein.

Feb 28

In manchen Netzwerke sind alle Ports gesperrt. Aber die Ports 80 und meist auch 443 sind zumindest über einen Proxy erreichbar. Diese Situation kann man ausnutzen, um trotzdem über eine OpenVPN-Verbindung eine Zugriff auf alle Dienst zu ermöglichen.

Man benötigt hierfür aber einen Rechner, der außerhalb des gesicherten Netzwerkes steht und ständig erreichbar ist. Notfalls reicht aber auch ein heimischer Rechner mit einer DynDNS-Adresse. Auf diesem Rechner erfolgt die Serverkonfiguration von OpenVPN, auf dem Arbeitsplatzrechner im abgeschotteten Netz die Client-Konfiguration.

Ich bin im Prinzip lediglich der Anleitung unter http://wiki.ubuntuusers.de/openvpn gefolgt. Die Beschreibungen gehen davon aus, dass OpenVPN bereits installiert ist.

Auf dem Server

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip /etc/openvpn/server.conf.gz
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2

Damit werden die Beispieldateien in den Konfigurationsordner von OpenVPN kopiert.

Nun wechselt man in den neuen Ordner easy-rsa2:

cd /etc/openvpn/easy-rsa2

und editiert dort die Datei vars

export KEY_COUNTRY=DE
export KEY_PROVINCE=NRW
export KEY_CITY=Düsseldorf
export KEY_ORG=”Vpntest”
export KEY_EMAIL=”onlyspam@myhomepage.net”

Diese Werte passt man an die eigenen Gegebenheiten an.

Dann kann man aus dem Verzeichnis easy-rsa2 heraus mit folgenden Schritten die Schlüssel erzeugen:

sudo mkdir keys
source ./vars
sudo -E ./clean-all
sudo -E ./build-ca
sudo -E ./build-key-server server
sudo -E ./build-key meinclient
sudo -E ./build-dh

Hierdurch werden im Verzeichnis keys die notwendigen Schlüssel erzeugt.Von den dort angelegten Dateien müssen drei später zum Client-Rechner kopiert werden:

  • ca.crt
  • meinclient.crt
  • meinclient.key

Jetz muss man noch die Server-Konfigurationsdatei anpassen, die wir nach /etc/openvpn kopiert haben. Da die Datei 300 Zeilen lang ist, hier nur die veränderten Zeilen:

# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one.  You will need to
# open up this port on your firewall.
;port 1194
port 443

# TCP or UDP server?
proto tcp
;proto udp

...

# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key  # This file should be kept secret

# Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh1024.pem 1024
# Substitute 2048 for 1024 if you are using
# 2048 bit keys.
dh ./easy-rsa2/keys/dh1024.pem
...

Wichtig ist hier vor allem die Wahl des Ports 443, damit man durch den Proxy kommt und auch das Protokoll TCP, sowie die Pfade zu den Schlüssel-Dateien.

Mit einem Neustart werden die Einstellungen aktiv:

sudo /etc/init.d/openvpn restart

Client

Wenn der Server läuft, dann geht es an die Client-Konfiguration.Zuerst wird wieder eine Besipieldatei kopiert, jetzt die client.conf.

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Im nächsten Schritt werden jetzt die drei Schlüsseldateien (s.o.) vom Server kopiert, einfach in das Verzeichnis /etc/openvpn.

Nun muss noch die Datei client.conf angepasst werden:

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
proto tcp
;proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote stern.lokales-netz.de 443
...
# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert meinclient.crt
key meinclient.key

Nunkann man die Verbindung testweise aufbauen mittels:

openvpn /etc/openvpn/client.conf

Wenn in der Datei /etc/default/openvpn die Zeile

AUTOSTART="none"

steht, dann muss die Verbindung per Hand aufgebaut werden, bei

AUTOSTART="all"

wird sie beim Systemstart automatisch aufgebaut. Nach der Konfiguration kann man per

sudo /etc/init.d/openvpn restart

einen Neustsart auslösen.

Feb 19

Heute tauchte das Problem auf, dass ich einen fertig konfigurierten Server bei mir im Hause testen wollte, unter Nutzung seiner eigenen IP. Mein häuslicher Server hat aber nur noch eine Netzwerkkarte (eth0) und ist auf die IP-Adresse 192.168.1.1 konfiguriert. Der andere Rechner hat eine IP-Adresse von z.B. 143.100.122.200 und ein Gateway von 143.100.122.254.

Also habe ich meinem Rechner virtuell die Gateway-IP gegeben:

ifconfig eth0:1 143.100.122.254

damit ist dann mein Rechner von dem fremden Rechner aus erreichbar, aber nicht das Intenet. Dazu muss man das Forwarding überhaupt aktivieren mittels:

echo 1 > /proc/sys/net/ipv4/ip_forward

Jetzt fehlt nur noch die iptables Regel:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

eventuell vorhandene Regeln muss man vorher löschen.

« Previous Entries