Menü

Aus der Werkstatt

KW 24 / 2022

veröffentlicht: 17.06.2022 · Franziska Köppe | madiko

Aus der Werkstatt 2022

Die Themen der Woche: REDAXO AddOn opus 1: Indexierung für EnjoyWork. YAML, PHP, MySQL, YORM, JSON – eine intensive Lernreise durch die notwendigen Programmiersprachen hat begonnen. Tschüss Adobe DreamWeaver. Hallo Visual Studio Code. Schöne Gespräche.

Foto: Aus der Werkstatt 2022
[ 2022-01-01 Franziska Köppe | madiko ]

Eine komplett terminfreie Woche. Was für eine Wohltat, mir meine Zeit frei einteilen zu können! Hoch motiviert startete ich am Montag in die AddOn-Programmierung (dazu gleich mehr). Es lief super und ich konnte meinem Biorhythmus folgen: Ausschlafen. Zum Aufwachen und Ankommen sah ich mir ein Tutorial rund ums Programmieren an und las in der REDAXO-Dokumentation. Anschließend huschte ich kurz über Twitter. Letzteres nur, um den Kontakt zur Außenwelt nicht zu verlieren. Ab und an die Nase vor die Tür halten, ist in Zeiten einer fokussierten Klausur notwendig, um sich vor bösen Überraschungen zu bewahren. Kniff für die Meisterin: Diese Zeitfenster in jedem Fall per Kurzzeit-Wecker limitieren. Das klappt ganz gut. Gegen neun saß ich frisch geduscht, mit einer heißen Tasse Tee am Schreibtisch und packte mein Tagwerk an. Etwas mehr als nur die Nase steckte ich aus der Haustür. Endlich unternehme ich wieder Spaziergänge! Noch immer zu wenig. Doch ein Anfang, immerhin. Kleine Erfolge und Fortschritte feiern, das hält die Motivation hoch!

Soweit zur allgemeinen Lage. Gehen wir nach nebenan in die Werkstatt…

Redaxo AddOn opus 1
Indexierung für EnjoyWork

Endlich Montag! Voller Elan fuhr ich den Rechner hoch. Ich hatte mir überlegt, zunächst die Grundstrukturen aufzubauen.

Konfigurationsdatei package.yml
(YAML)

REDAXO hat diesbezüglich geringe Anforderungen, die zwingend erfüllt werden müssen: Eine Datei zur Konfiguration, die package.yml, reicht aus. Richtig gelesen: eine einzige Datei. Einer der Vorteile an diesem Open Source CMS ist der schlanke Code.

YAML (Yet Another Markup Language) – die vereinfachte Auszeichnungssprache zur Datenserialisierung – verstehe ich in aller Regel auf Anhieb. REDAXO ist konsistent. Etwas, das einmal verstanden ist, kann überall angewandt werden. Ausnahmen gibt es selten und diese sind dann erstklassig dokumentiert. Noch ein Pluspunkt, den ich an REDAXO schätze. Also im Grunde sogar zwei.

Mit der guten REX-Doku fiel es mir leicht, die notwendige package.yml für mein erstes AddOn anzulegen und für meine Zwecke zu justieren. So entstand nach und nach die Datei- und Ordnerstruktur. Hierbei kam mir zugute, dass ich in den Monaten, die ich auf diesen Moment hinarbeitete, mein Datenbank-Design inklusive dem strategischen Konzept der Dateinamensschlüssel und Programmier-Grundsätze erarbeitet hatte.

Da ich mein KANBAN ebenfalls nach diesen Prinzipien aufgebaut habe, sind mir die Arbeitsabläufe und die Struktur der geplanten Indexierung in Fleisch und Blut übergegangen. Im Lernprozess erwies sich diese vorbereitende Phase als Vorteil, da ich beim Üben die ein oder andere Schwachstelle meiner Konzeption erkannt und entsprechend angepasst hatte. Also war viel meiner Aufgaben rund um die Konfiguration meines AddOns Fleißarbeit und Routine. Das allerdings bei höchster Konzentration.

