Archiv für den Monat: April 2021

Flexibles Replace dank MatchEvaluator

Eine simple Anforderung soll (unbedingt;) per Regex gelöst werden: Der Ersatz einer Umgebungsvariablen in der alten Schreibweise aus einer Pfadangabe.

Beispiel:

Aus einem %temp%\test123 soll %temp% durch den Pfad des temp-Verzeichns im Benutzerprofil ersetzt werden.

Das Problem: Der Replace-Operator ermöglicht keine Ausdrücke in dem Einsetzwert.

Der folgende Befehl ersetzt lediglich %temp% durch temp:

"%temp%\test1234.dat" -replace "%(\w+)%", '$1'

Statt „temp“ soll z.B. [Environment]::GetEnvironment(Variable($1) eingesetzt werden.

Auch wenn ich einiges ausprobiert hatte, der zweite Wert darf nur aus $1, $S2 usw. bestehen. Ein Ausdruck, bei dem $1 als Operand vorkommt, ist nicht erlaubt.

Zum Glück gibt es eine flexible Alternative. Diese besteht darin, die statische Replace-Methode der Regex-Klasse zu verwenden beim Aufruf einen MatchEvaluator zu übergeben, der bei der PowerShell lediglich aus einem ScriptBlock besteht, dem der Match als Parameterwert übergeben wird:

$t = "%temp%\Test1234.dat" $m = "%(\w+)%" $MatchEval = { param($match) [Environment]::GetEnvironmentVariable($match.groups[1].value) } [Regex]::Replace($t, $m, $MatchEval)

PowerShell DevOps Global Summit 2021

Heute (29.4.2021) ist der letzte Tag des PowerShell DevOps Global Summit 2021, an dem ich dieses Mal virtuell teilnehme (auch wenn es natürlich sehr viel schöner gewesen wäre, im sehr schönen Meydenbauer Center in Bellevue/WA an der Konferenz teilzunehmen – vor allem die Happy Hour am Abend ist sehr gut;).

Es war eher ein spontaner Entschluss – die Konferenzteilnahme kostet 300 USD, was absolut in Ordnung ist.

Mein Zwischenfazit ist, dass alle Vorträge bislang sehr gut waren. Auch wenn es in einigen Vorträgen eher um die „Basics“ ging (etwa SQL Server-Konfiguration per DSC oder die API der PowerShell), waren die Vorträge eine sehr gute Mischung aus etwas Theorie und sehr viel Praxis. Und darauf kommt es am Ende immer an. Auch die Sprecher selber sind alle sehr gut.

Nicht ganz so inspirierend wie früher war die Keynote mit Jeffrey Snover und Joey Aiello. Erster ist bekanntlich der Erfinder der PowerShell, Letzter der Leiter des Entwicklerteams (beide waren auch bereits bei einer der letzten European PowerShell Conferences in Hannover dabei, so dass sie viele PowerShell-Fans inzwischen auch persönlich kennen dürften – zum Smalltalk gibt es auf der Konferenz stets viele Gelegenheiten). Es ging wieder einmal in erster Linie um einen Rückblick und über die Abrufzahlen von der Projektwebseite (Windows holt auf) und was mit PowerShell 7.2 kommen könnte. Zum einen ist das normal für ein größeres Open Source-Projekt. Zum anderen macht sich bei Menschen, die täglich in einem halben Dutzend Videokonferenzen sein dürften, irgendwann auch einmal die „Zoom-Müdigkeit“ bemerkbar. Immerhin haben die Konferenzveranstalter nicht Ms Teams verwendet, sondern eine kleine Plattform, die speziell für Online-Konferenzen gedacht ist, und die insgesamt sehr gut funktioniert hat.

Es war auch nett, einige der aus der PowerShell Community bekannten Namen zu lesen. Auch wenn der Austausch meistens nur im Chat-Fenster stattfand, kam doch etwas „Konferenz-Feeling“ auf.

Die Adresse des PowerShell Summits noch zum Schluss: https://events.devopscollective.org/event/powershell-devops-global-summit-2021/

Abb. Dieses Mal nur virtuell – der „State of the Union“-Vortrag 2021 zum aktuellen Stand der PowerShell mit PowerShell-Erfinder Jeffrey Snover und PowerShell-Chef-Projektleiter Joey Aiello

Neue PowerShell-Bücher

Gleich vorweg, diesen Eintrag wollte ich bereits im August 2020 schreiben, bin aber offenbar nicht dazu gekommen, ihn fertig zustellen – wie die Zeit vergeht…

Es gibt sie noch, die PowerShell-Bücher, in denen auch für erfahrene PowerShell-Anwender etwas Neues drin steht. Man findet sie allerdings weniger bei den Fachverlagen, diese Bücher werden schon seit längerem durch die Autoren direkt herausgegeben und über eBook-Plattformen wie lulu.com oder leanpub.com angeboten.

Das erste Buch von zwei Büchern, das ich kurz vorstellen möchte, ist allerdings nicht per Print on Demand erhältlich, das wäre aufgrund des Umfangs wahrscheinlich technisch gar nicht möglich. Es ist „das“ Standardwerk zur PowerShell im deutschsprachigen Raum von Holger Schwichtenberg, das ich vor ein paar Wochen vom Hanser Verlag erhalten habe (vielen Dank noch einmal an dieser Stelle – ich hätte es mir aber auch nicht gekauft, davon gleich mehr).

Es gibt sie noch, die dicken Wälzer, die im Buchregal nicht zu übersehen sind
Abb. Es gibt sie noch, die dicken Wälzer, die im Buchregal nicht zu übersehen sind

PowerShell 5/7 ist ein Buch, in dem praktisch alles drin steht was man als Anwender, aber auch als Entwickler zur PowerShell wissen muss und wissen könnte – natürlich gibt es immer noch Randbereiche, die auch in diesem Buch nicht behandelt werden, mir fehlt z.B. das Thema Release-Pipeline für PowerShell-Module oder mehr Informationen zum Script Analyzer, aber das sind wie gesagt Randbereiche, in die sich jeder erfahrene Anwender über das Know-how auf den entsprechenden Webseiten selber einarbeiten kann.

Zwei eher kuriose Details zu dem Buch:

  1. Mit 1.386 Seiten ist es glaube ich mein dickstes Buch im Regal (ein paar Seiten mehr als „Windows Server 2008“ von Eric Tierling) und mit Sicherheit ein paar Seiten mehr als „Krieg und Frieden“ von Tolstoy.
  2. Es dürfte das weltweit einzige IT-Buch sein, bei dem zwei nicht zusammenhängende Versionsnummern im Titel stehen.

Das zweite Buch geht in die entgegengesetzte Richtung. Anstatt ein zusammenhängendes Thema zu beschreiben, enthält es viele Themen, die lediglich den fortgeschrittenen Einsatz der PowerShell zum Thema haben. Es ist das PowerShell Conference Book, Volume 3, das von den Organisatoren des jährlich stattfindenden DevOps Summit herausgegeben wird.

https://leanpub.com/psconfbook3

Mit einem Minimum-Preis von 49.99 USD ist es nicht gerade günstig (ich hatte es gleich zum „Einführungspreis“ von 20 USD gekauft), aber es enthält das sprichwörtlich „geballte Wissen“, das man normaleweise nur durch Teilnahme an einer solchen Konferenz erhält und die ist bekanntlich deutlich kostspieliger (ähnliche Überlegungen dürften auch die Herausgeber angestellt haben). Laut Webseite verdienen die Autoren an dem Buch nichts, der Gewinn fließt komplett an eine Stiftung (https://events.devopscollective.org/onramp/scholarship/).

Abb. Geballtes Wissen einer Fachkonferenz

EIne weitere Buchempfehlung betrifft ein Buch, das ich bislang weder gekauft noch gelesen habe, sondern nur das kostenlose Probekapitel kenne. In „Shell of an Idea“ beschreibt PowerShell Guru Don Jones ausführlich die Anfänge des PowerShell-Projekts bei Microsoft und dabei vor allem über die Widrigkeiten, denen das kleine Team von Anfang ausgesetzt war (es hätte nicht viel gefehlt und wir hätten anstelle der PowerShell einen 1:1 Port einer gewöhnlichen Unix-Shell erhalten). Das Vorwort ist natürlich von Jeffrey Snover, dem geistigen Vater der PowerShell. Auch wenn das Buch bestimmt sehr interessant ist und ich es natürlich auch irgendwann in naher Zukunft lesen werde, es ist nur etwas für die paar Tausend „Hardcore PowerShell Fans“ auf der ganzen Welt, die aus erster Hand erfahren wollen wie alles anfing (vieles hat Jeffrey Snover in den letzten Jahren in zahlreichen Interviews und in seinen Vorträgen, die es fast alle auf YouTube gibt, bereits erzählt).

StackOverflow führt offenbar ein Click-Limit ein – droht dem Copy&Paste-Coding damit das Aus?

Ausgerechnet zum 1. April führt StackOverflow (S0) eine Neuerung ein, die vielen Entwicklern, die ohne SO nicht mehr produktiv entwickeln können, nicht gefallen wird und vielleicht sogar dazu könnte, dass das Know how für die tägliche Programmierung (etwa „wie führe ich einen SQL-Join durch?“, „Wie sortiere ich eine Hashtable per LINQ?“ oder „Welche Alternativen gibt es zu JavaScript?“) wieder aus klassischen Quellen (etwa einem Fachbuch) bezogen werden muss.

In Zukunft soll es offenbar eine Begrenzung der Copy-Shortcuts pro Session geben, wenngleich nicht klar ist, auf welchen Zeitraum sich die Begrenzung bezieht. Eventuell gilt das Limit von 3 Copy-Shortcuts pro Tag, es könnte aber auch an die IP-Adresse gekoppelt sein. Dann würde es lebenslänglich gelten.

Bild: In Zukunft kein Copy-Paste-Coding mehr möglich?

Kostenlos sind 3 Copy-Shortcuts, weitere Copy-Aktionen sind dann nur noch über ein spezielles Keyboard möglich, das exlusiv von StackOverflow vertrieben wird.

Bild: Wer StackOverflow in Zukunft uneingeschränkt für Copy&Paste-Coding nutzen möchte, benätigt dafür eine proprietäre Hardware-Erweiterung

Auch wenn klar ist, dass StackOverflow irgendwann auch einmal Geld verdienen muss, für mich ist das der falsche Ansatz. Entwickler zu irgendetwas zwingen zu wollen, hat noch nie etwas gebracht (sonst gäbe es schon längst fehlerfreien Code).

Ich werde mir das Keyboard definitiv nicht anschaffen und in Zukunft einfach andere Quellen nutzen. Dass ich aber offizielle Dokumentationen durchforsten werde, kann ich mir nur schwer vorstellen. Im Grunde läuft es auf die simple Frage hinaus, wie Software-Entwicklung vor der Erfindung von StackOverflow überhaupt möglich war. Die Frage können vielleicht EDV-Historiker beantworten.