18.01.2019

Eine Webseite mag Linux nicht

Manche Firmen sind einfach unglaublich ... doof.

Ich muss beruflich Lotus Notes benutzen (ein bißchen Mitleid bitte) und für verschlüsselte bzw. signierte S/MIME-Mails verwendet meine Firma Zertifikate von Symantec (mehr Mitleid bitte). Die laufen natürlich irgendwann ab und dann kommt eine Mail mit dem Hinweis, dass ich mein Zertifikat erneuern muss.

Kein großes Problem - ich gehe auf eine Webseite meiner Firma, die mich weiterleitet zu Symantec. Dort muss ich mich natürlich identifizieren, und wenn das erfolgreich war, müsste ich mein Zertifikat herunterladen können.

Tja, außer ich verwende einen Browser mit Linux. Dann passiert einfach gar nix mehr.

Vorschlag von den netten Kollegen: eine Windows-VM verwenden und dort im Browser Symantec aufrufen (noch mehr Mitleid bitte).

Meine alternative Lösung: ein Addon für den Browser, um den User Agent zu fälschen und Firefox/Windows vorzutäuschen.

Und Schwupps, es funktioniert.

Symantec hat also wirklich eine Browserweiche eingebaut, die bei Linux anderes Verhalten zeigt als bei Windows.

Ist das doof oder ist das doof?

07.01.2019

Immer noch der Klimawandel - Leserbrief

Erneut lässt sich der emeritierte Professor L. in einem Leserbrief zum Klimawandel aus.

In seinem letzten Leserbrief zitiert er eine "Buchbesprechung", die den Namen nicht verdient. Ein ehemaliger Fernsehmoderator schreibt auf der nicht für Neutralität bekannten Website "Tichys Einblicke" (ich verlinke absichtlich nicht) einen Verriss eines Buches, und aus Hinweisen auf diese Buchbesprechung wird dann ein Leserbrief.

In seinem vorigen Leserbrief war er noch ganz überzeugt von Dieselmotoren, schreibt aber dann nur ganz verschämt, dass er einen "MB GLC" fahre. Eigentlich könnte er sich doch trauen zu schreiben, dass er damit einen Mercedes Disco-Panzer meint, oder nicht?

Hier nun meine Antwort darauf.
[veröffentlicht am 24.12.2018]
Herr L., Ihre Antwort auf meinen Leserbrief enthält wieder genau dieselben rhetorischen Tricks, mit denen Sie gern arbeiten. Sie picken sich eine einzelne Studie oder eine Zahl heraus und stützen darauf Ihre Argumentation.
Wie Sie selbst feststellen, sind sich 97% aller Klimaexperten einig - mehr als 8.000 Studien stellen fest, dass der Klimawandel menschgemacht ist. Das globale Klima ist ein empfindliches Ding, das u.a. von Jetstreams in der Atmosphäre und weltweiten Meeresströmungen abhängt. Wissenschaftler sprechen von "Kippelementen", das sind Situationen, die eintreten und den Klimawandel so beschleunigen, dass ihn Menschen nicht mehr korrigieren können. Wir haben es jetzt zum letzten Mal in der Hand, das Ruder herum zu reißen. Die Schätzungen des IPCC zum Klimawandel, die Sie gelegentlich auch zitieren, werden in der Fachwelt noch als sehr konservativ eingeschätzt - das mag politische Gründe haben. Mir ist bei Studien die wissenschaftliche Methodik wichtig: eine Studie kann man anzweifeln. Wenn aber viele weitere Studien zum selben Ergebnis kommen, ist das schon ein sehr starkes Indiz.
Erschreckend finde ich, wenn Sie die Website "Tichys Einblicke" als Referenz benutzen; dort wimmelt es von rechten und sonstigen substanzlosen Verschwörungstheorien. Der Fernseh-Wettermoderator Thüne schreibt auf dieser Website Artikel, die vollkommen faktenfrei sind und nennt es Buchbesprechung, wenn er mit Schaum vor dem Mund den Autor angreift. Ein Beispiel: "In geradezu hochnotpeinlicher Eitelkeit dient ein zentraler Teil des Buches der Selbstdarstellung, der Pflege des eigenen Ich".
Das Zitat stammt von Tichys Website, aus der Besprechung eines Buches von H. J. Schellnhuber, der zu den weltweit renommiertesten Klimaexperten gehört. Eine Buchrezension eines TV-Sprechers, der vor 40 Jahren seine beste Zeit hatte und nichts besseres zu tun hat, als den Buchautoren ad hominem anzugreifen, kann man nicht ernst nehmen. Wer auf diese Weise persönlich wird, hat keine Sachargumente mehr. Wem billigen Sie mehr Glaubwürdigkeit zu? Einem Klimaforscher, der aktuell forscht und publiziert, oder einem Wettermoderator, der von 1971 bis 1986 im Fernsehen aufgetreten ist?
Sie befinden sich nebenbei in guter Gesellschaft, wenn Sie den Unterschied zwischen Klima und Wetter ignorieren. Donald Trump kennt ihn auch nicht. Von daher ist es sinnlos, wenn Sie bemerken, Computer könnten keine langfristige Wettervorhersage über den Klimawandel berechnen.
Lesetipp: 10 Fakten über den Klimawandel bei ZEIT Online (dort werden übrigens auch die Behauptungen von Thüne gründlich widerlegt).

05.12.2018

Flash-Update auf Version 32

Mir fehlen langsam die Worte, wie die Versionsnummern inflationär in Höhen klettern. Google hat es mit Chrome vorgemacht, aus irgendwelchen Gründen macht es Mozilla mit Firefox und Thunderbird nach, und jetzt beschleunigt Adobe die Nummerierung des Flashplayers genauso.

Und weil mir die neuen Worte fehlen, nehme ich immer den alten Blogartikel, nur die Versionsnummern und die Links ändern sich ;)

Einen Hinweis muss ich aber nun doch noch einbauen: ab Ende Januar 2016 gibt es keine freien Downloads der Installationsdateien mehr. Genaue Modalitäten sind noch nicht bekannt, Adobe hat nur bekannt gegeben, dass die Downloadlinks über die "distribution3.html"-Seite nicht mehr zur Verfügung stehen werden und man eine Adobe-ID und eine Business-Lizenz benötige.

Wir sind jetzt schon bei Flash-Version 32 (mittlerweile zählt wohl auch ein Major release nicht mehr zu den besonders erwähnenswerten Ereignissen bei Adobe?). Wer sich selbst auf dem Laufenden halten will, kann das Blog des Security-Teams bei Adobe lesen oder als RSS abonnieren.

Wie üblich in ihrem freundlichen Service-Blog die passende Automation zum Herunterladen und Installieren. Falls ein Proxy verwendet wird, das "rem" bzw. "#" entfernen und eigene Proxy-Adresse eintragen.

Chrome, Edge und Internet Explorer aktualisieren das Flashplugin automatisch.

Besonderer Leserservice (neu): Bitte prüfen Sie hier Ihre aktuelle Adobe Flash-Version. Wer mit NoScript oder ähnlichen Skriptblockern arbeitet, muss 4 bis 5 verschiedene Adobe-Domains genehmigen, dann auf das Puzzle-Symbol klicken und damit Flashinhalte erlauben.

Das Tool wget wird bei Windows noch benötigt wie hier beschrieben. Bei Linux sollte es schon vorhanden sein, da es von vielen anderen Programmen intern verwendet wird.

Für Windows wie üblich beide Varianten, ActiveX und Netscape Plugin (Achtung übrigens, Firefox wird demnächst das NPAPI komplett abschaffen - mal sehen, was Adobe und Flash dann machen).

Die Download-URL hat sich übrigens im Vergleich zu Version 23 leicht geändert, sowohl bei Windows als auch bei Linux.
@echo off
rem set https_proxy=http://192.168.100.100:3128/
set VNP=32.0.0.255
set VAX=
32.0.0.255
set V=32
set H=fpdownload.adobe.com
set P=/get/flashplayer/pdc
set AX=install_flash_player_ax.exe
set NP=install_flash_player.exe
wget https://%H%%P%/%VAX%/%AX% -O flash-%VAX%_ax.exe
.\flash-%VAX%_ax -install
wget https://%H%%P%/%VNP%/%NP% -O flash-%VNP%_np.exe
.\flash-%VNP%_np -install
Für Linux 64 bit rpm (als root ausführen oder "sudo rpm" schreiben) gibt es jetzt auch wieder offiziell dieselbe Version wie für Windows. Eine Zeitlang war Flash für Linux bei Version 11.2 "eingefroren", Adobe hat es sich nun anders überlegt und liefert wieder, obwohl die Zeichen generell auf Untergang stehen - in Google Chrome ist Flash gar nicht mehr enthalten, und die anderen Browser-Hersteller wechseln auf Multimedia in HTML5 statt Flash. Es gäbe auch die Version "PPAPI" zum Herunterladen, das ist die Pluginvariante "Pepper" für das Google-API, ich gebe hier "NPAPI" für das Firefox-API im Skript an.
#!/bin/sh

# https_proxy=http://192.168.100.100:3128/

VL=${1:-
32.0.0.255}
H=fpdownload.adobe.com
PL=/get/flashplayer/pdc/${VL}

DL() { wget -N "$1/$2" -O "$3"; }

echo Linux 64 bit rpm ...
DL https://${H}${PL} \
   flash-player-npapi-${VL}-release.x86_64.rpm \
   flash-${VL}.x86_64.rpm
rpm -F --force flash-${VL}.x86_64.rpm
Der Filename für die 32bit-Variante ist "flash-player-npapi-${VL}-release.i386.rpm".

[20181205: Security Bulletin von Adobe]
[20190108: Security Bulletin von Adobe]
[20190212: Security Bulletin von Adobe]
[20190514: Security-Bulletin von Adobe]
[20190612: Security-Bulletin von Adobe]
[20190910: Security-Bulletin von Adobe]

22.11.2018

Wer ist noch wählbar?

Ich halte mich eigentlich eher für politisch links eingestellt. Wenn ich nicht in der UdSSR und der DDR gesehen hätte, dass der Kommunismus an der menschlichen Gier und Unvollkommenheit scheitert, wäre ich vermutlich auch ein Kommunist. So bin ich halt nur "irgendwie links" ;)

Leider macht es mir die SPD nicht leicht, links zu wählen. Samstag vor einer Woche war ein Interview mit Bouffier und Schäfer-Gümbel in der WZ, und beide Politiker brachten mich zum Kopfschütteln.

Die CDU behauptet, dass die Lehrerversorgung ganz wunderbar ist - sie kann es aber nicht belegen, weil sie dazu keine Statistik erfasst.
Die SPD genau wie die CDU findet die Vorratsdatenspeicherung ganz toll, und das ist ein schweres Problem für mich.
Abgesehen davon finde ich so gut wie alles von Oswin Veith grauenhaft, egal zu welchem Thema. Ich kann bei ihm keinerlei Sachkompetenz bei seinen Äußerungen erkennen.


Peter Tauber hat sich ein ganz dickes Fettnäpfchen geleistet: er hat bei Twitter des Todestags von Erwin Rommel gedacht ("Rommel galt allgemein als Hitlers „Lieblingsgeneral“").

Das große Interview (eine ganze Seite) und die ganzen kleinen Dinge außen herum waren der Anlass, diesen Frust in einen Leserbrief zu gießen.
Bemerkenswert finde ich die große Zahl Änderungen an meinem Leserbrief durch die Redaktion. Insbesondere der Unterschied, dass Bouffier von 105%, sein Kultusminister Lorz aber von realen 104% sprach, ist der Schere zum Opfer gefallen.

[Abgedruckt am 20.10.2018, Änderungen und Löschungen der WZ-Redaktion sind markiert]


Leserbrief zur Landtagswahl in Hessen
Herr Volker Bouffier hat deutlich gezeigt, dass er dem Thema Schulpolitik und seinem Kultusminister nicht viel Aufmerksamkeit schenkt, sonst hätte er nicht so vollmundig behauptet, dass die Lehrerversorgung in Hessen so toll ist. Er brüstet sich sogar mit der Zahl von 105% Lehrerversorgung. Dabei kann er weder anhand dieser Zahl noch generell überhaupt nicht beurteilen, ob die Lehrerversorgung gut ist - in Hessen gibt es nämlich keine zentrale Erfassung von Fehlstunden und Unterrichtsausfall. Er spricht auch noch von 105%, obwohl Herr Lorz im Frühjahr von 104% sprach (Bericht in der FR vom 15.02.18). Diese Zahl reicht 105% reichen nicht einmal aus, um die durchschnittliche Krankheitsrate abzufangen, die bei über 5% liegt (bei angestellten Lehrern, bei Beamten ist sie nochmals höher). Von diesen 104% Davon müssen auch noch Mediation, sozialpädagogische Zeiten und Aufwand für Inklusion und Integration abgezogen werden, und schon sieht diese Zahl gar nicht mehr so toll aus.
Leider ist die SPD in Hessen für mich auch nicht mehr wählbar, und das hat Herr Schäfer-Gümbel mit einem einzigen Satz im gedruckten Interview am Samstag geschafft: er unterstützt die Vorratsdatenspeicherung, für die auch Herr Veith so gern trommelt. Hat er die letzten Gerichtsurteile von Bundesverfassungsgericht und Europäischem Gerichtshof nicht wahrgenommen, die den Politikern mehrfach erklärt haben, auf wievielen Ebenen diese Schnüffelei verfassungswidrig ist? Ich bin ernsthaft erschüttert.
Unabhängig von diesem Interview möchte ich noch auf weitere mediale Äußerungen hinweisen, die sich Mitglieder der CDU kürzlich geleistet haben:
Herr Tauber, früher mal Generalsekretär der Bundes-CDU in Berlin, steht zwar nicht in Hessen zur Wahl, macht aber eifrig Wahlkampf. Er hat sich am 14.10. auf Twitter zu Wort gemeldet und an Erwin Rommel erinnert, der "von den Nazis zum Selbstmord gezwungen wurde". Dass dieser General aber vorher jahrelang Hitlers treuester General war, ist Tauber offensichtlich egal. Er hätte ja auch stattdessen an den Aufstand in Sobibor am selben Tag ein Jahr vorher erinnern können, aber das war ihm dann wohl zu profan.
Herr Veith, amtierendes Mitglied des Bundestages CDU-Bundestagsabgeordneter für den Wetteraukreis, spricht sich außer für die Vorratsdatenspeicherung auch für eine allgemeine Dienstpflicht aus, während er seinen Wahlkreis besucht. Schon mehrfach ist die Dienstpflicht gescheitert, was er eigentlich als Berufspolitiker und Jurist sogar besser wissen müsste als ich - ich bin "nur" Naturwissenschaftler.
Schon bei der Entstehung des Grundgesetzes - mit den Erfahrungen aus der NS-Zeit im Hinterkopf - wurde die allgemeine Dienstpflicht einhellig negativ beschieden, dann im Rahmen der Notstandsgesetze, erneut bei der Grundpflichtendebatte der 1980er/90er Jahre, anlässlich des Pflegenotstandes und der Entscheidung des BVerfG 1995 zur Feuerwehrabgabe, sowie bei der Aussetzung der Wehrpflicht gab es in Bayern 2011 einen Versuch eines sozialökologischen Pflichtjahrs. Alle diese Versuche sind gescheitert, weil das deutsche Grundgesetz eine allgemeine Dienstpflicht einfach nicht her gibt. Allein schon Art. 12 II GG, der den Arbeitszwang verbietet, steht der allgemeinen Dienstpflicht im Weg. Das Grundgesetz will damit verhindern, dass so etwas wie ein Reichsarbeitsdienst erneut eingeführt wird. Analog stehen der Dienstpflicht die EU-Grundrechtecharta und die Europäische Menschenrechtskonvention entgegen. 
Auf der einen Seite gibt es PISA, Bologna und weitere merkwürdige Bildungsreformen, landauf, landab hört man immer, dass die Schüler schneller zum Schulabschluss geführt werden müssen, und dann sollen sie mit der Dienstpflicht doch wieder ein Jahr lang fern vom Arbeitsmarkt sein? Schulabgänger ohne Ausbildung sollen qualifizierte Dienste, z.B. in Pflegeeinrichtungen, leisten? Und damit vielleicht den Arbeitsmarkt nachhaltig erschüttern und die "Preise", sprich Löhne, drücken? Oder ist das überhaupt der Hintergedanke?

12.09.2018

Lies die Anleitung bis zum Ende!

Eigentlich sollte das eine Selbstverständlichkeit sein, aber manchmal vergisst man solche Grundsätze oder überfliegt die Anleitung nur flüchtig.

So ist es mir kürzlich passiert, als ich ein "unofficial" LineageOS auf dem Smartphone eines Freundes installieren wollte. Ich hatte ihm Motorola empfohlen und er war begeistert von den "Moto Mods" - magnetischen Modulen, die man an die Rückseite anklipsen kann.

Ich selbst verwende ein Moto Z von 2016 (XT1650), weil mich das Kameramodul von Hasselblad fasziniert hat, und mein Freund ist ein HiFi-Fan, der das Modul mit JBL-Stereolautsprecher haben wollte. Daneben gibt es noch verschiedene Zusatzakkus, einen Drucker oder einen Beamer. Motorola garantiert bei der "Z"-Baureihe, dass die Module mindestens drei Smartphonegenerationen lang benutzt werden können, dass man also ein neueres Telefon der Baureihe kaufen kann und die Module können weiter verwendet werden. Das klappt wirklich: mein Akkumod - zusammen mit dem Moto Z gekauft - passt auch an das Z2 meines Bekannten.

