programmierer-nachrichten.de
Startseite Podcast RSS Impressum

Podcast Folge 15


Wie versprochen der wöchentliche Podcast!

Dieses Mal Folge 15. Der CCC hat den Iris Scanner des S8 überlistet, die neue Programmiersprache P, Microsoft optimiert Git, postmarketOS (ein auf Alpine Linux basiertes Betriebssystem für alte Android Geräte) und Trends bei Programmiersprachen.

Viel Spaß damit!



Programmiersprachen Trends


Wenn mir totale Anfänger eine Frage stellen, die ich besonders häufig höre, dann ist es die Frage nach der richtigen Programmiersprache. Selbst erwachsene Programmierer stellen sich diese Frage immer und immer wieder, aber sie haben andere Beweggründe. Ich finde diese Frage relativ schwierig zu beantworten, und meistens antworte ich mit einer Gegenfrage.

Wichtig ist, ob man mit dem Wissen beruflich erfolgreich sein möchte. Wenn man diese Frage mit "ja" beantwortet, dann sollte man Programmiersprachen wie Java, C#, C++ oder C lernen. Bei den Scriptsprachen sollte man dann PHP, Ruby, JavaScript oder Python lernen. Wenn man diese Frage mit "nein" beantwortet, so kann man gerne Sprachen wie Haskell, Clojure, Scheme, Lisp, Scala, Ada, Kotlin, Ceylon, Crystal, F#, usw... lernen.

Ich hasse Pauschalisierungen zwar, aber wenn man sich die Jobangebote so ansieht, so ist zu erkennen, dass die Programmier- und Skriptsprachen, die es schon lange gibt, immer noch weite Verbreitung haben; nicht ohne Grund. Die Firmen haben sich damit ihre Basis gebaut und die wären ja extrem dumm, wenn sie ihre Basis jedes Mal neu implementieren müssten, nur weil sie auf den Zug einer neuen Programmiersprache aufspringen wollen. Das lohnt sich in der Regel nicht. Für eine Privatperson kann sich das aber sehr wohl lohnen, da eine neue Programmiersprache auch neue Ideen und Ansätze zeigen kann, über die man sich vorher nie Gedanken gemacht hat. Oft beeinflussen neue Programmier- und Skriptsprachen alte Sprachen, so dass diese ein Update erfahren, wo dann diese neuen Ideen mit eingeflossen sind. Es ist also sehr gut, dass es Menschen gibt, die neue Programmier- und Skriptsprachen entwickeln. Mich hat zum Beispiel Scheme sehr beeinflusst.

Was ist also nun die richtige Programmiersprache? Das kommt drauf an :)! Wenn man sie beruflich anwenden will und damit Geld verdienen will, ist selbst Java heute noch eine gute Wahl, obwohl Java offensichtlich auf dem absteigenden Ast unterwegs ist. Java und C haben laut Tiobe Index innerhalb von einem Jahr über 6% an Popularität verloren. Das ist extrem viel. PHP hat innerhalb von 14 Jahren ca. 6% an Popularität verloren; nur, um mal das Ausmaß zu zeigen. Aber wie jede Statistik ist das meist ohne viel Aussagekraft. PHP hatte noch nie große Marktanteile, Java aber schon. Wer viel hat, kann also auch viel verlieren. Wer wenig hat, kann nur wenig verlieren. Und es ist irrelevant, wenn es in deiner Region viele Jobs für diese Programmiersprache gibt.

Mir persönlich ist es wichtig, dass ich mindestens eine Programmiersprache richtig beherrsche und das ist durch die Flut an Programmiersprachen oftmals schwierig, weil man sich beeinflussen lässt. Ich empfehle also sich neue Programmier- und Skriptsprachen ruhig anzusehen, aber es sollte auch eine Programmier- oder Skriptsprache perfekt beherrscht werden. Ich kenne viele Menschen, die als Programmierer arbeiten und ihr Werkzeug gar nicht beherrschen. Und das ist nur die Basis. Im Grunde geht es als Programmierer nicht nur darum eine Programmiersprache zu beherrschen, sondern darum, dass man Probleme löst und dabei ist die Programmier- oder Skriptsprache nur ein Tool von vielen. Man benötigt soziale Kompetenzen und viel Wissen im Bereich der Erzeugungs-, Struktur- und Verhaltensmuster. Aber auch das reicht nicht aus :). Aber das geht hier nun zu weit.



Microsoft optimiert Git


Microsoft hat mit Windows ein riesen Code Repository, welches sie mit Git verwalten wollten. Im Falle von Microsoft sprechen wir von einer Quellcodebasis, die ca. 300GB groß ist und ca. 3.5Mio Dateien hat. Soetwas wäre selbst für Git außerordentlich groß und würde zu Performanceeinbußen führen. Microsoft hat also einen weiteren Layer für Git gebaut: GVFS. Dabei handelt es sich um ein virtuelles Git Dateisystem, welches für extra große Repositories optimiert ist. Für "git" und alle anderen Tools sieht das Git Repo aus, wie immer; die bekommen von der Optimierung nichts mit. Im Grunde ein interessanter, wenn auch eigenwilliger Ansatz.

Das Projekt befindet sich zwar noch in der Entwicklungsphase, wird aber nun bereits von Microsoft für den Windows Quellcode verwendet. Bei normaler Anwendung von "git" würden viele Befehle 30 Minuten und länger benötigen, um das zu tun, was sie tun sollen. Mit GVFS wurde das so sehr verbessert, dass die längste Zeit ca. 2 Minuten war; das ist aus Microsofts Sicht immer noch viel zu langsam. Microsoft hat viele Optimierungen eingebaut und im Grunde ist das nur eine sehr gute Werbung für GVFS. GVFS ist allerdings nur unter Windows 10 Creators Update und später nutzbar.



P: die neue Programmiersprache


Microsoft hat vor kurzem über eine neue Programmiersprache berichtet. Die neue Programmiersprache "P". Über den Namen wird sich schon jetzt lustig gemacht, weil man vor allem in englischer Aussprache an "pinkeln" denken muss. Wie auch immer; bei P handelt es sich um eine domänenspezifische Sprache (DSL (Domain Specific Language)); sie wird also nicht für allgemeine Programmieraufgaben genutzt; sie wird genutzt, um asynchrone ereignisgesteuerte Systeme zu implementieren. Oder um es einfacher zu beschreiben: P wird genutzt, um Protokolle in einer Asynchronen Anwendung zu implementieren.

In P entwickelt man Zustandsmaschinen, die über ein Nachrichtensystem miteinander kommunizieren. Jede Zustandsmaschine hat eine Eingangswarteschlange, einen Zustand, Übergänge, Ereignishandler und einen Speicherbereich, um Variablen zu speichern. Die Zustandsmaschinen sind nebenläufig und haben jeweils eine eigene Ereignisverarbeitungswarteschlange. Die Sprachelemente sind vermutlich vom Unfang her auf einem Blatt DIN A4 zu illustrieren, was ich sehr gut finde. Das ist aber, so glaube ich, auch der Sinn einer DSL.

Inhaltlich erinnert mich P an Erlang; optisch allerdings nicht. P ist eben eine sehr spezielle DSL. Microsoft hat das Projekt auf GitHub veröffentlicht. Dort findet man auch ein Tutorial, wo man sich mal einen ersten Eindruck dieser DSL machen kann. Ich hätte gerne das Hello World oder das Ping Pong P Programm ausprobiert, aber es gibt noch keine "binary" Downloads und so richtig Lust darauf es aus der Quelle zu bauen hatte ich nun auch nicht. Vielleicht kommt das noch; also die Lust :).



Der CCC hat den Iris Scanner des S8 überlistet


Der Chaos Computer Club hat den Iris Scanner des Samsung Galaxy S8 überlistet. Das bedeutet, dass das Smartphone entsperrt werden kann, ohne dass der tatsächliche Besitzer im Besitz des Gerät ist.

Princeton Identity Inc. hat dieses System für Samsung entwickelt und das S8 ist eines der ersten Smartphones, welches dieses Feature implementiert und nutzt. Im Grunde wird ein Infrarotfoto erstellt und dann wird versucht zu erkennen, ob es sich um das Auge des Besitzers handelt. Die Informationen der Iris werden vorher in einem Setup festgehalten.

Der CCC hat keine Kosten und Mühen gescheut, um das System zu überlisten. Sie haben eine normale Digitalkamera benutzt, um ein Foto im "Infrarotmodus" aufzunehmen. Bei vielen Kameras entspricht das einfach dem Nachtmodus. Sie haben das Foto mit einem Samsung Drucker ausgedruckt, eine Kontaktlinse auf das Auge geklebt, damit es echter wirkt. Sie haben den Ausdruck dann vor das Smartphone gehalten und es wurde sofort entsperrt. Wie peinlich.

Schau dir unbedingt das Video des CCC an; das ist imho sehr lustig gemacht :).



Was soll man dazu sagen? Es ist irgendwie lustig, dass eine Zugangskontrolle so einfach zu überlisten ist. Anders betrachtet ist es nicht lustig, da viele Menschen auf ihrem Smartphone mittlerweile sensible Daten gespeichert haben. Insofern hätte Samsung bei diesem System eigentlich nur eine Entscheidung treffen sollen: es nicht zu implementieren.

Wie viele Fotos von dir gibt es im Internet? Sicherlich mehr als dir bewusst ist. Diese Fotos könnten verwendet werden, um dein Samsung Galaxy S8 zu entsperren, wenn es denn so eingerichtet wurde. Mein Vater hat auch so ein S8 und ich habe ihm davon abgeraten den Iris Scanner einzurichten, weil ich schon von Anfang an Zweifel hatte. Es mag komfortabel sein, aber wenn dieses System so einfach zu täuschen ist, so kann man es auch gleich weg lassen.

Also gut gemeint, aber sinnlos. Selbst, wenn es kein Foto von dir im Netz gibt, so könnte jemand ohne Probleme ein Foto von dir machen, um das Foto zu nutzen, um dein Smartphone zu entsperren.

Dedööö! Sorry.



Podcast Folge 14


Wie versprochen der wöchentliche Podcast!

Dieses Mal Folge 14. Kotlin wurde zur offiziellen Sprache für Android, Bloomberg veröffentlichte den Quellcode ihres RDBMS "Comdb2" und Arca Noae veröffentlichte mit ArcaOS den Nachfolger von OS/2.

Viel Spaß damit!



OS/2 lebt als ArcaOS weiter


arcaOS Desktop
ArcaOS Desktop

OS/2 war mal ein relativ verbreitetes Desktop-Betriebssystem von IBM. IBM und Microsoft hatten es damals zusammen entwickelt. Microsoft und IBM entschieden sich aber die Zusammenarbeit 1991 zu beenden. Seit dem entwickelte Microsoft fleißig weiter an Windows und IBM weiter OS/2. IBM stellte jedoch die Arbeiten an OS/2 im Jahre 2005 ein. Seit dem wurde es von der Firma XEU.com B.V. unter dem Namen eComStation weiterentwickelt. eComStation wurde nun aber auch schon länger nicht mehr aktualisiert. So ist die aktuellste Version 2.1 immerhin schon 6 Jahre alt.

Nun gibt es mit ARCA NOAE eine weitere Firma, welche sich zur Aufgabe gemacht hat OS/2 weiter zu pflegen. Ihre OS/2 Distribution nennt sich "ArcaOS" und kann aktuell gekauft werden. ArcaOS 5.0 wurde am 15. Mai veröffentlicht. Der interne Codename von ArcaOS ist "Blue Lion".

Ich konnte natürlich nicht anders und musste es ausprobieren. Ich habe es direkt auf echte Hardware installiert und war erstaunt, wie einfach das funktioniert. Ich hätte nicht angenommen, dass es überhaupt funktioniert. Nach der Installation bootet es selbstverständlich bis zum grafischen Desktop, ich stelle noch kurz die Auflösung ein und es funktioniert einfach. Ich habe eine Nvidia 970 GTX, die unter Linux ohne Nacharbeiten gar nicht funktioniert. Insgesamt kann sich fast jede Linux Distribution bei dem Installationsprozess noch einiges abgucken. Es ist vor allem wichtig, dass es überhaupt irgendwie funktioniert.

