Perl-Blog (GHIT): Perl-Zeitung Ausgabe 16

 

... ab 1. März käuflich zu erwerben. Preis wie immer: € 1,80

Inhaltsverzeichnis:
Umgebungsvariablen anzeigen lassen
Warnungen sammeln
Encoding DosBox
Dialog Yes/No
ProgressBar ohne Modul
Twitter-Api Programmierung mit Perl: Die "Single-User"-Lösung
Was ist los in der Perl-Welt...
Kommerzielle Werbung
Gemeinnützige Werbung
Perl-Zeitung aktuell & Gewinnspiel
Vorschau & Abschluss

http://perl-zeitung.at

Published by Gernot Havranek on 2012-02-17T11:33:00

Perl-Nachrichten.de: Perl-Zeitung Ausgabe 16

 

... ab 1. März käuflich zu erwerben. Preis wie immer: € 1,80 Inhaltsverzeichnis: Umgebungsvariablen anzeigen lassen Warnungen sammeln Encoding DosBox Dialog Yes/No ProgressBar ohne Modul Twitter-Api Programmierung mit Perl: Die "Single-User"-Lösung Was ist los in der Perl-Welt... Kommerzielle Werbung Gemeinnützige Werbung Perl-Zeitung aktuell & Gewinnspiel Vorschau & Abschluss http://perl-zeitung.at

Published by Gernot Havranek on 2012-02-17T11:37:30

Perl-Nachrichten.de: OTRS in der Version 3.1 erschienen

 

Seit heute gibt es die Version 3.1 des HelpDesk-Systems OTRS. Zu den wichtigsten Neuerungen gehört das "GenericInterface", mit dem über SOAP und HTTP mit anderen Anwendungen wie z.B. dem SAP Solution Manager kommunizieren lässt. Weitere wichtige Neuerungen sind die Dynamic Fields und dass mehrere Empfänger bei Emails mit der Kundensuche hinzugefügt werden können. Die Dynamic Fields ersetzen die bisherigen FreeText-Felder in Tickets und Artikeln.

Published by Renée Bäcker on 2012-02-14T11:55:57

Perl-Nachrichten.de: Israelischer Perl-Workshop: Programm für den 28. Februar steht

 

Am 28. Februar findet der Israelische Perl-Workshop statt. Jetzt steht auch das Programm fest: http://act.perl.org.il/ilpw2012/schedule

Published by Renée Bäcker on 2012-02-14T11:36:01

Frankfurt Perlmongers: Nächstes Treffen: 13. März 2012

 

Eigentlich findet unser monatliches Treffen immer am 1. Dienstag des Monats statt. Im März werden wir aber eine Ausnahme machen! Da sehr viele von uns beim Deutschen Perl-Workshop in Erlangen sind, verschieben wir das Treffen um eine Woche.

Unser nächstes Treffen ist also am 13. März 2012 um 19:30 Uhr im MoschMosch!

Um einen genügend großen Tisch reservieren zu können, bitte kurz auf der Mailingliste oder hier Bescheid geben. Natürlich freuen wir uns auch über kurzfristigen Besuch.

Published by Renée Bäcker on 2012-02-10T17:27:09

Frankfurt Perlmongers: Bericht Perlmonger-Treffen 07. Februar 2012

 

Am Dienstag war es wieder soweit - ein Perlmonger-Treffen. Obwohl bis mittags nur zwei Leute offiziell zugesagt hatten, trafen wir uns im MoschMosch zu unserem Februar-Treffen. Bei eisigen Temperaturen und ein wenig Schnee ist es aber nicht bei den zwei Personen geblieben... wir waren dann zu sechst.

Bei ein paar Getränken und gutem Essen ging es diesmal hauptsächlich um die YAPC-Organisation. Damit sind die sechs Leute auf dem aktuellsten Stand. Hier aber nochmal ein paar wichtige Punkte:

Bisher war die Sponsorensuche ganz erfolgreich. Wir haben ein paar Sponsorenzusagen mit einem Wert von rund 10.000 EUR.

Danke schonmal an XING, united-domains, $foo, Max, die YAPC::Europe Foundation, Evozon und Findus!

Das nimmt uns schonmal eine große Last von den Schultern. Was aber nicht heißt, dass wir nicht noch weiter suchen. Wenn hier Personen mitlesen, die daran interessiert sind, die diesjährige YAPC zu sponsoren, dann bitte einfach eine Mail an sponsoring@yapc2012.de schicken.

In zwei Wochen sollen alle Firmen angesprochen sein, die auf unserer Liste stehen.

Die Ankündigung der YAPC, wurde in mehreren Foren gepostet und ist auch auf heise.de und bei hessen-IT aufgetaucht. Mittlerweile ist auch der Call for Papers draußen und man kann schon Vorträge einreichen.

Als nächstes stehen die Organisation des Social Events und die Videoaufzeichnungen an. Max wird ein paar mögliche Veranstaltungsorte für den Social Event kontaktieren.

Bei den Videoaufzeichnungen geht es darum, dass bald ein Stimmungsbild dazu über das YAPC-Blog eingeholt werden sollen. Vielleicht kann man dann einzelne Vorträge in einen Raum und in einen Raum legen, so dass man Kosten sparen kann. Wir möchten - wenn wir Videoaufzeichnungen der Vorträge machen - auch gute Qualität liefern. Max hatte sich zu dem Thema auch mal kundig gemacht, ob es Open Source Lösungen gibt, aber da gibt es anscheinend nichts gutes (und bezahlbares).

Ein weiteres Thema war der Registrierungsprozess auf der YAPC selbst. In Riga war das "on-demand"-Ausdrucken der Namensschilder zu langsam und hat den Betrieb aufgehalten. Wir wollen also die Sachen vorbereiten. Evtl. wollen wir mit QR-Codes arbeiten, um den Prozess (Auffinden des Namensschilds, T-Shirt-Größe, ...) zu vereinfachen. Genaueres steht aber noch nicht fest.

Zum Thema Verpflegung ist zu sagen, dass "Zwischenmahlzeiten" von der Mensa kommen, wenn diese nicht ablehnen.

Hier noch ein Buchtipp für Workshop/YAPC-Orgas: Perl Jam - how to organise a conference von Barbie, der auch immer die YAPC-Umfragen durchführt.

Das war's zum Thema YAPC. Nächstes Thema. Der Verein. Hier warten wir immer noch auf eine Aussage vom Finanzamt, ob der Vereinszweck so in Ordnung ist, wie er jetzt in der Satzung steht. Wir wollen noch vor der YAPC eine Jahreshauptversammlung machen.

Mehr gibt es dazu erstmal nicht zu sagen.

Ansonsten wurde noch kurz der Deutsche Perl-Workshop angesprochen, der in rund 4 Wochen in Erlangen stattfindet. Einige von uns werden daran teilnehmen und ich werde einen Lightning Talk über die YAPC halten.

Und noch zwei Themen in Stichpunkten:

 * EBooks
    * Kindle und das .mobi-Format
    * Sony Reader kann sehr viele Formate anzeigen
 * Text zu Sprache
    * Computerstimmen sind noch nicht wirklich zu gebrauchen

Published by Renée Bäcker on 2012-02-09T14:58:27

Perl-Blog (GHIT): Perl-Zeitung sucht Autoren

 

Wir suchen aktuell, Autoren die regelmäßig für die Perl-Zeitung schreiben möchten.

Haben Sie Interesse?
Melden Sie sich bei uns!

Kontakt

Published by Gernot Havranek on 2012-02-09T13:08:00

Perl-Blog (GHIT): Perl Data Language mit Handbuch und neuen Funktionen

 

Das PDL-Entwicklerteam hat die neue Version 2.4.10 der Perl Data Language vorgestellt. Die Sprache erweitert Perl um zusätzliche Funktionen, die in erster Linie bei wissenschaftlichen Berechnungen Vorteile gegenüber der Verwendung anderer Sprachen wie MATLAB oder Scilab bieten sollen. Dazu setzt PDL unter anderem auf einen eigenen Datentyp, der speziell für die Verarbeitung N-dimensionaler Matrizen geeignet sei.

Die nun vorgestellte Version der PDL ergänzt eine Option zur Auto-Parallelisierung der PDL-Thread-Schleifen, unterstützt allgemein POSIX-Threads auf allen kompatiblen Plattformen und PDL-Datentypen mit einer Größe von mehr als 2 Gibibyte (auf 64-Bit-Systemen). Zudem stellen die Entwickler einen ersten Entwurf ihres PDL-Handbuchs als PDF zum Download zur Verfügung. (rl)

Published by Gernot Havranek on 2012-02-08T18:57:00

Perl-Nachrichten.de: E-Book: Perl Einzeiler

 

Peteris Krumins hat ein E-Book zum Thema "Perl-Einzeiler" veröffentlicht. Auf 111 Seiten werden 200 nützliche Einzeiler erklärt. Die Einzeiler reichen von einfachen Berechnungen über Bearbeitung von Dateien bis zu allgemeinen Regulären Ausdrücken.

Published by Renée Bäcker on 2012-02-07T09:46:16

Perl-Nachrichten.de: YAPC::Europe 2012: Call for Papers

 

Ab sofort können Vorträge für die YAPC::Europe 2012 eingereicht werden. Der Einsendeschluss ist der 15. Juli, aber ab sofort werden in regelmäßigen Abständen die Vortragsvorschläge bewertet und einige der Vorschläge werden vorzeitig akzeptiert. Die Vorträge haben standardmäßig eine Länge von 20 bzw. 40 Minuten. Da es in diesem Jahr auch einen Tagungsband geben soll, sollten Artikel vorbereitet werden, wenn der Vortrag angenommen wird.

Published by Renée Bäcker on 2012-02-05T22:25:32

Perl-Blog (GHIT): Craigslist spendet Perl Foundation 100.000 US-Dollar

 

Die Perl Foundation, die sich um die Entwicklung der Skriptsprache Perl kümmert, hat vom Online-Kleinanzeigen-Spezialist Craigslist eine Spende über 100.000 US-Dollar erhalten. Damit bedankt sich das Unternehmen für die Entwicklung von Perl, das Craigslist nach Angaben von CEO Jim Buckmaster seit über zehn Jahren für die Softwareentwicklung einsetzt.

Die Spende soll helfen, die Arbeit an Perl 5 auch für die Zukunft zu sichern – dementsprechend will die Perl Foundation die Gelder auch für die Weiterentwicklung der Skriptsprache verwenden. Außerdem sollen damit einige Aktivitäten rund um das Perl-Projekt gesponsert werden. (mid)