Nach der Mittagspause analysierte ich meine Lieblings-AddOns und schaute mir an, wie sie ihre spezifischen Themen und Aufgaben lösen. Bis Montag Abend hatte ich die Grundstruktur aufgebaut und die ersten (noch leeren) Dateien angelegt. Pünktlich kurz vor 21 Uhr fuhr ich hoch zufrieden meinen Rechner runter. So konnte es weiter gehen!

Installation & Deinstallation
(PHP & MySQL, YORM)

Am Dienstag arbeitete ich mich in den Teil “Installation” eines REDAXO AddOn ein. Noch programmiere ich den Code außerhalb meiner lokalen REDAXO-Instanz – quasi alles Trockenübungen.

Es hat eine Weile gedauert, doch nach und nach verstand ich, dass sämtliche AddOns in der install.php vor allem das Anlegen der Datenbank-Tabellen steuern. Hier scheiden sich die Geister: reines PHP, pures MySQL und YORM – je nach Präferenz und Kenntnisstand der Entwickler (ja, alles Männer).

Mein AddOn baut direkt auf REDAXO YForm auf. Also vertiefte ich mich in Option 3. YORM erlaubt ein vereinfachtes, automatisiertes, bidirektionales, anwenderfreundliches Zuordnen von Objekt-Attributen zu YAML-Dateien. Erst einmal aufschlauen, was YORM überhaupt ist. Wohlwissend hatte ich am Morgen das Video der REDAXO Hour zu YORM angeschaut und meine Grundkenntnisse aufgefrischt.

YAKAMARA, die das AddOn YForm entwickelten, bauten schon zahlreiche Adaptionen für REX. In den letzten Monaten kamen weitere Code-Verbesserungen von der Community hinzu. Ich kann also aus dem Vollen schöpfen. Die Schwierigkeit ist eher, dass ich die umfassende Dokumentation verstehen und überblicken muss. Mit der AddOn-Programmierung bin ich auf einem Niveau angekommen, da sind nur Fortgeschrittene und Profis am Werk. Für mich als Anfängerin schwer und anspruchsvoll. Einer der Gründe übrigens, weswegen ich morgens mir zur Routine gemacht habe, die Doku einfach nur zu lesen. So prägt sich alles sukzessive ein. Auch wenn ich momentan noch oft in der Situation bin, dass ich denke “Moment, da habe ich doch irgendwo was dazu gelesen…”

Wo ein Installieren, da ein Deinstallieren. Hinsichtlich Deinstallation handhaben das die REDAXO AddOns je nach spezifischem Anwendungszweck unterschiedlich. Manche Entwickler bieten – neben dem Deaktivieren oder Löschen des AddOns gemäß REDAXO-Standard – an, die erzeugten Datensätze samt Tabellen explizit zu löschen oder zu erhalten. Dasselbe gilt für Module, Templates usw., die gegebenenfalls mit dem AddOn ausgeliefert wurden. Gleichzeitig prüfen sie, ob diese Daten anderweitig genutzt werden. Das halte ich für die Königsklasse der Programmierung und hoffe, das hinzubekommen. Es wird ein weiter Weg.

Heute, am Freitag, ist mein Status für die Installations-/Deinstallations-Routine: “In Arbeit”.

Tabellen-Sets
(JSON)

Am Mittwoch vertiefte ich mich in den Table-Manager von REDAXO YForm. Das ist ja einer der Bausteine für die Installationsroutine: Dem System sagen, welche Tabellen mit welchen Spalten in welcher Konfiguration (Text, Zahl, Datum, Pflichtfeld ja/nein, automatisiertes Hochzählen für die IDs der Datensätze usw.) angelegt werden sollen.

Über eine intuitiv zu bedienende Oberfläche kann ich mir als Admin im Backend von REDAXO die gewünschte Tabellenstruktur inklusive ihrer Einstellungen zusammenklicken. Falls Dich das näher interessiert, in der REDAXO Hour zu YForm erklärt Jan von YAKAMARA das AddOn (hoppla, auch schon zwei Jahre alt!).

Erneut erweist es sich als klever, das Datenbank-Design vorab und getrennt vom Programmier-Prozess zu erarbeiten. Ich habe das übrigens mit DBDesignerFork (Open Source, via SourceForge) umgesetzt. Das war 2019 das Programm, mit dem ich am besten zurechtkam.

YForm – beziehungsweise wie es damals noch hieß: xform – nutze ich seit 2013. Erster Anwendungsfall war die Anmeldemaske zum EnjoyWork Camp 2014. Das sind also schon fast zehn Jahre! Seither hat sich extrem viel getan. Vor allem mit REDAXO 5 und dem damit verbundenen Sprung von xform zu YForm sowie in den Iterationen von YForm wurden Bedienerfreundlichkeit und Funktionsumfang verbessert. Jetzt arbeite ich mit v4.0.2. Die größte Herausforderung bei YForm ist stets, dass es ein grundlegendes AddOn der Community ist. Mit jeder Iteration müssen viele andere AddOns, PlugIns und so weiter nachziehen. Aufgrund der gegenseitigen Abhängigkeiten ist es nicht einfach, ein stabiles System aufrecht zu erhalten und zu pflegen. Daher gehöre ich bezüglich YForm immer zu den “late adoptern”. Ich warte bis die Profis alle Probleme erkannt und idealerweise behoben haben. Ich bewundere die FOR-Entwickler, wie schnell sie diesbezüglich geworden sind.

Zurück zum Thema: Tabellen-Sets anlegen. Um mir für die Installationsroutine das JSON zu generieren, legte ich über den Table-Manager in meiner Instanz REX-DEV-TEST (siehe Aus der Werkstatt KW23) eine neue Tabelle an. Per Knopfdruck kann ich mir nun das JavaScript Object Notation ausgeben lassen. JSON ist ein kompaktes Datenformat in Textform, das den Datenaustausch zwischen Anwendungen ermöglicht. Kompakt ist hier wörtlich gemeint. Via REX YForm erhalte ich eine einzelne, sehr lange Zeile Code mit extrem vielen geschwungenen und einfachen Klammern, mit Simikolons so weit das Auge reicht und einer ganzen Reihe Textbausteinen mit Doppelpunkten dazwischen.

Um die strukturierten Daten meiner REDAXO-Tabelle also besser zu verstehen, und um idealerweise später nicht mehr den Umweg über die TEST-Umgebung mit Durchklicken vollziehen zu müssen, machte ich mich am Mittwoch auf die Suche nach einem JSON “Beautifier”, wie das im Fachjargon heißt. Dazu gibt es zahlreiche Online-Angebote. Ich griff mir aus der Liste der Suchtreffer www.jsonbeautifier.org.

Bis Mittwoch Abend war ich so weit, dass ich das Anlegen und Konfigurieren von Datenbank-Tabellen erarbeitet, verstanden und in einem ersten Anwenden des Gelernten umgesetzt hatte. Heureka!

Zwischenfazit REDAXO AddOn-Entwicklung

Halten wir fest: Binnen drei Tagen beschäftigte ich mich mit YAML, PHP, MySQL, YORM und JSON. Alles für mich neue Programmiersprachen. Die geballte Ladung also, wenn auch kein Hexenwerk. Da ich mich ohne Ablenkung durch Termine und andere Aufgaben voll darauf konzentrieren konnte, lief das gut. Ich unterstützte den Intensivlernprozess dadurch, dass ich Social Media sowie Podcasts, Videos usw. zu fachfremden Themen auf ein Minimum reduzierte. Es erfüllt mich mit Stolz, dass das diese Woche so gut gelang. Ich mache große Fortschritte. Ein schönes Gefühl.

Am Donnerstag wollte ich daran anknüpfen. Im Tutorial vom Morgen war ich darauf aufmerksam geworden, wie wichtig die PHP-Version meines Programmier-Werkzeugs ist, um sauberen Quellcode zu produzieren. Damit stelle ich sicher, dass vom Software-Development-Tool Fehler ausgeworfen werden, wenn ich veralteten (oder abgekündigten) Code verwende. Wenn man sich wie ich Software-Code von allen möglichen Quellen remixt und zu einem neuen Programm zusammenfügt, ist das ein elementares Hilfsmittel zum Wahren der Qualität. Es ist zudem effizienter. Ich erhalte nicht erst Notices oder Whoops beim Aufspielen auf den Server (der ja sowohl lokal als auch online bei mir auf PHP 7.4 läuft), sondern bereits im Verlauf des Schreibprozesses.

Natürlich wusste ich das. Doch im Eifer des Tagesgeschäfts war mir das aus dem Fokus geraten. Also prüfte ich in Adobe DreamWeaver die Grundeinstellungen. Und siehe da: die Version stand auf PHP 7.1. Nach einer kurzen Ecosia-Befragung entschloss ich mich, den Weg abzukürzen. Ich öffnete das Adobe DreamWeaver Forum und recherchierte dort, ob es Aussichten auf das Upgrade gibt. Gab es nicht. Ich fragte unschuldig nach. Die Antworten ließen nicht lang auf sich warten (tolles Forum, das war mir bis dahin nicht bewusst, wie aktiv die Community ist). Und so erfuhr ich am Donnerstag früh, dass Adobe DreamWeaver nicht weiterentwickelt. Abgekündigt ist das Programm nicht. Das scheint jedoch nur eine Frage der Zeit. Bis dahin kann man (basierend auf PHP 7.1) damit arbeiten. Angesichts der Tatsache, dass PHP 7.1 seit Januar 2020 nicht mehr unterstützt wird, ein hohes (Sicherheits)Risiko.

Für mich hieß das: eine neue Software zum Programmieren suchen. Damit begann die nächste Odyssee. Womit ebenfalls klar war: An AddOn-Entwicklung war für den Tag / die Woche nicht mehr zu denken. Mit den Steinen, die uns im Weg liegen, einfach die Route anlegen, die uns zum Erfolg führt. Auf geht’s!

Visual Studio Code

Mein Auswahlprozess

Die Entscheidung für ein geeignetes Programm zum Programmieren schiebe ich seit zirka einem halben Jahr vor mir her. Du weißt, wie es ist: In jede neue Applikation muss man sich einarbeiten. Es fängt damit an, dass man grob seine Anforderungen definiert. Dann entsprechende Software-Optionen recherchiert und die Auswahl abwägt.

Dieser Auswahlprozess wird mir enorm erleichtert durch die Open Source Communities, in denen ich unterwegs bin. Dort werden Tool-Tipps gern getauscht. Ich prüfe diese auf Basis meiner HackingEthik:

Erstes Kriterium ist das zugrundeliegende Betriebssystem – quasi das KO-Prinzip. Ich bevorzuge Systeme, die neben WIN auch auf Linux laufen – um mir den Umstieg für die Zukunft offen zu halten. Zweites Kriterium: idealerweise europäische Anbieter vor amerikanischen. Russische fallen schon von jeher raus, nicht erst seit dem Krieg in der Ukraine. Dasselbe gilt für chinesische. Japanische Angebote kommen mir selten unter und meines Wissens habe ich derzeit kein einziges in Anwendung. Drittes Kriterium: Open Source vor proprietären Applikationen. Viertes Kriterium: Lokale Installation vor Cloud-Lösungen.

Je klüger ich Programme zu einem modularen, autonomen und souveränen System zusammenbaue, desto zukunftsrobuster scheinen sie mir. Mit dieser Strategie agiere ich seit rund 35 Jahren Bits & Bytes. Schließlich als fünftes Kriterium: Das Preismodell. Idealerweise wächst es mit meinen Bedürfnissen und Ansprüchen mit. Pauschal habe ich da keine Vorgabe. In Summe muss ich ein Auge darauf haben, dass mich die Lizenzgebühren nicht zu stark belasten, mein Finanzbedarf also im Rahmen bleibt. Ich verzichte hier und heute darauf, auszurechnen, wie viel Geld ich für Lizenzen pro Jahr ausgebe. Dann würde ich weinen.

Ausgewählt für meine neue Entwicklungsumgebung habe ich nun Visual Studio Code von Microsoft. Nicht all meine Kriterien sind erfüllt. Ich bin wieder beim Software-Riesen aus den USA gelandet. Gleichwohl habe ich so viele positive Rückmeldungen und Empfehlungen für VSCode. So falsch kann meine Wahl nicht sein. Ein Pluspunkt in Sachen Wirtschaftlichkeit: Es entlastet meinen Geldbeutel. VSCode ist kostenfrei. Also kann ich beruhigt testen und mich auf das nächste Kompetenz-Niveau sukzessive hocharbeiten.

Inbetriebnahme

