Kategorien
Betriebssysteme Programmierung

Webserver auf localhost reagiert verzögert

Nach einer Neuinstallation von Windows 7 war der Zugriff auf andere Server im Netz wieder wie vorher, lediglich Zugriffe auf einen auf dem lokalen Rechner betriebenen Webserver erfolgten nur mit einer mehrsekündigen Denkpause.

Da der Webserver mit Hife des Perl-Moduls HTTP::Server::Simple bereitgestellt wird und weder an der Perl-Version, noch den verwendeten Modulen oder dem eigentlichen Skript irgendwelche Änderungen vorgenommen wurden, schied der Server selbst als Ursache aus.

Auch die standardmäßige Windows-Firewall sowie die Antivirus-Lösung, die beide unter kurzzeitigen Verdacht gerieten, konnten sich mit Hilfe einer testweisen Deaktivierung vom Anfangsverdacht befreien.

Einen ersten Hinweis in die richtige Richtung lieferte der Artikel „Firefox ist langsam bei Aufruf einer Seite von localhost mit Visual Studio„, dessen Lösungsansatz den Firefox-Parameter „network.dns.disableIPv6“ vom standardmäßigen „false“ auf „true“ abzuändern zwar eine Behebung der Symptome im Firefox brachte, aber nicht das Problem als solches behob.

Die Lösung findet sich letztendlich in der Windows-„hosts“-Datei unter „%windir%\system32\drivers\etc“ liegt und die folgenden Hinweis enthält:

# localhost name resolution is handled within DNS itself.
#    127.0.0.1       localhost
#    ::1             localhost

Nach Entkommentieren des IPv4-Eintrags (und nur dieses!) funktioniert der Zugriff auf den localhost wieder verzögerungsfrei.

Kategorien
Programmierung

CPAN mit ActivePerl

Auch wenn sich „Perl unter Windows: Erdbeere oder Komodowaran?“ auf den ersten Blick etwas anders lesen mag, auch unter ActivePerl ist ein Zugriff auf das Comprehensive Perl Archive Network (CPAN) ohne große Klimmzüge möglich – nur um’s im Mozilla-Jargon zu sagen „Hier endet möglicherweise die Gewährleistung!“.

Die CPAN-Shell ist zwar nicht im Startmenü verlinkt, kann aber von der Kommandozeile mittels Eingabe von „cpan“ gestartet werden. Je nach verwendeter Windows-Installation und Installationsverzeichnis muß dies u.U. als Administrator geschehen, um die benötigten Schreibrechte zu erhalten.

Sollte ActivePerl keinen installierten C-Compiler vorfinden, wird analog zu Strawberry Perl die Minimalist GNU for Windows-Umgebung MinGW zusammen mit „dmake“ über den Perl Package Manager installiert und konfiguriert, so daß anschließend eine voll funktionsfähige CPAN-Shell zur Verfügung steht.

Während Perl bei Unix-Betriebssystemen zum Lieferumfang gehört, muß ein Windows-Anwender sich erst selbst eineDistribution herunterladen.

Als erste Anlaufstelle ist das Win32 Perl Wiki geeignet, das eine gute Übersicht über die verfügbaren Perl-Distributionen für Windows liefert, von denen für “normale” Einsatzzwecke allerdings nur zwei übrig bleiben: ActivePerl und Strawberry Perl.

ActivePerl, sowohl als freie Community-Version als auch mit professionellem (und zu bezahlendem) Support durch den Distributor ActiveState erhältlich, ist sicherlich weiter verbreitet. Das herausragende Merkmal ist der Perl Package Manager (ppm, in der aktuellen Version 3), der mit einer übersichtlichen graphischen Oberfläche die Installation sowie Aktualisierung windowskompatibler Pakete mit wenigen Mausklicks erledigt.

Die Fokusierung auf den Package Manager ist aber auch gleichzeitig die größte Schwäche von ActivePerl, denn dieser setzt vorkonfigurierte und vorkompilierte Binärpaketen voraus, statt diese – wie unter Unix üblich – als Quellcode aus dem Comprehensive Perl Archive Network (CPAN) zu laden und auf der Zielmaschine zu kompilieren. Die Folge daraus ist, daß nicht alle im CPAN vorhandenen Module als ppm erhältlich sind und die verfügbaren Module oft 1-2 Versionsnummern hinterher hinken – bis sich jemand findet, der das entsprechende Paket erstellt. Dafür durchlaufen die Pakete zumindest eine rudimentäre Qualitätskontrolle, da Pakete erst nach erfolgreichem Absolvieren ihrer Testsuite zu den ppm-Repositories hinzugefügt werden.

Das Hauptargument gegen das Verwenden der CPAN-Shell (die ActivePerl auch beiliegt) unter den Microsoft-Betriebssystemen ist, daß einer Standard-Windowsversion neben Perl auch andere wichtige Entwicklungswerkzeuge wie z.B. ein C-Compiler fehlen, die unter Unix Standard sind. Solange ein Modul in reinem Perl geschrieben ist, funktioniert alles wunderprächtig, sobald aber ein Compiler benötigt wird, scheitert die Installation.

Diese Lücke füllt Strawberry Perl, in dem es zusammen mit Perl auch die MinGW (Minimalist GNU for Windows)-Entwicklungsumgebung mitbringt, um im Falle eines Falles zur Modulinstallation notwendige Kompilierungen wie unter Unix automatisiert durchführen zu können. Das klingt im ersten Moment fabelhaft, der Erfolg hängt aber davon ab, wie Windows-kompatibel das zu installierende Modul entwickelt wurde.