Dummerweise hat er das Modell "Z2 Play" gekauft, das derzeit nicht offiziell von LineageOS unterstützt wird, d.h. es ist nicht über die Downloadseite zu bekommen. Der Entwickler bietet es quasi "privat" als Download bei Google Drive an. Bei meinem eigenen Telefon hatte ich als erstes Kriterium die Verfügbarkeit eines offiziellen LineageOS, und als zweites Kriterium wollte ich einen Bildschirm mit mehr als HD-Auflösung, also besser als die üblichen 1920x1080. Die "Play"-Modelle von Motorola haben aber nur diese Bildschirmgröße, deshalb fiel das bei mir durch's Raster.

[Update 20181017] Das Motorola Z2 Play "albus" ist mittlerweile offiziell.

Der erste Schritt war der Start des Telefons, weil man in den Entwickleroptionen erst das Entsperren des Bootloaders erlauben muss - das findet sich bei immer mehr Herstellern, nicht nur Motorola, sondern z.B. auch LG. Danach konnte ich das Smartphone mit dem PC verbinden und im Debugmodus mit adb die nötigen Dateien kopieren. Nach dem Wechsel in den Fastboot-Modus mit dem Befehl "adb reboot bootloader" konnte ich dann den Entsperrcode benutzen, den Motorola mir in einer Email geschickt hatte.

Der erste Installationsversuch von LineageOS schlug fehl, weil nach der Installation des (durchaus funktionsfähigen) TWRP-Recoverys das LineageOS-Zip sich mit "ERROR 255" nicht installieren ließ. Beim ersten Mal dachte ich, dass die Zip-Datei beschädigt ist und ließ sie mit "unzip -t" auf dem NAS prüfen, aber die Datei war in Ordnung.

Etwas Recherche ergab, dass für dieses Smartphone ein spezielles "64 bit" TWRP verwendet werden muss, das auch nicht offiziell von TWRP angeboten wird. An dieser Stelle wurde ich dann doch etwas unsicher über das ganze "inoffizielle" Gedöns ... aber mein Kumpel war zuversichtlich und wir machten weiter.

Der zweite Versuch schlug schon viel früher fehl: das neu geflashte Recovery startet bis zum Bildschirm, auf dem man "Install", "Wipe" usw. aufrufen kann, aber der Touchscreen war nicht funktionsfähig.

An dieser Stelle brachen wir die Installation dann doch ab und ich restaurierte auch das originale Recovery von Motorola wieder. Nach einem Neustart des Smartphones mit dem "hello moto" zeigte sich beruhigenderweise wieder das vertraute Bild der Motorola-Version von Android 7.1 Nougat.

Trotzdem ließ mir dieser Fehlschlag keine Ruhe - ich wollte das nicht auf mir sitzen lassen! Alle bisherigen Telefone ließen sich problemlos entsperren und mit CM bzw. LOS bespielen, warum also nicht dieses?

Beim erneuten Durchlesen der Beschreibung fiel mir auf, dass ich einen entscheidenden Satz überlesen hatte: "Bugs: Need to press power button two times for touch to work". Also einfach mal den Bildschirm ausschalten und wieder einschalten!

Das hat dann tatsächlich geklappt, es kam das übliche "Swipe to unlock", und danach konnten wir weiter machen. Die Installation von LineageOS, Google Apps und dem addon-su-Paket lief dann schmerzfrei, und nach der Freischaltung in meiner Firewall konnte mein Kumpel auch das Telefon fertig einrichten, Apps herunterladen usw. Den genauen Ablauf habe ich oft genug beschrieben, deshalb werde ich das hier nicht noch mal wiederholen ;-)

Eine kleine Besonderheit gibt es: nach dem Entsperren des Bootloaders wird das Einschaltbild ("boot logo") durch einen Hinweistext ersetzt, dass das Telefon entsperrt ist. Dieses Bootlogo kann man natürlich problemlos durch ein schöneres Bild ersetzen, es finden sich genügend fertige zum Downloaden, und mit dem "Motorola Bootlogo Maker" kann man sich auch eigene Bilder zurecht basteln.

Also am Ende alles gut ;-)

Da fiel mir dann der alte Spruch auch gleich wieder ein: "if all else fails, read the instructions".

[Update 20190924] Nachdem wir feststellten, dass LineageOS die meisten Mods nicht vernünftig unterstützt, weil man dazu proprietäre Softwaremodule benötigt, die die LineageOS-Entwickler nicht verteilen dürfen, haben wir das originale Android von Motorola wieder zurückgespielt. Der Akkumod funktioniert, aber der JBL-Lautsprecher leider nicht.

11.09.2018

Flash-Update auf Version 31

Mir fehlen langsam die Worte, wie die Versionsnummern inflationär in Höhen klettern. Google hat es mit Chrome vorgemacht, aus irgendwelchen Gründen macht es Mozilla mit Firefox und Thunderbird nach, und jetzt beschleunigt Adobe die Nummerierung des Flashplayers genauso.

Und weil mir die neuen Worte fehlen, nehme ich immer den alten Blogartikel, nur die Versionsnummern und die Links ändern sich ;)

Einen Hinweis muss ich aber nun doch noch einbauen: ab Ende Januar 2016 gibt es keine freien Downloads der Installationsdateien mehr. Genaue Modalitäten sind noch nicht bekannt, Adobe hat nur bekannt gegeben, dass die Downloadlinks über die "distribution3.html"-Seite nicht mehr zur Verfügung stehen werden und man eine Adobe-ID und eine Business-Lizenz benötige.

Wir sind jetzt schon bei Flash-Version 31 (mittlerweile zählt wohl auch ein Major release nicht mehr zu den besonders erwähnenswerten Ereignissen bei Adobe?). Wer sich selbst auf dem Laufenden halten will, kann das Blog des Security-Teams bei Adobe lesen oder als RSS abonnieren.

Wie üblich in ihrem freundlichen Service-Blog die passende Automation zum Herunterladen und Installieren. Falls ein Proxy verwendet wird, das "rem" bzw. "#" entfernen und eigene Proxy-Adresse eintragen.

Das Tool wget wird bei Windows noch benötigt wie hier beschrieben. Bei Linux sollte es schon vorhanden sein, da es von vielen anderen Programmen intern verwendet wird.

Für Windows wie üblich beide Varianten, ActiveX und Netscape Plugin (Achtung übrigens, Firefox wird demnächst das NPAPI komplett abschaffen - mal sehen, was Adobe und Flash dann machen).

Die Download-URL hat sich übrigens im Vergleich zu Version 23 leicht geändert, sowohl bei Windows als auch bei Linux.
@echo off
rem set https_proxy=http://192.168.100.100:3128/
set VNP=31.0.0.153
set VAX=31.0.0.153

set V=31
set H=fpdownload.adobe.com
set P=/get/flashplayer/pdc
set AX=install_flash_player_ax.exe
set NP=install_flash_player.exe
wget https://%H%%P%/%VAX%/%AX% -O flash-%VAX%_ax.exe
.\flash-%VAX%_ax -install
wget https://%H%%P%/%VNP%/%NP% -O flash-%VNP%_np.exe
.\flash-%VNP%_np -install
Für Linux 64 bit rpm (als root ausführen oder "sudo rpm" schreiben) gibt es jetzt auch wieder offiziell dieselbe Version wie für Windows. Eine Zeitlang war Flash für Linux bei Version 11.2 "eingefroren", Adobe hat es sich nun anders überlegt und liefert wieder, obwohl die Zeichen generell auf Untergang stehen - in Google Chrome ist Flash gar nicht mehr enthalten, und die anderen Browser-Hersteller wechseln auf Multimedia in HTML5 statt Flash. Es gäbe auch die Version "PPAPI" zum Herunterladen, das ist die Pluginvariante "Pepper" für das Google-API, ich gebe hier "NPAPI" für das Firefox-API im Skript an.
#!/bin/sh

# https_proxy=http://192.168.100.100:3128/

VL=${1:-
31.0.0.153}
H=fpdownload.adobe.com
PL=/get/flashplayer/pdc/${VL}

DL() { wget -N "$1/$2" -O "$3"; }

echo Linux 64 bit rpm ...
DL https://${H}${PL} \
   flash-player-npapi-${VL}-release.x86_64.rpm \
   flash-${VL}.x86_64.rpm
rpm -F --force flash-${VL}.x86_64.rpm
Der Filename für die 32bit-Variante ist "flash-player-npapi-${VL}-release.i386.rpm".

[20180911: Security Bulletin von Adobe]
[20181114: Security Bulletin von Adobe]
[20181120: Security Bulletin von Adobe]

10.09.2018

Die überraschende Firewall

Zur Abwechslung gibt es heute mal eine Anekdote einer interessanten und überraschenden Problemsuche bei einem Freund.

Besagter Freund wollte sich ein Emailkonto bei einem neuen Anbieter einrichten und es wollte nicht funktionieren. Das Emailkonto gehört zu einem Gesamtkunstwerk aus Website und Domainname eines Vereins. Durch Umzug der Website zu einem anderen Anbieter und Wechsel im Vereinsvorstand mussten wir ein Emailkonto für den Verein auf seinem PC neu einrichten.

Ich hatte vorher das Konto über die Verwaltungsseite des Anbieters angelegt, die technischen Daten für die Mailserver notiert (Pop, Imap, Smtp) und meinem Freund geschickt. Aber es wollte nicht funktionieren. Halt, das ist nicht ganz richtig. Mail abholen funktionierte, aber Mail versenden war nicht möglich.

