Qt 5.12 und Web Assembly

Wer als C++ Entwickler sich schon immer gefragt hat, wenn wir sowieso Anwendungen im Web laufen lassen, warum muss es fast immer mit Javascript entwickelt werden? Desktop-Anwendungen gibt es viele und warum nicht diese einfach ins Web portieren? In der heutigen Zeit der  Cloudbasierten IT-Infrastruktur macht dieser Ansatz auf jeden Fall Sinn.

Dank der Web Assembly Technologie (WASM) ist es möglich aus bereits bestehenden C++ Code Webanwendungen zu bauen. In Kombination mit Qt können fensterbasierte Anwendungen ins Web integriert werden.

Möchten Sie also etwas grafisches, sehr dynamisches komplett im Web zeigen? Soll es von der Performance sehr gut laufen? Es ist C++ Code? Dann ist WASM das richtige!

Hier werde ich zeigen, wie unter dem Ubuntu 18.04 Derivat Linux Mint 19 mit Qt eine fensterbasierte Anwendung ins Web integriert werden kann.

Weitere Info zu der Technologie hier:

https://webassembly.org/

Emscripten

Um WASM Anwendungen zu bauen, brauchen wir Emscripten. Ich habe es heruntergeladen unter

https://kripken.github.io/emscripten-site/

ausgepackt und dann im Ordner folgendes ausgeführt:

./emsdk update
./emsdk install latest
./emsdk activate latest

Vor dem Bauen der Qt 5.12 habe ich die Shell-Umgebung so gesetzt, dass emscripten Befehle global eingesetzt werden:

export PATH=$PATH:/<pathtoemsdk>/emscripten/1.38.20

Kann man wie folgt testen, ob es geklappt hat:

echo $PATH

em++ --version

Qt 5.12 Sources

Hier empfiehlt es sich, die aktuellste Qt Version zu nehmen, auch wenn sich diese in der Beta-Phase befindet:

git clone https://github.com/qt/qt5.git
cd qt5/
git checkout origin/5.12.0

./init-repository
./configure -xplatform wasm-emscripten -nomake examples -prefix $PWD/qtbase
make

Und schon werden die Bibliotheken für WASM erstellt.

Projekt erstellen

Ich würde eine einfache Qt Anwendung bauen, sowas wie ein einfaches Hello World.

./qmake <yourAppCodeDir>

make

Jeweils eine HTML-, JS- und WASM-Datei werden generiert.

Programm im Browser starten

Ganz einfach einen Simplen Webserver starten

python -m SimpleHTTPServer
emrun --browser=firefox BandwidthCalculator.html

und auf die URL gehen, wo sich die HTML Datei befindet. Viel Spaß beim ausprobieren!

Fazit

Ich war begeistert, wie gut es geklappt hatte. Ich musste keinen C++ Code anpassen. Leider lassen sich noch nicht alle Qt-Bibliotheken kompilieren, doch es wird sicherlich noch Updates geben. Das ist nur eine Frage der Zeit.

Simulationen mit OpenFOAM auf einem Banana Pi M64

OpenFOAM auf einem Banana Pi M64?

OpenFOAM ist eine offene Ansammlung von Bibliotheken, mit denen Strömungsmechanische Simulationen durchgeführt werden können. Das ist eines der größten Anwendungsgebiete, aber noch lange nicht das einzige:

https://openfoam.com/

Open Field Operation And Manipulation steht dafür, dass der Entwickler eine Differentialgleichung aufstellen kann und diese durch OpenFOAM lösen lässt. Das klingt nach einem Universaltool, aber ganz so einfach ist es dann doch nicht. OpenFOAM benutzt ein eigenes C++, mit dem einige sogenannte „Solver“ geschrieben wurden. In diesen „Solvern“ ist das Differentialgleichungssystem mit einem speziellen C++-Dialekt geschrieben, der von den OpenFOAM-Bibliotheken erkannt wird. Im Code als auch in der gebauten Executable sind einige bekannte Methoden und Parameter einzustellen, damit letztlich die Rechnung ordnungsgemäß abläuft. OpenFOAM bringt einige Solver und zahlreiche Tutorials im Paketumfang mit, welche ohne großen Aufwand eingesetzt werden können.

Banana Pi M64 ist ein kleiner Computer wie das Raspberry Pi, allerdings mit wesentlich mehr Arbeitsspeicher, 64-Bit Architektur, eMMC (Auf der Platine integrierter Speicher) und einem höher getakteten Prozessor:

http://www.banana-pi.org/m64.html

Der große daran Vorteil ist: es ist klein, leise und verbraucht wenig Strom. Vergangene Versuche mit OpenFOAM auf dem RaspberryPi hat es schon in der Vergangenheit gegeben:

https://www.cfd-online.com/Forums/openfoam-installation-windows-mac/146433-openfoam-embedded-systems-pi-pi2-edison-bbb.html

Jetzt starte ich einen neuen Versuch und schaue wie gut die Performance ausfällt. Da man mit OpenFOAM mehrere Rechner zusammenschalten kann um parallele Rechnungen durchzuführen, kann man damit wunderbar seine Infrastruktur skalieren. Hier ist meine Hardware:

Einmal zusammengebaut sieht es dann so aus:

Und im Betrieb:

Ein weitere Rechner (Desktop-System) nutzt folgende Spezifikationen:

Ich werde die Rechenzeiten des BPi gegen diesen Desktop-Rechner vergleichen. Natürlich ist dieser schneller, aber der Faktor interessiert mich. Grund ist, dass man sich die Frage stellen kann, ob mehrere BananaPi Geräte vielleicht doch einen i5 dieser Klasse ersetzen kann. Wie viele das wären und welcher Platz (Serverraum Volumen) benötigt wird um diese Rechenleistung ernsthaft einzusetzen, habe ich abgeschätzt. Allerdings wurde dafür ein einfacher Fall genommen und dieser rechnet jeweils auf beiden Systemen mit einem einzigen Kern.

Betriebssystem für BananaPi

Zur der Zeit dieses Artikels gibt es ein Ubuntu 16.04 Image für das Gerät. Ich habe mir die Zeit genommen und es auf das eMMC aufgespielt:

http://www.banana-pi.org/m64-download.html

Leider gab noch kein Image mit Ubuntu 18.04, also habe ich 16.04 genommen und ein Upgrade gefahren

sudo apt update && sudo apt dist-upgrade && sudo apt autoremove
sudo apt-get install update-manager-core
sudo do-release-upgrade -d

Das lief auch wunderbar durch:

cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"

Grund dafür ist, dass die Aktualität einer Ubuntu LTS (Long-Term-Release) in der Regel dafür sorgt, dass man in weniger Fehler hinein-tritt. Das gilt allerdings nur für LTS. Der Grund dafür ist, dass die Entwickler solcher Tools größtenteils auf den Ubuntu LTS Versionen testen und davon immer aktuellste (Meine persönliche Erfahrung).

OpenFOAM aus den Repos installieren

Ursprünglich wollte ich es aus dem Quellcode kompilieren, doch leider gab es zu viele Fehler und ich habe dann die Repo-Version genommen:

apt install libopenfoam openfoam-examples

Auf dem i5 habe ich OpenFOAM 4.1 dann selber gebaut.

Einfacher Versuch – PitzDaily

PitzDaily ist so ziemlich das erste Beispiel, was man unter OpenFOAM simulieren kann. Der Fall ist sehr schnell gerechnet.

Das Ergebnis von beiden mit sehr kleinen Abweichungen sieht als Auswertung dann wie folgt aus:

Bild: Hier ist ein kleiner Kanal zu erkennen, in dem Luft oben links mit einer Geschwindigkeit von 10 m/s durchgeblasen wird. Am unteren Teil des Kanals sieht man durch die Vektoren (schwarze Pfeile), dass ein induzierter Wirbel entsteht. An den Farben erkennt man das Geschwindigkeitsprofil.

Rechenzeiten

Urteil der Rechenzeiten folgt. Am Ende der Logs kann man die Simulationszeit für die Iterationen ablesen.

Auf dem BPI-M64:

    ...
    smoothSolver: Solving for Ux, Initial residual = 0.00013831, Final residual = 9.28001e-06, No Iterations 6
    smoothSolver: Solving for Uy, Initial residual = 0.000977894, Final residual = 6.73868e-05, No Iterations 6
    GAMG: Solving for p, Initial residual = 0.000761591, Final residual = 6.02052e-05, No Iterations 5
    time step continuity errors : sum local = 0.00284907, global = -0.000320399, cumulative = 1.21783
    smoothSolver: Solving for epsilon, Initial residual = 0.000117283, Final residual = 7.16786e-06, No Iterations 3
    smoothSolver: Solving for k, Initial residual = 0.000211639, Final residual = 1.2388e-05, No Iterations 4
    ExecutionTime = 126.81 s ClockTime = 129 s


    SIMPLE solution converged in 298 iterations

    streamLine streamlines write:
    seeded 10 particles
    Tracks:10
    Total samples:10809
    Writing data to "/home/gerstrong/pitzDaily/postProcessing/sets/streamlines/298"
    End

Auf dem i5:

smoothSolver:  Solving for Ux, Initial residual = 0.000117166, Final residual = 1.15333e-05, No Iterations 5
smoothSolver:  Solving for Uy, Initial residual = 0.000974057, Final residual = 6.71236e-05, No Iterations 6
GAMG:  Solving for p, Initial residual = 0.000753183, Final residual = 6.40228e-05, No Iterations 5
time step continuity errors : sum local = 0.00305484, global = -0.000240797, cumulative = 1.02849
smoothSolver:  Solving for epsilon, Initial residual = 0.000118496, Final residual = 6.83101e-06, No Iterations 3
smoothSolver:  Solving for k, Initial residual = 0.00021769, Final residual = 1.35326e-05, No Iterations 4
ExecutionTime = 7.31 s  ClockTime = 8 s


SIMPLE solution converged in 283 iterations

streamLine streamlines write:
    seeded 10 particles
    Tracks:10
    Total samples:10885
    Writing data to "/mnt/common/Simulations/Software/OpenFOAM-v1806/tutorials/incompressible/simpleFoam/pitzDaily/postProcessing/sets/streamlines/283"
End

Komischerweise konvergierten die Rechnungen unterschiedlich (283 zu 298). Unterschiedlich, und zwar sehr, sind auch die Rechenzeiten der Geräte. Der i5 war nach 7,31 Sekunden fertig, während der BananaPi ganze 126,81 Sekunden brauchte! Damit sind wir bei einem Faktor von 17,35!

Also kann man sagen mit 18 BananaPi-Geräten und etwas Interprozess-Parallelisierung oder mehreren Rechenfälle z.B. für Parameterstudien, könnte sich eine Anschaffung dieser Art doch lohnen.

Raumausfüllung

Mein i5 mit Gehäuse hat folgende Dimensionen in cm:

42x35x17 ergibt 24.990 cm³

7,5×10,5×3,0 ergibt 236,25 cm³

Ich kann also mit ca. 100 BananaPi-Geräten den Platz des i5 Rechners ausfüllen. Aus dieser Sicht ist der Faktor 17,35 doch nicht so schlecht, bedenkt man die Größe BPi.

Fazit

Klein aber Oho! Wie erwartet, ist das BananaPi zwar schwächer als ein i5, berechnet man es aber auf die Raumausfüllung des Geräts, sieht das ganze gar nicht mehr so schlecht aus. Für stark parallelisierbare Rechenfälle ist die Anschaffung eines kleinen Pi-Clusters für wissenschaftliche oder industrielle Anwendungen vielleicht doch keine schlechte Idee.

IoT vs. IoP oder wie kleine Geräte große Pannen verhindern

Internet Of Things ist keine Neuheit mehr; Einschränkung aufzuheben, dass nur Desktop-Geräte, Laptops, Tablets und Smartphones mit dem Internet verbunden werden. Immer mehr Geräte wie z.B. SmartTVs oder Lösungen für SmartHome werden angeboten und verbinden sich mit dem großen Netzwerk. Das eröffnet viele neue Möglichkeiten für den Benutzer, denn er kann von überall mit seinem Smartphone diese „inteligenten“ Geräte bedienen. Mit Geräten wie Amazon Alexa geht es sogar noch weiter. Plötzlich sprechen Sie mit Ihrem Haushalt und befehlen das Licht einzuschalten oder die Heizung herunterzuregeln.

IoP

Was ist also IoP? Die vom Author selbst erfundene Abkürzung steht für Internet of PCs. Es ist eigentlich das, was wir hatten, bevor das Konzept Internet Of Things entstanden ist. Hier möchte ich einschlagen, denn ein PC kann schnell zu einem „Thing“ werden um die Aufgabe eines „Internet of Things“-Gerät zu erfüllen.

Da IoT-Geräte im Vergleich zu einem modernen PC wesentlich weniger Leistung bringen, könnte man schnell denken, warum nicht einen alten Rechner nehmen? Klar kann man das machen, nur dann sollte man über folgende Punkte nachdenken:

  1. Stromverbrauch: Ältere Rechner, je nach Modell, schlucken mehr Strom. Möchte man also ein Gerät im Haushalt oder Unternehmen einsetzen, dass die Aufgaben rund um die Uhr erfüllt, sollte man an die Stromkosten denken.
  2. Lautstärke: Ein vollwertiger Rechner hat meistens einige Lüfter eingebaut. Wie in Punkt 1 erwähnt, verbrauchen diese ebenfalls elektrischen Strom und sind zudem laut. Gerade ältere Lüfter machen auf Grund der verschlissenen Welle (Massenträgheitsmoment) noch mehr Krach. Geräte ohne Lüfter haben dieses Problem nicht.
  3. Platzbedarf: Ein Raspberry Pi von der Fläche gerade mal so breit und tief wie eine Scheckkarte im Vergleich zu einem ATX-Gehäuse ist halt kleiner.

Wenn die Aufgaben des IoT-Geräts jedoch rechenintensiver sind, die Stromkosten keine Rolle spielen und ausreichend Platz zur Verfügung steht, wäre es eine Überlegung wert. Ist es dann ein IoT-Gerät oder vielleicht doch nur ein einfacher Computer, der mit dem Internet verbunden ist?

Die o.g. Aussagen mögen banal klingen, doch im unternehmerischen Umfeld wird häufiger alte Hardware eingesetzt, als oftmals angenommen wird.

PCs everywhere?

Woran erkennt man also, ob ein Gerät eher ein verstaubtes System oder die perfekte Harmonie zwischen Hardware und Software darstellt?

Man erkennt es am besten, wenn eine Fehlermeldung an diesem Gerät auftaucht. Hier ein typisches Beispiel:

Quelle: https://dev.scoutman.at/2015/05/der-geldautomat-mit-dem-bluescreen/#more-560

Dieser Bluescreen-Fehler kommt von Windows XP. Vielleicht fällt Ihnen jetzt schon auf, dass dieses Bild von Mai 2015 stammt. Seit dem Jahr 2014 wurde Windows XP offiziell von Microsoft abgekündigt.

Aufgaben eines IoT-Gerätes

Ist ein Bank-Automat überhaupt ein IoT-Gerät? Schwer zu sagen. Für mich ist es ein Gerät mit einer begrenzten Zahl an Aufgaben. Windows XP mag zwar trotz des Alters mit zusätzlicher Software die Aufgaben abdecken, aber es kann viel mehr! Wahrscheinlich lässt sich sogar Counter Strike installieren, aber wozu?

Ein System mit mehr „Features“ ist in der Regel anfälliger. Windows XP ist für solche Aufgaben nicht ausgelegt. Es ist ein Desktop-System für Benutzer, womit verschiedene bürobezogene Aufgaben abgewickelt werden. Zu seiner Zeit hat es dies halbwegs gut abgedeckt.

Der „XP-Zombie“ lebt also noch mind. bis 2019 weiter, weil sämtliche Banken und Regierungen Geld an Microsoft gezahlt haben, damit es am Leben gehalten wird, statt eine moderne Lösung in Betracht zu ziehen.

Im Folgendem eine Anleitung für XP Nutzer, die wieder Updates haben möchten. Der Update-Kanal, der von diesen Institutionen finanziert wurde, kann von Orthonormal-Nutzern mitangezapft werden:

https://www.youtube.com/watch?time_continue=37&v=BVDkorPtWms

Das ist in unserer Gesellschaft mit den heutigen Geräten ein riesiges Problem. Windows wird heutzutage für so gut wie alles eingesetzt und seitdem haben die Systemfehler heftig zugenommen. Ist Microsoft an der schlechten Qualität der Software schuld? Nein, es ist schlichtweg das falsche Betriebssystem für solche Geräte.

Falls Sie glauben, dass sich das speziell auf Bankautomaten beschränkt, hier noch ein Beispiel aus dem Digital Signage-Bereich:

https://www.dotkam.com/2007/05/03/windows-xp-screensaver-on-time-square-nyc/

Quelle: Dotkam

Leider habe ich dazu keine Bilder zum zeigen, aber beim Rewe-Markt und am Frankfurter Flughafen Terminal 2 habe ich vor kurzem Bluescreens gesehen. hier ist noch ein Video:

https://www.youtube.com/watch?v=bmnWBcrfl24

Quelle: DJLaunchStar

Es ist unglaublich wie Windows die ganze Welt der Geräte um uns herum beherrscht. Warum machen das die Firmen so? Es gibt Systeme für genau bestimmte Anwendungen, aber warum immer mit Windows?

Die Antwort liegt in der IT-Ausbildung. Wer irgendwie in der Informationstechnolgie-Branche eine Ausbildung macht, bekommt sozusagen beigebracht, dass die IT-Welt hauptsächlich Windows ist. Inzwischen ist das nicht mehr so dramatisch wie vor 10 Jahren, aber es existiert eine große Menge an Menschen, die in der EDV nie über den Tellerrand geschaut haben. Diese sitzen heute in Firmen und entscheiden über die IT-Infrastruktur, nicht immer zum Vorteil der Firma. Für Jemanden, der sich mit der Informationstechnologie beschäftigt, ist das ein riesiges Defizit, denn alternative Betriebssysteme mit neuen Konzepten sind groß im Kommen. Dank Linux sind Alternativen wie Android entstanden, die inzwischen einen großen Marktanteil beherrschen.

Was sollte man also machen, um ein smartes Gerät zuverlässiger zu gestalten und was hat IoT damit zu tun?

Aufgaben eines IoT-Gerätes

Geräte die ein paar kleine Aufgaben ausführen, brauchen nicht die Leistung eines Heimrechners. Man sollte also analysieren, was man von der Hardware-Seite wirklich braucht. Hat man dies ermittelt, kommt im zweiten Schritt das Betriebssystem mit der Software.

Kommen wir nochmal auf das einfache Beispiel Digital Signage zurück. Wir haben ein Gerät, was auf einer großen Tafel Werbung anzeigen soll. Es muss diese einfach nur flüssig abspielen. Es gibt also keine Interaktion mit den Zuschauern, was dieses Auslegungsbeispiel sehr einfach macht.

Ein kleiner Computer, der HD-Inhalte abspielen kann, sehen Sie unter folgendem Link:

https://www.raspberrypi.org/products/raspberry-pi-3-model-b/

und ein großes robustes Display wie dieses hier:

https://eneo-security.com/de/vm-uhd55m.html

Noch ein HDMI-Kabel und schon haben Sie die Hardware. Jetzt brauchen Sie nur noch Software, die solche Inhalte abspielt.

Software für IoT

Das schöne an dem Prinzip Unix ist, dass die damals geschriebenen Programme wirklich nur eine Aufgabe hatten und diese besonders effizient erfüllten. Linux profitiert auch heute noch von diesen Tools. So kann man mit OpenSource-Software ein Betriebssystem bauen, was für genau eine kleine Handvoll von Aufgaben geeignet ist. Das ist auch der Grund für die Vielfalt an Linux-Distros. Man kann etwas ganz neues bauen oder was ähnliches nehmen, reduzieren oder erweitern. Da gibt es keine Grenzen.

Zurück zum Digital Signage Beispiel: Man nimmt ein Raspbian als Betriebsystem und installiert den Video Looper von Adafruit:

https://www.raspberrypi.org/downloads/

https://learn.adafruit.com/raspberry-pi-video-looper/overview

Und man hat mit dem Raspberry Pi ein Gerät, was man an das Display anschließt und mit einen USB-Stick mit Videos versorgt. Bei dem OS gibt es nur ein Terminal, bei dem nicht mehr eingegriffen werden muss. Es existiert kein Desktop und keine Möglichkeit Counter Strike zu installieren. 🙂

Das ist ein Beispiel von einem IoT-Gerät, was nur eine Aufgabe, aber ordentlich, erfüllt. Es hat wenig Software, verbraucht dadurch weniger Energie und ist weniger anfällig als ein vollwertiger PC mit einem reisigen komplexen OS.

Und so könnte es auch bei Bankautomaten aussehen: Ein OS was nur Hardware steuert, die Geld ausgibt und das Handy auflädt. Kann es nicht mehr, können ungebrauchte Komponenten keinen Ärger anrichten.

Fazit

Unsere Welt ist im Umbruch. Statt Hardware auf großen Computern zu bündeln, übernehmen kleinere Geräte alte und neue Aufgaben, die das Leben des Menschen einfacher und schöner machen. Natürlich kann nicht alles mit IoT gelöst werden. Desktop-Rechner, Laptops, Smartphones, Tablets und Server wird es weiterhin geben. Doch die clevere Auslagerung der Aufgaben um Geräte „smarter“ zu machen ist im Gange.

Durch eine effiziente Auslegung der Hardware- und Software-Komponenten werden in Zukunft unsere Geräte noch effizienter, zuverlässiger und „smarter“.

Microsoft bought Github, is this the end of Linux and Open Source?

A lot of media has been talking about Microsoft’s acquisition of Github, happened some days ago.

I’m not that happy about it and moved my Commander Genius repo to Gitlab: https://gitlab.com/Dringgstein/Commander-Genius

What the media talks about it is mostly neutral and the company promised to leave Github as is so it can grow further. I wonder why to buy it then. I don’t trust this company and you also should not. I believe it is more about embrace, extend and extinguish strategy they applied in the past. The media should get on this point and also remind the readers of how this company monopolized its landscape. Yes, time has passed, Billy and Monkey boy are no more; Satya is a nice guy, blah blah blah. There still are traces and implemented strategies found in their software which show their goal of monopolization. Do not get fooled by them. Windows spies on you, Exchange still does not support CardDav (since 2006) or CalDav (since 2008) which makes it harder using other clients like Mozilla Thunderbird with their services.

Github was the biggest service of git repositories in the internet. Now Microsoft has the power to watch even into the private repositories. I feel bad for people who where paying for such advantages. And here I see the reason for some self-hosting. People, don’t trust big companies and mighty clouds! Better build your own cloud or trust someone who did not defraud you. There are much better alternatives out there: NextCloud, Zarafa, SoGO just to mention a few. Of your data is stored to media that is physically accessible by yourself you won’t run into such risks. It is your data after all.

