Willkommen

Ich bin ein italienischstämmiger Softwareentwickler im Bereich DevOps und Plattform Engineering mit langjähriger IT-Erfahrung und einer Leidenschaft, Probleme zu lösen und zu automatisieren.

Blog

8 Jan. 2019

Python - Bilder sortieren à la Tinder

Wenn man sein Mobiltelefon wechselt oder einfach mal nur aufräumen will, dann kann es passieren, dass meine einen Ordner mit hunderten von Bildern hat, von denen man jedoch nur dutzende Aufheben will. Typisch für so ein Fall ist der WhatsApp Medien Ordner.

Jetzt kann man natürlich mit IrfanView sich von Bild zu Bild klicken, anschauen und dann löschen. Das ist jedoch nicht schnell und löschen und weiterklicken geht nicht sehr flüssig von der Hand. Und Bilder, die man behalten will, bleiben dann immer “übrig”. Wenn man am nächsten Tag weiter sortieren will, stören sie.

Auf Android gibt es die App SlideBox, die das Problem wie bei Tinder löst. Sie zeigt ein Bild an, man swiped in eine Richtung um es zu löschen, in eine Andere um es zu behalten. Das geht locker von der Hand. Aber am PC gibt es sowas nicht.

Und da ich nicht nur immer sage, dass man mehr programmieren sollte, habe ich mich hingesetzt und quick und dirty etwas zusammengeschrieben.

Den Quelltext habe ich auf meinem Github abgelegt. Gerne zum Downloaden und verwenden. Es setzt Python, TKinter und OpenCV voraus. Python sollte meiner Meinung nach immer auf einem Rechner installiert sein. Ab der Version 3.x ist TKinter mit dabei. OpenCV bekommt man einfach per:

pip install opencv-python

Ich gehe hier kurz auf das Skript ein.

import tkinter as tk
from tkinter import filedialog
import os
import cv2
import sys
import shutil

# output folder
sort = "e:/pic_swipe/sort/"
todelete = "e:/pic_swipe/delete/"

Zuerst werden die benötigten Pakete importiert.

TKinter brauchen wir für den Dateidialog. OS, SYS und SHUTIL für das Dateihandling und CV2 ist OpenCV um die Bilder zu betrachten und auch die Cursortasten abzufragen und mit Funktionen zu versehen.

Dann werden die Ausgabeverzeichnisse definiert. Man braucht ein Ordner in der die zu Löschenden und in der die zu behaltenden Dateien abgelegt werden sollen. Ja, die Ordner habe ich im ersten Wurf hart reingecoded. Das Skript hat noch ein paar weitere Schönheitsfehler. Das sollte jedoch nicht stören, wir brauchen eine Abhilfe für unser Problem.

# File dialog for picing picture folder
root = tk.Tk()
root.withdraw()
file_path = os.path.dirname(filedialog.askopenfilename())

Diese Zeilen öffnen einen Dateidialog. Man wählt damit eine Bilddatei in dem zu sortierenden Verzeichnis aus. Das Verzeichnis wird in der Variable “file_path” gesichert.

# content of picutre folder
picturelist = os.listdir(file_path)
index = 0

Damit wird das Verzeichnis ausgelesen. Der Inhalt in die Liste “picturelist” gesichert und die Indexvariable initialisiert.

# create viewer windows, resize picture
cv2.namedWindow("image", cv2.WINDOW_NORMAL)
img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
cv2.resizeWindow('image',800, 600)
cv2.imshow('image',img)

Mit OpenCV erstellen wir das Viewerfenster und legen es auf 800x600 Pixel fest. Und laden das erste Bild (Eintrag Index 0 der Liste). Alle Bilder, die angezeigt werden, werden auch das Format “gepresst”. Ja, das verreißt die Proportionen, aber wir wollen die Bilder nicht bearbeiten, sondern nur kurz anschauen, um dann zu entscheiden, ob ins Töpfchen oder ins Kröpfchen.

while(1):
    k = cv2.waitKeyEx(0)
    if k==27:           # wait for ESC key to exit
        cv2.destroyAllWindows()
        break

Und damit sind wir schon bei der Hauptschleife. Diese läuft mit while(1) unendlich. Mit cv2.waitKexEx(0) überprüfen wir welche Taste gedrückt wird und speichern dies in die Variable “k”.

“27” ist der Code für die ESC Taste mit der die While Schleife unterbrochen und damit das Programm beendet wird.

    elif k==2490368:    # cursor up move to delete folder
        shutil.move(str(file_path)+"/"+str(picturelist[index]), str(todelete)+"/"+str(picturelist[index]))
        index += 1
        img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
        cv2.resizeWindow('image',800, 600)
        cv2.imshow('image',img)

“2490368” Pfeiltaste hoch. Damit verschieben wir die aktuell angezeigte Datei in den Löschen-Ordner. Erhöhen den Index um 1 und zeigen damit das nächste Bild an. Damit entsteht der Flow. Keine weitere Taste drücken um das nächste Bild zu bearbeiten.

    elif k==2621440:    #cursor down move to sort folder
        shutil.move(str(file_path)+"/"+str(picturelist[index]), str(sort)+"/"+str(picturelist[index]))
        index += 1
        img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
        cv2.resizeWindow('image',800, 600)
        cv2.imshow('image',img)

“2621440” Pfeiltaste runter. Das Bild wird in den Sortieren-Ordner verschoben und auhc hier gleich die nächste Datei angezeigt.

    elif k==2424832:    # cursor left previous picture
        index -= 1
        if index < 0:
            index = 0
        img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
        cv2.resizeWindow('image',800, 600)
        cv2.imshow('image',img)
    elif k==2555904:    # cursor right next picture
        index += 1
        img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
        cv2.resizeWindow('image',800, 600)
        cv2.imshow('image',img)
    elif k==-1:         # ignore waitkey standard input
        continue
    else:               # print every other pressed key
        print(k)

Die restlichen Abfragen sind nur noch Makulatur. “2424832” Pfeiltaste links um zum vorherigen Bild zu gelangen und “2555904” Pfeiltaste rechts um zum nächsten zu kommen. “-1” brauchen wir, da waitKeyEx die Tasten immer wieder abfragt und -1 zurückgibt, wenn nichts betätigt wird. Und zum Schluss noch eine Ausgabe, wenn man eine andere Taste drückt. Mit diesem Print sieht man den Code der Taste.