Um es ohne Umschweife zu sagen: Visual Studio Code ist zwar die kleine Schwester von Visual Studio, doch ein echtes Monster. Ich fühle mich stark an die Zeit erinnert, als ich von Corel Draw zur Adobe Creative Suite wechselte. 2010 war das. Damals wie heute ist mir bewusst: Als Anfängerin werde ich nur an der Oberfläche der Möglichkeiten kratzen. So viele Knöpfe!

Diese Erfahrung hilft mir, das Gefühl der Überforderung als solches, ohne Wertung anzunehmen. Bei Photoshop fing ich zunächst klein an. Mit jedem retuschierten Foto, mit jeder Zeichnung lernte ich das Programm besser kennen. Ich eignete mir mit jedem neuen Werk die Tricks und Kniffe der Profis an. Inzwischen würde ich mich durchaus selbst als Profi-Anwenderin bezeichnen. Das habe ich durchs Tun gelernt. Und durch unzählige Tutorials und sogenannte “Progress-Videos”, bei denen ich Künstler:innen beim Arbeiten über die Schulter schaute. Ähnlich erhoffe ich es mir mit VSCode.

Bevor ich ziellos drauflosklicke, ackerte ich mich durch die Einsteiger-Videos. Das ist wie Bedienungsanleitung lesen, nur in bewegten Bildern. Bei manchen Einsteigerkursen spule ich schon auch mal vor oder stelle auf 1.25-fache Geschwindigkeit. In der Regel tut eine Wiederholung der Grundlagen gut. Repetitio est mater studiorum. Einfach dem Gehirn Zeit lassen, das Fachwissen zu verinnerlichen.

Von der REDAXO Community erhielt ich – neben zahlreichen PlugIn-Tipps – eine Einstiegshilfe: Editor-Einstellungen Visual Studio Code. Diese enthält die Anleitung zum Inbetriebnehmen der REDAXO-Coding-Standards. Noch ein neues “Level” freigeschaltet!

Bis gestern Abend hatte ich mich durch sämtliche Einsteigerkurse gearbeitet, die wichtigsten PlugIns ausgewählt und rudimentär in Betrieb genommen. Es blieb Zeit, meine Erkenntnisse als Verbesserungsvorschläge für die REDAXO-Tricks zu VSCode aufzuschreiben und als Pull Request via GitHub einzureichen. Ich warte noch auf den Merge.

Zuguterletzt

Inzwischen ist es Freitag Abend. Neben der Reflexion, die Du liest, einem Spaziergang mit Pause im Park, Botengängen und anderen Kleinigkeiten ist zu heute nichts weiter zu berichten. Schade, dass die Lindenblüte vorbei ist. Sie kam mir heuer deutlich kürzer als in den vergangenen Jahren vor. Die Wiese ist etwas grüner durch den Regen. Doch täuscht das nicht über die Dürre hinweg. Wir sind Zeitzeugen des Klimawandels und das tut weh.

Rückblickend auf die Woche fallen mir noch die erfrischenden und herzlichen Gespräche ein. Sie fanden spontan statt. Ich griff einfach zum Hörer und klingelte durch. Wenn es grad passte, schwatzten wir kurz oder verabredeten uns für einen späteren Zeitpunkt. Das war schön. Danke, Ihr Lieben *Kusshand

Damit beschließe ich den Werkstattbericht. Danke fürs Lesen. Nun weitermachen ;-)

Bleib neugierig,

Hast Du eine Anregung
für Deine Aufgabe oder Frage gefunden?

Bitte teile diesen Artikel und werfe gern eine selbstgewählte Gabe in meinen virtuellen Hut. Auch ein kleiner Betrag macht den Unterschied!

Neugierig was mit Deinem Geld passiert?
Mit der Schwarmfinanzierung (einmalig via PayPal oder monatlich via steady)
wirst Du aktiver Teil der Bewegung und unternehmerischen Kooperative EnjoyWork.

Du unterstützt zudem freien Online-Journalismus und die Moderation der Community. Es ist die Basis für mich, Franziska, Impulsgeber und Vorreiter rund um Lebens- & Arbeitswelten mit Zukunft zu portraitieren, regelmäßig mit Euch, der Community, auf Zukunftsthemen draufrumzudenken und fundiert über unsere Erkenntnisse und Praxiserfahrungen zu berichten.

