Freitag, 9. April 2021

Raspberry Pi - Verwendung von Docker Compose (Beispiel OpenAPI-Generator c't 25/2020)

In diesem Beitrag zeige ich auf Basis des Artikels c't 25/2020 S. 160 OpenAPI-Generator, wie man Docker Compose verwendet. Die Installation wurde bereits in dem Artikel Raspberry Pi - Docker Compose installieren beschrieben.

Docker Compose ermöglicht mehrere Container mit einzelnen Anwendungen oder Komponenten zu starten oder um Container automatisch zu verknüpfen und Volumes einzurichten.

Die Verwendung von Docker Compose benötigt die folgenden Schritte

  1. Erstellen eines Verzeichnis für die Installationsdateien.
    • mkdir rest-api-demo
  2. In diesem Verzeichnis muss jetzt die YAML-Datei docker-compose.yml abgelegt/erstellt werden.
    • Images mit dem Apache Webserver und PHP-Compiler:
      version: "3"
      services:
        server:
          image: "jorgenjo/rpi-apache-php" #php:apache
          volumes:
            - ./server:/var/www/html
          ports:
            - 8001:80
        client:
          image: "jorgenjo/rpi-apache-php" #php:apache
          volumes:
            - ./client:/var/www/html
          ports:
            - 8000:80
          depends_on:
            - server
  3. Im selben Verzeichnis, den/die Container zu starten.
    • ~/rest-api-demo $ sudo docker-compose up -d

    • Hinweis: Docker-Compose wird im Hintergrund (-d) ausgeführ

Test der Umgebung (Server und Client)

In beiden Verzeichnissen (Server/Client) jeweils eine index.php Datei erstellen und anschließend aufrufen.

Server: index.php
<?php echo "Test"; ?>

Client: index.php
<?php echo file_get_content("http://server"); ?>


Die Basis ist jetzt geschafft, weiter geht es jetzt mit der Anleitung unter https://github.com/manuelottlik/ct-oas-praxis/.

Nützliche Docker Compose Befehle

Erstellte Container abzeigen:
sudo docker-compose ps

Container einer Anwendungsgruppe stoppen:
sudo docker-compose stop 

Containe entfernen (sofern gestoppt):
sudo docker-compose rm 

Alle Container in einer Anwendungsgruppe stoppen und gleichzeitig entfernen:
sudo docker-compose down

Alle Data-Volumes entfernen (-v):
sudo docker-compose down -v

Donnerstag, 8. April 2021

Raspberry Pi - SD Card Speed Test

Wie schnell ist meine SD-Karte? Die Raspberry Pi Foundation hat für diese Frage ein Diagnose-Tool für Speed Tests veröffentlicht. Das kostenlose Tool nennt sich "SD Card Speed Test" und misst die Schreib- und Lesegeschwindigkeit der verbauten Karte.


Installation erfolgt über das Terminal-Fenster mit dem folgenden Befehl:

sudo apt update
sudo apt install agnostics


Siehe auch weitere Details im Raspberry Pi Blog:


Als SD-Karte kann ich persönlich die PNY PRO Elite 64GB microSDHC-Speicherkarte empfehlen.

Montag, 5. April 2021

Kodi - Smartphone als Fernbedienung nutzen

Die sehr beliebte App "Kodi" (ehemals XBMC) ist eine freie Mediaplayer-Software und diese lässt sich mit Hilfe auch durch ein Smartphone (als Fernbedienung) bedienen.

Kodi Fernbedienung

Man muss sich dafür nur eine der folgenden Apps auf sein Smartphone laden:

Anschließend kann das Smartphone als Fernbedienung für Kodi verwendet werden.

Die Konfiguration ist relativ einfach, so muss der jeweilige Host hinzugefügt werden um die App mit der jeweiligen Kodi-Installation zu verbinden. In der Regel funktioniert dies bereits über die automatische Suche oder die IP-Adresse des PC/Raspberry auf dem Kodi installiert ist. 

Hinweis I: Auf dem Smartphone muss natürlich das WLAN aktiviert sein

Hinweis II: Die Steuerung über HTTP muss in der Kodi-Installation aktiviert sein, siehe nachfolgende Bilder.


In dem folgenden Beitrag "Mit Kodi auf die Synology Diskstation zugreifen" beschreibe ich, wie man auf einen gemeinsamen NAS (Film-)Ordner zugreifen kann.

Sonntag, 4. April 2021

Raspberry Pi - GPIO-Pin Belegung und Schaltungen (Fritzing)

In dem Beitrag "Raspberry Pi - Temperatursensor DS18B20" verweise ich auf die Raspberry Pi GPIO Anschlussbelegung. Die Pinleiste inkl. der Funktionen wird auf der folgenden Seite Raspberry Pi Pinout bis ins kleinste Detail beschrieben.


GPIO-Belegungsplan und Schaltungen (Fritzing)

Die Funktionen der 40 GPIO-Pins sind oft nur mühsam zu ermitteln. Einen ausführlichen Belegungsplan findet man auf https://de.pinout.xyz.

Nützlich ist auch die Software Fritzing. Mit ihr ist es möglich, elektronische Schaltungen am Computer zu entwerfen oder seine Projekte zu dokumentieren. Siehe fritzing.org.

Raspberry Pi - TV HAT

Das eigene Raspberry Mediacenter lässt sich mittlerweile um einen Raspberry Pi TV HAT (ca. 10 Euro) um z.B. die öffentlich-rechtlichen TV-Programme zu empfangen, erweitern. 

Ausführliche Informationen zur Konfiguration finden sich in dem folgenden Blog: 

Offizielle Mitteilung im Raspberry Pi Blog:


Donnerstag, 1. April 2021

youtube-dl FFmpeg - Download mpd (MPEG DASH) Video Streams

Mit Hilfe des Beitrags "Download von Video Streams mit ffmpeg" ist es Möglich .m3u8 Dateien herunterladen, jetzt fehlt nur noch eine Möglichkeit .mpd  (MPEG DASH) Video Streams herunterladen zu können. Dies geht mit Hilfe von youtube-dl, welches bereits in dem folgenden Beitrag "Rund um Linux - Einige nützliche Befehle für die Shell II (Download mit wget und seq)" erwähnt wurde.

Um den Video- und Audiostream in eine einzige Datei zusammenführen zu können, muss FFmpeg inkl. libav installiert sein. Andernfalls erstellt youtube-dl für jeden Stream eine separate Datei (eine für Audio und eine für Video). Für die Wahl der Download Qualität siehe auch https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection.

/usr/bin/python3 /usr/local/bin/youtube-dl -f bestvideo+bestaudio https://cs.xyz.io/v1/TV/pd/93/9B/36/C9/FO-1234567ABC/manifest.mpd


Installation youtube-dl

Siehe hierzu auch http://ytdl-org.github.io/youtube-dl/download.html.

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl


Installation FFmpeg inkl. libav

Fehlt die Installation kommt es bei der Ausführung zu folgender Meldung:
  • WARNING: You have requested multiple formats but ffmpeg or avconv are not installed. The formats won't be merged. 
sudo apt-get install ffmpeg (siehe auch https://ffmpeg.org/download.html)

Zusätzliche Codecs (siehe auch https://libav.org/)
sudo apt-get install libavcodec-extra

Jetzt muss man nur noch in der Lage sein, youtube-dl mit der eigenen Python-Version auszuführen zu können:
  • /usr/bin/python3 /usr/local/bin/youtube-dl

Mittwoch, 31. März 2021

Fehler - "0-Fehler" Strategie

Nach den "Drei Arten von Misserfolgen" - Vermeidbare-, Komplexitätsbedingte- und Intelligente-Misserfolge, möchte ich kurz auf die Fehler eingehen, die immer zu vermeiden sind.

Die folgenden Themen müssen als "0-Fehler" Strategie betrachtet werden:

  • Sicherheit (z.B. IT-Security oder Datenschutz)
  • Produkte/ Services (z.B. Verfügbarkeit)
  • Produktion
  • Prozesse (z.B. Daten)
  • Compliance (z.B. Vergabe von Aufträgen und Ausschreibungen)
  • Gesetzeskonformität (z.B. Steuerrecht oder DSGVO)
  • Arbeitsregeln (z.B. Mobbing und Geschlechtergerechte Sprache)


Wichtig: Der zwischenmenschliche Umgang mit Fehlern muss gewährleistet sein, nur so kann der sachliche Umgang mit Fehlern im Rahmen des Fehlermanagements funktionieren!

Deshalb muss vor der Umsetzung dieser Strategie im Team bzw. der Firma auch der entsprechenden Rahmen (mentale Einstellung) zum offenen Umgang mit den o.g. Fehlern bereitgestellt werden.

Anschließend kann man aus den Fehlern lernen in dem man sich mit verschiedenen Methoden, Prozessen und Techniken mit den jeweiligen Ursachen beschäftigen.

Montag, 22. März 2021

Linux - PDF Dateien Passwort-Schutz entfernen mit QPDF

Will man PDF Dateien dauerhaft ohne ein Passwort archivieren und dieses entfernen, geht dies z.B. mit QPDF. Es ist ein OpenSource Tool für die Kommandozeile und kann als Ergäzung zu den Tools von meinem Beitrag Linux - PDF Dokumente zusammenfügen / Merge PDF files gesehen werden.

Die Installation erfolgt über die jeweilige Paketverwaltung:

sudo apt install qpdf


Passwortschutz von PDF Dateien entfernen:

qpdf --password=1234 --decrypt DateiMitPW.pdf DateiOhnePW.pdf

Natürlich muss das Passwort bekannt sein, qpdf kann keine PDF Dateien knacken.

Weitere Befehle wie z.B. --split-pages finden sich unter http://qpdf.sourceforge.net/files/qpdf-manual.html#ref.basic-options.

Hinweis: Auch unter Windows ist eine Verwendung zum Beispiel mit Hilfe des Windows-Subsystem für Linux (WSL) möglich

Sonntag, 21. März 2021

Dateien verstecken - Unsichtbarer Ordner mit Alt+255 erstellen

Mit Hilfe von einem geschützten Leerzeichen (no-break space) kann man z.B. auf dem Desktop einen unsichtbaren Ordner anlegen.

Beim Umbenennen eines neuen Ordners wird mit Hilfe von Alt+255 ein geschütztes Leerzeichen eingefügt. Mit Hilfe von Rechtsklick und "Anpassen" kann man jetzt ein „leeres Symbol“ auswählen.


Anschließend sieht man den den Ordner nur, wenn man mit der Maus darüber geht und diesen markiert, als leere Zeile im Explorer oder in der Eingabeaufforderung.

Will man in der Eingabeaufforderung den Ordner umbennen, geht dies am Besten folgendermaßen:

  • C:\Users\hemel\Desktop
  • ren " " NeuerOrdner (Alt+255, um das geschützte Leerzeichen zu erzeugen)

Hinweis: Im ASCII-Zeichensatz (1963) sind keine geschützten Leerzeichen enthalten. Gerade ältere Computersysteme konnten sie nicht darstellen. Also ideal um damals z.B. unter MS-DOS  Dateien zu verstecken.

Samstag, 20. März 2021

Knoppix auf USB Stick installieren unter Windows - Update 2021

Ein kurzes Update zum Beitrag Knoppix auf USB Stick installieren unter Windows aus 2018. Mittlerweile gibt es die Version 9.1, welche auf Debian bullseye basiert und bietet nun auch eine Unterstützung für UEFI Secure Boot.

Bootoptionen von Knoppix

Die Bootoptionen zum Starten von Knoppix sind meistens nicht erforderlich. Knoppix startet jedoch für einige Sekunden mit einem Boot-Prompt. Hier lassen sich jetzt Bootoptionen (z.B. KDE-Desktop start) angeben.

Weiterhin bietet sich Knoppix wie eh und je gut für die Rettung des eigenen Systems an, dabei unterstützen die folgenden Tools wie dd (disk dump), ddrescue, ntfsclone und GParted.

Samstag, 13. März 2021

Fehler - Arten von Misserfolgen

Im wesentlichen gibt es die folgenden drei Arten von Misserfolgen.

Vermeidbare Misserfolge
Sind die Folge von Unaufmerksamkeit, Nachlässigkeit, Unfähigkeit oder Abweichung von Regeln und Protokollen.

  • Schlechte Misserfolge, da in der Regel vermeidbar sind durch Protokolle, Liebe zum Detail oder kompetente Mitarbeiter.


Komplexitätsbedingte Misserfolge
Sind die Folge von verschiedenen Unbekannten einer Aufgabe.

  • Unproblematisch, wenn eine Identifizierung erfolgt und Korrekturmaßnahmen ergriffen werden.


Intelligente Misserfolge
Dies sind Misserfolge, die Wissen erzeugen und im Streben nach Innovation gemacht werden.

  • Sollen gefördert und gefeiert werden!

Sonntag, 7. März 2021

Kontextverluste - (Zeit-)Verschwendung durch Projektwechsel bzw. Multitasking

In dem Buch Quality Software Management: Congruent Action schlägt Gerald Weinberg eine Faustregel zur Berechnung der (Zeit-)Verschwendung vor, die durch Projektwechsel verursacht werden.

So wirkt sich selbst das Hinzufügen eines einzelnen Projekts zur aktuellen Arbeitslast nach Weinbergs Berechnung äußerst schwächend! Man verliert mindestens 20% seiner Zeit!

Muss man zum Beispiel ein weiteres drittes Projekt betreuen, wird fast die Hälfte der Zeit für das Wechseln von Aufgaben (KONTEXTVERLUST) verschwendet.
 
 
Wenn man sich auf ein einzelnes Projekt konzentriert, kann man 100% seiner Zeit darauf verwenden. 
 
Sobald man jedoch mit dem Multitasking von Projekten beginnt, steigt der Effizienzverlust massiv!
 
Nach der Schätzung von Weinberg verliert man 
  • 20% seiner Zeit, wenn man gleichzeitig an 2 Projekten arbeitet, 
  • 40% an 3 Projekten und bis zu 
  • 75% an 5 Projekten
Die ständige Ablenkung der Gedanken zwischen den verschiedenen Aufgaben oder Projekten ist extrem zeit- und energieintensiv.

Montag, 1. März 2021

Synology NAS - Speicherplatz erweitern - Update 14 TB

Kurz ein Update zum Artikel Synology NAS - Speicherplatz erweitern, die reibungslose und wirklich einfache Erweiterungsfunktion und vor allem der Festplattentausch des Synology DS220+ 2 Bay Desktop NAS ohne eine einzige Schraube lösen zu müssen ist einfach nur genial!

Ein Upgrade von den 8 TB großen Seagate ST8000DM005 Festplatten hin zu den 14 TB großen Western Digital WD141KRYZ WD Gold Festplatten war ohne Probleme möglich.


Samstag, 27. Februar 2021

Scrum - Sprint / Team Retrospektive

Die Sprint Retrospektive findet am Ende des Sprints statt. Hierbei überprüft das gesamte Scrum Team seine Arbeits- und Verhaltensweise während des Sprints, um im nächsten Sprint noch effektiver und effizienter arbeiten zu können.

Ablauf

  • Es sollte eine angenehme Atmosphäre für das Team geschaffen werden,
    • z.B. durch den Raum, der Umgebung und dem Zeitpunkt,
  • jedes Teammitglied sollte Zeit für die Vorbereitung auf den Termin haben.
  • Die Daten werden vom Scrum Master gesammelt (Erkenntnisse und Einsichten) und z.B. auf einem „Board“ festgehalten.
  • Abschließend werden Aktionen und Verbesserungsmöglichkeiten daraus abgeleitet.

Beispiel

  • Eine Pinnwand mit den Symbole: "Gewitter", "Regen", "Sonne".



Quelle: https://cdn.pixabay.com/photo/2013/07/12/12/53/weather-forecast-146472_1280.png

  • Jeder im Team bekommt 3 Karten, für jede Kategorie eine und gibt Feedback zu den folgenden Fragen:
    • Gewitter - Was hat mich im letzten Sprint wütend gemacht hat?
    • Regen - Was hat mich im letzten Sprint traurig gemacht hat?
    • Sonne - Was hat mich im letzten Sprint froh gemacht hat?

Eine nächste (Team) Retrospektive steht an und man hat keine Ideen für einen Ablauf? Dann kann ich die Seite https://retromat.org/de/ empfehlen. Hier kann man sich zufällig Ideen für eine Retro generieren lassen.

Sonntag, 21. Februar 2021

Zeitmanagement - MoSCoW Priorisierung / Prinzip

In einem meiner ersten Blog Einträge (Nutzen Sie das Parkinsonsche Gesetz) bin ich kurz auf das Pareto-Prinzip (Reduzieren Sie Ihre Aufgaben auf das Wesentliche mit Hilfe der 80-zu-20-Regel) eingegangen. Eine gute Hilfe um seine Aufgaben zu priorisieren, bietet das MoSCoW-Prinzip.


MoSCoW ist ein Akronym und steht für

MUST HAVE

  • Nicht verhandelbare Aufgaben, die zwingend erledigt werden müssen und deren Erledigung erfolgskritisch ist.

SHOULD HAVE

  • Wichtige Aufgaben, die keine hohe Priorität haben, aber durchaus signifikanten Mehrwert für das Tätigkeitsfeld stiften

COULD HAVE

  • Nice-to-have Aufgaben, die nur wenige Mehrwert generieren und daher auch weggelassen werden können ohne Schaden anzurichten.

WON’T HAVE

  • Aufgaben, die eindeutig de-priorisiert werden können, da sie keinen Mehrwert stiften und/oder überproportional viel Zeit in Anspruch nehmen


Mit Hilfe der richtigen Priorisierung sollte man die Umsetzung der jeweiligen Anforderungen nach ihrer Wichtigkeit und ihrem Potenzial steuern.

Mittwoch, 17. Februar 2021

Kommunikation - Feedback, 5 Finger Feedback

In agilen Projekten sind "offene Information- und Feedback-Prozesse" sehr wichtig. Auch sollte man in seinen Projektteam immer ehrliche und aufrichtige Anerkennung geben. In diesem Beitrag möchte ich kurz auf Feedback Möglichkeiten eingehen.


Wie kann man Feedback geben und somit auch die "Scrum Werte" berücksichtigen?

  1. Feedback Möglichkeit anbieten.
  2. Positive Rückmeldung sollte zuerst gegeben werden.
  3. Die Rückmeldung muss konkret sein und sollte eine Beschreibung bzw. Beispiel beinhalten.
    • Wichtig, jeder ist für sich selbst verantwortlich und spricht nur für sich.
    • Nicht: Wir alle sind total verärgert. => Sondern: Ich habe mich geärgert über xyz.
  4. Formulierung einer konkreten Bitte bzw. eines Vorschlags, aber KEINER Forderung.
  5. Der Dialog dabei ist sehr wichtig (den anderen sehen/erkennen, nicht Recht haben wollen).

 

Eine weitere gute Methode, ist die „Fünf-Finger-Methode“.

Quelle: Landesmedienzentrum Baden-Württemberg, https://www.lmz-bw.de/medien-und-bildung/medienwissen/medienbildung/definitionen-von-medienkompetenz-und-methoden/methoden/feedback-hand/

Samstag, 13. Februar 2021

Kommunikation - Aktives Zuhören und GFK (Gewaltfreie Kommunikation)

In einem meiner ersten Beiträge Kommunikation mit Gesprächspartnern in diesem Blog aus 2013, bin ich auf das 4 Ohren Modell von Friedemann Schulz von Thun (4-Seiten-Modell) eingegangen.


Ich möchte diesen Beitrag kurz aufgreifen und beschreiben, wie aktives Zuhören funktioniert, denn Kommunikation beginnt mit "Zuhören".

Deswegen immer volle Konzentration auf den Gesprächspartner und die folgenden Punkte berücksichtigen:

  • Volle Aufmerksamkeit auf den Gesprächspartner bzw. Sprecher.
  • Keine Interpretation.
  • Kein „Was antworte ich?“.
  • Schweigendes Zuhören.
  • Paraphrasieren bzw. (einen sprachlichen Ausdruck) mit anderen Wörtern oder Ausdrücken umschreiben.
  • Fragen stellen.

Ähnlich funktioniert auch das Grundmodell der GFK (Gewaltfreie Kommunikation) von Marshall B. Rosenberg (Beobachtung, Gefühl, Bedürfnis, Bitte).

Montag, 8. Februar 2021

Linux - Dateinamen mit Sonderzeichen (Umlaute) umwandeln / umbennen mit Detox

Mit Hilfe von Detox kann man relativ schnell Dateinamen bereinigen bzw. umbennen. Es ersetzt z.B. Leerzeichen durch Standardäquivalente und Dateinamen mit UTF-8- oder Latin-1-Zeichen (ISO 8859-1) werden automatisiert bereinigt.


Installation

sudo apt install detox

oder

git clone https://github.com/dharple/detox.git
cd detox
autoreconf --install (sudo apt install autoconf)
./configure
make (sudo apt install make)


Ausführen

Die wichtigste Option ist -n (--dry-run). Auf diese Weise kann man Detox ausführen, ohne die Dateien zu ändern, also eine Art Vorschaufunktion.

detox -n

detox -v

Ohne die Option, erfolgt dann die Umbennung der Dateien.



Sonntag, 7. Februar 2021

Tools - Windows Sysinternals, Microsoft PowerToys

Sysinternals wurde 1996 von Mark Russinovich gegründet, um seine Systemdienstprogramme und technischen Informationen allen Windows Nutzern bereitzustellen. Microsoft stellt unter https://live.sysinternals.com alle System-Utilities von Sysinternals einzeln zum direkten Download bereit.


Die kostenlosen Tools sind nicht gepackt, lassen sich unter Windows durch einbinden als Netzlaufwerk starten:

net use s: http://live.sysinternals.com/tools

Eine genaue Beschreibung der einzelnen Tools findet sich unter https://docs.microsoft.com/de-de/sysinternals/ wie z.B. Autoruns oder Process Explorer.

Weitere nützliche Tools "Microsoft PowerToys", finden sich auch unter https://docs.microsoft.com/de-de/windows/powertoys/ wie z.B. Fancyzones.

Im Microsoft Strore findet sich Windows File Recovery.

Im Download Bereich von Microsoft findet sich Microsoft Garage Mouse without Borders.

Why, How, What - The golden circle von Simon Sinek

Die Anforderungen werden bei Scrum nicht in Use Cases (Anwendungsfälle), sondern in User Stories erfasst. User Stories (Anwendererzählung) beschreiben GUIs, Funktionalitäten und Testszenarien.

Als „Anwender“ will ich „Eigenschaft/Feature“ Damit „Nutzen“.

Einen ähnlichen Ansatz verfolgt auch der "golden circle" von Simon Sinek.


In dem Buch Frag immer erst: warum: Wie Top-Firmen und Führungskräfte zum Erfolg inspirieren  beschreibt Sinek, dass die Menschen von einem Sinn für Ihre Absichten (dem "Warum") inspiriert sind. Daher sollte das WHY (Warum und wofür ist es wichtig?) bei der Anforderungsbeschreibung an erster Stelle stehen, bevor man mit dem "Wie" und "Was" in die Detaillierung geht.

Sinek nennt diese "Triade" den goldenen Kreis, beschrieben in einem Kreis-Diagramm mit

  • "Why / Warum" im innersten Kreis, der die Motive oder Zwecke darstellt. Umgeben von einem Ring mit der Bezeichnung
  • "How / Wie" hier werden die die Prozesse und Methoden dargestellt (Wie willst du dein Ziel erreichen?). Eingeschlossen mit der Bezeichnung
  • "What / Was" welcher die Ergebnisse darstellt (Was machst du um dein Ziel zu erreichen?).

Quelle: Wikipedia (The golden circle diagram, redrawn from Start with Why - Mosborne01)

Samstag, 30. Januar 2021

Warum eigentlich agil?

Das Scrum Manifest der agilen Softwareentwicklung definiert agile Methoden nach z.B. der Eigenschaft das sich Prozesse während der gesamten Projektzeit ständig weiterentwickeln und immer wieder neu bewertet müssen. Aber warum ist man überhaupt gezwungen agile Methoden zu verwenden?


Eine gute Antwort auf die Frage bietet mein Blog Eintrag vom April 2020  "Digitalisierung - The Six D's of Disruption". Mit Hilfe des Modells kann man verstehen, wie Technologien bzw. Digitalisierung uns beeinflussen.

In letzten Jahren kam es immer schneller zu einer "Demokratisierung" und Technologien sind immer schneller mehr und mehr Menschen zugänglich. Dies führt zu einem Verschwinden von alten Technologien bzw. kompletter Berufszweige. Die folgendene Grafik zeigt die Anzahl der Jahre, bis die aufgeführten Technologien eine Reichweite von 50 Millionen Nutzern erlangt hatten. So hatte Facebook bereits nach 3,5 Jahren 50 Millionen Nutzer. Das Telefon benötigt 75 Jahre für 100 Millionen Nutzer, das Fernsehen benötigte 13 Jahre und Candy Crush nur 1,3 Jahre bis es eine Nutzerschaft von 50 Millionen erreicht hatte.

Definition Agilität

Schnelle Reaktions-(Adaptions-)fähigkeit in einer komplexen Welt. Siehe hierzu auch "Die Komplexität von Scrum bzw. eines Projektes kann durch die Stacey Matrix dargestellt werden".

Die Themen Unsicherheit und Komplexität könne auch gut durch das Akronym VUCA beschrieben werden, welches sich aus den vier Begriffen Volatilität (Unstet - schneller Wandel - Flüchtigkeit), Unsicherheit (Unberechenbarkeit - keine Strategien), Komplexität (Multioptionen -
Vernetzung - Schnelligkeit) und Ambiguität (Mehrdeutigkeit - Multifaktoriell - verwirrend) zusammensetzt.


AGILE => "Always run a changing system" anstatt "Never change a running system"!

Montag, 25. Januar 2021

Raspberry Pi - statische IP bzw. initiale IP-Adresse vergeben (cmdline-txt)

Betreibt man den Raspberry Pi ohne Tastatur und Monitor, kann man sich per SSH (Raspberry Pi Stretch Lite - Installation incl. SSH Fernsteuerung) von einem anderen Rechner aus einloggen. In der Regel erfolgt per default die Vergabe der IP-Adresse automatisch per DHCP.


Mit der folgenden Methode lässt sich eine feste IP-Adresse direkt per SD-Karte (cmdline-txt) vergeben

In der Datei "cmdline.txt" auf der SD-Karte (vFat-Partition) an der ersten und einzigen Zeile die folgende Syntax hinzufügen:

ip=<Raspi-ip>:<Netboot-ip>:<Gateway-ip>:<Subnetzmaske>:<Hostname>:<Netzwerkkarte>:<Autoconf>

Beispiel:

ip=192.168.1.111::192.168.1.1:255.255.255.0:pihole:eth0:off

Bedeutung der oben genannten Felder:

  • Raspi-ip: IP-Adresse die der Raspberry bekommen soll
  • Netboot-ip: IP eines Netboot-Servers, wird in der Regel nicht benötigt
  • Gateway-ip: IP des Routers
  • Subnetzmaske: Netzmaske, in der Regel 255.255.255.0
  • Hostname: Hostname des Raspberry Pi (im LAN ansprechbar, optional)
  • Netzwerkkarte: das Netzwerk-Gerät für die Zuweisung (z.B. eth0, wlan0)
  • Autoconf: Aktivierung/Deaktivierung der automatische Konfiguration (off)


Alternativ ist (im Nachgang) die folgende Methode (Anpassung der /etc/dhcpcd.conf) weiterhin gültig.

Samstag, 23. Januar 2021

PowerShell - Datum (Erstelldatum) von Dateien nachträglich ändern (rekursiv)

Möchte man das Erstelldatum von Dateien anpassen bzw. manipulieren, bietet sich das nachfolgende PowerShell-Script an.


Mit dem Befehl $dt = get-date 1.8.2020-13:45 lässt sich ein bestimmtes Datum setzen oder alternativ das aktuelle Datum verwenden.

Mit dem Befehl $User = [Environment]::UserName kann man den aktuellen Benutzernamen auslesen und so ggf. in der Variable "$scriptPath" verwendet werden.

Mit Hilfe von Get-ChildItem, kann man rekursiv und auch nur nach Bestimmten Dateien *.doc,*.pdf suchen.

Durch SetCreationTime wird für die jeweils gefundene Datei ein neues Erstelldatum gesetzt.
---

#$dt = get-date 1.8.2020-13:45
$dt = get-date

$User = [Environment]::UserName
#Write-Host $User.ToLower()

$scriptPath = "C:\Users\" + $User.ToLower() + "\OneDrive\"
#get the content of a directory you can use
$files = Get-ChildItem $scriptPath -Recurse #-Include *.doc,*.pdf

#loop
for ($i=0; $i -lt $files.Count; $i++) {
    #$outfile = $files[$i].FullName + "out"
    Write-Host "Found file - " + $files[$i].FullName -ForegroundColor Magenta
    [System.IO.File]::SetCreationTime($files[$i].FullName, $dt)
}

 

Mittwoch, 20. Januar 2021

Agile - Zusammenarbeit und Regeln für (virtuelle) verteile Teams

In der agilen Softwareentwicklung bietet z.B. Scrum bereits  Regeln, wie "Scrum: Werte & Prinzipien - Empowered, self-organized teams" und "Der Scrum Rahmen ist ein Zusammenspiel von der Organisation, dem Produkt und dem Team" vor. Gerade in Zeiten von Corona und Homeoffice empfiehlt es sicher daher für (virtuelle) verteile Teams Richtlinien zu definieren.


Folgende Grundsätze können als Basis für die Zusammenarbeit in virtuellen Teams verwendet werden:

  • Für alle Mitglieder im Team sollten Kernerreichbarkeitszeiten definiert werden, wie zum Beispiel von 09:00 bis 11:00 Uhr und von 13:00 bis 15:00 Uhr. In dieser Zeit sollte dann auch jeder zu erreichen sein.
    • Wichtig: Arbeiten die Teams ggf. in verschiedenen Zeitzonen, müssen diese Kernzeiten ggf. angepasst werden.
  • Eine "Definition of Done (DoD)" sollte definiert werden, damit allen im Team klar ist, ab wann einen Aufgabe wirklich als "erledigt" gilt.
  • Meetings bzw. Regeltermine sollte nur während der Kernarbeitszeiten stattfinden.
  • In einem kurzen "Daily" Meeting analog dem "Daily Scrum" sollte der Fortschritt aller Mitglieder transparent kommuniziert werden.
  • Vorgaben für den Krankheitsfall bzw. eine Vertretung innerhalb des Teams müssen vorab definiert werden.

Fazit: Die o.g. Vorgaben können nur als Idee dienen. Die Teams sollten gemeinsam die Regeln definieren und nach einer gewissen Zeit immer wieder auf den Prüfstand stellen. Gerade hierbei spielt eine offene und ehrliche Feedbackkultur eine wichtige Rolle.

Samstag, 16. Januar 2021

Effizienz - "Arbeit geht den Weg des geringsten Widerstandes"

Frau Hess zieht in dem Buch "Digital anders arbeiten: Effektive Methoden und neue Tools für den heutigen Büroalltag" den Schluss, "Wer ... fleißig alles zuverlässig abarbeitet, kann sich darauf verlassen, dass ihm oder ihr immer mehr Aufgaben zuwaschen". Siehe auch "Bill Jensen - Radikal vereinfachen: Den Arbeitsalltag besser organisieren und sofort mehr erreichen".


Bill Jensen hat hierzu ein LOGIK-Modell entwickelt, welches für E-Mails (ähnlich zu meinem Blogeintrag E-Mail - Posteingang mit der richtigen Strategie bearbeiten (Inbox Zero Methode)) , aber auch für alle anderen Aufgaben/Taks/ToDos angewendet werden kann.

  • Limits: Gehört diese Aufgabe zu den laufenden Projekten?
  • Ordnung: Sind die nächsten Schritte klar erkennbar?
  • Gewünschtes Resultat: Was soll als Ergebnis herauskommen?
  • Instrumente: Wie und womit werden Sie den Auftrag erledigen?
  • Konsequenz: Kommt für mich etwas dabei heraus?


Fazit: Erfüllt eine Aufgabe oder E-Mail nicht diese Kriterien, dann sollte dies Thema erstmal nicht weiter beachtet werden. E-Mails könnten in dem Fall sogar direkt gelöscht werden. Vermutlich macht aber eine sehr einseitige Anwendung des MOGIK-Modell wiederum nicht in jedem Fall Sinn. Die Kriterien sollten vielmehr ein Anstoser zum Nachdenken sein.

Mittwoch, 13. Januar 2021

PowerShell - Ausführung von Skripts auf diesem System deaktiviert (enable execution)

Nach zum Beispiel einer Neuinstallation von Windows 10 ist das Ausführen von PowerShell Scripten (z.B. https://sebastianhemel.blogspot.com/2020/12/deutscher-pressevertrieb-pdf-dateien.html) nicht mehr erlaubt. Eine Aktivierung ist mit dem folgenden Befehl möglich.

Meldung: Ausführung von Skripts auf diesem System deaktiviert

Die Datei "xyz.ps1" kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter
"about_Execution_Policies" (https:/go.microsoft.com/fwlink/?LinkID=135170).
    + CategoryInfo          : Sicherheitsfehler: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnauthorizedAccess


Die Ausführung von PowerShell-Scripts zulassen

Die Windows PowerShell mit der Option "Als Administrator ausführen" starten.
Hinweis: Nur Mitglieder der Administratorgruppe auf dem Computer können die Ausführungsrichtlinie ändern.

Die Ausführung nicht signierter Skripte wird mit dem folgenden Befehl aktiviert:

Set-Execution-Politik ferngesteuert


Mittwoch, 6. Januar 2021

Microsoft Outlook 2016 2019 - Löschsymbol (Kreuz, X) fehlt in der Nachrichtenvorschau (Posteingang, Liste)

Auf meinem neuen Notebook mit Outlook 2019 war das Löschsymbol (rotes "X"), welches bei jeder einzelnen E-Mail in der Nachrichtenvorschau (Liste) angezeigt und das direkte Löschen der selektierten E-Mail ermöglicht, verschwunden.

Dies ist immer dann der Fall, wenn der "Touchscreen" (Fingermodus) Modus aktiv ist!

Um das "X" bzw. Löschsymbol wieder anzuzeigen, muss der "Mausmodus" aktiv sein!

Dafür muss man ggf. über die Symbolleiste den "Touch/Mausmodus" einblenden und den "Mausmodus" aktivieren. Jetzt sollte auch wieder das Löschsymbol neben den E-Mails angezeigt werden, wenn man mit der Maus Maus darüber fährt.

Samstag, 2. Januar 2021

Raspberry Pi-hole - Update Pi-hole

Derzeit kann man Pi-hole noch nicht über die Weboberfläche aktualisieren, da u.a. der Server neu gestartet werden muss.

Der folgende Befehl muss daher per Konsole (SSH-Verbindung) eingegeben werden:

pihole -up

Siehe auch Raspberry Pi-hole - Installation.

Android - (App) APK Decompiler und Quellcode anzeigen

Mit Hilfe von einem APK Decompiler wie z.B. "jadx - Dex to Java decompiler" ist es möglich eine kompilierte Android App wieder zurück in den Source Code umzuwandeln. Dies ist oft der erste Schritt um im Quellcode sensible Informationen (z.B. Passwörter eines Admin-Accounts oder Zugangsdaten zu Datenbanken bzw. Schnittstellen) zu finden.

Des Weiteren ist es möglich die Funktionsweise bzw. Programmierung der jeweiligen App genauer nachvollziehen umso IT-Security Schwachstellen zu finden. 


Die APK (Android Package Kit) Datei der Android App wird benötigt

Um an die Datei zu kommen, gibt es verschieden Möglichkeiten:

  1. APK Datei vom Smartphone auf PC kopieren mit Hilfe von ADB, wie man die Android Debug Bridge installieren kann, hatte ich bereits in einem älteren Artikel ABD Installation Amazon Fire-Tablet - Spezialangebote (Werbung) entfernen beschrieben.
    • adb shell pm list packages (z.B. "com.example.appname")
    • adb shell pm path com.example.appname (Pfadnamen der App anzeigen)
    • adb pull /data/app/com.example.appname-2.apk D:\Downloads
  2. Installierte Apps im Total Commander anzeigen und auf die SD-Karte oder WebDAV kopieren.
  3. Mit Hilfe von Sideloading die Android-App aus einem anderen Marketplace herunterladen.


Dekompilieren

Mit einem Dekompilier wandelt man den Bytecode (Maschinen- oder Objektcode) wieder lesbaren Quellcode in eine höhere Programmiersprache um. Dabei wird versucht, den Vorgang des Kompilierens umzukehren und den Quellcode wieder bestmöglich herzustellen.

Hinweis: Das Dekompilieren darf nicht mit dem Disassemblern verwechselt werden, denn die Assemblersprache ist nur eine andere Darstellung des kompilierten Maschinencodes!

Dekompilieren einer APK Datei mit jadx => JAVA

Die APK Datei wird mit Hilfe von jadx direkt in die entsprechenden Java-Dateien umgewandelt.

Download des aktuellen Release von github: https://github.com/skylot/jadx/releases/latest

Am einfachsten verwendet man "jadx" mit einer grafischen Benutzeroberfläche. Der Start erfolgt mit der Datei jadx-gui-1.2.0.exe . Anschließend wählt man im Fenster die APK Datei aus, welche dekompiliert werden soll.

Wurde die Datei ausgewählt, dekompiliert jadx sie und stellt auf der linken Seite der Anwendung alle Java-Pakete und -Dateien der APK aufgelistet bereit. Hinweis: Verwendet die App als native Code Basis Cordova, basiert die App selbst auf Javascript (der Quellcode befindet sich in dann unter Resources / Assets / www).

Jetzt ist es möglich nach sensiblen Informationen z.B. http(s)://, passw, key, user, rsa, aes, sslsocket und secret zu suchen.

Dekompilieren per Webseite

Zum Beispiel die Webseiten http://www.decompileandroid.com/ und http://www.javadecompilers.com/apk bieten das Dekompilieren als Online-Service an.