Technik

MIME::Lite Fehlerbehandlung

13. April 2022 · Programmierung · andreas · Kein Kommentar

Ein Skript, welches MIME::Lite zum Versenden von Mails verwendet, hat sich im Fehlerfall lieber direkt mit einem “SMTP Failed to connect to mail server: Bad file descriptor” beendet, statt gemäß Dokumentation auf den Fehler zu reagieren.

test.pl
use strict; use warnings; use MIME::Lite; MIME::Lite->send('smtp', 'mailserver', Debug => 0); my $msg = MIME::Lite->new( From => 'me@whereever.net', To => 'you@somewhereelse.net', Data => 'Hello World!', Subject => 'testmail', ); $msg->send || die "you DON'T have mail!"; print "... still running ...";

Weder “you DON’T have mail!” noch “… still running …” werden ausgegeben, da diese Stellen im Code auf Grund des Programmabbruchs nicht mehr erreicht werden.

Leider ist die Erläuterung zum Verhalten der Funktion “$msg->send” nicht wirklich hilfreich:

Returns whatever the mail-handling routine returns: this should be true on success, false/exception on error.

Eine Suche im Internet führte zum Blogbeitrag “Perl exception handling”, welcher genau das aufgetretene Verhalten beschreibt und eine Lösungsmöglichkeit mittels “eval” aufzeigt:

test.pl
use strict; use warnings; use MIME::Lite; MIME::Lite->send('smtp', 'mailserver', Debug => 0); my $msg = MIME::Lite->new( From => 'me@whereever.net', To => 'you@somewhereelse.net', Data => 'Hello World!', Subject => 'testmail', ); eval { $msg->send; }; if ($@) { print "you DON'T have mail!"; } print "... still running ...";

So gekapselt läuft das Skript auch nach einem gescheiterten “$msg->send” weiter und auf einen eventuellen Fehler kann reagiert werden.


Netzwerk-Streaming mit PulseAudio

26. Februar 2022 · Anwendungen · andreas · Kein Kommentar

Manchmal wäre es ganz schön, die Audioausgabe des eigenen PCs auf einem anderen Gerät wie z.B. der heimischen Stereoanlage ausgeben zu können.

Während dem Verlegen von langen Kabeln physikalische (und ggf. auch ästhetische) Grenzen gesetzt sind und Bluetooth je nach Gerätestandort den Weg nicht störunsgfrei überbrücken kann, bietet sich ein Rasperry Pi an, der- entweder über LAN oder WiFi angebunden - die Ausgabe übernimmt.

Ein Raspberry Pi der ersten Generation ist hierfür vollkommen ausreichend, ebenso wie eine SD-Karte mit 4GB Speicherplatz.

Sofern auf dem PC Linux eingesetzt wird, lässt sich das Projekt mit wenig Aufwand und Bordmitteln realisieren. Die meisten aktuellen Linux-Distributionen setzen für die Audioausgabe auf PulseAudio, welches die benötigte Funktionalität bereits mitbringt.

Vollständigen Beitrag lesen


Vodafone CallYa Classic und das MB-Rätsel - Update 2

20. Februar 2022 · Anwendungen · andreas · Kein Kommentar

Nochmal ein kurzes (und voraussichlich letztes) Update zur Vodafone CallYa-Karte im Auto: wie bereits im ersten Update geschildert, scheinen nach einem internen Verfahren auch Bruchteile eines Megabytes zu 1 cent abgerechnet zu werden. Im Beitrag “Wie ist die Datentaktung beim Tarif CallYa Classic?” im Vodafone-Forum errechnen die Foren-Mitglieder anhand eines EVNs eines Forenmitglieds eine wahrscheinliche Blockgröße von 378,72 kB. Irgendwie seltsam, daß es hierzu offensichtlich wirklich keine offiziellen Informationen gibt.

Der exakte Abrechnungsmodus ist zwar noch immer unbekannt, aber bei aufgelaufenen Kosten von 91 cent für alle Online-Verbindungen des Autos seit 12. Dezember 2021 erübrigen sich alle weiteren Überlegungen und Nachforschungen - einmal Motor starten kostet jedenfalls deutlich mehr.


Microsoft Visual Studio 6 unter Windows 10 installieren

11. Februar 2022 · Anwendungen · andreas · Kein Kommentar

Da die Installation von Microsoft Visual Studio 6 unter Windows 7 bereits nur mit Tricks möglich war, war davon auszugehen, daß auch die Installation unter Windows 10 ein spannendes Unterfangen sein wird.

Direkt nach Start der “SETUP.EXE” erscheint der bereits bekannte Warndialog mit leicht geändertem Text:

Der Programmkompatibilitätsassistent kann durch Klick auf “Schließen” geschlossen und das Setup fortgeführt werden.

Wie bereits unter Windows 7 lässt sich die Installation ohne Aktualisierung der Microsoft Virtual Machine für Java nicht fortsetzen und genau wie unter Windows 7 sollte man einem modernen System diesen Schritt (sofern er denn funktionieren würde) auf jeden Fall ersparen.

Vollständigen Beitrag lesen


Übersetzungsprobleme bei DELL

03. Februar 2022 · Hardware · andreas · Kein Kommentar

Der DELL-Wissensdatenbankartikel “Anleitung zum Zurücksetzen des internen Dell Remote Access Controller (iDRAC) auf einem PowerEdge-Server” ist ein schönes Beispiel, warum ich von

Dieser Artikel wurde möglicherweise automatisch übersetzt.

im Normalfall so gar nichts halte und die Artikel lieber im Original lese.

Nicht nur, daß der Anfang des zweiten Satzes von

Um den iDRAC neu zu starten, drücken Sie die Taste für mindestens 30 Sekunden. Stopp durch Drücken der Taste, wenn die Kühlungslüfter mit voller Geschwindigkeit beginnen zu drehen und die vordere LCD-Anzeige (sofern angegeben) ausgeschaltet ist.

irreführend ist, auch wundert man sich als Leser der deutschen Übersetzung, warum die Lüfter bereits nach rund 15 Sekunden deutlich lauter werden. Die Lösung liefert ein Blick in die Originalversion:

In order to reset the iDRAC, without rebooting the operating system, press and hold the System Identification button for at 16 seconds. Stop pressing the button when the cooling fans start spinning at full speed and the front LCD (if present) is turning off.

Daß aus “Stop pressing the button” in der Übersetzung “Stopp durch Drücken der Taste” wird, kann bestimmt noch mit dem vielleicht für den Übersetzungsalgorithmus nicht optimalen Satzbau erklärt werden. Aber warum werden in der Übersetzung plötzlich aus 16 Sekunden 30 Sekunden?