<?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 s9y)</title>
    <link>https://netz-rettung-recht.de/</link>
    <description>Aus dem Leben eines Szlauszafs</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 - Aus dem Leben eines Szlauszafs</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>Serendipity 2.3.5 released</title>
    <link>https://netz-rettung-recht.de/archives/2247-Serendipity-2.3.5-released.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2247-Serendipity-2.3.5-released.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2247</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Während im Hintergrund an &lt;em&gt;Serendipity&lt;/em&gt; 2.4 geschraubt wird, haben sich wieder genügend Fehlerbehebungen angesammelt, die ein Bugfix-Release rechtfertigen, so dass am vergangenen Wochenende &lt;em&gt;Serendipity&lt;/em&gt; &lt;strong&gt;2.3.5&lt;/strong&gt; &lt;a href=&quot;https://blog.s9y.org/archives/291-Serendipity-2.3.5-released.html&quot; title=&quot;Serendipity 2.3.5 released  - Serendipity&quot;&gt;veröffentlicht&lt;/a&gt; wurde.&lt;/p&gt;

&lt;p&gt;Die Einzelheiten zu den Änderungen finden sich wie immer in der &lt;a href=&quot;https://raw.githubusercontent.com/s9y/Serendipity/2.3/docs/NEWS&quot; title=&quot;&quot;&gt;&lt;code&gt;NEWS&lt;/code&gt;-Datei&lt;/a&gt; im Verzeichnis &lt;code&gt;/docs/&lt;/code&gt; und (strukturierter) im &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;Release-Announcement&lt;/a&gt; auf &lt;em&gt;Github&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Zunächst war quasi eine Reklamation zu beheben. In &lt;em&gt;Serendipity&lt;/em&gt; 2.3.3 war eine Änderung enthalten, die verhindert, dass beliebig viele &amp;#8220;leere&amp;#8221;, weil noch gar nicht existente Seiten im Archiv älterer Beiträge aufgerufen werden können. Das führte aber dazu, dass das Seitenleisten-Plugin &lt;em&gt;serendipity_plugin_history&lt;/em&gt; auf jeder Seite außer der Blog-Startseite mit einer Fehlermeldung abbrach und daher die gesamte Seitenleiste nicht angezeigt wurde. Hintergrund war m.E. ein älterer Denkfehler im Code, der nicht unterscheidet, ob wir Einträge zur Erzeugung einer Übersichtsseite (auf der Titelseite, im Archiv, bei Suchergebnissen, &amp;#8230;) abrufen, so dass die Einträge auf mehrere Seiten verteilt werden müssen, oder ob der Abruf zu anderen Zwecken erfolgt - bspw. in dem genannten Plugin, um nach Einträgen zu suchen, die vor (bspw.) einem Jahr veröffentlicht wurden. Bei solchen Aufrufen ist es völlig sinnlos, sie zu &amp;#8220;paginieren&amp;#8221; zu versuchen. In &lt;em&gt;serendipity_plugin_history&lt;/em&gt; habe ich das Problem dann behoben.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Im Backend war mir schon ab und an aufgefallen, dass Einträge mit Sonderzeichen im Titel in den Übersichten seltsam angezeigt wurden, nämlich mit sichtbaren HTML-Entities; ich habe mir dabei aber nie etwas gedacht, warum auch immer. Glücklicherweise galt das nicht für alle, so dass ein Mitentwickler das Problem behoben hat.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Im Bugtracker lag bereits seit längerem eine Fehlermeldung aus der Mediendatenbank ein: wenn man Bilder oder andere Medien mit einer Dateiendung von mehr als fünf Zeichen Länge hochlädt, gab es eine Datenbank-Fehlermeldung - was daran lag, dass das Datenbankfeld für die Dateiendung (richtigerweise) nicht mehr als fünf Zeichen aufnehmen kann. Das passierte allerdings zum einen nur mit PostgreSQL als Backend (mySQL verwirft einfach den Rest der Endung, schneidet sie also nach fünf Zeichen ab), und zum anderen nur mit sehr komischen Dateinamen. Wer nennt seine Mediendateien denn auch &lt;code&gt;bild.jpg123&lt;/code&gt; oder so ähnlich? Das würde ohnehin später schiefgehen, weil Browser sich beim Ausliefern von Medien regelmäßig auf die Endung verlassen und daher ein &lt;code&gt;.jpg123&lt;/code&gt; ohnehin nicht richtig angezeigt wurde. Sei das, wie es sei - ein Datenbankfehler ist trotzdem blöd. Und nachdem ich für die Versionen 2.3.3 und 2.3.4 ohnehin mehrfach im mir bis dahin völlig unvertrauten Code der Mediendatenbank unterwegs war, haben wir das behoben und erzwingen jetzt beim Upload eine Maximallänge von fünf Zeichen bei der Dateiendung. Meinen wenig professionellen Erstversuch für einen passenden regulären Ausdruck (&amp;#8220;das Problem andenken, eine regexp probieren und dann so lange rumfummeln, bis ein paar Testnamen zu richtigen Ergebnissen führen&amp;#8221;) hat &lt;a href=&quot;https://www.cgarbs.de/blog/&quot; title=&quot;Mitch’s Manga Blog &quot;&gt;&lt;em&gt;Mitch&lt;/em&gt;&lt;/a&gt; dankenswerterweise systematisch getestet und aufpoliert.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bei der Arbeit an - und dem Testen der - Funktion zur Benachrichtung über verfügbare Plugin-Upgrades für &lt;em&gt;Serendipity&lt;/em&gt; 2.4 fiel mir auf, dass verfügbare Upgrades manchmal nicht angeboten werden. Nach einer sehr, sehr langwierigen Debugging-Session glaube ich (!), einen weiteren sehr, sehr alten Denkfehler im Code gefunden zu haben, den ich nunmehr ersteinmal minimalinvasiv zu beheben trachte. Wertvolle Erkenntnis dabei: Man kann ein Neueinlesen der (ansonsten gecacheten) Plugindaten von &lt;em&gt;Spartacus&lt;/em&gt; auslösen, indem man die Konfiguration des &lt;em&gt;Spartacus&lt;/em&gt;-Plugins aufruft und einfach - ohne Änderungen - noch einmal speichert.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wie &lt;a href=&quot;https://netz-rettung-recht.de/archives/2240-Details-ganz-einfach.html&quot; title=&quot;&quot;&gt;bereits&lt;/a&gt; &lt;a href=&quot;https://netz-rettung-recht.de/archives/2246-Der-Teufel-steckt-im-Detail.html&quot; title=&quot;&quot;&gt;berichtet&lt;/a&gt; habe ich mich mit den &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt;- und &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt;-Elementen beschäftigt. Bei den entsprechenden Blogbeiträgen und den damit verbundenen Kommentaren fiel zunächst auf, dass HTML-Elemente in den Kommentaren meines Blogs zwar angezeigt werden, aber im RSS-Feed (der Kommentare) und in der Kommentar-Übersicht in der Seitenleiste (&lt;em&gt;serendipity_plugin_comments&lt;/em&gt;) schlicht verschwinden. Letzteres - also das Ausfiltern - ist bei &lt;em&gt;Serendipity&lt;/em&gt; aus Sicherheitsgründen der Default; ich habe aber das Plugin &lt;em&gt;serendipity_event_unstrip_tags&lt;/em&gt; installiert, dass stattdessen die spitzen Klammern durch HTML-Entities ersetzt und so HTML-Elemente in den Kommentaren anzeigt. Aber eben auch nur dort - weder in der Seitenleiste noch im RSS-Feed. Das verdiente eine Verbessung (die auch eine Änderung in &lt;em&gt;serendipity_plugin_comments&lt;/em&gt; erfordert, das zusammen mit dem &lt;em&gt;Serendipity&lt;/em&gt;-Kern verteilt wird).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Außerdem habe ich dafür gesorgt, dass der WYSIWYG-Editor &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; und &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt; nicht mehr verschluckt. An dieser Stelle ist aber noch Arbeit nötig; der Editor frisst offensichtlich auch den &lt;a href=&quot;https://github.com/s9y/Serendipity/issues/705&quot; title=&quot;Multi-insert of images (generating a gallery) doesn&amp;#39;t work with CKE · Issue #705 · s9y/Serendipity · GitHub&quot;&gt;Code zum Einfügen von Bildergalerien&lt;/a&gt; und macht Probleme beim &lt;a href=&quot;https://netz-rettung-recht.de/archives/1985-Serendipity-und-das-Markdown-Plugin.html#c5156&quot; title=&quot;&quot;&gt;Einfügen von Code&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Der dickste Brocken zum Schluss: ein zumindest partiell seit ewigen Zeiten bestehender Bug sorgte dafür, dass erweiterte Eigenschaften von Artikeln - wie Funktionen aus &lt;em&gt;serendipity_event_entryproperties&lt;/em&gt;, durch &lt;em&gt;serendipity_event_metadesc&lt;/em&gt; erzeugte Eingaben oder das Eintragsbild aus &lt;em&gt;serendipity_event_social&lt;/em&gt; - verlorengehen, wenn der Beitrag aus dem Dashboard heraus veröffentlicht wird, aber auch, wenn Plugins den Hook &lt;code&gt;backend_save&lt;/code&gt; (oder &lt;code&gt;backend_publish&lt;/code&gt;) triggern. Letzteres passierte bspw. immer dann, wenn &lt;code&gt;serendipity_event_trackback&lt;/code&gt; installiert war und der Beitrag sein Veröffentlichungsdatum erreicht hatte, selbst dann, wenn es sich nur um einen Entwurf handelte. Den Effekt hatte ich seit Jahren beobachtet, aber nie richtig festmachen können - er fiel mir ausschließlich bei der &lt;em&gt;Description&lt;/em&gt; aus &lt;em&gt;serendipity_event_metadesc&lt;/em&gt; auf, und da war ich mir oft gar nicht sicher, ob ich nicht vergessen hatte, eine einzugeben. Mit der Zeit stellte sich das aber als Bug heraus, der &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;2018&lt;/a&gt; das erste Mal berichtet wurde und sehr schwer zu debuggen war, weil das Verhalten nicht reproduzierbar wirkte. Außerdem nutzte wohl kaum jemand sonst &lt;em&gt;serendipity_event_metadesc&lt;/em&gt;, und zudem mussten ja die anderen Randbedingungen auch noch zusammenkommen. Ich habe dann über Jahre hinweg Entwürfe entweder bis zur Veröffentlichung direkt außerhalb von &lt;em&gt;Serendipity&lt;/em&gt; gespeichert oder vor der Veröffentlichung gegengecheckt, bis ich Mitte 2019 glaubte, den Fehler behoben zu haben. Das war er aber nicht, und er trat dann schließlich auch &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;anderswo&lt;/a&gt; (und dann auch mit der neuen Funktion eines eintragsspezifischen Bildes in &lt;em&gt;serendipity_event_social&lt;/em&gt;) auf. Witzigerweise hatten wir das eigentliche Problem &lt;a href=&quot;https://github.com/s9y/Serendipity/issues/577#issuecomment-500216029&quot; title=&quot;Meta-Description gets &amp;quot;lost&amp;quot; constantly · Issue #577 · s9y/Serendipity · GitHub&quot;&gt;bereits 2019 erkannt&lt;/a&gt;, aber dann wieder aus dem Blick verloren; bis gerade eben erinnerte ich mich noch nicht einmal an die damaligen Hinweise. :-/ Anyway, bei Gelegenheit schreibe ich vielleicht noch einmal die Debugging-Schritte auf, wenn ich Zeit dazu finde. Am wichtigsten: dieses sehr ärgerliche Problem ist behoben, und man kann seine Entwürfe nun (wieder?) ohne Bedenken bis zur Veröffentlichung in &lt;em&gt;Serendipity&lt;/em&gt; speichern.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Schauen wir mal, was das nächste Patch-Release bringt (das nicht allzu lange auf sich warten lassen sollte, nachdem ein ärgerlicher Fehler leider &lt;a href=&quot;https://board.s9y.org/viewtopic.php?f=11&amp;amp;t=24753&amp;amp;p=10453187#p10453186&quot; title=&quot;404 Not Found&quot;&gt;diesmal nicht behoben wurde&lt;/a&gt;, und wann wir uns über ein &lt;em&gt;Serendipity 2.4&lt;/em&gt; freuen dürfen.&lt;/p&gt;

