<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Netz - Rettung - Recht (Artikel mit Tag flossnet)</title>
    <link>https://netz-rettung-recht.de/</link>
    <description>Netzleben, Rettungs- und Rechtswesen</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 2.5.0 - http://www.s9y.org/</generator>
    <pubDate>Fri, 31 Dec 2021 05:29:12 GMT</pubDate>

    <image>
    <url>https://netz-rettung-recht.de/templates/2k11/img/s9y_banner_small.png</url>
    <title>RSS: Netz - Rettung - Recht - Netzleben, Rettungs- und Rechtswesen</title>
    <link>https://netz-rettung-recht.de/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>FLOSS'n'net - Aktivitäten im Jahr 2021 (und 2020)</title>
    <link>https://netz-rettung-recht.de/archives/2374-FLOSSnnet-Aktivitaeten-im-Jahr-2021-und-2020.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2374-FLOSSnnet-Aktivitaeten-im-Jahr-2021-und-2020.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2374</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2374</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Meine Reihe &lt;em&gt;FLOSS&amp;#8217;n&amp;#8217;net&lt;/em&gt; 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 &amp;#8220;Aufholjagd&amp;#8221; noch veröffentlichten (bzw. verfassten) Beiträgen. Entweder als Schlusspunkt oder als Neubeginn - je nachdem, wie 2022 werden wird &amp;#8230; - möchte ich daher einen kurzen Rückblick über das vergangene Jahr (und auch das Jahr 2020) geben.&lt;/p&gt;

&lt;p&gt;2020 endeten meine Aktivitäten - vor allem rund um &lt;em&gt;Serendipity&lt;/em&gt; - mehr oder weniger im April. 2021 habe ich nichts an &lt;em&gt;Serendipity&lt;/em&gt; getan, aber das eine oder andere sonst rund ums Netz. Im Einzelnen sieht das dann so aus:&lt;/p&gt;

&lt;h3 id=&quot;serendipity-s9y-&quot;&gt;Serendipity (&lt;em&gt;s9y&lt;/em&gt;)&lt;/h3&gt;

&lt;p&gt;Das Blogsystem &lt;a href=&quot;https://docs.s9y.org/&quot; title=&quot;Serendipity -  A reliable, secure and extensible PHP blog | Serendipity Blog System&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;&lt;/a&gt; werkelt auch hinter diesem Blog.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alle Änderungen hier stammen noch aus dem April 2020.&lt;/strong&gt;&lt;/p&gt;

&lt;h4 id=&quot;-s9y-kern&quot;&gt;&lt;em&gt;s9y&lt;/em&gt;-Kern&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;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 &amp;#8220;erweiterte Eigenschaften von Artikeln&amp;#8221;, also &lt;em&gt;entryproperties&lt;/em&gt;, bspw. die HTML-Meta-Description und Social-Media-Bilder - und diese &amp;#8220;verschwanden&amp;#8221; 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 &lt;em&gt;s9y&lt;/em&gt; selbst gespeichert habe, sondern extern, und sie dann erst zur Veröffentlichung dort hineinkopierte. Das wurde seit 2018 im &lt;a href=&quot;https://github.com/s9y/Serendipity/issues/577&quot; title=&quot;Meta-Description gets &amp;quot;lost&amp;quot; constantly · Issue #577 · s9y/Serendipity · GitHub&quot;&gt;Issue #577&lt;/a&gt; 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 &amp;#8220;Aufholjagd&amp;#8221; 2020/2021 oft mehrere Dutzend komplett postingfertige Beiträge &amp;#8220;gebunkert&amp;#8221;.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/issues/688&quot; title=&quot;Scheduled entries lose all entryproperty information on publish date · Issue #688 · s9y/Serendipity · GitHub&quot;&gt;Scheduled entries lose all entryproperty information on publish date.&lt;/a&gt; mit&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/695&quot; title=&quot;Fix accidental deletion of extended properties. by th-h · Pull Request #695 · s9y/Serendipity · GitHub&quot;&gt;Fix accidental deletion of extended properties.&lt;/a&gt; und&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/issues/696&quot; title=&quot;[event_trackback] Draft entries should not be saved in delayed_trackbacks · Issue #696 · s9y/Serendipity · GitHub&quot;&gt;[event_trackback] Draft entries should not be saved in delayed_trackbacks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Eine mit &lt;em&gt;s9y&lt;/em&gt; 2.3.3 releaste Änderung hatte ein Designproblem im Code aufgedeckt, das zu Fehlern im Plugin &lt;em&gt;History&lt;/em&gt; führte, einem der wenigen mit &lt;em&gt;s9y&lt;/em&gt; gebundleten Plugins.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/694&quot; title=&quot;Fix SQL error in plugin_history. by th-h · Pull Request #694 · s9y/Serendipity · GitHub&quot;&gt;[plugin_history] Fix SQL error in plugin_history.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;plugins&quot;&gt;Plugins&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Der Bugfix für die &lt;em&gt;entryproperties&lt;/em&gt; erforderte auch Änderungen in den entsprechenden Plugins:&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/113&quot; title=&quot;Fix accidental deletion of extended properties. by th-h · Pull Request #113 · s9y/additional_plugins · GitHub&quot;&gt;[event_metadesc] [event_social] Fix accidental deletion of extended properties.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/commit/a6d340cdf2ae64da4eaaef364d08104c28aa3467&quot; title=&quot;Fix draft check. · s9y/additional_plugins@a6d340c · GitHub&quot;&gt;[event_trackback] Fix draft check.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Das Plugin, das &lt;em&gt;Sitemaps&lt;/em&gt; erstellt, sollte in diese Maps keine Übersichtsseiten für getaggte Artikel aufnehmen, die gar nicht existieren (weil das entsprechende Tag zwar vergeben wurde, aber nur für Entwürfe).&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/commit/b946b3daa2ad18bc1ef61149469f1031f4b2fd9b&quot; title=&quot;[sitemap] Don&amp;#39;t add tag pages with draft tags. · s9y/additional_plugins@b946b3d · GitHub&quot;&gt;[event_sitemap] Don&amp;#8217;t add tag pages with draft tags.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;releases&quot;&gt;Releases&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Ich habe alle geeigneten Änderungen aus der aktuellen Entwicklungsversion in den 2.3er-Zweig übernommen und dann &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.3.5&quot; title=&quot;Release Serendipity 2.3.5 · s9y/Serendipity · GitHub&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt; 2.3.5&lt;/a&gt; releast sowie die Release-Notes, einen Blog- und einen Forenbeitrag verfasst.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;usenet-und-co-&quot;&gt;Usenet und Co.&lt;/h3&gt;

&lt;p&gt;Zum Jahresende 2021 hin habe ich eine notwendige Änderung der &lt;strong&gt;Einrichtungsregeln&lt;/strong&gt; für Newsgroups im deutschsprachigen Usenet vorgeschlagen, die Abstimmung dazu durchgeführt und sie umgesetzt.&lt;/p&gt;

&lt;h4 id=&quot;faqs&quot;&gt;FAQs&lt;/h4&gt;

&lt;p&gt;Ich habe 2020 und 2021 die Pflege weiterer FAQs und vergleichbarer Text übernommen und dann auch regelmäßig eine ganze Reihe Änderungen eingearbeitet:&lt;/p&gt;

