Programmierung

Sass unter Debian

12. November 2013 · Programmierung · andreas · Kein Kommentar

sassUm Sass, die Syntactically Awesome Style Sheets unter Debian in Betrieb zu nehmen, gibt es mehrere Möglichkeiten:

Die erste und einfachste ist die Installation des Pakets “ruby-sass”. Den Vorteil, daß die Installation ausschließlich unter Verwendung des Debian Paketmanagers distributionskonform erfolgt, erkauft man sich durch den Nachteil, daß mangels passendem “Listener”-Paket die automatische Verzeichnisüberwachung durch Sass nicht möglich ist.

Alternativ kann zuerst die Ruby-Umgebung mit Hilfe des Debian-Paketmanagers eingerichtet werden, bevor Sass mitsamt den benötigten Paketen über das Ruby-eigene Paketsystem RubyGems installiert wird.

Zur Installation der Umgebung genügt das Installieren der Pakete

apt-get install ruby ruby-dev build-essential

anschließend steht alles zur Verfügung um mittles

gem install sass

zuerst Sass und anschließend durch

gem install rb-inotify

auch den Listener für die Verzeichnisüberwachung herunterzuladen und zu installieren.


ActivePerls "Set up gcc environment"-Meldung unterdrücken

5. August 2013 · Programmierung · andreas · Kein Kommentar

Neuere ActivePerl-Varianten nerven beim Start eines Skripts mit der Meldung “Set up gcc environment”, für deren Deaktivierung es auf den ersten Blick keinen offensichtlichen Schalter gibt.

Die Lösung bringt ein Blick in die Doku des Moduls “ActivePerl::Config”

perldoc ActivePerl::Config

welche die Umgebungsvariable “ACTIVEPERL_CONFIG_SILENT” ausspuckt, die genau diesen Zweck erfüllt:

ACTIVEPERL_CONFIG_SILENT

If set to a TRUE value (e.g. “1”), suppress warnings on STDERR when new compilation environments are set up. This happens when a supported compiler is detected that is different from the one that perl was originally built with.


Locales ActivePerl Repository anlegen

22. Juni 2013 · Programmierung · andreas · Kein Kommentar

Da ActiveState den Zugriff auf die Perl Package Manager-Repositories nach einiger Zeit auf die Business Edition beschränkt, bietet sich als vorbeugende Maßnahme das Anlegen eines lokalen Repositories an, was in einigen (wenigen) Schritten erledigt ist:

Ermitteln des aktuellen Repositories

Zum ermitteln des aktuellen Repositories den Perl Package Manager starten, den Menüpunkt “Edit” / “Preferences” wählen und auf die Registerkarte “Repositories” wechseln.

activeperl_repository_01

Das aktuelle Repository kann in der Spalte “URL” der Zeile “ActiveState” ausgelesen werden, im Besipielfall

http://ppm4.activestate.com/MSWin32-x86/5.14/1405/package.xml

Erstellen eines lokalen Repositories

Zum erstellen des lokalen Repositories kann entweder ein beliebiges Werkzeug zum Erstellen von Web-Mirrors (z.B. wget) oder das Skript “ppm-local.pl” verwendet werden.

Zur Ausführung ist lediglich die Angabe der gewünschten Aktion - entweder “load” oder “reload” notwendig, alle anderen Parameter sind optional. Sollte im “load”-Modus die Datei “package.xml” noch nicht vorhanden sein, wird diese einmalig heruntergeladen, im “reload”-Modus wird diese grundsätzlich beim Start aktualisiert.

Sofern das Default-Repository nicht übereinstimmt oder die Anzahl der maximal zu ladenden Pakete oder die maximale Laufzeit geändert werden soll, ist die entsprechenden Option zu setzen. Das Repository ist hierbei immer als URL ohne die Datei “package.xml” anzugeben.

Bei einem erneuten Aufruf überspringt ppm-local die bereits vorhandenen Pakete und lädt ledglich die noch nicht gespeicherten Pakete nach.

Einbinden des lokalen Repositories

Zum Einbinden des lokalen Repositories wieder in die Ansicht “Repositories” des Perl Package Managers wechseln.

activeperl_repository_02

Im Feld “Add Repository” unter “Name” einen beliebigen Namen für das neue Repository eingeben und rechts das Ordnersymbol neben “Location” klicken. Im sich öffnenden Dialog das Verzeichnis wählen, in das die Pakete heruntergeladen wurden und bestätigen. Durch Klick auf “Add” wird das Repository dem Perl Package Manager hinzugefügt.

Abschalten des ActiveState Repositories

Sofern auf das ActiveState Repository nicht mehr zugegriffen werden kann / soll, kann auf der Registerkarte durch Klick auf die kleine braune Box (Enable/Disable Repository) in der Zeile “ActiveState” das Repository abgeschaltet und lediglich mit dem lokalen Repository gearbeitet werden.


Perl Package Manager meldet 'ERROR: 401 Authorization Required'

14. Juni 2013 · Programmierung · andreas · Kein Kommentar

Sollte der ActivePerl Package Manager den Versuch, einer Paketinstallation nur noch mit einem ‘ERROR: 401 Authorization Required’ quittieren, so liegt dies u.U. am Alter der verwendeten Version.

Wie die ActiveState PPM Availability policy erläutert, wird zum Zugriff auf die PPM-Archive von Perl 5.8 und 5.10 seit 2010, zum Zugriff auf die Archive von Perl 5.12 seit September 2012 eine Lizenz der Business Edition benötigt.

Zeit, beim anstehenden Upgrade der Perl-Installation über einen Wechsel zu Strawberry Perl nachzudenken.


Verwandte Artikel suchen und finden

15. Mai 2013 · Programmierung · andreas · Kein Kommentar

Grundsätzliche Überlegungen

Neben der möglichst lesbaren Darstellung eines Texts ist es ein Service für den Leser, weiterführende Links passend zum Thema des aktuell angezeigten Artikels anzubieten. Eine Möglichkeit diesen Mehrwert zu schaffen ist, eine Liste inhaltlich verwandter Texte der gleichen Quelle anzuzeigen. Die Schwierigkeit hierbei liegt in der Definition, wann zwei Texte als verwandt gelten können und wie eng deren Verwandtschaftsgrad ist.

Für einen beschränkten Kreis an Texten kann die Zuordnung manuell durchgeführt werden: Beim Anlegen eines neuen Texts trifft der Autor eine Auswahl an bereits vorhandenen Texten, die aus seiner Sicht für den Leser interessant sein könnten. Mit steigender Zahl der Texte steigt jedoch auch die Gefahr, einen Texte zu übersehen und ein zu einem späteren Zeitpunkt erstellter Texte wird in der Liste niemals auftauchen - außer die Zuordnungen werden immer wieder aufs Neue kontrolliert und gepflegt.

Während ein Mensch nach kurzem Überfliegen meist problemlos den Verwandtschaftsgrad zwischen zwei Texten bestimmen kann, ist dies für einen Computer ungleich schwieriger. Eine generelle und für alle Anwendungsfälle gültige Regel lässt sich nur schwer aufstellen, denn je nach Ausgangslage können sich die Anforderungen an einen solchen Algorithmus stark unterscheiden. Deshalb muß versucht werden, ihm möglichst clever einen Weg zum Bestimmen des Verwandtschaftsgrades aufzuzeigen.

Weiterlesen