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
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