&lt;h5 id=&quot;2020&quot;&gt;2020&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://netz-rettung-recht.de/archives/2225-UEbernahme-der-Newsreader-FAQ.html&quot; title=&quot;Übernahme der Newsreader-FAQ | Netz - Rettung - Recht&quot;&gt;Übernahme der Newsreader-FAQ&lt;/a&gt;&lt;br /&gt;
(verfügbar in einem &lt;a href=&quot;https://code.th-h.de/?p=faqs/newsreader-faq.git&quot; title=&quot;301 Moved Permanently&quot;&gt;Git-Repository&lt;/a&gt; auch mit allen alten Fassungen seit 2000)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://th-h.de/about/changelog/#changes-2020-09-02&quot; title=&quot;Aktuelle Änderungen | th-h.de&quot;&gt;Übernahme der Newsserverliste&lt;/a&gt;&lt;br /&gt;
(verfügbar in einem &lt;a href=&quot;https://code.th-h.de/?p=faqs/newsserverliste.git&quot; title=&quot;301 Moved Permanently&quot;&gt;Git-Repository&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;2021&quot;&gt;2021&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://netz-rettung-recht.de/archives/2373-UEbernahme-der-Einrichtungsregeln.html&quot; title=&quot;&quot;&gt;Übernahme der Einrichtungsregeln&lt;/a&gt;&lt;br /&gt;
(verfügbar in einem &lt;a href=&quot;https://code.th-h.de/?p=faqs/einrichtung.git&quot; title=&quot;301 Moved Permanently&quot;&gt;Git-Repository&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;moderation-von-de-alt-netdigest-&quot;&gt;Moderation von &lt;em&gt;de.alt.netdigest&lt;/em&gt;&lt;/h4&gt;

&lt;p&gt;Zum 01.07.2021 habe ich die Moderation der Newsgroup &lt;em&gt;de.alt.netdigest&lt;/em&gt; übernommen.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://netz-rettung-recht.de/archives/2314-Moderation-von-de.alt.netdigest.html&quot; title=&quot;&quot;&gt;Moderation von de.alt.netdigest&lt;/a&gt; und &lt;a href=&quot;https://netz-rettung-recht.de/archives/2315-de.alt.netdigest-Hinter-den-Kulissen.html&quot; title=&quot;&quot;&gt;de.alt.netdigest: Hinter den Kulissen&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://netz-rettung-recht.de/archives/2316-Webseiten-fuer-de.alt.netdigest.html&quot; title=&quot;Webseiten für de.alt.netdigest | Netz - Rettung - Recht&quot;&gt;Webseiten für de.alt.netdigest&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;sonstiges&quot;&gt;Sonstiges&lt;/h4&gt;

&lt;p&gt;Seit April 2021 bin ich einer der &lt;a href=&quot;https://netz-rettung-recht.de/archives/2308-Machs-Dir-doch-selbst!.html&quot; title=&quot;&quot;&gt;Newsmaster von &lt;em&gt;bawue.net&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;relaunch-von-webseiten&quot;&gt;Relaunch von Webseiten&lt;/h3&gt;

&lt;p&gt;Nicht nur für die Newsgroup &lt;em&gt;de.alt.netdigest&lt;/em&gt; habe ich Webseiten erstellt, sondern auch die Webseiten (und die damit verbundene Hintergrunddtechnik) meines Newsservers und von &lt;em&gt;szaf.org&lt;/em&gt; komplett überarbeitet und erneuert.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://netz-rettung-recht.de/archives/2305-Relaunch-der-Webseiten-von-news.szaf.org.html&quot; title=&quot;&quot;&gt;Relaunch der Webseiten von &lt;em&gt;news.szaf.org&lt;/em&gt;&lt;/a&gt; und &lt;a href=&quot;https://netz-rettung-recht.de/archives/2306-news.szaf.org-Relaunch-abgeschlossen.html&quot; title=&quot;&quot;&gt;&lt;em&gt;news.szaf.org&lt;/em&gt;: Relaunch abgeschlossen&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://netz-rettung-recht.de/archives/2307-Relaunch-der-Webseiten-von-szaf.org.html&quot; title=&quot;&quot;&gt;Relaunch der Webseiten von &lt;em&gt;szaf.org&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vorherige Aktivitäten-Übersicht: &lt;a href=&quot;https://netz-rettung-recht.de/archives/2235-FLOSSnnet-Aktivitaeten-im-1.-Quartal-2020.html&quot; title=&quot;&quot;&gt;I/2020&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wir werden sehen, ob und wie es 2022 weitergeht &amp;#8230;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Titelbild © momius - stock.adobe.com&lt;/em&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/b1e76201e1524e5cbe6a718ff9b7afcc&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Thu, 30 Dec 2021 06:20:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2374-guid.html</guid>
    <category>flossnet</category>
<category>s9y</category>
<category>usenet</category>
<category>webdesign</category>

</item>
<item>
    <title>FLOSS'n'net - Aktivitäten im 1. Quartal 2020</title>
    <link>https://netz-rettung-recht.de/archives/2235-FLOSSnnet-Aktivitaeten-im-1.-Quartal-2020.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2235-FLOSSnnet-Aktivitaeten-im-1.-Quartal-2020.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2235</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2235</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Das neue Jahr hat im Prinzip begonnen, wie das alte geendet hat: viel zu tun, wenig Zeit, insbesondere für &amp;#8220;freie Software und das Netz&amp;#8221;. Aber wie ich am Anfang des letzten Quartals etwas Zeit für &lt;em&gt;Serendipity&lt;/em&gt; gefunden hatte, so ging es mir nun am Ende diesen Quartals, rund um das - ausgefallene bzw. &lt;a href=&quot;https://netz-rettung-recht.de/archives/2228-Das-virtuelle-s9ycamp2020.html&quot; title=&quot;&quot;&gt;virtualisierte&lt;/a&gt; - &lt;em&gt;Serendipity&lt;/em&gt;-Camp: zwei Releases, etliche Bugfixes und auch ein paar Erweiterungen, und eine ganze Menge Änderungen an der Infrastruktur.&lt;/p&gt;

&lt;h3 id=&quot;serendipity-s9y-&quot;&gt;Serendipity (&lt;em&gt;s9y&lt;/em&gt;)&lt;/h3&gt;

&lt;p&gt;Das Blogsystem &lt;a href=&quot;https://docs.s9y.org/&quot; title=&quot;Serendipity -  A reliable, secure and extensible PHP blog | Serendipity Blog System&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;&lt;/a&gt; werkelt auch hinter diesem Blog.&lt;/p&gt;

&lt;h4 id=&quot;-s9y-kern&quot;&gt;&lt;em&gt;s9y&lt;/em&gt;-Kern&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In der Mediendatenbank fehlten einige Sicherheitsnetze rund um das Umbenennen von Dateien - so führte das &amp;#8220;Umbenennen&amp;#8221; einer Datei in eine bereits existente Datei dazu, dass &lt;em&gt;beide&lt;/em&gt; Dateien verschwanden, aus der Datenbank und von der Platte. Unschön, aber jetzt behoben.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/677&quot; title=&quot;Prevent renaming ML object into existing file. by th-h · Pull Request #677 · s9y/Serendipity · GitHub&quot;&gt;Prevent renaming ML object into existing file.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Beim Umbenennen von Mediendateien ohne Endung gab es auch noch einige Probleme; zum einen &amp;#8220;verschwanden&amp;#8221; diese direkt nach dem Umbenennen aus der Datenbank, und - nur unter Windows - gab es zudem die Möglichkeit, einer solchen Datei eine &amp;#8220;gefährliche&amp;#8221; Endung wie &lt;code&gt;.php&lt;/code&gt; zu verpassen und sie damit ausführbar zu machen.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/364dda85955e2fcbf1957c3f3151eda050e8b735&quot; title=&quot;Fix for &amp;quot;disappearing&amp;quot; media files after renaming. · s9y/Serendipity@364dda8 · GitHub&quot;&gt;Fix for &amp;#8220;disappearing&amp;#8221; media files after renaming.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/b0971b67e97a38148e44f1054f83d4948489377b&quot; title=&quot;Fix RCE vulnerability on Windows. · s9y/Serendipity@b0971b6 · GitHub&quot;&gt;Fix RCE vulnerability on Windows.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manche Leute kamen auf die Idee, Mediendateien mit seltsamen Endungen wie &lt;code&gt;.jpg12345&lt;/code&gt; hochzuladen; das führt nicht nur später zu Problemen bei der Anzeige dieser &amp;#8220;Bilder&amp;#8221;, sondern passt auch nicht in das entsprechende, auf fünf Zeichen beschränkte Feld in der Datenbank. Unter &lt;em&gt;mySQL&lt;/em&gt; macht das nicht so viel, soweit ich sehe - die Datenbank schneidet den Rest einfach ab. Unter &lt;em&gt;PostgreSQL&lt;/em&gt; führt das aber wohl zu einer Fehlermeldung. Also kürzt &lt;em&gt;Serendipity&lt;/em&gt; die Endung jetzt selbst auf maximal fünf Zeichen, und zwar mit einer hochkomplexen &lt;em&gt;regular expression&lt;/em&gt;, die aber nach meinem besten Wissen ihren Zweck tut.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/4ee1066b8996bada7f2e0beea5e8474ccb579ba2&quot; title=&quot;Truncate extension of media items to 5 chars. · s9y/Serendipity@4ee1066 · GitHub&quot;&gt;Truncate extension of media items to 5 chars.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Außerdem mangelte es der Mediendatenbank - gerade beim Umbenennen - auch an Fehlermeldungen.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/0562dc0ca611121d7af5c948019fa70595b0fa42&quot; title=&quot;ML: Add error message when renaming fails. · s9y/Serendipity@0562dc0 · GitHub&quot;&gt;ML: Add error messages&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Das mit &lt;em&gt;Serendipity&lt;/em&gt; zusammen ausgelieferte und damit organisatorisch zum Kern gehörende Plugin &lt;code&gt;serendipity_plugin_comments&lt;/code&gt;, das die neuesten Kommentare in der Seitenleiste anzeigen kann, zerhackte die Einträge sehr unschön mitten im Wort. Nicht nett anzusehen - die Ursache dafür war Code, der überlange Zeilen in den Kommentaren (wenn nötig auch mitten im Wort) trennte, damit überlange Worte nicht das Layout zerstören können. Abgesehen davon, dass man das mittlerweile auch durch CSS lösen kann, ergab sich das Problem, dass PHP zwei Funktionen für den Zeilenumbruch bereitstellt: eine davon (&lt;code&gt;wordwrap()&lt;/code&gt;) kann den Text (soweit möglich) nur an Wortgrenzen trennen, kann aber nicht mit Multibyte-Zeichen umgehen; bei der anderen (&lt;code&gt;mb_strimwidth()&lt;/code&gt;) ist es umgekehrt - sie ist multibyte-sicher (daher das &amp;#8220;mb&amp;#8221; im Funktionsnamen), kann aber Zeichenketten nur nach einer bestimmten Zeichenzahl trennen, aber nicht kurz vorher vor dem Beginn des neuen Wortes. Längeres Googeln brachte aber ein Rezept, das Ergebnis von &lt;code&gt;wordwrap()&lt;/code&gt; mit multibyte-sicheren Funktionen zu erzeugen, und nach längeren Tests habe ich das dann implementiert.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/680&quot; title=&quot;[plugin_comments] Fix wordwrap at wound boundaries. by th-h · Pull Request #680 · s9y/Serendipity · GitHub&quot;&gt;[plugin_comments] Fix wordwrap at word boundaries.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Das gleiche - aber mithilfe von CSS - habe ich dann auch für die Kommentaranzeige im &lt;em&gt;Dashboard&lt;/em&gt;, der Startseite des &lt;em&gt;Serendipity&lt;/em&gt;-Backends, umgesetzt.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/fd8dcd38828b4bcea090a085601e67b5f29a8b2f&quot; title=&quot;Wordwrap overly long words in comments via CSS. · s9y/Serendipity@fd8dcd3 · GitHub&quot;&gt;Wordwrap overly long words in comments via CSS.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auch den Plugin-Manager habe ich bepuschelt. Der Plugin-Liste die Quelle des Plugins hinzuzufügen (&lt;em&gt;Spartacus&lt;/em&gt;, das Plugin-Repository von &lt;em&gt;Serendipity&lt;/em&gt;, oder mit dem &lt;em&gt;Serendipity&lt;/em&gt;-Kern zusammen ausgeliefert, oder rein lokal installiert - bzw. aus einer der anderen Quellen mittlerweile entfernt und damit faktisch nicht mehr unterstützt) war dabei die eher einfache Übung.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/9155a7b8a4a80d9845579a741a7736890e36bae6&quot; title=&quot;Add plugin source to list of plugins. · s9y/Serendipity@9155a7b · GitHub&quot;&gt;Add plugin source to list of plugins.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sehr viel schwieriger war es, herauszubekommen, warum &lt;em&gt;Serendipity&lt;/em&gt; manchmal nicht erkennt, dass für ein Plugin ein Update zur Verfügung steht. Der Weg zum Verständnis führte über das Nachverfolgen vieler ineinandergreifender Funktionen, die über drei Dateien verteilt waren, und - meines Erachtens - zu einem 14 Jahre alten Denkfehler. Weil ich mir nicht völlig sicher war, dass die gewählte Lösung nicht doch beabsichtigt gewesen ist, habe ich ihn daher nur minimalinvasiv an der Stelle behoben, an der er sich auswirkt.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/53694e269114148518811d597a2ee5808b876d41&quot; title=&quot;Unconditionally keep upgraded_version in plugin cache. · s9y/Serendipity@53694e2 · GitHub&quot;&gt;Unconditionally keep upgraded_version in plugin cache.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schon letztes Jahr habe ich für die kommende Version 2.4 von &lt;em&gt;Serendipity&lt;/em&gt; eine Update-Benachrichtigung auch für Plugins implementiert. Das durch die Suche nach dem vorstehend geschilderten Fehler verbesserte Verständnis der Plugin-API führte zu einer deutlichen Vereinfachung (und Verbesserung) des Codes, der durchzählt, ob und wie viele installierte Plugins geupdatet werden können. Außerdem habe ich im &lt;em&gt;Dashboard&lt;/em&gt; die Hinweise auf ein Update für &lt;em&gt;Serendipity&lt;/em&gt; selbst und für Plugins - für den Fall, dass beide Benachrichtigungen gleichzeitig angezeigt werden - in einer Box zusammengeführt und zugleich deren Anzeige verbessert. Den technisch nicht nötigen Update-Button für Plugins habe ich dann noch durch einen normalen Link im Text ersetzt, der an dieser Stelle optisch besser gefällt (und auch noch keine unmittelbare Aktion auslöst).&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/ded855f0966e681a68f6a41d8447104f3e3aebeb&quot; title=&quot;[event_spartacus] Simplify count_plugin_upgrades() · s9y/Serendipity@ded855f · GitHub&quot;&gt;[event_spartacus] Simplify count_plugin_upgrades() &lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/5ca9da9a56cbe64c983154a83f276518eef7681e&quot; title=&quot;[event_spartacus] Change dashboard upgrade notification to simple link. · s9y/Serendipity@5ca9da9 · GitHub&quot;&gt;[event_spartacus] Change dashboard upgrade notification to simple link.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/c89d7f92f6eeb687649ae479e8e29693d02e4a24&quot; title=&quot;Dashboard: Merge s9y and plugin update notifications. · s9y/Serendipity@c89d7f9 · GitHub&quot;&gt;Dashboard: Merge s9y and plugin update notifications.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Daneben gab es noch einige minimale Bugfixes.&lt;/p&gt;

&lt;h4 id=&quot;plugins&quot;&gt;Plugins&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Im Plugin &lt;code&gt;serendipity_event_social&lt;/code&gt; kann man nunmehr für jeden Beitrag ein Bild vorgeben, das über das entsprechende &lt;em&gt;Open Graph&lt;/em&gt;-Tag dann als Vorschaubild in den sozialen Medien (Twitter, Facebook) angezeigt wird. Es ist nicht mehr nötig, das Bild im Eintrag selbst (als erstes Bild) zu verwenden. Diese Möglichkeit bestand bislang nur für die Themes &lt;em&gt;Timeline&lt;/em&gt; und &lt;em&gt;Photo&lt;/em&gt;, die jeweils schon beitragsbezogene Bilder vorsehen.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/112&quot; title=&quot;[event_social] Set social media image for entry. by th-h · Pull Request #112 · s9y/additional_plugins · GitHub&quot;&gt;[event_social] Set social media image for entry.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bei einigen Plugins habe ich das &lt;code&gt;Changelog&lt;/code&gt; in &lt;code&gt;ChangeLog&lt;/code&gt; umbenannt, denn nur diese Schreibung erkennt und verlinkt &lt;em&gt;Spartacus&lt;/em&gt;, das Plugin-Repository. Außerdem habe ich nach dem &lt;em&gt;Spartacus&lt;/em&gt;-Umzug (siehe unten) das Build-Log ausgewertet und sich darin niederschlagende PHP-Fehler (meistens alte Klassen-Konstruktoren aus PHP-4-Zeiten und fehlerhafte definierte Konstanten) behoben.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dazu kamen ein oder zwei marginale Änderungen an Plugins.&lt;/p&gt;

&lt;h4 id=&quot;infrastruktur&quot;&gt;Infrastruktur&lt;/h4&gt;

&lt;p&gt;Auch in der &lt;em&gt;Serendipity&lt;/em&gt;-Infrastruktur gab es einige Änderungen.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Wir haben Kernkomponenten der &lt;em&gt;Serendipity&lt;/em&gt;-Infrastruktur - &lt;em&gt;s9y.org&lt;/em&gt; (eigentlich nur noch Redirects, aber &lt;em&gt;wichtige&lt;/em&gt; Redirects), das Blog und
später auch &lt;em&gt;Spartacus&lt;/em&gt; (das Plugin- und Theme-Repository) - von &lt;em&gt;Uberspace 6&lt;/em&gt; auf &lt;em&gt;Uberspace 7&lt;/em&gt; umgestellt. Das geht nur über die Anlage eines neuen Accounts (und die Löschung des alten). Bei dem Umzug insbesondere des Blogs habe ich mitgeholfen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bislang lagen die &lt;em&gt;Spartacus&lt;/em&gt;-Webseiten, auf denen die Plugins und Themes zur Ansicht präsentiert werden, noch bei &lt;em&gt;Sourceforge&lt;/em&gt;. Auch die Plugins und Themes selbst wurden nach dort (und zu Netmirror) hochgeladen, obschon Netmirror schon seit Jahren nicht mehr existiert und der Abruf von Plugins/Themes bei &lt;em&gt;Sourceforge&lt;/em&gt; seit der Einstellung des CVS-Web-Dienstes irgendwann 2017 nicht mehr möglich war. Auch ansonsten schleppte der Build-Prozess für &lt;em&gt;Spartacus&lt;/em&gt; noch jahrzehntealte, oft bereits lange auskommentierte Artefakte früherer Installationen mit sich herum (und auf dem alten &lt;em&gt;Uberspace&lt;/em&gt;-Account, der noch unter PHP 5 lief, schlug der gesamte Build-Prozess seit einiger Zeit fehl, weil ein Plugin PHP-7-Code enthielt, der zum Abbruch des Build-Prozesses mit Fehlern führte). Daher bin ich den gesamten Build-Prozess durchgegangen und habe die entsprechenden Scripts komplett durch neue ersetzt, die jetzt nur noch die notwendigen Teile der Arbeit durchführen und damit auch besser verständlich sind.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Im Zusammenhang mit dem erneuten &lt;em&gt;Spartacus&lt;/em&gt;-Build-Prozess habe ich die &lt;em&gt;Spartacus&lt;/em&gt;-Webseiten von &lt;em&gt;Sourceforge&lt;/em&gt; zu unserem neuen &lt;em&gt;Uberspace 7&lt;/em&gt;-Account umgezogen, auf dem ohnehin die Build-Scripte laufen. Das spart zum einen viel Zeit für den Upload zu &lt;em&gt;Sourceforge&lt;/em&gt; und gibt uns zum anderen automatisch auf &lt;em&gt;Let&amp;#8217;s encrpyt!&lt;/em&gt; gestütztes TLS, so dass auch der letzte Teil von &lt;em&gt;Serendipity&lt;/em&gt; nunmehr nur noch über &lt;em&gt;HTTPS&lt;/em&gt; erreichbar ist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nachdem ich einmal dabei war, habe ich - neben diversen primär optischen Änderungen - das Datum des letzten Builds der &lt;em&gt;Spartacus&lt;/em&gt;-Webseiten als Kommentar in den HTML-Quelltext eingefügt, damit man von außen leicht erkennen kann, ob der Build ordnungsgemäß täglich läuft, und die &lt;em&gt;Serendipity&lt;/em&gt;-Themes ohne Rücksicht auf Groß- und Kleinschreibung alphabetisch sortiert (ein jahrealter Wishlist-Bug).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Last but not least ist der Button für die Sprachauswahl in der Seitenleiste ganz nach oben gewandert und die dahinterliegende Funktionalität so geändert worden, dass die gerade betrachtete Plugin-Übersicht zum einen erhalten bleibt und zum anderen direkt die Sprache ändert. Zuvor änderten sich nur die Links in der Seitenleiste auf die gewählte Sprachversion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auf der Startseite der &lt;em&gt;Serendipity&lt;/em&gt;-Webseiten sind die letzten Blogeinträge als Feed eingebunden. Das funktioniert im Moment aber deshalb nicht, weil ein Javascript den Blog-Feed per &lt;em&gt;XMLHttpRequest&lt;/em&gt; abruft, also &lt;em&gt;Cross-Origin Resource Sharing&lt;/em&gt; (CORS) versucht, und das erlautb der &lt;em&gt;Uberspace 7&lt;/em&gt;-Webserver nicht, auf dem das Blog läuft. Also habe ich stattdessen zunächst einen entsprechenden Hinweis auf das Blog eingebunden, und zwar in einer Weise, die den Hinweis ohne weitere Änderung wieder durch die aktuellen Blogbeiträge ersetzt, sobald der Feed wieder abgerufen werden kann. Danach bin ich dann beim Lesen alter &lt;em&gt;Serendipity&lt;/em&gt;-Changelogs auf die Konfigurationsoption &lt;code&gt;$serendipity[&#039;cors&#039;]&lt;/code&gt; gestoßen; setzt man diese auf &lt;code&gt;TRUE&lt;/code&gt;, funktioniert auch der Feed wieder.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;releases&quot;&gt;Releases&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Im Rahmen des diesjährigen &lt;em&gt;Serendipity&lt;/em&gt;-Camps habe ich alle geeigneten Änderungen aus der aktuellen Entwicklungsversion in den 2.3er-Zweig übernommen und dann &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.3.3&quot; title=&quot;Release Serendipity 2.3.3 · s9y/Serendipity · GitHub&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt; 2.3.3&lt;/a&gt; releast sowie die Release-Notes, einen Blog- und einen Forenbeitrag verfasst.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dasselbe habe ich dann weniger Tage später nochmal für die Version &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.3.4&quot; title=&quot;Release Serendipity 2.3.4 · s9y/Serendipity · GitHub&quot;&gt;2.3.4&lt;/a&gt; wiederholt.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Puh - ist doch eine ganze Menge geworden! Das reicht dann eigentlich auch direkt für das zweite Quartal, falls ich da wieder einmal zu nichts kommen sollte &amp;#8230;&lt;/p&gt;

&lt;p&gt;Vorherige Aktivitäten-Übersicht: &lt;a href=&quot;https://netz-rettung-recht.de/archives/2214-FLOSSnnet-Aktivitaeten-im-4.-Quartal-2019.html&quot; title=&quot;&quot;&gt;IV/2019&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Titelbild © momius - stock.adobe.com&lt;/em&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/ff97c37890544dd2a206ed15db6895f7&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Mon, 06 Apr 2020 04:30:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2235-guid.html</guid>
    <category>flossnet</category>
<category>s9y</category>

</item>
<item>
    <title>FLOSS'n'net - Aktivitäten im 4. Quartal 2019</title>
    <link>https://netz-rettung-recht.de/archives/2214-FLOSSnnet-Aktivitaeten-im-4.-Quartal-2019.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2214-FLOSSnnet-Aktivitaeten-im-4.-Quartal-2019.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2214</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2214</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;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 &lt;a href=&quot;https://de.wikipedia.org/wiki/Free/Libre_Open_Source_Software&quot; title=&quot;&quot;&gt;FLOSS&lt;/a&gt; und das Netz zu tun, und zwar wie zuvor auch vor allem an &lt;em&gt;Serendipity&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id=&quot;serendipity-s9y-&quot;&gt;Serendipity (&lt;em&gt;s9y&lt;/em&gt;)&lt;/h3&gt;

&lt;p&gt;Das Blogsystem &lt;a href=&quot;https://docs.s9y.org/&quot; title=&quot;Serendipity -  A reliable, secure and extensible PHP blog | Serendipity Blog System&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;&lt;/a&gt; werkelt auch hinter diesem Blog.&lt;/p&gt;

&lt;h4 id=&quot;-s9y-kern&quot;&gt;&lt;em&gt;s9y&lt;/em&gt;-Kern&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ich habe die Ursache eines lange bekannten Problems gefunden, nämlich der &amp;#8220;Verstümmelung&amp;#8221; 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 &lt;em&gt;qmail&lt;/em&gt; als Mailserver Verwendung fand. Ursächlich ist das Verhalten der &lt;code&gt;imap_8bit()&lt;/code&gt;-Funktion von PHP, auf die &lt;em&gt;s9y&lt;/em&gt; - soweit vorhanden - zurückgreift, um den Mailinhalt als &lt;em&gt;quoted-printable&lt;/em&gt; zu kodieren. Dabei müssen Zeilenumbrüche eingefügt werden, wofür &lt;code&gt;imap_8bit()&lt;/code&gt; die Zeichenfolge &lt;code&gt;\r\n&lt;/code&gt; verwendet, also &amp;#8220;carriage return&amp;#8221; und &amp;#8220;line feed&amp;#8221;; diese Markierung des Zeilenendes ist unter Windows üblich, wohingegen unter Unix üblicherweise nur &lt;code&gt;\n&lt;/code&gt; 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 &lt;code&gt;\r\n&lt;/code&gt; als Zeilenumbruch nicht zwingend ist. Den meisten Mailservern (so &lt;em&gt;Postfix&lt;/em&gt; und &lt;em&gt;Exim&lt;/em&gt;) ist das egal; &lt;em&gt;qmail&lt;/em&gt; aber beharrt darauf, dass bei ihm eingelieferte Mails als Zeilenende nur mit &lt;code&gt;\n&lt;/code&gt; markiert sein dürfen und ersetzt jedes &lt;code&gt;\n&lt;/code&gt; für die SMTP-Übertragung durch &lt;code&gt;\r\n&lt;/code&gt;. Wurde die Mail bereits mit &lt;code&gt;\r\n&lt;/code&gt; eingeliefert, macht &lt;em&gt;qmail&lt;/em&gt; dementsprechend daraus &lt;code&gt;\r\r\n&lt;/code&gt;, und genau das ist die Quelle der &amp;#8220;überzähligen&amp;#8221; Zeilenumbrüche (nach der Dekodierung von &lt;em&gt;quoted-printable&lt;/em&gt;). An &lt;em&gt;qmail&lt;/em&gt; 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 &lt;em&gt;s9y&lt;/em&gt; 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 &lt;em&gt;qmail&lt;/em&gt; verwenden, als Windows-Server, auf denen &lt;em&gt;s9y&lt;/em&gt; läuft. In jedem Fall kann man das Problem durch Setzen von &lt;code&gt;serendipity[&#039;forceBase64&#039;]=true&lt;/code&gt; in &lt;code&gt;serendipity_config_local.inc.php&lt;/code&gt; umgehen; dann nämlich wird &lt;em&gt;base64&lt;/em&gt; kodiert, und dabei tritt das Problem nicht auf.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/9867d70facb1ebc11cfb04c5ecf9af3ea93b4307&quot; title=&quot;Fix mangling of auto-generated mails. · s9y/Serendipity@9867d70 · GitHub&quot;&gt;Fix mangling of auto-generated mails.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;s9y&lt;/em&gt; kommt nicht damit klar, wenn die maximale Anzahl der auf der Titelseite oder im Feed anzuzeigenden Beiträge kleiner als &amp;#8220;1&amp;#8221; ist (und das muss es auch nicht können); daher wird &amp;#8220;1&amp;#8221; als Mindestwert erzwungen.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/9b6a8f6c875e034e5a0712d6456e69bda5359801&quot; title=&quot;Force positive values for fetchLimits. · s9y/Serendipity@9b6a8f6 · GitHub&quot;&gt;Force positive values for fetchLimits.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auf der Jagd nach potentiell nicht initialisierten Konstanten habe ich einen weiteren Einzelfall behoben, der sonst Fehlermeldungen im Logfile produziert.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/f4d07960bb0c618939f99b8e362375fe57b114b1&quot; title=&quot;Assume uninitialized constant PLUGIN_LINK_SPARTACUS. · s9y/Serendipity@f4d0796 · GitHub&quot;&gt;Assume uninitialized constant PLUGIN_LINK_SPARTACUS.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;releases&quot;&gt;Releases&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Kurz nach den oben genannten Änderungen habe ich diese und die gesammelten Fehlerbehebungen der anderen Entwickler und Mitwirkenden aus dem aktuellen Entwicklungszweig in den 2.3-Zweig übernommen und sie als Version &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.3.2&quot; title=&quot;Release Serendipity 2.3.2 · s9y/Serendipity · GitHub&quot;&gt;2.3.2&lt;/a&gt; releast (und das Release angekündigt).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mehr Zeit war dann leider nicht mehr &amp;#8230;&lt;/p&gt;

&lt;p&gt;Vorherige Aktivitäten-Übersicht: &lt;a href=&quot;https://netz-rettung-recht.de/archives/2185-FLOSSnnet-Aktivitaeten-im-3.-Quartal-2019.html&quot; title=&quot;&quot;&gt;III/2019&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/72de643e8f1242ddad4cc163fc0331d1&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Fri, 10 Jan 2020 09:00:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2214-guid.html</guid>
    <category>flossnet</category>
<category>s9y</category>

</item>
<item>
    <title>FLOSS'n'net - Aktivitäten im 3. Quartal 2019</title>
    <link>https://netz-rettung-recht.de/archives/2185-FLOSSnnet-Aktivitaeten-im-3.-Quartal-2019.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2185-FLOSSnnet-Aktivitaeten-im-3.-Quartal-2019.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2185</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2185</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Im dritten Quartal 2019 fand ich rund um meinen Urlaub ungewöhnlich viel Zeit und Motivation insbesondere für die Arbeit an &lt;em&gt;Serendipity&lt;/em&gt;, so dass die Liste meiner &lt;a href=&quot;https://de.wikipedia.org/wiki/Free/Libre_Open_Source_Software&quot; title=&quot;&quot;&gt;FLOSS&lt;/a&gt;-Aktivitäten diesmal länger (und der hinter den einzelnen Punkten stehende Aufwand größer) geworden ist als üblich:&lt;/p&gt;

&lt;h3 id=&quot;serendipity-s9y-&quot;&gt;Serendipity (&lt;em&gt;s9y&lt;/em&gt;)&lt;/h3&gt;

&lt;p&gt;Das Blogsystem &lt;a href=&quot;https://docs.s9y.org/&quot; title=&quot;Serendipity -  A reliable, secure and extensible PHP blog | Serendipity Blog System&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;&lt;/a&gt; werkelt auch hinter diesem Blog.&lt;/p&gt;

&lt;h4 id=&quot;-s9y-kern&quot;&gt;&lt;em&gt;s9y&lt;/em&gt;-Kern&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Als erstes habe ich mir das Plugin-System von &lt;em&gt;s9y&lt;/em&gt; vorgenommen und der Plugin-Liste in der Admin-Oberfläche &lt;a href=&quot;https://github.com/s9y/Serendipity/pull/621&quot; title=&quot;Add Spartacus links to plugin lists. by th-h · Pull Request #621 · s9y/Serendipity · GitHub&quot;&gt;Links zu den Plugin-Informationen&lt;/a&gt; in unserem Repository &lt;em&gt;Spartacus&lt;/em&gt; 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 &lt;a href=&quot;https://github.com/s9y/Serendipity/pull/619&quot; title=&quot;[event_spartacus] Don&amp;#39;t cache wrong plugin list. by th-h · Pull Request #619 · s9y/Serendipity · GitHub&quot;&gt;falsch gecached&lt;/a&gt; werden - nämlich auch dann, wenn eigentlich verschiedene Plugin-Typen abgefragt werden sollen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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 &amp;#8230;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/620&quot; title=&quot;Add plugin update notifications. by th-h · Pull Request #620 · s9y/Serendipity · GitHub&quot;&gt;Add plugin update notifications.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nach unserem 2.3.0-Release fiel mir auf, dass das &lt;a href=&quot;https://github.com/s9y/Serendipity/issues/618&quot; title=&quot;Media library (mass) delete doesn&amp;#39;t work · Issue #618 · s9y/Serendipity · GitHub&quot;&gt;Löschen mehrerer Dateien&lt;/a&gt; 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.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/629&quot; title=&quot;Fix media library (mass) delete, enhance i18n. by th-h · Pull Request #629 · s9y/Serendipity · GitHub&quot;&gt;Fix media library (mass) delete, i18n.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/f3482e1bf33eab998d14b652b6d62b618d2a163f&quot; title=&quot;ML delete file: add &amp;quot;?&amp;quot; to conformation question. · s9y/Serendipity@f3482e1 · GitHub&quot;&gt;ML delete file: add &amp;#8220;?&amp;#8221; to conformation question.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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 &amp;#8220;nach unten rutschende&amp;#8221; Beiträge ändern und daher besser von Suchmaschinen indiziert werden können), zeigte sich ein in diesem Zusammenhang bestehender &lt;a href=&quot;https://github.com/s9y/Serendipity/issues/625&quot; title=&quot;Core pagination is broken · Issue #625 · s9y/Serendipity · GitHub&quot;&gt;Fehler&lt;/a&gt; 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.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/626&quot; title=&quot;Fix core pagination for &amp;quot;stable archives&amp;quot;. by th-h · Pull Request #626 · s9y/Serendipity · GitHub&quot;&gt;Fix core pagination for &amp;#8220;stable archives&amp;#8221;.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/627&quot; title=&quot;Fix pagination for &amp;quot;stable archives&amp;quot; in themes. by th-h · Pull Request #627 · s9y/Serendipity · GitHub&quot;&gt;Fix pagination for &amp;#8220;stable archives&amp;#8221; in themes.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/628&quot; title=&quot;Fix prev/next page links for stable archives. by th-h · Pull Request #628 · s9y/Serendipity · GitHub&quot;&gt;Fix prev/next page links for stable archives.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/ecd3c9fa0b59c02bfcea4d5294de647106f6f2f2&quot; title=&quot;Revert &amp;quot;Fix pagination for &amp;quot;stable archives&amp;quot; in themes.&amp;quot; · s9y/Serendipity@ecd3c9f · GitHub&quot;&gt;Revert &amp;#8220;Fix pagination for &amp;#8220;stable archives&amp;#8221; in themes.&amp;#8221;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schließlich habe ich mich noch ein wenig um die deutsche Sprachversion gekümmert.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/622/files&quot; title=&quot;Add i18n and German translations. by th-h · Pull Request #622 · s9y/Serendipity · GitHub&quot;&gt;Add i18n and German translations.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;plugins&quot;&gt;Plugins&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Im Rahmen der Umstellung von &lt;code&gt;HTTP/Request&lt;/code&gt; auf &lt;code&gt;serendipity_request_url()&lt;/code&gt; habe ich mit &lt;code&gt;serendipity_plugin_flickrbadge&lt;/code&gt; das vorletzte noch fehlender Plugin umgestellt.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/102&quot; title=&quot;Change HTTP/Request to serendipity_request_url(). by th-h · Pull Request #102 · s9y/additional_plugins · GitHub&quot;&gt;Change HTTP/Request to serendipity_request_url().&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Durchaus sehr aufwendig war dann die Suche nach der Ursache dafür, dass manchmal &lt;a href=&quot;https://github.com/s9y/Serendipity/issues/528&quot; title=&quot;No notice shown when a comment will be moderated · Issue #528 · s9y/Serendipity · GitHub&quot;&gt;kein Hinweis angezeigt&lt;/a&gt; wird, dass ein abgegebener Kommentar zu einem Eintrag zunächst moderiert werden muss. Nachdem ich mich tief in das Zusammenspiel von Kern und Plugins begeben hatte, blieb ein Rätsel: die entsprechende Variable war bis kurz vor Schluss richtig gesetzt, hatte am Ende dann aber den falschen Wert, ohne dass das durch den Code erklärlich war. Irgendwann fiel dann aber der Groschen: das Problem lag nicht im &lt;em&gt;Spamblock&lt;/em&gt;-Plugin, sondern im &lt;strong&gt;Zusammenspiel&lt;/strong&gt; verschiedener dieser Plugins. Die relevante Variable wurde nämlich in allen Plugins initialisiert - und damit die Prüfergebnisse vorher aufgerufener Plugins gelöscht.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/8941fe6563a02d2aa4c0a3f35e7c48103567ea19&quot; title=&quot;[event_spamblock] Don&amp;#39;t overwrite &amp;quot;moderate&amp;quot; flag. · s9y/Serendipity@8941fe6 · GitHub&quot;&gt;[event_spamblock] Don&amp;#8217;t overwrite &amp;#8220;moderate&amp;#8221; flag.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schließlich habe ich eine deutsche Übersetzung für die Plugins hinzugefügt, bei denen &lt;a href=&quot;https://github.com/s9y/additional_plugins/commit/1e0fed666f82dad8f291388fa0eeb45cb1b9b9f8&quot; title=&quot;Add German translations to plugins (1st pass). · s9y/additional_plugins@1e0fed6 · GitHub&quot;&gt;sie&lt;/a&gt; &lt;a href=&quot;https://github.com/s9y/additional_plugins/commit/f88dfd7c0eab1879a4a2c1a9aa096966a978755e&quot; title=&quot;Add German translations to plugins (2nd pass). · s9y/additional_plugins@f88dfd7 · GitHub&quot;&gt;noch&lt;/a&gt; &lt;a href=&quot;https://github.com/s9y/additional_plugins/commit/9eb43020724bb28750762c867bd4f06812a79db1&quot; title=&quot;Add German translations to plugins (3rd pass). · s9y/additional_plugins@9eb4302 · GitHub&quot;&gt;fehlte&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;infrastruktur&quot;&gt;Infrastruktur&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;s9y&lt;/em&gt; enthält im Kern-Repository auch einige (ziemlich provisorische) Scripts zur Unterstützung des Übersetzungsprozesses, um bspw. neue Sprachkonstanten zumindest in der englischen Fassung allen Sprachversionen hinzuzufügen (damit die Übersetzer sehen können, was neu ist), oder um fehlende Sprachkonstanten in Plugins anzuzeigen. Letzteres Tool hat standardmäßig allerdings nur die Plugins im Kern geprüft und war offenbar älter als das zusätzliche Verzeichnis für die UTF-8-Versionen der Sprachkonstanten. Dementsprechend habe ich es erweitert und so auch die fehlenden deutschen Übersetzungen für manche Plugins gefunden, die ich ergänzt habe.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/d2ad0927632b9fc26bc82e488052887be9007890&quot; title=&quot;plugin_lang.php: Make output more readable. · s9y/Serendipity@d2ad092 · GitHub&quot;&gt;plugin_lang.php: Make output more readable. &lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/3d0410bacd6ef860709aab5d6d319b1882939b00&quot; title=&quot;plugin_lang.php: Check additional_plugins, too. · s9y/Serendipity@3d0410b · GitHub&quot;&gt;plugin_lang.php: Check additional_plugins, too.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Danach habe ich dann ein ähnliches Check-Script für die Sprachkonstanten im Kern ergänzt und dessen Meldungen zunächst für die englischen und deutschen Sprachdateien abgearbeitet. Die anderen Sprachen warten auf meinen nächsten Urlaub. &lt;img src=&quot;https://netz-rettung-recht.de/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/commit/f8f40d27a4ebbc12ecb7daef958f9b4b2c58dbf0&quot; title=&quot;Add language file checker. · s9y/Serendipity@f8f40d2 · GitHub&quot;&gt;Add language file checker.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;releases&quot;&gt;Releases&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Unser neues Stable-Release &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.3.0&quot; title=&quot;Release Serendipity 2.3.0 · s9y/Serendipity · GitHub&quot;&gt;2.3.0&lt;/a&gt; und den vorangehenden &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.3-rc1&quot; title=&quot;Release Serendipity 2.3 - First Release Candidate · s9y/Serendipity · GitHub&quot;&gt;Release-Candidate&lt;/a&gt; habe ich - ebenso wie ein abschließendes Release &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.1.6&quot; title=&quot;Release Serendipity 2.1.6 · s9y/Serendipity · GitHub&quot;&gt;2.1.6&lt;/a&gt; für den 2.1-Zweig - aus der Tür geschoben und die entsprechenden Ankündigungen mit einer Zusammenfassung der wichtigsten Änderungen für Github, im Blog und im Forum verfasst.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Danach habe ich die gesammelten Ergänzungen und Fehlerbehebungen aus dem aktuellen Entwicklungszweig in den 2.3-Zweig übernommen und sie als Version &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.3.1&quot; title=&quot;Release Serendipity 2.3.1 · s9y/Serendipity · GitHub&quot;&gt;2.3.1&lt;/a&gt; releast (und das Release angekündigt).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mehr Zeit als für &lt;em&gt;s9y&lt;/em&gt; war allerdings nicht - und im September reichte es dann auch dort schon wieder nur fürs Mitlesen aktueller Entwicklungen, aber nicht für aktive Mitarbeit. Das wird sich - nach einem Blick in meinen Terminkalender - voraussichtlich bis zum Jahresende auch nicht groß ändern. Aber vielleicht in 2020?&lt;/p&gt;

&lt;p&gt;Vorherige Aktivitäten-Übersicht: &lt;a href=&quot;https://netz-rettung-recht.de/archives/2165-FLOSSnnet-Aktivitaeten-im-2.-Quartal-2019.html&quot; title=&quot;&quot;&gt;II/2019&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/bd24aff863304f47a006d7022e5f15d7&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Tue, 08 Oct 2019 06:00:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2185-guid.html</guid>
    <category>flossnet</category>
<category>s9y</category>

</item>
<item>
    <title>FLOSS'n'net - Aktivitäten im 2. Quartal 2019</title>
    <link>https://netz-rettung-recht.de/archives/2165-FLOSSnnet-Aktivitaeten-im-2.-Quartal-2019.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2165-FLOSSnnet-Aktivitaeten-im-2.-Quartal-2019.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2165</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2165</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Im zweiten Viertel diesen Jahres lag u.a. das &lt;a href=&quot;https://netz-rettung-recht.de/archives/2156-s9ycamp2019.html&quot; title=&quot;#s9ycamp2019 | Netz - Rettung - Recht&quot;&gt;&lt;em&gt;s9y&lt;/em&gt;-Camp 2019&lt;/a&gt;, so dass mich wieder einmal mit dem einen oder anderen Projekt rund um freie Software (&lt;a href=&quot;https://de.wikipedia.org/wiki/Free/Libre_Open_Source_Software&quot; title=&quot;&quot;&gt;FLOSS&lt;/a&gt;) oder das Netz beschäftigt habe.&lt;/p&gt;

&lt;p&gt;Dabei habe ich folgendes beigetragen:&lt;/p&gt;

&lt;h3 id=&quot;serendipity-s9y-&quot;&gt;Serendipity (&lt;em&gt;s9y&lt;/em&gt;)&lt;/h3&gt;

&lt;p&gt;Das Blogsystem &lt;a href=&quot;https://docs.s9y.org/&quot; title=&quot;Serendipity -  A reliable, secure and extensible PHP blog | Serendipity Blog System&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;&lt;/a&gt; werkelt auch hinter diesem Blog.&lt;/p&gt;

&lt;h4 id=&quot;-s9y-kern&quot;&gt;&lt;em&gt;s9y&lt;/em&gt;-Kern&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Während des &lt;em&gt;s9y-Camps&lt;/em&gt; habe ich die Konfiguration des neuen Wartungsmodus &lt;a href=&quot;https://github.com/s9y/Serendipity/commit/ceaee85d3b9ff17911f9abbe2ac8f142e7e25b47&quot; title=&quot;Localize maintenance mode. · s9y/Serendipity@ceaee85 · GitHub&quot;&gt;internationalisiert&lt;/a&gt; und die Sprachdateien und die dt. Übersetzung auf den aktuellen Stand gebracht.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Außerdem habe ich im Rahmen und im Nachgang des Camps die Arbeit der anderen Entwickler in Form von &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.3-beta1&quot; title=&quot;Release Serendipity 2.3-beta1 · s9y/Serendipity · GitHub&quot;&gt;Serendipity 2.3-beta1&lt;/a&gt; und (zumeist von mir) &amp;#8220;gebackportete&amp;#8221; Verbesserungen in Form von &lt;a href=&quot;https://github.com/s9y/Serendipity/releases/tag/2.1.5&quot; title=&quot;Release Serendipity 2.1.5 · s9y/Serendipity · GitHub&quot;&gt;Serendipity 2.1.5&lt;/a&gt; releast.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;plugins&quot;&gt;Plugins&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Im &lt;em&gt;s9y&lt;/em&gt;-Plugin &lt;em&gt;serendipity_event_social&lt;/em&gt; habe ich &lt;em&gt;Google+&lt;/em&gt; nach Einstellung des Dienstes entfernt und dafür gesorgt, dass eine entsprechende Auswahl auch aus der Konfiguration entfernt wird.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/92&quot; title=&quot;Remove Google+ from Shariff. by th-h · Pull Request #92 · s9y/additional_plugins · GitHub&quot;&gt;&lt;em&gt;Remove Google+ from Shariff.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dem Plugin &lt;em&gt;serendipity_event_entrylastmodified&lt;/em&gt; habe ich eine &lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/94&quot; title=&quot;entrylastmodified: Add/enhance German translation. by th-h · Pull Request #94 · s9y/additional_plugins · GitHub&quot;&gt;vollständige deutsche Sprachdatei&lt;/a&gt; verpasst und &lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/95&quot; title=&quot;Catch wrong last_modified dates. by th-h · Pull Request #95 · s9y/additional_plugins · GitHub&quot;&gt;fehlerhafte Angaben für das letzte Bearbeitungsdatum&lt;/a&gt; (resultierend aus falschen Datenbankeinträgen) abgefangen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Für das Plugin &lt;em&gt;serendipity_event_geshi&lt;/em&gt; habe ich &lt;em&gt;GeSHi&lt;/em&gt; von der bisherigen Version 1.0.8.1 (aus 2008) auf die Version 1.0.9.0 (immerhin von 2014) aktualisiert.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Im Plugin &lt;em&gt;serendipity_event_metadesc&lt;/em&gt; habe ich einen Denkfehler im Code für das Update von Properties behoben, der vermutlich dazu führte, dass bei mir regelmäßig Beschreibungen &amp;#8220;verschwunden&amp;#8221; sind (und dafür allerdings drei Anläufe gebraucht).&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/99&quot; title=&quot;metadesc: Fix logic for INSERT/UPDATE/DELETE. by th-h · Pull Request #99 · s9y/additional_plugins · GitHub&quot;&gt;metadesc: Fix logic for INSERT/UPDATE/DELETE.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/commit/fe69c04e14461e2e1ba6e161cb0a66c255bfa249&quot; title=&quot;Fix missing ). · s9y/additional_plugins@fe69c04 · GitHub&quot;&gt;Fix missing ).&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/101&quot; title=&quot;metadesc: Rellay fix INSERT/UPDATE/DELETE logic. by th-h · Pull Request #101 · s9y/additional_plugins · GitHub&quot;&gt;metadesc: Rellay fix INSERT/UPDATE/DELETE logic.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schließlich habe ich mich intensiv mit dem (nicht mehr ganz) neuen Plugin &lt;em&gt;serendipity_event_vgwort&lt;/em&gt; beschäftigt und es in meinem Blog getestet. Dabei ergaben sich einige Punkte bei der Installation und im Code, die dazu führten, dass das Plugin bei mir nicht (wie erwartet) funktionierte; außerdem habe ich hartgecodete Begriffe durch Konstanten ersetzt und deutsche und englische Übersetzungen hinzugefügt. Der Pull-Request wurde allerdings noch nicht gemerged.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/97&quot; title=&quot;vgwort: Some fixes. by th-h · Pull Request #97 · s9y/additional_plugins · GitHub&quot;&gt;vgwort: Some fixes.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;webseiten&quot;&gt;Webseiten&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;In der &lt;em&gt;s9y&lt;/em&gt;-Dokumentation habe ich die Download-Seite klarer gefasst und die Formatierung eines Code-Beispiels &lt;a href=&quot;https://github.com/s9y/s9y.github.io/commit/0745d4b2ef6c8433a2baf5f213fd4f007447cce0&quot; title=&quot;Fix formatting example for braces. · s9y/s9y.github.io@0745d4b · GitHub&quot;&gt;korrigiert&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;sonstiges&quot;&gt;Sonstiges&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mein Script &lt;code&gt;mmm&lt;/code&gt; (&lt;em&gt;MIME multipart/alternative from Markdown&lt;/em&gt;) erzeugt jetzt eine individuelle MIME-boundary (die den Programmnamen enthält).&lt;br /&gt;
&lt;a href=&quot;https://github.com/th-h/thh-scripts/commit/eb086b342f55c535f4d86d8b93695bba425872cd&quot; title=&quot;Change boundary generation in mmm. · th-h/thh-scripts@eb086b3 · GitHub&quot;&gt;Change boundary generation in mmm.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In meinem ersten Aktivitätenbericht schrieb ich so schön &amp;#8220;viel war’s nicht&amp;#8221; - seitdem hat es kein Quartal (!) mehr gegeben, in dem ich so viel geschafft habe wie damals in dem einen Monat. Diesmal kann ich aber immerhin (motiviert durch das &lt;em&gt;s9y-Camp&lt;/em&gt;) wenigstens ein paar Einträge vorweisen. Mal schauen, wie sich das in den kommenden Monaten entwicklen wird.&lt;/p&gt;

&lt;p&gt;Vorherige Aktivitäten-Übersicht: &lt;a href=&quot;https://netz-rettung-recht.de/archives/2157-FLOSSnnet-Aktivitaeten-im-1.-Quartal-2019.html&quot; title=&quot;&quot;&gt;I/2019&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/2a16742450fb41f3b8f28f4fe2cb7eb0&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Fri, 05 Jul 2019 05:54:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2165-guid.html</guid>
    <category>flossnet</category>
<category>s9y</category>

</item>
<item>
    <title>FLOSS'n'net - Aktivitäten im 1. Quartal 2019</title>
    <link>https://netz-rettung-recht.de/archives/2157-FLOSSnnet-Aktivitaeten-im-1.-Quartal-2019.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2157-FLOSSnnet-Aktivitaeten-im-1.-Quartal-2019.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2157</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2157</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;2019 hatte ich bisher sehr wenig Zeit - insbesondere sehr wenig Zeit, mich mit dem einen oder anderen Projekt rund um freie Software (&lt;a href=&quot;https://de.wikipedia.org/wiki/Free/Libre_Open_Source_Software&quot; title=&quot;&quot;&gt;FLOSS&lt;/a&gt;) oder das Netz zu beschäftigen.&lt;/p&gt;

&lt;p&gt;Daher ist die &amp;#8220;Liste&amp;#8221; meines Beitrags diesmal sehr, sehr überschaubar:&lt;/p&gt;

&lt;h3 id=&quot;serendipity-s9y-&quot;&gt;Serendipity (&lt;em&gt;s9y&lt;/em&gt;)&lt;/h3&gt;

&lt;p&gt;Das Blogsystem &lt;a href=&quot;https://docs.s9y.org/&quot; title=&quot;Serendipity -  A reliable, secure and extensible PHP blog | Serendipity Blog System&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;&lt;/a&gt; werkelt auch hinter diesem Blog.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ich habe die Dokumentation zur Plugin-Installation etwas aktualisiert.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/s9y.github.io/pull/72&quot; title=&quot;Update plugin install docs. by th-h · Pull Request #72 · s9y/s9y.github.io · GitHub&quot;&gt;&lt;em&gt;Update plugin install docs.&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vorherige Aktivitäten-Übersicht: &lt;a href=&quot;https://netz-rettung-recht.de/archives/2139-FLOSSnnet-Aktivitaeten-im-4.-Quartal-2018.html&quot; title=&quot;&quot;&gt;IV/2018&lt;/a&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Fri, 03 May 2019 18:40:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2157-guid.html</guid>
    <category>flossnet</category>
<category>s9y</category>

</item>
<item>
    <title>FLOSS'n'net - Aktivitäten im 4. Quartal 2018</title>
    <link>https://netz-rettung-recht.de/archives/2139-FLOSSnnet-Aktivitaeten-im-4.-Quartal-2018.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2139-FLOSSnnet-Aktivitaeten-im-4.-Quartal-2018.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2139</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2139</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;In den letzten drei Monaten des Jahres 2018 habe ich wieder ein wenig - sehr wenig! - Zeit gefunden, mich mit dem einen oder anderen Projekt rund um freie Software (&lt;a href=&quot;https://de.wikipedia.org/wiki/Free/Libre_Open_Source_Software&quot; title=&quot;&quot;&gt;FLOSS&lt;/a&gt;) oder das Netz zu beschäftigen. Dabei habe ich folgendes beigetragen:&lt;/p&gt;

&lt;h3 id=&quot;serendipity-s9y-&quot;&gt;Serendipity (&lt;em&gt;s9y&lt;/em&gt;)&lt;/h3&gt;

&lt;p&gt;Das Blogsystem &lt;a href=&quot;https://docs.s9y.org/&quot; title=&quot;Serendipity -  A reliable, secure and extensible PHP blog | Serendipity Blog System&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;&lt;/a&gt; werkelt auch hinter diesem Blog.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bei dem &lt;em&gt;s9y&lt;/em&gt;-Plugin &lt;em&gt;serendipity_event_markdown&lt;/em&gt; habe ich die damit ausgelieferten Bibliotheken &lt;em&gt;Markdown&lt;/em&gt; und &lt;em&gt;SmartyPants&lt;/em&gt; aktualisiert.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/89&quot; title=&quot;[markdown] Upgrade Markdown Lib and SmartyPants Lib. by th-h · Pull Request #89 · s9y/additional_plugins · GitHub&quot;&gt;&lt;em&gt;Upgrade Markdown Lib and SmartyPants Lib.&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;nanoc&quot;&gt;Nanoc&lt;/h3&gt;

&lt;p&gt;U.a. meine Webseiten generiere ich mit &lt;a href=&quot;https://nanoc.ws/&quot; title=&quot;&quot;&gt;&lt;em&gt;Nanoc&lt;/em&gt;&lt;/a&gt;, einem Generator für statische Seiten.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Die im &lt;em&gt;blogging helper&lt;/em&gt; enthaltene Funktion &lt;code&gt;atom_feed()&lt;/code&gt; zur Generierung, nun ja, eines Atom-Feeds habe ich um die Möglichkeit ergänzt, die Titel der automatisch erzeugten Einträge anzupassen, wie dies auch schon für den Inhalt bzw. das Exzerpt der einzelnen Einträge möglich war.&lt;br /&gt;
&lt;a href=&quot;https://github.com/nanoc/nanoc/pull/1362&quot; title=&quot;Add title_proc parameter to blogging helper. by th-h · Pull Request #1362 · nanoc/nanoc · GitHub&quot;&gt;&lt;em&gt;Add title_proc parameter to blogging helper.&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zwei Beiträge in drei Monaten ist &amp;#8230; nicht viel. Vielleicht finde ich 2019 wieder mehr Zeit.&lt;/p&gt;

&lt;p&gt;Vorherige Aktivitäten-Übersicht: &lt;a href=&quot;https://netz-rettung-recht.de/archives/2115-FLOSSnnet-Aktivitaeten-092018.html&quot; title=&quot;&quot;&gt;09/2018&lt;/a&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Sun, 30 Dec 2018 16:35:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2139-guid.html</guid>
    <category>flossnet</category>
<category>nanoc</category>
<category>s9y</category>

</item>
<item>
    <title>FLOSS'n'net - Aktivitäten 09/2018</title>
    <link>https://netz-rettung-recht.de/archives/2115-FLOSSnnet-Aktivitaeten-092018.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2115-FLOSSnnet-Aktivitaeten-092018.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2115</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2115</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Im September 2018 hatte ich mal wieder ein wenig Zeit gefunden, mich mit dem einen oder anderen Projekt rund um freie Software (&lt;a href=&quot;https://de.wikipedia.org/wiki/Free/Libre_Open_Source_Software&quot; title=&quot;&quot;&gt;FLOSS&lt;/a&gt;) oder das Netz zu beschäftigen.&lt;/p&gt;

&lt;p&gt;Dabei habe ich folgendes beigetragen:&lt;/p&gt;

&lt;h3 id=&quot;faqs-anleitungen-und-tutorials&quot;&gt;FAQs, Anleitungen und Tutorials&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://th-h.de/net/misc/git/installation/&quot; title=&quot;Installation von git for Windows | th-h.de&quot;&gt;Installationsanleitung für &lt;em&gt;git for Windows&lt;/em&gt;&lt;/a&gt; auf &lt;em&gt;th-h.de&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;serendipity-s9y-&quot;&gt;Serendipity (&lt;em&gt;s9y&lt;/em&gt;)&lt;/h3&gt;

&lt;p&gt;Ein Großteil meiner Aktivität betraf das Blogsystem &lt;a href=&quot;https://docs.s9y.org/&quot; title=&quot;Serendipity -  A reliable, secure and extensible PHP blog | Serendipity Blog System&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;&lt;/a&gt;, mit dem auch dieses Blog betrieben wird.&lt;/p&gt;

&lt;h4 id=&quot;-s9y-kern&quot;&gt;&lt;em&gt;s9y&lt;/em&gt;-Kern&lt;/h4&gt;

&lt;p&gt;Im Core habe ich nur ein wenig sortiert und aufgeräumt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/575&quot; title=&quot;[2k11] Update links in admin overview. by th-h · Pull Request #575 · s9y/Serendipity · GitHub&quot;&gt;Update links in admin overview.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/578&quot; title=&quot;Change message for auto-moderation after X days. by th-h · Pull Request #578 · s9y/Serendipity · GitHub&quot;&gt;Change message for auto-moderation after X days.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/582&quot; title=&quot;[spamblock] Remove dead code (Akismet spam toggle). by th-h · Pull Request #582 · s9y/Serendipity · GitHub&quot;&gt;Remove dead code (Akismet spam toggle).&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/579&quot; title=&quot;Check NEWS, remove duplicate items. by th-h · Pull Request #579 · s9y/Serendipity · GitHub&quot;&gt;Check NEWS, remove duplicate items.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;plugins&quot;&gt;Plugins&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ich habe einen Bug im Plugin &lt;em&gt;serendipity_event_dsgvo_gdpr&lt;/em&gt; behoben, der in den meisten Fällen die Anzeige der durch Plugins verarbeiteten Daten verhindert hat.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/86&quot; title=&quot;[event_dsgvo_gdpr] Display plugin legal info. by th-h · Pull Request #86 · s9y/additional_plugins · GitHub&quot;&gt;&lt;em&gt;Display plugin legal info.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Außerdem habe ich eine Formulierung im &lt;em&gt;Cookie-Consent&lt;/em&gt;-Modul des Plugins der Rechtslage angepasst.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/83&quot; title=&quot;Cookie Consent: &amp;quot;understood&amp;quot;, not &amp;quot;accepted&amp;quot;. by th-h · Pull Request #83 · s9y/additional_plugins · GitHub&quot;&gt;&lt;em&gt;Cookie Consent: &amp;#8220;understood&amp;#8221;, not &amp;#8220;accepted&amp;#8221;.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schon lange hat mich geärgert, dass &lt;em&gt;serendipity_event_markdown&lt;/em&gt; keine Zitate in Kommentaren unterstützt, die in Markdown mit &lt;code&gt;&amp;gt;&lt;/code&gt; eingeleitet werden. Bei näherer Betrachtung wurde mir bewusst, dass das an &lt;em&gt;serendipity_event_unstrip_tags&lt;/em&gt; liegt, das HTML in Kommentaren als Text anzeigt und zu diesem Zweck &lt;code&gt;&amp;lt;&lt;/code&gt; und &lt;code&gt;&amp;gt;&lt;/code&gt; durch die entsprechenden Entities ersetzt. Das muss &lt;em&gt;serendipity_event_markdown&lt;/em&gt; also rückgängig machen, aber nur dann, wenn es sich wirklich um ein Zitatzeichen handelt. Ich habe das mit einem regulären Ausdruck gelöst.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/additional_plugins/pull/88&quot; title=&quot;[markdown] Make blockquotes in comments usable. by th-h · Pull Request #88 · s9y/additional_plugins · GitHub&quot;&gt;&lt;em&gt;Make blockquotes in comments usable.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Die meisten &lt;em&gt;s9y&lt;/em&gt;-Plugins werden über &lt;em&gt;Spartacus&lt;/em&gt; installiert; einige wenige Plugins befinden sich im Core, werden also mit &lt;em&gt;s9y&lt;/em&gt; zusammen installiert und auch nur mit &lt;em&gt;s9y&lt;/em&gt; zusammen aktualisiert. Das gilt zum Beispiel für das &lt;em&gt;Spartacus&lt;/em&gt;-Plugin; könnte man dieses nur über &lt;em&gt;Spartacus&lt;/em&gt; installieren, wäre das ein &lt;a href=&quot;https://de.wikipedia.org/wiki/Catch-22_(Dilemma)&quot; title=&quot;&quot;&gt;Catch-22&lt;/a&gt;. Manche Plugins aber finden sich &lt;em&gt;sowohl&lt;/em&gt; im Core &lt;em&gt;als auch&lt;/em&gt; in &lt;em&gt;Spartacus&lt;/em&gt; und sollten daher nur an einer Stelle - nämlich in &lt;em&gt;Spartacus&lt;/em&gt; - aktualisiert und dann einfach in den Core kopiert werden. Das ist nicht immer beachtet worden, so dass sich im Core und in &lt;em&gt;Spartacus&lt;/em&gt; teilweise unterschiedliche Versionen mit unterschiedlichen Änderungen befanden. Das habe ich behoben und die betroffenen Plugins synchronisiert sowie &lt;a href=&quot;https://github.com/s9y/Serendipity/wiki/Development-on-branches#plugin-locations-repositories&quot; title=&quot;Development on branches · s9y/Serendipity Wiki · GitHub&quot;&gt;im Entwickler-Wiki dokumentiert&lt;/a&gt;.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/Serendipity/pull/573&quot; title=&quot;Sync plugins in core and Spartacus. by th-h · Pull Request #573 · s9y/Serendipity · GitHub&quot;&gt;&lt;em&gt;Sync plugins in core and Spartacus.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;webseiten&quot;&gt;Webseiten&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Wir blenden auf der Startseite der &lt;em&gt;s9y&lt;/em&gt;-Webseiten die aktuellsten Beiträge aus dem &lt;em&gt;s9y&lt;/em&gt;-Blog ein. Das funktionierte nicht mehr. Nach stundenlangem Debugging weiß ich immer noch nicht genau, warum - aber der Wechsel vom RSS- auf dem Atom-Feed hat das Proble behoben (&amp;#8220;gelöst&amp;#8221; ist vielleicht das falsche Wort dafür).&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/s9y.github.io/pull/70&quot; title=&quot;Switch news feed from blog to atom feed. by th-h · Pull Request #70 · s9y/s9y.github.io · GitHub&quot;&gt;&lt;em&gt;Switch news feed from blog to atom feed.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Außerdem habe ich ein zwei Jahre altes Versprechen eingelöst und mich um eine Breadcrumb-Navigation in der &lt;em&gt;s9y&lt;/em&gt;-Dokumentation gekümmert.&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/s9y.github.io/pull/71&quot; title=&quot;Add breadcrumb navigation to docs. by th-h · Pull Request #71 · s9y/s9y.github.io · GitHub&quot;&gt;&lt;em&gt;Add breadcrumb navigation to docs.&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/s9y/website_assets/pull/4&quot; title=&quot;Add CSS for breadcrumbs. by th-h · Pull Request #4 · s9y/website_assets · GitHub&quot;&gt;&lt;em&gt;Add CSS for breadcrumbs.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Viel war&amp;#8217;s nicht, aber ich bin immer froh, wenn ich wenigstens alle paar Monate einmal einige Stunden Zeit finde, mich durch Texte, Bugreports oder Code an der Weiterentwicklung freier Software (im weitesten Sinne: des Netzes) zu beteiligen.&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/536f65a5a6ec49c88ddd878395db1798&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Thu, 18 Oct 2018 16:50:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2115-guid.html</guid>
    <category>flossnet</category>
<category>git</category>
<category>s9y</category>

</item>

</channel>
</rss>