Wie man unschwer erkennen kann, fange ich zwar einen Index kleiner 0 ab, aber den höchsten Index, d.h. nach der letzten Bilddatei, nicht. Auch läuft das Skript auf einen Fehler, wenn man ein Bild verschoben hat und dann zurück (Pfeil links) auf das Bild springt. Das ist dann nicht mehr da und OpenCV steigt mit einem Fehler aus.

Es gibt also noch ein paar Dinge zu erledigen. Z.B. den Code zum Bildanzeigen habe ich 5 mal “getippt”, dass schreit förmlich nach einer Subroutine.

Ihr könnt euch gerne austoben und auf mein Git die Änderungen commiten.

Bei Fragen könnt Ihr Euch gerne an mich wenden. Unten werde ich das komplette Skript nochmals einfügen, eine aktuellere Version werdet Ihr immer auf Github finden.

Viel Spaß mit dem Skript und beim Sortieren der Bilder.

import tkinter as tk
from tkinter import filedialog
import os
import cv2
import sys
import shutil

# output folder
sort = "e:/pic_swipe/sort/"
todelete = "e:/pic_swipe/delete/"

# File dialog for picing picture folder
root = tk.Tk()
root.withdraw()
file_path = os.path.dirname(filedialog.askopenfilename())

# content of picutre folder
picturelist = os.listdir(file_path)
index = 0

# create viewer windows, resize picture
cv2.namedWindow("image", cv2.WINDOW_NORMAL)
img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
cv2.resizeWindow('image',800, 600)
cv2.imshow('image',img)

while(1):
    k = cv2.waitKeyEx(0)
    if k==27:           # wait for ESC key to exit
        cv2.destroyAllWindows()
        break
    elif k==2490368:    # cursor up move to delete folder
        shutil.move(str(file_path)+"/"+str(picturelist[index]), str(todelete)+"/"+str(picturelist[index]))
        index += 1
        img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
        cv2.resizeWindow('image',800, 600)
        cv2.imshow('image',img)
    elif k==2621440:    #cursor down move to sort folder
        shutil.move(str(file_path)+"/"+str(picturelist[index]), str(sort)+"/"+str(picturelist[index]))
        index += 1
        img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
        cv2.resizeWindow('image',800, 600)
        cv2.imshow('image',img)
    elif k==2424832:    # cursor left previous picture
        index -= 1
        if index < 0:
            index = 0
        img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
        cv2.resizeWindow('image',800, 600)
        cv2.imshow('image',img)
    elif k==2555904:    # cursor right next picture
        index += 1
        img = cv2.imread(filename = str(file_path)+"/"+str(picturelist[index]))
        cv2.resizeWindow('image',800, 600)
        cv2.imshow('image',img)
    elif k==-1:         # ignore waitkey standard input
        continue
    else:               # print every other pressed key
        print(k)

14 Okt. 2018

Porrada Geek! #4

Wie in meiner Instagram Story erwähnt habe ich es dann auch gewagt in Dojo zu gehen. Der versprochene Besuch kam nicht, dafür habe ich mitbekommen was “Open Mat” ist. Auf jeden Fall etwas, dass nicht zu unterschätzen ist. Erst recht nicht von mir, der davor nur 3 Mal überhaupt im Training war. Das war mein Fehler. Ich war einfach noch nicht so weit und habe mir bei dem Spektakel die linke Rippe geprellt.

2 Juli 2018

Jedi Tricks – Notepad++ – Zeilen mit bestimmten Wort finden/löschen/kopieren

Immer mal wieder steht man vor der Aufgabe aus langen Listen etwas herauszufischen. Zum Beispiel alle E-Mail Adressen aus einem Excel Dokument oder alle Telefonnummern aus einer CSV Datei. Ich muss aus Datenbankauszügen die Zeilen mit den bestimmten Lizenzen weiterverarbeiten und auch manchmal alle Links zu Bildern oder Filme aus einer HTML Site oder XML Struktur herausfinden. Je nach Aufgabe, ist es nicht immer Ratsam sofort einen Parser zu schreiben. Besonders wenn es sich um eine einmalige Sache handelt. Viel schneller kann man mit dem folgenden Trick im Notepad++ eine Batchdatei oder ein „Skript“ basteln. Nehmen wir mal als Beispiel eine RSS Feed Datei eines Kurses der Uni Erlangen von Professor Kohlhase den ich nur wärmstens empfehlen kann. Diese beinhaltet im Body alle Element im folgenden Format.

_<item>_

_<title>1 - Künstliche Intelligenz I 2017/2018</title>_

_<itunes:duration>01:23:51</itunes:duration>_

_<enclosure url=" [http://itunes.video.uni-erlangen.de/get/file/29771.m4v?src=itunesu](http://itunes.video.uni-erlangen.de/get/file/29771.m4v?src=itunesu)" length="1682454663" type="video/mp4"  />_

_<guid isPermaLink="false">/data/2017/10/19/FAU\_W17\_KII\_ClipID\_8350/20171019-KII-Kohlhase-Combined-H.264-1920x1080.m4v</guid>_

_<pubDate>Thu, 19 Oct 2017 00:00:00 +0200</pubDate>_

_<itunes:author>Prof. Dr. Michael Kohlhase</itunes:author>_

_<itunes:keywords></itunes:keywords>_

_<itunes:subtitle>Künstliche Intelligenz I</itunes:subtitle>_

_<itunes:summary></itunes:summary>_

_<itunesu:category itunesu:code="101102" />_

_<itunes:order>1</itunes:order>_

_<itunes:image href=" [http://cdn.video.uni-erlangen.de/Images/Kohlhase-1400.png](http://cdn.video.uni-erlangen.de/Images/Kohlhase-1400.png)" />_

_</item>_

_<item>_

_<title>1 - Künstliche Intelligenz I 2017/2018</title>_

_<itunes:duration>01:23:51</itunes:duration>_

_<enclosure url=" [http://itunes.video.uni-erlangen.de/get/file/29817.m4v?src=itunesu](http://itunes.video.uni-erlangen.de/get/file/29817.m4v?src=itunesu)" length="1682499721" type="video/mp4"  />_

_<guid isPermaLink="false">/data/2017/10/19/FAU\_W17\_KII\_ClipID\_8350/20171019-KII-Kohlhase1-H.264-1920x1080.m4v</guid>_

_<pubDate>Thu, 19 Oct 2017 00:00:00 +0200</pubDate>_

_<itunes:author>Prof. Dr. Michael Kohlhase</itunes:author>_

_<itunes:keywords></itunes:keywords>_

_<itunes:subtitle>Künstliche Intelligenz I</itunes:subtitle>_

_<itunes:summary></itunes:summary>_

_<itunesu:category itunesu:code="101102" />_

_<itunes:order>1</itunes:order>_

_<itunes:image href=" [http://cdn.video.uni-erlangen.de/Images/Kohlhase-1400.png](http://cdn.video.uni-erlangen.de/Images/Kohlhase-1400.png)" />_

_</item>_

In der ganzen RSS Datei ist eigentlich nur der Link zur Video Datei wichtig, denn das ist zumindest ein Teil der URL um diese z.B. per wget downzuloaden. Deshalb müssen wir die Zeilen identifizieren, markieren und aus der großen RSS Datei herausholen.

Identifizieren

Wie man in dem Auszug sehen kann ist ein Teil der URL in den Zeilen mit dem Schlüsselwort “isPermaLink”. Wichtig ist, dass dieses Schlüsselwort in allen gewollten Zeilen vorkommt. Und besser ist es, wenn es in keinen weiteren Zeilen erscheint. Dann braucht man das Ergebnis nicht nochmal filtern.

Markieren

Dafür verwenden wir zwei Funktionen im Notepad++. Die Erste ist im Suchen Menu (STRG+F) die Hervorheben Funktion im gleichnamigen Reiter.

Wir suchen nach " isPermaLink" und achten auf die markierten Optionen. " Lesezeichen setzen" ist wichtig für die zweite Funktion, die wird verwenden werden. Damit werden alle Zeilen zur Weiterverarbeitung markiert. Die zweite Option " Für jede Suche löschen" bedeutet, dass man vorhandene Lesezeichen beim Klick auf " Alle Markieren" löscht und durch die neue Auswahl ersetzt. Man kann natürlich dies auch verwenden, wenn man zwei unterschiedliche Suchkriterien hat um alle Zeilen zu markieren. Dann sucht und markiert man zuest mit dem einem Kriterium die Zeilen, dann mit dem Nächste und addiert sozusagen die Lesezeichen. In unserem Fall ist das nicht notwendig.

Die markierten Zeilen werden durch einem blauen Punkt neben der Zeilennummer dargestellt.

Kopieren/Herausholen

Und damit ist auch schon fast alles gemacht. Im Suchen Menü gibt es eine Untermenü Lesezeichen, das unsere zweite Funktion beinhaltet. Darin sind auch weitere Funktionen, die keine Wünsche offen lassen. Mit diesen kann man die markierten Zeilen löschen, kopieren, ausschneiden, ersetzen usw.

In unserem Fall " Zeilen mit Lesezeichen kopieren". Damit werden alle Zeilen in die Zwischenablage gelegt und wird können einfach ein neues leeres Dokument erstellen und alle Zeilen einfügen.

Mit der Funktion Ersetzen (STRG-H) und unseren Jedi Trick für Pre- und Suffixe sollte es jetzt kein Problem sein aus

das

_<guid isPermaLink="false">/data/2017/10/19/FAU\_W17\_KII\_ClipID\_8350/20171019-KII-Kohlhase-Combined-H.264-1280x720.m4v</guid>_

dies

_wget --no-check-certificate_ [_http://itunes.video.uni-erlangen.de/data/2017/10/19/FAU\_W17\_KII\_ClipID\_8350/20171019-KII-Kohlhase-Combined-H.264-1280x720.m4v_](http://itunes.video.uni-erlangen.de/data/2017/10/19/FAU_W17_KII_ClipID_8350/20171019-KII-Kohlhase-Combined-H.264-1280x720.m4v)

zu erstellen. Dieses neue Datei dann als Batchdatei abspeichern und ausführen. Das “–no-check-certificate” ist für den Download auf dem Server der Uni Erlangen notwendig, das ist nicht immer der Fall.

Hier fällt mir auf, dass ich euch noch gar nicht erklärt habe, wie man z.B. in einer Zeile 7 Zeichen am Ende löscht. Der nächste Jedi Trick - Notepad++ kommt.

24 Juni 2018

Massimo und die DSGVO

Vor knapp einem Monat war der Stichtag der DSGVO. Das große Blogsterben wurde vorhergesagt und ist auch eingetreten. Viele kleine Blogs sind offline gegangen. Und ich? Ja, auch ich habe alle meine Blogs und Webseiten in den Hyperschlaf gepackt. Jedoch hört das Jucken in den Finger nicht auf. Also bleibt einem nichts Anderes übrig, als sich mit den Dingen beschäftigen und Maßnahmen ergreifen.

Jetzt gehe ich hier wieder online. Mit ein paar Änderungen. Natürlich zu allererst HTTPS. Eine Datenschutzerklärung gibt es jetzt auch.

Die größte und einschneidendste Änderung ist jedoch das Abschalten meiner Kommentare. Es ist mir einfach zu viel Aufwand den ganzen gesetzlichen Bestimmungen nachzukommen. Ich verstehe das Ganze und finde, dass Jeder das Anrecht auf seine Daten hat. Immerhin ist das auch ein Grund, warum ich mich mit dem Thema Blockchain so tief auseinandersetze. Die persönlichen Userdaten am besten zu schützen, können Firmen, die auch Geld in das Thema investieren. Deswegen überlasse ich das lieber den Großen. Ich sehr froh, wenn wir unsere Diskussionen zu meinen Blogposts auf den gängigen Plattformen, zu denen ich diese Post repliziere, weiterführen.

Ihr findet mich auf LinkedIn, Xing und Facebook. Jedoch bin ich am aktivsten auf Twitter unterwegs.

1 März 2018

Big Bad <del>Wolf</del> Data

Ich habe am Dienstag, den 27.02. einen Vortrag über Big Data besucht. Es war ein Volkshochschul Vortrag mit dem Titel „Der digitale Umbruch - Big Data“. Jetzt sagt Ihr berechtigterweise. Massimo, auf einen VHS Vortrag geht man nicht. Erstrecht nicht mit deinem Basiswissen. Was kannst du denn da lernen? Aber ich liebe es zu erfahren wie andere Personen das Thema behandeln und noch viel wichtiger, wie das Publikum auf diese Themen reagiert. Denn, und das wisst Ihr genau, dank Big Data und der Datensammelwut lebt jeder von uns online in einer Blase. Und aus dieser sollte man sich manchmal befreien.

Und so kam es, dass ich mich unters “Volk” gemischt habe. Die erste Überraschung war, das ich das Durchschnittsalter drastisch nach unten gesenkt habe. Und das obwohl ich auch schon die 40 deutlich überschritten habe. Die Zweite war der Dozent. Ein sehr sprach gewandter Mann, der nicht zum ersten Mal einen Vortrag gehalten hat. Saubere Übergänge und Spannungsbögen und immer im Kontakt mit dem Publikum.

Auch habe ich interessante Informationen aufgenommen. Er hat sich dem Thema Datensammelwut und Auswertung durch Big Data mit dem Beispielen “Überraschende Trump Wahl” und den “nicht erwarteten Brexit” genähert. Es sind Namen wie Gustave Le Bond mit seinem Buch Psychologie der Massen und Michal Kosinski mit seiner App myPersonality auf Facebook gefallen. Die daraus entwickelte OCEAN Methode und Firmen wie Cambridge Analytica die das angewendet hat. Es ist erschreckend und wenn man das alles auch noch geballt in 2 Stunden hört, dann ist es noch “brutaler”.

Und genau das war das größte Problem an dem Vortrag. Es ging nämlich nur in diese Richtung. Nachdem das Publikum schon negativ angeheizt war, wurden noch mehr Schreckensszenarien dargestellt. IoT und die Vernetzung der Autos und Straßen zur vollständigen Überwachung des Bürgers, ausgeschalteten Smartphones die trotzdem Bewegungsdaten aufnehmen, die komplette Transparenz der Personen in Soziale Medien, das Sammeln und Verkaufen von medizinischen Daten und der Verlust allem persönlichen Freiraums, der Privatsphäre und unserer Freiheit.

Ich weiß, das ist alles machbar und für totalitäre Staaten das neue Machtinstrument. Aber noch leben wir hier in Deutschland. Und ich hätte von so einer Veranstaltung erwartet, dass sie diese Szenarien aufzeigt um zu Informieren aber auch auf der anderen Seite auch die Vorteile und guten Aspekte dieser neuen Technologie aufzeigt. Besonders im medizinischen Bereich da der komplette Saal mit Menschen des älteren Semesters gefüllt war. Und so verließ ich die Veranstaltung eher mit einer negativen Stimmung. Auf der anderen Seite habe ich mehrere Ideen bekommen. Vielleicht sollte ich so einen Vortag geben. “Big Data - The good and the bad”. Und auch Kurse wie diese Menschen sich schützen können und eine Medienkompetenz aufbauen. Ich werde Euch auf dem Laufenden halten.

28 Jan. 2018

80% der Bitcoins sind geschüft!

Ich bin heute nebenbei auf diese Information gestoßen. Und ich muss zugeben, wenn man die Hintergründe nicht kennt, dann ist das Erschreckend.

Bitcoins werden ja eigentlich nicht erzeugt. Dieses Gerücht hält sich hartnäckig, da ja auch von Schürfen die Rede ist. Die Technologie dahinter ist jedoch anders.

Damit Transaktionen auf der Blockchain festgeschrieben werden, muss ein Teilnehmer, der sogenannte Miner, erst ein mathematisches Problem lösen. Der erste Miner, der dieses Problem löst, hat das Recht gewonnen den Block zu beschreiben, wenn mehr als die Hälfte der Teilnehmer zustimmt, dass die Lösung richtig ist. Dann darf er alle anstehenden Transaktionen in den Block schreiben. Das ist der sogenannte „ Proof of Work“. Dieser kostete sehr viel Rechenleistung und damit Energie. Das ist auch der Grund, warum immer gesagt wird, dass Bitcoin mehr Energie verbraucht wie Dänemark. Alle Miner berechnen diesen Hashwert etwa alle 10 Minuten.

Damit auch Miner diesen Proof of Work leisten bekommen Sie alle Transaktionengebühren gutgeschrieben. Diese Gebühren werden von jedem der eine „Überweisung“ durchführt variable an der Transaktion festgelegt. Und zusätzlich schüttet die Blockchain im Augenblick (Januar 2018) noch 12,5 Bitcoin zusätzlich aus. Das ist das buchstäbliche schürfen der „Dinger“ aus dem mathematischen Nirvana.

Nun ist Bitcoin, auf Grund der kryptographischen und mathematischen Regeln, eine begrenzte Ressource. Es wird nur 21.000.000 Bitcoins geben, damit ist Bitcoin so gesehen eine deflationäre Währung. Wenn dieser Punkt erreicht ist, dann werden beim Beenden des Proof of Work keine Bitcoins mehr ausgeschüttet und der Miner kassiert „nur“ die Transaktionsgebühren.

Das ist der kritische Punkt von Bitcoin. Denn wenn sich das Minen wegen den hohen Energiekosten nicht mehr lohnt, werden vielen Miner, die das professionell betreiben, auf den nächsten Coin weiterziehen. Die Verbleibenden werden ihre Unkosten nur aus den Transaktionsgebühren ziehen müssen. Also werden Sie nur die Transaktionen mit einer hohen Gebühr in den Block schreiben, da diese beschränkt ist und damit nur eine bestimmte Anzahl an Transaktionen tragen kann. Das bedeutet Bezahlvorgängen für z.B. einen 3 Euro Cappuccino ohne Transaktionsgebühr (da es bei so einer kleinen Summe keinen Sinn macht) würden sich zeitlich ziehen da niemand diese in die Blockchain schreiben will. Das wäre natürlich der Tod einer Alltags-Währung.

Mit dieser Information im Hinterkopf zu erfahren, dass Anfang 2018 schon 80% der Bitcoins geschürft sind, ist erschreckend. Bitcoin ist 2017 erst so richtig in das Bewusstsein der Menschen gekommen. In den vergangenen 9 Jahren wurden schon 80% gerechnet. Dann ist also schon in 2 Jahre das Ende? Genau zu dem Zeitpunkt, an dem er richtig losgehen soll?

Zum Glück nicht.

Die Ausschüttung wird in regelmäßigen Abständen halbiert. Da sollte für die Unkosten der Miner auch kein Problem sein, denn der Preis/Wert des Bitcoins sollte immer höher werden, da er deflationär angelegt ist. Am 09.Juli 2016 wurde die Ausschüttung von 25 BTC auf 12.5 halbiert. Gestartet ist die Blockchain mit 50 BTC Ausschüttung pro Block und die nächste Halbierung auf 6,25 BTC wird 2020 erwartet. Das von mir beschriebene End-Szenario soll damit erst 2140 eintreten. Anbei eine kleine Grafik von blockchain.info die das Volumen gut veranschaulicht. Auf der Seite sind übrigens viele weitere sehr informative Diagramme.

[ via][ via]

25 Dez. 2017

Alexa. Drucke meine Zeichnungen aus.

Ich war sehr erfreut als gestern mein Weihnachtsgeschenk aufgemacht habe und ich ein Amazon Echo in den Händen hielt. Seit langem liebäugelte ich mit dem Gedanken, habe es jedoch nie gekauft. Ein Frage die mich immer beschäftigte war, was genau macht man denn mit so einem intelligenten Lautsprecher? Und durch Zufall stoße ich auf dieses Bild in Olegs Blog.

Wie böse Zungen schon behaupten, werden die Lautsprecher hauptsächlich und mit Abstand nur zum Musik spielen, Wettervorhersagen und als Timer verwendet. An sich ziemlich teure Geräte nur für diesen Zweck.

Ich finde jedoch, dass da mehr dahinter steckt. Wir sind halt noch nicht bereit mit einem Assistenten per Sprache zu kommunizieren wie z.B. die Crew der Enterprise. Und mal abgesehen, dass Alexa, Google Home, Cortana gerade noch in den Kinderschuhen stecken und die Intelligenz, die sie an den Tag legen, auch diesen Kindern entsprechen. Ist das ein erster Schritt in unsere Zukunft.

Ich hatte mal die Idee einen Chatbot mit unserem PLM System zu verbinden. Chatbots waren genau vor einem Jahr die Sau die durch das Internetdorf getrieben wurde. Chatten ist jedoch etwas, zu dem Menschen noch weniger einen Draht haben. Auch wenn heutzutage ohne Whatsapp, Facebook Messenger, Telegram und Threema die Koordinations-Kommunikation nur sehr schwer möglich ist.

Was ich jedoch deutlich sehen kann ist eine Verbindung ein Spracherkennungsdienst mit dem PLM System. Solche Szenarien wie " Alexa schicke mir bitte die Layoutzeichnung des Werk per Email" oder besser " … zeige uns die Zeichnung auf dem Beamer". Denkt man jetzt noch eine Stufe weiter und bringt den Algorithmen die PMI Informationen bei, dann würde in der Fertigung an der CNC Maschine dies hier gehen. " Alexa, wie waren nochmal die Toleranzen der 5mm Bohrung in B3?" oder " Sage mir alle Änderungen des Änderungsindex D". Es würde eine neue Welt aufgehen. Kein herumtelefonieren in der Hoffnung jemanden anzutreffen, kein Warten auf die Antwortemail, die auch nur beinhaltet " Ich weiß nicht was Sie meinen, lassen sie uns telefonieren sobald ich aus meinen Meetings draußen bin.". Man fragt nach der Lösung und bekommt diese von der Maschine geliefert.

Für die Kaffeepause: Ihr sollte euch man Gedanken machen welche wiederkehrenden Fragen auftauchen und versuchen diese in ein “Rezept” zu packen. Denn irgendwann kann man diese Rezepte sicherlich einer Maschine geben um sie abzuarbeiten.

[ via]

10 Dez. 2017

Die Revolution der KIs

Gerade lese ich den Beitrag " Wie revolutionär ist KI tatsächlich" auf boot.ai.

Vollgepackt mit Phrasen wir toll KI ist und es zum Grundstein der nächsten IT Plattformen wird. So wichtig wie Elektrizität.

Ganz unrecht hat der Autor nicht. KIs werden immer intelligenter nicht zuletzt durch die immer performantere Hardware. Erst neulich hat Nvidia die neue Titan V vorgestellt. Der Traum eines jeden Daten Analysten mich eingeschlossen.

Aber auch die immer größere Verbreitung bringt neue schlaue Köpfe ins Boot des Maschinellen Lernen. Dadurch kommen auch neue Ideen und bessere Algorithmen heraus. Und der Weg zu generellen Künstlichen Intelligenz wird immer mehr zur Autobahn.

Aber ist KI so benutzbar wie Strom? Oder sogar so benutzbar wir ein PC? In Zukunft sicherlich. Vielleicht sogar früher als gedacht. Im Augenblick jedoch noch nicht. Wir stecken noch in den Kinderschuhen. Der Hype gerade verleitet zu denken, ich werfe der Grafikkarte Big Data technisch alle Daten hin und schon spuckt mir der Rechner den besten Weg heraus wie ich in meiner Industrieanlagen Strom sparen kann. Oder ich weiß wann Bauteile ausfallen und schon die Bestellung auslösen kann noch bevor ein Schaden entsteht. Im Augenblick sind jedoch noch so viel Vorarbeiter zu machen. Die Algorithmen müssen trainiert werden. Und wehe die Datenbasis ist nicht sauber und durchdacht. Overfitting oder unerwünschte Ergebnisse sind an der Tagesordnung. Ich möchte ja nicht schon wieder an Tay, den Chatbots von Microsoft, erinnern.

Ich kann es selbst nicht erwarten, diese hilfreichen KIs zu erleben. Und ich bin mir auch sicher, dass das noch zu meinen Lebzeiten passieren wird. Es ist jedoch noch ein sehr spannender Weg dahin.

Was denkt Ihr darüber? Liege ich falsch? Gibt es schon eine Alexa, Siri oder Cortana die mir mein Leben erleichtert anstatt eine SMS fünf mal zu diktieren?

7 Dez. 2017

Jedi Tricks – Irfanview – Screenshots

Heute schreibe ich über mein Lieblingsbild Bildmanipulationsprogramm Irfanview. Das Tool ist eine Eierlegendewollmilchsau was Bildmanipulationen betrifft. Irfanview war eigentlich ein Viewer. Es wurde jedoch immer weiter erweitert, dass es jetzt viele kleine Tricks beherrscht. Es ist nicht mit Gimp oder Photoshop zu vergleichen, sondern mehr für alle andere Aufgaben. Batchverarbeitung zum Bilder vergrößern/verkleinern, umbenennen, Wasserzeichen einbauen, in andere Formate konvertieren usw. Farben/Farbkanäle bearbeiten, „Rote Augen“ entfernen, Beschneiden und verlustfrei drehen. Und natürlich das Tool um schnell Bilder in einem Verzeichnis durchzuscannen und anzuschauen.

Heute zeige ich euch eine Funktion, die nicht so bekannt ist. Screenshots mit Irfanview durchführen. Jetzt kann man natürlich sagen: „Was soll das Massimo? Mit dem Snipping Tool von Windows hat man doch alles.“ Ja, das Snipping Tool ist schon gut und in manchen Stellen sogar besser. Z.B. wenn man etwas mit einem „Marker“ hervorheben will. Aber Irfanview kann den Mauszeiger und aufgeklappte Menüs abfotografieren. So heißt auch die Funktion.

Diese startet man mit „ c“.

Und schon sieht man, was Irfanview alles kann. Wenn man das gleiche machen wie mit dem Snipping Tool, dann wählt man 5 aus und drückt Return. Also „ c“ „ 5“ „ Return“. Und schon kann man den gewünschten Rahmen ziehen.

Option 1 und 2 braucht man wenn man die aufgeklappten Menüs fotografieren will. „ c“ „ 2“ „ Return“. Dann das Menü aufklappen, wie man es braucht. Und mit „ Strg“+“ F11“ bekommt man das Foto.

z.B sowas:

Das Tastaturkürzel kann natürlich links oben verändert werden. Man kann auch einen Timer ablaufen lassen und Irfanview macht dann automatisch das Foto.

Im unteren Rand des Fotografieren Fenster kann man einstellen, was nach dem Fotografieren passieren soll. Screenshot automatisch ausdrucken oder vielleicht automatisch speichern, wenn man eine Reihe an Screenshots erstellen will.

Doch wie habe ich den genau das Bild des Menüs mit dem Zeiger gemacht? Zuerst fotografiert man den „aktuellen Monitor“ Option 2. D.h. „ c“ „ 2“ „ Return“. Dann das Menü aufklappen und den Mauszeiger an die gewünschte Position und „ Strg“+“ F11“. Damit bekommt man jedoch den gesamten Bildschirm ins Irfanview Fenster.

In diesem Fester zieht man einfach einen Kasten mit der linken Maustaste

und klickt „ Strg“+“ y“. Das ist die Freistellen Funktion. Und schon hat man nur den Ausschnitt.

Und sollte man sich verschnitten haben. Mit Rückgängig („ Strg“+“ z“) hat man wieder das gesamte Bild.

Kommen wir jedoch zu einer etwas umständlicheren Funktion. Im Snipping Tool kann man einfach den gelben Marker anklicken und eine besondere Stelle „freihändig“ hervorheben. Das gibt es im Ifranview nicht. Man muss einen Kasten über den Bereich ziehen, denn man markieren will. Dieser ist natürlich komplett verschiebbar, einfach auf die Ränder klicken und „schieben“.

Shift“+“ g“ und das „Farbe ändern“ Menu geht auf.

Wenn man jetzt den Regler für die Farbe Blau ganz nach rechts schiebt, entsteht der gelbe Marker Effekt, den man im Vorschaufenster oben rechts sieht.

Der Vorteil wiederum ist, man kann auch die anderen Regler verschieben und auch einen roten, grünen oder orangen Marker simulieren. Auch kann man z.B. Bereiche mit dem " Kontrast" und " Gamma-Korrektur" ausgrauen. Wenn Ihr aufgepaßt habt, dann sieht ihr den Effekt in einem vorhergehenden Screenshot. Jedoch leider immer nur rechteckig.

Und malen kann man auch. Mit „ F12“ erscheint die Toolbox die rechts abgebildet ist.

Und mit diese kann wiederum alles machen, was ein Bildbearbeitungstool beherrscht. Pinsel, Füllen mit dem Farbeimer, Linen und Rechtecke zeichnen und sogar einen Clone Stempel hat man. Einfach mal mit den Funktionen rumspielen.

Das war’s. Wenn Ihr noch Fragen habt, einfach ein Kommentar hinterlassen oder per Twitter.

Möge die Macht mit euch sein.

3 Dez. 2017

Die Maschinen und die Kunst

Letzte Woche hat sich mein Post über die Urheberrechte gedreht. Dort erwähnte ich, dass ML Algorithmen auch Kunst erzeugen. Im Laufe der Woche bin ich auf die Podcast Folge Doug Eck – Expressive AI-Generated Music with Google’s Performance RNN des super Podcast TWiML & AI gestoßen. In dem Interview geht es genau um Machine Learning im Bereich der Kunst. Er erklärt unteranderem wie Maschinen Dinge wahrnehmen. Besonders im Vergleich zwischen Musik und Bilder.

Eines der beliebtesten App in der letzten Zeit war Prisma. Die App konnte den Stil eines Künstlers auf ein beliebiges Bild übertragen. D.h. das eigene Urlaubsfoto konnte damit in ein Kunstwerk von Picasso oder Rembrandt umgebaut werden. Bei Musik ist das nicht möglich. Ein Bild, und damit auch ein Film, sind statische Dinge. Eine Maschine hat Zeit, wie mit einer Lupe von links oben nach rechts unten das ganze Bild anschauen und manipulieren.

Bei Musik ist das anders. Es ist ein Fluss an Informationen das sich nur über die Zeit in ein Gesamtwerk entfaltet. Deswegen kann man nicht einfach einen Teil manipulieren ohne das Gesamte zu kennen oder zu beeinflussen. Sicherlich wird in naher Zukunft jemand die Lösung finden, jedoch im Augenblick ist das Feld noch unbesetzt.

Es ist immer wieder faszinierend, wenn man sich mit verschiedenen Bereichen des Maschinellen Lernen und Künstliche Intelligenz tiefer beschäftigt und diese versucht durch eine mathematische Brille zu sehen. So einfache „Hey Ihr könnt Bilder manipulieren, dann sollte das doch mit Musik auch einfach gehen“ sind dann doch komplett verschiedene Welten mit eigenen einzigartigen Herausforderungen.

30 Nov. 2017

Jedi Tricks – Windows - Tastatur Shortcuts

Wir sind alle auf der Suche nach Produktivitäts Tricks. Wie erledige ich Dinge effizienter und spare dadurch Zeit.

Man braucht dafür nicht sehr viel, die einfachsten Kniffe liegen ganz nah. Zum Beispiel ist eine Sache die Mauszeigergeschwindigkeit auf das Maximum stellen. Das ist zwar die ersten Stunden der Horror, aber danach geht es locker von der Hand. Wenn man dann mal an einem PC sitzt bei dem die Maus langsam ist, merkt man wie umständlich es ist sie immer wieder auf- und abzusetzen.

Noch schneller geht es nur, wenn man gar nicht zur Maus greift. Die Finger sind auf der Tastatur und dort bleiben sie. Und deswegen sind Tastaturkürzel mehr als Gold wert. Meine am meisten verwendeten sind Folgende.

“Strg+x” “Strg+c” “Strg+v” sollte man kennen um Texte oder Daten “auszuschneiden” “kopieren” und “einfügen”. Kombiniert mit “Strg+a” für alles markieren ist man für alles gewappnet. Und falls etwas schief geht kann man mit “Strg+z” fast alles rückgängig machen. Diese Kombination ist unbezahlbar. Wenn man nicht alles markieren will, helfen einem die folgenden Tasten. Mit “Pos1” springt man an den Anfang einer Zeile, mit “Strg+Pos1” an den Anfang des Dokumentes, der Liste, der Tabelle usw.. Die Tasten “Ende” und “Strg+Ende” machen das Gegenteil. Jetzt noch gleichzeitig die “Shift” Taste gedrückt halten und man kann damit z.B. von der Position des Cursors bis zum Ende alles Markieren zum Ausschneiden oder Kopieren oder mit “Entf” löschen.

“Windows+e” startet dem Explorer

“Windows+r” öffnet das Ausführen Fenster. Damit kann man dann direkt Programme ausführen. “calc” ist der Taschenrechner, “cmd” die DOS Box und “shutdown -g -t 0” fährt den Rechner sofort runter.

Apropos Programme. Bloß nicht mit der Maus durch das Startmenü hangeln wenn man Standardprogramme braucht. Man tippt auf die Windows Taste und dann tippt man den Programmnamen. Eigentlich reichen die ersten Buchstaben um das Programm in die Auswahl zu bekommen und dann nur “Return” drücken um es zu starten:

“Windows, f, i, Return” => Firefox

“Windows, w, o, Return” => Word

“Windows, e, x, Return” => Excel

“Windows, o, u, Return” => Outlook

“Windows, i, n, Return” => Internet Explorer

“Windows, i, r, Return” => IrfanView (auf dieses Juwel komme ich auch bald zu sprechen)

Wenn man einen Ordner im Startmenü mit eigenen Verknüpfungen erstellt, dann klappt das auch mit diesen. Z.B. seine ToDo Liste als Textdatei (auch dazu bald mehr). Einfach “Windows, t, o, d, o, Return” und schon geht diese auf. Übrigens funktioniert das auf jedem Rechner. Man muß nie fragen “Wo ist den dein Internet Explorer?” um schnell etwas zu googlen.

Damit fällt auch das ständige minimieren der Fenster, um an die Icons auf den Desktop zu kommen, aus. Icons auf dem Desktop sind es ein Produktivitätskiller. Wobei das Minimieren aller Fenstern ist auch schnell gemacht mit “Windows+m”. Den selben Effekt hat “Windows+d” wobei der Vorteil davon ist mit nochmaligen “Windows+d” wird alles wieder hergestellt. Der traditionelle Weg um alles wieder zu maximieren wäre “Windows+Shift+m”.

Zum Schluß noch “F2” um Dateien umzubenennen. Und “Windows+L” (ich habe ein großes l verwendet damit man es nicht mit dem großen I verwechselt ;) ) um den Arbeitsplatz zu sperren wenn man den PC kurz verläßt.

Es gibt noch dutzende weitere Tastaturkürzel. Nicht nur in Windows sondern auch z.B. in Word, Excel und Firefox um Funktionen blitzschnell aufzurufen. Ihr könnt also danach googeln oder warten bis ich wieder ein paar in den Blog werfe.

Das war’s. Wenn Ihr noch Fragen habt, einfach ein Kommentar hinterlassen oder per Twitter.

Möge die Macht mit euch sein.

26 Nov. 2017

Urheberrechte für Künstliche Intelligenzen

Ich bin auf einen interessanten Artikel auf dem Blog Boot.ai gestoßen. In diesem wird erwähnt, dass das US-amerikanische Copyright Office entschieden hat, dass Urheberrechte nur an Menschen gewährleistet werden. Das erinnert mich an die Diskussion von damals, als es um ein Selfie eines Affen ging.

Künstliche Intelligenzen erzeugen heute schon Texte, Musik, Bilder. Wenn das so weiter geht, dann werden auch physische Kunstwerke aus 3D Druckern entstehen oder ein Roboterarm töpfert oder bildhauert (oder wie das Verb dazu heißt). Die Künstlichen Intelligenzen erstellen Kulturgüter. Dinge, die unsere Gesellschaft prägen, formen und beeinflussen. Wie zum Beispiel OpenAi als es den “weltbesten” Dota 2 Spieler geschlagen hat. Seit dem ist die Taktik der KI zum Standardrepertoire der Dota Spieler geworden.

