siarp.de is a project started by Tilman and Martin many years ago. Basically it is about running your own virtual server for experimenting with technology and running a few services on the web.

Speedport W 723V (A) - automatischer Abruf der Anruferliste und Abgleich mit Google Contacts

Seit kurzem haben wir VDSL von der Telekom (yeah!) und deshalb einen neuen Router. Das Gerät ist ein Speedport W 723V A mit relativ vielen Funktionen. Unter anderem können DECT-Telefone direkt angebunden werden und brauchen dann keinen eigene Basisstation. Diese Funktion wollte ich gerne nutzen, weil beim Anschluss des Telefons über die analoge TAE-Buchse nur eine Leitung genutzt werden kann und außerdem die Sprachqualität über die analoge Schnittstelle eher mäßig war.

Reinventing the wheel: Automatic Bidirectional Directory Synchronization

As already mentioned, I am the proud owner of an online hard drive and I love it. Enough space for everything that's worth keeping, secure access over lots of different protocols (including rsync), an automatic backup function... It would be perfect if I had an Internet connection of at least 100 MBit/s. But I haven't. (Actually the thing almost feels like a local disk when I use it from my computer at work. But that's through a university network.) So I had to come up with a little more sophisticated architecture.

MongoDB und node.js auf Ubuntu 9.04 Jaunty installieren

sudo vim /etc/apt/sources.list
> # MongoDB
> deb http://downloads.mongodb.org/distros/ubuntu 9.4 10gen

sudo aptitude update && sudo aptitude install mongodb-stable

sudo /etc/init.d/mongodb start

git clone http://github.com/ry/node.git
cd node
git checkout -b tags/v0.2.0
./configure --prefix=/home/martin
make
make install

curl http://npmjs.org/install.sh | sh
npm install mongodb mustache

Strato HiDrive unter Ubuntu einbinden

Mein neues HiDrive unter Ubuntu 10.04 einzubinden hat etwas Nerven gekostet. WebDAV geht sofort (z.B. so), ist aber schweinelahm. SMB über OpenVPN ist fürchterlich einzurichten und mir ist nicht so ganz klar, wie man das VPN vom restlichen Verkehr entkoppelt - man will ja nur die Kommunikation mit dem HiDrive darüber laufen lassen.

Committeten auf deutsch

Bei der Frage, mit wie vielen Ts man eigentlich „committeten“ („das steht im committeten Code“) schreibt, dachte ich mir, es wäre Zeit, sich mal mit vernünftigen und vertretbaren Übersetzungen in diesem Bereich zu beschäftigen. Das Ergebnis:

Ein „Commit“ ist ein „Beitrag“, etwas „committen“ etwas „beitragen“. Beim „Repository“ ist es noch unklar. Es lässt sich wohl mit „Repositorium“aber auch mit „Repository“ übersetzen. Schön wäre vielleicht auch „Magazin“. „Einen Beitrag zum Magazin leisten“...

Also, wisst ihr bescheid.

Plone: Item Type as Criterion for Collection but not to show up in Search

You can't select an item type as a criterion for a collection if it is not selected to be included in search results. In the "Search settings" (/@@search-controlpanel) you can exclude certain content types from being "searched and be available in the user facing part of the site". That actually corresponds to the list of types_not_searched in site_properties.

My SilverStripe Usability Test

So I decided to try out SilveStripe (Version 2.3.3) to check out if it's of any value for me as a freelance web developer. I'm kind of an expert in Drupal, I also work with Plone, and lately I'm very interested in usability and I do track initiatives in the Drupal and Plone community to give users a better experience. I know that feedback of a first-time user is valuable so I thought I'd write down my impressions of SilverStripe right away.

YAML und Listen im IE6

Achtung! Böse Falle mit YAML und Listen im Internet Explorer 6! Folgender Code steht in der iehacks.css und gilt für den IE6.

YAML, jQuery slideToggle and IE6

As usual with browser bugs and hacks this took me a while to find out.

I have an unordered list with complex items like floats and stuff. This list is supposed to hide when I click on a button by slowly decreasing its height. I use jQuery's slideToggle for that.

Problem: In Internet Explorer 6 the content (or parts of it) is hidden after the list is shown (slid down).

Bazaar: incompatible format 2a and rich-root support

I'm running Bazaar 2.0 on my local machine and the remote repository runs on Ubuntu Jaunty which provides Bazaar 1.13. After working locally for some time I wanted to push my branch to a newly created shared repository on the server but I got the error message

Neue E-Mail-Organisation - Inbox Zero

Nachdem Hosteurope nun schon seit einiger Zeit regelmäßig anmahnt, dass die Speicherplatz für E-Mails langsam zu Ende geht, woraufhin ich regelmäßig ein paar dicke Mails lösche um die Galgenfrist zu verlängern, habe ich nun endlich die Organisationsstruktur meines Posteingangs grundlegend erneuert. Bisher hatte ich zwar schon nach Jahren archiviert, die einzelnen E-Mails aber in ein recht komplexes System an Unterordnern einsortiert. (Einer für jeden Mailaccount, Unterordner für verschiedene Korrespondenzpartner und Themen, usw.

Funambol SyncML-Server

Funambol ist derzeit die komfortabelste Möglichkeit, Adressen und Termine aus Thunderbird und Lightning mit dem Handy zu synchronisieren.

Funambol auf dem VPS installieren

  1. Download und Ausführen von funambol-8.0.0.bin (Installation nach /opt/Funambol) ohne am Ende den Server zu starten
  2. Anpassung von FUNAMBOL_HOME in /bin/funambol, /bin/funambol-server und /bin/install

Ruby on Rails deployen

Das Szenario: Es sollen neben statischen Webseiten und PHP-Anwendungen auch Ruby-on-Rails-Anwendungen auf dem Server laufen. Die klassische Variante ist für jede Rails-Anwendung einen oder mehrere (Load Balancing) Mongrel-Server laufen zu lassen und die mittels Reverse Proxy hinter den Apache zu schalten (Port 80, SSL, Sicherheit). Außerdem gibt es (relativ neu) das Apache-Modul Phusion Passenger (a.k.a. mod_rails / mod_rack).

GPS mit dem E71: Initialzündung

Seit zweieinhalb Monaten habe ich ein Nokia E71 und bin eigentlich absolut zufrieden: Die Tastatur ist super (dafür gebe ich sogar gerne die Hälfte des Bildschirms im Vergleich zum iPhone her), E-Mail funktioniert wunderbar, Internet per WLAN für zu Hause, alles super. Nur das GPS... Ich hatte mich bewusst für ein Handy mit GPS entschieden, aber irgendwie wollte das Ding nicht recht. Bis zur Bestimmung der Position konnten gut 10 Minuten vergehen, absolut inakzeptabel.

Plone 3: How to really exclude from navigation

Plone has multiple ways of excluding a content object from the navigation:

Enabling Gallery2‘s language support by configuring locales in Ubuntu 7.10 (Gutsy)

Gallery2 didn‘t want to talk German to me :(

Using AppleScript and cURL to import Content from iPhoto into Drupal

I'm using Apple's iPhoto to organize my private photographs and Drupal is what comes to my mind first when there's need for a web-based solution. Having lots of pictures from a recent trip I want to show people I started thinking about some kind of web gallery. Being a developer I need to come up with something fancier than just some stock gallery product like Gallery2 (actually I don't really know that product so bear with me). I did some research and found some article about different approaches to build photo galleries in Drupal and also a nice video tutorial. I've used image module and gallery module before but the flexibility that CCK extended by imagefield and imagecache and views seem to offer is just too tempting.

Erste Erfahrungen in 64 Bit

Seit ein paar Tagen bin ich auf Windows Vista umgestiegen. Und um ganz vorne mit dabei zu sein, durfte es gleich die 64-Bit-Variante sein - ich denke es ist absehbar, wann man sich über mehr als vier GB Arbeitsspeicher freuen wird. Bisher sind die Erfahrungen ganz gut, ein paar Ecken und Kanten gibt es aber:

Borland Real48 in Java

When writing a converter tool for a binary file format, I had problems reading some of the floating point numbers. After a little bit of research I found out that this very special format was used in programs written in Borland Pascal/Delphi. Since I couldn't find any Java class that's able to read this kind of number I wrote it myself.

As far as I remember these are basically reverse IEEE floating point numbers of six bytes. (It's been a while since I wrote this. See the PDF file by Richard Biffl for a detailed description of the format.)

References:

Ubuntu-Installation: den größten freien Speicherbereich benutzen

Installiert man Ubuntu zum ersten Mal auf einem Windows-Rechner ist die Auswahl bei der Partitionierung der Festplatte meist einfach: erste Partition verkleinern und den freigewordenen Platz zur Installation nutzen. Wenn man wie ich aber schon zum hundertsten Male (oder zum zweiten Mal) eine Linux-Distribution auf so einem Rechner installiert, möchte man den irgendwann mal erstellten Bereich jenseits von Windows nutzen.

Drupal-Tutorial: Administratoren-Blog

Für das Siarp-Portal (derzeit Drupal 5) wollten wir eine Möglichkeit haben, Meldungen oder Nachrichten zu kommunizieren, die über Vorgänge bei Projekten wie der Server-Administration oder auch dem Siarp-Portal selber informieren. Da das eher einem ausführlichen Changelog ähnelt sollte, wollten wir es nicht über das Project-Modul laufen lassen. Eher eine Art Blog mit bestimmten Rechten und Einstellungen und einer gesonderten Ansicht, wofür Drupal ja bestens ausgerüstet ist.

Informatiker-Zeitvertreib

Am 1.1. wollte Bettina unbedingt "Mensch ärgere dich nicht" spielen. Ich war nicht so begeistert, weil ich das Spiel für ziemlich langweilig halte. Zunächst diskutierten wir also meinen Standpunkt ("Da würfelt man doch nur abwechselnd") und den von Bettina ("Gar nicht, das hat voll viel mit Taktik zu tun"). Schlussendlich haben wir dann drei Runden gespielt. Später hatten wir Hunger und da nichts zu Essen im Haus war, haben wir uns Happy Meals bei McDonald's geholt. Als Spielzeug gab es "Monopoly Junior", also wurde auch das gespielt.

Buildout-basiertes Zope2 (Plone) unter Debian/Ubuntu installieren

Ubuntu 8.04 Server / Plone 3.1.5.1

Voraussetzungen buildout:

$ sudo aptitude install gcc python2.4 python2.4-dev python-imaging python-elementtree

(Für Ubuntu Desktop muss noch zlib1g-dev installiert werden.)

Ergänzung von <a href="http://siarp.de/node/167" rel="nofollow">http://siarp.de/node/167</a> für Plone 3.3 unter Ubuntu Jaunty
========================================================================

Ubuntu Jaunty enthält zwar Python 2.4 aber keine Image Library (PIL) für 2.4.
Diese kann auch als Egg mittels buildout installiert werden [1]. Dafür braucht

Krasse Sache APC

Aufgrund des Vortrags von Rasmus Lehrdorf auf der FrOSCon 2008 hab ich mir mal kurz APC, den Alternative PHP Cache angesehen. Wollte damit nicht viel Zeit verbringen, aber unsere Drupal-Seiten auf siarp.de laufen eher langsam, weil der Drupal-Cache nur für anonyme Besucher funktioniert und wir alles schön personalisiert und geschützt haben.

Zope unter Fedora 9

Fedora 9 bringt nur Python 2.5, Zope benötigt z.Z. aber Python 2.4. Das Repository http://rpm.livna.org/ bietet alle nötigen Pakete.

Primat des Primaten: Ubuntu Gutsy Gibbon auf dem VPS 3.0

Mit etwas Überredung hat sich der Gibbon doch noch auf dem neuen Server wecken lassen. Anscheinend wird nach dem Upgrade der SSH-Port einfach nicht mehr abgehört. (Der Server lief ja.) Vermutlich liegt es daran, dass in Gutsy xinetd (und nicht mehr inetd) verwendet wird. Nach dem Upgrade auf Ubuntu 7.10 muss xinetd umkonfiguriert werden, damit der Daemon im inetd-Kompatibilitätsmodus startet und auch das inetd-configfile berücksichtigt.

Plone: Entwicklungsumgebung Mac

10.4 Tiger

Dem Buch "Professional Plone Development" von Martin Aspeli folgend, soll nicht auf einen fertigen Installer zurückgegriffen werden. Ein automatisierter Build-Out Prozess soll möglich sein.

OS X 10.4.10 liefert zwar Python 2.4 mit, es fehlt aber z.B. ein Wrapper für die libxml2. Um nicht unnötig im System rumzufummeln, soll MacPorts verwendet werden:

$ sudo port install python24 py-libxml2 py-elementtree py-pil

Reservierte Begriffe in JavaScript

abstract (r)
anchors (b)
applets (b)
arguments (g)
Array (g)
as (z)
Boolean (g)
boolean (r)
break (t)
byte (r)
case (t)
catch (t)
char (r)
class (r)
const (r)
continue (t)
Date (g)
debugger (r)
decodeURI (g)
decodeURIComponent (g)
default (t)
delete (t)
do (t)
document (b)
double (r)
elements (b)
else (t)
encodeURI (g)
enum (r)
Error (g)
escape (g)
eval (g)
EvalError (g)
export (r)
extend (r)
false (t)
final (r)
finally (t)
float (r)
for (t)
forms (b)
frames (b)
Function (g)
function (t)
goto (r)
history (b)
if (t)
images (b)
implements (r)

Subdomains

Problem: Normale Zertifikate gelten nur für eine (Sub-)Domain
Erkenntnis: Es gibt auch Wildcard-Zertifikate, die alle Subdomains abdecken
Folgefrage: Bekommt man diese Wildcardzertifikate von einer halbwegs anerkannten CA ohne kosten?

Allgemein zum Thema pro/contra Subdomains:
+ sie sehen hübsch aus
- wirklich sinnvoll eingesetzt sind sie nur, wenn sie auf verschiedene Recher bzw. IPs zeigen, was sie bei uns nicht tun
- uns fällt kein Service ein, für den eine Subdomain wirklich nötig wäre.

Die Entscheidung: Es sollen alle Dienste ohne Subdomain unter protokoll://siarp.de erreichbar sein.

Sandkastenspiele I - Automatisches "svn update"

Ich habe ein Repository tests, in dem sich ein Verzeichnis automaticupdate/website befindet, das bei jedem Commit automatisch ins htdocs-Verzeichnis ausgecheckt werden soll.

Dazu erstelle ich ein Verzeichnis htdocs/tests und übertrage es an Benutzer svn.
Danach wird manuell der 'initial checkout' durchgeführt:

su svn
cd /usr/local/apache2/htdocs/tests
svn checkout file:///home/svn-repos/tilman/tests/automaticupdate/website
exit

Für die automatischen Updates wird jetzt noch ein hook-Skript geschrieben. Es heißt post-commit, gehört selbstverständlich dem Benutzer svn, ist ausführbar und liegt im Unterverzeichnis /hooks des Repository. (Da sind auch schon templates für die verschiedenen möglichen hooks.)

Mein erstes echtes bash-Skript!

...erstellt ein Repository und liegt unter /root/tilman/create_repository.sh. Nächstes Ziel: Subversion hook script für automatisiertes Update, damit die Webentwicklung so richtig losgehen kann.

SVN Migration

Migration von BerkeleyDB nach FSFS sollte ganz leicht sein.

Man kann einen Dump exportieren. Das ist eine menschenlesbare Datei, die man für heftige Änderungen auch bearbeiten kann. Tolle Sache das, damit gehen auch so Sachen, wie Zusammenlegung von zwei Repositories etc. Noch besser: LIES ES NACH. In der wie immer hervorragenden Doku.

Apache 2.2.2, MySQL 5.0.21, PHP 5.1.4 und Subversion 1.3.1

Anmerkung: Dieses Protokoll ist mit besserer Formatierung unter http://www.siarp.de/installation-log.html abgelegt.

- Ziel: Apache, MySQL, PHP und Subversion auf den Hosteurope vServer unter SuSE 9.1 separat installieren -

siarp Neuinstallation (Kofler/Subversion-Mischung plus ein paar Extras)

Erste Apache-Konfiguration

"SIARP.de" - ich sehe meinen Namen in Leuchtbuchstaben...

Wir fassten den Entschluss, die aufgefächerte Konfiguration zu einer handlichen kleinen httpd.conf zusammenzuführen. Ein Backup der (fast) originalen Konfigurationdateien befindet sich in /home/root/bak/apache2.tar.gz. Dann haben wir festgestellt, dass es zwingend das Verzeichnis samt Dateien sysconfig.d erfordert. Also die betreffenden Teile wieder ausgelagert und TADA! - "SIARP.de".

Subscribe to siarp.de RSS