Regarding Open Source and Linux It is not the end! Many projects like mine moved to Gitlab or Bitbucket. The Kernel was hosted at github, but this was more as a fork. The real repo always has been here: https://git.kernel.org/  no big deal.

People like me who really love open source and do not pretend to like certain companies will keep up the good work.

Nothing against Microsoft. You pay for their software, you use it, their employees get paid. That is fine. What is not fine is trying to sabotage the competition instead of making their products better, which really is required.

The update manager of Windows 10 is a big mess and seems to be worse compared to the one of Windows 7. Debian like other distros solved the problem of package dependencies in 1993 and today provide a very smart and fast update manager which also updates your installed software as a whole. And the best thing about it: I can decide when or when not to update. I can also decide which software is installed on my system. My two cents…

 

 

Mein Ubuntu MATE 18.04 test

Ich hatte vor kurzen noch ein System mit dem schönen blinkenden Manjaro Deepin:

Nachdem dieses System länger nicht mehr benutzt wurde (2 Monate) und ein Update durchgeführt werden sollte, ging es mit den Problemen los. Wir merkten zuerst nicht, dass Updates fehlten. Das Problem kam eigentlich hoch, als wir neue Software aktualisieren wollten. Der Paketmanager blockt alles, wenn etwas nicht stimmt. Ich habe dann ein Terminal geöffnet und den Paketmanager per Hand laufen lassen. Die Updates wurden angewandt, aber nach einem Neustart fuhr das System nicht mehr hoch.

Ich kann solche Probleme beheben, aber eigentlich habe ich keine Lust mehr dazu. Nach vielen Distro-Tests muss ich zum Entschluss kommen, dass Linux für Umsteiger von Windows oder Mac nur dann gut ankommen, wenn solche Probleme nicht auftreten.

Ein System muss nach ein paar Jahren Nicht-Benutzung immer noch zuverlässig laufen. Leider sehe ich Manjaro noch nicht in dieser Kategorie. Das liegt zum Teil am Rolling-Release-Konzept. Man bekommt Updates viel früher, aber diese können auch Dein System brechen. Allerdings kommt es auf die Art und Weise an, wie und welche Updates genau eingespielt werden. Manjaro hat dieses Problem gut im Griff. Allerdings muss man Updates regelmäßig anwenden. Ich nutze auf dem Hauptsystem Manjaro Gnome und habe seit Jahren keine Probleme. Allerdings verpasse ich keine Update-Gelegenheit. Sind Updates da, werden Sie sofort angewandt. Manjaro Deepin ist allerdings eine Community-Spin. Evtl. liegt es daran. Die offiziellen Versionen liefern XFCE, KDE und GNOME.

Dem ausgefallenen System habe jetzt Ubuntu MATE 18.04 verpasst, denn ich möchte mal die alte Desktop-Metapher mit den neuen Features testen. Mate erinnert ein bisschen an die Zeit, wo Netbooks hip waren, wo Windows Vista nicht so gut bei den Leuten ankam:

Linux war damals mit Gnome 2 eine tolle Desktop-Oberfläche. Das Update zu Gnome 3 hat mir im Prinzip gut gefallen, aber es war etwas ganz anderes. Diese Umstellung führte dazu, dass sich die Gemeinschaften der Linux-Distros noch mehr gespalten haben. Ubuntu machte sein eigenes Ding (Unity), genauso wie Linux Mint (Mate und Cinnamon). Smartphones kamen auf den Markt und stellten Bedienkonzepte auf den Kopf. Auch Microsoft hat mit Windows8-Versuchen und komischen Windows10-Paradigmen darunter gelitten.

Mate mag auf dem ersten Blick konservativ wirken, allerdings ist es eher als eine Verbesserung anzusehen und zwar von Dingen, die damals wirklich gut waren.

Ich kenne einige Menschen, die mit Gnome 2 zufrieden waren, aber dann Linux verlassen haben, als Ubuntu auf Unity umstieg. Vielleicht wäre es besser gewesen, wenn man Gnome 2 einfach im Konzept weiterentwickelt hätte (Inzwischen hat man Unity auch für tod erklärt). Man kann die Zeit nicht zurückdrehen und sollte es auch nicht, aber man kann Mate nutzen. Das ist das Schöne an einer Community, gute Ideen sterben nicht so einfach aus. Mir gefällt am besten der Datei-Manager Caja. Das aktuelle Nautilus von Gnome 3 verliert immer mehr Features, weil die Entwickler es einfacher machen wollen. Es schränkt jedoch Power-User ein, die gerne klicken. Und das habe ich schon oft beobachtet. In der nächsten Release von Gnome soll man mit Nautilus keine ausführbaren Dateien mehr starten können:

https://www.omgubuntu.co.uk/2018/05/nautilus-remove-ability-launch-binaries-apps

Zum Glück kann man einen anderen Dateimanager verwenden. Ich nutze Caja unter Gnome 3, kein Problem. Gute Integration ist damit ebenfalls möglich.

Der Mate-Desktop kommt bei neuen Benutzern sehr gut an. Egal ob von Windows-Einfleischten oder Menschen die noch nie einen PC genutzt haben. Das Desktop-PC Konzept ist sauber verankert und wer Smartphone Integration braucht (Keine Apple Geräte, leider), kann das mit Extra-Anwendungen tun (KDE-Connect):

https://www.omgubuntu.co.uk/2017/01/kde-connect-indicator-ubuntu

Sogar die Layouts von Windows, MacOS und andere Metaphern können mit einen Klick aktiviert werden und schon hat man etwas Gewohntes.

Ich denke Ubuntu und somit auch Linux Mint haben bis heute das beste Update System. Es ist schade, dass es nicht Rolling Releases abbildet, dafür geht ein System seltener kaputt, was ich für meine Kunden bevorzuge. Der einzige Nachteil an einer Nicht-Rolling Release ist die nicht ganz so aktuelle Software im Kern. Dafür ist diese meistens stabil und Software, die man aktuell braucht, kann man auch mit weiteren Maßnahmen nachinstallieren. In 2-5 Jahren sollte man aber ein Upgrade wagen, denn auch dadurch wird der Support des Entwicklers verlängert.