Doch mal angenommen die Rechte würden der KI gewährt werden, an wen würden sie wirklich gehen? Den Schöpfern der KI? Den Schöpfern des Frameworks? Oder richten wir der KI eine Bitcoin Wallet ein bis sie generell genug ist und das selbst entscheiden kann?

Eine Idee ist mir beim Kommentieren des Artikels eingefallen.

Warum geben wir den KIs nicht die Urheberrechte. Die dadurch entstehenden Einnahmen könnten in einen Fond fließen. Dieser wiederum könnte für das bedingungslose Einkommen gebraucht werden. Wenn die KIs uns die Arbeitsplätze wegnehmen, dann könnten sie damit wieder etwas zurückgeben.

23 Nov. 2017

Jedi Tricks - Notepad++ - Pre- und Suffixe

Notepad++ ist die Software die ich tagtäglich nutze. Sie hilft mir bei meinem Job, bei meinen kleinen Routinen und auch bei meiner Selbstorganisation.

Ein Teil meiner Arbeit ist es Listen zu bearbeiten. Um Daten aus Tabellen zu manipulieren, Skripte um Daten auf Filesystemen und Shares zu bearbeiten und allerlei Informationen zusammenzuschmelzen. Dafür benutze ich Notepad++. Auf der einen Seite um die Daten direkt zu bearbeiten oder um mir Befehlszeilenbefehle (was für ein Wort) zusammenzubauen und diese dann per copy&paste ausführen zu können.

