Maschinenschreiben

Man sollte glauben, dass die Anzahl der Programme, mit denen man lernen kann, wie man im 10-Finger-System schreibt, recht hoch ist. Das ist aber nicht so. Tatsächlich habe ich nur ein Programm gefunden, das mir gefällt: Der Klassiker „Mavis Beacon Teaches Typing“.

MavisBeacon

Ich schreibe schon seit vielen Jahren mit zehn Fingern und mit halbwegs stabiler Handposition. Ich tippe aber langsamer als viele meiner Arbeitskollegen. Nun ist bei der Softwareentwickung die Tippgeschwindigkeit nicht der limitierende Faktor, trotzdem versuche ich gelegentlich, das Maschinenschreiben etwas zu üben. Lange Zeit war ich dafür mit Programmen wie Tipp10 zufrieden. Für das iPad habe ich mir ein eigenes Programm geschrieben. Ich habe dann auch für Windows und den Mac in den App-Stores nach Tipptrainern gesucht. Das meiste, was ich gefunden habe, ist ziemlich schrecklich. Besonders qualvoll fand ich ein Programm, das fehlerhaft ins Deutsche übersetzt war, und dessen Sprchausgabe einen schwergängigen Akzent hatte.

Deutsch? Eher nicht

Bei den meisten Programmen kann man die Sprache/Tastaturbelegung nicht umschalten, und weil ich die wenigen deutschen Titel weder effektiv noch besonders schön fand, habe ich im Allgemeinen nur die US-Belegung üben können.

Besonders gefallen hat mir Mavis Beacon in der Version von MacKiev, die eine virtuelle Umgebung enthält, in der verschiedene Unterprogramme durch Objekte aktiviert werden können. Beispielsweise kann man die eigene Tippgeschwindigkeit testen, indem man auf die Wanduhr klickt. Leider funktioniert die Version von MacKiev auf einem aktuellen System nicht mehr unbedingtDie Version von Encore gibt es für den Mac und Windows, aber da PC-User wohl ein Microsoft-BOB-Trauma haben, wird mit klassischen Buttons und weniger verspielt gesteuert. Zum Ausgleich ist wird hier der Unterschied zwischen Übungen und Tests sehr viel klarer und man bekommt bessere Unterstütung um seine Leistung zu verbessern.

Zum Ausprobieren

Wer sich Mavis Beacon einmal ansehen möchte, ohne gleich Geld in die Hand zu nehmen der findet im Internet Archiv mehrere Versionen zur Auswahl, die man zum Teil im Browser ausprobieren kann. Die klassische Mac-Version hat auch Farb-Grafik, wenn man sie herunterläd und in einem passenden Mac oder Emulator betreibt.

Aufruf

Habe ich ein tolles Tipp-Programm übersehen? Dann bitte ich um Nachricht und schreibe dann vielleicht noch ein Update zu diesem Artikel. Die Kontakt-Funktion auf der Bitnacht-Startseite (und die E-Mail-Adresse dort) steht jedem zur Verfügung.

Ray-Tracing Hardware

Schon in den 90ern wollten wir Ray-Tracing in Echtzeit. Jetzt ist die Technik so weit, dass es möglich wird.

Wie auf der Webseite des Heise Verlags zu lesen war, gab es kürzlich auf einer Messe eine Vorführung der Northlight-Engine, bei der eine Ray-Tracing Szene in FullHD in Echtzeit berechnet wurde (Demo-Video im Link). Die Berechnung erfolgte mit einer einzigen Nvidia Titan V Grafikkarte, die zwar noch sehr teuer ist, aber die Preise werden in den nächsten Jahren bestimmt sinken.

Desktop persönlich: Workbench

Was für mich den Amiga auszeichnete war nicht nur, dass er 4096 Farben und Stereosound hatte und schnelle Animation beherrschte. Das Multitasking-Betriebssystem Amiga OS (damals noch »AmigaDos«) hatte die Workbench. 

Die Workbench ist ein bisschen wie der Finder oder Windows, aber gleichzeitig simpler und vielseitiger.

Workbench hat wie der alte Mac Finder einen spatialen Ansatz. Das bedeutet, dass der Computer die Dinge nicht von sich aus umsortiert oder bewegt. Ein Fenster, ein Icon oder ein Menüeintrag wird immer dort sein, wo man ihn/es zuletzt gesehen hat (wenn man gespeichert hat … oder eben an seiner Ausgangsposition zuvor). Wenn unter Windows eine neue Datei mit dem Namen »Manila.txt« von letzter Woche in ein Verzeichnis bewegt wird, dann rutscht entweder die Datei »Polly.txt« nach hinten, oder die Datei von gestern - je nachdem, ob nach Datum oder Namen sortiert wird. Und das kann bedeuten, dass man sogar scrollen muss, um zu finden, was man dauernd braucht.

