Das Wetter aus dem Singularitätenkalender

18.07.2017

18.07. Wechselhaft, kühl, häufig Regen, aber selten ganz verregnete Tage. („Hundstage“)


Erläuterung:

Anfang der 80er Jahre habe ich als Schüler aus einem Schulbuch der Geographie den Singularitätenkalender für Mitteleuropa abgeschrieben. Dieser Kalender beschreibt wahrscheinliche Wetterlagen, die sich in der Vergangenheit häufig wiederholt haben.


Das Wetter aus dem Singularitätenkalender

12.07.2017

12.07. Neigung zu heiterer, trockener Witterung.


Erläuterung:

Anfang der 80er Jahre habe ich als Schüler aus einem Schulbuch der Geographie den Singularitätenkalender für Mitteleuropa abgeschrieben. Dieser Kalender beschreibt wahrscheinliche Wetterlagen, die sich in der Vergangenheit häufig wiederholt haben.


Das Wetter aus dem Singularitätenkalender

02.07.2017

02.07. Vorstoß kühler Meeresluft, Regenschauer und Gewitter.


Erläuterung:

Anfang der 80er Jahre habe ich als Schüler aus einem Schulbuch der Geographie den Singularitätenkalender für Mitteleuropa abgeschrieben. Dieser Kalender beschreibt wahrscheinliche Wetterlagen, die sich in der Vergangenheit häufig wiederholt haben.


Firefox ESR

01.07.2017

01.07.17

Ja, ich habe es erst heute entdeckt. ;-) Es nennt sich „extended support release“ und handelt sich um eine etwas ältere Version des Firefox, die für längere Zeit mit Sicherheitsupdates versorgt wird.

Da neue Versionen des Firefox häufig Probleme mit den add-ons bringen, macht es Sinn länger bei einer etwas älteren Version zu bleiben.

Informationen in englischer Sprache findet man auf der Seite Mozilla Firefox ESR Overview.
Herunterladen kann man die langzeitunterstützte Version hier. Dieser Link wird auf meiner Seite fest verlinkt zu finden sein.


06.07.17 Nachtrag

Debian hatte früher den häufig veralteten Iceweasel in den Quellen. Deshalb habe ich seit Ewigkeiten den Firefox direkt von Mozilla heruntergeladen, entpackt und das Skript firefox darin gestartet. Nun habe ich dort die ESR-Version entdeckt. Man kann beide Versionen direkt im Firefox aktualisieren und erhält auch im Browser Meldungen, wenn neue Versionen vorliegen. Man ist mit den Updates unabhängig von Debian und bekommt ganz sicher auch schneller die Sicherheitslücken gestopft.

Die Version mit Namen Firefox habe ich noch nie aus den Debian-Quellen installiert.


Das Wetter aus dem Singularitätenkalender

27.06.2017

27.06. Häufig sonnig und trocken, besonders im Norden.


Erläuterung:

Anfang der 80er Jahre habe ich als Schüler aus einem Schulbuch der Geographie den Singularitätenkalender für Mitteleuropa abgeschrieben. Dieser Kalender beschreibt wahrscheinliche Wetterlagen, die sich in der Vergangenheit häufig wiederholt haben.


„intelligente“ „Lautsprecher“ sollen uns zu Hause belauschen

25.06.2017

es existieren momentan:
1. „Echo“ von Amazon (mit Alexa, für Bestellungen)
2. „Home“ von google
3. Apple (für itunes) folgt ab Weihnachten

Entscheidend ist nicht die Lautsprecherfunktion, sondern die Spracheingabe. Hierzu wird der Raum über ein eingebautes Mikrophon permanent abgehört und jedes gesprochene Wort überwacht. Die Audio-Daten werden permanent und komplett zur Zentrale (in der Regel wird es eine Cloud bei einem der o.g. Konzerne sein) übertragen und werden dort für immer gespeichert (Kopien lassen sich natürlich beliebig erstellen, verkaufen oder von staatlichen Stellen einfordern). In diesen Zentralen werden dann die Befehle erkannt, die Antwort errechnet und an den Benutzer zurückgeschickt. Die Intelligenz befindet sich also nicht in den Lautsprechern, sondern in den Computern der o.g. Konzerne. Über diesen Weg sollen jetzt auch Hausgeräte gesteuert werden können (Smart Home, Internet der Dinge). Bei selbstfahrenden Autos wird es eine ähnliche Technik geben. Die Bequemlichkeit wird hier erkauft mit dem Verzicht auf jegliche Privatsphäre.

Mein Urteil: NICHT kaufen! Finger weg von diesem Schrott!


Debian 9 Stretch wird veröffentlicht

18.06.2017

18.06.17 Debian 9 Stretch Infos zur Veröffentlichung

Pressemitteilung Debian 9 Stretch veröffentlicht [de]

Informationen zur Debian-Stretch-Veröffentlichung [de]

Debian 9 Veröffentlichungshinweise (Releasenotes) [de]

Debian 9.0 Stretch has been released! [en]


17.06.17 Debian 9 Stretch wird heute veröffentlicht

siehe bits.debian.org


27.05.17 Ankündigung der Veröffentlichung

Debian 9 Stretch wird voraussichtlich am Samstag, den 17.06.17 veröffentlicht, wie auf der Mailing-Liste debian-devel-announce angekündigt wurde.


Genialer DOS-Kalender Unikal

16.06.2017

Unikal begleitet mich seit vielen Jahren. Damals hatte ich noch keine Internet-Flat und ans Bloggen habe ich damals auch noch nicht gedacht. Ich brauchte für meine Kalender einfach ein paar offline-Informationen, die ich sehr häufig diesem DOS-Kalender entnommen habe. Und dann habe ich zu Beginn, vor ca. 20 Jahren, mit Excel manuell einen Jahreskalender erstellt, den man hier auf den Seiten als pdf finden kann. Nach und nach habe ich einige Funktionen und Berechnungen automatisiert – aus Faulheit und um Fehler zu vermeiden.

Unikal kann wirklich viel mehr als mein Kalender, es sind wahnsinnig viele Formeln eingeflossen und ich kann mir nur im Ansatz vorstellen wie viel Enthusiasmus dahinter gestanden haben muß. Leider ist er für die DOS-Oberfläche programmiert.

Ich verfolge ja den Ansatz, alle Probleme mit Calc bzw. Excel lösen zu wollen. Ich bin auch dabei, die Berechnungen zu dokumentieren, um irgendwann jedem Menschen eine Fortführung meiner Arbeit zu ermöglichen. Nur mit einer vernünftigen Doku kann man unabhängig von der jeweiligen Programmiersprache oder Umgebung einen solchen Kalender auf andere Plattformen übertragen und weiter leben lassen. Ja, eines Tages will ich die .ods-Datei veröffentlichen. Ich bin gespannt wie lange das noch dauern wird bis ich eine gewisse Zufriedenheit mit meiner Arbeit gefunden habe.

Den genialen DOS-Kalender Unikal kann man auf der Seite computus.de herunterladen. Er läuft bei mir unter Debian in der Dosbox. Ich werde diese Seite auch fest verlinken.
Ein fettes Dankeschön an den Autoren! :-)


Persönliche Firewall für Linux: firewalld

15.06.2017

Mit Debian 9 Stretch ist es mir bislang nicht gelungen, die alte und von mir geschätzte Personal Firewall namens „Firestarter“ zum laufen zu bringen. Die Veränderungen im Betriebssystem sind so gravierend, dass man mit wenigen Handgriffen keine Chance hat, Firestarter anzupassen. Hier müßten Programmierer ran. Ich finde das wirklich sehr schade. Es war eine gut bedienbare Oberfläche mit allen wichtigen Funktionen, die man so erwartet und benötigt.

Auf der Suche nach einer Alternative bin ich über gufw gestolpert. Es wird offensichtlich von Ubuntu eingesetzt und empfohlen. Dieses Tool konnte mich allerdings überhaupt nicht überzeugen. Hübsche Icons allein sind nicht das was ich suche, sondern eine echte Hilfe, die Ports und Berechtigungen im Netz zu verwalten. Wenn dann noch eine Warnung erscheint wenn jemand eindringen will, bin ich schon glücklich. Das kann man hier alles vergessen.

Eine andere Alternative heißt firewalld und stammt aus der RedHat– bzw. Fedora-Familie, wo auch das allseits gehasste systemd und pulseaudio ihren Ursprung haben. Muß man das alles nicht mögen, aber das ist jetzt nunmal fester Bestandteil von Linux und somit Standard. Und da Abhängigkeiten und Inkompatibilitäten erzeugt wurden, fehlt die Möglichkeit hier frei auszuwählen.

Installieren kann man „firewalld“ mit
$ sudo apt-get install firewalld firewall-applet firewall-config

Das graphische Konfigurationstool startet man mit
$ firewall-config

Das Symbol in der Leiste der graphischen Oberfläche startet man manuell mit
$ firewall-applet

Momentan teste ich diese Firewall. Es kam zu keinen Abstürzen oder ähnlichen Problemen. Allerdings ist auch diese Firewall nicht so einfach zu bedienen wie Firestarter und meldet bislang auch keine Eindringversuche. Wenn ich mal die Zeit finde, werde ich selber versuchen, meinen Computer als ungebetener Gast zu betreten. Mal sehen ob es dann eine Reaktion gibt.


Excel-Funktionen in Excel-Visual-Basic nutzen

14.06.2017

am Beispiel sverweis = vlookup

Zunächst legen wir ein paar Daten in unserem Excel-Blatt an. Ich benutze hier die Zellen wie folgt:
A1 soll das Ergebnis enthalten
B1 enthält den Suchwert

C in dieser Spalte will ich nach meinem Wert aus B1 suchen
D diese Spalte enthält das Ergebnis, das meine Prozedur in A1 ausgeben soll

Nun kann ich es mir leicht machen und die Funktion sverweis (im deutschen Excel) in Feld A1 schreiben:
=SVERWEIS(B1;C:D;2;FALSCH)

Eine Funktion hat also immer das Format =FUNKTIONSNAME(). In Klammern werden diverse Parameter übergeben und mit Semikolon getrennt. Nachdem man Enter betätigt hat wird die Funktion automatisch ausgeführt und sie liefert einen Wert zurück und schickt ihn genau in das Feld, in dem die Funktion steht.

In unserem Beispiel nimmt sich also unsere Funktion sverweis den Wert 123 aus Feld B1 und macht sich in Spalte C auf die Suche danach. Gleich in der 1. Zeile wird sie fündig, geht in die 2. Spalte des angegebenen Bereichs, also in Spalte D, und liefert den Wert 1 zurück. Hiermit ist die Funktion beendet.

Dass es einen zweiten Fundort in Zelle C3 gibt und somit auch eine zweite Lösung 3 in Zelle D3 interessiert sverweis nicht. Es ist also so, als hätten wir unsere Funktion losgeschickt, im Telefonbuch nach Müller zu suchen und beim ersten Müller zeigt sie die Rufnummer dieses Müllers an und macht Schluß. Weitere Müllers sind mit dieser Funktion nicht erreichbar. Aber das soll uns jetzt nicht weiter stören.

Wir wollen nun diese Funktion in Visual Basic einsetzen. In dieser Umgebung nennt man diese Funktionen „Methoden“. Wir betreten hier also den objektorientierten Bereich und somit wird leider auch eine neue Sprache und eine andere Sichtweise auf die Dinge angewendet. Das gestaltet die ganze Sache ein wenig fremd und schwierig und schließt viele Menschen davon aus, selber zu programmieren.

Mit Alt-F11 starten wir die Visual Basic Umgebung unter Excel. Wir fügen ein neues Modul hinzu (Einfügen > Modul) und fügen dann eine Prozedur hinzu (Einfügen > Prozedur). Wir müssen uns einen Namen ausdenken, der noch nicht vergeben ist – test wäre eine Möglichkeit. Den Typen belassen wir auf Sub und den Gültigkeitsbereich auf Public > OK.

Excel erstellt ein Grundgerüst für unser Programm:

Public Sub test()
End Sub

Unser Programm soll nun nur aus einer einzigen Zeile bestehen. Diese ist allerdings bereits kompliziert genug.

Range("A1") = Application.WorksheetFunction.VLookup(Range("B1"), Range("C:D"), 2, False)

Die Methode Application.WorksheetFunction.VLookup muß mit dem gesamten Pfad angegeben werden.

Wenn wir diese Zeile in Visual Basic hineinkopieren, müssen wir das Programm mit der Play-Taste (grüner, nach rechts zeigender Pfeil oben) starten.

Der erste Unterschied zwischen dieser Zeile und der gewohnten Funktion besteht darin, dass in Visual Basic immer englische Befehle gelten (hier vlookup), während Funktionen in unserem Excel-Arbeitsblatt immer in der Sprache angenommen werden, mit der Excel läuft (hier sverweis). Eine Übersetzungstabelle für Excel-Befehle findet man hier.

Die Parameter der Funktion werden mit Komma getrennt und nicht mit Semikolon.

Wenn ich einen Tabellenbereich mit Range angeben will, kann ich mich auf das aktuelle Tabellenblatt beziehen wie in Range(„B1“). Ich könnte mich auch ausdrücklich auf Tabelle1.Range(„B1“) beziehen. Da ich hier nur mit einem Blatt arbeite, ist es unwichtig Tabelle1 zu erwähnen, aber durchaus möglich.

Wozu muß man aber Range(„“) um das Feld A1 schreiben? In Visual Basic würde A1 ansonsten einfach als irgendeine neue Variable angelegt werden und mit dem Ergebnis des Terms rechts vom Gleichheitszeichen befüllt werden. Eine Ausgabe würde nicht stattfinden. Visual Basic kennt zunächst keine Tabellenfelder. Wir müssen es ausdrücklich sagen.

Ändern wir einmal
VLookup(Range("B1")
in
VLookup("B1")

Range("A1") = Application.WorksheetFunction.VLookup("B1", Range("C:D"), 2, False)

Nun sucht unsere Funktion nicht mehr nach dem was in der Zelle B1 steht, sondern nach dem Wert B1 in Spalte C, findet ihn in Zeile 2 und liefert den Wert 2 aus Zelle D2.

Wenn wir auch noch die „“ um B1 herum weglassen, erhalten wir eine Fehlermeldung, weil jetzt ein unbekannter Wert in einer undefinierten Variablen an die Funktion übergeben wird.

Range verlangt also nach einem String, der den Bereich (in unserem Fall nur eine einzelne Zelle) definiert. Range liefert wiederum den Inhalt der Zelle an vlookup.

Wir haben nun eine Prozedur erstellt, die wir manuell aufrufen müssen. Wir können diese Prozedur in eine Funktion umwandeln, indem wir in unserem Quellcode den Begriff Sub durch Function insgesamt zweimal ersetzen. Wenn wir Sub oben ersetzen, wird automatisch auch unten End Sub durch End Function ersetzt.

Nun möchten wir noch die Übergabe des Suchwertes an die Funktion realisieren. Die Übergabe erfolgt immer innerhalb der Klammern. Wir wollen später eine Funktion erhalten, die man wie folgt aufrufen kann:
=TEST(B1)
Die einleitenden Worte müssen also lauten:
Public Function test(Wert)
Schließlich soll die Ausgabe unseres Terms nicht direkt und absolut in eine Zelle erfolgen, sondern – wie bei sverweis – als Rückgabe der Funktion test. Also:

test = Application.WorksheetFunction.VLookup(Wert, Range("C:D"), 2, False)

Nun haben wir die Funktion sverweis über den Umweg der Programmierung in Visual Basic mit Hilfe der vorhandenen Methode vlookup ersetzt. Mit diesem Wissen kann man auch andere vorhandene Funktionen nutzen, um sie zu erweitern und für eigene Projekte einzusetzen.