Published by Gernot Havranek on 2012-02-03T11:14:00

lichtkind's blog: Neue Artikel und?

 

Heute kam die neue foo, mit den bereits angesprochenen Artikeln. Was als eine Folge des Wx-tutorials geplant war musste ich nochmal teilen, aber die rezensionen werden langsam richtig gut. Prompt kam am gleichen Tag Leserpost, was mich sehr freute.

Und die nächsten sind in Planung (Camel und Coders at work von peter Seibel, daß ich nochmal etwas gegen Visionäre der Programmierung antreten lasen will). So nach und nach will ich alle Perl-Klassiker , wichtige Neuerscheinungen, auch Allgemein-Programmier-Klassiker und einiges links und rechts besprechen. Deswegen auch immer 2 Rezensionen in eienr Ausgabe.  Könntet ihr euch vorstellen auch Rezension zu einem CSS 3-Buch in der foo lesen zu wollen? Ich will das wirklich wissen.

Danke.

Published on 2012-02-01T22:36:46

Perl-Blog (Renee Baecker): Frühjahr 2012 - die 21. Ausgabe von $foo ist da!

 

Gerade wird es so richtig kalt - aber beim Perl-Magazin ist es schon Frühjahr. Die 21. Ausgabe des Magazins ist heute erschienen und die Abonnenten sollten in den nächsten 1-2 Tagen Post bekommen.


Inhalt dieser Ausgabe:

* VMware und Perl

Virtualisierung ist mittlerweile ein großes Thema. Mit VMware und Perl kann man virtuelle Maschinen automatisch ansprechen.
Stefan Oberwahrenbrock zeigt, welche VMware-Produkte es gibt und wie man diese mit Perl ansprechen kann.

* Continuous Integration für Perl-Projekte mit Jenkins

Nichts ist schlimmer, als eine fehlerhafte Software an Kunden auszuliefern. Deshalb sollten Tests und das Zusammenbauen der unterschiedlichen Komponenten regelmäßig auf dem Programm stehen.
Dieser Artikel zeigt, wie Jenkins für Perl-Projekte eingesetzt werden kann.

* Perl in the Cloud - OpenShift Express by Red Hat

Das Thema "Cloud" ist derzeit in aller Munde, jeder will rein und immer mehr Anwendungen wandern in die Cloud.
Thomas Fahle zeigt in diesem Artikel, wie man eigene Anwendungen mit OpenShift von RedHat in die Cloud bringt.

* Rezension - Perl komplett

Herbert Breunung stellt in dieser Ausgabe wieder zwei Bücher vor - Die "Perl Pocket Reference" von Johan Vromans und "Der Perl-Programmierer" von Jürgen Plate.

* Konfigurationsmanagement und Software-Deployment mit Rex

Mit Rex kann das komplette Deployment und die Konfiguration von Servern automatisiert werden. Die Steuerdateien für Rex sind in Perl geschrieben.
Jan Gehring zeigt, wie die sogenannten "Tasks" geschrieben werden und welche Möglichkeiten Rex bietet.

* Ein CPAN für eigene Module

Wie stelle ich Kunden die entwickelten Perl-Module zur Verfügung? Diese Frage stellt sich wahrscheinlich für viele Perl-Programmierer.
Man kennt ja das CPAN, warum also nicht die gleiche Struktur für eigene Projekte nutzen.
Dieser Artikel zeigt, wie man mit Pinto ein CPAN für eigene Module aufbaut.

* WxPerl Tutorial - Teil 9: Mächtige Widgets

Im neunten Teil des WxPerl-Tutorials zeigt Herbert Breunung eine Übersicht über viele Widgets, die man in wxPerl-Programmen nutzen kann. Er geht dabei den Weg von einfachen Widgets über einfache Auswahlwidgets bis zu den Auswahlwidgets für den gehobeneren Anspruch.

Published by ReneeB on 2012-01-31T22:31:00

Perl-Blog (GHIT): YAPC::Europe 2012 findet in Frankfurt statt

 

Zum zweiten Mal nach 2002 wird dieses Jahr die YAPC::Europe, die vermutlich größte europäische Perl-Entwicklerkonferenz, in Deutschland tagen. Die Organisatoren sind dieses Mal die Frankfurter Perlmongers, ausgerichtet wird die Konferenz vom 20. bis 22. August an der Goethe-Universität. Die Veranstaltung will ein tieferes Verständnis der Open-Source-Programmiersprache und ihrer Philosophie bieten, und Konferenzteilnehmer sollen neue Techniken, Funktionen und Trends kennen lernen. Erwartet werden über 300 Teilnehmer. (ane)

http://www.heise.de/developer/meldung/YAPC-Europe-2012-findet-in-Frankfurt-statt-1418868.html

Published by Gernot Havranek on 2012-01-24T15:56:00

Perl-Blog (Renee Baecker): YAPC::Europe 2012: Datum und Ort stehen jetzt fest

 

Endlich können wir das Datum und den Ort der diesjährigen YAPC::EU bekanntgeben: Die YAPC::Europe 2012 wird vom 20.-22. August 2012 an der Goethe Universität in Frankfurt stattfinden.

Die Webseite werden wir regelmäßig mit neuen Informationen bestücken. Die wichtigsten Informationen wird es auch im Blog geben.

Published by ReneeB on 2012-01-22T22:11:00

Perl-Blog (Renee Baecker): Programm des 14. Deutschen Perl-Workshops

 

Die Erlanger Perlmongers haben das Programm des 14.Deutschen Perl-Workshops online gestellt. Teilweise gibt es zwei Track, die meiste Zeit ist es aber nur ein einzelner Track.


Ich selbst werde einen längeren Vortrag über Jenkins und Perl halten. Ein Lighting Talk über die YAPC::Europe wird auch dabei sein.

Published by ReneeB on 2012-01-15T23:01:00

Perl-Uwe.de: 2 Jahre Hamburg PM

 

Im Februar 2010 haben mein Kollege Johannes Plunien und ich die Hamburger Perlmongers wieder "belebt". Danach fanden (bis auf wenige Ausnahmen) jeden Monat Treffen statt. Als Gaeste konnten wir Stefan Hornburg und Renee Baecker begruessen.

Insgesamt habe ich vielleicht 10 Vortraege gehalten, meist die Premiere meiner YAPC- oder Perl-Workshop-Vortraege. Auch einige "Hamburger" haben interessante Projekte und Module vorgestellt. Trotz allem Einsatz bin ich mit der Beteiligung nicht zufrieden. Die Teilnehmerzahl schwankt zwischen 4 und 10 (mit dem Durchschnitt wohl so bei 5).

Deshalb gibt es jetzt etwas neues: Einen Mojolicious-Workshop!

Am 28.1.2012, 10 Uhr in dem Raeumen vom Attraktor e. V. wird Marcos Rebelo eine Einfuehrung in Mojolicios geben. Anschliessend wird in kleinen Gruppen an konkreten Projekten gearbeitet. Wer eigene Ideen hat, kann diese gern verfolgen. Mojolicious-Kenntnisse werden nicht vorausgesetzt, aber Perl-Kenntnisse sollten vorhanden sein. Die Einfuehrung ist in Englisch, es sind aber genuegend Muttersprachler dabei, die Fragen auch in Deutsch beantworten koennen.

Ich freue mich auf den 28.!

Published by Uwe on 2012-01-07T21:23:00

Perl-Blog (Renee Baecker): MP3s mit Perl abspielen

 

Nett und öfter mal wieder gefragt: MP3-Dateien mit Perl abspielen.
Meistens wird dabei auf Module zurückgegriffen, die einen besondeten Player ansprechen. Win32::MediaPlayer, Bundle::Xmms und Win32::MultiMedia::Mci sind Beispiele dafür.

Ein anderer Ansatz ist, SDL dafür zu verwenden. Das hat beispielsweise gegenüber Win32::MultiMedia::Mci den Vorteil, dass das Programm auch auf Nicht-Windows-Systemen wie Appels OS X oder diversen Linux läuft.

SDL steht für Simple DirectMedia Layer und ist eine plattformunabhängige Multimedabibliothek, die in der Programmiersprache C geschrieben ist.

Das SDL-Perl-Projekt unter http://sdl.perl.org stellt eine Anbindung an die SDL-Bibliothek zur Verfügung. Das Modul kann mittlerweile bequem per CPAN installiert werden. Alien::SDL sorgt dabei für eine angenehm reibungslose Installation der Abhängigkeiten von SDL, imdem es den ganzen Prozess des Kompilieren der Abhängigkeiten erledigt.

SDL auf Mac OS X