Was aber genauso bedeutend ist: Die Workbench kommt mit »IconEdit«. Der User ist sofort in der Lage, jeder einzelnen Datei ein passendes Aussehen zu geben. Mit einem Blick kann er dann erkennen, welcher Ordner (Workbench nennt ein Verzeichnis nicht Ordner sondern konsequent »Schublade«) von ihm umgestaltet wurde. Gruppenbeziehungen jenseits aller Tags und Dateinamenkonventionen werden sichtbar. Diese Icons sind sogar animiert: Eine ausgewählte Schublade steht immer einen Spalt weit offen und das Kompressionsprogramm stampft das Datenpaket sichtlich zusammen.

Wenn ein Piktogramm wichtiger ist als die anderen, oder man besonders viele Details im Bild brauchte, macht man das Symbol einfach größer und falls ein paar pixel reichen geht es auch ganz klein. Das macht zwar zunächst einen unordentlichen Eindruck, aber es ist leichter eine nützliche Anordnung zu finden.

Was dem Amiga und der Workbench aber nicht geholfen hat, war die Auflösung: Um mit normalen Fernsehbildern arbeiten zu können, hatte der Amiga sich auf schlanke Pixel festgelegt, die überhaupt nicht zu den modernen Monitoren der 90er Jahre passten. Obendrein waren die Farben so gewählt, dass sie die Probleme mit schlechten Bildschirmen reduzierten. Später wurden die Farben dann geändert, so dass die Hälfte aller Programme auf dem Bildschirm immer schlecht aussah. Wer den Amiga nicht kannte wurde von solchen Bildern nicht zum Kauf überzeugt.

Nicht dass sich - außer einiger rühmlicher Ausnahmen - besonders viele Firmen die Mühe gemacht hätten, Bürosoftware für die Workbench anzupassen. Es war das übliche Henne-Ei Problem. Wären doch damals nur die Leute von Apple und Microsoft etwas besorgter um ihren Status gewesen, vielleicht hätten sie dann ja die ungemein praktische Workbench dort kopiert, wo sie für den Nutzer das beste Angebot hatte.

Noch heute hasse ich es, eine Datei am Ende mit ».txt« oder ».docx« nennen zu müssen, bloß weil diese Systeme nicht mehr in der Lage sind sich den Datentyp irgendwo anders abzuspeichern. Der Dateiname gehört dem User - nicht dem System. Das Datei-Icon und Ordner-Icon ebenso. Mein Computer - meine Entscheidung!

Tweet-Archiv

Seit  heute gibt es auch mein Konto im Heise-Forum nicht mehr. Stattdessen gibt es jetzt … und hier: das finale Bitnacht Archiv von Svens Tweets zum Lesen und Ausdrucken. Das ist in diesem Fall eigentlich nichts ganz so besonderes, denn im Dezember 2017 habe ich das schon einmal gemacht.

Zum Ausgleich für meinen scheinbaren Rückzug aus der Online-Welt will ich versuchen, an jedem Wochenende etwas Neues auf Bitnacht zu haben. Es muss nicht immer etwas besonderes sein. Aber ich will versuchen, es abwechslungsreich zu machen.

Glosse: Für den anderen Computer

Cross Plattform Entwicklung ist überall. Wer Software für ein Smartphone oder einen Mikrocontroller schreibt hat meist keine Wahl: Übersetzt wird auf einem anderen Computer. In den 90ern trat Java an, um das ganz einfach zu machen. Java ist eine virtuelle Maschine und deshalb läuft ein Programm, das auf irgendeinem Rechner geschrieben wurde überall. Oder nicht?

IMG_0458.jpeg

In der Praxis ist es ja so, dass es gute Gründe gibt, warum man ein Programm für einen bestimmten Computer schreibt. Im Falle des Smartphones will man beispielsweise, dass das Programm mit einem Touchscreen funktioniert und dass man es unterwegs in der Hosentasche haben kann. Es soll auch mit einer fragilen Netzwerkanbindung laufen (wenn man mal wieder nur Edge hat) und vielleicht soll es auf die Daten zugreifen können, die im Handy gespeichert sind. Nichts davon habe ich auf dem PC (oder Mac), auf dem ich programmiere. Ich muss etwas simulieren, oder ich muss nach jedem Kompilieren das Programm neu übertragen. Letzteres ist leicht, wenn es um das eigene Handy geht, aber nicht alle Cross Plattform Entwicklungen sind da so reibungslos.

