Parkscheine sichtbar hinterlegen

14. Juli 2011 · Funstuff · andreas · Kein Kommentar

gesehen in Bad Kreuznach …


HTML-Dokumente zerlegen mit HTML::TreeBuilder

8. Juli 2011 · Programmierung · andreas · 1 Kommentar

Geht es um das Extrahieren von Informationen aus einem HTML-Dokument, so bietet sich Perl als “the Swiss Army chainsaw of programming languages” geradezu an und bietet unzählige Wege ans Ziel. Nicht nur gibt es die mächtige RegEx-Engine, auch im CPAN gibt es eine Vielzahl von Modulen, die für den Einsatzzweck geeignet scheinen.

Ein Modul, das ein gutes Verhältnis zwischen Aufwand und erzieltem Ergebnis verspricht, ist HTML::TreeBuilder, dessen Einsatz am Beispiel eines Flickr-Fotoalbums demonstriert werden soll:

Nach der Initialisierung des HTML::TreeBuilder-Objekts genügt ein Aufruf von “parse” oder wahlweise “parse_file” auf eine z.B. mittels “LWP::Simple” heruntergeladene Datei, damit der HTML-Tree zur weiteren Verarbeitung zur Verfügung steht.

$tree = HTML::TreeBuilder->new;
$tree->parse($page);

Die einzelnen Thumbnails eines Albums sind bei flickr jeweils in ein “div”-Element eingebettet, dem die Klasse “thumb” zugewiesen ist.

<div class="thumb">
    <span>
        <a title="..." href="...">
            <img width="75" height="75" border="0" alt="..." src="...">
        </a>
    </span>
</div>

Um eine Liste aller Thumbnail-Elemente zu erhalten, genügt der Aufruf von “find_by_attribute” mit passenden Parametern

@urllist = $tree->find_by_attribute('class', 'thumb');

der den gesamten Dokument-Tree durchläuft und eine Liste aller Elemente mit Klasse “thumb” zurückliefert, die dann einzeln abgearbeitet werden können.

Die Links zu den jeweiligen Bilderseiten können dann über den Aufruf zweier weiterer Funktionen etxrahiert werden:

foreach $thumb (@urllist) {

    $link = $thumb->find_by_tag_name('a');
    print $link->attr('href');
}

Der Aufruf von “find_by_tag_name” lokalisiert das Link-Element innerhalb des “div”-Elements, mittels “attr” kann auf dessen “href”-Attribut zugegriffen werden.

Das

Download (vollständige Beispielskript; RAR-archive; 0kB)

, das mittels

flickldr.pl http://www.flickr.com/photos/<werauchimmer>/sets/<wasauchimmer>/

aufgerufen wird, ist lediglich als Demo zur Verwendung von HTML::Template zu sehen und alles andere als ein zuverlässiger Downloader für Flickr-Alben. Neben fehlendem Fehlerhandling gibt es auch keinerlei Option(en) zur Wahl der Fotogröße - es wird einfach davon ausgegangen, daß alles wie gewünscht verfügbar ist.

Seit dem Relaunch von Flickr am 20. Mai 2013 können mit dem Skript keine Alben mehr heruntergeladen werden.

Erweiterte Konfiguration von IPFire

4. Juli 2011 · Anwendungen · andreas · 3 Kommentare

Als kleine, zuverlässige und einfach zu konfigurierende Firewall die auch einem schon betagten Rechner nochmal zu Amt und Würde verhilft, ist IPFire eine gute Wahl.

Leider hat die auf den ersten Blick einfache Konfiguration den Nachteil, daß manche Szenarien über die Oberfläche nicht abgebildet werden können, weil für die gewünschte Funktionalität keine entsprechenden Konfigurationsdialoge zur Verfügung stehen.

In diesem Fall können die Einstellungen der Firewall aber mittels SSH-Zugang in der Datei “/etc/sysconfig/firewall.local” vorgenommen werden.

Zugriff von rot auf grün anhand der IP-Adressen

Den Zugriff eines Rechners aus dem roten Netz auf einen Rechner im grünen Netz kann normalerweise mittels Portforwarding erledigt werden. In der Oberfläche ist es allerdings nicht möglich, den Quell- oder Zielport für verschiedene IP-Adressen mehrfach zu vergeben, so daß das Szenario, daß ein Rechner aus dem roten Netz auf den gleichen Port auf mehreren Rechnern im grünen Netz zugreifen darf, nicht konfigurierbar ist.

Die Zuweisung über die “firewall.local” kann wie folgt vorgenommen werden

/sbin/iptables -A CUSTOMFORWARD -s <Quell-IP> -d <Ziel-IP> -i red0 -o green0 -j ACCEPT

eine Einschränkung der Ports ist über die Parameter “–sport <Quell-Port(s)>” sowie “–dport <Ziel-Port(s)” möglich, bei denen als Werte entweder ein einzelner Port oder ein Bereich angegeben werden kann.

Nach außen ursprüngliche IP beibehalten

Da NAT ein integraler Bestandteil von IPFire ist, kann diese(s) auch nicht abgeschaltet werden. Es besteht aber die Möglichkeit, einem Paket nach Behandlung durch IPFire wieder seine ursprüngliche Quell-IP zuzuweisen:

/sbin/iptables -t nat -I CUSTOMPOSTROUTING -p all -s <Quell-IP> -j SNAT --to-source <Quell-IP>

Für jede Regel, die im Bereich “start” der “firewall.local” eingetragen wird, sollte eine zugehörige Lösch-Regel im Bereich “stop” hinterlegt werdem.

Einen guten Einstieg in das Thema “iptables” bietet das “IPTABLES HOWTO” von Dirk Bender, etwas ausführlicher ist “Linux Firewalls Using iptables” von Linux Home Networking.


Aero-Theme von Thunderbird 5 bändigen

2. Juli 2011 · Anwendungen · andreas · 19 Kommentare

Keine Ahnung, mit welchen Einstellungen die Entwickler bei Mozilla arbeiten, unter einem Standard-Windows 7 sieht Thunderbird 5 jedenfalls nicht sehr benutzbar aus:

Ähnlich wie bei Firefox lässt sich aber das Aussehen mittels der Datei “userChrome.css” modifizieren (ggf. muß die Datei erst angelegt werden), die im “chrome”-Ordner innerhalb des Thunderbird-Profils abgelegt wird. Durch Hinzufügen von

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

toolbox {
 background-color: #eef3fa !important;
}

.tabmail-strip {
 background-color: #eef3fa !important;
}

#folderTree {
 background-color: #ffffff !important;
}

ändert sich z.B. das Aussehen wie folgt:

Der letzte Eintrag “#folderTree” sorgt dafür, daß der Hintergrund der Ordnerhierarchie wieder in reinem Weiß erstrahlt.

Ein guter Einstieg in Modifikationen mittels “userChrome.css” findet sich in der Knowledge Base von Mozillazine.

Nachtrag 12.Juli 2011:

Je nach Profil kann es sein, daß nicht nur die Datei “userChrome.css” angelegt werden muß, sondern auch der sie enthaltende “chrome”-Ordner. Dieser wird im Hauptordner des Thunderbird-Profils benötigt, also in

%APPDATA%\Thunderbird\Profiles\<Profilname>\

Nachtrag 27.Juli 2011:

Mit ein paar zusätzlichen Zeilen ist auch eine Hervorhebung des Drag & Drop-Zielordners möglich.


Samstags halb Neun in Deutschland

25. Juni 2011 · IMHO · andreas · Kein Kommentar

Während man beim Versuch, eine Internetmarke zu erstellen, in VillaDeutschePost noch hoffnungsvoll alle fünf Minuten auf “Aktualisieren” klickt

internetmarke_1

werden die Bewohner von VillaeBay wenigstens darüber informiert, daß sich die nächsten rund 36 Stunden nichts ändern wird: