Archiv für den Monat: Juni 2008

In eigener Sache: neuer Blog

Wer schon etwas länger hier mitliest hat sicher bemerkt, dass sich gebloggt.ch hauptsächlich um technische Themen, Informatik, Programmierung, OpenSource-Produkte etc. dreht. Ich wurde immer wieder gefragt, wann ich wieder etwas „Interessanteres“ aus meinem Alltag blogge. Nun ich habe mich gebeugt und ein privates Blog eröffnet. Es befindet sich unter

https://gebloggt.ch/privat

Darin schreibe ich alles nicht-technische von meinem Leben und was mir so auffällt. Mal schauen, wie oft es neue Beiträge geben wird 😉

ODF: Microsoft krebst zurück

Wie Golem berichtet, hat der US-Technikchef von Microsoft gesagt, dass ODF den Kampf „klar gewonnen“ habe (gegenüber von Microsoft OOXML). Microsoft will nun am Format mitarbeiten und ODF auch in künftigen Office-Versionen unterstützen.

So erfreulich die Nachricht auch ist: warum ist Microsoft nicht konsequent und nimmt ihr eigenes Format vom Markt? Das würde den Weg bereiten für ein echt offenes Office-Dateiformat, welches auch für den Datenaustausch über die Plattformen hinweg genutzt würde. Oder glauben sie immer noch daran, dass früher oder später sowieso alle auf OOXML umsteigen würden? Ich vermute, dass viele trotzdem das MS-Format verwenden werden, auch wenn jetzt alle darüber schimpfen (der Bequemlichkeit sei dank).

BTW: an unserer Schule liefern sie in den Sommerferien das neue Office 2007 aus. Nur habe ich bis jetzt noch keinen Studenten getroffen, der sich darauf freut. Komisch 😉

T3: tw_rssfeeds reloaded

