Dienstag, 24. Juni 2008

The Perl Review 4.3 - Summer 2008 erschienen

Bereits am Wochenende ist die Ausgabe 4.3 von The Perl Review erschienen.




Inhalt


  • Google's Summer of Code—Eric Wilhelm (first page)

  • TPF Grants—Alberto Manuel Simões (first page)

  • Test Anywhere Protocol—Jeremy Foster (first page)

  • My Own Test Module—Jonas B. Nielsen (first page)

  • Perl and Undecidability: Rice's Theorem—Jeffrey Kegler (first page)

  • Test::Builder::Tester—brian d foy (first page)




Abo

Man kann The Perl Review zum Preis von 9 USD (derzeit 5,78 EUR) als "Web access only" für ein Jahr abonnieren. Im Preis inbegriffen ist der Zugang zu allen bisher erschienen Ausgaben als PDF. Als Zahlungsmittel werden Kreditkarten und PayPal akzeptiert.

Es gibt natürlich auch die Möglichkeit die gedruckte Ausgabe zu bestellen. Weiterhin gibt es spezielle Angebote für Firmen mit mehreren Programmierern.


Es lohnt sich!

Freitag, 20. Juni 2008

Movable Type 4.1 OS bei Strato (Powerweb-Pakete) installieren

Nachfolgend eine kleine Anleitung um Movable Type Opensource (MTOS) 4.12. beim Webhoster Strato auf STRATO PowerWeb-Paketen zu installieren.

Notwendige Anpassungen

Ausführbare Perlprogramme im cgi-bin-Verzeichnis müssen bei Strato die Endung .pl haben. MTOS liefert aber alle Programmdateien mit der Endung .cgi aus. Daher müssen alle Dateien mit der Endung .cgi in .pl umbenannt werden. Im MTOS-Code müssen zusätzlich noch alle Verweise von .cgi auf .pl geändert werden.

Mit Linux und Perl ist das kein großes Problem.

Änderungen offline durchführen

Die Pakete Basic und Advanced enthalten keinen SSH oder Telnet-Zugang. Die notwendigen Änderungen müssen daher offline durchgeführt werden. Die geänderten Dateien werden anschließend per FTP auf den Server übertragen. Bei Paketen mit SSH-Zugang können die nachfolgenden Schritte auch auf dem Strato-Server durchgeführt werden.

Schritt 1: MTOS downloaden und auspacken


cd /tmp/
mkdir ./MovableType
cd ./MovableType

wget http://www.movabletype.org/downloads/stable/MTOS-4.12-de.zip
unzip -a MTOS-4.12-de.zip



Schritt 2: Dateiendungen und Quelltext anpassen

Das folgende kleine Shell-Skript benennt alle .cgi-Dateien in .pl um und ändert die Verweise auf .cgi-Dateien im Quelltext auf .pl.


#!/bin/bash

MTOSDIR='./MTOS-4.12-de/'

# Dateiendungen anpassen aka move *.cgi to *.pl

move=$(which mv);

for file in `find ${MTOSDIR} -name '*.cgi' -print `
do
dname=`dirname $file`
bname=`basename $file .cgi`
newname="${dname}/${bname}.pl"
$move $file $newname
done

# Konfigurationsdatei umbenennen

$move ${MTOSDIR}mt-config.cgi-original ${MTOSDIR}mt-config.pl-original


# Jetzt den Sourcecode anpassen
for file in `find ${MTOSDIR} -type f -print | grep -v '.gif' | grep -v '.jpg' | grep -v '.png' `
do
perl -pi -e 's/mt\-add-notify\.cgi/mt-add-notify.pl/g' $file
perl -pi -e 's/mt\-atom\.cgi/mt-atom.pl/g' $file
perl -pi -e 's/mt\.cgi/mt.pl/g' $file
perl -pi -e 's/mt\-check\.cgi/mt-check.pl/g' $file
perl -pi -e 's/mt\-comments\.cgi/mt-comments.pl/g' $file
perl -pi -e 's/mt\-feed\.cgi/mt-feed.pl/g' $file
perl -pi -e 's/mt\-search\.cgi/mt-search.pl/g' $file
perl -pi -e 's/mt\-tb\.cgi/mt-tb.pl/g' $file
perl -pi -e 's/mt\-testbg\.cgi/mt-testbg.pl/g' $file
perl -pi -e 's/mt\-upgrade\.cgi/mt-upgrade.pl/g' $file
perl -pi -e 's/mt\-wizard\.cgi/mt-wizard.pl/g' $file
perl -pi -e 's/mt\-xmlrpc\.cgi/mt-xmlrpc.pl/g' $file
perl -pi -e 's/mt\-mirror\.cgi/mt-mirror.pl/g' $file
perl -pi -e 's/rate\.cgi/rate.pl/g' $file
perl -pi -e 's/l10nsample\.cgi/l10nsample.pl/g' $file
perl -pi -e 's/mt\-config\.cgi/mt-config.pl/g' $file
perl -pi -e 's/mt\-config\.cgi\-original/mt-config.pl-original/g' $file
done