ActivePerl macht den Einstieg in die Perl-Welt leicht und überzeugt mit einfacher Bedienung, erkauft durch eine eingeschränkte Modulauswahl mit teilweise veralteten Versionen, die aber unter Windows wie gewünscht funktionieren. Strawberry Perl eröffnet Zugriff auf das komplette CPAN, mit der Gefahr, daß einige Module in der Windows-Welt nicht wie gewünscht oder übrhaupt nicht funktionieren.

TemplatePower PERL module

TemplatePower is a lightweight templating system for Perl which includes nested block support. As most templating systems, it’s main purpose is to seperate program code from layout of the output.

TemplatePower is basically an expanded straightforward Perl port of PHP class TemplatePower (1.6.2) and offers full template-compatibility.

Kompletten Beitrag lesen

sectionList Joomla!-Plugin

sectionList is a Joomla! content-plugin to display a list of articles assigned to a section within an article. The configurable list will be grouped by categories.

Kompletten Beitrag lesen


Kategorien
Programmierung

Perl unter Windows: Erdbeere oder Komodowaran?

Während Perl bei Unix-Betriebssystemen zum Lieferumfang gehört, muß ein Windows-Anwender sich erst selbst eineDistribution herunterladen.

Als erste Anlaufstelle ist das Win32 Perl Wiki geeignet, das eine gute Übersicht über die verfügbaren Perl-Distributionen für Windows liefert, von denen für „normale“ Einsatzzwecke allerdings nur zwei übrig bleiben: ActivePerl und Strawberry Perl.

ActivePerl, sowohl als freie Community-Version als auch mit professionellem (und zu bezahlendem) Support durch den Distributor ActiveState erhältlich, ist sicherlich weiter verbreitet. Das herausragende Merkmal ist der Perl Package Manager (ppm, in der aktuellen Version 3), der mit einer übersichtlichen graphischen Oberfläche die Installation sowie Aktualisierung windowskompatibler Pakete mit wenigen Mausklicks erledigt.

Die Fokusierung auf den Package Manager ist aber auch gleichzeitig die größte Schwäche von ActivePerl, denn dieser setzt vorkonfigurierte und vorkompilierte Binärpaketen voraus, statt diese – wie unter Unix üblich – als Quellcode aus dem Comprehensive Perl Archive Network (CPAN) zu laden und auf der Zielmaschine zu kompilieren. Die Folge daraus ist, daß nicht alle im CPAN vorhandenen Module als ppm erhältlich sind und die verfügbaren Module oft 1-2 Versionsnummern hinterher hinken – bis sich jemand findet, der das entsprechende Paket erstellt. Dafür durchlaufen die Pakete zumindest eine rudimentäre Qualitätskontrolle, da Pakete erst nach erfolgreichem Absolvieren ihrer Testsuite zu den ppm-Repositories hinzugefügt werden.

Das Hauptargument gegen das Verwenden der CPAN-Shell (die ActivePerl auch beiliegt) unter den Microsoft-Betriebssystemen ist, daß einer Standard-Windowsversion neben Perl auch andere wichtige Entwicklungswerkzeuge wie z.B. ein C-Compiler fehlen, die unter Unix Standard sind. Solange ein Modul in reinem Perl geschrieben ist, funktioniert alles wunderprächtig, sobald aber ein Compiler benötigt wird, scheitert die Installation.

Diese Lücke füllt Strawberry Perl, in dem es zusammen mit Perl auch die MinGW (Minimalist GNU for Windows)-Entwicklungsumgebung mitbringt, um im Falle eines Falles zur Modulinstallation notwendige Kompilierungen wie unter Unix automatisiert durchführen zu können. Das klingt im ersten Moment fabelhaft, der Erfolg hängt aber davon ab, wie Windows-kompatibel das zu installierende Modul entwickelt wurde.

ActivePerl macht den Einstieg in die Perl-Welt leicht und überzeugt mit einfacher Bedienung, erkauft durch eine eingeschränkte Modulauswahl mit teilweise veralteten Versionen, die aber unter Windows wie gewünscht funktionieren. Strawberry Perl eröffnet Zugriff auf das komplette CPAN, mit der Gefahr, daß einige Module in der Windows-Welt nicht wie gewünscht oder übrhaupt nicht funktionieren.

Kategorien
Downloads Programmierung

TemplatePower PERL module

TemplatePower is a lightweight templating system for Perl which includes nested block support. As most templating systems, it’s main purpose is to seperate program code from layout of the output.

TemplatePower is basically an expanded straightforward Perl port of PHP class TemplatePower ( release 1.6.2) and offers full template-compatibility.

Kategorien
Programmierung

ppm install failed: Can’t find any package that provide perl for …

Sollte der Versuch ein Modul mittels ppm zu installieren mit einem „ppm install failed: Can’t find any package that provide perl for [Modulname]“ quittiert werden, so lohnt sich meist ein Blick in die zugehörige ppd-Datei. Dort ist im Normalfall eine Zeile wie

<REQUIRE NAME="perl" VERSION="5.004" />

zu finden, die das Problem verursacht und nach deren Löschung die Installation problemlos gelingt.