Ein wichtiger Punkt ist es in allen Zeilen vor und nach Texten weitere Texte einfügen zu können. Mittendrin ist es kein Problem, da arbeitet man einfach mit Suchen und Ersetzen. Aber am Zeilenanfang und am Zeilenende ist das eine Herausforderung. Aber zu Glück kann Notepad++ im Suchen und Ersetzen Dialog mit Regular Expressions oder Deutsch Reguläre Ausdrücke umgehen. Das sind interpretierbare Steuerzeichen um Texte zu manipulieren. Ich werde in Zukunft sicherlich noch auf Diese eingehen.

Wie fügt man jetzt Pre- und Suffixe ein?

1. Man öffnet das Suchen und Ersetzen Dialog und achtet, dass der Suchmodus Reguläre Ausdrücke ausgewählt ist.

2. Im “Suchen nach:” Feld gibt man, damit Notepad++ eine ganze Zeile sucht, folgendes als Suchbegriff ein.

_(.+)$_

3. Im “Ersetzen durch:” Feld kann man jetzt den einzufügenden Text eingeben. Die gesuchte und gefundene ganze Zeile wird von Notepad++ als “/1” bezeichnet. Also:

Das ist ein Text, der am Anfang einer Zeile eingefügt wird. /1 /1 Dieser Text landet dahinter.