Apple bringt zwar ein Perl mit, damit zu arbeiten fand ich bislang aber immer sehr mühselig. Deshalb habe ich mir kurzerhand über perlbrew (http://perlbrew.pl/) ein aktuelles Perl installiert. Damit das alles klappt, sollte man das aktuellste XCode (das man so von Apple kostenlos bekommt) installieren. Auf den Installations-CDs ist normalerweise eins dabei.

Was bleibt ist das nicht von Haus aus in Appels Betriebssystem enthaltene lame. Das wird benötigt, um mittels SDL MP3-Dateien abzuspielen. Da die Installation dieser Voraussetzung nicht Aufgabe von Alien::SDL ist, muss man es von Hand machen. Mir hat der unaufwendige Weg über Homebrew (http://mxcl.github.com/homebrew/) sehr gut gefallen.

Es reicht, den Befehl
> brew install lame

einzugeben, und schon ist lame installiert. Es fehlt dann nurnoch SDL Perl:

cpan> install Alien::SDL
cpan> install SDL


Also nochmal zusammengefasst, was man auf einem Mac alles installieren muss, um MP3s abspielen zu können:

  • XCode (neuste Version, aktualisieren nicht vergessen!)

  • perlbrew

  • ein aktuelles Perl (z.B. 5.14.1)

  • homebrew

  • lame

  • Alien::SDL

  • SDL



Das Programm


Nun zum interessanten Part: wie sieht das Programm aus?


#!perl

use strict;
use warnings;
use SDL;
use SDL::Mixer;
use SDL::Mixer::Music;
use SDLx::App;

# -- Initialisierung
SDL::Mixer::init( SDL_INIT_AUDIO | MIX_INIT_MP3 | MUS_MP3 );
unless( SDL::Mixer::open_audio( 44100, AUDIO_S16SYS, 2, 4096 ) == 0 ) {
Carp::croak "Cannot open audio: ".SDL::get_error();
}

# -- Anwendung erstellen
my $app = SDLx::App->new(
title => 'MP3 abspielen',
w => 400,
h => 200,
exit_on_quit => 1,
depth => 32
);

# -- Diese Datei soll abgespielt werden.
my $sound_file = 'music/Musikdatei.mp3';

# -- Datei in den Speicher laden
my $background_music = SDL::Mixer::Music::load_MUS($sound_file);

unless( $background_music ) {
Carp::croak "Cannot load music file [$sound_file]: " . SDL::get_error();
}

# -- Datei abspielen
my $loops = 0; # 0 = 1mal, -1 = unendlich oft
SDL::Mixer::Music::play_music( $background_music, $loops );

$app->run();

SDL::Mixer::Music::halt_music();
SDL::Mixer::close_audio;
exit(0);


Die Musikdatei, die der Einfachheit halber in der Variable $sound_file fest verdrahtet wurde, muss natürlich existieren. Man kann dort wahlweise MP3-, wav- oder ogg-Dateien eintragen. load_MUS() macht den Rest.

Zuerst wird die Hardware initialisiert, dann die Musikdatei geladen und schlussendlich abgespielt. Es ist möglich, die Anzahl der Wiederholungen festzulegen und natürlich kann man das Musikstück auch anhalten und weiterlaufen lassen - auch mit fading. Wie genau, ist in der Manpage von SDL::Mixer::Music enthalten.

Eventuell hat jemand Lust, das obenstehende Programm zu erweitern, so dass man eine Datei auswählen, starten, anhalten und beenden kann?

Ein paar technische Anmerkungen:
Verwendetes OS: Mac OS X snow leopard 10.6.8
Perl: 5.14.1
SDL::version is 1.2.14
SDL::linked_version is 1.2.14

Published by Alex on 2012-01-05T09:07:00

Frankfurt Perlmongers: Bericht Perlmonger-Treffen 03. Januar 2012

 

Beim ersten Treffen im neuen Jahr waren wir nur eine ganz kleine Runde. Zu viert haben wir uns im MoschMosch getroffen. Auch diesmal haben wir wieder über alles Mögliche gesprochen. Hier eine kurze Übersicht an Themen


Aktueller Stand Verein
Das Finanzamt hat ist an einer Stelle nicht ganz zufrieden mit der Satzung. Max sucht neue Formulierungsvorschläge, bespricht das mit dem Finanzamt und stellt die Alternativen auf der Mailingliste zur Diskussion.

Aktueller Stand YAPC
Wir haben den Vertrag für die Räume unterzeichnet, jetzt fehlt noch die Unterschrift der Gegenseite. Ich hoffe/denke, dass die in den nächsten Tagen kommt. Dann können wir auch endlich den Veranstaltungsort und das Datum ankündigen.

An der Webseite habe ich noch nach dem Treffen gearbeitet. Der aktuelle Stand ist momentan nur auf einem Testserver zu sehen. Wenn alles klappt, wird die Seite am Wochenende live gestellt.

Sobald der Vertrag für die Räume ganz fix ist, werden auch die ersten Anschreiben an potentielle Sponsoren rausgehen. Wir haben einiges an Kosten zu decke und benötigen dafür einige Sponsoren. Wenn hier jemand mitliest, der kann uns über diese Seite kontaktieren. Eine Mailadresse nur für Sponsoren richten wir noch ein.

Umzug der Webseite von Frankfurt.pm
Thomas hat vor einiger Zeit ein MovableType aufgesetzt als neue Umgebung für die Webseite der Frankfurt Perlmongers. Wie ihr sehen könnt, ist die jetzt auch aktiv ;-)

Wo wir gerade von Webseiten sprechen...

Wichtigkeit von Design für Projekte
Es gibt so viele gute Perl-Projekte, die in der Öffentlichkeit nicht so gut ankommen, weil deren Webseite nicht optimal ist - obwohl die Anwendung häufig mehr kann, als "Konkurrenz" aus anderen Lagern.

Software für Webinare/Support/Konferenz
Wir haben uns eine Zeitlang über Webinare und Software/Angebote für Support und (Telefon-)Konferenzen unterhalten. Einige genannte Punkte waren:

  • Google Hangout
    • Google+-Account notwendig
  • Teamviewer
  • Citrix
  • Skype
  • Talkyoo
Weitere Themen, die zumindest mal kurz angesprochen wurden, mal im Überblick:

* Text2Speech
    * Festival
* VOIP
    * Asterisk
    * Sipgate
    * Net::SIP
* DOM für dynamische Seiten (JS)
    * in Modul von Max
    * Firebug
    * Webdeveloper
* Drucker
    * Probleme mit HP ColorLaser 1600 unter Ubuntu
    * alter LaserJet 5
* Perl-Projekte
    * 8pussy
* Logauswertung
    * W3Log ???

Published by Renée Bäcker on 2012-01-04T23:34:44

lichtkind's blog: Abschrubben

 

Damit mein ich die Arbeit runterreißen. Ich bin etwas müde weil ich das geplante abarbeitete, daher gibt es wenig Überraschendes zu berichten, zumindest äußerlich. Die Rezension zur Taschenreferenz + "der Perl-Programmierer" sind fertig und erscheinen in ca 2 wochen, der Benchmarkartikel in der Perlzeitung schon letzte Woche, nächste Woche auch der sechste teil (nr. 5) im freiesmagazin. Ja, die wiederkehrenden Pflichten können eine Mühle sein, aber Arbeit macht bekanntlicherweise frei, denn der Müßiggang begünstigt die Fäulnis der Seele und nur Übung macht den Meister.  Die Sprüche hat man oft gehört doch sind sie Teilweise Relikte aus einer zeit als noch Handwerk überall war, alles repariert und ersetzt werden konnte, es weniger Müll gab, die Musik noch selbst gespielt wurde und das Essen eine wesentlich höhere Qualität hatte. Ich saß in der Architekturvorlesung, als der Professor sagte das nach heutigem statischem Wissen einige Kirchen nicht stehen dürften. So viel zum Thema Fortschritt. Der Absatz ist komplett ohne Witzigkeit oder Ironie. Ich vermisse nur Kultur als etwas auf Wissen und Können basierendes, daß als Gut durch Generationen weitergereicht wird. Das ist mehr als nur der Umstand, daß den Dingen vom Fließband Gefühle und das individuelle fehlt. Echtes Können und Beherrschung seines Handwerks, darum wird es für mich wohl auch 2012 gehen.

Was nehm ich mir also vor für 2012. Uuh 2012, die Mayakrieger werden aufwachen und sich einen Kaffe bestellen. Das Leben ist wunderbar und Probleme sind dazu da gelöst zu werden. Wer was anderes behauptet ist Terrorist. Also 2012:

* KephraXP soll benutzbarer Editor werden, zumindest das einfache editieren, einfacher Umgang mit git und hg, editieren von Dateien auf Servern, sich Informationen aller art (snippets, suchbegriffe, regexes,) für mich merkt und all die Handgriffe abnimmt die das Artikelschreiben aufwändiger machen als nötig. mehr dazu in eigenem Post.

* WxPerl: teile 9-12 des Tutorials erscheinen wohl dieses jahr in der foo, womit diese Serie auch abgeschlossen sein wird (soweit ich es jetzt Überblick.) Das Buch dazu will ich wenigstens zur Hälfte schreiben und einige kleinere Programm und Module will ich in der sparte sehen. Mit Dist::Zilla sollte es einfacher als bisher gehen und mit Tie::Wx::Widget hab ich meine erste saubere Distro gemacht.

* App::Gui::Docular das ist eines der wxprogramme aber kann für sehr viel mehr gut sein als nur wx, hat grosses Potential, aber eins nach dem anderen. Mi den graphischen Spielzeugen Spirograph und Harmonograph werd ich anfangen. die stell ich in den Namensraum "App" weil die mit Kommandozeilenparameter auch Ergebnis als Datei absetzen können sollen.

* Perl 6 grant, will ich bis zur YAPC abgeschlossen haben. ein kleines Projekt bei dem ich Perl 6 nutze wäre schön.

* und natürlich einige Artikel, aber vielleicht nicht so viel, dafür mit mehr Vorlauf geschrieben. (Rückblickend würde ich gerne so viel verbessern an den abgelieferten Sachen...) Einiges davon auch ausserhalb der Programmiererei, denn das ich kein Atheist bin ist kein Geheimnis. sagen wir mal ich bin Skeptiker, aber kein jähzorniger, ungebildeter Rüpel wie einige der Jungs von der GWUP. Es gibt noch wichtigere Dinge als Software und meine erste Arbeit dazu kam ganz gut an.

* da ich mich jetzt beinah täglich ans piano setze sollte auch hier einiges mehr gehen in 2012. hab manchmal Ideen zu Melodien und eine Software in Perl mit der man Musik machen kann wäre perfekt. zum abspielen mag ich Traktor gerne, aber Reaktor ist mir zu groß. Vieleicht gibt es doch gutes open-source-Programm.

Published on 2012-01-04T21:19:05

Frankfurt Perlmongers: Monatliches Treffen am 07. Februar 2012

 

Das monatliche Treffen am 07. Februar 2012 findet wieder ab 19:30 Uhr im MoschMosch statt.

Published by Thomas Fahle on 2012-01-04T08:07:12

Perl-Blog (Renee Baecker): Mein Perl-Jahr 2011

 

Wie in den vergangenen Jahren, möchte ich auch in diesem Jahr wieder einen kleinen Rückblick auf mein Perl-Jahr geben. Eins schon vorneweg: Es ist viel passiert und ganz toll verlaufen, aber von vorne...

Januar:

  • Die Smart-Websolutions GbR wurde aufgelöst und ich mache alleine unter Perl-Services.de weiter. Das bringt auch besser zum Ausdruck, was ich mache: Alles rund um Perl ;-)
  • Ich starte planet.perl-magazin.de, ein Aggregator für deutschsprachige Perl-Blogs. Wer noch solche Blogs kennt, meldet sie mir bitte.
  • Ein großes Projekt steht an: OTRS-Einführung und -Anpassungen für ein Bankennahes Unternehmen.
  • Meine Zeit bei der OTRS AG endet.

Februar:

