Archiv Juli 2017

Mittwoch, 5. Juli 2017

Mit PowerShell ein Datum in einem spezifischen Format ausgeben

Heute habe ich an einem PowerShell-Script gearbeitet, welches Active Directory abfrägt und mir eine Liste von Benutzern ausgibt, die meinem Filter entsprechen.

Dabei interessierte mich auch das Attribut WhenCreated, welches angibt, wann ein Benutzerkonto erstellt wurde.

Mit dem Ausgabeformat dieses Feldes, welches als Datums-Objekt verarbeitet wird, war ich nicht zufrieden.

Doch wie gebe ich das Datum in einem von mir gewünschten Format aus? Nicht gerade trivial, aber es klappt:

...
$whenCreated = $objUser.whencreated
$whenCreate.GetDateTimeFormats()
...

So gibt man alle erdenklichen Variationen von Datumsformaten des aktuellen Datums-Objektes zurück. Nun muss man in der Liste nur noch die Zeilennummer des passenden Datumsformats finden, und integriert es dann folgendermassen in den Code. Ich habe mich dabei für die YYYY-MM-DD 00:00-Notation entschieden, welche in Zeile 103 ausgegeben wird:

...
$whenCreated = $objUser.whencreated
$whenCreatedFormatted = $whenCreate.GetDateTimeFormats()[103]
...

Via: How to format a DateTime in PowerShell?

Tags: , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 2. Juli 2017

Stockende Texteingabe in Web-Formularen mit hunderten HTML Input-Elementen unter Safari

Seit einigen Monaten (wahrscheinlich als Kollateralschaden eines Safari-Updates) habe ich ein Problem mit einer selber geschriebenen Web-Applikation: Die Eingabe von Zeichen in Textfelder eines Web-Formulars ist extrem langsam.

Zuerst verdächtigte eine veraltete jQuery-Bibliothek und onkeyup– und onblur-Attribute als Ursache, doch ein Update von jQuery hat keine Abhilfe geschafft.

Heute reichte es mir, und ich nahm erneut einen Anlauf, das Problem einzugrenzen. Eine Google-Suche förderte schnurstracks Probleme mit Safari unter iOS zu Tage, welche vor einigen Jahren bestanden (oder immer noch bestehen). Dies führte mich auf die Spur eines Stackexchange-Artikels, der identisches Verhalten auch in Safari unter macOS berichtete:

Safari on Mac responses slow when typing on a webpage with lots of <input type=“text”> fields

Das liess mich aufhorchen — denn die Applikation zeigt zwar nicht gerade hundert Eingabefelder an, doch in mehreren HTML-Tabellen werden alle Inhalte von Datenbank-Tabellen aufgelistet, woraus der Benutzer mit einem Klick auf einen Formular-Button den gewünschten Datensatz auswählen kann. Auf der Seite finden sich deshalb problemlos einige hundert input[button]-Elemente.

Könnte es sein, dass diese Elemente Safari spürbar langsamer machen? Ja!

Meine Lösung: Ich habe die Formular-Buttons in der Liste mit hinterlegtem JavaScript onclick mit HTML-Anchors ersetzt:

<a href="javascript:clicked();">wählen</a>

Seither fühlt sich der Browser wieder wie 2017 an, und nicht wie Netscape von 1998.

Tags: , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Samstag, 1. Juli 2017

Debian von einem bootbaren USB-Stick installieren

Kürzlich ist Debian 9.0 Stretch erschienen. Zeit, meinen USB-Stick mit den neuesten Installationsdateien zu bestücken, um zukünftige Linux-PCs von diesem Stick aus aufsetzen zu können.

Hierzu habe ich mir das neueste Debian Netinst ISO (für „Netzwerk-Installation“) heruntergeladen, welches man hier findet:

Debian — Network install from a minimal CD

Anschliessend habe ich den USB-Stick an meinen Mac mini eingesteckt (muss zwingend vor dem Starten von unetbootin gemacht werden, da das Drop-Down der Zielvolumes sonst leer bleibt), das bereits installierte unetbootin gestartet, das ISO ausgewählt und danach auf den USB-Stick kopieren lassen. Fertig.

Mangels eines verfügbaren, leeren Geräts konnte ich den Stick noch nicht testen, dieses Prozedere hat aber mit Debian 8.3 (Jessie) bereits perfekt funktioniert.

Tags: , , , , , , , , , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen