Montag, 27. Juni 2022

Windows 11 - Videos bearbeiten / Video Editor

Windows 10 und 11 bietet ein umfassendes Videobearbeitungsprogramm, welches viele grundlegenden Videobearbeitungsfunktionen beinhaltet. Mit dem Editor kann man Videos schneiden, 3D-Effekte hinzufügen, Filter anwenden und vieles mehr. Hierbei handelt es sich um den Nachfolger vom Windows Movie Maker.


Man kann das Videobearbeitungsprogramm in der "Fotos-"App starten oder wenn man direkt über die Suche nach "Video-Editor" starten.

Eine ausführliche Anleitung gibt es sogar direkt von Microsoft unter https://support.microsoft.com/de-de/windows/erstellen-von-filmen-mit-einem-video-editor-94e651f8-a5be-ae03-3c50-e49f013d47f6#ID0EBD=Windows_11



Sonntag, 19. Juni 2022

Synology NAS - Home-Verzeichnis für Benutzer hinzufügen incl. SSH Zugriff per Schlüssel

Wird das Synology NAS von mehreren Personen verwendet, ist es sinnvoll jedem sein eigenes Home-Verzeichnis anzubieten. So kann jeder Benutzer seinen eigenen Bereich für Daten oder auch Ordner verwenden. Anschließend kann dies auch genutzt werden, um je User einen eignen Schlüssel für den SSH Zugriff zu hinterlegen.


Benutzer-Home-Dienst aktivieren

  • Hierfür muss man die "Systemsteuerung" öffnen und dort "Benutzer und Gruppe" auswählen und dort den Reiter "Erweitert" anklicken.
  • Jetzt einen Haken bei „Benutzer-Home-Dienst aktivieren“ setzen.

Anschließend wird automatisch für jeden User ein Home-Verzeichnis angelegt. Hinweis: Ggf. macht es Sinn je User/Gruppe eine Quota (Speicherplatz Beschränkung) zuweisen.

SSH-Keys generieren und im Home-Verzeichnis ablegen

SSH-Dienst aktivieren und das unsichere TELNET ggf. nur temporär aktivieren.

  • ssh <benutzername>@<ip-adresse>
  • telnet <ip-adresse>

Wichtig ist die Verwendung des Algorithmus ED25519, ist aktuell der am meisten zu empfehlende public-key Algorithmus und in OpenSSH vorhanden.

ssh-keygen -t ed25519 -C "redleffer@192.168.1.50" cat ~/.ssh/id_ed25519.pub

Weitere Informationen dazu finden sich unter:

Dienstag, 14. Juni 2022

Excel - Text über Zellen hinweg zentrieren, ohne sie Zusammenzuführen

Es gibt in Excel auch die Möglichkeit Text zellenübergreifend zu zentrieren OHNE die Funktion "Zusammenführen und zentrieren" zu verwenden. Dies hat den Vorteil, dass man auch Spalten über eine Überschrift hinaus markieren kann. Die Funktion nennt sich "Über Auswahl zentrieren".


Überschrift über markierten Zellen zentrieren ohne sie zu verbinden

  1. Text inkl. der Zellen für die Überschrift markieren
  2. Tastenkombination "Strg + 1" (Windows) ODER im Kontextmenü "Zellen formatieren" auswählen und
  3. anschließend "Ausrichtung" => Horizontal "Über Auswahl zentrieren" => Ok

Siehe auch https://docs.microsoft.com/de-de/office/troubleshoot/excel/center-across-columns-button-disappear.


Sonntag, 12. Juni 2022

Programmierung - Halbierungsmethode (Wurzelfindung) mit Excel und Python inkl. Struktogramm

Mi Hilfe des Halbierungsverfahren, kann man Sie sich z.B. einer Wurzel nähern. Siehe auch https://de.wikibrief.org/wiki/Root-finding_algorithms => "Halbierungsmethode". Auf dieser Basis habe ich ein Struktogramm erstellt und eine Umsetzung mit Excel und Python realisiert.