März:
  • Ich habe wieder Zeit für einen Vortrag auf der CeBIT bekommen. Ich nutze das, um das Repository für OTRS-Erweiterungen (OPAR) vorzustellen.
  • Für einen eigenen Perl-Stand bei den Chemnitzer LinuxTage war es zu spät, aber wir waren mit am Stand der OTRS-Community. Außerdem habe ich einen Vortrag über Perl::Critic gehalten.

April:
  • Ich bin wieder bei etecture aktiv. Es ist schön, wenn man immer wieder vertraute Gesichter sieht.

Mai:
  • Die 18. Ausgabe von $foo erscheint

Juni:
  • Ich fahre zum 2. OTRS-Usertreffen in Dormagen und halte einen Vortrag über OPAR

August:
  • Die 19. Ausgabe von $foo erscheint
  • Es wird ein Spendentopf für Perl 5 eingerichtet. Ich finde das eine super Sache und gebe den Gewinn vom Perl-Magazin der Perl Foundation. Vielen Dank an die Leser!
  • Ich bin bei der YAPC::EU 2011 in Riga - mal wieder ein haufen netter Leuter und interessanter Vorträge. Wir haben uns um die Ausrichtung der nächsten YAPC beworben - und gewonnen. Die Frankfurt Perlmongers freuen sich schon auf möglichst viele Besucher im nächsten Jahr!
  • Direkt aus Riga geht es weiter nach St. Augustin zur FrOSCon - Dort gibt es wieder einen Perl-Stand und einen Developer Room. Für das nächste Jahr planen wir, das etwas anders aufzuziehen.

September:

Oktober:

November:
  • Die 20. Ausgabe von $foo erscheint
  • Ich bin zum ersten Mal auf der OpenRheinRuhr. Ich bin nicht nur einfach ein Sponsor, nein, wir haben die $foobar gesponsort. Wir haben dort auch wieder einen Perl-Stand.
  • Die Frankfurt Perlmongers gründen einen Verein. Wir machen schon relativ viel in Sachen Perl (Ausrichten von Perl-Veranstaltungen, Teilnahme an anderen Veranstaltungen, Perl-Stände an Veranstaltungen, etc.) und nächstes Jahr richten wir die YAPC::Europe aus. Eine gute Gelegenheit, einen Verein zu gründen, um alles auf eine solidere Basis zu stellen.
  • Der dritte Mitarbeiter bei Perl-Services.de fängt an.

Dezember:
  • Noch 7 Projekte bis zum Jahresende... Viel zu tun!

Ich hatte extrem viel zu tun über das Jahr, nicht nur ältere Projekte übernehmen und pflegen, sondern auch einige komplett neue Projekte in Perl realisiert. Einige der Kunden sind auch OpenSource-freundlich und werden sehr wahrscheinlich einiges auf CPAN bzw. OPAR einstellen.

So darf es weitergehen!

Ausblick auf 2012:
Natürlich habe ich schon wieder einiges für das nächste Jahr geplant. Deswegen hier ein Ausblick in Kurzfassung: Teilnahme an mehreren Veranstaltungen wie Dt. Perl-Workshop in Erlangen, FrOSCon in St. Augustin und viele mehr... Start eines englischsprachigen Perl-Magazins, Weiterführung "$foo", Start eines OTRS-Magazins, Organisation YAPC::Europe 2012 in Frankfurt. Viele Perl-Projekte, Durchführen eines OTRS-Workshops direkt nach dem Perl-Workshop in Erlangen,...

Published by ReneeB on 2011-12-23T22:23:00

Frankfurt Perlmongers: Monatliches Treffen am 03. Januar 2012

 

Das monatliche Treffen am 03. Januar 2012 findet wieder ab 19:30 Uhr im MoschMosch statt.

Published by Thomas Fahle on 2011-12-12T15:48:37

Perl HowTo: Perl Advent(ures) 2011

Perl HowTo: Perl in the Cloud - OpenShift Express by Red Hat - Installation, Initialisierung und Konfiguration

 

OpenShift by Red Hat soll die Entwicklung von Open-Source-Anwendungen für die Cloud vereinfachen. Dieser Plattform-as-a-Service stellt eine Infrastruktur für verschiedene Programmiersprachen und Web-Frameworks zur Verfügung.

Red Hat unterscheidet zwischen den Produktvarianten Express, Flex und Power.

Die kostenlose Express Variante (Registrierung erforderlich) erlaubt u.a. die Verwendung der dynamischen Programmiersprache Perl in Version 5.10.1, der Datenbanken MySQL in Version 5.1 oder SQLite in Version 3 und (ganz wichtig) die Installation von CPAN-Modulen.

Die bekannten und beliebten Perl Web-Frameworks Dancer, Mojolicious und Catalyst können verwendet werden.

 

Schritt für Schritt

Dieser Beitrag geht zuerst Schritt für Schritt durch die Installation, Initialisierung und Konfiguration von OpenShift Express. Danach wird ein betont einfaches, aber nützliches Perl-Programm erstellt und gezeigt, wie dieses in die Cloud ausgeliefert (deployed) wird.

 

Registrierung

Zur Verwendung von OpenShift Express ist eine Registrierung mit einer gültigen E-Mail-Adresse erfoderlich. Alternativ kann auch ein bestehender RHN-Account verwendet werden.

 

Installation der Client-Tools

OpenShift funktioniert unter Mac OSX, Linux und Windows - für diesen Beitrag verwende ich CentOS 6 (64-Bit in einer eigenen virtuellen Maschine).

Für die Client-Tools bietet RedHat eine eigenes YUM-Repository an, das wie folgt installiert wird.

# wget https://openshift.redhat.com/app/repo/openshift.repo
# mv openshift.repo /etc/yum.repos.d

Damit alle Paket-Abhänigkeiten aufgelöst werden, musste ich auch die EPEL- und RPMForge-Repositories hinzufügen.

Nun können die Client-Tools installiert werden:

# yum install rhc

 

Initialisierung

Alle Apps eines Users werden in einen eigenen Namensraum (Domain) installiert. Apps sind dann nach dem Schema http://$app-$domain.rhcloud.com öffentlich erreichbar. Dazu gleich mehr.

Das Kommando rhc-create-domain erzeugt einen neuen Namensraum, die Konfigurationsdatei express.conf und SSH-Schlüssel (libra_id_rsa) zur Git-Authentifizierung.

$ rhc-create-domain -n yourdomain -l user@example.com
Password: <user password>

Generating Openshift Express ssh key to /home/UserName/.ssh/libra_id_rsa
Generating public/private RSA key pair.
Created directory '/home/UserName/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/UserName/.ssh/libra_id_rsa.
Your public key has been saved in /home/UserName/.ssh/libra_id_rsa.pub.
.
.
Contacting https://openshift.redhat.com
Adding rhlogin to /home/UserName/.openshift/express.conf
Creation successful

You may now create an application.  Please make note of your local config file
in /home/UserName/.openshift/express.conf which has been created and populated for
you.

Jetzt noch Git (minimal) konfigurieren

$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com

und dann kann endlich die erste App erstellt werden.

 

Appgerüst erzeugen

Das Kommando rhc-create-app erzeugt das Gerüst der neuen App. Über die Option -a wird der Name der Applikation angegeben. Die Option -t legt den Typ der Applikation, hier perl-5.10, fest. Typen werden in der Dokumentation auch gerne als cartridge bezeichnet.

$ rhc-create-app -a X1 -t perl-5.10 
Password: 

Attempting to create remote application space: X1
Now your new domain name is being propagated worldwide (this might take a minute)...
Pulling new repo down
Warning: Permanently added 'x1-thomasfahle.rhcloud.com,184.73.107.7' (RSA) to the list of known hosts.
Confirming application 'X1' is available
  Attempt # 1

Success!  Your application 'X1' is now published here:

      http://X1-thomasfahle.rhcloud.com/

The remote repository is located here:

    ssh://ce3eb6cc3b1942a2a61a76db6ff63274@X1-thomasfahle.rhcloud.com/~/git/X1.git/

To make changes to 'X1', commit to X1/.

Successfully created application: X1

Die neu erstellte Applikation mit dem Namen X1 innerhalb des Namensraumes thomasfahle ist sofort unter der URL http://x1-thomasfahle.rhcloud.com/ erreichbar.

Welcome-to-OpenShift-klein.png

Wer lieber seine eigene Domain verwenden möchte und über einen eigenen Nameserver verfügt, kann einen DNS Alias einrichten.

 

Orientierung im Gelände

Die neu erstellte Applikation befindet sich im Verzeichnis $app, hier X1.

$ tree X1
X1
|-- deplist.txt
|-- libs
|-- misc
|-- perl
|   |-- health_check.pl
|   `-- index.pl
`-- README

Das Verzeichnis perl ist die DocumentRoot der Webapp. Alle hier abgelegten Dateien sind öffentlich. Die Datei index.pl dient als DirectoryIndex.

Die Datei deplist.txt nimmt eine Liste der zu installierenden CPAN-Module auf, pro Zeile ein Modul ohne Versionsnummer.
Beispiel:

Test::Base
YAML
Dancer
Plack::Handler::Apache2

Das Verzeichnis misc ist nicht öffentlich und kann für eigene Zwecke genutzt werden.

Das Verzeichnis libs ist ebenfalls nicht öffentlich und dient als Speicherort für eigene Module.

Sinn und Zweck der Datei health_check.pl ist mir nicht ganz klar geworden.

Weiterhin gibt es noch ein verstecktes Verzeichnis .openshift zur Steuerung des Build-Prozesses. Dazu später mehr.

 

Das erste Programm: Umgebungsvariablen

Einige Konfigurationseinstellungen, z.B. für Datenbanken, sind als Umgebungsvariablen abgelegt.

Daher erstellen wir als erstes einfaches Beispiel keine Hallo-Welt-App, sondern eine nützliche App, welche die Umgebungsvariablen anzeigt.

Das Programm wird unter dem Namen printenv.pl im Ordner perl abgelegt.

#!/usr/bin/perl
use strict;
use warnings;

#  printenv -- demo CGI program which just prints its environment
print "Content-type: text/plain\n\n";

foreach my $key ( sort( keys(%ENV) ) ) {
    my $val = $ENV{$key};
    $val =~ s|\n|\\n|g;
    $val =~ s|"|\\"|g;
    print qq~$key = $val\n~;
}
exit();

Zur Veröffentlichung (Deployment) der App verwendet OpenShift Git. Sobald die Datei hinzugefügt und commited wurde, kann diese per git push in die Cloud ausgeliefert werden.

