Von Alexander Trust am 07.05.2020 (letztes Update: 07.05.2020).

Wasserstand #12: PHP, Javascript und viel Arbeit

Wasserstand
Wasserstand, Bild: CC0

Es kommt immer anders als man denkt. Deshalb gibt es einen neuen Wasserstand erst heute, und gab es ihn nicht schon im April. Zwar versprach ich vollmundig, den Newsletter zu veröffentlichen, konnte mich aber nicht dran halten.

Wir wollten – ich möchte mit Macnotes eigentlich jeden Tag immer weiter sein, als wir es tatsächlich sind.

Tun, was man tun muss

Doch es gibt eben diese finanziellen Zwänge, die es notwendig machen, dass wir unsere Ideen in dem Maße verfolgen, wie es das Portmonee zulässt. Im November 2019 investierten wir einen ganzen Batzen unseres privaten Kapitals, um die Webseite aufzukaufen.

Wir wollten und wollen die Dinge anders machen. Das haben wir mehrfach artikuliert. Wir verzichten auf die große Werbung, aber im Umkehrschluss ist Macnotes – Stand heute – absolut nicht wirtschaftlich. Amazon wollte uns nicht im Affiliate-Programm, darüber hinaus ist AdSense ein Schatten seiner selbst und gibt es viele Aufräumarbeiten. Unter dem Strich kommt so im Monat meist nur ein niedriger dreistelliger Betrag zusammen.

Das ist „noch“ egal, denn wir sind in der Lage, unser Geld „anderswo“ zu verdienen. Tatsächlich portiere ich selbst aktuell ein uraltes Joomla 1.5 auf ein WordPress und benötige dafür viel PHP, Javascript und habe sogar ein eigenes Importscript in Ruby geschrieben, nachdem ich Zugriff auf die MySQL-Datenbank des Kunden erhielt. Diese Arbeit hält Macnotes natürlich auch auf, vor allem im Tagesgeschäft. Aber diese Arbeit bringt Macnotes auch etwas. Denn manche der Dinge, die ich für meine Kunden erledige, kann ich in Zukunft auch für Macnotes verwenden.

Gefährlich genug

Vielleicht kennt ihr die Situation, wenn man sich intensiv mit einer Sache befasst und am Ende so viel Know-how hat, dass man eigene, kreative Ideen entwickelt. Ganz gleich, ob’s ums Kochen, Basteln oder Programmieren geht. Genau das passierte mir unter anderem während meiner Arbeit an dem Joomla-Projekt für den Kunden. Denn ich musste mich sehr viel mit Javascript abgeben und weil ich aber nicht auf ein Framework vertrauen wollte, habe ich mit purem Javascript sehr sehr viele Lösungen gesucht und die allermeisten davon auch umgesetzt. Ob es um ein Akkordeon-Menü geht, ein rekursives Formular oder Register für ein Glossar.

Am Ende wollte ich aus einer Laune heraus einen eigenen einfachen Textersetzungsbefehl von TextExpander für die „Wayback Machine“ ausbauen. Dabei herausgekommen ist ein ausgewachsenes Formular in HTML und Javascript, mit dem ich mit der API des Internetarchivs interagiere. Dazu verbinde ich das Formular, empfange das Ergebnis als JSON-Objekt und verarbeite es dann. Wenn ich dann die Daten eintrage und den Button klicke, kopiert mir die „App“ (hust) das Ergebnis in die Zwischenablage. Damit habe ich gerade bei der Arbeit mit Macnotes eine riesige Erleichterung erlebt. Denn viele der Links von früher gibt es so heute nicht mehr.

Und weil ich ein Spielkind bin, aber auch Herausforderungen liebe, habe ich gar nicht lang darüber nachgedacht, sondern das Formular mittels CSS-Framework in Form gebracht. Außer mir hätte es bis dahin eigentlich niemand gesehen, doch nun zeige ich Euch das Ergebnis zumindest im Screenshot.

Kommunikation mit der Wayback Machine API

Kommunikation mit der Wayback Machine API, Bild: Alexander Trust

Ich möchte mittelfristig auch den Quellcode auf Github veröffentlichen und womöglich sogar ein WordPress-Plug-in daraus machen. Aber das sind Nebenkriegsschauplätze, die vielleicht auch nie zur Vollendung kommen. So ehrlich muss ich zu mir selbst sein. Denn ich habe jeden Tag mehr Ideen als der Tag Stunden.

Informationen sammeln und aufbereiten

Ich arbeite daran, Macnotes noch in diesem Jahr ein neues Layout zu verpassen. Allerdings ist der langfristige Plan vor allen Dingen, die Webseite mit Informationen auszurüsten. Teilweise tue ich das schon jetzt, selbst wenn es momentan noch „sch…“ ausschaut. Beispielsweise habe ich auf Seiten zu Veranstaltungen wie der WWDC 2008 die passenden Nachrichtenmeldungen dazu untergebracht. Das sieht dann wie folgt aus:

Informationsseite zu Veranstaltungen auf Macnotes

Informationsseite zu Veranstaltungen auf Macnotes, Bild: Macnotes

Taxonomien und Post Types

Gerne hätte ich auch schon früher Infos zu besonderen Themen eingebunden, beispielsweise zu Schlagwörtern wie „Coronavirus“. Da ich aber die alten „Schlagwörter“ offline nehme und eine und mehrere neue Taxonomien einrichte, möchte ich das Pferd nicht von hinten aufzäumen. Denn erst einmal braucht die Seite ein neues Layout, bevor ich anfange die Inhalte passend aufzubereiten.

Bei dem eingangs angesprochenen Kundenprojekt beispielsweise habe ich, ähnlich wie ich nur „reines“ Javascript einsetzen wollte, auch möglichst versucht, auf WordPress-Plug-ins zu verzichten. So habe ich am Ende selbst die Eingabeoberfläche für einen Custom Post Type mit Metaboxen erstellt und dann mittels Javascript dem Nutzer die Möglichkeit bereitgestellt, neue Felder „on the fly“ hinzuzufügen. Dabei musste ich einmal mehr feststellen, dass WordPress doch leider so ein Umstandskasten ist. Ich verstehe nicht, warum das System Metadaten als „serialisierte Objekte“ speichert, anstatt von echten JSON-Objekten oder alternativ Arrays. Aber irgendwas werden sich die Entwickler schon dabei gedacht haben.

Diese ganzen Erkenntnisse möchte ich auf Macnotes irgendwann auch mit Euch teilen, wahrscheinlich in Form von Tutorials, wie Ihr gewisse Dinge nachbauen könnt. Denn es gibt eine Menge Dinge, die ich gelernt habe, nicht nur was PHP oder Javascript angeht, sondern auch Ruby, SEO, CSS und so fort.

Von Stöckchen auf Retro-Steinchen

Ein Thema, das Ihr auf Macnotes „irgendwann“ auch vermehrt erleben werdet, ist das Thema Retro. Denn ich habe auch da vieles ausprobiert und zum Beispiel einen Basic-Interpreter für den Mac wie QB64 ausprobiert, einige eigene Programme dafür geschrieben.

Nur Retro heißt bei mir nicht nur Theorie, sondern auch Praxis. Die elektronische Bucht, wie Wolfgang Rudolph sie oft nennt, bescherte mir zuletzt beispielsweise einen Atari 1040 STF samt Monochrom-Monitor, aber auch einen C64C samt 5,25 Zoll Disketten-Laufwerk.

Commodore C64C

Commodore C64C, Bild: Alexander Trust

Ich denke, dass einige von Euch diese Leidenschaft für die Nostalgie teilen und letztlich kann man aus der Beschäftigung mit der Vergangenheit auch für die Zukunft lernen. Dass ich übrigens keinen Amiga ersteigert habe, liegt nur zum Teil an mir. Ich hatte es vor, aber die Preise gingen regelmäßig durch die Decke. Aber ich liege auf der Lauer und hätte nichts dagegen, wenn ich dann auch irgendwann einen Amiga in meine Sammlung aufnehmen kann. Denn alte DOS-PCs besitze ich schon zu Genüge.

Alter Schneider Monochrom-Monitor an Euro PC

Alter Schneider Monochrom-Monitor an Euro PC, Bild: Alexander Trust

Das Schöne ist auch immer wieder, wie man das Alte mit dem Neuen verbinden kann. Denn es gibt ja da diese Arduinos und Raspberrys, mit denen man alte Retro-Konsolen beleben kann, oder eben die Heimautomatisierung steuern. Auch darüber möchte ich schreiben.

Weiter, immer weiter

Nun habe ich Euch wieder ein wenig den Mund wässrig gemacht, kann aber leider noch nichts liefern. Ich muss erst das erwähnte Projekt beenden, bevor ich wieder mehr Zeit in Macnotes investieren kann. Dass ich mir trotzdem die Nächte für das Projekt um die Ohren schlage zeigt mir selbst, dass ich ein klein wenig verrückt bin, aber eben auch voll hinter dem Projekt stehe. Denn gegenüber dem letzten Wasserstand habe ich vorgestern einen Haken unter die Beiträge aus Juli 2008 gemacht.

Wenn zwischendrin außerdem noch Tests wie der zum Magic Keyboard fürs iPad Pro abfallen, und Apple weiter fleißig neue Produkte veröffentlicht, dann bin ich guter Dinge, dass wir uns gemeinsam auf die erste digitale WWDC 2020 im Juni freuen können. Es bleibt spannend!

Sag jetzt deine Meinung!