Bereits früher habe ich Verbesserungen für diese TYPO3-Extension erläutert (https://gebloggt.ch/?p=368). Nun wurde die Extension völlig „nutzlos“, da mit ausgeschaltetem allow_url_fopen von PHP nichts mehr funktionierte.

Ich zitere das problematische Stück code aus der Datei pi1/class.tx_twrssfeeds_pi1.php:

function xml_file($file) {
if (!($fp = @fopen($file, „r“)))
$this->error(„Kann XML-Datei <b>“.$file.“</b> nicht öffnen“);

while ($data = fread($fp, 4096)) {
if (!(xml_parse($this->parser, $data)))
$this->error(„XML-Output: „.xml_error_string(xml_get_error_code($this->parser)));
}

xml_parser_free($this->parser);
}

Natürlich geht das mit der erwähnten PHP-Option nicht. Verbessert (ich weiss, wieder etwas workaround-mässig):

function xml_file($file) {
require_once(„HTTPRequest.php“);
$httpReq = new HTTPRequest($file);
$data = $httpReq->DownloadToString();

if (!(xml_parse($this->parser, $data))) {
$this->error(„XML-Output: „.xml_error_string(xml_get_error_code($this->parser)));
}

xml_parser_free($this->parser);

}

Die Klasse HTTPRequest.php ist etwas ähnliches wie die entsprechende PEAR-Klasse, jedoch etwas einfacher zu benutzen. Und man kann damit den Inhalt externer URLs abrufen, ohne dass allow_url_fopen auf true gesetzt sein muss. Quelle der Klasse: http://www.php-resource.de/forum/showthread/t-65376.html

Ich hab die Klasse auch schon bei anderen Applikationen gebraucht, um externe Files mit PHP zu öffnen. Hat bisher sehr gut funktioniert. Für eine schöne Lösung müsste man dies ev. in die Extension einbauen, da so eine externe Datei nicht so elegant ist.

Ausserdem hat der im Beitrag zitierte Code noch einen kleinen Bug. Die Variable response (in der Funktion DownlaodToString() wurde nicht deklariert und initialisiert. Das

$response.= fread(…)

erzeugt dadurch einen Notice von PHP.

Also kurz:

  1. pi1/class.tx_twrssfeeds_pi1.php anpassen, hochladen
  2. HTTPRequest.php erstellen und ins selbe Verzeichnis hochladen (ggf. $response noch deklarieren).

Damit sollte die Extension wieder funktionieren. Bei mir läuft die Sache prima.

eGroupWare: mehrere Identitäten

Das Mailprogramm FelaMiMail von eGroupWare unterstützt eigentlich mehrere Identitäten, sprich Absender für Mails. Doch dazu ist eine LDAP-Authentifizierung etc. nötig. In meiner Shared-Host-Umgebung hab ich das nicht. Einen Workaround gibt es: man kann eine zweite Mailadresse in den eigenen Adresseintrag einfügen (als private bzw. business-Mailadresse). Dann wird diese beim Versand zusätzlich als Identität auswählbar. Jedoch muss noch ein File ausgetauscht bzw. gepacht werden. Genaue Anleitung und Infos in folgendem Thread:

http://www.nabble.com/Mehrere-Absende-Adressen—Identit%C3%A4ten-td13487519.html

Poster mit LaTeX

Mit LaTeX können auch Poster hergestellt werden. Damit das nötige Paket (sciposter) gefunden werden kann, muss unter Ubuntu Linux folgendes Packet installiert werden:

texlive-science

Ansonsten gibt es eine Fehlermeldung.

Noch ein Beispiel-Code für ein Poster dazu:

documentclass[a1,36pt]{sciposter}
usepackage[ngerman]{babel}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{graphicx}
begin{document}
title{Test-Titel}
author{Thomas}
institute{gebloggt.ch}
email{info (at) gebloggt.ch.ch}
nologos
maketitle

begin{abstract}
Kurze Einleitung.
end{abstract}

color{red}

section*{Titel}
begin{itemize}
item Poster
item mit
item LaTeX
end{itemize}

section*{Beispiel}
begin{figure}
includegraphics{gallery01}
end{figure}

section*{Letzers Abschnitt}
Test

end{document}

eGroupWare und Nokia N82

In den letzten Tagen habe ich meine Termin- und Adressverwaltung reorganisiert. Davor hatte ich einen Palm, eine Synchronisation der Daten auf den Laptop (mit jPilot) und noch einen Datenbestand von Telefonnummern auf dem Handy. Praktisch hat es sich herausgestellt, dass ich die Termine vermehrt auf dem Laptop erfasst und gelegentlich auf den Palm „gebackupt“ habe. Eigentlich nicht sehr sinnvoll. Zudem waren die Daten verstreut und nicht immer überall auf dem aktuellen Stand (viele waren nicht doppelt erfasst (Palm und Handy)). Wenn etwas benötigt wurde, war sicher das Gerät nicht gerade in der Nähe.

Die neue Lösung: ein Groupware-Server (mit eGroupWare) und ein das Handy Nokia N82. Der Palm(Tungsten T3) wurde bereits verkauft (Ricardo sei dank).

Zu den Hürden, die sich gestellt haben:

eGroupWare-Installation: verlief ziemlich schmerzlos. Der Hoster musste noch einige PEAR-Pakete nachinstallieren. Zudem verlangt eGroupWare einen (für den Webserver) beschreibbaren Ort ausserhalb des Document-Roots. Dies hat mein Hoster bereits standardmässig eingerichtet. Nur musste er den Pfad noch in die open_basedir-Direktive von PHP aufnehmen.

Synchronisation: die Datei .htaccess musste noch manuell angepasst werden. Inhalt:

php_value mbstring.func_overload 0

Sonst funktioniert das mit SyncML nicht. Eine auf Anhieb funktionierende Anleitung ist hier zu finden:
http://www.egroupware.org/index.php?page_name=wiki&wikipage=SyncMLMobilePhone

Mail: ja, ich habe den IMAP-Client von eGroupWare ausprobiert. Aber dies ist für mich keine dauerhafte Lösung. Der Junk-Filter von Thunderbird ist mir zu wichtig. Zudem habe ich mehrere Konten. Und auch über eine allfällige Archivierung habe ich mir keine Gedanken gemacht. Daher habe ich das Mail-Modul gleich wieder deaktiviert. Zum Laufen gebracht habe ich es aber. Hilfestellungen gabs hier:
http://www.nabble.com/Difficulty-installing-FelamiMail-td15855621s3741.html

Alles in Allem bin ich sehr zufrieden. Das GUI von eGroupWare sieht äusserst nett aus (besonders die verschiedenen Terminansichten). Zudem habe ich den Terminkalender mit dem Handy immer bei mir, wie auch die ganze Adressverwaltung. Da die Syncrhonisation über WLAN gemacht wird, fallen hier keine Kosten an.

eGroupWare rockt 🙂