Programme leben von Input und Output und wenn dieser zwischern Entwicklungsrechner und Zielgerät verschieden ist, dann nützt auch eine universelle Sprache und eine virtuelle Maschine nicht viel. Entwicklung ist dann nur noch mittelbar. Wenn Karl Marx von der Entfremdung des Arbeiters von seiner Arbeit (bzw. seinem Produkt) spricht, dann könnte man hier von der Entfremdung von Programmerstellung und Programmablauf reden.

IMG_0889

Wie glücklich war doch die Programmiererin1 für C64 Software! Sie hatte genau die Maschine, die der Kunde auch hatte. Sie hatte genau so viel Speicher, genau so viel MHz, genau die gleiche Tastatur und eine Sekunde nachdem sie etwas programmiert hatte, konnte sie es sehen, wie es war - zumindest, wenn sie Maschinensprache und/oder Basic benutzte.

IMG_0623

Ich als Zuhause-Mac-Und-In-Der-Firma-Windows-User, der gelegentlich Programme für vier bis acht verschiedene Plattformen schreibt, finde es oft ermüdend, die Unterschiede zwischen den Systemen zu Überbrücken. Oft könnte man auch mit der schlechteren Lösung leben, wenn es doch wenigstens überall dieselbe wäre. Manchmal gibt es gute Gründe für die Unterschiede. Aber ist die Technik nicht inzwischen beinahe ausgereift? Könnten wir auf DIN-Tastaturen, UTF-8 und POSIX-Spezifikationen nicht noch „einen draufsetzen“ und jeden Computer - egal wie klein und spezialisiert - mit einer Programmierumgebung zu liefern, die lokal funktioniert und einem gemeinsamen Standard folgt?

Niemand arbeitet daran. In den 90ern gab es für Linux den AmiWM, MLVWM und FVWM95 um dem User eine vertraute GUI zu geben. Emacs hat einen VI-Mode und der Mac kann Control und Command tauschen, um Windows Shortcuts zu simulieren. All das geht nicht weit genug und ein gemeinsamer Standard kann auch nicht nur aus dem imitieren eine bestimmten Systems bestehen. 

Auch am anderen Ende geschieht nichts. Visual Studio wird unter konfusen Lizenzen zum Teil teuer verkauft, selbst wenn man schon drei Windows-Installationen besitzt, und wer glaubt, die GUI des aktuellen Office damit programmieren zu können, der täuscht sich: Hier nutzt Microsoft eine nicht veröffentlichte Bibliothek mit anderem Look & Feel. XCode ist zwar gratis, aber auf dem iPad Pro gibt es von Apple nur die Playgrounds, die eine tolle Idee sind, aber irgendwie nicht für richtige Programme reichen. Andere Anbieter haben für iPad und Windows durchaus Angebote, aber sie werden von Apple und Microsoft nicht ernsthaft genug unterstützt und liefern keine gute Integration und Performance. Zwar kann ich auf meinem Mac für jedes System Programme schreiben, aber sie sehen oft nicht aus, wie die mitgelieferten. Ich kann ein Windows-Programm auf dem Mac auch nicht vollständig testen, weil die Pfadnamen ganz anders gebildet werden, weil es andere Codierungen und Dateisysteme gibt und weil jede Systemfunktion irgendetwas anders macht. Aber selbst im Idealfall ist Cross Plattform oft eine Pein, denn beispielsweise kann ich ein iOS-Programm nicht einfach einem Freund geben, es geht schon, aber:

A provisioning profile is a collection of digital entities that uniquely ties developers and devices to an authorized iPhone Development Team and enables a device to be used for testing. A Development Provisioning Profile must be installed on each device on which you wish to run your application code. Each Development Provisioning Profile will contain a set of iPhone Development Certificates, Unique Device Identifiers and an App ID. Devices specified within the provisioning profile can be used for testing only by those individuals whose iPhone Development Certificates are included in the profile.

Und bevor jetzt jemand kommt und sagt, unter Android wäre das alles besser: ich habe einmal versucht ein kostenloses Android-Spiel aus dem Play-Store auf einem PC zum laufen zu bringen. Das funktioniert nur, wenn man mit einem Android-Smartphone (das ich nicht besitze) bereits eine ID bekommen hat, die man dann angeben muss. Um überhaupt so weit zu kommen, installiert man einen Haufen instabiler Beta-Software aus zweifelhaften Quellen. Das Ergebnis ist die Arbeit sicher nicht wert.

_____ 

1 Ich habe mir mal erlaubt nach der Methode von CATS zu gendern: Man wählt im Text zufällig Personen aus, die weiblich sind.

© Sven Mertens 2018