Probiere und Erwarte

Obwohl ich kürzlich schmunzelnd den Artikel The forgotten art of error checking las, so war ich letzte Woche dann doch selbst davon betroffen.

Ich hatte mir ein Python Skript fürs Monitoring gebaut, welches das Backlog einer Datenbank voller serialisierter Objekte zur Verteilung überwacht.

Das hat bisher sehr gut funktioniert, jedoch wunderte ich mich Donnerstags, warum das Backlog plötzlich 100.000 Einträge enthielt und das Monitoring mich nicht informierte. Nach einer kurzen Analyse fand ich die Ursache.

In die Datenbank wurde so oft hineingeschrieben, sodass mein Skript sie jedesmal in einem ge-lockten Zustand vorfand und das Skript somit fehl schlug.

Wenn unter Windows ein Programm erfolgreich war, gibt es den Wert 0 zurück. Bei Problemen den Wert 1 oder größer. Das Problem war nun, dass das Monitoring immer dachte, das Backlog habe sich erholt, da es bei der Data-Collection den Wert 1 erhielt. D.h. das Backlog wuchs stetig an und das Monitoring glaubte aber irrtümlich, dass es wieder auf normalem Stand ist.

Die Moral von der Geschicht:

Probiere und Erwarte...
 
Auf Deutsch: Benutze das Exception Handling deiner Programmiersprache!

Mittlerweile hab ich das Skript um ein Try-Except erweitert, sodass bei Fehlerfall ein sehr hoher Wert zurück gegeben wird. Das verfälscht evtl. den Graphen aber ein Problem fliegt nicht mehr unter dem Radar...

rss4PyPI Bash Port

Autsch, das war ein Kampf. In der Bash mal etwas größeres Skripten kann schon weh tun, aber ich darf ja bald zurück zu Python und Ruby.

rss4PyPI Lua Port

Und weiter geht's mit Programmiersprachen. Der heutige Sonntag Nachmittag ging für die Portierung nach Lua drauf. Auch wenn Lua ein paar nette Features enthält, wie z.b. eingebaute String Methoden, die genauso mächtig sind wie Reguläre Ausdrücke, so hab ich mich mit der Sprache doch etwas gequält. Vor allem solche netten Dinge wie Exception Handling, Arrays auf Elemente prüfen, etc... muss man selbst nachrüsten. Aber die Erfahrung war es trotzdem wert. Zwar kann man sich vieles einfacher machen, wie z.B. Python Listen, aber dann kann ich ja fast wieder direkt Python verwenden...

If Programming Languages were...

Momentan beschäftige ich mich mit den verschiedenen Programmiersprachen und wenn man nach Artikeln sucht, die deren Unterschiede beschreiben, so stolpert man hin- und wieder mal auf Texte, die in humorvoller Weise heutige Programmiersprachen in Analogie zu verschiedenen Themen setzen.

Genial finde ich den Vergleich zu Frauen:

Python

A shy women that has mostly dated the smart boys.
She isn't that popular, but boy is she good in bed.
The only problem is that she is tidy as hell and refer to her self a lot of times. 

Java

The expensive whore that people in the enterprise pay for.

Hier mal eine Liste:

Schön ist auch A Programming Language Dream...

Schnella... und weida

Wie kürzlich erwähnt gibt es nun die Security Now Folge What we will do for speed. Wer wissen will, was unsere Computer mit Fließbandfertigung zu tun haben, dann reinhören ! :-)

The 25 year legacy of unbelievably complex technologies
used in microprocessors to maximize performance.

Syndicate content