Open Source im professionellen Einsatz

Crash-Alarm schlagen oder nicht

Ob die bis dato erfolgten Kursschwankungen an der Börse das Alarmieren des Vorstadt-Kostolany rechtfertigen, prüft die Methode »check« ab Zeile 102. Auch sie bekommt den Callback weitergereicht, der den User per IM-Message zu kontaktieren vermag. Zeile 107 kopiert die aktuell eingelesenen Daten im Objekteintrag »{data}« in das Archiv unter »{refdata}«, damit der Code später eine Referenz zum Vergleich parat hat. Dabei reicht es nicht, die Referenz zu retten. Stattdessen kopiert »{ %{ $self->{data} } };« die hinter der Referenz »$self->{data}« stehenden Daten, formt daraus einen neuen Hash und gibt eine Referenz darauf zurück.

Lagen schon vor dem Aufruf Archivdaten vor, passt die For-Schleife ab Zeile 116 die Einträge für den Vortages-Kurs auf den aktuellen an. Schließlich soll der Code bei einer gestiegenen Aktie nicht alle 5 Minuten eine neue Nachricht schicken, sondern nur, falls sich der Kurs weiter verschiebt und erneut den eingestellten Schwellenwert überschreitet.

Die Methode »noteworthy()« prüft, ob ein Aktienkurs das eingestellte Limit gegenüber dem Vortageskurs (oder dem als Vortageskurs gesetzten Tageskurs, falls vorher schon ein Alarm ausgelöst wurde) gerissen hat. Die Methode »message()« ab Zeile 129 formatiert in diesem Fall die Daten aller überwachten Aktien zu einem Textstring und Zeile 122 ruft den Callback auf, der im Hauptprogramm den User per IM alarmiert.

Installation

Gängige Linux-Distributionen bieten Pidgin als Paket an, das auch die Perl-Schnittstelle schon enthält (Ubuntu: »pidgin« und »libpurple0«, beide in Version 2.7.0). Das Plugin-Skript »pidgin-stockwatch.pl« (Listing 1) wandert dann ausführbar nach »~/.purple/plugins« ins Homeverzeichnis des Börsenhais. Das Modul »WatchQuotes.pm« (Listing 3) gehört unter einen Pfad, den die lokale Perl-Installation findet. Notfalls weist der Skriptcode, wie in Zeile 7 von Listing 1 zu sehen, mit der Anweisung »use local::lib« auf die entsprechende Stelle im Dateisystem hin.

Die Module »AnyEvent« und »AnyEvent::HTTP« haben sich noch nicht bei allen bekannten Distributionen durchgesetzt - hier muss deshalb CPAN ran. Damit zusätzliche CPAN-Module nicht die sauberen Perl-Pakete des Linux-Package-Managers vollkleistern, installiert der ordnungsliebende User sie mittels des CPAN-Moduls »local::lib« unter dem Pfad »~/perl5« in seinem Home. Nach

perl Makefile.PL --bootstrap
make test && make install

in der »local::lib«-Distribution hängt der ordentliche Admin die Ausgabe von

perl -I$HOME/perl5/lib/perl5 -Mlocal::lib

an seine lokale ».bashrc«-Datei an. Nach einem Neustart der Shell (oder dem Sourcen der ».bashrc«-Datei) setzt »local::lib« eine Reihe von Environment-Variablen, die die CPAN-Shell anweisen zusätzliche Module unter »~/perl5« zu installieren. Die Variablen weisen auch aufgerufene Perl-Skripte auf zusätzliche Suchpfade hin. Nur Pidgin kriegt davon nichts mit und benötigt eine explizite »use local::lib«-Anweisung als Nachhilfe.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook