Meine Reihe FLOSS’n’net ist in den letzten fast zwei Jahren auch mehr oder weniger der Pandemie zum Opfer gefallen; der letzte der üblicherweise jedes Quartal veröffentlichen Beiträge datiert vom April 2020 und gehört mit zu den letzten vor der “Aufholjagd” noch veröffentlichten (bzw. verfassten) Beiträgen. Entweder als Schlusspunkt oder als Neubeginn - je nachdem, wie 2022 werden wird … - möchte ich daher einen kurzen Rückblick über das vergangene Jahr (und auch das Jahr 2020) geben.
2020 endeten meine Aktivitäten - vor allem rund um Serendipity - mehr oder weniger im April. 2021 habe ich nichts an Serendipity getan, aber das eine oder andere sonst rund ums Netz. Im Einzelnen sieht das dann so aus:
Serendipity (s9y)
Das Blogsystem Serendipity werkelt auch hinter diesem Blog.
Alle Änderungen hier stammen noch aus dem April 2020.
s9y-Kern
- Es ist mir endlich gelungen, einen schwer zu reproduzierenden Fehler zu finden, der mich seit Jahren wahnsinnig gemacht hat. Ich nutze für meine Blogbeiträge recht intensiv “erweiterte Eigenschaften von Artikeln”, also entryproperties, bspw. die HTML-Meta-Description und Social-Media-Bilder - und diese “verschwanden” regelmäßig in vorbereiteten Einträgen, was einerseits ärgerlich ist und andererseits oft unbemerkt bleibt. Das ging so weit, dass ich vorbereitete Einträge (Entwürfe) nicht mehr in s9y selbst gespeichert habe, sondern extern, und sie dann erst zur Veröffentlichung dort hineinkopierte. Das wurde seit 2018 im Issue #577 getrackt, aber ohne richtige Lösung (auch weil mir die Zeit zum Debugging fehlte). Am Ende hatten wir 2019 die richtige Ecke gefunden, aber das Problem nicht wirklich behoben. Das gelang aber jetzt (endlich!), und rückblickend war das eine gute Sache, hatte ich doch im Rahmen der “Aufholjagd” 2020/2021 oft mehrere Dutzend komplett postingfertige Beiträge “gebunkert”.
Scheduled entries lose all entryproperty information on publish date. mit
Fix accidental deletion of extended properties. und
[event_trackback] Draft entries should not be saved in delayed_trackbacks
"FLOSS'n'net - Aktivitäten im Jahr 2021 (und 2020)" vollständig lesen
Während im Hintergrund an Serendipity 2.4 geschraubt wird, haben sich wieder genügend Fehlerbehebungen angesammelt, die ein Bugfix-Release rechtfertigen, so dass am vergangenen Wochenende Serendipity 2.3.5 veröffentlicht wurde.
Die Einzelheiten zu den Änderungen finden sich wie immer in der NEWS
-Datei im Verzeichnis /docs/
und (strukturierter) im Release-Announcement auf Github.
"Serendipity 2.3.5 released" vollständig lesen
Vor einigen Tagen hatte ich berichtet, wie sich mithilfe der <details>
- und <summary>
-Elemente von HTML 5 ganz leicht “ausklappbare” Erläuterungen - nur mit HTML und ggf. CSS, ohne Javascript - erzeugen lassen. Danach ist mir aufgefallen, dass wir - also vor allem vermutlich yellowled - das in Serendipity auch schon nutzen: im 2k11-Theme wird damit im Blog die einblendbare “Vorschau” der Trackback realisiert, und im Backend findet derselbe Mechanismus bei der Einblendung weiterer Informationen in den Plugin-Boxen Anwendung.
In einem Kommentar zu meinen Blogeintrag hatte Beat dann vorgeschlagen, statt der Screenshots doch lieber ein Live-Beispiel im Blog zu zeigen. Das wollte ich dann “mal eben schnell” nachholen - und natürlich ging das dann nicht “mal eben”, und nicht richtig schnell, so dass ich daran dann länger geknobelt habe. Mittlerweile tut es aber.
"Der Teufel steckt im Detail" vollständig lesen
Die große Zeit der Blogs als primäres, ja nahezu einziges Medium zum Teilen und Veröffentlichen der eigenen Gedanken ist seit Jahren vorüber; die sog. “Blogosphäre” vereinzelt. Das schließt nicht aus, dass es weiter große, vor allem kommerzielle bzw. kommerzialisierte Blogs mit tausenden Lesern und mehreren Beiträgen täglich gibt, aber der durchschnittliche Internetnutzer denkt vermutlich nicht an ein Blog, wenn er sich online äußern will. Diesen Blog haben vielmehr die sog. “Sozialen Medien” (social media), also bspw. Twitter, Facebook und Instagram, eingenommen. Und man vernetzt sich heutzutage auch eher dort als über Kommentare und Trackbacks in den eigenen Blogs.
Nicht nur Twitter mit seiner Beschränkung auf 280 Zeichen, auch Facebook ist per se aber wenig geeignet zur Veröffentlichung auch nur kürzerer, geschweige denn mittlerer oder gar langer Texte in der eigenen Timeline bzw. dem eigenen Profil; das beginnt schon mit dem Editor, der als Stil- und Gliederungselement nur Zeilenschaltungen (also Leerzeichen) kennt und nicht einmal einfachste Hervorhebungen (kursiv, fett) oder gar Überschriften ermöglicht. Diese technischen Unzulänglichkeiten sind aber gar nicht der entscheidende Punkt; auch ohne sie spräche vieles dafür, seine eigenen Inhalte auch selbst zu kontrollieren und nicht vom freien, weltweit verfügbaren und vernetzten World Wide Web einen großen Schritt zurück in die Welt der Onlinedienste der 90er Jahre zu machen, in der Inhalte nur innerhalb der jeweiligen Dienste (“Silos”) verfügbar sind. Und es mag zwar unwahrscheinlich sein, dass Facebook demnächst die Pforten schließt, aber die Welt dreht sich weiter und Internetkonzerne kommen und gehen … Deshalb hilft es auch nur bedingt, dass Facebook mit den wenig bekannten und genutzten Notizen (“Notes”) durchaus die Möglichkeit bietet, blog-artige Beiträge zu veröffentlichen, mit Überschriften, Aufzählungen, Hervorhebungen, Links und sogar einem Bild im Kopf der Seite.
"Blogbeiträge in sozialen Medien teilen" vollständig lesen
Das neue Jahr hat im Prinzip begonnen, wie das alte geendet hat: viel zu tun, wenig Zeit, insbesondere für “freie Software und das Netz”. Aber wie ich am Anfang des letzten Quartals etwas Zeit für Serendipity gefunden hatte, so ging es mir nun am Ende diesen Quartals, rund um das - ausgefallene bzw. virtualisierte - Serendipity-Camp: zwei Releases, etliche Bugfixes und auch ein paar Erweiterungen, und eine ganze Menge Änderungen an der Infrastruktur.
Serendipity (s9y)
Das Blogsystem Serendipity werkelt auch hinter diesem Blog.
s9y-Kern
In der Mediendatenbank fehlten einige Sicherheitsnetze rund um das Umbenennen von Dateien - so führte das “Umbenennen” einer Datei in eine bereits existente Datei dazu, dass beide Dateien verschwanden, aus der Datenbank und von der Platte. Unschön, aber jetzt behoben.
Prevent renaming ML object into existing file.
Beim Umbenennen von Mediendateien ohne Endung gab es auch noch einige Probleme; zum einen “verschwanden” diese direkt nach dem Umbenennen aus der Datenbank, und - nur unter Windows - gab es zudem die Möglichkeit, einer solchen Datei eine “gefährliche” Endung wie .php
zu verpassen und sie damit ausführbar zu machen.
Fix for “disappearing” media files after renaming.
Fix RCE vulnerability on Windows.
"FLOSS'n'net - Aktivitäten im 1. Quartal 2020" vollständig lesen
Was, schon wieder eine neue Serendipity-Version? Gab es nicht erst vor ein paar Tagen ein neues Release? - Doch, aber es hat sich ein (zumindest grundsätzlich) sicherheitsrelevanter Fehler gefunden, und deshalb gibt es das zweite Release binnen weniger Tage.
"Serendipity 2.3.4 released" vollständig lesen
Für das vergangene Wochenende war das sechste - für mich: das fünfte - Serendipity-Camp (2020) im Linuxhotel in Essen geplant: Zimmer und Fahrkarten waren gebucht, wir haben uns alle schon darauf gefreut und es hatten sich sogar zwei Neuzugänge angekündigt.
Und dann wurde SARS-CoV-2 in Deutschland ein Thema. Deshalb haben wir bereits in der KW 11 (vor den meisten Einschränkungen durch die Ordnungsbehörden und den Verordnungsgeber) entschieden, die Veranstaltung abzusagen und möglicherweise im Spätjahr nachzuholen, je nachdem, wie sich die Situation bis dahin darstellt. Stattdessen haben wir uns am Samstag an einer virtuellen Variante des Camps versucht.
"Das virtuelle #s9ycamp2020" vollständig lesen
In den letzten Monaten war es rund um Serendipity eher still; vor allem im November und Dezember haben aber Stephan Brunker und Lead Developer Garvin etliche Änderungen für die kommende neue Version 2.4 eingepflegt. Dabei haben sich auch einige Bugfixes angesammelt, und ein paar besonders ärgerliche Fehler haben wir vor dem Patch-Release 2.3.3 noch gezielt behoben.
Die Einzelheiten finden sich wie immer in der NEWS
-Datei im Verzeichnis /docs/
und (strukturierter) in dem Release-Announcement auf Github.
"Serendipity 2.3.3 released" vollständig lesen
Im letzten Quartal des vergangenen Jahres hatte ich sehr wenig Zeit; daher bin ich auch nur ganz zu Anfang, im Oktober, dazu gekommen, etwas rund um FLOSS und das Netz zu tun, und zwar wie zuvor auch vor allem an Serendipity.
Serendipity (s9y)
Das Blogsystem Serendipity werkelt auch hinter diesem Blog.
s9y-Kern
- Ich habe die Ursache eines lange bekannten Problems gefunden, nämlich der “Verstümmelung” automatisch erzeugter E-Mails durch unpassende Zeilenumbrüche mitten im Text. Erschwert wurde das Debugging dadurch, dass dieses Problem nicht überall auftrat und in meinen Testinstallationen nicht reproduzierbar war. Es stellte sich heraus, dass das Verhalten MTA-spezifisch war, d.h. nur auftrat, wenn qmail als Mailserver Verwendung fand. Ursächlich ist das Verhalten der
imap_8bit()
-Funktion von PHP, auf die s9y - soweit vorhanden - zurückgreift, um den Mailinhalt als quoted-printable zu kodieren. Dabei müssen Zeilenumbrüche eingefügt werden, wofür imap_8bit()
die Zeichenfolge \r\n
verwendet, also “carriage return” und “line feed”; diese Markierung des Zeilenendes ist unter Windows üblich, wohingegen unter Unix üblicherweise nur \n
verwendet wird, und ist auch für die Mailübertragung per SMTP vorgeschrieben. Üblicherweise wird Mail auf einem Unix-Server von PHP aber nicht direkt per SMTP übertragen, sondern an einen Mailserver übergeben, so dass \r\n
als Zeilenumbruch nicht zwingend ist. Den meisten Mailservern (so Postfix und Exim) ist das egal; qmail aber beharrt darauf, dass bei ihm eingelieferte Mails als Zeilenende nur mit \n
markiert sein dürfen und ersetzt jedes \n
für die SMTP-Übertragung durch \r\n
. Wurde die Mail bereits mit \r\n
eingeliefert, macht qmail dementsprechend daraus \r\r\n
, und genau das ist die Quelle der “überzähligen” Zeilenumbrüche (nach der Dekodierung von quoted-printable). An qmail wird sich nichts ändern - wenn jemand das Programm überhaupt noch pflegt -, denn der Autor hält sein Vorgehen für richtig. Ich habe mich daher entschlossen, die Mailerzeugung durch s9y zu ändern; das mag zu Problemen (fehlenden Zeilenumbrüchen) führen, wenn die Mail aus PHP direkt per SMTP übermittelt wird, aber das kommt eigentlich nur unter Windows-Servern vor, und es gibt mit Sicherheit mehr Unix-Server, die qmail verwenden, als Windows-Server, auf denen s9y läuft. In jedem Fall kann man das Problem durch Setzen von serendipity['forceBase64']=true
in serendipity_config_local.inc.php
umgehen; dann nämlich wird base64 kodiert, und dabei tritt das Problem nicht auf.
Fix mangling of auto-generated mails.
"FLOSS'n'net - Aktivitäten im 4. Quartal 2019" vollständig lesen
Vor etwas mehr als 15 Jahren, am 26.12.2004, habe ich mein Blog - das bereits im Juni 2018 seinen 15. Geburtstag hatte - von Sunlog auf Serendipity umgestellt und mit einem selbstgefrickelten Script die vorhandenen Einträge und Kommentare übernommen und für eine (im Grundsatz weiterhin funktionierende!) Umleitung von der alten URL auf die neue gesorgt.
Neuneinhalb Jahre später habe ich das Blog dann beim Relaunch 2014 frisch aufgesetzt und ausschließlich Beiträge (mit Kategorien und Tags) und Kommentare in die neue Datenbank kopiert (und bei den Beiträgen gar kräftig ausgedünnt). Bis dahin und insbesondere seitdem tut Serendipity hier (meist) zuverlässig sein Werk (die Ausnahmen über die Jahre vor 2014 waren allesamt Artefakte der Erstinstallation und der Frickelei bei der Konvertierung) und ist mit meinem Blog gewachsen und erwachsen geworden.
Ich hoffe, dass Serendipity mich auch noch weitere 15 Jahre begleiten wird und bin bereit, das meinige dafür zu tun.
"15 Jahre Serendipity" vollständig lesen
Im s9y-Forum gibt es seit kurzer Zeit wieder einen Showcase-Bereich: ein Unterforum, um dort das eigene s9y-Blog vorzustellen und Anregungen und Ideen für das Bloggen mit s9y zu sammeln - sei es inhaltlich, oder optisch, oder technisch … oder auch einfach “nur” Motivation.
Zugleich bietet das natürlich die Gelegenheit, vielleicht ein paar neue, interessante Blogs kennenzulernen und den eigenen Horizont - und die Blogroll - zu erweitern. Es wäre schön, wenn das keine reine Insider-Veranstaltung von Entwicklern und Foren-Regulars bliebe. Traut euch!
"Zeigt her eure Blogs" vollständig lesen
Nach dem Release von Serendipity 2.3.0 im August hat eine erfreuliche Produktivität eingesetzt und angehalten, so dass bereits 10 Tage später das erste Bugfix-Release veröffentlicht werden konnte und nunmehr, nach nicht ganz zwei weiteren Monaten, bereits das nächste Bugfix-Release 2.3.2 folgt.
"Serendipity 2.3.2 released" vollständig lesen
Im dritten Quartal 2019 fand ich rund um meinen Urlaub ungewöhnlich viel Zeit und Motivation insbesondere für die Arbeit an Serendipity, so dass die Liste meiner FLOSS-Aktivitäten diesmal länger (und der hinter den einzelnen Punkten stehende Aufwand größer) geworden ist als üblich:
Serendipity (s9y)
Das Blogsystem Serendipity werkelt auch hinter diesem Blog.
s9y-Kern
Als erstes habe ich mir das Plugin-System von s9y vorgenommen und der Plugin-Liste in der Admin-Oberfläche Links zu den Plugin-Informationen in unserem Repository Spartacus hinzugefügt. Das dauerte etwas länger, weil ich dabei über einen Fehler gestolpert bin, der dafür sorgte, dass Datenbankabfragen für Plugin-Listen falsch gecached werden - nämlich auch dann, wenn eigentlich verschiedene Plugin-Typen abgefragt werden sollen.
Danach kam dann der schon länger bestehende, aber bisher nicht umgesetzte Wunsch nach einem Update-Hinweis für Plugins an die Reihe. Nach der technischen Umsetzung fehlt noch ein wenig optische Politur …
Add plugin update notifications.
Nach unserem 2.3.0-Release fiel mir auf, dass das Löschen mehrerer Dateien in der Mediendatenbank nicht mehr funktionierte. Das habe ich behoben, und auch dem Bestätigungsdialog für die Löschung einzelner Dateien ein zuvor fehlendes Satzzeichen im Popup spendiert.
Fix media library (mass) delete, i18n.
ML delete file: add “?” to conformation question.
Nachdem im aktuellen Release das Blogarchiv standardmäßig so aufgebaut ist, dass die ältesten Beiträge sich auf Seite 1 finden und die aktuellen Beiträge auf der letzten Seite dargestellt werden (statt wie zuvor umgekehrt - was den Vorteil hat, dass sich die Archivseiten nicht regelmäßig durch “nach unten rutschende” Beiträge ändern und daher besser von Suchmaschinen indiziert werden können), zeigte sich ein in diesem Zusammenhang bestehender Fehler bei der in einigen Themes vorhandenen Paginierung der Archivseiten, den ich behoben habe - sogar direkt zweimal, so dass der Fehler dann am Ende im Release 2.3.1 doch wieder enthalten ist. Mit dem nächsten Release wird er aber endgültig behoben sein.
Fix core pagination for “stable archives”.
Fix pagination for “stable archives” in themes.
Fix prev/next page links for stable archives.
Revert “Fix pagination for “stable archives” in themes.”
Schließlich habe ich mich noch ein wenig um die deutsche Sprachversion gekümmert.
Add i18n and German translations.
"FLOSS'n'net - Aktivitäten im 3. Quartal 2019" vollständig lesen
Nach Null kommt Eins, und nach Serendipity 2.3.0 folgt das erste Patch-Release Serendipity 2.3.1, das primär die in meinem letzten Blogbeitrag genannten Fehler behebt.
Zwei Probleme sind jetzt noch offen: zum einen ein - offensichtlich schon immer bestehendes - Problem beim Upload von Bildern (oder allgemein Medien) mit (aufgrund von Tippfehlern versehentlich) zu langer Dateierweiterung, und zum anderen ein Problem beim Upgrade von Serendipity 2.1.x nach Serendipity 2.3.x aus dem Blog heraus (mit dem empfehlenswerten Plugin serendipity_event_autoupdate
). Letzteres funktioniert nämlich im Moment wegen einer Änderung bei der Berechnung der Datei-Prüfsummen zwischen den beiden Versionslinien nicht.
Für letzteres ist ein Fix für das Plugin in Arbeit, ersteres wird dann vorausichtlich mit dem nächsten Patch-Release (2.3.2) eine Lösung finden.
"Serendipity 2.3.1 released" vollständig lesen
Am vorvergangenen Wochenende wurde die neue Feature-Version von Serendipity releast, und damit beginnt die Arbeit an der nächsten Version, aber auch an den im Release noch vorhandenen kleineren Fehlern.
Update-Benachrichtigungen und Links für Plugins
Motiviert durch das Release habe ich mich mit einigen bereits länger bestehenden Wünschen beschäftigt und einige Ergänzungen rund um die Plugins - ein wichtiger Teil von Serendipity - eingebaut. Weil die im Blog selbst vorhandenen Informationen (gerade bei den bereits installierten Plugins) eher spärlich sind, ziert jetzt jedes (extern aus dem Plugin-Repository Spartacus installierte) Plugin ein Link nach eben dort, denn dort findet sich eine Vielzahl von Informationen zu allen Plugins. Außerdem kann Serendipity jetzt nicht nur auf Updates des Blogsystems selbst, sondern auch auf anstehende Plugin-Updates hinweisen. Die optische Darstellung braucht noch eine ganze Menge Liebe (ich setze da auf unseren Frontend-Spezialisten), aber bis zum nächsten Feature-Release ist ja nun auch noch einige Zeit hin, und der Code ist jetzt immerhin da (und kann verbessert werden).
"Serendipity: Weiterentwicklung, Bugfixes und Übersetzungen" vollständig lesen