Reguläre Ausdrücke in Excel

Da schau – Excel bekommt wohl eine wirklich nützliche Erweiterung. Man soll in zukünfitgen Versionen reguläre Ausdrücke nutzen können.

Nach der Integration von Python in Excel ist das für mich die zweite wichtige Erweiterung, die Excel wirklich aufwertet. Reguläre Ausdrücke sind mächtig und nützlich. Zwar etwas schwer zu lesen, aber wenn man das Konzept verstanden hat, logisch. „Reguläre Ausdrücke in Excel“ weiterlesen

Neuauflage

2023 startet recht ruhig und die Zeit nutze ich (wie meist am Jahresanfang) für alle möglichen Aufgaben, die im normalen beruflichen Stress hintenanstehen. Etwa kümmere ich mich um meine Workstation oder bringe andere IT-Systeme auf Stand. Aber auch die Überarbeitung eines Buchs war fällig, das ich im „Selbstverlag/Eigenverlag“ publiziere. Diese Möglichkeit der Publikation nutze ich seit ein paar Jahren, um da Themen abzudecken, die für große Verlage uninteressant sind, ich aber entweder für eigene Schulungen Materialien brauche und/oder für das Thema immer noch eine Nische sehe bzw. sowieso Stoff paratt habe.

Ich habe so für XML, Reguläre Ausdrücke und Cobol entsprechende Bücher, die bei epubli gedruckt und vertrieben werden. Vor allen Dingen das Buch zu Cobol läuft gar nicht so schlecht und befindet sich mittlerweile in der 2. Auflage. Dann gibt es noch das erste Buch, das ich 2016 auf diese Weise überhaupt vertrieben habe. Dabei geht es vom Thema um HTML und Grundlagen der Webseitenerstellung.

Aufzucht und Pflege kleiner Webseiten mit HTML
Aufzucht und Pflege kleiner Webseiten mit HTML

Die Verkaufszahlen dieses Buchs sind – sehr vorsichtig ausgedrückt – ziemlich „überschaubar“. Genaugenommen so gering, dass diese die Arbeit nicht wert waren (niedriger zweistelliger Bereich). Das liegt sicher daran, dass HTML kein Thema ist, das derzeit noch hipp ist, die allgemeinen Verkaufszahlen von IT-Büchern extrem eingebrochen sind und ich im „Selbstverlag“ natürlich nicht die Reichweite von großen Verlagen habe, für die ich normalerweise schreibe.

Warum also überhaupt eine Überarbeitung? Mit dem Buch, das den Titel „Aufzucht und Pflege kleiner Webseiten mit HTML“ hat, gibt es für mich Besonderheiten. „Neuauflage“ weiterlesen

Python-Skript zur Spam-Abwehr

Die momentane Überflutung mit E-Mail-Spam auf meinem eigenen Server geht mir gewaltig auf die Nerven. Ich habe die Woche etwas Zeit gehabt und immer mal wieder diverse Wege ausprobiert, um diesen Angriffen etwas entgegenzusetzen. Und dabei – das ist das Positive – doch wieder was gelernt. Ich habe zig Einstellungen und Optionen an meinem Server verändert, was aber nur begrenzten Erfolg hatte und auch nicht ungefährlich ist. Sogar den Email-Server habe ich gewechselt.

Klar verwende ich SpamAssassin und habe auch Blacklist- und Whitelist-Einstellungen. Aber das hilft in meinem Fall nicht wirklich was. Oder anders ausgedrückt – ohne das Zeug würde ich vermutlich die 10-fache Menge an Spam bekommen, aber was immer noch durchkommt, ist erschreckend. Vor allen Dingen greifen die Einstellungen, dass man Absender blockiert oder freigibt, nicht. Wie gesagt – bekannte Spammer zu blocken ist garantiert sinnvoll, um 90% des Drecks wegzuhalten, aber nicht ausreichend. Denn die Spammer in der derzeitigen Flut verwenden Einmal-Adressen. Es ist daher leider vollkommen nutzlos, den Server, die Domain oder gar einen einzelnen Absender zu blockieren.