Exkurs: Bei einigen, älteren Strato-Servern, also andere als die hier angesprochenen PowerWeb-Pakete, ist Perl 5.8 als /usr/bin/perl58 installiert, d.h. die Shebang-Zeile muss entsprechend geändert werden.

# Auf manchen Strato-Servern gibt es mehrere Perlversionen
# Perl 5.8 muss manchmal explizit als #!/usr/bin/perl58 aufgerufen werden.
# Also erst Perl-Version prüfen, bevor dieser Teil genutzt wird
for file in `find ${MTOSDIR} -name '*.pl' `
do
perl -pi -e 's~#!/usr/bin/perl ~#!/usr/bin/perl58 ~' $file
done


Schritt 3: Geänderte Dateien per FTP übertragen

MTOS legt statische Dateien im Verzeichnis /mt-static ab und dynamische Programme im Verzeichnis /cgi-bin/mt/. Daher wird zuerst die Verzeichnisstruktur des Servers auf der lokalen Festplatte nachgebildet.

cd MTOS-4.12-de/
mv mt-static/ ../
cd ..
mv MTOS-4.12-de mt

Nun können die Dateien per FTP übertragen werden.

ncftpput -f login.cfg -R / mt-static
ncftpput -f login.cfg -R cgi-bin mt

Die Konfigurationsdatei (login.cfg) für ncftpput hat folgendes Format:

host sphygmomanometer.ncftp.com
user gleason
pass mypassword


Schritt 4: MTOS Setup

Das Konfigurationsmenü wird als http://ihre-domain.tld/cgi-bin/mt/mt.pl im Browser aufgerufen und ist weitgehend selbsterklärend.

Nicht vorhandene optionale Module

  • Crypt::DSA - Dieses Modul beschleunigt die Anmeldung als Kommentarautor.

  • Archive::Zip - Dieses Modul ist zur Archivierung von Dateien bei der Erstellung und Wiederherstellung von Sicherheitskopien erforderlich.

  • Archive::Tar - Dieses Modul ist zur Archivierung von Dateien bei der Erstellung und Wiederherstellung von Sicherheitskopien erforderlich.

  • IO::Uncompress::Gunzip - Dieses Modul ist zum Entpacken von Dateien bei der Erstellung und Wiederherstellung von Sicherheitskopien erforderlich.

  • IO::Compress::Gzip - Dieses Modul ist zur Komprimierung von Dateien bei der Erstellung und Wiederherstellung von Sicherheitskopien erforderlich.

  • Image::Magick - Dieses Modul ist zur Erzeugung von Vorschaubildern von hochgeladenen Dateien erforderlich.

  • Mail::Sendmail - Dieses Modul ist zum Verschicken von E-Mails über SMTP-Server erforderlich.

  • DBD::Pg - Ein DBD::Pg-Datenbanktreiber ist erforderlich, um eine PostgreSQL-Datenbank zu nutzen. Mindestens erforderliche Version: 1.32

  • DBD::SQLite2 - Ein DBD::SQLite2-Datenbanktreiber ist erforderlich, um eine SQLite-Datenbank (v2) zu nutzen.


Strato stellt die für MTOS zwingend erforderlichen CPAN-Module zur Verfügung, leider fehlen einige gängige Module. Die Funktionalität von MTOS wird dadurch jedoch nur (sehr) wenig eingeschränkt. Das ist halt mal so in dieser Preisklasse.

Schritt 5: MySQL-Datenbank

Die genauen Zugangsdaten für Ihre Webpräsenz finden Sie im Strato-Kundencenter.

Benötigt werden Datenbankhost (meist rdbms.strato.de), Datenbankname, -user und -passwort.

Schritt 6: Mailkonfigurierung

E-Mails werden per Sendmail versandt. Bei Strato ist der Sendmailpfad

/usr/lib/sendmail


Schritt 7: Zugriff auf Konfigurationsdatei sperren

Nach erfolgreicher Konfiguration werden die Einstellungen in /cgi-bin/mt/mt-config.pl gespeichert.

Der Zugriff auf mt-config.pl sollte noch durch eine .htaccess-Datei im Verzeichnis /cgi-bin/mt/ gesichert werden.

Beispiel .htaccess-Datei

<Files mt-config.pl>
<Limit GET>
deny from all
</Limit>
</Files>


Lessons learned

Movable Type Opensource (MTOS) 4.1. veröffentlicht Weblogeinträge statisch. Das ist von Vorteil bei kleinen, sprich leistungsschwachen, Hosting-Paketen.

Der Zugriff ist für Leser dank der statischen HTML-Seiten wesentlich schneller als bei vergleichbarer Weblog-Software, die alle Seiten dynamisch erzeugt und bei jedem Zugriff viel Rechenpower benötigt.

Andererseits dauert die Veröffentlichung neuer Einträge auf so kleinen Hosting-Paketen (nicht nur bei Strato) schon mal ein oder zwei Minuten, bei sehr vielen Einträgen auch gerne länger.

Falls Sie sehr viel bloggen, sollten Sie besser ein (etwas) leistungsfähigeres Hosting-Paket wählen und auf jeden Fall Movable Type Opensource (MTOS) verwenden.

Viel Spass beim Bloggen!


Update:
Siehe auch:

Movable Type Security Update bei Strato (Powerweb-Pakete) installieren

Mittwoch, 18. Juni 2008

Talk: Introduction to Mason

Die Slides von Dave Rolsky (‎autarch‎) Vortrag Introduction to Mason sind online.

"An introduction to Mason. Mason (aka HTML::Mason) is one of the most popular Perl templating systems. This talk will cover its basic syntax, some of its features, and also talk briefly about using Mason as part of a larger MVC system, with Catalyst as an example."

Enjoy!

Siehe auch:

Talk: Essential One-Liners

Die Slides (PDF) des YAPC::NA 2008 Vortrag ‎Essential One-liners‎ von Walt Mankowski (‎waltman‎) (Philadelphia.pm) sind online.

"Perl is not only a world-class programming language but also a potent command-line tool. However, even if you already write the occasional one-liner in Perl, chances are you're not taking advantage of all the tricks and shortcuts you could be. In this tour de force of compact Perl prowess, every audience member will become a command-line ninja!"

Enjoy!



Siehe auch:

Donnerstag, 12. Juni 2008

Perl-Suchmaschine als Search Engine Plugin für Firefox 2.x

Seit heute besteht die Möglichkeit die Suche in Perl-Suchmaschine.de komfortabel als Firefox Search Engine Plugin zu nutzen.



Installation via Autodiscovery

Einfach auf Perl-Suchmaschine.de gehen. Firefox erkennt, das ein Search Engine Plugin für Perl-Suchmaschine.de zur Verfügung steht. Anschließend in der Suchleiste auf "Perl-Suchmaschine hinzufügen" klicken. Fertig.




Das Plugin wird in Kürze auch für IE7 für Windows XP zur Verfügung stehen.

Siehe auch:

Dienstag, 10. Juni 2008

Veranstaltungshinweis: IPv6 mit Solaris - GUUG Lokalgruppe Rhein/Main am 19. Juni 2008

Am 19. Juni 2008 findet ein Vortrag zum Thema "IPv6 mit Solaris" der GUUG (Lokalgruppe Rhein/Main) in Darmstadt statt.


"Vom Schwerpunkt wird es ein technischer Vortrag. Nach einer knappen (max. 15 min) Auffrischung der Thematik IPv6 folgt ein kurzen Abriss der historische Entwicklung von IPv6 bei SUN und im Solaris. Als Schwerpunkt dann ein Howto, wie IPv6 bei Solaris konfiguriert wird und an welchen Stellen gedreht werden kann/muss. Dabei werden natürlich auch die Unterschiede zu andern Unix/Linux Implementationen herausgestellt."

Zu diesem Treffen sind, wie immer, auch Nicht-Mitglieder der GUUG herzlich willkommen.

Eine Anmeldung ist bis zum einschließlich 17.6.2008 erforderlich.

Mittwoch, 4. Juni 2008

Adapter USB - Serielle Schnittstelle für Ubuntu 8.04 installieren

Seit längerem benutze ich die "MINI DOCKING-STATION USB 2.0" (Conrad Artikel-Nr: 997905 - 62) an meinem Laptop. Die kleine Docking-Station verfügt über einen seriellen und einen parallelen Port und kann auch als USB-Hub genutzt werden.



Zur Verwendung als USB-Seriell Adapter unter Windows genügt die Installation eines Treibers, der einen virtuellen COM-Port erzeugt.

Wenn man dann noch ein geeignetes serielles Kabel verwendet, funktioniert der Adapter tadellos.