Zu Ubuntu auch auch Ubuntu MATE gibt es alle 6 Monate eine neue kleine Release (Mit 9 Monaten Support jeweils) oder halt alle 2 Jahre die LTS-Variante (Mit 5 Jahren Support jeweils). Also ist man nicht wirklich hinterher. Upgraden zwischen verschiedenen Ubuntu Releases läuft in der Regel glatt ab. Daten sollte man dennoch sichern und manchmal muss man doch vorab installierte Software erneut installieren. Kleiner Geheimtipp, Timeshift hilft bei Backups and Restores, sollte etwas schief gehen:

https://github.com/teejee2008/timeshift

Was macht also dieses Ubuntu Mate so besonders? Ich habe mal einige Stichpunkte zusammengefasst:

  • Ordner-Embleme: Im Dateimanager kann man jeder Datei oder Ordner ein Emblem verpassen. Das ändert nichts an den Dateien, sondern soll für eine gute Übersicht sorgen, wenn man navigiert.
  • Ordner einfärben: Auch wieder eine Maßnahme um seine Dateien zu organisieren und zwischen Ordner etwas schneller zu finden.
  • Datei-Vergleich wenn etwas überschrieben wird. Der Manager kann bei Text anzeigen, wo die Unterschiede sind, bevor man etwas überschreiben lässt.
  • Access Control List. Kennt man unter Windows und versteht man unter „Erweiterten Berechtigungen“. Ich mag dieses Konzept nicht, aber es gibt viele Windows Netzwerke unter uns, aber weniger Datei-Manager, die das unterstützen. Hier haben wir eine Lösung mit dabei.
  • Signieren/Verschlüsseln von Dateien.
  • Umbenennen von vielen Dateien mit Hilfe eines Musters.

Manche Optionen bleiben trotz übersetzten Systems teils in Englisch. Dieses OS liefert eigentlich nur ein paar vorinstallierte Plugins mit. Man kann das in anderen Systemen nachrüsten. Allerdings muss man sich dann mit der Materie näher befassen. Hier wird es direkt mitgeliefert.

Die Performance ist super. Man kann mit Hilfe der Compiz-Software einstellen, dass beim Schließen der Fenster, diese wegbrennen :-D. Also viele Spezialeffeke sind möglich. Als Vista herauskam, konnte man die Leute damit beeindrucken. Ich finde das nicht mehr so interessant, ist aber Geschmackssache. Man kann es auch sein lassen und hat dafür ein flottes Ressourcensparendes System.

Ich glaube immer noch an das Rolling Release Model. Manjaro setzt das wirklich gut um, aber das Risiko eines kaputten System ist immer noch zu hoch. Der eigentliche Vorteil von Rolling Releases ist man installiert einmal und nie wieder, wenn alles gut läuft. Die Ubuntu Upgrades kann man schon als Neu-Installationen zum Teil betrachten. Schon alleine der Tatsache zu schulden, dass manuell angelegte Software-Quellen deaktiviert werden. Eigene Daten bleiben schon erhalten. Ich denke aber in die richtigen Rolling Release müssen wir gehen, aber mit einer höheren Zuverlässigkeit.

 

Der einzige Arbeitnehmer mit Linux-Desktop

Letztens sah ich dieses Video, eine ARD-Reportage, schön gemacht:

http://www.ardmediathek.de/tv/Dokumentation-und-Reportage/Das-Microsoft-Dilemma/rbb-Fernsehen/Video?bcastId=3822114&documentId=51465916

Ich finde es gut, dass dieses Problem mal wieder angesprochen wird. Wir müssen aber mal mehr dafür tun. Wir haben noch einen langen Weg vor uns.

Ich habe 2006 zu meinem Studium vorgenommen, alles mit Linux zu machen. Das lief wirklich super und bin froh, dass die Universitäten es mitgemacht haben. Denn auch dort ist das Microsoft-Monopol sehr stark verankert.

Heute geht es darum, wie ich erfolgreich und oftmals als Einziger in der Firma Desktop Linux einsetze … und es geht wunderbar!

Dazu möchte ich anmerken, dass ich ein paar mal den Job gewechselt habe, um mich weiterzuentwickeln. In meinen Bewerbungen habe ich es zwar nicht angemerkt, dass es Desktop Linux sein muss, aber in den Bewerbungsgesprächen habe ich es oft zu verstehen gegeben.

Diese Bewerbungsgespräche liefen dank solcher Einstellung sehr gut, denn die Personen der Personalabteilungen oder Chefs (ja nachdem wer Interview macht) sind doch neugierig und sehen einen Vorteil, wenn einer in der Firma sitzt, der dem Linux sehr nahe ist.

Meine Karriere als Arbeitnehmer fing an einer Universität an. Auch hier war ich der Einzige mit Linux. Das ist nicht an allen Lehrstühlen so, leider aber an den meisten.

Schnell durfte ich anderen Leuten mit Ihren Problemen helfen. Mit Desktop Linux habe ich Windows Dateisysteme gerettet, von Windows geschützte Passwörter Rechner geöffnet und vieles mehr.

Da ich in der IT tätig war, habe ich am Ende das Active-Directory des Windows Server 2003/2008 durch Samba 4 ersetzt. Alle Rechner liefen bei meinen Kollegen weiterhin unter Windows und einige bekamen von der Umstellung nicht einmal etwas mit. So lief die ganze Server-Struktur nur noch unter Linux und der Lehrstuhl konnte sich eine ordentliche Stange Geld jedes Jahr sparen.