Struktogramm

Dies wurde mit Hilfe des Struktogrammeditor, ein Tool des Lehrstuhls für Didaktik der Informatik der TU Dresden, erstellt.


Excel

Umsetzung in Excel (Halbierungsverfahren_Wurzel.xlsx) mit Hilfe der folgenden Formeln.


Python

Programmierung in Python (Halbierungsmethode_Wurzel.py), online ausführbar über:

 

z=float(input("Zahl ? "))
l=float(input("Linke Grenze ? "))
r=float(input("Rechte Grenze ? "))
n=float(input("Durchläufe ? "))

i=1
while i<=n:
    m=(l+r)/2
    if m**2<z:
        l=m
    else:
        r=m
    print(i, l, r)
    i=i+1

 

Quelle: c't 12/2022 S. 156

Samstag, 11. Juni 2022

Agile Softwareentwicklung - Software im Team entwickeln (Glossar)

In dem Beitrag "Agile Softwareentwicklung - GitHub Flow notwendig?" habe ich den "GitHub Flow" kurz erklärt. Etwas näher möchte ich auf die allgemeinen Begriffe (Contributor, Maintainer, Pull Request / Merge Request, Commit und Issue) in der Softwareentwicklung im Team eingehen.


Contributor

Wenn jemand als Entwickler etwas zu einem Projekt beiträgt, der darf sich offiziell Contributor (Mitwirkender) nennen. Dies trifft auch dann zu, wenn man nur einen kleinen Tippfehler in der Dokumentation beseitigt, was für viele der Einstieg in ein Open Source-Projekte ist. Da die meisten Softwareprojekte in Regel bei GitHub oder GitLab verwaltet werden, kann man mit einem eigenen Account dort sofort mit der Unterstützung beginnen.

Maintainer

Nicht jeder, kann aber sofort Änderungen am Quellcode oder der Dokumentation vornehmen. Jedes Entwicklungsprojekt benötigt einen oder mehrere Maintainer (Betreuer). Sie haben die Berechtigung, eingereichte Änderungen zu akzeptieren und in den Quellcode aufzunehmen. Zudem kümmern Sie sich um geplanten Funktionen für neue Versionen und legen fest wohin sich das Projekt entwickelt soll.

Pull Request / Merge Request

Möchte man Änderungen an einer Software vornehmen, muss mann zunächst einen neuen "Fork" (Verzweigung) anlegen. Dies ist eine lokale Kopie der aktuellen Code Basis. Jetzt kann man all seine geplanten Änderungen vornehmen. Anschließend kann man einen Request mit seinen Änderungen an das Originalprojekt stellen. Bei GitHub und Bitbucket heißen diese Request "Pull Request" und GitLab nennt sie "Merge Request". Der Maintainer prüft nun die Änderungen und entscheidet, ob sie für eine Übernahme geeignet sind.

Commit

Hinweis: Die Befehle "git commit" und "svn commit" haben denselben Namen, sie unterscheiden sich aber voneinander! Siehe auch https://www.atlassian.com/de/git/tutorials/saving-changes/git-commit.

Hat man seine Änderungen fertiggestellt (z.B. die Programmierung eines neuen Moduls), erzeugt man einen Commit. Dadurch werden die Änderungen als Entwicklungsschritt in die Quellcode-Chronik mit aufgenommen und mit einer kurze Nachricht versehen. Hierdurch sehen auch die anderen Entwickler diese in ihrer Chronik.


Sonntag, 5. Juni 2022

Windows 11 - Klassisches Kontextmenü anzeigen

Wenn man ausschließlich mit dem alte Kontextmenü arbeiten möchte, muss dafür nur ein Registry Eintrag bearbeitet werden.


Eingabeaufforderung als Administrator ausführen:


  • Windows-Startmenü => Suchfeld => cmd
  • In der Trefferliste die Eingabeaufforderung, als Administrator ausführen
  • Frage der Benutzerkontensteuerung mit Ja beantworten