Die Installation und Verwendung mit Ubuntu 8.04 (Hardy) ist eigentlich genauso einfach.

Schritt für Schritt

Schritt 1: brltty entfernen


sudo apt-get remove brltty

Falls brltty installiert ist, wird der Adapter sofort wieder ausgehängt.

$ dmesg
.... claimed by ftdi_sio while 'brltty' sets config #1

Diesen Hinweis habe ich im Ubuntuusers-Forum: Problem mit USB-seriell Adapter gefunden.

Schritt 2: GTKTerm installieren

sudo apt-get install gtkterm


Schritt 3: MINI DOCKING-STATION USB 2.0 anschliessen und prüfen




$ dmesg

[ 7074.685290] usb 5-4: new high speed USB device using ehci_hcd and address 2
[ 7074.740434] usb 5-4: configuration #1 chosen from 1 choice
[ 7074.741264] hub 5-4:1.0: USB hub found
[ 7074.741437] hub 5-4:1.0: 4 ports detected
[ 4240.684539] usb 5-4.1: new full speed USB device using ehci_hcd and address 3
[ 7075.219610] usb 5-4.1: configuration #1 chosen from 1 choice
[ 3264.762650] usb 5-4.2: new full speed USB device using ehci_hcd and address 4
[ 4240.923651] usb 5-4.2: configuration #1 chosen from 1 choice
[ 4240.924403] usbcore: registered new interface driver usbserial
[ 4240.924593] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
[ 4240.924863] usbcore: registered new interface driver usbserial_generic
[ 4240.924868] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial Driver core
[ 4240.958484] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
[ 4240.958516] ftdi_sio 5-4.1:1.0: FTDI USB Serial Device converter detected
[ 4240.958546] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: Detected FT232BM
[ 4240.958673] usb 5-4.1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 4240.958689] usbcore: registered new interface driver ftdi_sio
[ 4240.958693] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver
[ 3264.960780] usblp0: USB Bidirectional printer dev 4 if 0 alt 1 proto 2 vid 0x067B pid 0x2305
[ 3264.961319] usbcore: registered new interface driver usblp
[ 7583.061189] ppdev0: registered pardevice
[ 7583.061506] ppdev0: unregistered pardevice
[ 7583.247310] ppdev0: registered pardevice
[ 7583.253089] ppdev0: unregistered pardevice


Der serielle Chip auf dem Adapter wird als FT232BM erkannt und ttyUSB0 zugewiesen.
Die Treiber für FTDI-Chips sind seit Ubuntu 7.04 Bestandteil der Distribution.

Zur Kontrolle kann man sich den Adapter auch mit lsusb anzeigen lassen

$ lsusb

Bus 005 Device 004: ID 067b:2305 Prolific Technology, Inc. PL2305 Parallel Port
Bus 005 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 005 Device 002: ID 0409:0059 NEC Corp. HighSpeed Hub


Schritt 4: Geladene Kernel-Module prüfen (lsmod)

$ lsmod | grep usb

usblp 15872 0
usbserial 35816 1 ftdi_sio
usbcore 146028 6 usblp,ftdi_sio,usbserial,ehci_hcd,uhci_hcd

Wichtig ist hier, das usbserial und ftdi_sio erkannt und auch genutzt (1) werden.

Schritt 5: Prüfen, ob eine neue serielle Schnittstelle /dev/ttyUSB0 angelegt wurde.


$ ls /dev/ttyUSB0

/dev/ttyUSB0


Schritt 6: GTKTerm starten



Schritt 7: Die richtigen Parameter einstellen



Schritt 8: und einloggen



That's it


P.S.
Die parallele Schnittstelle habe ich noch nie benutzt und kann daher auch nicht sagen, ob sie (gut) funktioniert. Sie wird sowohl unter Windows als auch Ubuntu 8.04 erkannt.

Talk: autodie - Lexical exceptions for Perl 5.10

Paul Fenwick (Perl Training Australia) hat einen Verbesserungsvorschlag für Fatal.pm (replace functions with equivalents which succeed or die) ins Leben gerufen.

Die Vorteile seines Projekts stellt er in einen Lightning Talk vor, der als Video zur Verfügung steht.



autodie ist noch im Entwurfsstadium und steht noch nicht auf CPAN zur Verfügung, man kann sich aber bereits einen Proof of Concept downloaden und ausprobieren.

Ich bin gespannt, wie es mit diesem Projekt weitergeht.

Die marketingorientierte Vorgehensweise, ein Perl-Projekt anzugehen, gefällt mir sehr.

Von Paul Fenwick (Perl Training Australia) kann man echt was lernen.



Enjoy!



Siehe auch