Für mich erschwerend kam hinzu, dass es sich um einen Laptop mit Windows und Outlook handelt, und schon mit Windows tue ich mich sehr schwer. Mit Outlook habe ich eigentlich gar keine Erfahrung und musste mich durch eine etwas gewöhnungsbedürftige Bedienung durchkämpfen. Ich selbst verwende als Mailprogramm schon immer Thunderbird und bin sehr zufrieden damit.

Zuerst hatte ich die Sicherheitssoftware in Verdacht: Norton Antivirus hatte sich in Browser und Betriebssystem als Firewall eingeklinkt (der Windows-interne Firewall war abgeschaltet) und ich schaltete testweise Norton komplett ab, weil ich den Verdacht hatte, dass Norton ausgehende Mailverbindungen zu "komischen" Servernamen ablehnt (zur Unterdrückung von Spam). Aber das half nicht.

Also tiefer eingestiegen und mit einer Kommandozeile eine "telnet"-Verbindung zum Anbieter versucht. Auch das schlug fehl - es war also kein Outlookproblem, und da Norton abgeschaltet war, auch kein Nortonproblem. Ein "ping" war möglich. Zudem war das telnet-Programm zuerst gar nicht erreichbar, sondern ich musste es über die Systemsteuerung installieren (in der Systemsteuerung bei den Windows-Komponenten den "telnet-client" ankreuzen). Danach konnte ich auf der Kommandozeile mit dem schlichten Befehl "telnet mailservername 465" testen, ob der PC eine TCP-Verbindung zum Port 465 für SMTP über SSL aufbauen kann.

Nach mehreren erfolglosen Versuchen kam ich auf die Idee, im DSL-Router nachzuschauen - ein ziemlich neues Mietgerät von der Telekom für VDSL mit "Smarthome"-Fähigkeiten, also ziemlich neu. Und tatsächlich gibt es in diesem !$%&-DSL-Router einen Menüpunkt "Erlaubte Mailserver".

Der Router hat also tatsächlich einen Mini-Firewall auf Hostnamenebene eingebaut und kommt mit einer einigermaßen umfangreichen Liste von vordefinierten Mailanbietern und deren Hostnamen für Smtp-Mailablieferung. Nur "unser" Anbieter "Host Europe" war nicht in der Liste enthalten.

Also den Hostnamen unseres Smtp-Servers eingetragen und - bingo! Es ging immer noch nicht.

Erst nach einem Neustart des DSL-Routers wurde die Änderung funktionsfähig.

Der Neustart zog zwar weitere Probleme mit dem ISDN-Adapter der Telekom und der alten ISDN-Telefonanlage meines Freundes nach sich, aber diese Geschichte erzähle ich vielleicht ein anderes Mal ;-)

16.08.2018

Formeln in LibreOffice Calc mit einem perl-Skript erzeugen

Hier kommt mal wieder eine Kleinigkeit, die mich etwas Mühe gekostet hat: ein perl-Skript, das mir ein XLSX-Spreadsheet erzeugt, in dem funktionierende Formeln eingebettet sind. XLSX ist das XML-Dokumentenformat von Microsoft Office, funktioniert aber auch in LibreOffice. Technisch ist es weit umständlicher als das OpenDocument Format und nicht wirklich frei, aber das soll hier nicht das Thema sein.

Ich bin an und für sich kein großer Office-Benutzer und weiß eigentlich auch nur das Nötigste - aber beruflich hab ich halt doch immer mal wieder den Auftrag, irgendwelche Office-Dateien zu verwenden oder zu liefern. In solchen Fällen versuche ich immer, mir mit Perl-Skripten die Handarbeit vom Hals zu schaffen und stattdessen eine schöne Automation zu verwenden ;-)

Kürzlich wollte nun ein Kollege in ein Spreadsheet, das ich für ihn generiere, in mehreren Zellen eine Verknüpfung zu einem anderen Tabellenblatt ("sheet") eingebaut haben.

Ich hatte größere Schwierigkeiten, die richtige Schreibweise für Formelbefehle und die Zellenkoordinaten zu finden - LibreOffice ist hier zu hilfreich und verbirgt über automatische Korrekturen im Calc-Programm viele Eingabefehler vor dem Benutzer - die Schreibweise aus dem GUI ins Skript übernommen hat nicht funktioniert und beim Öffnen der neuen Datei erhielt ich immer eine Fehlermeldung in allen Zellen mit Formel. Interessant daran: wenn ich im Office-Programm die Formel bearbeitete und abspeicherte, fing sie an zu funktionieren, obwohl ich an der Schreibweise nichts geändert hatte (z.B. einfach ein Zeichen gelöscht und dasselbe Zeichen wieder eingetippt). Das war extrem frustrierend, zeigt es doch, dass hier im Sinne der Bequemlichkeit Dinge in der Software unter der Haube passieren, die man als Benutzer nicht erkennen kann.

