Drupal User Groups: Entwicklungsprozess, Bilder, Mehrsprachigkeit
4.2.2010Ein Dump meiner Notizen
The greedyness of non-greedy regular expressions
24.7.2009We all love regular expressions, don't we? Well I usually do, but recently I lost quite a lot of time to find out this bit of particular behavior, so i thought i might share this.
Import serendipity entries into drupal
18.6.2009blog.liip.ch/archive/2009/06/18/import-serendipity-entries-into-drupal.html
Debugging Email on Staging Server
12.5.2009For one of our bigger clients, we have a setup with a test server. Their application sends out newsletter and other emails to addresses scattered through the source code. We needed to test some of the features generating emails, but there was no budget to rewrite that code. We decided for a simple solution: We trap all email on the test server and make it available from a web interface.
Mediawiki SSO Login
10.3.2008Ich hatte das Problem zu lösen, dass neue Aktivmitglieder jeweils eine Email Adresse erhalten und Zugriff auf Webseiten mit Logins. Eine elegante Art das einfach zu lösen, ist wenn die Webapplikationen über die Emailadresse prüfen, ob der POP Server das Passwort akzeptiert. Dabei muss der Benutzername exakt der Teil der Emailadresse vor dem @ sein. Die Domain muss die Webapplikation anhängen - sonst könnte sich ja jeder mit beliebiger Email Adressen anmelden.
jsdomenu versus Google Analytics
23.1.2008Recently, one of our customers had a problem with google analytics. When he opened his web site with the Site Overlay feature, he just got his normal web site with no overlayed user data. The first thing to notice when trying it myself (with Firefox) was that javascript stops with an error. The error console said "opera.version is not a function" in https://www.google.com/analytics/reporting/overlay_js?gaso=...
Suchen und Ersetzen auf der Kommandozeile
21.11.2007Die Skriptsprache Perl kann direkt von der Kommandozeile aus verwendet werden, um Text in Dateien zu ersetzen. In Kombination mit find kann man da sehr einfach in Dateien ersetzen:
find -type f -exec perl -i -p -e 's/pattern/target/g;' {} \;
find -type f findet alle Dateien (aber nicht Verzeichnisnamen oder Links) unter dem aktuellen Verzeichnis. Soll nur in bestimmten Dateien ersetzt werden, wird zusätzlich der Parameter -name "shellpattern" oder -regex "expression" verwendet, zum Beispiel find -type f -name "*.html".
Webseiten spiegeln: wget
20.11.2007Das Tool wget bietet eine unglaubliche Funktionsfülle. Ich brauche es dazu, dynamisch erzeugte Webseiten zu archvieren.
Diese können nachher mit einem Browser als Dateien geöffnet werden, ohne Webserver. Dazu rufe ich wget folgendermassen auf:
wget -r -k -nv -E -e robots=off -l 0 http://server.ch/
Die interessanten Parameter sind:
Batch Bilddateien konvertieren und skalieren
12.11.2007Um Bilder in andere Formate umzuwandeln, gibt es das ImageMagick Programm "convert".
Um eine Datei umzuwandeln, schreibt man z.B.
convert test.gif test.png
Das Programm kennt eine unglaubliche Fülle an Graphikformaten, "man ImageMagick" listet alle unterstützen Formate auf. Convert kann ausserdem die Bilder auch noch manipulieren, siehe "man convert".
Was convert allerdings nicht kann, ist mehrere Bilder umwandeln. Ich habe dazu ein einfaches Shellskript batchconvert geschrieben. Die Datei als batchconvert
abspeichern, in /usr/local/bin/ kopieren und mit chmod a+x
ausführbar machen. Die Syntax ist:
batchconvert t <targettype> <dateiliste>
, z.B. batchconvert t png *.gif
Um die Grösse von Bildern zu ändern gibt es den Parameter -resize, z.B.
convert -resize 800x600 test.png test.png
Wiederum geht das nur mit einem File. Mein Skript batchresize verkleinert oder vergrössert eine Liste von Bildern.