&lt;h3 id=&quot;was-andere-dazu-sagen&quot;&gt;Was andere dazu sagen&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&amp;#8220;Nur ein Blog&amp;#8221; von Robert Lender:&lt;br /&gt;
&lt;a href=&quot;https://www.robertlender.info/blog/archives/4421-Serendipity-2.3.5-veroeffentlicht&quot; title=&quot;301 Moved Permanently&quot;&gt;Serendipity 2.3.5 veröffentlicht&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/43fbabbc880441ffad42b8d71ab7d702&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

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

</item>
<item>
    <title>Der Teufel steckt im Detail</title>
    <link>https://netz-rettung-recht.de/archives/2246-Der-Teufel-steckt-im-Detail.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2246-Der-Teufel-steckt-im-Detail.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2246</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Vor einigen Tagen hatte ich &lt;a href=&quot;https://netz-rettung-recht.de/archives/2240-Details-ganz-einfach.html&quot; title=&quot;&quot;&gt;berichtet&lt;/a&gt;, wie sich mithilfe der &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt;- und &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt;-Elemente von &lt;em&gt;HTML 5&lt;/em&gt; ganz leicht &amp;#8220;ausklappbare&amp;#8221; Erläuterungen - nur mit HTML und ggf. CSS, ohne Javascript - erzeugen lassen. Danach ist mir aufgefallen, dass wir - also vor allem vermutlich &lt;em&gt;yellowled&lt;/em&gt; - das in &lt;em&gt;Serendipity&lt;/em&gt; auch schon nutzen: im &lt;em&gt;2k11&lt;/em&gt;-Theme wird damit im Blog die einblendbare &amp;#8220;Vorschau&amp;#8221; der Trackback realisiert, und im Backend findet derselbe Mechanismus bei der Einblendung weiterer Informationen in den Plugin-Boxen Anwendung.&lt;/p&gt;

&lt;p&gt;In einem &lt;a href=&quot;https://netz-rettung-recht.de/archives/2240-Details-ganz-einfach.html#c5139&quot; title=&quot;&quot;&gt;Kommentar&lt;/a&gt; zu meinen Blogeintrag hatte &lt;em&gt;Beat&lt;/em&gt; dann vorgeschlagen, statt der Screenshots doch lieber ein Live-Beispiel im Blog zu zeigen. Das wollte ich dann &amp;#8220;mal eben schnell&amp;#8221; nachholen - und natürlich ging das dann nicht &amp;#8220;mal eben&amp;#8221;, und nicht richtig schnell, so dass ich daran dann länger geknobelt habe. Mittlerweile tut es aber.&lt;/p&gt;

&lt;h3 id=&quot;-details-und-summary-in-der-praxis&quot;&gt;&lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; und &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt; in der Praxis&lt;/h3&gt;

&lt;details&gt;

&lt;summary&gt;Lorem ipsum!&lt;/summary&gt;

&lt;p&gt;Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat,&lt;/li&gt;
&lt;li&gt;vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan&lt;/li&gt;
&lt;li&gt;et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.&lt;/p&gt;

&lt;/details&gt;

&lt;p&gt;Der &amp;#8220;Quellcode&amp;#8221; dafür sieht wie folgt aus (mit &lt;code&gt;serendipity_event_markdown&lt;/code&gt; und &lt;em&gt;Markdown Extra&lt;/em&gt;, damit Markdown auch innerhalb von HTML geparsed werden kann):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;details markdown=&quot;1&quot;&amp;gt;&amp;lt;summary&amp;gt;Lorem ipsum!&amp;lt;/summary&amp;gt;

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

* Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat,
* vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan
* et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. 

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

&amp;lt;/details&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Natürlich geht das auch ohne Markdown; dann müsste man eben bspw. komplett HTML verwenden, etwa so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;details&amp;gt;&amp;lt;summary&amp;gt;Lorem ipsum!&amp;lt;/summary&amp;gt;
&amp;lt;p&amp;gt;Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.&amp;lt;/p&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat,&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&amp;lt;p&amp;gt;Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.&amp;lt;/p&amp;gt;
&amp;lt;/details&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So weit, so gut; es passen auch Listen und alles mögliche anderen Elemente in einen &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt;-Abschnitt.&lt;/p&gt;

&lt;p&gt;Das ganze hat allerdings, wie schon geschildert, nicht ganz auf Anhieb geklappt.&lt;/p&gt;

&lt;h3 id=&quot;anpassungen-am-css&quot;&gt;Anpassungen am CSS&lt;/h3&gt;

&lt;p&gt;Initial war kaum erkennbar, dass dort etwas &amp;#8220;ausklappbar&amp;#8221; ist; es fehlte nämlich das typische &amp;#8220;Dreieck&amp;#8221; vor dem &lt;em&gt;summary&lt;/em&gt;. Das liegt daran, dass das Stylesheet von &lt;em&gt;2k11&lt;/em&gt; für das &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt;-Element im Frontend &lt;code&gt;display: block;&lt;/code&gt; vorsieht, es also nicht als Liste anzeigt. Es dürfte zu erwägen sein, das auf die Darstellung der Trackbacks zu begrenzen. Bis dahin kann man in einem User-Stylesheet (&lt;code&gt;user.css&lt;/code&gt;) Abhilfe schaffen, zum Beispiel so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/* restore browser defaults for details &amp;amp; summary */
.content details &amp;gt; summary:first-of-type {
  display: list-item;
  counter-increment: list-item 0;
  list-style: disclosure-closed inside;
}

.content details[open] &amp;gt; summary:first-of-type {
  list-style-type: disclosure-open;
}