Oder programmiertechnisch ausgedrückt:

_<prefix>/1_ _/1<suffix>_

Das war’s. Wenn Ihr noch Fragen habt, einfach ein Kommentar hinterlassen oder per Twitter.

Möge die Macht mit euch sein.

23 Nov. 2017

Jedi Tricks - Prolog

Mit diesem Post starte ich die Tipps und Tricks Kategorie.

Lange habe ich nicht nach einem Namen gesucht. “Tipps und Tricks” oder “Like a Boss” standen auch zu Auswahl. Das Erste war mit zu langweilig und normal, das Zweite fand ich nicht schlecht, jedoch ist ein Spruch mehr im angloamerikanischen Markt und hier nicht so bekannt.

Da ich den Blog ja persönlicher machen wollte, fiel meine Entscheidung auf “Jedi Tricks”. Jeder der mich näher kennt, weiß meine Einstellung zu den Star Wars Filme und dem ganzen Universum drumherum. Ich selbst gebe “Jedi” auch immer als Religion in Formularen an.

Soviel zum Prolog.

19 Nov. 2017

Hello World

Tja, das ist er nun, der neue Blog. Dieser unter einer sehr persönlichen Domain.

Viele kennen meinen Geek-Blog kobaltauge.de.

Mein sehr eingeschlafener Home-Blog amwasserfall.wordpress.com

Und auch mein Versuch etwas über meinen Job niederzuschreiben unter coffeebreakforplm.wordpress.com

Warum jetzt Blog Nummer 4? Nun ja, das “Coffeebreak for PLM” war ein nettes Projekt. So richtig gezündet hat es nicht, aber losgelassen hat es mich auch nicht. Ich habe es immer im Hinterkopf behalten. Doch der Titel war zu einengend. Klar, soll man der Meister in seiner Nische sein. Das ist mir aber zu wenig. Dafür bin ich zu sehr Freigeist.

Also ab jetzt hier.

Und was werden die Themen sein? Irgendwie alles was mich auf meiner professioneller Ebene ausmacht.

Alles rund um meinen Job im Bereich PLM, PDM und CAD. Das ist die logische Fortsetzung des Coffeebreak Blog und noch ein wenig mehr. Ich denke da an ein paar Ausflüge ins Projektmanagement, Teamleitung, Selbstmanagement und Administration.

Dann Themengebiete die mich dieser Ebene interessieren. AR & VR, Virtualisierung & Cloud, Blockchain, Machine Learning & AI und was die ganze Palette an interessanten Technologien noch so hergibt. Diese Kategorie wird sich sicherlich über die Zeit sehr bunt werden.

Und als Drittes ein komplett neuer Bereich. Ich werde oft gefragt, wie ich mein Leben erleichtere und automatisiere. Ich nutze dafür viele Kostenlose oder sehr günstige Tool. Genau das werde ich in dem Bereich niederschreiben. Die Helferlein selbst und Tips und Trick um das Potential dieser Tools zu entfalten. Doch auch Tips und Tricks rund um “Standardtools” wie Excel, Word und PowerPoint die ich für teilenswert finde. Für euch, alle die mich dazu fragen und natürlich auch als Gedankenstütze für mich selbst. Scheut euch nicht mich mit Fragen zu bombardieren. Es ist mir eine Freude Euch das Leben mit ein paar Zeilen einfacher machen kann.

Na dann. Auf “Los” geht’s los.

LOS!