Leider kann ich auf meinem Server kein Greylisting aktivieren. Grundsätzlich ist es verfügbar, aber beim Aktivieren bekomme ich einen Bug im Serverskript angezeigt :-(. Dabei wäre Greylisting in vielen Fällen garantiert sinnvoll. Im Gegensatz zu Whitelisting (bekannte Adresse immer durchlassen) und Blacklisting (bekannte Adressen immer blockieren) lehnt man bei Greylisting unbekannte Adressen genau 1x mit einer passenden Meldung ab und trägt die Absenderadresse in eine DB ein, um bei der nächsten Zustellung den Absender durchzulassen. Seriöse Versender bzw. SMTP-Server senden einfach nach einer ersten Fehlermeldung des Adressaten automatisch nochmal (ohne dass es der Absender bemerkt), Spammer in der Regel nicht. Aber wie gesagt – kann ich (derzeit) nicht aktivieren. Mal sehen, ob ich den Fehler noch rausbekomme, aber ich bin einfach kein (echter) Admin – sondern Programmierer.

Natürlich habe ich auch SPF-Spamschutz aktiviert, aber dennoch erscheint mir das als ein nutzloser Kampf gegen Windmühlen. Eigentlich helfen nur Inhaltsfilter, denn die Spam-Flut lässt sich derzeit bei mir auf etwa 5 – 10 Schlagworte eingrenzen.

Solche Filter kann ich in Thunderbird sehr schön anlegen und auch meine GMX-Accounts erlauben das. Nur die E-Mail-Programme, die ich bisher für mein SmartPhone gefunden habe, haben dieses Feature nicht. Deshalb habe ich sogar mal versucht, meine rjs.de-Adresse auf eine GMX-Adresse weiterzuleiten, dort mit Inhaltsfiltern zu reinigen und dann zurück auf eine neue rjs.de-Adresse weiterzuleiten. Funktioniert, aber ist mir dann doch zu umständlich gewesen. Außerdem will ich meine bisherige E-Mail-Adresse nicht wegen diesen Dreckschweinen aufgeben bzw. so kastrieren.

Überhaupt – das Filtern verlagert die Sache – soweit ich es hinbekomme – vom Server in den Client, denn bei beiden POP3/IMAP-Servern, die ich verwende, gibt es dieses Filtern nach dem Inhalt leider nicht – soweit ich es herausgefunden habe .

Bei POP3-Accounts ist das Filtern mit einem E-Mail-Client aber sowieso ziemlich unnütz und deshalb habe ich jetzt mal die Geschichte komplett auf IMAP umgestellt. Hätte ich schon lange tun müssen. Aber auch dann muss ein Client mit Filtern regelmäßig das Konto überwachen (etwa ein entsprechend konfigurierter Thunderbird auf einem meiner Rechner), damit ein anderer Client ohne die passenden Filter (etwa auf dem SmartPhone) gar nicht erst den Schmutz lädt.

Die Grundidee schien mir aber ok, da ich anders nicht weiter kam. Aber einen PC Tag und Nacht laufen lassen und alle paar Minuten Thunderbird das Konto checken lassen? Das kostet zu viel Strom und ist schon auf den zweiten Blick nicht wirklich optimal.

Mir kam dann die Idee, meinen alten Raspberry Pi das machen zu lassen. Braucht kaum Strom und die Platine verstaubt sowieso vor sich hin, nachdem ich den Zwerg vom Kryptomining wieder abgezogen habe. Also damit eine Weile experimentiert. Da ich an der Platine weder Maus und Tastatur noch Monitor hängen habe und auch W-LAN nicht eingerichtet war, musste ich das Kistchen erst einmal etwas aktualisieren bzw. neu einrichten. Natürlich kann ich mit klassischem SSH mit X-Umleitung darauf zugreifen, aber ich arbeite auch bei Fernzugriff gerne mit dem Desktop. Nur komischer Weise ging der Zugriff über VNC auf den Raspi nicht. Obwohl auf der Raspi auch ein VNC-Server automatisch mit startet und ich das schon früher so gemacht habe. Ich habe es absolut nicht hinbekommen und in meiner Verzweiflung sogar xrdp installiert und – oh Wunder – der Remotedesktop-Zugriff ging einwandfrei – von Windows (!) aus.

Aber da es sich bei meinem Raspi um die Version 1 handelt, konnte ich da kein vernünftiges E-Mail-Programm installieren. Viel experimentiert bis hin zur versuchten Installation von iceweasel und icedove, aber erfolglos. Der Weg war mir dann einfach zu steinig und ich habe ihn als Sackgasse begraben.

Und dann kam mir ein Gedanke! Warum kein Python-Skript schreiben und damit das IMAP-Postfach regelmäßig abfragen? Die ursprüngliche Idee war, dass ich das dann auf dem Raspi laufen lasse, aber relativ schnell kam ich auf den Dreh, dass das natürlich auch auf dem Server selbst erfolgen kann. Ich habe ja in meinen regelmäßigen Entwickler-Tipp zu Python bei LinkedIn Learning schon einen Tipp veröffentlich, wie man per CronTab zeitgesteuert Python-Skripte ausführen kann. Was aber natürlich auch für den Raspi interessant wäre.

Das Skript, das ich dann programmiert habe, nutzt im Wesentlichen imaplib, ist aber noch nicht ganz fertig und auch noch nicht auf dem Server bzw. Raspi installiert. Aber wenn ich die derzeitige Vorversion in IDLE laufen lasse, kann ich recht zuverlässig im Betreff von E-Mails (theoretisch auch in der gesamten Mail) Schlagworte finden, die ich als SPAM empfinde und dann die Mails vom Skript automatisiert löschen lassen.

Ich werde von dem Skript noch eine Datei mit den Schlagworten einlesen lassen, reguläre Ausdrücke mit dem Modul re integrieren, das Skript eine Weile manuell testen, und dann in einen Cron-Job auf dem Server und/oder Raspi einbauen. Das sollte eine brauchbare Ergänzung meiner Spamabwehr werden und ich habe wie gesagt wieder neue Sachen gelernt, was dem Mist etwas Positives abgewinnt.

Und wenn mein Vorrat an bereits eingespielten Videos für die regelmäßigen Entwickler-Tipps zu Python zur Neige geht, habe ich damit ein interessantes Thema für die neuen Tipps, die ich dann vermutlich einspiele.

 

Reguläre Ausdrücke in Python

Bei LinkedIn Learning gibt es seit heute wieder einen neuen Entwickler-Tipp zu Python. Reguläre Ausdrücke in Python sind das Thema. Reguläre Ausdrücke sind sehr mächtige Features, um Suchausdrücke in Form von Pattern zu definieren. Das re-Modul ist der Zugang in Python, das in diesem Video vorgestellt wird. In Python ist das Modul re die Basis. Nicht die einzige Möglichkeit, aber das ist ein Standardmodul, mit dem man reguläre Ausdrücke formulieren und vor allen Dingen verwerten kann. Das Interessante ist nicht die Formulierung, das ist die Verwertung. Das heißt, es gibt Methoden, um reguläre Ausdrücke, also Such-Pattern in irgendeiner Form zu verarbeiten, nach Übereinstimmungen zu suchen, aber beispielsweise auch Texte an gewissen Stellen aufzusplitten und ähnliche Dinge.

Google My Business

Vor einiger Zeit ist mir bewusst geworden, dass „Hinz und Kunz“ bei Google Maps mit ihren Unternehmen eingetragen sind. Selbst mit den Kleinsten. Klar – das habe ich im Grunde schon häufig „gesehen“, aber eben nicht im klassischen Sinn „wahrgenommen“. Schon gar nicht, dass ich das mit einem „Geschäft“ – also  „My Business“ – auch machen sollte. Warum denn nicht?

Gut – nicht zuletzt durch Corona bin ich beruflich mehr oder weniger bis Anschlag ausgelastet und Marketing bzw. Werbung für neue Aufträge muss ich im Moment nicht machen. Aber es ist natürlich nicht klar, dass die Situation auf Dauer so bleibt. Gibt ja den Spruch, dass man für die Krise vorsorgen sollte, wenn es gerade läuft.

Also habe ich mich in Google Maps mit meinen beiden Standort eingetragen. Und wenn es nur Traffic auf meine Webseite leitet und damit meine Bücher und Onlinevideos bei LiL gekauft werden.

Jetzt hat mir nach der Anmeldung Google Post zugeschickt unter dem Stichwort „Google My Business“. Mit einem Gutschein für Google Ads. Den kann ich in der Tat gut nutzen, um meine im Eigenverlag publizierten Bücher ein wenig zu promoten. Denn da gibt es mittlerweile gleich 4 Stück.


Reguläre Ausdrücke – Kurz und bündig
Reguläre Ausdrücke - Kurz und bündig - von Ralph Steyer

Reguläre Ausdrücke – Kurz und bündig

Seitenzahl: 104 Seiten

ISBN: 9783753136493

Verkaufspreis: 11,99 €

XML – Kurz und bündig
XML - Kurz und bündig - von Ralph Steyer

XML – Kurz und bündig

ISBN: 9783753133423

Format: DIN A5 hoch

Seiten: 128

Softcover 14,99 €

Erscheinungsdatum: 13.12.2020

COBOL – Grundlagenkurs für Ein- und Umsteiger
COBOL - Grundlagenkurs für Ein- und Umsteiger - von Ralph Steyer

COBOL – Grundlagenkurs für Ein- und Umsteiger

Seitenzahl: 188 Seiten

Sprache: Deutsch

ISBN: 978-3-753139-03-6

Verkaufspreis: 21,99 €
Erscheinungsdatum: 26.12.2020

Aufzucht und Pflege kleiner Webseiten mit HTML – Grundlagen der Webseiten-Erstellung
Aufzucht und Pflege kleiner Webseiten mit HTML - Grundlagen der Webseiten-Erstellung - von Ralph Steyer

Aufzucht und Pflege kleiner Webseiten mit HTML – Grundlagen der Webseiten-Erstellung

ISBN: 9783741828829

Format: DIN A5 hoch

Seiten: 300

Erscheinungsdatum: 01.07.2016

Alle guten Dinge sind 3

Nachdem ich über den Dezember bereits im Eigenverlag zwei komplett neue Bücher zu XML und ein Buch zu regulären Ausdrücken veröffentlicht habe, habe ich Nägel mit Köpfen gemacht und gleich im Anschluss mein Buch zu Cobol aus dem Jahr 2017 komplett überarbeitet. Es kamen dabei gut 35 Seiten hinzu. Vor allen Dingen viele neue Beispiele. Aber auch die bestehenden habe ich gründlich überarbeitet, Aktualisierungen einfliessen lassen, einige Fehler und Ungenauigkeiten korrigiert und auch das Layout überarbeitet. 

Damit sollte das neue Buch zu Cobol auf ein paar Jahre hinaus zu gebrauchen sein, denn wirklich Neues tut sich bei Cobol ja nicht. Was konträr zur wieder steigenden Bedeutung von Cobol ist, denn ich verrate kein Geheimnis – COBOL gilt seit vielen Jahren als veraltet. Dennoch – gerade die Corona-Krise hat den Bedarf an COBOL-Kenntnissen wieder angekurbelt, denn viele alten Programme bei Behörden, Banken und Versicherungen sind immer noch in COBOL geschrieben. Die neuen und gestiegenen bzw. veränderten Anforderungen in Verbindung mit der Corona-Krise haben Anpassungen notwendig gemacht und dafür wurden und werden COBOL-Kapazitäten benötigt. Nur gibt es kaum noch COBOL-Programmierer, denn diese kommen mehr und mehr ins Rentenalter. Deshalb werden in der letzten Zeit auch wieder Fachinformatiker auf COBOL angesetzt. Das hätte man vor einigen Jahren niemals gedacht.

Das ist die Eckdaten zum überarbeiteten Buch:

  • Sprache: Deutsch
  • ISBN: 9783753139036
  • Format: DIN A5 hoch
  • Seiten: 188
  • Erscheinungsdatum: 26.12.2020

Vielleicht braucht ja jemand noch ein Last-Minute-Weihnachtsgeschenk

Ich kann irgendwie keine Ruhe halten. Da habe gerade so langsam meine Schulungen zurückgefahren, aber ich brauche immer etwas Sinnvolles zu tun. Und das darf nicht eine reine Beschäftigungstherapie sein, sondern muss entweder Spass machen wie Gleitschirmfliegen, Joggen, Radfahren, Motorradfahren, Musik-machen etc., was aber wegen Corona im Moment nur eingeschränkt geht. 

Oder eben sinnvoll sein. Oder noch besser beides.

Was bei mir bedeutet, ich beschäftige mich dann mit der IT und dem Computer, was – mir zumindest – eben auch Spass macht. 

Deshalb habe ich im Laufe der vorletzten Woche schon mein Material zu XML in  Buchform gegossen und im Selbstverlag veröffentlicht. 

Heute kann das nächste Projekt zum Abschluss, bei dem mein Material aus vielen Jahren Schulung etc. in ein Buch zu regulären Ausdrücken geflossen und ist. Dabei geht es um komplexere Suchausdrücke. Die Möglichkeiten zur Suche in Texten gehen  weiter als nur feste Textteile zu suchen, wenn man so genannte reguläre Ausdrücke (regular expressions) einsetzt. Diese regulären Ausdrücke kommen in den meisten Skript- und Programmiersprachen vor und auch viele Anwendungsprogramme zur Datenverarbeitung (insbesondere Textverarbeitungsprogramme) unterstützen reguläre Ausdrücke.

Das ist die Eckdaten zum Buch:

Auch wenn ich normalerweise für grosse Verlage Bücher schreibe, publiziere ich auch hin und wieder gerne im Selbstverlag. Das geht fix und kann Material, das mir sowieso zur Verfügung steht, schnell in eine Publikation destillieren. 

Und da beide Werke vor Weihnachten da sind – vielleicht braucht ja jemand noch ein Last-Minute-Weihnachtsgeschenk?!