Der Rest ist eben OS/2 mit Verbesserungen. Wer nur das aktuelle Windows kennt, wird sicher seine Probleme haben sich in ArcaOS zurechtzufinden. ArcaOS hat einen SMP Kernel, so dass auch alle Kerne meiner Intel Core i7 CPU genutzt werden. Das kann man schön sehen, wenn man den CPU Monitor startet. ArcaOS selbst ist weiterhin 32 Bit, aber das Ziel ist ja auch, dass alte Software weiterhin funktioniert. So kann man unter ArcaOS sogar alte DOS und Windows 3.1 Anwendungen ausführen. Mein erster Gedanke war, dass ich fix ein Programm mit Delphi 1 erstelle und versuche es unter ArcaOS auszuführen...aber ich war zu faul meine Delphi 1 CD rauszusuchen und dann hätte ich es mit einem Windows starten müssen, was etwas älter als Windows 10 ist, da es unter Windows 10 leider nicht mehr startet.

ARCA NOAE bewirbt ArcaOS ein wenig damit, dass es sicher ist, nicht nach Hause telefoniert und auf moderne Hardware installierbar ist und trotzdem noch die uralte Software ausführen kann. Dieses Versprechen haben sie in meinem Fall halten können. Mein PC ist recht modern und ArcaOS funktioniert dort wunderbar.


arcaOS Firefox 38 ESR
ArcaOS mit Firefox 38 ESR

Die vorinstallierte Software ist mehr als ausreichend. Man setzt für den Standardwebbrowser auf Firefox 38 ESR. Es gibt ein Programm zum Entpacken von Dateien, einen Bildbetrachter, Telnet, FTP-Client, SMB Blub und weiß ich nicht. Und wenn etwas fehlt, so kann man sich zusätzliche Software aus dem Internet besorgen, wobei viele Seiten schon verwaist sind.

Insgesamt empfinde ich ArcaOS als willkommene Alternative. Es gibt eine kommerzielle und eine Personal Variante. Die kommerzielle Variante kostet 229 USD; die Personal Variante kostet aktuell noch 99 USD, später aber 129 USD. Es gibt auf Youtube einige Vorträge und Vorstellungen von ArcaOS.


personalisiertes Installationsmedium
personalisiertes Installationsmedium

Nach dem Kauf wird eine personalisierte *.iso generiert, so dass man keine Seriennummer oder Ähnliches bei der Installation eingeben muss. Das ist eine gute Lösung, finde ich. Mir stellt sich nur die Frage, wie man vorgeht, wenn man eine ganze Firma mit ArcaOS ausstatten möchte, aber gut, dafür gibt es dann sicher auch eine Lösung.

Ja, ich bin dann mal gespannt, was ich mit ArcaOS anfange.



Comdb2 von Bloomberg nun OpenSource


Bloomberg? Das ist dieses Nachrichten- und Medienunternehmen. Du hast sicher schon davon gehört. Dieses Unternehmen hat vor ca. 14 Jahren damit begonnen ein eigenes Datenbank Management System (DBMS) zu entwickeln. Sie hatten es "Comdb2" genannt. Der Name steht für "Common DataBase". Diese Software wird seit dem intensiv bei Bloomberg eingesetzt. Comdb2 gibt es mittlerweile in Version 7.0 und der Quellcode wurde auf Github veröffentlicht. Als Lizenz hat Bloomberg die Apache License, Version 2.0, gewählt.

Die "Common DataBase" wurde für das Produkt "The Terminal" von Bloomberg entwickelt. "The Terminal" selbst ist eine geschlossene Softwareplattform, die Benutzern aktuelle Informationen zu Finanzen, Nachrichten usw...anbietet. Alles mit Tastenkürzeln und einem extrem minimalistischen GUI. "The Terminal" gibt es heute noch und es kostet richtig viel Geld.

Comdb2 ist eine relationale Datenbank. Sie unterstützt SQL. Comdb2 wurde in C implementiert. Comdb2 wurde für Replikation und hohe Verfügbarkeit optimiert. Comdb2 unterstützt tatsächliche Transaktionssicherheit. Bei ACID wäre es hier das "A" wie Atomarität (Abgeschlossenheit). Comdb2 unterstützt neben SQL auch Stored Procedures, die in einer Sprache definiert werden, die ähnlich zu Lua ist. Comdb2 unterstützt außerdem Queues nativ. Im Detail unterstützt es "publisher to subscriber"-Queues.

Comdb2 wurde entwickelt, weil eine Notwendigkeit erkannt wurde relationale Datenbank Management Systeme zu haben, die vertikal skalierbar sein sollen. Die Entwickler von Comdb2 haben den Bedarf "newSQL" genannt und sie haben es als Gegenspieler zu "noSQL" betrachtet. "noSQL" bietet nicht die Features, die in gewissen Bereichen gefordert sind: ACID :). Man kann das zwar nicht pauschalisieren, aber so wurde es eben von den Entwicklern von Comdb2 vor ca. 14 Jahren aufgefasst und beschrieben.

Comdb2 verwendet ein OCC Protokol, oder auch Optimistic Concurrency Control Protocol. Dieses Protokoll sorgt bei Comdb2 dafür, dass Transaktionen sicher durchgeführt werden können, ohne dass sich jeder Server mit den anderen Servern koordiniert. Comdb2 unterstützt außerdem live Schema Änderungen, ohne dass die Performance darunter stark leidet. Comdb2 versucht außerdem LOCKS zu vermeiden, wo es nur geht.

Hohe Geschwindigkeit war bei Comdb2 laut den Entwicklern ein wichtiges Ziel. Hohe Verfügbarkeit war aber noch wichtiger bei der Entwicklung von Comdb2.

Comdb2 wirkt sehr interessant. Ich bin mir sicher, dass dieses Projekt viel Aufmerksamkeit bekommen wird. Die Dokumentation ist schon heute extrem gut. Sowas ist sehr selten. Man sollte nach ca. 14 Jahren zwar erwarten, dass eine Software gut dokumentiert ist, aber selbstverständlich ist das nicht :).



Kotlin wird nun offiziell von Android unterstützt


Kotlin...das ist diese Programmiersprache von Jetbrains, dessen Entwicklung angeblich im Jahre 2010 begonnen wurde. Der Öffentlichkeit wurde diese Sprache letztendlich im Juli 2011 vorgestellt.

Du kennst Jetbrains. Das sind die Jungs und Mädels, die diese geniale Java IDE entwickelt haben; IntelliJ IDEA ist immer noch eine der besten Java IDEs, die man für Geld kaufen kann. (imho)! Aber auch in anderen Bereichen wildert Jetbrains aktuell. Für viele Python Programmierer ist PyCharm ein sehr gutes Produkt, so wie PHPStorm das für PHP Programmierer ist. Webstorm, ReSharper, Rider, etc...Jetbrains ist mittlerweile sehr breit aufgestellt.

Aber wie das so ist; wenn man Programmierer ist und eine Editor Komponente baut, welche die Syntax von vielen Programmier- und Skriptsprachen farblich darstellen kann, so ist man nicht mehr weit weg davon eigene Skript- oder Programmiersprachen zu entwickeln. Man meint, dass es trivial ist Sourcecode farblich darzustellen; das ist es erstens nicht und zweitens gibt es so viel mehr Features in einer IDE, dass das Darstellen von farblichen Quellcode keine wirkliche Herausforderung mehr darstellt.

Jetbrains kam also irgendwann auf die Idee eine eigene Programmiersprache zu entwickeln. Sie nannten diese Sprache Kotlin. Kotlin ist eine JVM Sprache. Das bedeutet, dass, alle Erzeugnisse aus Kotlin eine Java Virtual Machine benötigen. Nun war Jetbrains sehr clever und entschied sich dazu, dass Kotlin direkt kompatibel mit der Android "JVM" ist. Wie du sicher mal erfahren hast, nutzt Android eine eigene Java Virtual Machine, die eben für die Smartphones optimiert ist. Als Android Programmierer lernt man recht schnell, dass man seinen Java Code nicht zu .class-Dateien kompiliert, sondern zu .dex-Dateien. Das ist auch mit dem aktuellen Android 7.x der Fall; nur mit dem Unterschied, dass Google mittlerweile die JCL (Java Class Library) des OpenJDK Projekts verwendet und somit weitgehend kompatibel mit dem Rest der Java-Welt ist. Das ändert aber nichts daran, dass man weiterhin .dex-Dateien erzeugt. Es gab bei Google Bestrebungen ein alternatives Class-File-Format zu etablieren: Jack und Jill. Das wurde aber aufgegeben. Denk am besten nicht weiter darüber nach. Aktuell ist weiterhin das "alte" .dex Format.

Java 8 Kompatibilität war für Android immer ein Thema. Jeder Junior, der heute Java in der Schule lernt, wird vermutlich Java 8 lernen, was an sich schon beinahe alt ist, da dieses Jahr Java 9 erscheint, wenn IBM und Redhat nichts dagegen haben. Für Android musste man sich aber bis vor kurzem noch auf die APIs von Java 7 beschränken und nicht nur das. Einige Dinge aus Java 7 gibt es unter Android einfach nicht, so dass man entweder Bibliotheken nutzt, um diese Funktionalität zu erhalten oder es selber re-implementierte. Das Java unter Android ist also als beschränkt zu betrachten. Jeder, der die Grundlagen von Java 7 und 8 kennt, wird sich bei Android eingeschränkt fühlen.

Nun hat Jetbrains mit Kotlin eine alternative Programmiersprache geschaffen, die schon seit Monaten bei den Entwicklern für ständigen Gesprächsstoff sorgt. Diese neue Programmiersprache ist eine Mischung aus Scala und Java. Sie versucht moderne Sprachfeatures auf eine "veraltete JVM" zu bringen. Jetbrains ist der Meinung, dass Java einige Schwächen hat. Mit Kotlin wollen sie die Probleme von Java in einer eigenen Sprache lösen, ohne dabei das Ökosystem von Java aufgeben zu müssen. Bei Kotlin wurde Java Interoperabilität extrem groß geschrieben.

Kotlin war deswegen von Anfang an sehr interessant für Android Programmierer. Mit Kotlin konnte man als Android Programmierer moderne Sprachfeatures auch im Kontext von Android nutzen. Kotlin selbst wurde aber nie offiziell von Google "unterstützt". Das hat sich aber nun geändert. Kotlin ist nun eine offiziell, von Google, unterstützte Programmiersprache für das Android System. Das kommt auch nicht ganz überraschend, da Google schon vor einigen Monaten die Android Entwicklungsumgebung auf Basis von Intellij IDEA neu implementiert hat. Dafür hat Google, mehr oder weniger, die Eclipse Basis aufgegeben. Eine gewisse Sympathie gibt es da also schon seit längerer Zeit.

Jetzt fehlt nur noch Dart ;). Sorry :)!



Podcast Folge 13


Wie versprochen der wöchentliche Podcast!

Dieses Mal Folge 13. Windows Bash/WSL nun auch mit openSUSE und Fedora, Visual Studio 2017 für macOS, was mit Perl 6 passierte und die Mehrheit gegen das Java 9 Modulsystem.

Viel Spaß damit!



Windows Bash/WSL nun auch mit openSUSE und Fedora


Es gibt ja seit einiger Zeit die Möglichkeit bei Windows 10 Bash/WSL in den Software Features zu aktivieren. WSL, das ist dieses Paket, welches ein komplettes Linux Subsystem unter Windows 10 installiert. Und das ist nicht einfach nur emuliert, sondern es wurde viel Aufwand getrieben, um Systemcalls von Linux in Windows zu übersetzen. Wenn es keine passenden Funktionalitäten gibt, wird es neu gebaut oder was auch immer. Ich benutze es seit Anfang an und bin relativ zufrieden, aber es hat auch extrem viele Bugs, die so verrückt sind, dass man es sich mehrmals überlegt, ob das überhaupt eine gute Idee ist. Seit dem Windows 10 Creators Update zeigt "du -sh" zum Beispiel, dass Ordner mehrere TeraByte groß sind, obwohl sie nur wenige hundert MegaByte groß sind. Sehr "komisch".

Bis zum Windows 10 Creators Update wurden die Linuxbinaries und Tools von Canonical bereitgestellt. Man hatte am Ende ein Ubuntu 14.04 LTS unter Windows. Mit dem Creators Update hat man Zugriff auf Ubuntu 16.04 LTS.

Nun hat Microsoft aber weitere Partner ins Boot geholt. So wird es in der Zukunft möglich sein Bash/WSL unter Windows mit openSUSE oder Fedora zu betreiben. Ich bin tatsächlich sehr gespannt, da Microsoft einiges aufzuholen hat. Jetzt, wo Apple den Desktop Power User aufgegeben hat, hat Microsoft eine gute Chance sich einige User zu krallen. Und mich haben sie eh zurück, da ich Linux auf dem Desktop ja nicht mehr so mag. Ich nutze es seit Anfang 2000 auf dem Desktop und jetzt, 2017, gibt es die exakt gleichen Probleme.

Linux auf dem Server? Ja, unbedingt! Auf dem Desktop? Nein danke. Aber mit Bash/WSL könnte man fast sagen, dass das Jahr 2017 tatsächlich das Jahr für Linux sein könnte. Für Programmierer ist dieses Feature auf jeden Fall sehr interessant und extrem praktisch.



Visual Studio 2017 für macOS


Nun, da verwirrt Microsoft aber die Benutzer etwas. Microsoft hat Visual Studio 2017 für macOS veröffentlicht, aber so ganz stimmt das nicht. Visual Studio 2017 für macOS basiert auf Xamarin Studio. Du erinnerst dich, dass Microsoft die Firma Xamarin gekauft hat.

Es handelt sich hier also nicht um _das_ Visual Studio, welches man von Microsoft Windows kennt, sondern um eine weiterentwickelte Version von Xamarin Studio. Gut zu wissen oder?

Sehr viele Features aus dem echten Visual Studio 2017 fehlen. Die Variante für macOS ist eindeutig auf C# fokussiert. Das macht aber auch nichts. Nur die Namensgebung ist, Microsoft typisch, unglücklich. Ich werde diese Firma einfach nie verstehen.



Was ist mit Perl 6 passiert?


Es ist schon erschreckend wie gut ich mich mit Perl 5 auskenne, aber es ist auch nicht verwunderlich, denn immer wieder musste ich mit Perl auseinandersetzen. Das fing schon mit dem Praktikum bei WebControl in Erkrath (jetzt Düsseldorf) an. Da musste ich ein altes Perl-Script vom Chef refaktorieren. Das war sehr gruselig. Aber es zwang mich dazu Perl zu lernen. Zumindest habe ich die Grundlagen von Perl 5 gelernt und etwas gebaut. Ob das gut war, kann ich nicht mehr genau sagen. Ich habe Bind Zonefiles generiert und das war schon spannend genug :D...Ich hatte mich letztendlich an einem Storage verhoben, musste an der Leiste operiert werden und allgemein war die Stimmung nicht gut. Der Chef glaubte an mich, aber ich war jung und unerfahren. Für mich waren Menschen mit weniger Kenntnis unwürdig. Das habe ich die Menschen auch spüren lassen. Kurz: ich war a-sozial. Zum Glück hat mich mein aktueller Arbeitgeber geheilt. Da hatte ich quasi gelernt, dass es kein "perfekt" gibt :D...

Perl 5 ist nicht so schlecht, wie man immer sagt. Ich hatte irgendwann meine Abschlussarbeit geschrieben und für das Abschlussprojekt hatte ich Perl gewählt. Total verrückt oder? Nicht ganz. Ich war zu der Zeit voll im Thema. Ich hatte mich intensiv mit Moose, dem postmodernen Objektsystem für Perl, auseinandergesetzt. Das finde ich auch heute noch sehr gut. Ich hatte zu der Zeit auch ein eigenes Web Framework entwickelt, aber ok...das vergessen wir lieber.

Perl 5 mit Moose kombiniert ist auch heute noch extrem elegant und, ich wiederhole mich, extrem wartbar und ich wiederhole mich erneut, extrem bewertbar. Moose ist so beliebt, dass es Alternativen zu Moose gibt, die nur das Beste aus Moose extrahiert haben. Moose ist nämlich nicht ganz so "leicht". Mit "mod_perl" ist das sogar ab einer bestimmten Last fehleranfällig :). Das ist aber eher ein Problem von "mod_perl".

Aber seit ich Perl 5 kenne, kenne ich auch Perl 6. Also "kennen" ist übertrieben. Ich höre davon. Genutzt oder geschrieben hatte ich Perl 6 nie. Die Idee von Perl 6 gibt es seit dem Jahr 2000. Irgendwann kam ich dann auf die Idee Perl 6 lernen zu wollen. Das war bei Zeiten gar nicht so einfach. Es gab gefühlt zig verschiedene Laufzeitumgebungen, die Perl 6 ausführen konnten. Die eine war stabil, konnte aber keine Threads. Die andere war instabil, aber konnte Threads. Dann gab es was für die Java VM und Bla...sowas ist schon mal nicht gut. Gut, Perl 5 und Threads ist ja auch so eine Sache, also wäre das egal gewesen, aber dass es mehrere Laufzeitumgebungen gibt ist nicht gut. Wenn Adoption gewünscht ist, so sollte es von Anfang an konstistent sein.

Nun muss man der Community auch einen Grund geben von Perl 5 zu Perl 6 zu wechseln. Die Gründe mag es geben, aber sie sind nicht offensichtlich. Jeder, der sich mit Perl 5 auseinandersetzt, weiß, dass Perl 5 so schlecht nicht ist. Perl 5 ist außerhalb der Perl Community als "Hacker" Sprache bekannt. Schnell mal was hinrotzen. Das ist in vielen Fällen auch so, aber das Ökosystem von Perl ist erstaunlich stabil. Es gibt Cpan, ein Archiv mit wertvollen Perl Packages, welche man einfach mit "cpan" installieren kann. "cpan" ist Bestandteil von Perl 5.

Das war eines der ersten Dinge, die mich bei Perl 5 überraschte. Die Packages, die man über Cpan beziehen kann, sind alle außerordentlich gut getestet. Jedes Cpan Package hat zig "Unit"-Tests, die vor der Installation ausgeführt werden. Wenn die Tests nicht positiv durchlaufen, wird das Package nicht installiert. Das ist wirklich außerordentlich bei Cpan. Wenn man ein Package bei Cpan veröffentlichen möchte, ist man auch aufgefordert viele Richtlinien zu beachten. Es wird sehr viel Wert auf Qualität gelegt. Und das überrascht sicher einige, die mit Perl sonst nichts zu tun haben. Die Hürde ein Package bei Cpan zu veröffentlichen ist vergleichsweise hoch. Das ist gut.

Aber was ist nun mit Perl 6? Es gibt noch immer wenig Literatur. Die Adoption in der Community ist extrem gering. Niemand möchte Perl 6 nutzen. Die Probleme beginnen aber auch schon auf der Perl6 Website. Man soll Rakudo runterladen... Meeh! Perl 6 braucht wirklich besseres Marketing und man sollte das Ding nicht Rakudo nennen. Mit "Perl 6" hat es doch schon einen Namen. Und dass Perl 6 inkompatibel zu Perl 5 ist, ist auch unglücklich. Es gibt zwar ein Modul, womit man Perl 5 Packages benutzen kann, aber wenn man sich Perl 6 anschaut, so sieht man, dass es zwar vieles Neues gibt, aber Vieles ist auch so geblieben und nur gering angepasst worden. Mit Moose in Perl 5 hat man auch viel verändert, ohne Perl 5 zu verändern. Aber meine Meinung ist irrelevant, da ich Perl 6 zu schlecht kenne und das ist nicht nur mein persönliches Problem, sondern das eigentliche Problem von Perl 6. Niemand kennt es.

Mein Vorschlag: Perl 6 verwerfen.

Macht ein Perl 7, was mit Perl 5 Code klar kommt und Moose out of the box beinhaltet; von mir aus auch den Kram aus Perl 6. Und bitte trennt euch von diesem Rakudo Namen. Jeder ist von diesem Namen verwirrt. Das muss Perl 7 heißen. Oder wie auch immer. Die Perl 5 Community ist noch heute extrem groß. Die Perl 5 Community hat noch heute eine extrem gute Perl 5 Distribution, ein extrem umfangreiches Archiv an Packages aus Cpan und keinerlei Probleme modernen Code auch in Perl 5 zu schreiben; wenn auch mit Hilfe von weiteren Packages wie Moose.

Wenn sich das nicht ändert, wird Perl 6 nie was werden. Perl 5 wird ewig leben. Es sollte jemand ein aktuelles Buch über Perl 6 schreiben und es sollte jemanden geben, der es vielen Perl 5 Entwicklern zeigt. Aber ich vermute, dass die meisten Perl Entwickler eben nur "Hacker" sind, die kleine Scripte hinrotzen. Wir werden sehen! :)



Mehrheit gegen das Java 9 Modulsystem


Schon vor einigen Wochen hatten IBM als auch Redhat gegen das neue Modulsystem in Java 9 gewettert und offen ihre Bedenken geäußert. Zu dieser Zeit war diese Information für mich wertlos, da ich davon ausgegangen bin, dass die Mehrheit für das neue Modulsystem stimmen wird.

Aber es ist anders gekommen als erwartet. Ich war selber sehr überrascht, dass auf einmal die Mehrheit der Teilnehmer gegen das neue Java 9 Modulsystem gestimmt hatte. Das ist heute die Nachricht des Tages!

Aber es ist nicht so aufregend, wie es derzeit berichtet wird. Alle Teilnehmer, die dagegen gestimmt haben, äußerten auch Verbesserungen. Es ist also davon auszugehen, dass das neue Java 9 Modulsystem trotzdem implementiert werden wird.

Man muss sich auch vor Augen führen, dass große Änderungen oft ungerne angenommen werden, weil bestehende Software geändert werden müsste, um kompatibel zu bleiben. Da IBM als auch Redhat die wichtigsten Applikationsserver implementieren und betreuen, sind diese beiden Stimmen sehr gewichtig und beeinflussen natürlich auch andere Firmen. In diesem Fall gibt es von diesen Firmen eigene Ansätze für die Modularität, die sie natürlich ungerne aufgeben möchten.

Ich hoffe, dass sich alle Teilnehmer einig werden, denn grundsätzlich ist Java eine gute Sprache mit gutem Ökosystem.



Podcast Folge 12


Wie versprochen der wöchentliche Podcast!

Dieses Mal Folge 12. Die Technicolor Patente für MP3 sind abgelaufen, Rusts Cargo hat Probleme mit 'nul', Microsoft und Windows 10 S (wie sicher ;)), Intel CPU Backdoor, Speicherlecks in Raketen, Edge und der Xerox Bug...

Vieles Interessantes dieses Mal :).

Viel Spaß damit!



Edge und der Xerox Bug


Vor ein paar Jahren gab es mal ein Problem mit Xerox Scannern/Kopierern, die Zahlenwerte auf einem Originaldokument in der Kopie verändert hatten. Wenn man also ein Blatt mit irgendwelchen Zahlen auf den Scanner legte und dann eine Kopie erzeugte, war auf der Kopie eine andere Zahl zu sehen. Der Grund war der Algorithmus für die Komprimierung der Daten. Der versuchte bestimmte Bildelemente wiederzuverwenden. Ok, ich bin diesbezülich Laie, aber so in etwa :). Der Fehler blieb 8 Jahre lang unentdeckt. Auf der Seite des CCC gibt es eine sehr detaillierte Beschreibung des Fehlers. Wenn dich sowas interessiert, dann unbedingt anschauen oder anhören.

Der Webbrowser von Microsoft, Edge, hat diesen Fehler, nun quasi kopiert. Na gut, nicht ganz, aber er erinnert an den Xerox Fehler. Im Edge Webbrowser gibt es einen PDF-Viewer. Dieser PDF-Viewer zeigt in der PDF "123456" an, aber wenn man das Dokument druckt, steht auf der ausgedruckten Seite "114447". Wenn du das selber ausprobieren willst, dann suche nach "microsoft edge issue #11896203". In dem Bug-Report ist auch die entsprechende PDF angehängt. Dort ist auch der Xerox Bug erwähnt. Die Idee kommt also nicht von mir, aber ich musste herzhaft lachen. Ursprünglich geklaut ist die Nachricht aber von "fefe". Der hat diese Information aber in deutlich weniger Text verpackt als ich. Ich musste so sehr darüber lachen, dass ich einfach nicht anders konnte und das niederschreiben wollte. Aufmerksam gemacht auf diesen Bug hat mich "deki" aus Freenode, wo ich täglich rumhänge. Seit Anfang 2000.



Speicherlecks in Raketen


Als ich mich bei der HMM Deutschland GmbH 2011 vorstellte, kam mitten im Gespräch mein Chef in das Büro; mit Jeans und Hemd. Er schaute sich meine Bewerbung an und lachte über das Foto. Das hatte ich kurz zuvor selbst mit dem Smartphone erstellt...aber wenn du mich kennst, dann weißt du, dass ich auch mal mit Hawaii-Hemd zu einem Vorstellungsgespräch erscheine.

Mein Chef meinte damals, dass ich kein Raketentechniker sei. Da habe ich, ohne viel darüber nachzudenken, zugestimmt, denn ich hatte angenommen, dass Software für Raketen sehr genau sein sollte. Ich wusste ja bis heute nicht, dass ich einem Irrtum unterlag; so auch mein Chef!

Kent Mitchell hatte 1995 für einen Kunden Software für eine Rakete betreut. Nach ausgiebiger Analyse stellte er fest, dass die Software Speicherlecks aufweist. Das bedeutet, simpel gesprochen, dass die Software während der Laufzeit immer mehr Speicher verbraucht. Das Programm allokiert Speicher und gibt ihn nicht immer frei. Das führt dann irgendwann dazu, dass der Arbeitsspeicher "voll" ist und die Software unkontrolliert beendet wird. In vielen Bereichen wird man einen Core Dump bekommen, oder auch einen Segmentation Fault. Je nach Betriebssystem stürzt auch das Betriebssystem ab. Wenn man unter Linux den Speicher komplett befüllt und kein Swap hat, verabschiedet sich Linux, ohne viel Lärm, mit einem Kernel Panic. Da blinkt noch kurz die Caps-Lock LED auf der Tastatur und dann bleibt nur noch der Reset-Taster an dem PC.

Kent Mitchell machte den Hauptentwickler auf die Probleme aufmerksam und die Reaktion war verblüffend und logisch zugleich. Dem Chefentwickler waren die Speicherlecks bekannt, aber er hatte erklärt, dass das kein Problem darstellt. Man hat nämlich ausgerechnet, wie viel Speicher die fehlerhafte Software während des gesamten Fluges der Rakete allokieren würde und festgestellt, dass der Speicher bis zur Explosion der Rakete nicht erschöpft sein wird. Also lässt man das so. Logisch!

Mein Chef hat sich also gewaltig geirrt! Ich erfülle ohne Probleme die Anforderungen eines Raketentechnikers! Aufmerksam gemacht auf diese Geschichte hat Clive Thompson aus New York. Ich habe mich sehr darüber gefreut :)! Danke.



Deine Intel CPU könnte ein Sicherheitsrisiko sein


Intel hat in seine Prozessoren seit ca. 2008 einen Chip eingebaut, der es ermöglicht Rechner aus der Ferne zu steuern. In Firmennetzwerken mag das sinnvoll sein, aber für Privatrechner ist dieses Feature sinnlos, da es da niemand braucht. So oder so ist dieser Chip und die Software vorhanden. Sie ist unabhängig vom installierten Betriebssystem; das macht ja auch Sinn. Standardmäßig ist dieses Feature deaktiviert.

Schon lange wird darüber spekuliert, dass dieses Feature unsicher sei, und einige konnten die Gefährlichkeit auch schon demonstrieren. Intel hat nun offiziell bekanntgegeben, dass dieses Feature Bugs enthält, welche es ermöglichen, dass jemand volle Kontrolle über einen PC bekommen kann.

Wenn man nach "INTEL-SA-00075" sucht, findet man das Intel Advisory Dokument. Um festzustellen, ob sein System unsicher ist, kann man das Intel Tool runterladen, aber das funktionierte bei mir nicht. Ich konnte es zwar mit den benötigten Parametern starten, aber es beendete sich nie und hat die Dateien mit den Informationen nicht geschrieben. Es ist aber davon auszugehen, dass jeder Intel Prozessor ab ca. 2008 betroffen ist. Bei Consumer Prozessoren sagt Intel, dass die praktische Wahrscheinlich einer Ausnutzung des Bugs nicht sehr wahrscheinlich ist. Praktisch möglich ist es aber dennoch.

Lenovo hat bereits eine Liste der betroffenen Systeme veröffentlicht. So oder so: wenn dein Mainboardhersteller nun ein BIOS-Update ankündigt, installiere es. Mein Board ist von ASUS, aber ich konnte noch keine Informationen diesbezüglich finden. Die ersten besorgten Benutzer fragen bereits in den Foren von Asus. Eine Supportanfrage von mir wurde bis heute nicht beantwortet.

Aber ich mag Intel ja und deswegen erwähne ich, dass AMD sowas auch hat. Nur, dass dort vermutlich noch niemand genau genug hingesehen hat ;). Grundsätzlich will ich solche Technologie nicht in meiner CPU. Meeh!



Och Microsoft!


Du kennst das als Programmierer sicher auch. Man arbeitet für eine relativ große Firma und es werden Entscheidungen getroffen, die nicht mal ansatzweise nachvollziehbar sind. Man versucht zu verstehen wieso bestimmte Entscheidungen getroffen wurden, aber man kommt einfach nicht dahinter nach welcher Logik oder nach welchen Interessen das zustande gekommen ist. Aber dieses Gefühl hat man nicht nur bei der "eigenen" Firma, sondern auch bei anderen.

Heute bekam ich eine Mail von Microsoft und mir wurde damit das neue Surface Laptop schmackhaft gemacht. Die Mail war gut gemacht und so schaute ich mir auch die Produktseite für das neue Microsoft Produkt an. Mal davon abgesehen, dass man es im Bereich der Tastatur mit Alcantara Bezug kaufen kann, ist es ein normales Laptop. Aber halt! Nicht ganz. Es hat einen Touchscreen und in der Basis wenig Arbeitsspeicher. Aber was mich sehr verwirrte war die Aussage, dass dieses Laptop für Windows 10 S konzipiert ist. Aber was ist denn Windows 10 S? Ich habe davon bis heute noch nie was von gehört. Also habe ich mich informiert. Ich fasse es nun ganz knapp und konkret zusammen. Du wirst erstaunt sein.

Windows 10 S ist optimiert für Sicherheit und Leistung. Windows 10 S erlaubt die Installation von Programmen nur über den eigenen App Store. Microsoft Edge ist der Standardbrowser und das kann auch nicht geändert werden, da er "umfassendere Sicherheit bietet als Chrome oder Firefox" (Zitat: Microsoft). Man kann also keinen anderen Webbrowser als Standardbrowser einstellen. In Edge kann man außerdem die Suche nicht auf Google umstellen. Man sucht standardmäßig mit Bing. Man kann natürlich zur Google Seite navigieren und dort suchen.

Windows 10 S ist sicher eine Option für spezifische Einsatzgebiete wie zum Beispiel Schulen. Ich will hier nur nebenbei erwähnen, dass in den USA Google Chrome Books sehr verbreitet sind. Dabei handelt es sich um extrem günstige Notebooks, auf denen Google ChromeOS installiert ist. Man bekommt auch in Deutschland Chromebooks; man bekommt sie ab ca. 200 EUR. Nur, damit du mal einen Eindruck hast, in welchem Preisbereich sich das abspielt. ChromeOS ist ein Betriebssystem, dass sehr limitiert ist. Das hat aber den Vorteil, dass man es auch nicht kaputt machen kann. Auch um Sicherheit muss man sich da keine Sorgen machen. Und genau soetwas versucht Microsoft nun auch mit Windows 10 S. Die Strategie von Microsoft ist aber höchst eigenwillig. Wieso stellen sie Windows 10 S mit einem Laptop vor, das zwischen 1.149,00 und 2.499,00 EUR kostet? Ich kenne niemanden, der sich ein Laptop für diesen Preis kauft, um damit dann nichts machen zu können. Im schlimmsten Fall kauft das ein unbedarfter Kunde und will dann seine alten Windows Programme installieren, um dann festzustellen, dass das ja gar nicht geht. Aber immerhin kann man laut Microsoft problemlos und kostengünstig (angeblich kostenlos die ersten Monate) zu Windows 10 Pro wechseln.

Microsoft hat auch schon angekündigt, dass viele Hersteller Geräte mit Windows 10 S anbieten wollen. Der Preis für das günstigste Gerät soll sich auch im Bereich von 200 EUR bewegen. Das wiederum könnte ein guter Schritt für Microsoft sein. Ein günstiges Laptop, bei dem man sich nicht um die Sicherheit kümmern müss. Alles aus dem Store ist sicher. Das Internet ist Edge sei "dank" eh immer sicher. Nun, so die Theorie ;). Aber mit diesem Surface Laptop ab 1.149,00 EUR wird das nichts. Da muss Windows 10 drauf (Home oder Pro...wählbar bitte! Manche Menschen müssen in die "Domäne" :)).

Ganz nebenbei ist das Zubehör für das neue Surface Laptop nicht günstig. Und wieso Microsoft unterhalb des Surface Laptops ein Surface Pro 4 Type Cover als Zubehör empfiehlt, verstehe ich nicht. Das Surface Laptop hat doch schon eine eigene Tastatur. Aber das liegt sicher daran, dass die Webmaster der Seite nicht darauf vorbereitet waren, dass Microsoft das neue Surface Laptop vorstellt. Moment...



Cargo zerbricht an 'nul'


Cargo ist der Paketmanager für Rust. Offensichtlich führte ein Paket mit dem Namen 'nul' dazu, dass Cargo nicht mehr funktioniert. Es wurde der Fehler "Specified device name is invalid" erzeugt.

Der Fehler ist mittlerweile behoben und Cargo kann, wie gewohnt, genutzt werden.



Die Technicolor Patente für MP3 sind abgelaufen


Am 23. April 2017 sind einige Patente von Technicolor bezüglich des MP3-Dateiformats abgelaufen. Das bedeutet, dass OpenSource MP3 Codecs nun legal verteilt werden dürfen. Linux Distributionen dürfen nun legal MP3 Codecs mitliefern, so dass out-of-the-box MP3-Dateien abspielbar sind. Auch Programme wie Audacity dürften in naher Zukunft mit MP3 Unterstützung veröffentlicht werden, ohne, dass man mit LAME eine Erweiterung nachladen muss.

Ob MP3 nun ein gutes Format ist oder nicht, wird und wurde ja immer wieder heiß diskutiert. Dass es bessere Alternativen gibt, ist unbestritten. Unbestritten ist aber auch, dass so gut wie jedes Gerät, welches Musik abspielt, das MP3-Dateiformat unterstützt. Und das ist teilweise immer noch ein Vorteil in vielen Situationen.



Alte Beiträge


2017/KW17, 2017/KW16, 2017/KW15, 2017/KW14, 2017/KW13, 2017/KW12, 2017/KW11, 2017/KW10, 2017/KW9, 2017/KW8, 2017/KW7
Startseite Podcast RSS Impressum