Nachdem ich meine Website auf Movable Type umgestellt habe, werde ich zukünftig dort bloggen und nicht mehr hier bei Blogger.com.
Durch die Umstellung ändert sich auch die URL für den RSS-Feed.
Ich bitte um Entschuldigung für die Unannehmlichkeiten.
Montag, 14. Juni 2010
Blog::Moved
Eingestellt von
Thomas Fahle
am
Montag, Juni 14, 2010
0
Kommentare
Links zu diesem Post
Labels: blog
Kurzbericht: Perl@Linuxtag 2010, Berlin (09.-12. Juni 2010)
Mein Kurzbericht: Perl@Linuxtag 2010, Berlin (09.-12. Juni 2010) befindet sich in meinem neuen Blog.
Eingestellt von
Thomas Fahle
am
Montag, Juni 14, 2010
0
Kommentare
Links zu diesem Post
Labels: linux, perl, perl foundation
Sonntag, 28. März 2010
CouchDB 0.10.1 unter Ubuntu 8.04 LTS aus dem Quellcode installieren
Die freien Tage vor Ostern werde ich u.a. dafür nutzen, mich ein wenig in NoSQL bzw. NoSQL-Datenbanken einzuarbeiten.
Als ersten Schritt habe ich mir vorgenommen, das Buch CouchDB: The Definitive Guide durch zu arbeiten.
Dazu benötige ich zunächst eine möglichst aktuelle Version der CouchDB.
Nachfolgend die Schritte, um die aktuelle Version 0.10.1 auf einem Ubuntu 8.0.4 LTS aus den Sourcen in das Verzeichnis /opt/couchdb-0.10.1 zu installieren. (Zusätzliche Software wird gemäß Filesystem Hierarchy Standard in /opt installiert.)
Schritt 1: Dependencies für CouchDB installieren
$ sudo apt-get install -y automake autoconf libtool help2man
$ sudo apt-get install -y build-essential erlang libicu-dev libmozjs-dev libcurl4-openssl-dev
Schritt 2: Aktuelle curl-Version installieren
CouchDB 0.10.1 erwartet curl ab Version 7.15.5. Installiert ist leider nur 7.15.4. Eine aktuellere Version (7.20) wird daher nach /opt/curl-7.20 installiert.
$ sudo mkdir /opt/curl-7.20
$ sudo ln -s /opt/curl-7.20 /opt/curl
$ cd /tmp
$ wget http://curl.haxx.se/download/curl-7.20.0.tar.bz2
$ tar -xjvf curl-7.20.0.tar.bz2
$ cd curl-7.20.0/
$ export LANG=C
$ ./configure --prefix=/opt/curl-7.20
$ make
$ make test
$ sudo make install
$ /opt/curl/bin/curl --version
curl 7.20.0 (i686-pc-linux-gnu) libcurl/7.20.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1
Protocols: dict file ftp ftps http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM SSL libz
Schritt 3: Aktuelle Erlang-Version installieren
CouchDB 0.10.1 erwartet Erlang ab Version 5.6.5 (R12B05). Installiert ist leider nur 5.5.5. Eine aktuellere Version (5.7.5, R13B04) wird daher nach /opt/erlang-R13B04 installiert.
$ sudo mkdir /opt/erlang-R13B04
$ sudo ln -s /opt/erlang-R13B04/ /opt/erlang
$ cd /tmp
$ wget http://www.erlang.org/download/otp_src_R13B04.tar.gz
$ tar -xzvf otp_src_R13B04.tar.gz
$ cd otp_src_R13B04
$ less INSTALL.md
$ export LANG=C
$ ./configure --prefix=/opt/erlang-R13B04
$ make
$ sudo make install
$ /opt/erlang/bin/erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.7.5
Schritt 4: Aktuelle CouchDB-Version installieren
Nachdem alle Abhängigkeiten erfüllt sind, kann endlich CouchDB installiert werden. Der Sourcecode kann über diverse Spiegelserver bezogen werden.
$ sudo mkdir /opt/couchdb-0.10.1
$ sudo ln -s /opt/couchdb-0.10.1/ /opt/couchdb
$ cd /tmp
$ wget http://..../apache-couchdb-0.10.1.tar.gz
$ tar -xzvf apache-couchdb-0.10.1.tar.gz
$ cd apache-couchdb-0.10.1
$ export LANG=C
$ export PATH=/opt/curl/bin:$PATH
$ export LDFLAGS=' -L/opt/curl/lib'
$ export ERL=/opt/erlang-R13B04/bin/erl
$ export ERLC=/opt/erlang-R13B04/bin/erlc
$ ./configure --prefix=/opt/couchdb-0.10.1
$ make
$ sudo make install
Schritt 5: CouchDB User anlegen
Aus Sicherheitsgründen sollt CouchDB nicht als root, sondern über einen geeigneten eigenen Account gestartet werden.
$ sudo adduser --system --home /opt/couchdb/var/ --no-create-home \
--shell /bin/bash --group --gecos "CouchDB Administrator" couchdb
$ sudo chown -R couchdb:couchdb /opt/couchdb/var/
Schritt 6: CouchDB starten und ausprobieren
$ sudo /opt/couchdb/etc/init.d/couchdb start
$ /opt/curl/bin/curl -X GET http://127.0.0.1:5984/
{"couchdb":"Welcome","version":"0.10.1"}
Die graphische Administrationsoberfläche Futon steht jetzt via http://127.0.0.1:5984/_utils/ zur Verfügung.
Siehe auch:
Eingestellt von
Thomas Fahle
am
Sonntag, März 28, 2010
0
Kommentare
Links zu diesem Post
Sonntag, 7. März 2010
Perl@CeBIT2010
Perl@CeBIT2010 war erfolgreicher als ich erwartet habe:
Der Stand war fast durchgehend gut besucht und wir konnten viele gute Gespräche mit Entscheidern und Entwicklern führen.
Renée Bäcker hat hier erstklassige Vorarbeit geleistet: Professionelle Broschüren, Flyer, Give-Aways, T-Shirts und überhaupt super Organisation. Danke.
Neben den Enterprise-Produkten OTRS und Foswiki wurden die Perl-IDE Padre, coole moderne Module wie Moose, DBIx::Class, Catalyst, Perl::Critic, Perlerweiterungen CPAN und natürlich die Perl-Community vorgestellt.
Ich war nur an zwei Tagen (Freitag und Samstag) am Messestand dabei und bewundere die Leistungs- und Leidensfähigkeit der Mitstreiter, die die ganze Woche am Stand verbracht haben. Es ist tierisch anstrengend, hat aber auch viel Spass gemacht.
Am Freitag waren überwiegend Besucher aus dem Firmenumfeld am Messestand; am Samstag mehr Besucher aus dem privaten Umfeld, aber auch viele Entwickler.
Am ersten Tag (Freitag) kamen die Besucher weitestgehend von selbst an den Stand und wir konnten sehr viele gute Einzelgespräche führen. In diesen Gesprächen konnten wir die Stärken und Einsatzbereiche von Perl aufzeigen und die coolen Neuerungen vorstellen, aber auch konkrete Fragen wie "Welches Modul eignet sich für mein Problem" beantworten.
Firmen, die Perl im Bereich Sicherheit und Firewall einsetzen, waren begeistert von Perl::Critic.
Andere Firmen, die mehrere Programmiersprachen einsetzen, waren positiv überrascht von Padre und wollen die IDE Ihren Entwicklern vorstellen,
so daß zukünftig nur noch eine IDE für alle Sprachen auf allen verwendeten Betriebssystemen gepflegt werden muss. Hier hat Sewi, einer der Padre-Entwickler, wirklich gute Arbeit geleistet.
Viele Entwickler wussten gar nicht, wie sehr sich Perl weiterentwickelt hat. Auch Entwickler, die einen eher negativen Eindruck von Perl gewonnen haben, konnten positiv durch Moose, DBIx::Class und Catalyst überrascht werden.
Wir konnten auch mit vielen jungen Menschen sprechen, die bisher noch nicht mit der dynamischen Programmiersprache Perl in Kontakt gekommen sind.
Überrascht hat mich in den Gesprächen mit Entwicklern und Entscheidern, wo und wie umfangreich Perl eingesetzt wird. Die Nachfrage nach Perl-Programmierern und auch Perl-Trainings ist höher als ich vermutet habe.
Am Samstag war der Stand zunächst schlecht besucht. Daher haben Gabor und ich uns auf den Hauptgang gestellt, Prospekte verteilt und Besucher direkt angesprochen. Viele haben erfreut reagiert und umgehend den Stand besucht. Es waren sogar so viele, daß leider nicht mehr alle Besucher am Stand bedient werden konnten. Aber die Botschaft ist rübergekommen: Perl ist da und hat sich weiterentwickelt.
Gegen Ende der CeBIT haben wir uns noch kurz zusammengesetzt und den Verlauf den Messe, unsere Erfahrungen und auch Fehler besprochen. Es wird auch in den nächsten Jahren wieder Perl@CeBIT2010 geben und es wird noch besser.
Siehe auch:
- Renée Bäcker: Perl@CeBIT - Tag 0
- Renée Bäcker: Perl@CeBIT - Tag 1
- Renée Bäcker: Perl@CeBIT - Tag 2
- Renée Bäcker: Perl@CeBIT - Tag 3
- Renée Bäcker: Perl@CeBIT - Tag 4
- Renée Bäcker: Perl@CeBIT - Tag 5
- Sewi: CeBit 2010: Es kann losgehen
- Sewi: CeBit und die Illusionen...
- Sewi: CeBit 2010 is over
- Sewi: Things I showed to people not knowing Perl but PHP
- Gabor Szabo: Two days into CeBIT
- Gabor Szabo: Perl in CeBIT
- Perl 5 Wiki CeBIT 2010
- http://cebit.perl-magazin.de/
- Fotos Perl@CeBIT
Eingestellt von
Thomas Fahle
am
Sonntag, März 07, 2010
0
Kommentare
Links zu diesem Post
Labels: conference, perl
Donnerstag, 7. Januar 2010
Goodbye Google Analytics
Gerade eben habe ich den Java-Script-Code für Google Analytics von meinen Websites (Thomas-Fahle.de, Perl-Suchmaschine.de, Perl-HowTo.de und dieses Weblog) entfernt.
Wer das Thema Datenschutz Ernst nimmt, sollte Googles Sammelwut einfach nicht unterstützen.
Ich entschuldige mich hiermit bei allen Lesern und Besuchern für den Einsatz von Google Analytics.
Eingestellt von
Thomas Fahle
am
Donnerstag, Januar 07, 2010
2
Kommentare
Links zu diesem Post
Labels: datenschutz, google
Freitag, 1. Januar 2010
Eigene Ubuntu 8.04.3 Desktop Live CDs erstellen
Vor ein paar Tagen habe ich eine Modern Perl Ubuntu 8.04.3 LTS Live DVD erstellt und zum Download bei SourceForge eingestellt.
Das Erstellen von LiveCDs auf der Basis von Ubuntu ist gut dokumentiert (LiveCDCustomization - How to Customise the Ubuntu Desktop CD) und eigentlich nicht besonders schwierig.
Hier meine Arbeitsschritte auf einem Ubuntu 8.04.3 Desktop System zur Erzeugung eines angepassten Ubuntu 8.04.3 Desktop System. Für andere Varianten wie Server-CD oder Alternate-CD oder andere Versionen funktioniert die hier aufgezeigte Vorgehensweise nicht. Weiterhin gehe ich hier nicht auf das Erstellen eines angepassten Kernels ein.
squashfs-tools und genisoimage installieren
$ sudo apt-get update
$ sudo apt-get install squashfs-tools genisoimage
Arbeitsverzeichnisse erstellen
$ sudo mkdir /opt/customize
$ cd /opt/customize
$ sudo mkdir /opt/customize/mnt
$ sudo mkdir /opt/customize/extract-cd
Anschließend ein Ubuntu 8.04 Desktop ISO-Image downloaden und im Verzeichnis /opt/customize ablegen und das ISO-Image mounten
$ sudo mount -o loop /opt/customize/ubuntu-8.04.3-desktop-i386.iso /opt/customize/mnt
den Inhalt der CD extrahieren,
$ sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
und das gepackte Datei-System entpacken.
$ sudo unsquashfs mnt/casper/filesystem.squashfs
$ sudo mv squashfs-root edit
Im Verzeichnis edit befindet sich nun der Inhalt des ISO-Images und kann nach einem chroot bearbeitet werden.
Gerätedateien des Hosts an die chroot-Umgebung weiterreichen.
sudo mount --bind /dev/ edit/dev
Auch innerhalb der chroot-Umgebung soll eine Netzwerkverbindung möglich sein. Daher werden die Netzwerkeinstellungen des Hosts in das zu editierende System kopiert.
$ sudo cp /etc/resolv.conf edit/etc/
$ sudo cp /etc/hosts edit/etc/
Damit graphische Programme innerhalb der chroot-Umgebung laufen können, muss der entsprechende Socket weitergeleitet werden:
$ sudo mkdir -p edit/tmp/.X11-unix
$ sudo mount --bind /tmp/.X11-unix edit/tmp/.X11-unix
$ xhost +local:
Nach einem chroot in das edit Verzeichnis
$ sudo chroot edit
muss noch die Umgebung eingestellt,
# export HOME=/root
# export LC_ALL=C
# export DISPLAY=:0
einige Systemverzeichnisse von Hand eingehängt,
# mount -t proc none /proc
# mount -t sysfs none /sys
# mount -t devpts none /dev/pts
und eine eindeutige ID vergeben werden.
# dbus-uuidgen > /var/lib/dbus/machine-id
Jetzt kann das System nach eigenen Vorstellungen angepasst werden:
# apt-get update
# dpkg-query -W --showformat='${Package}\n' | sort | less
# apt-get purge Package-Name
# apt-get install Package-Name
# apt-get install build-essential
Sobald alle Änderungen vorgenommen wurden, müssen noch Aufräumarbeiten innerhalb der chroot-Umgebung
# apt-get clean
# apt-get autoremove
# rm /var/lib/dbus/machine-id
# rm /etc/hosts
# rm /etc/resolv.conf
# rm -f /tmp/*
# rm /root/.viminfo
# export HISTSIZE=0
# rm /root/.bash_history
# umount /proc
# umount /sys
# umount /dev/pts
# exit
und außerhalb der chroot-Umgebung durchgeführt werden.
$ sudo umount edit/dev
$ sudo umount edit/tmp/.X11-unix
$ sudo rm -rf edit/tmp/.X11-unix
Nach der Erstellung des Manifests
$ chmod +w extract-cd/casper/filesystem.manifest
$ sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
$ sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
$ sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
$ sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
wird das Dateisystem komprimiert,
$ sudo rm extract-cd/casper/filesystem.squashfs
$ sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -nolzma
MD5-Prüfsummen erneut kalkuliert
$ cd extract-cd
$ sudo rm md5sum.txt
$ sudo find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.tx
und das neue ISO-Image erzeugt.
$ sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-8.04.3-desktop-i386-custom.iso .
That's it.
Eingestellt von
Thomas Fahle
am
Freitag, Januar 01, 2010
0
Kommentare
Links zu diesem Post
Donnerstag, 31. Dezember 2009
Perl-HowTo.de: Artikelübersicht 2009
- 2009.12.31: Modern Perl Ubuntu 8.04.3 LTS Live DVD
- 2009.12.13: List::Util - Häufig benötigte Tools für Listen und Arrays
- 2009.11.30: Perl Advent(ures) 2009
- 2009.11.23: 12. Deutscher Perl-Workshop in Schorndorf vom 07.-09. Juni 2010 in der Barbara-Künkelin-Halle
- 2009.11.17: Ordered Hashes mit Tie::IxHash oder Tie::Hash::Indexed
- 2009.11.08: Frankfurter Perl-Community Workshop 2009 am 28. und 29.11.2009
- 2009.10.29: Lesetipp: 12. Ausgabe des Perl-Magazins $foo erschienen
- 2009.10.21: perl-5.11.1 parallel zu einem bestehendem Perl unter Ubuntu-Linux 8.04 installieren
- 2009.09.27: YAPC::EU::2009 videos - Larry Wall talking about Perl 6
- 2009.09.21: ASCII-Tabellen mit Text::ASCIITable
- 2009.09.16: File::Which - portables (p)which
- 2009.09.05: Try - Catch: Try::Tiny
- 2009.08.23: Slides Perl@FrOSCon 2009
- 2009.08.16: Statistics::Descriptive - Grundlegende Berechnungen der Beschreibenden Statistik
- 2009.08.03: Log::Dispatch - Logging mit mehreren Ausgabezielen ganz einfach
- 2009.07.29: Lesetipp: 11. Ausgabe des Perl-Magazins $foo erschienen
- 2009.07.26: Kurs::Tipp - Online Perl-Meisterkurs 2009 mit Jochen Lillich ab 05. Oktober 2009
- 2009.07.22: HTML::Display - HTML zum lokalen Browser senden
- 2009.07.20: Veranstaltung::Tipp - Perl@FrOSCon - 22. August 2009
- 2009.07.13: Sort::Key::Natural - Natürlich nach Zahlen und Buchstaben sortieren
- 2009.07.12: Sort::Versions - Versionsnummern richtig sortieren
- 2009.07.09: Parse::Syslog - Syslogdateien einfach parsen
- 2009.06.30: File::Tail - Logdateien beobachten und analysieren
- 2009.06.21: Screencast: Introduction to Catalyst by Dan Dascalescu
- 2009.06.17: Finance::QuoteHist - Historische Börsenkursdaten einfach abrufen
- 2009.06.11: Show me the money - Finance::YahooQuote
- 2009.06.05: Blog::Tip - oreillyblog bringt eine Artikelserie über Perl
- 2009.06.03: Business::Tax::VAT::Validation - Umsatzsteuer-Identifikationsnummern einfach überprüfen
- 2009.05.28: CPAN::Mini::Webserver - Komfortable Suche im lokalen CPAN-Mirror
- 2009.05.20: Time::y2038 - Keine Angst vor dem Schwarzen Dienstag 2038
- 2009.05.14: Perldoc::Server - Perl-Dokumentation griffbereit mit Hyperlinks und Syntaxhighlighting
- 2009.05.11: Dateitypen bestimmen mit File::LibMagic
- 2009.05.06: Ladezeit von Websites mit JavaScript::Minifier verbessern
- 2009.04.29: Iron Man Blogging Challenge
- 2009.04.23: whois-Informationen mit Net::Whois::Raw ermitteln
- 2009.04.09: Talk: Perl in RPM-Land
- 2009.04.02: Sub::Identify - Wie bitte heisst das Unterprogramm auf welches diese Coderefenz verweist?
- 2009.04.01: Lingua::ManagementSpeak - Dann klappt's auch mit dem Management
- 2009.03.29: Talk: Perl-Suchmaschine.de - Spezialsuchmaschine rund um Perl in ausgewählten Quellen
- 2009.03.29: Talk: Maintaining the be*st von Ulrich Habel
- 2009.03.29: Talk: Foswiki & TWiki - eine der verbreitesten Firmenwiki-Lösungen der Welt von Martin Seibert
- 2009.03.22: Talk: Nützliche Infos für Kammerjäger von Renée Bäcker
- 2009.03.18: Talk: Der Editor Vim/gVim als Perl-IDE von Fritz Mehner
- 2009.03.18: nmake: Make für Windows
- 2009.03.09: Geo::IP - IP-Adressen oder Hostnamen regional zuordnen
- 2009.03.05: Talk: PostgreSQL optimieren und mit Perl kombinieren von Andreas Scherbaum
- 2009.03.04: Talk: Application deployment and dependency management with PAR von Steffen Müller
- 2009.03.03: Talk: Goldene Regeln für die Entwicklung von Perl-Applikationen von Alvar Freude
- 2009.03.02: Devel::FindRef - Was referenziert diese Variable?
- 2009.03.01: Perl Gezwitscher - Lesenswerte Twitterfeeds für Perlprogrammierer
- 2009.03.01: ExcelPerl: Excel-Dateien unter Windows mit Perl-Einzeilern bearbeiten
- 2009.03.01: Comics: Sehr viele $ in der Zukunft?
- 2009.02.01: App::Asciio - Graphische Benutzeroberfläche für ASCII-Charts
- 2009.01.22: Kurze URLs mit WWW::Shorten
- 2009.01.19: Mikro-Blogging mit Net::Twitter
Siehe auch die Perl-HowTo.de: Artikelübersicht 2008.
Perl-HowTo.de: Getting Things done with Perl. Tipps, Tricks und Anleitungen ist eine Website, die von mir betrieben wird, und sich überwiegend an angehende Perl-Programmierer wendet.
Eingestellt von
Thomas Fahle
am
Donnerstag, Dezember 31, 2009
0
Kommentare
Links zu diesem Post