Kollegen, die später dazu kamen, mich aber von früheren Ereignissen kannten, machten schnell mit meine Idee „Desktop Linux“ mit. Sie waren nicht so radikal wie ich, sondern nutzen noch eine Windows Instanz in einer virtuellen Maschine. Das war meistens deswegen, weil spezielle Software nur auf dieser Art laufen konnte.

Später wechselte ich in die Industrie und durfte auch wieder Desktop Linux einsetzen. Ich hatte zwei Vorgesetzte, die Apple nutzten, sonst war der Rest bei Windows 7 oder 10. Weil in dieser Firma mit Server Linux gearbeitet wurde, kam das gut an. Ich wunderte mich, warum diese Firma überhaupt Windows genutzt hat.

Wahrscheinlich war es wegen Office. Ich sehe das als keinen echten Grund und bleibe dabei, dass MS Office nicht mehr gebraucht wird. Das ist auch kein Standard, akzeptiert es nicht! Hier wird das genau erklärt:

https://brattahlid.wordpress.com/2012/05/08/is-docx-really-an-open-standard/

Leider findet es eine weite Verbreitung, aber Menschen, die über andere Formate meckern, kann man darauf hinweisen, dass docx, xlsx, pptx usw. keinen echten Standard darstellen. Ich finde sogar, dass ein in MS Office gespeichertes Dokument keinen so großen Archivierungswert hat. Solange kein echter Standard genutzt wird, ist die Nachhaltigkeit einfach nicht gegeben.

Es gibt da so ein paar Mail-Server-Programme aus der Linux Community (Postfix, Dovecot). Diese können problemlos mit Outlook, Thunderbird, welcher einem besser gefällt umgehen. Als  Groupware gibt z.B. SOGo:

https://sogo.nu/

Einmal ordentlich konfiguriert, kann man das auch mit Outlook, Thunderbird, usw. verbinden. Sogar mit seinem Smartphone oder Tablet ist diese Technologie einsetzbar. Endlich bekommen smarte Geräte mal einen vernünftigen produktiven Einsatz :-D. Hier wird der CalDav- bzw. CardDav-Standard eingesetzt. Also kein teurer und schlechter geschlossener Exchange-Server mit dem nur ein paar Sachen möglich sind und man jedes Jahr viel Geld an Lizenzen abdrücken muss. Das muss nicht sein. Wir brauchen Microsoft in Europa nicht. Wir können unsere Software für unsere eigenen Systeme schreiben. Und was noch besser ist, dadurch werden keine Daten an den Redmond-Riesen oder ähnliche Konzerne übertragen.

Nun bin ich in einer größeren Firma gelandet und ähnliches Spiel wieder. Einige wenige nutzen Mac, doch die meisten haben Windows als Hauptsystem. Man muss aber dazu sagen, dass einige Kollegen aus beruflichen Gründen zwischen vielen Betriebssysteme wechseln, also kein wirkliches Hauptsystem haben. Darunter ist natürlich auch Linux. Das finde ich sehr cool! Allerdings ist die IT mit Microsoft sehr infiziert und das ist schade. So ein bisschen widersprüchlich, aber manche Firmen wachsen eben unterschiedlich. Als Groupware läuft dort ein vollwertiger Exchange-Server. Er ist performant und lässt keine Wünsche offen. Allerdings habe ich keine große Chance CardDav oder CalDav ordentlich zu nutzen.

Microsoft: Wenn Exchange weder Carddav noch Caldav bieten kann, gehört Ihr auch nicht zum Standard. Was nicht offen standardisiert ist, sollte aberkannt werden.

Zum Glück gibt es noch den Davmail-Gateway:

http://davmail.sourceforge.net/

Mit diesem wird das Exchange Web Zeug (AWS) auf CardDav und CalDav Protokolle weitergeleitet, genauso wie Emails. Ich kann also doch Thunderbird unter Desktop Linux nutzen, obwohl ein Exchange Server in der Firma läuft. Es ist nur schade, dass es soweit kommen muss. Dennoch ist das besser als gar nichts.

Also, wer Desktop Linux zu hause nutzen will, ich kann es empfehlen. Ich vermisse gar nichts.

Wer mit der Leistung und Spionage von Microsoft unzufrieden ist, sollte auf jeden Fall mal Linux ausprobieren. Denkt aber stets, Linux ist nicht wie Windows; es ist anders. Im Umgang mit dem Rechner gibt es damit neues zu lernen. Ich versichere Euch aber, es lohnt sich sehr!

Wer Linux nutzt, sieht ein ganz neues IT-Universum und lernt dabei auch über den üblichen Windows-Nutzern zu stehen. Das betrifft übrigens auch eine breite Masse an Politikern, bei denen Nachholbedarf besteht.

Ihr wollt es bei der Arbeit einsetzen? Wenn es Euch zu-hause damit gefällt, dann fragt doch einfach mal den Vorgesetzten. Aus technischer Sicht geht es wirklich gut.

Denoise videos where beamer or monitor projections take place

You might know the situation where you have to record someone presenting a topic (the typical PowerPoint presentation) and the projected material is being recorded with him.

The reason is that the emitted light frequency does not match well with the recording device. That creates a lot of noise as you can see here:

So how to tackle such problem? After experimenting with some filters in Kdenlive I discovered that the „Adaptive Temporal Averaging Denoise“ (atadenoise) filter does a nice job.

Here is the theory behind the filter:

http://hrcak.srce.hr/file/125359

For applying that filter I used Kdenlive which has become a nice software for editing videos. It is far from perfect, but good enough for my needs:

It uses the same parameters as ffmpeg which provides that filter as well. I guess Kdenlive works as its frontend here, not sure though.

The values for the filter I finally used for that video were:

av.0a = 0.292, av.0b = 0.730, av.1a = 0.286, av.1b = 0.520, av.2a = 0.286, av.2b = 0.435, av.s = 15

This is the result:

You might have to play around with the values if you want to denoise your video. It depends on what you have.

What do you think about this filter? Are there better ones? You are welcome to comment your thoughts. 🙂

exa: Should we replace the „ls“ command?

What does „ls“ do anyways? If you work in a Unix-like terminal you know it is the most basic command. It just shows the content of a directory. It has been here for a long time and surely will remain even longer.

The question is: Is the „ls“ command outdated after so long?

At least some developers believe it and tried to create a new one called „exa“:

https://the.exa.website/

Looking good?

Source: exa Github page

Why this tool and not ls?

There are some arguments as you might have noticed in the screenshot. For one you have many more colors. The focus is on a good user experience:

  • Human readable sizes instead of showing just the bytes of every file is standard. Yes, it is easier to read 10 Gb than 10000000000 bytes
  • Git integration! Yes!
  • Tree view

With exa you have listing tool which provides a more human readable display of your files. With version control system Git you have more information of the file states. I hope more version control systems will be supported. Though I think Git is the best version control and I use it all the time, Subversion is still widely used, especially in the industry.

Will „ls“ die?

I cannot predict the future, but I don’t think so. „ls“ is part of a Unix and likes operating system. It not only serves the purpose to show a human being stuff but it is extensively used in different scripts, where programs asks for file lists, status or similar.

So no hate against „ls“. Exa is a nice complementation for your system and because we talk here Linux all is about freedom of choice!

Installation

This tool should run on any Linux but yet there are not so many package repositories which let you install exa.

You require to have libraries installed, which are used by the Rust language being the development language of that tool.

Under Ubuntu or similar you can do this…

$ curl https://sh.rustup.rs -sSf | sh
$ wget -c https://the.exa.website/releases/exa-linux-x86_64-0.7.0.zip
$ unzip exa-linux-x86_64-0.7.0.zip
$ sudo 
$ sudo mv exa-linux-x86_64 /usr/local/bin/exa

If you are using Arch or Manjaro, you are in luck:

$ pacman -Syu exa

Extra: Video where I tested „exa“

OnlyOffice in NextCloud mit Ubuntu 16.04 LTS

Einleitung

Hier werde ich versuchen OnlyOffice mit einem laufenden NextCloud Server zu nutzen.

Ich gehe davon aus, dass NextCloud bereits installiert ist. Unter Ubuntu kann das mit dieser Anleitung getan werden:

https://www.linuxbabe.com/cloud-storage/setup-nextcloud-server-ubuntu-16-04-apache-mariadb-php7

Wer Interesse hat, kann ich gerne auch einen Post dafür schreiben. Es gibt aber dazu gute Anleitungen. Einfach googlen. Leider ist dieser Schritt nicht für jedermann. Hier kommt dann doch das Terminal  zum Einsatz.

In diesem Fall wird nur der Document Server installiert, weil wir uns nur für die Office Tools interessieren. Community Server hat noch ein paar Komponenten mehr, wie bspw. Kalender-Dienste. Durch die NextCloud sind bereits diese vorhanden.

Installation

Wir sollten sichergehen, dass folgende Pakete installiert sind:

  • libcurl3
  • libxml2
  • supervisor
  • fonts-dejavu
  • fonts-liberation
  • ttf-mscorefonts-installer
  • fonts-crosextra-carlito
  • fonts-takao-gothic
  • fonts-opensymbol
  • postgresql
  • redis-server
  • rabbitmq-server
  • nodejs
  • nginx-extras

Wahrscheinlich ist davon schon alles installiert, wenn NextCloud läuft. Ausnahme sind allerdings nodejs, die Version ist zu alt:

echo "deb http://archive.ubuntu.com/ubuntu xenial main universe multiverse" | sudo tee -a /etc/apt/sources.list
curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -

Und schon wird es mit

apt-get install nodejs

installiert.

Auch als root öffnen wir psql und legen Tabellen für onlyOffice an:su postgres -c psql

CREATE DATABASE onlyoffice;
CREATE USER onlyoffice WITH password 'onlyoffice';
GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;
\q

Wir sollten noch den Port des onlyOffice Servers ändern:

echo onlyoffice-documentserver onlyoffice/ds-port select 90 | sudo debconf-set-selections

Nun fügen die Paket-Quelle hinzu:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
sudo echo "deb http://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list

Damit es keine großen Probleme mit Authentifizierung gibt, wenn onlyoffice installiert wird:

echo RESET onlyoffice/db-user | sudo debconf-communicate onlyoffice-documentserver
echo RESET onlyoffice/db-pwd | sudo debconf-communicate onlyoffice-documentserver

Und drauf damit:

sudo apt-get install onlyoffice-documentserver

Testen von OnlyOffice

Öffnen Sie den Webbrowser und gehen Sie auf die Adresse:

http://yourserver:90

Erscheint die Meldung „Document Server is running“ Glückwunsch! Wir können mit der Integration zu NextCloud beginnen.

Integration with NextCloud

Hier gehen wir als root in das Verzeichnis

/var/www/nextcloud/apps

und laden die entsprechende App herunter:

sudo git clone https://github.com/ONLYOFFICE/onlyoffice-owncloud.git onlyoffice
chown -R www-data:www-data onlyoffice

Jetzt muss diese nur noch aktiviert werden. Dabei muss man sich als Administrator bei NextCloud einloggen. Dann auf das Zahnrad klicken, Apps wählen und unter der Liste der „Disabled Apps“ OnlyOffice aktivieren.

Dann noch die Adresse unter Admin->Basic Settings von dem Document-Server eintragen: http://server:90

 

Das war auch schon alle mit der Konfiguration. Einmal ausloggen und einloggen ist empfehlenswert.

Nun können Office-Dokumente Online bearbeitet werden:

Es sieht ganz nett aus. Ich habe nicht alle Optionen gefunden, die Office bietet, aber die Gängigstigen sind alle drin. Zum Arbeiten kann es gut einsetzen. Ich finde es auch etwas übersichtlicher. Gerade für Anfänger ist das ein Plus.