$ git add printenv.pl
$ git commit -m 'Umgebungsvariablen App'
$ git push

Counting objects: 6, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 594 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Stopping application...
remote: Waiting for stop to finish
remote: Done
remote: Running .openshift/action_hooks/pre_build
remote: strict is up to date. (1.04)
remote: skipping F/FL/FLORA/perl-5.15.4.tar.gz
remote: Running .openshift/action_hooks/build
remote: Running .openshift/action_hooks/deploy
remote: Starting application...
remote: Done
remote: Running .openshift/action_hooks/post_deploy
To ssh://ce3eb6cc3b1942a2a61a76db6ff63274@X1-thomasfahle.rhcloud.com/~/git/X1.git/
   ee74341..e31f2ec  master -> master

Das Programm ist nun unter der URL http://x1-thomasfahle.rhcloud.com/printenv.pl erreichbar.

Hinweis: Alle Daten innerhalb des Git-Repositories werden dabei auf dem OpenShift Express Server zunächst gelöscht und dann neu eingespielt.

Hinweis: Da Umgebungsvariablen auch Benutzernamen und Passwörter enthalten können, sollte dieses Programm nicht auf dem Cloud-Server verbleiben.

Zum Bau und zur Auslieferung der Applikation werden die Programme im Ordner .openschift/action_hooks/ ausgeführt. Um sich die Umgebungsvariablen anzeigen zu lassen, genügt es in die Datei build die Anweisung export einzufügen. Dann werden die Umgebungsvariablen bei jedem push angezeigt.

$ cat .openshift/action_hooks/build 
#!/bin/bash
# This is a simple build script and will be executed on your CI system if 
# available.  Otherwise it will execute while your application is stopped
# before the deploy step.  This script gets executed directly, so it
# could be python, php, ruby, etc.
export

Eigene Umgebungsvariablen können derzeit nicht gesetzt werden.

 

Logfiles

Das Kommando rhc-tail-files ermöglicht den Zugriff auf die Logdateien auf dem Cloud-Server.

$ rhc-tail-files -a X1 
Password: 

Attempting to tail files: X1/logs/*
Use ctl + c to stop

==> X1/logs/error_log-20111122-000000-EST <==
[Tue Nov 22 16:43:18 2011] [notice] Apache/2.2.15 (Unix) mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations

==> X1/logs/access_log-20111122-000000-EST <==
xx.xxx.xxx.IP - - [22/Nov/2011:16:47:04 -0500] "GET /printenv.pl HTTP/1.0" 200 2323 "-" "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.24) Gecko/20111107 Ubuntu/10.04 (lucid) Firefox/3.6.24"

Der Zugriff auf die error_log Dateien erleichert das Debuggen erheblich.

 

Snapshots

Das Kommando rhc-snapshot erstellt einen Snapshot der Applikation und liefert diesen als gezippte tar Datei zurü:

$ rhc-snapshot  -a X1 
Password: 

Pulling down a snapshot to X1.tar.gz

Stopping application...
Waiting for stop to finish
Done
Creating and sending tar.gz
Starting application...
Done

Wenn man die Datei X1.tar.gz auspackt, sieht man alle Verzeichnisse und Dateien der Applikation.

$ tar -xzvf X1.tar.gz
$ cd app-verzeichnis

$ tree
.
|-- git
|   `-- X1.git
|       |-- branches
|       |-- config
|       |-- description
|       |-- HEAD
|       |-- hooks
|       |   |-- applypatch-msg.sample
|       |   |-- commit-msg.sample
|       |   |-- post-commit.sample
|       |   |-- post-receive
|       |   |-- post-receive.sample
|       |   |-- post-update.sample
|       |   |-- pre-applypatch.sample
|       |   |-- pre-commit.sample
|       |   |-- prepare-commit-msg.sample
|       |   |-- pre-rebase.sample
|       |   |-- pre-receive
|       |   `-- update.sample
|       |-- info
|       |   |-- exclude
|       |   `-- refs
|       |-- objects
|       |   |-- 0a
|       |   |   `-- bed1546ab3d6aee5b42c68f57100f52949b4bf
|       |   |-- 10
|       |   |   `-- cd54466b8f66bb40d6c50ab5519bf7727e51dd
|       |   |-- 1d
|       |   |   `-- b60ffa4e6b41be6ed92a6a2b3343c70b301fb6
|       |   |-- 2f
|       |   |   `-- a0243ca6abb34233618e9ea809871be855a225
|       |   |-- 40
|       |   |   |-- 0b36608e5e4405636bf7394c546ec18de53252
|       |   |   `-- c24d558d8a1196d4170f56182b8f69fbe6741f
|       |   |-- 5e
|       |   |   `-- 1c48b299eb8c1fd204b69e520236d3a2a3217e
|       |   |-- 6a
|       |   |   `-- e37b40a1cd342e2661bdf06b65fc4731e1af1e
|       |   |-- 9b
|       |   |   `-- 594ba566f5036940fd00dfeca9cd38e51579a8
|       |   |-- a5
|       |   |   `-- 7d1f5806d714a998130b9517a4240de0c39fe3
|       |   |-- b5
|       |   |   `-- 3bde9fe6346b3d54d39b9d970308cc25080cbe
|       |   |-- c0
|       |   |   `-- df17bb0b3dbdb4da6c06ad6fe4e070e3061485
|       |   |-- c1
|       |   |   `-- d6344439cdc822df02c54bb39aabb5ccd4a7de
|       |   |-- d5
|       |   |   `-- 64d0bc3dd917926892c55e3706cc116d5b165e
|       |   |-- df
|       |   |   `-- 8d841a9e8c1afd175e0061bb7b762d708b0c58
|       |   |-- e3
|       |   |   `-- 1f2ec741b91b2d4ddc9500991cc660a8cf037d
|       |   |-- e6
|       |   |   `-- 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
|       |   |-- ed
|       |   |   `-- 5eb993715da4af89ce517eedb2c3879994e10e
|       |   |-- ee
|       |   |   `-- 74341ac408153e9bfe02fe55669533ccdfdbba
|       |   |-- f1
|       |   |   `-- 25e7fa5f3603669e173695b284d170ddd7b62f
|       |   |-- info
|       |   |   `-- packs
|       |   `-- pack
|       |       |-- pack-e8aca9b5d216bb7c5a7ac884d5cdcb6c0a9faabe.idx
|       |       `-- pack-e8aca9b5d216bb7c5a7ac884d5cdcb6c0a9faabe.pack
|       |-- packed-refs
|       `-- refs
|           |-- heads
|           |   `-- master
|           `-- tags
`-- X1
    |-- ci
    |-- conf
    |   `-- magic -> /etc/httpd/conf/magic
    |-- conf.d
    |-- data
    |-- logs
    |   |-- access_log-20111122-000000-EST
    |   |-- access_log-20111123-000000-EST
    |   |-- error_log-20111122-000000-EST
    |   `-- error_log-20111123-000000-EST
    |-- modules -> /usr/lib64/httpd/modules
    |-- perl5lib
    |-- repo -> runtime/repo
    |-- run
    |-- runtime
    |   `-- repo
    |       |-- deplist.txt
    |       |-- libs
    |       |-- misc
    |       |-- perl
    |       |   |-- health_check.pl
    |       |   |-- index.pl
    |       |   `-- printenv.pl
    |       `-- README
    `-- tmp

45 directories, 53 files

 

Persistent Storage

Wie oben bereits erwähnt, werden bei der Auslieferung (git push) alle Dateien, die sich innerhalb des Git-Repositories befinden, auf dem Cloud-Server gelöscht und neu eingespielt.

Persistente Daten, z.B. SQLite Dateien, müssen daher ausserhalb des Git-Repositories auf dem Server aufbewahrt werden. Dazu stellt OpenShift Express den Ordner data zur Verfügung.

Der Pfad zum Ordner data kann aus der Umgebungsvariablen OPENSHIFT_DATA_DIR ermittelt werden.

#!/usr/bin/perl
use strict;
use warnings;

print "Content-type: text/plain\n\n";

my $data_dir = $ENV{OPENSHIFT_DATA_DIR};
my $file = 'test.txt';

open (OUT, ">" , "$data_dir/$file" ) or die $!;

for ( 1 .. 10 ) {
        print OUT "$_\n";
}
close(OUT) or die $!;
exit();

Die im Ordner data gespeicherten Daten lassen sich per rhc-snapshot vom Cloud-Server holen.

$ tree
.
|-- ci
|-- conf
|   `-- magic -> /etc/httpd/conf/magic
|-- conf.d
|-- data
|   `-- test.txt
|-- logs
|   |-- access_log-20111122-000000-EST
|   |-- access_log-20111123-000000-EST
|   |-- error_log-20111122-000000-EST
|   `-- error_log-20111123-000000-EST
|-- modules -> /usr/lib64/httpd/modules
|-- perl5lib
|-- repo -> runtime/repo
|-- run
|-- runtime
|   `-- repo
|       |-- deplist.txt
|       |-- libs
|       |-- misc
|       |-- perl
|       |   |-- health_check.pl
|       |   |-- index.pl
|       |   |-- printenv.pl
|       |   |-- read.pl
|       |   `-- write.pl
|       `-- README
`-- tmp

 

Siehe auch

Published by Thomas Fahle on 2011-11-24T11:22:45

Perl HowTo: WWW::Google::PageRank - Google Pagerank für Websites abfragen

 

WWW::Google::PageRank von Yuri Karaban ermittelt den Google Pagerank für Websites.

 

Pagerank ermitteln: get()

Die Methode get() liefert im skalaren Kontext den Pagerank, im Listenkontext den Pagerank und zusätzlich ein HTTP::Response Objekt zum Debuggen zurück.

 

Beispiel: get() im skalaren Kontext

#!/usr/bin/perl
use strict;
use warnings;

use WWW::Google::PageRank;

my $pr = WWW::Google::PageRank->new( host => 'toolbarqueries.google.de' );

my @urls = qw!
  http://perl-howto.de
  http://yahoo.de
  http://web.de
  !;

foreach my $url (@urls) {
    print "URL: $url ", scalar( $pr->get($url) ), "\n";
}

Das Programm liefert folgende Ausgabe:

URL: http://perl-howto.de 4
URL: http://yahoo.de 8
URL: http://web.de 7

 

Beispiel: get() im Listenkontext

#!/usr/bin/perl
use strict;
use warnings;

use WWW::Google::PageRank;

my $pr = WWW::Google::PageRank->new( host => 'toolbarqueries.google.de' )
  or die $!;

my @urls = qw!
  http://perl-howto.de
  http://yahoo.de
  http://web.de
  http://example.tld
  !;

# Debug
foreach my $url (@urls) {
    print "URL: $url ";

    my ( $pagerank, $response ) = $pr->get($url);

    if ( defined $pagerank ) {
        print "PageRank: $pagerank\n";
    }
    else {
        print "Fehler: ", $response->status_line, "\n";
        warn $response->as_string, "\n";
    }
}

Das Programm liefert folgende Ausgabe (die lange XML-Ausgabe des as_string() habe ich weggelassen):

URL: http://perl-howto.de PageRank: 4
URL: http://yahoo.de PageRank: 8
URL: http://web.de PageRank: 7
URL: http://example.tld Fehler: 403 Forbidden

 

Siehe auch:

Published by Thomas Fahle on 2011-11-21T17:17:53

lichtkind's blog: Neue 5.14.1 Taschenreferenz

 

Auch wenns nach Nabelschau klingt, ich bin stolz auch nur Testleser der Pocketref gewesen zu sein. Dabei gehts nicht um den Aufwand. Links pflege ich auch sonst. Und auch sonst waren es nur wenige Stunden perldoc lesen, was ich eh für das Tutorial, das ich gerade schreibe, tun musste. Die Coremodule sind leider rausgefallen und neues Material kam sehr sparsam (mehr Details in der nächsten $foo).

Auf meinem ersten Perl Workshop 2005 in Dresden gewann ich in der Tombola die dritte (5.6 er) Version (die einzige mit der lustigen Einleitung von Larry). Und ich lernte damit quasi die Tiefen der Sprache. Johan war es auch der meinen CPAN - Account freischaltete (Synchronizität ?). Das einige meiner Vorschläge jetzt im Buch sind, seh ich als Schulterklopfen der alten Bärte. Und ich sehe mich nicht mehr als den Anfänger :). Und wenn euch was juckt, macht mit. In der Perlgemeinschaft mitmachen ist manchmal einfacher als man meint.

Published on 2011-11-19T00:04:18

Perl HowTo: FLOSS-Weekly Episode 189: Interview mit Jeffrey Thalhammer - Perl::Critic

 

Perl::Critic ist ein statischer Source Code Analyzer für Perl, der die Einhaltung der Perl Best Practices - Standards and Styles for Developing Maintainable Code, prüft.

Twit.tv hat ein Interview mit Jeffrey Thalhammer, dem Erfinder von Perl::Critic veröffentlicht.

Das Interview führt Randal Schwartz zusammen mit Aaron Newcomb.

In dem sehenswerten Video gehen die drei auf die Hintergründe und die Geschichte von Perl::Critic ein, zeigen Beispiele für die Verwendung und finden mit Perl::Critic gleich ein paar Bugs.

 

Enjoy!

 

Perl::Critic ausprobieren

Wer Perl::Critic einfach mal ausprobieren möchte, kann eine Datei mit Perl Source Code auf der Website http://www.perlcritic.org/ (Some Ways Are Better Than Others) hochladen und prüfen lassen.

 

Siehe auch:

 

Via:

Perl-News: FLOSS-Weekly: Interview mit Jeffrey Thalhammer - Perl::Critic

Published by Thomas Fahle on 2011-11-14T21:00:00

lichtkind's blog: Twin City Perl Workshop in Wien / Bratislava

 

... war ein kleiner aber schöner. Das meiste dazu schrieb ich bereits. und dank wombats und der 29,- Spezialpreise der Bahn nicht mal teuer. die wiener sind wirklich ganz eigner haufen. das merkte man nicht nur zur YAPC 2007 die sehr gut gewesen sein soll. Bei diese Treffen gehts ja eh meist darum mal Leute zu treffen die in manchem einen besser verstehen können als alles was einem sonst das Jahr über begegnet.

Published on 2011-11-07T23:31:05

lichtkind's blog: freiesMagazin mit Perl-Tutorial Teil 3

 

Nach letztmonatlicher Pause gibt es wieder eine Folge des zeitgemäßen und praktischen Perltutorials "Wirklich Programmieren Lernen mit Perl" in der aktellen Ausgabe vom "freiesMagazin". Dominik hat heroisch alle Änderungen kurzfristig eingebracht und der Zug rollt wieder. Eigentlich sollte die Folge Hashes, Listen- und Stringmanipulation und nicht Hashes, Schleifen und Subroutinen heißenaber das Beispielprogramm ist jetzt wirklich benutzbar. Bis jetzt werden nur einfache Merklisten und diese auch nur lokal verwaltet, aber das steigert sich ja noch (mitmachen!). Rückmeldungen sind ebenfalls sehr willkommen (War der teil zu kurz, nicht ausführlich genug, etc.).

Es wird immer mehr sichtbar, daß dieses Tutorial Programmieren im allgemeinen beibringen möchte in dem es auch die Gedanken beschreibt die man sich machen sollte, bevor man in die Tasten haut. Auch Softwaretests und Dokumentation (POD) werden noch Thema werden. Doch nächstes Thema wird die Gruppierung der Notizen mithilfe von Referenzen (AoA und HoA - tiefere Datenstrukturen). Module und Namenräume müssen auch bald gezeigt werden. Danach wirds in Richtung Netwerkprogrammierung, danach auch Web gehen.


In der nächsten Perlzeitung könnt es was zum Benchmarken geben, also zum Messen der Zeit die Programmteile wirklich benötigen.


Published on 2011-11-07T01:57:18

Perl HowTo: Carp::Always - warn und die mit stack backtrace

 

Carp::Always - Warns and dies noisily with stack backtraces von Adriano Ferreira erleichtert das Debuggen von Perl-Programmen.

Statt mühselig den Debugger an zu werfen, wird Carp::Always einfach ohne Änderung des Programms auf der Kommandozeile aufgerufen.

$ perl -MCarp::Always programm.pl

 

Beispiel:

Das folgende Beispielprogramm versucht eine nicht existierende Webseite auf zu rufen.

#!/usr/bin/perl
use strict;
use warnings;

use WWW::Mechanize;

my $mech = WWW::Mechanize->new();

my $url = 'http://example.tld';

$mech->get( $url );

Das Programm erzeugt folgende Ausgabe:

Error GETing http://example.tld: Can't connect to example.tld:80 (Bad hostname 'example.tld') at mech.pl line 11

Carp::Always wird auf der Kommandozeile aufgerufen

$ /opt/perl-5.12.3/bin/perl -MCarp::Always mech.pl

und erzeugt folgenden Stack Backtrace (den ich hier ein wenig umgebrochen habe):

Error GETing http://example.tld: Can't connect to example.tld:80 (Bad
hostname) at /opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm
line 2747
	WWW::Mechanize::_die('Error ', 'GET', 'ing ',
	'URI::http=SCALAR(0xa1f2db0)', ': ', 'Can\'t
	connect to example.tld:80 (Bad hostname)') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm line 2734

	WWW::Mechanize::die('WWW::Mechanize=HASH(0xa11cf98)',
	'Error ', 'GET', 'ing ', 'URI::http=SCALAR(0xa1f2db0)', ': ',
	'Can\'t connect to example.tld:80 (Bad hostname)') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm line 2381

	WWW::Mechanize::_update_page('WWW::Mechanize=HASH(0xa11cf98)',
	'HTTP::Request=HASH(0xa211690)', 'HTTP::Response=HASH(0xa15f480)')
	called at /opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm
	line 2213

	WWW::Mechanize::request('WWW::Mechanize=HASH(0xa11cf98)',
	'HTTP::Request=HASH(0xa211690)') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/LWP/UserAgent.pm line 411

	LWP::UserAgent::get('WWW::Mechanize=HASH(0xa11cf98)',
	'http://example.tld') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm line 407

	WWW::Mechanize::get('WWW::Mechanize=HASH(0xa11cf98)',
	'http://example.tld') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm line 2747

	WWW::Mechanize::_die('Error ', 'GET', 'ing ',
	'URI::http=SCALAR(0xa1f2db0)', ': ', 'Can\'t
	connect to example.tld:80 (Bad hostname)') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm line 2734

	WWW::Mechanize::die('WWW::Mechanize=HASH(0xa11cf98)',
	'Error ', 'GET', 'ing ', 'URI::http=SCALAR(0xa1f2db0)', ': ',
	'Can\'t connect to example.tld:80 (Bad hostname)') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm line 2381

	WWW::Mechanize::_update_page('WWW::Mechanize=HASH(0xa11cf98)',
	'HTTP::Request=HASH(0xa211690)', 'HTTP::Response=HASH(0xa15f480)')
	called at /opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm
	line 2213

	WWW::Mechanize::request('WWW::Mechanize=HASH(0xa11cf98)',
	'HTTP::Request=HASH(0xa211690)') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/LWP/UserAgent.pm line 411

	LWP::UserAgent::get('WWW::Mechanize=HASH(0xa11cf98)',
	'http://example.tld') called at
	/opt/perl-5.12.3/lib/site_perl/5.12.3/WWW/Mechanize.pm line 407

	WWW::Mechanize::get('WWW::Mechanize=HASH(0xa11cf98)',
	'http://example.tld') called at mech.pl line 11

Wem Schwarz-Weiß zu langweilig ist, kann die Ausgabe mit Carp::Always::Color aufhübschen.

$ perl -MCarp::Always::Color programm.pl

 

Hinweis:

Da Carp::Always eigene Signalhandler für die() und warn() installiert, funktioniert dieses Modul nicht mit Programmen oder Modulen, die bereits Signalhandler für die() und/oder warn() verwenden.

 

Siehe auch:

Published by Thomas Fahle on 2011-10-25T18:50:00

Perl-Uwe.de: 13. Deutscher Perlworkshop: Tag 3

 

Am letzten Tag standen folgende Vorträge auf dem Programm:
Perl in der Wolke (Denis Banovic)
Denis zeigte Stackato (welches auf VMware CloudFoundry basiert) am Beispiel einer Dancer-Anwendung.Link
Captive::Portal - eine hochskalierende Hotspotlösung (Karl Gaissmaier)
Interessanter Vortrag über "WLAN-Anmeldeseiten".

Tanz! (Stefan "racke" Hornburg)
Eine Einführung in Dancer (ein Webframework). Typisch sind die vielen exportierten Funktionen - man muß es halt mögen... Folien

Nach der Mittagspause standen auf dem Programm:
Perl vs. JavaScript - eine Differentialdiagnose (Rolf "LanX" Langsdorf)
Rolf möchte Perl 5 nach JavaScript konvertieren. Im Vortrag ging er auf die Unterschiede (und Gemeinsamkeiten) der beiden Sprachen ein.

Deutsch oder Englisch? Über die Sprache in Perl-Modulen (Richard "Horshack" Lippmann)
Ein sehr amüsanter Vortrag über das Dilemma verschiedensprachlicher Programmierer.

Bessere Dokumentation schreiben (Herbert "lichtkind" Breunung)
"Programmieren ist wie ein Sturz die Treppe runter..."

Qualitätsmanagement bei GeNUA (Steffen Ullrich)

  • kaum Unittests, vermehrt Livetests
  • Styleguide an Perl Best Practices orientiert
  • 1,4 Mio. Zeilen Perl-Code

Hg vs. Git (Herbert "lichtkind" Breunung)
Eine Einführung in Versionskontrolle und ein Vergleich von Mercurial und Git.

Perl für Vortragende (Renee Bäcker)
Renee verrät Damian Conway's Tricks für Live Demos.

Damit enden drei schöne Tage. Vielen Dank an die Organisatoren. Eine gute Generalprobe für die YAPC::EU 2012.

Published by Uwe on 2011-10-21T15:33:00

Perl-Uwe.de: 13. Deutscher Perlworkshop: Tag 2

 

Heute standen folgende Vorträge auf dem Programm:
Perlude, HOP made easy (Marc "eiro" Chantreux)
Ein (englischer) Vortrag über Haskell's Standardbibliothek Prelude und deren Portierung nach Perl.

Mapweaver (Gerhard Schwanz)
Karten mit OpenStreetMap-Daten erstellen. Für mich interessant, der Verweis auf hikingbook.pl - mit dem man Wanderkarten erstellen kann.

Perl Dancer (Denis "bano" Banovic)
Kurze Vorstellung des PSGI web frameworks Dancer.

The Day After - Perl + SSL nach dem SSL Gau (Steffen Ullrich)
Steffen, wie gewohnt, mit einem sehr fundierten Vortrag über die kürzlichen Probleme mit HTTPS-Zertifikaten (und mögliche Auswege).

Nach der Mittagspausen folgten:
Visualiserung von Softwarequalität (Heiner Kuhlmann)
Ein Vortrag über Softwaremetriken. Außerdem wurde ein Programm zur Visualisierung der Metriken vorgestellt (mittels Tree Map).

Neue Sprachen - neue Ideen?
(Herbert "lichtkind" Breunung)
Ein chaotischer Vortrag über Aktoren und DSLs (entnommen aus dem Buch "Sieben Sprachen in sieben Wochen").

Perl 5 mit Makros erweitern
(Rolf "LanX" Langsdorf)
Im 2. Teil seines Vortrages zeigte Rolf wie man funktionale Erweiterungen in Perl 5 mit B::Deparse realisiert.

Verschlüsselung im Web für alle (Lars Dieckow)
Aufbauend auf Steffen Ullrich's SSL-Vortrag zeigte Lars praktische Verschlüsselung im Web.

Lightning Talks
Unter anderem über DuckDuckGo und Perl bei SAP.

Published by Uwe on 2011-10-20T15:39:00

Perl-Uwe.de: 13. Deutscher Perlworkshop: Tag 1

 

Der 13. Deutsche Perlworkshop findet vLinkon Mittwoch, 19.10. bis Freitag, 21.10.2011 in Frankfurt (im Haus der Jugend) statt.

Am Vormittag stand mit Software-Architekturen und Refactoring (Heiner Kuhlmann) ein zweistündiger Vortrag/Workshop auf dem Programm. Leider erfüllte der Vortrag nicht meine Erwartungen; vieles war allgemein gehalten und nicht wirklich Perl-spezifisch.

Nach der Mittagspause standen auf dem Programm:

Role::Basic - Rollen für Perl (Renee Bäcker)
Interessanter Vortrag über Role::Basic, einer Alternative zu Moose-Rollen. Besser als bei Moose: Role::Basic kann bei Kollisionen warnen oder sterben (steuerbar über Umgebungsvariablen PERL_ROLE_OVERRIDE_WARN bzw. _DIE).

Perl 5 rein funktional erweitern
(Rolf "LanX" Langsdorf)
Rolf startete mit zwei Fragen: Wer hat meinen Vortrag ("Extending Perl with functional macros") auf der YAPC schon gehört? Und wer hat ihn verstanden?
Also teilte er ihn in zwei Vorträge auf, um ihn verständlicher zu machen. Im 1. Teil ging es um "List Comprehension" mittels Prototypen.

Datenstrukturen mit Perl 6 (Herbert "lichtkind" Breunung)
Herbert zeigte uns die Unterschiede von Datenstrukturen (Skalare, Arrays, Hashes) in Perl 5 und Perl 6. Gefallen hat mir das kleine Quizz "Wieviele Elemente?"

Sanitizing HTML with Perl 5 (Uwe Völker)
Mein Vortrag über den WYSIWYG-Editor von XING, genauer gesagt das HTML-Sanitizer-Backend:

  • https://github.com/xing/html5-sanitizer
  • https://github.com/xing/wysihtml5

Web Scraping mit Perl (Max "Corion" Maischein)
Max demonstrierte sein Vorgehen beim Extrahieren von Informationen aus Webseiten unter der Verwendung von WWW::Mechanize::Firefox::DSL. Interessant: Für jeden dauerhaften Scraper kopiert Max den "portable Firefox" in ein extra Verzeichnis. Aus dem Publikum kam der Vorschlag, Profile zu verwenden. Fuer "head-less" Umgebungen wurde xfvb genannt.

Am Abend trafen wir uns alle beim Social Event in der Sandelmühle.

Published by Uwe on 2011-10-19T18:00:00

Perl im O'Reilly-Blog: Vorgestellt: Die Frankfurt Perl Mongers

 

Usergroups bieten den direkten, persönlichen Austausch über Techie-Themen, oftmals in netter abendlicher Runde bei Vereinen, Firmen oder auch in Kneipen. Hier können Informatiker Gleichgesinnte treffen, sich bei Vorträgen weiterbilden oder sich über den Arbeitsalltag austauschen. Nicht zuletzt sind bereits einige Aufträge oder Stellen über Usergroup-Kontakte vergeben worden. O’Reilly unterstützt die Usergroups bereits seit vielen Jahren, [...]

Published by Corina Pahrmann on 2011-10-13T13:20:30

Perl-Uwe.de: Hamburg Perlmongers April-Treffen

 

Wie jeden ersten Montag im Monat trafen sich die Hamburger Perlmongers am 4.4. (Die Treffen beginnen immer 19 Uhr.)

Diesmal war Stefan Hornburg von Hannover.pm zu Gast. Er hat sein Template-System Template::Flute, welches auf der Idee von HTML::Zoom basiert, vorgestellt.

Link: Vortragsfolien (PDF)

Beim anschließenden Kneipengespräch waren seine Ausführungen zu Interchange interessant, einer E-Commerce-Lösung in Perl.

Über das Mai-Treffen werde ich nicht berichten, weil ich im Urlaub bin. Am 6. Juni steht mein Vortrag "Sanitizing HTML 5 with Perl 5" an, den ich auch Ende Juni auf der YAPC::NA halten werde.

An dieser Stelle ein Dankeschön an meinen Arbeitgeber XING, der mir den Konferenzbesuch ermöglicht (sprich: bezahlt). Und ebenfalls der Hinweis, daß XING Perl-Programmierer sucht (und Ruby/Rails, Frontend, Tester und ...) Für Fragen stehe ich gern zur Verfügung.

Published by Uwe on 2011-04-15T08:03:00

Perl im O'Reilly-Blog: Gut informiert in den Tag mit Perl

 

Ein O’Reilly-Post am Morgen lässt den Tag gut beginnen. Deshalb zeige ich hier eine kleine Perl-Anwendung für Windows, mit der ich den Titel und einen kleinen Auszug des aktuellsten Posts hier im oreillyblog angezeigt bekomme. Die Anwendung besteht im Prinzip aus drei Teilen: 1. Der Teil für den Taskschedulereintrag 2. Der Teil, der den RSS-Feed [...]

Published by Nathalie Pelz on 2010-10-06T12:49:09

Perl-Blog (Alvar Freude): Asynchrone Datenbankzugriffe im Hintergrund mit PostgreSQL und DBD::Pg

 

Mit PostgreSQL und DBI sowie DBD::Pg ist es möglich, SQL-Queries im Hintergrund asynchron laufen zu lassen – und währenddessen in Perl weitere Berechnungen anzustellen, anstatt nur auf die Daten zu warten. Insbesondere bei Multi-Core-CPUs oder einer Trennung von Datenbankserver und Anwendung ist dies eine sehr praktische Sache.

Und einfach ist es obendrein!

Bei dem jeweiligen Aufruf von $dbh->do, $dbh->prepare oder $dbh->prepare_cached muss nur das Attribut PG_ASYNC hinzugefügt werden. Besonders praktisch ist das bei INSERT und UPDATE Queries, wenn also keine Rückgabewerte ausgewertet werden müssen, da kann man im neuen Query einfach noch auf den Rest des alten warten:

use DBD::Pg qw(:async);    # Async-Konstanten einbinden

# ... und später Query vorbereiten:

my $sth = $self->dbh->prepare( "INSERT INTO table ...", 
          { pg_async => PG_ASYNC + PG_OLDQUERY_WAIT } );

# ... und dann zum Beispiel in einer Schleife aufrufen
while ( my @parameter = calculate_next_insert() )
    {
    $sth->execute( @parameter );
    }

# ...

Wenn man also zwischen mehreren INSERT-Statements noch Eingabedaten berechnen muss, kann dies Zeit sparen. Vor weiteren Queries oder dem Commit sollte man dann noch mit $dbh->pg_result() auf das Ergebnis des letzten asynchronen Queries warten.

Mehr Beispiele und die Darstellung aller Features gibt es in der DBD::Pg Dokumentation.

 

Published by Alvar Freude on 2010-08-12T21:23:23

Perl im O'Reilly-Blog: 12. Deutscher Perl-Workshop in Schorndorf (bei Stuttgart) vom 07.-09. Juni 2010

 

Der Deutsche Perl-Workshop vom 07.-09. Juni 2010 ist die jährliche Konferenz meist deutschsprachiger Anwender und Entwickler der Programmiersprache Perl. Veranstaltungsort ist wieder die Barbara-Künkelin-Halle in Schorndorf. Der Schwerpunkt des von der Deutscher Perl-Workshop GbR und der Wirtschaftsförderung Region Stuttgart GmbH veranstalteten Workshops ist „Modern Perl“. Dabei spielen zum Beispiel die Module Catalyst, Moose und DBIx::Class [...]

Published by Tina Koch on 2010-06-04T06:34:02

Perl-Programmieren.de: Blogs auf perl.org

 

Seit einigen Wochen gibt es auf perl.org auch eine Blog-Plattform für Perl-Entwickler: blogs.perl.org wird von Dave Cross and Aaron Crane betrieben und arbeitet auf Basis von Movable Type, einer ausgereiften, in Perl geschriebenen Weblog-Software.

Weiterlesen

Published by jochen on 2010-03-16T08:18:09

Perl-Programmieren.de: Neuer Perl-Meisterkurs im April

 

Im April startet Freistil-Consulting einen neuen Perl-Meisterkurs. Das 10-wöchige Online-Seminar wendet sich insbesondere an Einsteiger in die Programmiersprache.

Im Perl-Meisterkurs lernen Sie jeden wichtigen Aspekt der Perl-Programmierung kennen, begleitet von einem erfahren Perl-Entwickler und -Trainer. Die Lerninhalte sind umfangreich, aber in handhabbare Abschnitte aufgeteilt.

Weiterlesen

Published by webmaster on 2010-03-02T15:33:36

Perl-Blog (Alvar Freude): Call for Papers: 12. Deutscher Perl-Workshop 2010: „Modern Perl“

 

Vom 7. bis 9. Juni 2010 findet der 12. Deutsche Perl-Workshop in Schorndorf bei Stuttgart statt. Zielgruppe des Workshops sind alle Perl-Anwender und die, die es werden wollen.

Der Workshop steht und fällt mit den Vorträgen, die 5, 20 oder 40 Minuten lang sein können. 

Alle Themen, die mit Perl oder dem Perl-Umfeld, insbesondere dem Thema „Modern Perl“, zu tun haben, können als Vorträge für den Workshop interessant sein. Die Einreichungsfrist für Vorschläge wurde auf Freitag, den 05. März 2010 verlängert. 

  http://conferences.yapceurope.org/gpw2010

Der Deutsche Perl-Workshop ist die jährliche Konferenz meist deutschsprachiger Anwender und Entwickler der dynamischen Open-Source-Programmiersprache Perl. Der Schwerpunkt des von der Deutscher Perl-Workshop GbR und der Wirtschaftsförderung Region Stuttgart (WRS) verstaltelten Workshops ist „Modern Perl“. Dabei spielen zum Beispiel die Module Catalyst, Moose und DBIx::Class eine wichtige Rolle. Catalyst als sehr flexibles Webframework, Moose mit einer postmodernen Objektorientierung für Perl und DBIx::Class als Schicht zwischen Anwendung und Datenbanken.

Published by Alvar Freude on 2010-02-17T20:42:23

Perl im O'Reilly-Blog: Spielen mit Perl – irgendwie…

 

In diesem Beitrag unserer kleinen Perl-Reihe zeigt Renée Bäcker, wie Spielen noch mehr Spaß machen kann: Wenn man es nämlich automatisiert und so nebenbei noch die Automatisierungsmöglichkeiten von Perl erproben kann. Dann mal auf die Plätze, fertig, los: Nein, heute geht es nicht darum, Spiele mit Perl zu programmieren – darum kümmern sich andere. Ich [...]

Published by Ariane Hesse on 2009-12-10T12:29:52

Perl-Blog (Alvar Freude): Patch: Proxy für das MT-Twitter-Plugin „HashTag“

 

So wie schon das Akismet-Plugin hat auch das Twitter-Plugin HashTag für Movable Type ein Proxy-Problem und ignoriert die MT-Systemeinstellung für Proxies. Auf diesem hier Server hat das Jail (das ist quasi eine virtuelle Maschine) aus Sicherheitsgründen nicht wirklich Internet-Zugriff, daher kommen auch keine Tweets nach draußen.

Also muss mal wieder ein Patch her, dann klappts auch mit dem Proxy; der Patch muss auf plugins/HashTag/lib/HashTag/Plugin.pm angewendet werden und passt zur aktuellen Beta-Version 2.5:

--- original_Plugin.nopm.pm	2009-07-17 23:45:12.000000000 +0200
+++ Plugin.pm	2009-11-27 19:38:58.000000000 +0100
@@ -137,6 +137,10 @@
     require LWP::UserAgent;
 
     my $ua = LWP::UserAgent->new;
+    # set HTTP Proxy when set in config file (AF)
+    if (my $proxy = MT::ConfigMgr->instance->HTTPProxy) {
+        $ua->proxy('http', $proxy);
+    }
 
     $ua->credentials('twitter.com:80','Twitter API',$cfg->{tw_username} => $cfg->{tw_password},);
Mit dem Patch  ließt das Plugin aus der passenden Konfigurations-Direktive HTTPProxyin mt-config.cgi die Angaben für den Proxy und setzt diese.

Published by Alvar Freude on 2009-11-27T18:44:56

Perl-Programmieren.de: Perl.org in neuem Gewand

 

Vor kurzem wurde Perl.org, die Anlaufstelle für Perl-Entwickler aller Welt, einem Relaunch unterzogen und erstrahlt seither in einem neuen, modernen Layout.

Natürlich zählt der Inhalt mehr, aber für den Nutzungskomfort und die Außenwirkung des Portals ist das neue Layout auf jeden Fall ein wichtiger Schritt nach vorn.

Published by jochen on 2009-11-15T16:38:28

Perl im O'Reilly-Blog: Visionäre der Programmierung – Die Geschichten hinter den Programmiersprachen

 

Tagtäglich gehen wir selbstverständlich mit Sprache um, im Supermarkt, im Bus, im Büro. Auch am Computer verlassen wir uns auf Sprache. Denn ohne Programmiersprachen wäre eine technologisierte Welt, wie wir sie heute kennen, nicht möglich. Sogenannte konstruierte Sprachen gibt es viele, wohl die berühmteste ist Klingonisch. 1984 im Auftrag von Paramount vom Linguisten Marc Okrand [...]

Published by Nathalie Pelz on 2009-10-28T07:35:30

Perl-Blog (Alvar Freude): Perl 5.10.1 ist da

 

Die Version 10.1 von Perl 5 ist da!

Eine Weile hat es gedauert, aber nun ist Perl 5.10.1 da, wie Renée berichtet

Sehr interessant scheint mir die dtrace Unterstützung, da gibt es sicherlich einiges zu experimentieren. Einige Änderungen am Smart-Match sind nicht rückwärtskompatibel, ungewöhnlich für eine kleine Versionsänderung. Außerdem gibt es einige Performance-Optimierungen, Bugfixes sowie die üblichen Aktualisierungen der mitgelieferten Module. Siehe auch: alle Änderungen.

Ach, und wenn ich schon dabei bin: Perl 6 kommt im nächsten Frühjahr. Perl 6 ist nicht der Nachfolger von Perl 5.10 (das wird Perl 5.12), sondern eine neue Sprache, erscheint im Frühjahr 2010

Published by Alvar Freude on 2009-08-23T17:03:06

Perl-Programmieren.de: Perl-Meisterkurs 2009

 

Am 5. Oktober 2009 startet Freistil-Consulting einen weiteren Perl-Meisterkurs. Das 10-wöchige Online-Seminar wendet sich insbesondere an Einsteiger in die Programmiersprache.

Im Perl-Meisterkurs lernen Sie jeden wichtigen Aspekt der Perl-Programmierung kennen, begleitet von einem erfahren Perl-Entwickler und -Trainer. Die Lerninhalte sind umfangreich, aber in handhabbare Abschnitte aufgeteilt.

Weiterlesen

Published by webmaster on 2009-07-26T18:04:59

Perl-Programmieren.de: Der Leyenfilter

 

...oder hieß das Laienfilter? Hab jetzt keine Zeit, nachzuschauen. Hier einfach der Link zu der neuen Software, die das Internet sauberer macht. Sie ist nämlich in Perl geschrieben!

Published by webmaster on 2009-04-26T20:30:08

Perl-Blog (Alvar Freude): Eclipse, Probleme mit use utf8 und Abhilfe

 

Mit use utf8; lässt sich im Perl-Code einschalten, dass alle im Source definierten Strings usw. als UTF-8 interpretiert werden. Dazu muss der Source natürlich auch in UTF-8 sein.

Mit Eclipse bzw. dem EPIC Perl-Plugin und dessen Syntax-Check gibt es da aber zumindest unter OS X und Windows ein Problem, es wird zum Beispiel die folgende Fehlermeldung angezeigt:

   Malformed UTF-8 character (unexpected non-continuation byte 0x7a, 
   immediately after start byte 0xc4) at 210.text-converter.t line 23.

Das liegt daran, dass Eclipse auch korrekt als UTF-8 gespeicherten Source im Standard-Encoding an Perl zum Syntaxcheck weiterreicht: das korrekte UTF-8 wird also in ein anderes Encoding gewandelt. Und das ist unter OS X das MacRoman aus alten Zeiten vor OS X – und das ist natürlich kein valides UTF-8!

Abhilfe

Korrekterweise sollte das Perl-Plugin die Datei natürlich im für die Datei eingestellten Zeichensatz weiterreichen. Also einfach gar nicht konvertieren. Bis das passiert kann man sich aber auch anders behelfen:

Man füge die folgende Zeile in der eclipse.ini ein:

  -Dfile.encoding=UTF-8

Die eclipse.ini findet man unter OS X unter Eclipse.app/Contents/MacOS bzw. im Application Bundle von Eclipse (im Finder Rechtsklick, „Paketinhalt zeigen“) im gleichnamigen Ordner via Terminal.

Unter Windows ist die Datei vermutlich an einem vergleichbaren Ort.

Alternativ kann man Eclipse den Parameter beim Start via Kommandozeile auch manuell mitgeben.

 

Als Nebenwirkung werden nun zum Syntaxcheck auch Dateien, die in Latin-1 codiert sind, für den Syntaxcheck nach UTF-8 gewandelt.

 

Published by Alvar Freude on 2009-03-23T12:02:47