Mehr davon?

Beiträge “Aus der Werkstatt 2022” siehe unten oder auch in der Komplettübersicht für alle Jahre.

Aus der Werkstatt: Wochenrückblick KW24
REDAXO AddOn Indexierung (opus 1). YAML, PHP, MySQL, YORM, JSON. Tschüss Adobe DreamWeaver. Hallo Visual Studio Code.

Franziska Köppe | madiko


veröffentlicht: 2022-06-17
letztes update: 2022-06-17

Aus der Werkstatt: Wochenrückblick KW23
Zukünfte in der Personalarbeit. Barrierefreiheit. REX-DEV-TEST. Programmiersprache BS. Musik und Komposition.

Franziska Köppe | madiko


veröffentlicht: 2022-06-10
letztes update: 2022-06-10

Aus der Werkstatt: Wochenrückblick KW07
64Bit. ArtSocial22. GuidedReadingGuild Unsere Welt neu denken. CoffeeCall. Deutscher Fahrradpreis.

Franziska Köppe | madiko


veröffentlicht:
letztes update: 2022-02-22

Aus der Werkstatt: Wochenrückblick KW06
Programmieren. Aufholen im Blog. ArtSocial22. GuidedReadingGuild Unsere Welt neu denken. Abendspaziergänge

Franziska Köppe | madiko


veröffentlicht: 2022-02-11
letztes update: 2022-02-19

Aus der Werkstatt: Wochenrückblick KW05
Programmieren. Kanban mit Zeiterfassung. Grenzenloses Wachstum. Forschen zu Führungsautorität. A4F Bauwende-Büro.

Franziska Köppe | madiko


veröffentlicht: 2022-02-04
letztes update: 2022-02-17

Aus der Werkstatt: Wochenrückblick KW04
Recherche-Auftrag. Qualität in der Arbeit. DenkDuett Fortschritt. Reue & Entscheidungen

Franziska Köppe | madiko


veröffentlicht: 2022-01-30
letztes update: 2022-02-10

Aus der Werkstatt: Wochenrückblick KW03
Realexperiment Social Media. Barrierefreiheit im UX Engineering. Fahrradpreis. Gobal Goals Lab. Bildung.

Franziska Köppe | madiko


veröffentlicht: 2022-01-21
letztes update: 2022-02-10

Aus der Werkstatt: Wochenrückblick KW02
Wetten statt Planen, World Sketchnote Day, Programmieren, zitatinte

Franziska Köppe | madiko


veröffentlicht: 2022-01-14
letztes update: 2022-01-18

Aus der Werkstatt: Wochenrückblick KW01
draufrumdenken. Kanban. Denkwerkzeuge. Ambidextrie. Doppelherz. Klimaschutz. Berichterstattung

Franziska Köppe | madiko


veröffentlicht: 2022-01-07
letztes update: 2022-01-08


Ausblick & Flurfunk

Meine Berichte aus der Werkstatt erscheinen unregelmäßig. Ich strebe an, alle ein, zwei Wochen von meiner Arbeit und dem, was mich beschäftigt, zu erzählen. Meine Erkenntnisse und Einsichten zu teilen.

Klingt interessant und Du möchtest auf dem Laufenden bleiben?
Bitte trage Dich in meinen Flurfunk ein und folge mir via Social Media.

Interesse geweckt?

Klingt interessant und Du möchtest mehr erfahren? Buche direkt einen Termin mit mir und / oder werde Teil unserer Bewegung:

Ein erstes Kennenlernen

und um miteinander ins Gespräch zu kommen
am Telefon oder per Video-Konferenz
(40 min, gratis, jedoch nicht umsonst)

Dein Anliegen klären

inklusive Ad-hoc-Beratung zu Deinem Thema rund um Lebens- & Arbeitswelten mit Zukunft.
(60 … 90 min Gespräch via Telefon, BigBlueButton (SenfCall) oder zoom, den Preis bestimmst Du)

Teil der Community werden

Die Herausforderungen unserer Zeit bewältigen wir in besserer Qualität und schneller, wenn wir uns zusammentun, voneinander lernen und uns gegenseitig inspirieren.