.content details &amp;gt; summary:first-of-type &amp;gt; *|* {
  /* Cancel &quot;list-style-position: inside&quot; inherited from summary. */
  list-style-position: initial;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Das entspricht dem Browser-Stylesheet des &lt;em&gt;Firefox&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update vom 25.04.2020&lt;/strong&gt;: Die vorstehende Änderung ist nicht mehr nötig, weil das Stylesheet von &lt;em&gt;2k11&lt;/em&gt; mit der Version &lt;strong&gt;2.3.5&lt;/strong&gt; von &lt;em&gt;Serendipity&lt;/em&gt; entsprechend angepasst wurde.&lt;/p&gt;

&lt;p&gt;Außerdem finde ich persönlich es schick, wenn die Überschrift des &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt;-Elements, also &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt;, durch Fettschrift hervorgehoben und das gesamte Element etwas kleiner (und mit verringertem Zeilenabstand) dargestellt wird. Dementsprechend müssen dann auch die Abstände zwischen den Absätzen kleiner sein. Außerdem möchte ich nicht, dass der &amp;#8220;ausklappbare&amp;#8221; Bereich bzw. - solange nichts ausgeklappt ist - die Überschrift nach innen eingerückt sind; beides soll vielmehr auf der linken Seite bündig abschließen. Das alles habe ich im &lt;code&gt;user.css&lt;/code&gt; so gelöst:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/* details &amp;amp; summary */
.content details {
    font-size: 80%;       
    line-height: 1.6em;   
    padding-left: 1em;
}

.content details &amp;gt; summary {
    font-weight: bold;
    margin-left: -1em;
    margin-bottom: 0.5em; 
}

.content details p, 
.content details ul,
.content details ol {
    margin-bottom: 0.2em;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&quot;anpassungen-am-markdown-plugin-bzw-an-php-markdown-&quot;&gt;Anpassungen am Markdown-Plugin bzw. an &lt;em&gt;PHP Markdown&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Die Darstellung sah immer noch nicht richtig aus; eine genauere Betrachtung ergab, dass um die einzelnen Teile des &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt;-Elements &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;-Elemente verstreut waren. Das kann nicht richtig sein; ich hielt erst &lt;code&gt;serendipity_event_nl2br&lt;/code&gt; für den Bösewicht, es stellte sich aber heraus, dass der Fehler in Wahrheit im Markdown-Parser von &lt;code&gt;serendipity_event_markdown&lt;/code&gt; lag. Trotz Probieren ließ sich dafür keine Abhilfe schaffen; also musste ich einen Blick in die Innereien von &lt;em&gt;PHP Markdown&lt;/em&gt; werfen - das ist die Bibliothek, auf die das Markdown-Plugin aufsetzt.&lt;/p&gt;

&lt;p&gt;Offenbar wurde &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; im Gegensatz zu bspw. &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; nicht als Block-Level-Element erkannt. Die Lektüre im Issue-Tracker des &lt;em&gt;PHP-Markdown&lt;/em&gt;-Projekts ergab Hinweise auf eine mögliche Lösung, die ich dann getestet und umgesetzt habe. Die Änderung wurde bereits in den &lt;em&gt;PHP-Markdown&lt;/em&gt;-Code &lt;a href=&quot;https://github.com/michelf/php-markdown/pull/329&quot; title=&quot;Treat &amp;lt;details&amp;gt; and &amp;lt;summary&amp;gt; as block level. by th-h · Pull Request #329 · michelf/php-markdown · GitHub&quot;&gt;übernommen&lt;/a&gt;. Um nicht auf ein neues Release warten zu müssen, habe ich die Änderungen direkt in die Code-Kopie in unserem Markdown-Plugin kopiert, so dass sie für &lt;em&gt;Serendipity&lt;/em&gt; direkt nach dem Update des Plugins zur Verfügung stehen.&lt;/p&gt;

&lt;p&gt;Nun funktioniert&amp;#8217;s in meinem Blog so, wie das sein soll.&lt;/p&gt;

&lt;p&gt;Wer einen &amp;#8220;grafischen&amp;#8221; &lt;em&gt;WYSIWYG&lt;/em&gt;-Editor verwendet, muss ggf. darauf achten, dass dieser &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; und &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt; erkennt und nicht ausfiltert. Ob der mit &lt;em&gt;Serendipity&lt;/em&gt; ausgelieferte Editor das kann, weiß ich nicht, weil ich ihn nicht verwende (und bislang den Code des Editors auch nicht recht durchschaut habe).&lt;/p&gt;

&lt;p&gt;Danke jedenfalls nochmal an &lt;em&gt;Beat&lt;/em&gt; für seinen Vorschlag, das direkt im Blog zu demonstrieren, wenn die Umsetzung auch mehrere ungeplante &amp;#8220;Abstecher&amp;#8221; nach sich zog.&lt;/p&gt;

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

    <pubDate>Thu, 23 Apr 2020 06:15:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2246-guid.html</guid>
    <category>s9y</category>
<category>webdesign</category>

</item>
<item>
    <title>Blogbeiträge in sozialen Medien teilen</title>
    <link>https://netz-rettung-recht.de/archives/2231-Blogbeitraege-in-sozialen-Medien-teilen.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2231-Blogbeitraege-in-sozialen-Medien-teilen.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2231</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;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. &amp;#8220;Blogosphäre&amp;#8221; 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. &amp;#8220;Sozialen Medien&amp;#8221; (social media), also bspw. Twitter, Facebook und Instagram, eingenommen. Und man vernetzt sich heutzutage auch eher dort als über Kommentare und &lt;a href=&quot;https://netz-rettung-recht.de/archives/1964-Sind-Trackbacks-und-Pingbacks-out.html&quot; title=&quot;&quot;&gt;Trackbacks&lt;/a&gt; in den eigenen Blogs.&lt;/p&gt;

&lt;p&gt;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 &lt;em&gt;World Wide Web&lt;/em&gt; einen großen Schritt zurück in die Welt der Onlinedienste der 90er Jahre zu machen, in der Inhalte nur innerhalb der jeweiligen Dienste (&amp;#8220;Silos&amp;#8221;) 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 &amp;#8230; Deshalb hilft es auch nur bedingt, dass Facebook mit den wenig bekannten und genutzten Notizen (&amp;#8220;Notes&amp;#8221;) 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.&lt;/p&gt;

&lt;h3 id=&quot;blogbeitr-ge-in-sozialen-medien-teilen&quot;&gt;Blogbeiträge in sozialen Medien teilen&lt;/h3&gt;

&lt;p&gt;Es geht also nichts über das eigene Blog - aber wie macht man dessen Inhalte sichtbar? Die Vernetzung über Links und Blogrolls oder gar Blogverzeichnisse funktioniert allenfalls innerhalb der &amp;#8220;Blogosphäre&amp;#8221;, erreicht aber den durchschnittlichen Internetnutzer nicht; und wenn man Leser gefunden hat, können diese das Blog natürlich über einen RSS-Feed &amp;#8220;abonnieren&amp;#8221; oder verfolgen, aber auch RSS (und Atom) gerät zunehmend in Vergessenheit. Das lässt sich nicht nur an der Einstellung des &lt;em&gt;Google Readers&lt;/em&gt; 2013 (sieben Jahre ist das schon her!) erkennen, sondern auch am Wegfall der Unterstützung für diese Formate in populären Programmen wie &lt;em&gt;Firefox&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Ein guter Weg ist daher die Ankündigung bzw. das Teilen der eigenen Beiträge in den proprietären sozialen Netzwerken, um auch deren Nutzer &amp;#8220;abzuholen&amp;#8221; und es ihnen zu ermöglichen, auf diese Weise dem eigenen Blog zu &amp;#8220;folgen&amp;#8221;. Das kann man selbst tun, man kann es automatisieren und man kann auch den Lesern einfache Möglichkeiten bieten, die Beiträge über ihre Accounts zu teilen; entsprechende &amp;#8220;Sharing Buttons&amp;#8221; gehören mittlerweile zum gewohnten Bild vieler Webpräsenzen.&lt;/p&gt;

&lt;p&gt;Ein simpler Link ist aber auf Twitter alles anderen als ein Eye-Catcher, und Facebook erzeugt zwar eine ansehnliche Vorschau für Links, die man in seinen Status aufnimmt, doch auch das gelingt nicht immer optimal: die dort abgebildeten einleitenden Worte sind für einen Überblick über den Beitrag nicht unbedingt geeignet, und wenn ein Bild ausgewählt wird, dann passt es oft überhaupt nicht zum Link. Wie schön wäre es, wenn man bei Facebook Bild und Zusammenfassung selbst kontrollieren könnte und bei Twitter für seine Links ebenfalls eine Vorschau anzeigen könnte, wie man das von anderen Tweets - bspw. verschiedener Medien - kennt! Und all das kann man; auch und gerade mit &lt;em&gt;Serendipity&lt;/em&gt;. Und man sollte es auch tun, jedenfalls dann, wenn man seine Beiträge in sozialen Medien teilen will.&lt;/p&gt;

&lt;h3 id=&quot;vorschaubilder-f-r-links-bei-twitter-und-facebook-und-anderswo-&quot;&gt;Vorschaubilder für Links bei Twitter und Facebook (und anderswo)&lt;/h3&gt;

&lt;figure class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 607px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:806 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;607&quot; height=&quot;247&quot;  src=&quot;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-twitter-card.png&quot; title=&quot;Blogbeitrag, geteilt auf Twitter&quot; alt=&quot;&quot;&gt;&lt;/div&gt;&lt;figcaption class=&quot;serendipity_imageComment_txt&quot;&gt;Blogbeitrag, geteilt auf Twitter.&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;Das &amp;#8220;Geheimnis&amp;#8221; hinter den Bildern und Zusammenfassungen, mit der Twitter und Facebook (aber auch andere Dienste wie bspw. &lt;em&gt;Tumblr&lt;/em&gt; oder &lt;em&gt;Slack&lt;/em&gt;) Links ersetzen bzw. aufhübschen, ist das &lt;em&gt;Open Graph Protocol&lt;/em&gt;, das Twitter in der Form von &lt;em&gt;Twitter Cards&lt;/em&gt; leicht abwandelt. All das, was man in diesen Vorschaublocks sieht, findet sich unsichtbar im &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;-Abschnitt der jeweiligen Webseite, die verlinkt wurde. Dort finden sich spezielle &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt;-Tags, in denen Titel, Beschreibung, Link, Bild usw. hinterlegt sind, die in der Vorschau erscheinen sollen. Die Einzelheiten dazu - mit vielen Beispielen und Empfehlungen, bspw. zu Bildgrößen und Länge der einzelnen Textelemente - habe ich vor vier Jahren schon einmal in dem Beitrag &amp;#8220;&lt;a href=&quot;https://netz-rettung-recht.de/archives/1906-Open-Graph-Protocol-und-Twitter-Cards.html&quot; title=&quot;&quot;&gt;Open Graph Protocol und Twitter Cards&lt;/a&gt;&amp;#8221; hier im Blog erläutert. &lt;em&gt;(Alle Links sind noch einmal am Ende des Beitrags zusammengefasst.)&lt;/em&gt;&lt;/p&gt;

&lt;figure class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 400px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot; title=&quot;Blogbeitrag, geteilt auf Facebook&quot;  rel=&#039;lightbox[2231]&#039; href=&#039;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-open-graph.png&#039;&gt;&lt;!-- s9ymdb:803 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;400&quot; height=&quot;372&quot;  src=&quot;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-open-graph.serendipityThumb.png&quot; title=&quot;Blogbeitrag, geteilt auf Facebook&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;figcaption class=&quot;serendipity_imageComment_txt&quot;&gt;Blogbeitrag, geteilt auf Facebook.&lt;/figcaption&gt;&lt;/figure&gt;

&lt;h4 id=&quot;-serendipity-event-social-&quot;&gt;&lt;code&gt;serendipity_event_social&lt;/code&gt;&lt;/h4&gt;

&lt;p&gt;Die notwendigen Einträge kann das &lt;em&gt;Serendipity&lt;/em&gt;-Plugin &lt;code&gt;serendipity_event_social&lt;/code&gt; setzen, das sich über den Plugin-Manager &lt;em&gt;Spartacus&lt;/em&gt; installieren lässt.&lt;/p&gt;

&lt;figure class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 400px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot; title=&quot;Social-Media-Bild pro Beitrag&quot;  rel=&#039;lightbox[2231]&#039; href=&#039;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-entry-image.png&#039;&gt;&lt;!-- s9ymdb:801 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;400&quot; height=&quot;236&quot;  src=&quot;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-entry-image.serendipityThumb.png&quot; title=&quot;Social-Media-Bild pro Beitrag&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;figcaption class=&quot;serendipity_imageComment_txt&quot;&gt;Ein beitragsspezifisches Bild.&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;Das verwendete Bild kann man in &lt;em&gt;Serendipity&lt;/em&gt; für jeden Eintrag unter den &amp;#8220;Erweiterten Optionen&amp;#8221; des Eintrags gesondert auswählen. Wird hier keine Auswahl getroffen, verwendet &lt;em&gt;Serendipity&lt;/em&gt; bei den Themes &lt;em&gt;Timeline&lt;/em&gt; und &lt;em&gt;Photo&lt;/em&gt; die - nur - dort vorgesehenen Titelbilder (bzw. &amp;#8220;featured images&amp;#8221;) für jeden Eintrag; ansonsten wird das erste im Eintrag vorkommende Bild verwendet. Gibt es auch dort kein Bild, greift &lt;em&gt;Serendipity&lt;/em&gt; auf das in der Plugin-Konfiguration definierte Standardbild zurück.&lt;/p&gt;

&lt;h4 id=&quot;-serendipity-event-metadesc-&quot;&gt;&lt;code&gt;serendipity_event_metadesc&lt;/code&gt;&lt;/h4&gt;

&lt;p&gt;Die für den Titel und die Beschreibung verwendeten Texte kann &lt;code&gt;serendipity_event_social&lt;/code&gt; allerdings nicht setzen; es greift standardmäßig vielmehr auf den Titel des Beitrags und die ersten 200 Zeichen des Beitrags zurück. Auch das lässt sich aber steuern, und zwar mit dem Plugin &lt;code&gt;serendipity_event_metadesc&lt;/code&gt;.&lt;/p&gt;

&lt;figure class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 400px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot; title=&quot;Meta-Beschreibung pro Eintrag&quot;  rel=&#039;lightbox[2231]&#039; href=&#039;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-meta.png&#039;&gt;&lt;!-- s9ymdb:802 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;400&quot; height=&quot;241&quot;  src=&quot;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-meta.serendipityThumb.png&quot; title=&quot;Meta-Beschreibung pro Eintrag&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;figcaption class=&quot;serendipity_imageComment_txt&quot;&gt;Die Eingabefelder des &lt;i&gt;Metadesc&lt;/i&gt;-Plugins in der Beitragsbearbeitung.&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;Dieses Plugin bietet für jeden Eintrag - ebenfalls in den &amp;#8220;Erweiterten Optionen&amp;#8221; - die Möglichkeit, die &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt;-Tags &lt;em&gt;Description&lt;/em&gt; und &lt;em&gt;Keywords&lt;/em&gt; zu setzen, auf die übrigens auch Suchmachinen wie Google für die Suche wie auch die Darstellung der Suchergebnisse zugreifen. Es empfiehlt sich daher ohnehin, dieses Plugin zu installieren und für die eigenen Blogbeiträge ein knackiges Summary zu hinterlegen. Auf die dort eingegegeben &lt;em&gt;Description&lt;/em&gt; greift auch &lt;code&gt;serendipity_event_social&lt;/code&gt; zurück und übernimmt sie für die &lt;em&gt;Open Graph&lt;/em&gt;-Einträge.&lt;/p&gt;

&lt;h3 id=&quot;sharebuttons-mit-serendipity-event-social-&quot;&gt;Sharebuttons mit &lt;code&gt;serendipity_event_social&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Vorschaubilder und passende Beschreibungen auf Twitter und Facebook sind ja schon toll - noch toller wäre es aber, wenn man selbst (und die werte Leserschaft!) Blogbeiträge einfach und datenschutzkonform auf Facebook, Twitter und anderen sozialen Medien teilen könnte, am besten, ohne den Eintragstitel und den Link von Hand kopieren zu müssen. Kurzum, entsprechende Buttons wären schön, wie die sozialen Netzwerke sie anbieten, aber doch bitte möglichst ohne das Nachladen irgendwelchen Codes von dort, der dann wer-weiß-welche Informationen über die Besucher des eigenen Blogs nach dort übermittelt. Dafür gibt es von &lt;em&gt;Heise online&lt;/em&gt; das &lt;a href=&quot;https://github.com/heiseonline/shariff&quot; title=&quot;GitHub - heiseonline/shariff: 👮 Shariff enables website users to share their favorite content without compromising their privacy. · GitHub&quot;&gt;&lt;em&gt;Shariff&lt;/em&gt;&lt;/a&gt;-Projekt, das &amp;#8220;Teilen&amp;#8221;-Buttons für soziale Netzwerke ohne jede Datenübermittlung an dieselben anbietet (bis man darauf klickt, logischerweise - denn dann will man ja gerade, äh, Daten teilen).&lt;/p&gt;

&lt;p&gt;Und auch &lt;em&gt;Shariff&lt;/em&gt; kann man mit &lt;code&gt;serendipity_event_social&lt;/code&gt; in das eigene Blog einbinden - das ist sogar der primäre Anwendungsbereich dieses Plugins.&lt;/p&gt;

&lt;figure class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 400px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot; title=&quot;serendipity_event_social&quot;  rel=&#039;lightbox[2231]&#039; href=&#039;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-s9y-event-social.png&#039;&gt;&lt;!-- s9ymdb:804 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;400&quot; height=&quot;296&quot;  src=&quot;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-s9y-event-social.serendipityThumb.png&quot; title=&quot;serendipity_event_social&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;figcaption class=&quot;serendipity_imageComment_txt&quot;&gt;Die Konfiguration des &lt;i&gt;Sharebuttons&lt;/i&gt;-Plugins.&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;In der Pluginkonfiguration lassen sich die sozialen Netzwerke auswählen, für die &amp;#8220;Teilen&amp;#8221;-Buttons am Ende jedes Beitrags angezeigt werden sollen - soweit das &lt;em&gt;Shariff&lt;/em&gt;-Projekt entsprechende Buttons anbietet. Außerdem kann man auswählen, ob die Buttons nur unter den einzelnen Einträgen erscheinen sollen oder auch auf Übersichtsseiten wie der Startseite des Blogs, den Archivseiten oder Suchergebnissen unter jedem Beitrag angezeigt werden sollen.&lt;/p&gt;

&lt;p&gt;Hier wird auch das bereits weiter oben angesprochene Fallback-Bild konfiguriert, das als Vorschaubild in den sozialen Medien angezeigt wird, wenn im Beitrag kein Bild angegeben ist bzw. sich keines dort findet. Für die Twitter-Nutzer kann man zudem noch das eigene Twitter-Handle an den geteilten Text anhängen lassen.&lt;/p&gt;

&lt;p&gt;Außerdem bietet das &lt;em&gt;Shariff&lt;/em&gt;-Projekt für diejenigen sozialen Netzwerke, die das unterstützen, einen Zähler an, wie oft der Beitrag dort bereits geteilt wurde; das ist im Wesentlichen allerdings nur noch Facebook. Außerdem braucht es dazu ein Backend; die dazu notwendige Software kann man selbst installieren, oder man greift auf die von &lt;em&gt;Serendipity&lt;/em&gt;-Entwickler &lt;a href=&quot;https://www.onli-blogging.de/&quot; title=&quot;onli blogging&quot;&gt;onli&lt;/a&gt; angebotene Installation auf &lt;code&gt;https://onli.columba.uberspace.de/s9y_shariff/&lt;/code&gt; zurück, die im Plugin auch als Default eingestellt ist.&lt;/p&gt;

&lt;h3 id=&quot;beitr-ge-automatisch-teilen&quot;&gt;Beiträge automatisch teilen&lt;/h3&gt;

&lt;p&gt;Noch besser als auf Knopfdruck geteilte Beiträge mit passendem Bild und Text sind nur automatisch geteilte Beiträge - und auch das geht, allerdings nicht mehr mit Facebook, jedenfalls nicht auf der eigenen Profilseite, sondern nur auf &amp;#8220;Facebook Pages&amp;#8221;, also quasi Fanseiten.&lt;/p&gt;

&lt;p&gt;Für diese Aufgabe eignen sich eine Vielzahl von Diensten, die sich die Vernetzung verschiedener Apps zur Aufgabe gemacht haben; zu den bekannteren zählen bspw. &lt;em&gt;&amp;#8220;If This Then That&amp;#8221;&lt;/em&gt; (&lt;a href=&quot;https://ifttt.com/&quot; title=&quot;IFTTT - Automate business &amp;amp; home&quot;&gt;IFTTT&lt;/a&gt;) oder &lt;a href=&quot;https://zapier.com/&quot; title=&quot;&quot;&gt;&lt;em&gt;Zapier&lt;/em&gt;&lt;/a&gt;. Allen diesen gemeinsam ist, dass man einen Auslöser (Trigger) mit einer Aktion verbindet (und ggf. noch Filter dazwischenschaltet). Man beauftragt den Dienst bspw., regelmäßig den RSS-Feed des eigenen Blogs abzurufen und immer dann, wenn sich dort ein neuer Beitrag findet, einen Tweet oder einen Facebook-Post auf der eigenen Fanseite zu veröffentlichen (oder sonst etwas zu tun).&lt;/p&gt;

&lt;h4 id=&quot;-serendipity-event-twitter-&quot;&gt;&lt;code&gt;serendipity_event_twitter&lt;/code&gt;&lt;/h4&gt;

&lt;p&gt;Soweit man jedoch mit automatischen Tweets auf Twitter zufrieden ist - weil man bspw. keine Facebook-Fanseite hat und die Beiträge auf der eigenen Profilseite gezwungenermaßen von Hand veröffentlichen muss -, geht das auch mit &lt;em&gt;Serendipity&lt;/em&gt;-Bordmitteln: das Microblogging-Plugin &lt;code&gt;serendipity_event_twitter&lt;/code&gt; kündigt neue Beiträge sogar ohne die bei den Automatisierungsdiensten übliche Verzögerung im Bereich von Minuten (oder halben Stunden) sofort an!&lt;/p&gt;

&lt;p&gt;Die Vielzahl der Einstellungen und Möglichkeiten dieses Plugins würde allerdings die Grenzen dieses Beitrags sprengen, weshalb ich mich stattdessen auf einen Verweis auf die mit dem Plugin mitgelieferte mehrsprachige Dokumentation verweise, die sich aus der Plugin-Verwaltung von &lt;em&gt;Serendipity&lt;/em&gt; abrufen lässt und auch auf Github eingesehen werden kann (allerdings dann in &amp;#8220;rohem&amp;#8221; HTML). Für einen ersten Überblick genügt vielleicht auch der folgenden Screenshot.&lt;/p&gt;

&lt;figure class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 400px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a  class=&quot;serendipity_image_link&quot; title=&quot;Dokumentation für serendipity_event_twitter&quot;  rel=&#039;lightbox[2231]&#039; href=&#039;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-s9y-event-twitter-doc.png&#039;&gt;&lt;!-- s9ymdb:805 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;400&quot; height=&quot;203&quot;  src=&quot;https://netz-rettung-recht.de/uploads/articles/2020/2020-03-29-s9y-event-twitter-doc.serendipityThumb.png&quot; title=&quot;Dokumentation für serendipity_event_twitter&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;figcaption class=&quot;serendipity_imageComment_txt&quot;&gt;Screenshot der Dokumentation des Twitter-Plugins.&lt;/figcaption&gt;&lt;/figure&gt;

&lt;h3 id=&quot;zusammenfassung&quot;&gt;Zusammenfassung&lt;/h3&gt;

&lt;p&gt;Wer seine Blogbeiträge einfach und mit einer schicken Vorschau versehen auf Twitter, Facebook und Co teilen möchte. installiert sich die Plugins  &lt;code&gt;serendipity_event_social&lt;/code&gt;  und &lt;code&gt;serendipity_event_metadesc&lt;/code&gt; und füllt im Beitragseditor die Felder für die Meta-Beschreibung und ggf. das Eintragsbild aus; sollen die Veröffentlichungen bei Twitter automatisch erscheinen, kommt noch die Installation und Konfiguration von &lt;code&gt;serendipity_event_twitter&lt;/code&gt; dazu. Das war&amp;#8217;s!&lt;/p&gt;

&lt;p&gt;Selbstverständlich gibt es auch für andere Blogsysteme und CMS - wie Wordpress - entsprechende Plugins, und selbstverständlich kann man &lt;em&gt;Open Graph&lt;/em&gt; und &lt;em&gt;Twitter Cards&lt;/em&gt; sowie &lt;em&gt;Shariff&lt;/em&gt; auch für die eigene Homepage nutzbar machen, sei es von Hand oder durch entsprechende Ergänzungen des verwendeten CMS oder &lt;em&gt;static site generators&lt;/em&gt;. Wie das aussehen kann, kann man sich bspw. auf meinen Webseiten ansehen.&lt;/p&gt;

&lt;h3 id=&quot;zusammenfassende-linkliste&quot;&gt;Zusammenfassende Linkliste&lt;/h3&gt;

&lt;p&gt;Hier noch einmal die wichtigsten Links zusammengestellt:&lt;/p&gt;

&lt;h4 id=&quot;grundlagen&quot;&gt;Grundlagen&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://netz-rettung-recht.de/archives/1906-Open-Graph-Protocol-und-Twitter-Cards.html&quot; title=&quot;&quot;&gt;Open Graph Protocol und Twitter Cards&lt;/a&gt; bei &lt;em&gt;Netz - Rettung - Recht&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://ogp.me/&quot; title=&quot;The Open Graph protocol&quot;&gt;The Open Graph protocol&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://developers.facebook.com/docs/sharing/best-practices&quot; title=&quot;&quot;&gt;Best Practices for Facebook Sharing&lt;/a&gt; &lt;em&gt;(facebook for developers)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started&quot; title=&quot;&quot;&gt;Optimize Tweets with Cards&lt;/a&gt; bei &lt;em&gt;Twitter developers&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;share-buttons&quot;&gt;Share-Buttons&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://netz-rettung-recht.de/archives/2077-Shariff-sichere-Sharing-Buttons.html&quot; title=&quot;&quot;&gt;Shariff - sichere Sharing-Buttons&lt;/a&gt; bei &lt;em&gt;Netz - Rettung - Recht&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/heiseonline/shariff&quot; title=&quot;GitHub - heiseonline/shariff: 👮 Shariff enables website users to share their favorite content without compromising their privacy. · GitHub&quot;&gt;Shariff&lt;/a&gt;-Repository bei &lt;em&gt;Github&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.heise.de/newsticker/meldung/Datenschutz-und-Social-Media-Der-c-t-Shariff-ist-im-Einsatz-2470103.html&quot; title=&quot;302 Found&quot;&gt;Datenschutz und Social Media: Der c&amp;#8217;t Shariff ist im Einsatz&lt;/a&gt; bei &lt;em&gt;heise online&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;automatisierungsdienste&quot;&gt;Automatisierungsdienste&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://ifttt.com/&quot; title=&quot;IFTTT - Automate business &amp;amp; home&quot;&gt;IFTTT&lt;/a&gt; &lt;em&gt;(&amp;#8220;If This Then That&amp;#8221;)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://zapier.com/&quot; title=&quot;&quot;&gt;Zapier&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;-serendipity-plugins&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt;-Plugins&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Serendipity&lt;/em&gt;-Plugin &lt;a href=&quot;https://spartacus.s9y.org/index.php?mode=bygroups_event_en#serendipity_event_social&quot; title=&quot;Spartacus | Serendipity Blog System&quot;&gt;&lt;em&gt;Sharebuttons&lt;/em&gt;&lt;/a&gt; (&lt;code&gt;serendipity_event_social&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Serendipity&lt;/em&gt;-Plugin &lt;a href=&quot;https://spartacus.s9y.org/index.php?mode=bygroups_event_de#serendipity_event_metadesc&quot; title=&quot;Spartacus | Serendipity Blog System&quot;&gt;&lt;em&gt;HTML Meta-Tags&lt;/em&gt;&lt;/a&gt; (&lt;code&gt;serendipity_event_metadesc&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Serendipity&lt;/em&gt;-Plugin &lt;a href=&quot;https://spartacus.s9y.org/index.php?mode=bygroups_event_de#serendipity_event_twitter&quot; title=&quot;Spartacus | Serendipity Blog System&quot;&gt;&lt;em&gt;Microblogging&lt;/em&gt;&lt;/a&gt; (&lt;code&gt;serendipity_event_twitter&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

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

    <pubDate>Wed, 08 Apr 2020 10:00:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2231-guid.html</guid>
    <category>anleitung</category>
<category>facebook</category>
<category>s9y</category>
<category>twitter</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>Serendipity 2.3.4 released</title>
    <link>https://netz-rettung-recht.de/archives/2230-Serendipity-2.3.4-released.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2230-Serendipity-2.3.4-released.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2230</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Was, schon wieder eine neue &lt;em&gt;Serendipity&lt;/em&gt;-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.
Alle Webanwendungen. die - wie &lt;em&gt;Serendipity&lt;/em&gt; - den Upload von Dateien ermöglichen, müssen verhindern, dass statt Bildern und Videos aktive Inhalte hochgeladen werden, bspw. PHP-Scripts. Denn da die Bilder vom Browser angezeigt werden sollen, liegen die Uploads in einem von außen aus dem Web erreichbaren Verzeichnis, und wenn es jemandem gelingt, dort ein PHP-Script zu platzieren, dann kann er auf dem Webserver eigenen Code ausführen. Dafür braucht es natürlich zunächst einmal Upload-Rechte in &lt;em&gt;Serendipity&lt;/em&gt;, aber es soll ja dennoch nicht jeder, der dort Bilder hochladen darf, auch Code ausführen dürfen. Nachdem Webserver sich bei der Frage, was sie mit abgerufenen Dateien tun sollen, meistens an der Dateiendung orientieren, achtet &lt;em&gt;Serendipity&lt;/em&gt; darauf, dass keine Dateien mit &amp;#8220;verbotenen&amp;#8221; Endungen hochgeladen werden.&lt;/p&gt;

&lt;p&gt;Es stellte sich aber heraus, dass es - nur auf Windows-Webservern! - möglich war, eine Datei ohne Endung hochzuladen (bspw. &lt;code&gt;datei&lt;/code&gt;) und sie dann in &lt;code&gt;datei.php&lt;/code&gt; umzubenennen. Unter Linux funktionierte das nicht; es kam dann &lt;code&gt;datei.php.&lt;/code&gt; heraus, und das ist nicht ausführbar. Windows scheint aber diesen Punkt mit &amp;#8220;leerer&amp;#8221; Endung wegfallen zu lassen. Außerdem muss man natürlich sagen, dass das Anhängen eines Punktes an den Dateinamen kaum der richtige Weg zu sein scheint, mit diesem Problem umzugehen - zumal sich in dem Bugreport ein weiteres Problem zeigte: beim nächsten Aufruf der Mediendatenbank &amp;#8220;verschwand&amp;#8221; diese umbenannte Datei (jedenfalls aus der Datenbank - auf der Platte war sie noch da).&lt;/p&gt;

&lt;p&gt;Der naheliegende Bugfix - Punkte am Ende von Dateinamen verbieten bzw. entfernen - erwies sich daher nicht als ausreichend. Das &amp;#8220;Anhängen&amp;#8221; eines Punktes an Dateien ohne Endung beim Umbenennen ist nicht nur falsch - es führte auch dazu, dass die in der Datenbank gespeicherte Datei (&lt;code&gt;datei&lt;/code&gt;) scheinbar auf der Platte nicht mehr vorhanden war (dort hieß sie ja &lt;code&gt;datei.&lt;/code&gt;) und daher aus der Datenbank gelöscht wurde. Nach Behebung dieses Fehlers war dann klar, dass beim Umbenennen von Dateien der Check auf &amp;#8220;verbotene&amp;#8221; Namen fehlte, der beim Upload durchgeführt wurde. Danach aber war nicht nur das Loch auf Windows-Systemen gestopft, sondern auch die Mediendatenbank wieder ein wenig stabiler.&lt;/p&gt;

&lt;p&gt;Und weil es ohnehin ein Release geben musste, haben wir noch einen weiteren Fehler behoben (überlange Worte in Kommentaren wurden in der &amp;#8220;Dashboard&amp;#8221;-Übersicht des Admin-Backends nicht umgebrochen) und die Pluginverwaltung um die Angabe der Quelle der dort gezeigten Plugins ergänzt: ist das jeweilige Plugin bei &lt;em&gt;Serendipity&lt;/em&gt; dabei, kann es von &lt;em&gt;Spartacus&lt;/em&gt; installiert werden oder existiert es nur lokal auf der Platte, erhält also auch keine Updates? Mit dieser Änderung war es dann auch möglich, den Link zu weiteren Informationen auf den &lt;em&gt;Spartacus&lt;/em&gt;-Webseiten für alle dort vorhandenen Plugins anzuzeigen, auch dann, wenn diese bereits installiert sind - das ging vorher nicht.&lt;/p&gt;

&lt;p&gt;Insofern gilt: unter Linux ist das Update auf 2.3.4 nicht zwingend, aber es behebt immerhin komische Seiteneffekte in der Mediendatenbank und fügt Plugin-Quellen hinzu.&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/48081cdb853c4235b99e5ae0f1277903&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Fri, 27 Mar 2020 05:50:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2230-guid.html</guid>
    <category>s9y</category>

</item>
<item>
    <title>Das virtuelle #s9ycamp2020</title>
    <link>https://netz-rettung-recht.de/archives/2228-Das-virtuelle-s9ycamp2020.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2228-Das-virtuelle-s9ycamp2020.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2228</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Und dann wurde &lt;em&gt;SARS-CoV-2&lt;/em&gt; 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 &lt;a href=&quot;https://blog.s9y.org/archives/288-.html&quot; title=&quot;Serendipity 2.3.3 released  - Serendipity&quot;&gt;virtuellen Variante des Camps&lt;/a&gt; versucht.&lt;/p&gt;

&lt;p&gt;Das ist natürlich etwas ganz anderes als beisammen zu sitzen und zu klönen - und mir fehlt die Erfahrung mit Videokonferenzen (und da war ich, glaube ich, nicht der einzige). Zudem waren entweder die Anbindungen mancher Teilnehmer oder vermutlich die genutzte Jitsi-Instanz stark überlastet, so dass wir auf Video verzichten mussten und nur per Audio konferiert haben. Das ist sehr anstrengend, insbesondere wenn - wie üblich - zwischendurch verschiedene Teilnehmer sich verschiedene Themen vornehmen.&lt;/p&gt;

&lt;p&gt;Dennoch haben wir einiges geschafft:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Die für das Patch-Release 2.3.3 vorgesehenen Änderungen wurden gegengelesen und in Test-Installationen kursorisch geprüft. Das machte den Weg frei für das &lt;a href=&quot;https://netz-rettung-recht.de/archives/2227-Serendipity-2.3.3-released.html&quot; title=&quot;&quot;&gt;Release&lt;/a&gt; am Sonntag.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Außerdem hatten wir Infrastruktur umzuziehen. Unser &lt;a href=&quot;https://blog.s9y.org/&quot; title=&quot;Serendipity &quot;&gt;Serendipity-Blog&lt;/a&gt; lief noch auf &lt;a href=&quot;https://wiki.uberspace.de/start&quot; title=&quot;&quot;&gt;&lt;em&gt;Uberspace 6&lt;/em&gt;&lt;/a&gt; - Zeit für einen Umzug. Der lief mangels Übung am Anfang etwas holprig und wurde zudem dadurch erschwert, dass man bei &lt;em&gt;Uberspace&lt;/em&gt; Accounts nicht einfach upgraden kann, sondern einen neuen Account anlegen muss. Mit dem neuen Accountnamen ändern sich dann aber auch Pfade und Datenbanknamen, -benutzer und Passworte; all das gefällt &lt;em&gt;Serendipity&lt;/em&gt; nicht so gut, noch weniger bei einer über Jahrzehnte gewachsenen Installation, die schon einige Umzüge hinter sich hat. Inzwischen läuft das Blog aber wieder, und wir haben auch den Build-Prozess für &lt;em&gt;Spartacus&lt;/em&gt;, das Plugin- und Theme-Repository, migriert, vereinfacht und wieder anschieben können. &lt;em&gt;Spartacus&lt;/em&gt; selbst ist schließlich ebenfalls zu &lt;em&gt;Uberspace&lt;/em&gt; umgezogen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Das dritte große Thema war dann die geplante Umstellung der Datenbank auf UFT8MB4 (u.a. für den richtigen Umgang mit Emojis). Die sich stellenden Fragen sind komplex (weil dank &amp;#8220;mehr Byte&amp;#8221; Indexe zu lange werden, neben Neuinstallationen auch Updates möglich sein müssen und das alles mit verschiedenen SQL-Engines in verschiedenen Versionen passen soll) und noch lange nicht gelöst, zudem die erste vorsichtige Implementation schon rund drei Jahre zurückliegt und daher schon etwas angestaubt ist. Wir sind aber, denke ich, auf einem guten Weg; ich hoffe jedenfalls sehr, dass das Problem in &lt;em&gt;Serendipity&lt;/em&gt; 2.4 - so oder so - gelöst sein wird.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;was-andere-dazu-sagen&quot;&gt;Was andere dazu sagen&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Malte Paskuda bei &lt;em&gt;onli blogging&lt;/em&gt;:&lt;br /&gt;
&lt;a href=&quot;https://www.onli-blogging.de/index.php?/1897/Rueckblick-auf-das-virtuelle-Serendipity-Camp-und-neues-zu-utf8mb4.html&quot; title=&quot;Rückblick auf das virtuelle Serendipity-Camp (und neues zu utf8mb4) - onli blogging&quot;&gt;Rückblick auf das virtuelle Serendipity-Camp (und neues zu utf8mb4)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/521c32d76b484080b5962a307d206703&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Wed, 25 Mar 2020 05:10:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2228-guid.html</guid>
    <category>s9y</category>

</item>
<item>
    <title>Serendipity 2.3.3 released</title>
    <link>https://netz-rettung-recht.de/archives/2227-Serendipity-2.3.3-released.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2227-Serendipity-2.3.3-released.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2227</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;In den letzten Monaten war es rund um &lt;em&gt;Serendipity&lt;/em&gt; eher still; vor allem im November und Dezember haben aber &lt;a href=&quot;https://github.com/stephanbrunker&quot; title=&quot;stephanbrunker · GitHub&quot;&gt;Stephan Brunker&lt;/a&gt; und &lt;em&gt;Lead Developer&lt;/em&gt; &lt;a href=&quot;https://garv.in/&quot; title=&quot;supergarv.de - garvin &#039;AvataR&#039; hicking :: design und web&quot;&gt;Garvin&lt;/a&gt; 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 &lt;a href=&quot;https://blog.s9y.org/archives/288-Serendipity-2.3.3-released.html&quot; title=&quot;Serendipity 2.3.3 released  - Serendipity&quot;&gt;2.3.3&lt;/a&gt; noch gezielt behoben.&lt;/p&gt;

&lt;p&gt;Die Einzelheiten finden sich wie immer in der &lt;code&gt;NEWS&lt;/code&gt;-Datei im Verzeichnis &lt;code&gt;/docs/&lt;/code&gt; und (strukturierter) in dem &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;Release-Announcement&lt;/a&gt; auf &lt;em&gt;Github&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Kurz zusammengefasst hat Garvin sich um das mit &lt;em&gt;Serendipity&lt;/em&gt; zusammen veröffentlichte Plugin &lt;code&gt;serendipity_event_mailer&lt;/code&gt; gekümmert und ihm Optionen für einen Vorspann in den Mailbenachrichtigungen über neue Einträge und für die Generierung von Mails auch bei Änderungen an schon veröffentlichten Beiträgen verpasst.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Die Mediendatenbank wurde weiter verbessert; zudem wurden ein paar verbliebene Fehler behoben. Seit &lt;em&gt;Serendipity&lt;/em&gt; 2.3 kann man beim Einfügen in Beiträge ja mehrere Bilder markieren, die dann nicht einzeln, sondern als eine Art Album eingeblendet werden. Wenn man allerdings nur ein Bild anhakt, dann sollte dieses Bild einzeln und nicht als Album eingefügt werden. Außerdem kann man Bilder jetzt auch durch einen Klick auf den Titel anhaken. Die Unterstützung von Dateien, die keine Bilder sind, bspw. Videos, wurde verbessert; &lt;em&gt;Serendipity&lt;/em&gt; merkt sich jetzt (wieder) das letzte Verzeichnis, in das man ein Bild hochgeladen hat; und, ganz wichtig, es kann nicht mehr passieren, dass man beim Umbenennen einer Datei versehentlich den Namen einer bereits bestehenden Datei angibt und dann beide verschwinden bzw. gelöscht werden. Für die Zukunft gibt es hier aber noch ein paar weitere Baustellen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Beim Aufruf von Archivseiten zeigen wir statt beliebig vieler &amp;#8220;leerer&amp;#8221; Archivseiten jetzt einfach die letzte existierende an; außerdem wurde ein Bug in der Erzeugung einzelner Seiten behoben, der zu unnötigen Verzögerungen beim Rendern der Templates geführt haben dürfte.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trackbacks kann man als eingeloggter User jetzt wieder aus dem Frontend löschen; da fehlte ein Token.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Die Anzeige von Kommentaren in der Seitenleiste wird jetzt nicht mehr durch Leerzeichen mitten in Worten zerstückelt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Und das BBCode-Plugin &lt;code&gt;serendipity_event_bbcode&lt;/code&gt; beherrscht jetzt auch Aufzählungen mit römischen Zahlen.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Das Update verlief hier im Blog problemlos.&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/f595a096cb4b4dc48aa91b982b8b0874&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Mon, 23 Mar 2020 05:30:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2227-guid.html</guid>
    <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>15 Jahre Serendipity</title>
    <link>https://netz-rettung-recht.de/archives/2209-15-Jahre-Serendipity.html</link>
            <category>Administratives</category>
    
    <comments>https://netz-rettung-recht.de/archives/2209-15-Jahre-Serendipity.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2209</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Vor etwas mehr als &lt;strong&gt;15 Jahren&lt;/strong&gt;, am 26.12.2004, habe ich mein Blog - das bereits im Juni 2018 seinen &lt;a href=&quot;https://netz-rettung-recht.de/archives/2085-15-Jahre.html&quot; title=&quot;&quot;&gt;15. Geburtstag&lt;/a&gt; hatte - von &lt;a href=&quot;http://web.archive.org/web/20031016004131/http://www.sunlog.org/&quot; title=&quot;Sunlog - Weblogsoftware in PHP und MySQL&quot;&gt;&lt;em&gt;Sunlog&lt;/em&gt;&lt;/a&gt; auf &lt;em&gt;Serendipity&lt;/em&gt; &lt;a href=&quot;https://netz-rettung-recht.de/archives/656-Neues-Jahr,-neues-Blog.html&quot; title=&quot;&quot;&gt;umgestellt&lt;/a&gt; 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.&lt;/p&gt;

&lt;p&gt;Neuneinhalb Jahre später habe ich das Blog dann beim &lt;a href=&quot;https://netz-rettung-recht.de/archives/1703-Netz-Rettung-Recht-Relaunch-des-Blogs.html&quot; title=&quot;&quot;&gt;Relaunch 2014&lt;/a&gt; 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 &lt;em&gt;Serendipity&lt;/em&gt; 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.&lt;/p&gt;

&lt;p&gt;Ich hoffe, dass &lt;em&gt;Serendipity&lt;/em&gt; mich auch noch weitere 15 Jahre begleiten wird und bin bereit, das meinige dafür zu tun.&lt;/p&gt;

&lt;figure class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 1184px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:782 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;1184&quot; height=&quot;850&quot;  src=&quot;https://netz-rettung-recht.de/uploads/articles/2020/blog-2003.png&quot; title=&quot;Aus dem Leben eines Szlauszafs anno 2003&quot; alt=&quot;&quot;&gt;&lt;/div&gt;&lt;figcaption class=&quot;serendipity_imageComment_txt&quot;&gt;So sah &lt;i&gt;Sunlog&lt;/i&gt; im Oktober 2003 bei mir aus (angepasst an das damalige Design meiner Homepage).&lt;/figcaption&gt;&lt;/figure&gt;
 
    </content:encoded>

    <pubDate>Thu, 02 Jan 2020 07:00:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2209-guid.html</guid>
    <category>s9y</category>

</item>
<item>
    <title>Zeigt her eure Blogs</title>
    <link>https://netz-rettung-recht.de/archives/2194-Zeigt-her-eure-Blogs.html</link>
            <category>Netzleben</category>
    
    <comments>https://netz-rettung-recht.de/archives/2194-Zeigt-her-eure-Blogs.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2194</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;&lt;!-- s9ymdb:754 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;223&quot; height=&quot;135&quot;  src=&quot;https://netz-rettung-recht.de/uploads/articles/2019/s9y-logo.serendipityThumb.png&quot; title=&quot;s9y-Logo&quot; alt=&quot;&quot;&gt;Im &lt;a href=&quot;https://board.s9y.org/&quot; title=&quot;Serendipity Forums - Index page&quot;&gt;&lt;em&gt;s9y&lt;/em&gt;-Forum&lt;/a&gt; gibt es seit kurzer Zeit wieder einen &lt;a href=&quot;https://board.s9y.org/viewforum.php?f=17&quot; title=&quot;Showcase - Serendipity Forums&quot;&gt;&lt;em&gt;Showcase&lt;/em&gt;-Bereich&lt;/a&gt;: ein Unterforum, um dort das eigene &lt;em&gt;s9y&lt;/em&gt;-Blog vorzustellen und Anregungen und Ideen für das Bloggen mit &lt;em&gt;s9y&lt;/em&gt; zu sammeln - sei es inhaltlich, oder optisch, oder technisch &amp;#8230; oder auch einfach &amp;#8220;nur&amp;#8221; Motivation.&lt;/p&gt;

&lt;p&gt;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!&lt;/p&gt;

&lt;p&gt;Die &lt;a href=&quot;https://board.s9y.org/viewtopic.php?f=17&amp;amp;t=24599&quot; title=&quot;404 Not Found&quot;&gt;Regeln&lt;/a&gt; sind einfach und überschaubar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keine Werbung!&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Verlinke&lt;/strong&gt; das vorgestellte Blog!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Eine kurze Darstellung der Themen/Inhalte und vielleicht etwas zur technischen Umsetzung mit &lt;em&gt;Serendipity&lt;/em&gt; (Welche Version? Welches Theme? Welche Plugins? Welche Besonderheiten?) wäre nett.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schön natürlich auch die Einbindung eines Screenshots, um sich direkt einen optischen Eindruck vom Blog machen zu können.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Die Beiträge im &lt;em&gt;s9y&lt;/em&gt;-Forum werden generell in &lt;strong&gt;englischer Sprache&lt;/strong&gt; verfasst.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ansonsten sind der Phantasie keine Grenzen gesetzt. Die bisherigen Beiträge können Anregungen für Themenbereiche sein, die sich in einer Blogvorstellung ganz gut machen. Aber die Einzelheiten sind dabei gar nicht so wichtig - vielmehr kommt es darauf an, einen Überblick über die Vielseitigkeit der &lt;em&gt;s9y&lt;/em&gt;-Blogosphäre zu geben und vielleicht bei dem einen oder der anderen das Interesse an einem eigenen &lt;em&gt;s9y&lt;/em&gt;-Blog zu wecken.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Thu, 14 Nov 2019 07:00:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2194-guid.html</guid>
    <category>s9y</category>

</item>
<item>
    <title>Serendipity 2.3.2 released</title>
    <link>https://netz-rettung-recht.de/archives/2187-Serendipity-2.3.2-released.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2187-Serendipity-2.3.2-released.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2187</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Nach dem Release von &lt;a href=&quot;https://netz-rettung-recht.de/archives/2168-Serendipity-2.3.0-released.html&quot; title=&quot;&quot;&gt;&lt;em&gt;Serendipity 2.3.0&lt;/em&gt;&lt;/a&gt; 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 &lt;a href=&quot;https://blog.s9y.org/archives/287-Serendipity-2.3.2-released-security-update.html&quot; title=&quot;Serendipity 2.3.2 released (security update)  - Serendipity&quot;&gt;2.3.2&lt;/a&gt; folgt.&lt;/p&gt;

&lt;p&gt;Wegen zweier potentiell sicherheitsrelevanter Bugs haben wir das Release vorgezogen, aber immerhin mehr als acht Fehler behoben; weitere Bugfixes stehen noch aus und werden - so hoffe ich doch - noch in diesem Jahr in einem weiteren Bugfix-Release gefixt. Daneben zeigen sich im Forum vergleichsweise rege Aktivitäten, und wir haben mit &lt;a href=&quot;https://github.com/stephanbrunker&quot; title=&quot;stephanbrunker · GitHub&quot;&gt;Stephan Brunker&lt;/a&gt; einen aktiven Mitstreiter gewonnen, der sich bereits Anfang des Jahres das &lt;em&gt;nl2br&lt;/em&gt;-Plugin vorgenommen hatte und nunmehr seit einigen Wochen mit der gründlichen Überholung des Plugins &lt;code&gt;serendipity_event_multilingual&lt;/code&gt; beschäftigt ist. Ich hoffe, dass wir die Pull-Requests zeitnah mergen können und dass der Elan weiter anhält. Vielleicht schaffen wir es ja auch, im Rest dieses oder Anfang des kommenden Jahres mit Serendipity 2.4 weiterzukommen.&lt;/p&gt;

&lt;p&gt;Serendipity 2.3.2 werkelt jedenfalls jetzt auch hier im Blog ohne Anstände.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Wed, 16 Oct 2019 08:05:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2187-guid.html</guid>
    <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>Serendipity 2.3.1 released</title>
    <link>https://netz-rettung-recht.de/archives/2170-Serendipity-2.3.1-released.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2170-Serendipity-2.3.1-released.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2170</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Nach Null kommt Eins, und nach &lt;a href=&quot;https://netz-rettung-recht.de/archives/2168-Serendipity-2.3.0-released.html&quot; title=&quot;&quot;&gt;&lt;em&gt;Serendipity&lt;/em&gt; 2.3.0&lt;/a&gt; folgt das erste Patch-Release &lt;a href=&quot;https://blog.s9y.org/archives/286-Serendipity-2.3.1-released.html&quot; title=&quot;Serendipity 2.3.1 released  - Serendipity&quot;&gt;&lt;strong&gt;Serendipity 2.3.1&lt;/strong&gt;&lt;/a&gt;, das primär die in meinem letzten &lt;a href=&quot;https://netz-rettung-recht.de/archives/2169-Serendipity-Weiterentwicklung,-Bugfixes-und-UEbersetzungen.html&quot; title=&quot;&quot;&gt;Blogbeitrag&lt;/a&gt; genannten Fehler behebt.&lt;/p&gt;

&lt;p&gt;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 &lt;em&gt;Serendipity&lt;/em&gt; 2.1.x nach &lt;em&gt;Serendipity&lt;/em&gt; 2.3.x aus dem Blog heraus (mit dem empfehlenswerten Plugin &lt;code&gt;serendipity_event_autoupdate&lt;/code&gt;). Letzteres funktioniert nämlich im Moment wegen einer Änderung bei der Berechnung der Datei-Prüfsummen zwischen den beiden Versionslinien nicht.&lt;/p&gt;

&lt;p&gt;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.
Das lässt uns nunmehr freie Hand bei der Weiterentwicklung zu &lt;em&gt;Serendipity&lt;/em&gt; 2.4.&lt;/p&gt;

&lt;p&gt;Was wäre denn aus Sicht der Leserschaft - sofern sie noch selbst bloggt und dazu noch &lt;em&gt;Serendipity&lt;/em&gt; verwendet - für die nächste Version wichtig oder wünschenswert? (Falls die Antwort darauf lautet &amp;#8220;Das Plugin &lt;code&gt;serendipity_event_staticpage&lt;/code&gt; renovieren&amp;#8221;, werden wir dazu vor allem interessierte Freiwillige brauchen &amp;#8230;)&lt;/p&gt;

&lt;h3 id=&quot;was-andere-zum-release-2-3-1-sagen&quot;&gt;Was andere zum Release 2.3.1 sagen&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“onli blogging”:&lt;br /&gt;
&lt;a href=&quot;https://www.onli-blogging.de/1840/Serendipity-2.3.1.html&quot; title=&quot;Serendipity 2.3.1 - onli blogging&quot;&gt;Serendipity 2.3.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
 
    </content:encoded>

    <pubDate>Thu, 22 Aug 2019 05:32:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2170-guid.html</guid>
    <category>s9y</category>

</item>
<item>
    <title>Serendipity: Weiterentwicklung, Bugfixes und Übersetzungen</title>
    <link>https://netz-rettung-recht.de/archives/2169-Serendipity-Weiterentwicklung,-Bugfixes-und-UEbersetzungen.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2169-Serendipity-Weiterentwicklung,-Bugfixes-und-UEbersetzungen.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2169</wfw:comment>

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

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Am vorvergangenen Wochenende wurde die neue Feature-Version von &lt;strong&gt;Serendipity&lt;/strong&gt; &lt;a href=&quot;https://netz-rettung-recht.de/archives/2168-Serendipity-2.3.0-released.html&quot; title=&quot;&quot;&gt;releast&lt;/a&gt;, und damit beginnt die Arbeit an der nächsten Version, aber auch an den im Release noch vorhandenen kleineren Fehlern.&lt;/p&gt;

&lt;h3 id=&quot;update-benachrichtigungen-und-links-f-r-plugins&quot;&gt;Update-Benachrichtigungen und Links für Plugins&lt;/h3&gt;

&lt;p&gt;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 &lt;em&gt;Serendipity&lt;/em&gt; - 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 &lt;em&gt;Spartacus&lt;/em&gt; installierte) Plugin ein Link nach eben dort, denn dort findet sich eine Vielzahl von Informationen zu allen Plugins. Außerdem kann &lt;em&gt;Serendipity&lt;/em&gt; 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).&lt;/p&gt;

&lt;p&gt;Wer die Änderungen testen und vielleicht auch direkt etwas rundschleifen will, kann sich den aktuellen Stand aus unserem Github-Repository &lt;a href=&quot;https://github.com/s9y/Serendipity/archive/master.zip&quot; title=&quot;&quot;&gt;herunterladen&lt;/a&gt; und installieren - aber natürlich nur nach einem Backup oder auf einer Testinstanz, bei Entwicklungsversionen geben wir keine Garantien (obschon der Code derzeit eigentlich problemlos lauffähig sein sollte).&lt;/p&gt;

&lt;h3 id=&quot;fehlerbehebung&quot;&gt;Fehlerbehebung&lt;/h3&gt;

&lt;p&gt;In der vergangenen Woche bzw. am Wochenende habe ich mir dann die in unserem 2.3.0-Release noch vorhandenen Fehler angeschaut.&lt;/p&gt;

&lt;p&gt;Etwas Hirnschmalz brauchte die durcheinandergeratene Paginierung bei neu installierten Blogs - &lt;em&gt;Serendipity&lt;/em&gt; erstellt jetzt standardmäßig stabile Archive, d.h. solche, bei denen sich der Seiteninhalt nicht ändert. Die Titelseite ist damit nicht mehr Seite 1 des Archivs, sondern die letzte Seite; Seite 1 des Archivs ist die älteste. Damit kam die Seitenanzeige zum Blättern (die es zudem sowieso nur in drei Themes gibt) nicht zurecht. Das Problem war aber m.E. lösbar.&lt;/p&gt;

&lt;p&gt;Einigen Bammel hatte ich dann vor dem nicht funktionierenden &amp;#8220;Massenlöschen&amp;#8221; in der Mediendatenbank, weil der Code doch einigermaßen komplex ist; die Lösung war dann aber ganz einfach (ein &lt;code&gt;isset()&lt;/code&gt; in einer Bedingung durch ein &lt;code&gt;!empty()&lt;/code&gt; ersetzen) und eine Sache weniger Minuten. Bei der Gelegenheit habe ich dann noch die Internationalisierung verbessert und einen festen Text durch eine Sprachkonstante ersetzt.&lt;/p&gt;

&lt;p&gt;Dadurch beflügelt habe ich schließlich (viel zu viel) Zeit in einen schon recht alten Fehlerbericht gesteckt, an dessen Lösung ich schon einmal gescheitert war: wenn Kommentare in älteren Beiträgen durch den Blogbetreiber moderiert werden, sollte nach dem Absenden des Kommentars darauf hingewiesen werden, dass der Beitrag erst freigeschaltet werden muss. Das ist im Code auch vorgesehen, funktionierte bei mir aber nicht. Ein neu eingerichtetes Testblog und ein Haufen Debug-Statements im Code später war ich immer noch ratlos: eine Zeile vor dem Plugin-Hook war die entsprechende (globale) Variable nicht gesetzt, im Hook-Code selbst war sie (unmittelbar vor der Rückgabe) korrekt gesetzt und dann eine Zeile nach dem Hook &amp;#8230; falsch. Damit ist die Lösung ja eigentlich klar; einige Stunden später kam ich dann auch drauf: an einem Plugin-Hook können sich verschiedene Plugins einklinken, das ist ja das Prinzip. Und wenn viele Spamschutz-Plugins damit beginnen, dass sie die entscheidende Variable initialisieren &amp;#8230; dann überschreibt die Initialisierung von Plugin B den korrekten Wert von Plugin A. Die Lösung war dann natürlich einfach, und: Heureka, es funktioniert.&lt;/p&gt;

&lt;p&gt;Mein anderer &amp;#8220;&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;Altfehler&lt;/a&gt;&amp;#8221;, eine Art &amp;#8220;&lt;a href=&quot;https://en.wikipedia.org/wiki/Heisenbug&quot; title=&quot;&quot;&gt;Heisenbug&lt;/a&gt;&amp;#8221;, ist vermutlich bereits behoben, und dann steht eigentlich nur noch ein bislang schwer reproduzierbares &lt;a href=&quot;https://github.com/s9y/Serendipity/issues/609&quot; title=&quot;Error  when uploading a file to media store  · Issue #609 · s9y/Serendipity · GitHub&quot;&gt;PostgreSQL&lt;/a&gt;-Problem zwischen uns und einem Patch-Release. Falls zufällig jemand &lt;em&gt;Serendipity&lt;/em&gt; mit PostgreSQL einsetzt und das einmal testen kann und möchte &amp;#8230;&lt;/p&gt;

&lt;h3 id=&quot;-bersetzungen&quot;&gt;Übersetzungen&lt;/h3&gt;

&lt;p&gt;Eigentlich wollte ich dann zum Schluss nur noch die neuen Sprachkonstanten in die Sprachdateien aller von &lt;em&gt;Serendipity&lt;/em&gt; unterstützten Sprachen einfügen &amp;#8230; und habe mich dann etwas im Bereich der Internationalisierung und der dort vorhandenen Unterstützungsscripts verloren. Ein bißchen hier und da poliert, und dann führte ein Testlauf zu der Erkenntnis, dass wir haufenweise Plugins ohne deutsche Übersetzung haben! Kann ja eigentlich nicht sein - und bevor ich so recht wusste, wie mir geschah, hatte ich über 20 Plugins deutsche Übersetzungen spendiert.&lt;/p&gt;

&lt;p&gt;Zum Abschluss habe ich dann noch ein wenig gebastelt und selbst ein Unterstützungsscripts hinzugefügt, dass in den Sprachdateien des Kerns - nicht der Plugins - doppelte Definitionen innerhalb derselben Sprachdatei findet und außerdem Abweichungen zwischen der englischen Sprachdatei und den anderen Sprachversionen auswirft. Das führte einige systematische Fehler zutage, und zudem - je nach Sprachversion - zu einer ganzen Reihe fehlender Texte. Die englische und deutsche Sprachdatei habe ich bereits auf Stand gebracht; den anderen Sprachen werde ich mich dann mal im Urlaub widmen, das ist ja vor allem Fleißarbeit.&lt;/p&gt;

&lt;p&gt;Über meine Erfahrungen habe ich dann am Ende noch einen kurzen Beitrag für unser doch weitgehend brachliegendes &lt;a href=&quot;https://blog.s9y.org/archives/285-Translate-plugins-into-your-preferred-language!.html&quot; title=&quot;Translate plugins into your preferred language!  - Serendipity&quot;&gt;s9y-Blog&lt;/a&gt; verfasst; vielleicht motiviert das ja doch irgendjemand, dessen Muttersprache in den Plugins momentan noch zu kurz kommt, ein paar Texte zu übersetzen.&lt;/p&gt;

&lt;h3 id=&quot;hilf-mit-bei-serendipity-&quot;&gt;Hilf mit bei &lt;em&gt;Serendipity&lt;/em&gt;!&lt;/h3&gt;

&lt;p&gt;Lust bekommen, &lt;em&gt;Serendipity&lt;/em&gt; auszuprobieren, eine schon eingemottete Installation einmal neu durchzupusten oder gar an der Entwicklung &lt;a href=&quot;https://th-h.de/net/web/applications/s9y/#join&quot; title=&quot;Serendipity | th-h.de&quot;&gt;mitzuhelfen&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Dann nichts wie los! - Viel Spaß und Erfolg!&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/17c07915881d43ddb2df8edc273a4d5f&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Mon, 19 Aug 2019 10:27:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2169-guid.html</guid>
    <category>s9y</category>

</item>

</channel>
</rss>