Jetzt den folgenden Befehl eingeben und bestätigen:

reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve


Anschließend einen Neustart des Rechners durchführen.


Freitag, 3. Juni 2022

Python - Generierung von QR-Code Bildern

Mit Hilfe der Python QR-Code-Generierungsbibliothek "qrcode" kann man ganz einfach QR-Code-Bilder generieren. Es ist auch mit "Pillow" möglich einen QR-Code in ein anderes Bild einzubetten oder ein Bild in einen QR-Code einzubetten. In diesem Beitrag zeige ich einige Beispiele.

Python QR-Code Bild-Generator: qrcode

Der QR-Code ist ein zweidimensionaler Code, der aus quadratischen schwarzen und weißen Punkten (Zellen) besteht, siehe auch https://de.wikipedia.org/wiki/QR-Code.

Python hat eine eigene Bibliothek zum Generieren von QR-Code-Bildern, siehe auch https://github.com/lincolnloop/python-qrcode.

Die Standardinstallation erfolgt mit dem folgenden Befehl:
pip install qrcode[pil]

Wenn man einen einfachen QR-Code erstellen möchte, funktioniert dies mit dem folgenden Befehl:
qr "Test Blog shemel.de" > qrcode.png

Hinweis: Ein QR-Code enthält nur eine Zeichenfolge (String).

QR-Code Bild mit Python erstellen

import qrcode

img = qrcode.make('https://www.shemel.de')

print(type(img))
print(img.size)

img.save('/home/hemel/qrcode_hemel_1.png')

Sollte der Fehler "AttributeError: module 'qrcode' has no attribute 'make'" erscheinen, bitte als Dateinamen NICHT qrcode.py wählen. Siehe auch https://github.com/lincolnloop/python-qrcode/issues/185.

Man kann auch mit Hilfe der QRCode-Klasse Details verändern:

qr = qrcode.QRCode(
    version=12,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=2,
    border=8
)
qr.add_data('htttps://www.shemel.de')
qr.make()
img = qr.make_image(fill_color="yellow", back_color="#23dda0")
img.save('/home/hemel/qrcode_hemel_2.png')


QR-Code in ein Bild einbetten

Mit Hilfe von PilImage kann man Image-Objekte direkt in andere Bilder einfügen bzw. einbetten.

Anbei ein Beispiel zum Einfügen des QR-Codes in der unteren rechten Ecke.

import qrcode
from PIL import Image

img_bg = Image.open('/home/hemel/blog.png')

qr = qrcode.QRCode(box_size=2)
qr.add_data('
htttps://www.shemel.de')
qr.make()
img_qr = qr.make_image()

pos = (img_bg.size[0] - img_qr.size[0], img_bg.size[1] - img_qr.size[1])

img_bg.paste(img_qr, pos)
img_bg.save('/home/hemel/qrcode_hemel_3.png')


QR-Code zum Bezahlen benutzen

Siehe auch c't 9/2022 S. 8 https://www.heise.de/select/ct/2022/9/softlinks/yb26?wt_mc=pred.red.ct.ct092022.008.softlink.softlink und https://de.wikipedia.org/wiki/EPC-QR-Code.

import qrcode

vwz = "Rechnung 123456789"
iban = "DE02100500000054540402"
bic = "BELADEBE"
recipient = "Beispielfirma Musterdörfer"
amount = 55.25
filename = "epc_qr"

# The docs can be found here: https://pypi.org/project/qrcode/
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_M)

qr.add_data("BCD\n")
qr.add_data("002\n")
qr.add_data("1\n")
qr.add_data("SCT\n")
qr.add_data(bic+"\n")
qr.add_data(recipient[0:69]+"\n")
qr.add_data(iban+"\n")
qr.add_data("EUR"+str(amount)+"\n")
qr.add_data("\n")
qr.add_data("\n")
qr.add_data(vwz[0:139]+"\n")
qr.make(fit=True)
img = qr.make_image()
img.save(filename+".png")