Außerdem ist die Syntax zwischen Microsoft Office und LibreOffice leicht unterschiedlich. Auch bei /r/LibreOffice und /r/perl waren die Lösungsvorschläge für meine Fragen breit gestreut, was die mögliche Schreibweise der Formeln angeht. Letztendlich hat sich dann eine Schreibweise gefunden, die bei LibreOffice und MS Office funktioniert - hurra!

Für das Experimentieren hatte ich mir ein winziges Perl-Skript geschrieben, das eine XLSX-Datei mit zwei Sheets erzeugt und in einer Zelle des ersten Blatts einen Verweis auf das zweite Blatt einfügt. Beim Öffnen der Datei mit Office wird dann der Verweis ausgeführt und der referenzierte Wert (im Skript unten grün markiert) erscheint dynamisch in der Formelzelle. Der rot markierte Text wird durch die Zuweisung "$u[4]=..." durch die Formel ersetzt. Die Formel enthält noch Platzhalter %d und %s, um mit printf bestimmte Zeilennummern und Spaltennamen einzusetzen, während die XLSX-Datei erzeugt wird. Die write-Methode für eine Zeile des Spreadsheets erwartet eine Referenz auf ein Array mit den Zelleninhalten, deshalb muss ich als Parameter \@l angeben. Es gibt auch speziellere write-Methoden, mit denen man jede Zelle einzeln befüllen kann, aber write ist meistens gut darin, die Datentypen im Array zu erkennen und die Arbeit intern passend zu delegieren.

Das Spreadsheet sieht dann so aus:

Der erste Tab "unix users" enthält in Zelle E1 die Formel =IFERROR( VLOOKUP( A1; $Lookup.$A$1:$B$10000; 2; 0 );"" ). Statt der Platzhalters %d sieht man die Zeilennummer "1" bzw. die Spaltennummer "2" und statt der %s werden die Spaltennamen "A" und "B" eingesetzt, d.h. der Bereich, in dem nachgeschlagen wird, geht von A1 bis B1000 und es wird bei einem Treffer in A1 der Inhalt der 2. Spalte des Bereichs (hier dann B1) übernommen.
Den Formeltext in kursiv im vorigen Absatz habe ich übrigens aus dem Eingabefeld in LibreOffice kopiert. Man sieht, dass die Schreibweise nicht dem entspricht, was im Skript als Formelschreibweise verwendet wird - hier steht plötzlich $Lookup. und nicht Lookup!. Wenn ich mit unzip in die XLSX-Datei hineinschaue (trotz der Endung ist es eine schlichte Zip-Datei!), sehe ich die Schreibweise zwischen den XML-Tags für die Formel <f> ... </f> so wie im Skript: <f>IFERROR(VLOOKUP(A1,Lookup!$A$1:$B$10000,2,0),"")</f>


Und der zweite Tab "Lookup" enthält für jeden Unixuser die Beschreibung für das GECOS-Feld.

Für eine komplexe Geschichte wie eine XLSX-Datei ist das mit knapp 20 Zeilen perl zu bewerkstelligen. Ich liebe dieses Perl-Modul.
#!/usr/bin/perl -w
use strict 'refs';
use strict 'vars';
use utf8;
use Excel::Writer::XLSX;
 
my $excelout = 'formel.xlsx';
my $workbook = Excel::Writer::XLSX->new($excelout);
my $lookupfrm=qq{=IFERROR(VLOOKUP(A%d,Lookup!\$%s\$1:\$%s\$1000,%d,0),"")};
my $worksheet;
my @u=("root","*",0,0,"no gecos","/root","/bin/sh");
my $row=0;
 
print STDERR "# write Excel unix users\n";
$worksheet=$workbook->add_worksheet('unix users');
$worksheet->keep_leading_zeros();
$u[4]=sprintf($lookupfrm,1+$row,"A","B",2),
$worksheet->write($row, 0, \@u);
print STDERR "# unix user @u\n";
 
$worksheet=$workbook->add_worksheet('Lookup');
my @l=("root","root user");
$worksheet->write($row, 0, \@l);
print STDERR "# lookup @l\n";
 
$workbook->close();