<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blogging reloaded</title>
    <link>https://www.denny-fuchs.de/</link>
    <description>Recent content on Blogging reloaded</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>de</language>
    <lastBuildDate>Sun, 13 Oct 2019 19:39:00 +0200</lastBuildDate>
    
        <atom:link href="https://www.denny-fuchs.de/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Icinga2 und Puppet</title>
      <link>https://www.denny-fuchs.de/blog/2019/10/13/icinga2_puppet/</link>
      <pubDate>Sun, 13 Oct 2019 19:39:00 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/10/13/icinga2_puppet/</guid>
      
        <description>&lt;p&gt;Eigentlich wollte ich nur eine &amp;ldquo;kurze&amp;rdquo; Anleitung schreiben, wie das aktuelle Monitoring bei $COMPANY aussieht, zumindest der Icinga2 und Puppet Teil.&lt;br /&gt;
Über die letzten zwei Jahre habe ich das Setup so einige Male umgebaut, weil die Anforderungen sich stetig änderten. Konnte anfangs der Icinga2 Master noch alle Agents direkt erreichen und es gab du nur einen PuppetDB, änderte sich dies im Verlauf des Wachstums der Firma. Da war das Setup recht einfach, wenn auch nicht sehr performant. Es hauptsächlich darum, die Icinga2 Objekte aus der PuppetDB zu ziehen und als Icinga Objekt abzulegen. Je mehr es da aber gab, desto langsamer wurde der Export. Das Setup brach dann vollständig, als weitere PuppetDB Hosts hinzukamen, da es in diesem Konzept einfach nicht vorgesehen war. Auch ging es nicht, weil jeder Puppet Master seine eigenen Zertifikate nutzt und somit der Aufwand enorm hoch wurde, Icinga2 SSL Zertifikate unter einen Hut zu bringen.&lt;br /&gt;
Das alles gehört mittlerweile der Vergangenheit an, da Icinga2 alle Zertifikate selbst verwaltet und seit 2.8 einen CA Proxy enthält, der jeden gesponserten Cent wert ist. Damit können Icinga2 Agent Zertifikate beglaubigt werden, die vom Icinga2 Master aus nicht direkt erreichbar sind - über die Satelliten!&lt;br /&gt;
Das Kernstück ist dann der Icingaweb2 Director, der um ein PuppetDB Modul bereichert werden kann. Damit (und den passenden Firewall Regeln), kann der Director jede PuppetDB anzapfen und die Nodes herausholen und um weitere Zutaten ergänzen.&lt;br /&gt;
Diese Anleitung soll im Grunde das wiedergeben. Die Kernfunktionen sind alle vorhanden, es fehlt noch der HA Teil, der sicher noch ein paar Stunden Schreibarbeit benötigen wird. Bis dahin &amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://www.pug.org/doc/technik-ecke/monitoring/icinga2_puppet/&#34;&gt;https://www.pug.org/doc/technik-ecke/monitoring/icinga2_puppet/&lt;/a&gt;&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Murphy am Montag</title>
      <link>https://www.denny-fuchs.de/blog/2019/07/30/murphy_am_montag/</link>
      <pubDate>Tue, 30 Jul 2019 21:46:31 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/07/30/murphy_am_montag/</guid>
      
        <description>&lt;p&gt;Es gibt Tage, da passiert nix und es gibt Tage, da kommt Murphy vorbei. Es war Montag, ich unterwegs aber mit voller Ausrüstung für Notfälle. Leider stellte sich im Laufe der Zeit heraus, dass ich in einem absolutem Niemandsland spazierte, bei dem noch noch einmal telefonieren möglich war. Kein Netz!&lt;br /&gt;
Ich lief mit leichter Nervosität durch einen Park, immer mit dem starren Blick auf das &amp;ldquo;Kein Netz!&amp;rdquo;. Was soll schon passieren &amp;hellip; &lt;br /&gt;
Es passierte einiges &amp;hellip;&lt;br /&gt;
Beim Verlassen des Parks hatte ich kurz Netz und bekam prompt eine Nachricht vom Kollegen (der im Urlaub ist) via Threema. Nicht gut. Wie gut, dass mein Kollege just an diesem Tag aus Spanien zurück war und eingreifen konnte, während mein Telefon mich mit &amp;ldquo;Kein Netz!&amp;rdquo; (Hallo Telekom !) anschrie.&lt;/p&gt;

&lt;p&gt;Es hatte sich herausgestellt, dass der RZ Betreiber beim prüfen der Kabel für eine Darkfiber (die nicht mehr benötigt wird), eine Faser beim verschließen des Racks mit eingeklemmt hatte. Unglücklicherweise war diese Faser nicht irgend eine, sondern ebenfalls eine Faser, die zum zweiten Standort führt.&lt;/p&gt;

&lt;p&gt;Unsere Systeme sind eigentlich so konstruiert, dass &amp;ndash; mit einiger Arbeit &amp;ndash; ein Standort in relativ kurzer Zeit autark laufen kann. Grundvoraussetzung ist allerdings, dass für alle Beteiligten klar ist, dass eine Verbindung tot ist. An dieser Stelle kam das zweite Problem zum tragen: OpenSense + Duplex ST/LC LWL Kabel.&lt;br /&gt;
Das Kabel war wohl nicht wirklich komplett tot, sondern entweder RX oder TX. Das führte dazu, dass weder der Ubiquity EdgeSwitch 16-XG, noch der IPSec Tunnel von OpnSense sich dazu genötigt sahen, Interface oder Tunnel herunterzufahren. Das wiederum ließ den Eindruck erscheinen, dass der VPN Tunnel aktiv sei, doch es ging kein Verkehr durch. Wäre der Tunnel unten gewesen, hätte jeder Service MongoDB/Redis und Co. zügig ein &amp;ldquo;host unreachble&amp;rdquo; erhalten und sich neu organisiert. Stattdessen haben sie ewig auf die Antwort gewartet &amp;hellip;&lt;br /&gt;
Die einzige Lösung war ein Reboot des OpnSense Cluster am aktiven Standort. Kurz darauf haben sich die Dienste stabilisiert und der Service konnte seine Arbeit wieder aufnehmen.&lt;/p&gt;

&lt;p&gt;Zwischen: Oh, wir haben ein Problem, bis zum &amp;ldquo;Service klappt wieder&amp;rdquo; liegt rund eine Stunde.&lt;/p&gt;

&lt;p&gt;Alles an einem Montag; wann sonst.&lt;/p&gt;

&lt;p&gt;Ich mache dem RZ Betreiber keinen Vorwurf; unser Rack ist brechend voll und die Kabel sind dünn. Man hätte sich in diesem Fall gewünscht, dass dies angekündigt hätte werden können, allerdings gehört es zum Alltag, weil Kunden Kabel ab/bestellen und die Kabel geprüft und angepasst werden müssen. Mir muss ich vorhalten, dass die Darkfiber nur über den Port geprüft wurde, nicht jedoch auf Durchgang. Das habe ich heute natürlich nachgeholt. Auch die Tür wird überwacht, aber es dauert, bis die erste Nachricht an alle rausgeht. Auch gefixt.&lt;/p&gt;

&lt;p&gt;Gelernt haben wir, dass Murpy zu jeder Zeit auftauchen kann und sich immer ein Loch findet, welches nicht überwacht wird. Aber die Löcher werden mit der Zeit kleiner :-)&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Jenkins, pbuilder und dh-virtualenv für Python3 </title>
      <link>https://www.denny-fuchs.de/blog/2019/07/01/jenkins_python_pbuilder/</link>
      <pubDate>Mon, 01 Jul 2019 23:00:32 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/07/01/jenkins_python_pbuilder/</guid>
      
        <description>&lt;p&gt;Für unsere Projekte verwende ich &lt;a href=&#34;https://jenkins-debian-glue.org/&#34;&gt;Debian Jenkins Glue&lt;/a&gt; und erstelle damit die Debian Pakete. Aktuell hatte ich als Aufgabe ein Python3 Paket zu erstellen, bei dem mittels &lt;a href=&#34;https://github.com/spotify/dh-virtualenv&#34;&gt;dh-virtualenv&lt;/a&gt; alles in /opt/&amp;hellip; landet. Dummerweise brachen alle Versuche mit Fehlern aus der Kategorie &amp;ldquo;Netzwerk&amp;rdquo; ab, sobald die Python3 Module via PIP aus dem Netz gezogen werden sollten. Als ich ein neues Ticket erstellen wollte, fand ich &lt;a href=&#34;https://github.com/spotify/dh-virtualenv/issues/77&#34;&gt;das hier&lt;/a&gt;.&lt;br /&gt;
Also flux in meiner &lt;code&gt;/etc/jenkins/pbuilderrc&lt;/code&gt; den Parameter &lt;code&gt;USENETWORK=yes&lt;/code&gt; eingefügt und siehe da, der Build läuft durch :-)&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Icinga2 Hochverfügbar</title>
      <link>https://www.denny-fuchs.de/blog/2019/06/15/ha_icinga2/</link>
      <pubDate>Sun, 16 Jun 2019 19:23:57 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/06/15/ha_icinga2/</guid>
      
        <description>

&lt;p&gt;Bei meinem aktuellen Arbeitgeber nutzen wir seit meinem Einzug vor vier Jahren dort ein Icinga2 (damals noch parallel zum bestehenden Zabbix).&lt;br /&gt;
Mittlerweile ist Zabbix verschwunden und Icinga2 ist das Hauptmonitoring Tool. In den letzten Wochen haben wir aus der einzelnen Icinga2 Instanz nun einen HA Cluster gebastelt, das im Grunde auf &lt;a href=&#34;https://community.icinga.com/t/galera-mysql-cluster-with-vips-and-haproxy-for-ido-mysql-and-more/407&#34;&gt;diesem Konzept&lt;/a&gt; (meinen Dank an Carsten) beruht. Jeder der in dieser Thematik steckt, kommt früher oder später zum gleichen oder ähnlichen Ansatz.&lt;br /&gt;
Bei uns gibt es allerdings eine Besonderheit: &lt;a href=&#34;https://www.consul.io/&#34;&gt;Consul.&lt;/a&gt;&lt;br /&gt;
Consul in knappen Worten: Es ist ein verteilter Mesh Dienst, der in erster Linie Dienste bereitstellt und ein Key-Value Speicher ist.&lt;br /&gt;
Auf jedem Server(Node) der Dienste beherbergt, die durch unseren HAProxy Balancer laufen, bekommen einen Consul Agent. Dieser Agent hat zwei Aufgaben:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Node im Katalog bereitstellen&lt;/li&gt;
&lt;li&gt;Verfügbarkeit prüfen&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Damit taucht also der jeweilige Server im Consul Netzwerk auf und kann anschließend mit einem oder mehreren Diensten (Service) bestückt werden. In unserem Fall war das Icingaweb2. Warum so kompliziert ? Nun, für Consul gibt es einen kleinen Daemon der sich &lt;a href=&#34;https://github.com/hashicorp/consul-template&#34;&gt;&amp;ldquo;consul-template&amp;rdquo;&lt;/a&gt; nennt. Dieser schaut permanent nach Änderungen im konfigurierten kv/ Bereich (Key-Value) vom Consul und generiert daraus eine passende &lt;a href=&#34;https://github.com/hashicorp/consul-template/blob/master/examples/haproxy.md&#34;&gt;haproxy.cfg&lt;/a&gt; Datei. Damit kann ich zum Beispiel Änderungen am HAProxy durchführen, ohne die Datei selbst anfassen zu müssen. Besonders angenehmen ist die Möglichkeit einen Server &amp;ndash; der in die Wartung soll (Updates / Neustarts etc.) &amp;ndash; einfach aus dem Balancer nehmen zu können, indem z.B. weight auf 0, oder der Consul Agent auf Maintenance gesetzt wird.&lt;/p&gt;

&lt;p&gt;Nur für Icingaweb2 lohnt sich dieser Aufwand natürlich nicht wirklich, doch wenn das gleiche Konzept auch auch MariaDB angewendet wird, gibt es bereits zwei Dienste, die von Consul profitieren (können). Es ist meist nur eine Frage der Zeit, bis sich weitere Dienste hinzugesellen.&lt;/p&gt;

&lt;p&gt;Ich habe mal ein abgewandeltes Diagramm von unserem aktuellen Layout erstellt:&lt;/p&gt;


&lt;link rel=&#34;stylesheet&#34; href=&#34;./css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34;&gt;
&lt;figure  itemprop=&#34;associatedMedia&#34;
  itemscope itemtype=&#34;http://schema.org/ImageObject&#34; &gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;./blog/2019/06/15/monitoring.png&#34; alt=&#34;HA Monitoring Diagramm mit Consul&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;./blog/2019/06/15/monitoring.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;&lt;h4&gt;HA Monitoring mit Consul&lt;/h4&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;


&lt;p&gt;Dort sind nun natürlich viel mehr Komponenten abgebildet, als ich bisher angesprochen habe, aber der Reihe nach.&lt;/p&gt;

&lt;h2 id=&#34;konzept&#34;&gt;Konzept&lt;/h2&gt;

&lt;h3 id=&#34;icinga2-konfiguration&#34;&gt;Icinga2 Konfiguration&lt;/h3&gt;

&lt;p&gt;Unsere Icinga2 Konfiguration wird aus zwei Quellen zusammengesetzt:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Icingaweb2 - &lt;a href=&#34;https://github.com/Icinga/icingaweb2-module-director&#34;&gt;Director Modul&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Templates - Nahezu alle Host und Service Templates werden dort verwaltet&lt;/li&gt;
&lt;li&gt;Notifications - Benachrichtigungsregeln&lt;/li&gt;
&lt;li&gt;User - Alle Benutzer&lt;/li&gt;
&lt;li&gt;PuppetDB - Neue Hosts werden aus der PuppetDB gezogen via &lt;a href=&#34;https://github.com/Icinga/icingaweb2-module-puppetdb&#34;&gt;Director PuppetDB Module&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;zones - &lt;a href=&#34;https://github.com/Icinga/puppet-icinga2&#34;&gt;Puppet&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;global-templates/&lt;/li&gt;
&lt;li&gt;master/&lt;/li&gt;
&lt;li&gt;dc-1/&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In den von Puppet gepflegten Zonen sind bei uns aktuell sämtliche Hosts enthalten, die über keinen Puppet Agent verfügen. Das sind vor allem Switches, Router und Firewalls. Der Grund ist einfach der, dass wir mittels &lt;a href=&#34;https://icinga.com/docs/icinga2/latest/doc/17-language-reference/#dictionary&#34;&gt;Dictionary&lt;/a&gt; Ports/Interfaces etc. definieren, welches über das Director Modul &lt;a href=&#34;https://github.com/Icinga/icingaweb2-module-director/issues/337&#34;&gt;so nicht unterstützt wird&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Das Director Modul von Icingaweb ist der Kleber, der alles zusammenhält. Jeder Host mit einem Puppet Agent, bekommt über ein Profil mit auf dem Weg, welches den Icinga2 Agent passend konfiguriert und einbindet. Dabei werden bei jedem Lauf gesammelte Fakten (facts) in eine PostgreSQL Datenbank abgelegt (pro Rechenzentrum!). Diese Daten werden vom Director PuppetDB abgerufen und in die eigene DB überführt (synchronisiert). Während der Synchronisation wird z.B. die Icinga2 Zone hinzugefügt, als Beispiel &lt;code&gt;host.zone = dc-1&lt;/code&gt;. In einem zweiten Schritt werden aus den synchronisierten Fakten Icinga2 Hosts erstellt, angereichert mit weiteren Host Variablen. Dies können sein:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vars.is_virtual&lt;/li&gt;
&lt;li&gt;vars.blockdevices []&lt;/li&gt;
&lt;li&gt;vars.puppet_modules&lt;/li&gt;
&lt;li&gt;vars.zones&lt;/li&gt;
&lt;li&gt;vars.role&lt;/li&gt;
&lt;li&gt;&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ein besonders wichtiger Punkt ist der, dass ich bestimmten Hosts auch Templates mitgeben kann, sodass immer das Template &amp;ldquo;Host Squid&amp;rdquo; eingebunden wird, wenn der &lt;code&gt;certname=*proxy*&lt;/code&gt;` ist.&lt;/p&gt;

&lt;h3 id=&#34;datenbank&#34;&gt;Datenbank&lt;/h3&gt;

&lt;p&gt;Damit Icinga2 und Icingaweb2 funktionieren, benötigt es natürlich eine Datenbank, die klassischerweise eine MySQL bzw. MariaDB ist. Damit beim Ausfall einer Datenbank Icingaweb2 nicht gleich blind (und damit der Benutzer) ist (Icinga2 selbst würde aber dennoch weiter funktionieren), wird die Datenbank als Cluster konfiguriert. Bei MariaDB ist das ein &lt;a href=&#34;https://mariadb.com/kb/en/library/what-is-mariadb-galera-cluster/&#34;&gt;Galera Cluster&lt;/a&gt;. Damit kann ich einen n-Master aufbauen, sodass auf alle DB Server schreibend und lesend zugegriffen werden kann.&lt;/p&gt;

&lt;h3 id=&#34;haproxy-keepalived&#34;&gt;HAProxy / Keepalived&lt;/h3&gt;

&lt;p&gt;Nun, was nutzt mir ein hochverfügbarer DB Cluster oder Webserver, wenn beim Ausfall die IP Adresse nicht auf einen funktionierenden Host geschwenkt wird ? Nun an dieser Stelle kommt das klassische Paar HAProxy und Keepalived zum Einsatz. HAProxy stellt sicher, dass die als Backend konfigurierten Server und deren Dienste funktionieren, um Anfragen an sie weiterzuleiten. Antwortet ein Dienst nicht so, wie er sollte, werden alle Anfragen an die verbliebenen geleitet.&lt;br /&gt;
Keepalived stellt die virtuelle IP Adresse bereit, über die alle Anfragen eingehen. Sollte der Server auf dem Keepalived läuft ein Problem haben, werden alle virtuellen IP Adressen auf den zweiten Server hochgefahren.&lt;/p&gt;

&lt;h3 id=&#34;consul-consul-template&#34;&gt;Consul / consul-template&lt;/h3&gt;

&lt;p&gt;Während bisher noch keine wesentlichen Neuerungen gegenüber den vielen Anleitungen im Netz auftauchten, kommt jetzt eine Komponente, die erst einmal Arbeit produziert, aber sich im Unternehmen dann doch irgendwann bezahlt macht: &lt;strong&gt;Consul&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Consul ist ein Dienst, der ein eigenständiges Netz (MESH) aufspannt, sowie Daten und einen Service Katalog bereitstellt.&lt;br /&gt;
Ohne jetzt allzutief in die Consul Thematiken vorzudringen, gibt es zwei Anwendungszwecke in diesem Setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Backend/Frontend Konfiguration für HAProxy&lt;/li&gt;
&lt;li&gt;Service Funktion prüfen und bereitstellen&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ich kann dann über eine Weboberfläche, API oder CLI die HA Proxy Konfiguration verändern oder eine Node aus dem Balancer nehmen. Im optimalen Fall nimmt sich ein Backend selbst aus der Konfiguration, wenn der Server zum Beispiel neugestartet wird, und fügt sich anschließend wieder hinzu. Gleiches gilt natürlich, wenn einfach nur der Dienst (z.B: Apache2) kaputt ist.&lt;/p&gt;

&lt;p&gt;Für den HAproxy Teil wird consul-template verwendet, der den Consul ausfragt und die neue Konfiguration erstellt. Den Rest erledigt Consul selbst.&lt;/p&gt;

&lt;p&gt;Hat man das Konzept erst einmal verstanden, dauert es nicht mehr lang, bis weitere Service Dienste ihren Weg in Consul finden.&lt;/p&gt;

&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;

&lt;p&gt;Im Grunde ist das Konzept krisenfest, da es keinen SPOF gibt. Es gab allerdings zwei Dinge, die uns ein wenig Probleme bereiteten:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kein &lt;a href=&#34;https://proxysql.com/&#34;&gt;ProxySQL&lt;/a&gt;: ProxySQL versteht SQL und dient als Vermittler zwischen dem Client (Applikation) und den tatsächlichen Datenbanken. Es können da so Geschichten wie READ/WRITE Splitting erledigt werden und ProxySQL schwenkt auf eine funktionierende Datenbank um, wenn die aktiv benutzte eben nicht mehr aktiv ist.&lt;br /&gt;
Leider klappt das nicht mit Icinga2 IDO und Icingaweb2, da ProxySQL einige SQL Kommandos &amp;ldquo;frisst&amp;rdquo;, bzw. nicht richtig weiterleitet, weshalb wir mit einer kaputten IDO da standen und einer kaputten Icinga2 Konfiguration.&lt;/li&gt;
&lt;li&gt;SELECT * from foo; != OK: Dank BINlogs lief bei uns sehr zügig die Platte voll, weshalb die aktive MariaDB keine Schreiboperationen mehr durchführen konnte, aber lesen ging dafür immer noch(!). Dies hatte zur Konsequenz, dass Icinga2 die IDO nicht befüllen konnte, aber HAProxy/Consul die DB nicht aus dem Balancer nahm, weil der SELECT Test klappte ja noch. Wäre die MariaDB tot gewesen &amp;hellip; hätte Consul die HAProxy Konfiguration neu erstellt und ich hätte keine Daten verloren.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ich werde die nächsten Tage und Wochen mal dieses Konzept im Detail aufschreiben, sodass jeder es später nachvollziehen kann :-)&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Pedelec</title>
      <link>https://www.denny-fuchs.de/blog/2019/05/01/pedelec/</link>
      <pubDate>Wed, 01 May 2019 21:41:32 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/05/01/pedelec/</guid>
      
        <description>&lt;p&gt;Vor einigen Wochen musste ich meinen Resturlaub nehmen und nutze die Zeit, um ein paar kleinere Arbeiten in der Wohnung durchzuführen. Da meine Frau das Auto benötigte, hatte ich nur das Rad um alles zu besorgen.&lt;/p&gt;


&lt;link rel=&#34;stylesheet&#34; href=&#34;./css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34;&gt;
&lt;figure  itemprop=&#34;associatedMedia&#34;
  itemscope itemtype=&#34;http://schema.org/ImageObject&#34; &gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;./blog/2019/05/01/Rad_blumen.jpg&#34; alt=&#34;Rad mit Anhänger und Blumen&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;./blog/2019/05/01/Rad_blumen.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;&lt;h4&gt;Fahrrad mit Anhänger, voll mit Blumen&lt;/h4&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;


&lt;p&gt;Gerade mit dem Anhänger &amp;ndash; selbst wenn dieser leer ist &amp;ndash; merkt man schon, dass etwas hinten dranhängt. Also habe ich mir mal das Pedelec vom Schwiegervater ausgeliehen und war begeistert. Zwar ist der Radtyp (für Tiefeinsteiger) nicht meins, aber es war göttlich. Ich bin damit fast täglich zum Baumarkt oder zum Einkaufen gefahren. Mit dem normalen Rad hätte ich schon überlegt .. &amp;ldquo;Benötige ich das &lt;strong&gt;jetzt&lt;/strong&gt; wirklich?&amp;ldquo;, oder auch &amp;ldquo;Warte ich einfach, bis meine Frau wieder da ist?&amp;rdquo;. Es war einfach selbstverständlich, auf das Rad zu steigen und die Besorgungen zu tätigen.&lt;br /&gt;
Für mich war nun klar, ich möchte auch ein Pedelec haben. Das Problem ist nur: welches. Aktuell habe ich ein reguläres 26&amp;rdquo; MTB und mit meiner Frau, je ein &lt;a href=&#34;https://www.r-m.de/de/modelle/birdy/birdy-touring/#F00107_1302&#34;&gt;Birdy Touring&lt;/a&gt;.
Das Birdy nehmen wir mit in den Urlaub, und ich benötige es für die Fahrt zur Arbeit. Daher ist die Frage, welches Pedelec das &amp;ldquo;Richtige&amp;rdquo; wäre.&lt;br /&gt;
Aktuell bin ich durch &lt;a href=&#34;https://www.golem.de&#34;&gt;Golem&lt;/a&gt; auf das &lt;a href=&#34;https://www.gocycleeu.com/category_s/166.htm&#34;&gt;Gocyle GX&lt;/a&gt; gestoßen. Die GX Variante wäre perfekt für die S-Bahn. Für meine Frau würde die G3 Version ausreichen.&lt;/p&gt;

&lt;p&gt;Das Problem wäre nur, das GX ist vermutlich nicht für längere Touren und nur wenig Gepäck geeignet, vermute ich mal. Daher ist es schwierig &lt;strong&gt;das&lt;/strong&gt; Rad zu finden. Ich denke daher, dass ich mir später dann doch noch ein reguläres Pedelec kaufen würde und finde die Räder von &lt;a href=&#34;https://ebike-news.de/rehink-e-bikes-mit-flow-antrieb-sind-startklar/173769/&#34;&gt;ReThink&lt;/a&gt; mit ihrem speziellen Motor &lt;a href=&#34;https://www.binova-flow.de/&#34;&gt;binova flow®&lt;/a&gt; sehr spannend. Die Firma bietet eigene Räder an, oder nur den Motor. Aktuell läuft die Anfrage, ob sich das Birdy damit nachrüsten lässt. Meine Frau mag ihr Birdy, ich dagegen würde es gerne loswerden.&lt;/p&gt;

&lt;p&gt;Warten wir mal ab, was es am Ende wird.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Fedora30</title>
      <link>https://www.denny-fuchs.de/blog/2019/04/30/fedora30/</link>
      <pubDate>Tue, 30 Apr 2019 19:16:50 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/04/30/fedora30/</guid>
      
        <description>&lt;p&gt;Heute ist &lt;a href=&#34;https://www.heise.de/ct/artikel/Fedora-30-glaenzt-mit-schickem-Start-und-Performance-Verbesserungen-4410370.html&#34;&gt;Fedora 30&lt;/a&gt; erschienen. Gleich mal die Gelegenheit genutzt und sowohl meine VM, als auch den Firmenlaptop von 29 auf 30 gehoben. Hat zwar etwas gedauert, aber ich muss sagen &amp;hellip; sauber &amp;hellip; Das einzige was ich noch nachträglich wieder installieren musste, war gpgme für Hiera Eyaml:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# gem install gpgme&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;und schon ging auch mein &lt;code&gt;eyaml edit&lt;/code&gt; wieder :-)&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Kartoffelbrot</title>
      <link>https://www.denny-fuchs.de/blog/2019/04/19/kartoffelbrot/</link>
      <pubDate>Fri, 19 Apr 2019 17:49:35 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/04/19/kartoffelbrot/</guid>
      
        <description>&lt;p&gt;Eigentlich sollte es ja &amp;ldquo;mein&amp;rdquo; Hobby werden, aber meine Frau kann das einfach besser. Hier ein Kartoffelbrot, was vor sie vor rund zwei Wochen gebacken hat.&lt;/p&gt;


&lt;link rel=&#34;stylesheet&#34; href=&#34;./css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34;&gt;
&lt;figure  itemprop=&#34;associatedMedia&#34;
  itemscope itemtype=&#34;http://schema.org/ImageObject&#34; &gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;./blog/2019/04/19/kartoffelbrot_top.jpg&#34; alt=&#34;Kartoffelbrot von oben&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;./blog/2019/04/19/kartoffelbrot_top.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;&lt;h4&gt;Kartoffelbrot von oben&lt;/h4&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;




&lt;div class=&#34;box&#34;&gt;
&lt;figure  itemprop=&#34;associatedMedia&#34;
  itemscope itemtype=&#34;http://schema.org/ImageObject&#34; &gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;./blog/2019/04/19/kartoffelbrot_offen.jpg&#34; alt=&#34;Kartoffelbrot angeschnitten&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;./blog/2019/04/19/kartoffelbrot_offen.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;&lt;h4&gt;Kartoffelbrot angeschnitten&lt;/h4&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

</description>
      
    </item>
    
    <item>
      <title>Kommentare mit Isso</title>
      <link>https://www.denny-fuchs.de/blog/2019/04/14/kommentare_mit_isso/</link>
      <pubDate>Sun, 14 Apr 2019 12:18:44 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/04/14/kommentare_mit_isso/</guid>
      
        <description>&lt;p&gt;So ein Blog ohne Kommentare ist ja auch ein wenig trocken. Hugo und das Jane Theme haben zwar Discourse eingebaut, aber nach ein paar Test habe ich es dann doch wieder abgeschaltet. Da wird mir dann doch zu viel ausgelagert.
Es gibt zwei guten Seiten, die viele Vor- und Nachteile diverser Systeme auflisten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://darekkay.com/blog/static-site-comments/&#34;&gt;https://darekkay.com/blog/static-site-comments/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://fedidat.com/530-blog-comments/&#34;&gt;https://fedidat.com/530-blog-comments/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nachdem ich erst &lt;a href=&#34;https://github.com/schn4ck/schnack&#34;&gt;Schnack&lt;/a&gt; nehmen wollte, bin ich dann doch bei &lt;a href=&#34;https://posativ.org/isso/&#34;&gt;isso&lt;/a&gt; gelandet. Irgendwie schien mir die Integration da doch einfacher. Was viele nicht wissen: ich bin Programmier- Legastheniker, was bedeutet, es darf nicht allzu kompliziert werden, das Kommentarsystem zu integrieren. War es auch nicht.&lt;/p&gt;

&lt;p&gt;Isso kann man auf diverse Möglichkeiten in Betrieb nehmen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Als eigener Server (localhost:8181)

&lt;ul&gt;
&lt;li&gt;Unterdomain comments.example.com&lt;/li&gt;
&lt;li&gt;Unterordner blog.example.com/comments&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Über WSGI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die Installation habe ich mir von &lt;a href=&#34;https://stiobhart.net/2017-02-24-isso-comments/&#34;&gt;hier&lt;/a&gt; geholt (&lt;em&gt;damn pretty easy&lt;/em&gt;) und auch ein wenig von &lt;a href=&#34;https://therandombits.com/2018/12/how-to-add-isso-comments-to-your-site/&#34;&gt;hier&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Für den Webserver habe ich den Weg des geringsten Widerstands genommen und eine eigene Subdomain verwendet, sowie eine zusätzliche Apache2 Konfiguration.&lt;/p&gt;

&lt;p&gt;Mein Isso wurde in /var/www/domain/websites/example.com/isso/ installiert.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&amp;lt;VirtualHost [2a01:7e0:0:213:2::1]:443&amp;gt;

ServerAdmin webmaster@example.com
ServerName comments.example.com
ServerAlias comments.example.com
Alias /.well-known/acme-challenge /var/www/letsencrypt/.well-known/acme-challenge
SSLEngine on
SSLProxyEngine on
SSLCertificateFile &amp;#34;/var/letsencrypt/certs/example.com/fullchain.pem&amp;#34;
SSLCertificateKeyFile &amp;#34;/var/letsencrypt/certs/example.com/privkey.pem&amp;#34;
SSLCipherSuite AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security &amp;#34;max-age=63072000; includeSubDomains&amp;#34;
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

ProxyPass / http://localhost:8181/
ProxyPassReverse / http://localhost:8181/

ErrorLog /var/www/domain/websites/example.com/log/error-ssl.log
CustomLog /var/www/domain/websites/example.com/log/access-ssl.log combined
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Die Konfiguration von isso.cfg sieht dann in etwa so aus:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;[general]
dbpath = /var/www/domain/websites/example.com/isso/comments.db

name = isso

host =
    http://www.example.com/
    https://www.example.com/

log-file = /var/www/domain/websites/example.com/isso/isso.log

notify = smtp

[server]
listen = http://localhost:8181/
public-endpoint = https://comments.example.com


[smtp]
host = localhost
port = 25
security = none

to = webmaster@example.com

from = &amp;#34;isso comments&amp;#34; &amp;lt;webmaster@example.com&amp;gt;
timeout = 10

[guard]
enabled = true
ratelimit = 2
direct-reply = 3
reply-to-self = false
require-author = true
require-email = false

[markup]
options = strikethrough, superscript, autolink

[hash]
salt = ZtD.............
algorithm = pbkdf2

[moderation]
enabled=true&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Für Jane habe ich dann einfach nur eine Datei mit passendem Inhalt erstellt&amp;hellip;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;layouts/partials/comments.html&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;{{ if .Site.Params.issoHost }}
  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;style&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;text/css&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;media&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;screen&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nc&#34;&gt;isso&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;section&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
      &lt;span class=&#34;k&#34;&gt;margin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
  &lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;br&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;isso&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;isso-thread&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;div&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;script&lt;/span&gt;
        &lt;span class=&#34;na&#34;&gt;data-isso&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;//{{ .Site.Params.issoHost }}/&amp;#34;&lt;/span&gt;
        &lt;span class=&#34;na&#34;&gt;data-isso-css&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
        &lt;span class=&#34;na&#34;&gt;data-isso-lang&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;{{ .Site.LanguageCode }}&amp;#34;&lt;/span&gt;
        &lt;span class=&#34;na&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;//{{ .Site.Params.issoHost }}/js/embed.min.js&amp;#34;&lt;/span&gt;
    &lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;script&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
{{ end }}&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;und in die Hugo Konfiguration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;config.toml&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;params&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
  &lt;span class=&#34;nx&#34;&gt;issoHost&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;comments.example.com&amp;#34;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Das war es schon.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Lancom IKEv2 VPN für Apple und Linux</title>
      <link>https://www.denny-fuchs.de/blog/2019/04/07/lancom_vpn/</link>
      <pubDate>Sun, 07 Apr 2019 16:56:01 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/04/07/lancom_vpn/</guid>
      
        <description>&lt;p&gt;In der Firma haben wir eine FritzBox gegen den Ubiquity EdgeRouter getauscht, der eh ein recht langweiliges Dasein fristete. Der hat eigentlich nur für mich VPN über L2TP bereitgestellt.&lt;br /&gt;
Problem war nun also, den VPN Zugang über den Büro LANCOM Router bereitzustellen, ohne diesen Rotz von VPN Client, bei der jeder einzelne Zugang auch noch eine Lizenz nach sich zieht. Versorgt werden muss also MacOS / Fedora / und iOS (Apple, nicht Cisco).&lt;br /&gt;
Wenn man also diesen Wizard über LANConfig ausgeführt hat (IKEv2 + PSK), dann sind zwei Dinge wichtig&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;iOS / MacOS wird die VPN Verbindung nur 8 Minuten halten, weil PFS (Perfect Forward Secrecy) per Default aktiviert ist&lt;/li&gt;
&lt;li&gt;Fedora NetworkManager wird sich weigern, da es keine Parameter für &amp;ldquo;Entfernte Identität&amp;rdquo; gibt&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Für Punkt 1 kann man entweder PFS im LANCOM deaktivieren (Verschlüsselungs- Parameter), oder man installiert sich den &amp;ldquo;Apple Configurator 2&amp;rdquo; (gibt es nicht(!) für Windows), erstellt ein Profil und konfiguriert den VPN Zugang dort. Da gibt es nämlich die Möglichkeit PFS (Perfect Forward Secrecy) zu aktivieren. Das Problem kann man dann einfach abspeichern und auf MacOS und iOS importieren. Gleich eins vorweg: Im Configurator 2 bei &amp;ldquo;Entfernter Identität&amp;rdquo; besser gleich &amp;ldquo;%any&amp;rdquo; eintragen, wenn man Punkt 2 auch noch haben möchte.&lt;/p&gt;

&lt;p&gt;Für Punkt 2 habe ich auch eine Weile gebraucht, weil MacOS und iOS zwar klappten, aber über Fedora halt nicht. Für IKEv2 und dem NetworkManager benötigt es folgende Pakete&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NetworkManager-strongswan-gnome&lt;/li&gt;
&lt;li&gt;strongswan-charon-nm&lt;/li&gt;
&lt;li&gt;strongswan&lt;/li&gt;
&lt;li&gt;NetworkManager-strongswan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Das erste Paket sollte den Rest nachziehen. Wenn ihr dann über Gnome den Zugang konfiguriert (IKEv2), wird euch der Punkt &amp;ldquo;Entfernte Identität&amp;rdquo; fehlen. Den gibt es schlicht nicht. Um dieses Problem zu lösen, müsst ihr im LANConfig unter Authentifizierung bei dem jeweiligen VPN Account, die &amp;ldquo;&lt;strong&gt;lokale&lt;/strong&gt; Identität&amp;rdquo; auf &lt;strong&gt;Keine&lt;/strong&gt; stellen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zusammengefasst:&lt;/strong&gt; Für iOS müsst ihr ein Profil über den Configurator 2 erstellen und bei VPN und dem Punkt &amp;ldquo;Entfernte Identität&amp;rdquo; &amp;ldquo;%any&amp;rdquo; eintragen und zusätzlich PFS aktivieren.&lt;br /&gt;
Für Linux NetworkManager (hier Fedora) im LANConfig &amp;ldquo;Lokale Identität&amp;rdquo; auf &amp;ldquo;Keine&amp;rdquo; stellen. Auf diese Weise kommt ihr mit Apple und Linux NetworkManager ins LANCOM VPN.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Matrix &amp;&amp; Mastodon</title>
      <link>https://www.denny-fuchs.de/blog/2019/04/06/matrix_mastodon/</link>
      <pubDate>Sat, 06 Apr 2019 20:16:31 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/04/06/matrix_mastodon/</guid>
      
        <description>

&lt;p&gt;Eigentlich hatte ich zu diesen beiden Themen längst einen Blogpost geschrieben, aber nichts ins Git überführt. Der Post war mir zu langatmig mit zu viel bla bla.&lt;/p&gt;

&lt;h1 id=&#34;matrix&#34;&gt;Matrix&lt;/h1&gt;

&lt;p&gt;In der Firma hatten (und haben immer noch) wir ständig Probleme mit Skype, was der de facto Standard war, um intern und extern zu kommunizieren. Es ist ein beschissenes Programm, was noch schlechter mit jedem Update wurde. Ein riesiges Problem war vor allem der Internetzugang: Nur über den Proxy (Squid)&lt;/p&gt;

&lt;p&gt;Skype hatte immer mehr Probleme, seine Verbindungen aufzubauen, weil Microsoft keinen Wert darauf legt und selbstverständlich immer davon ausgeht, dass die Leute einfach so ins Internet dürfen.&lt;br /&gt;
Irgendwann hat es mir gereicht und ich habe nach Alternativen gesucht, um zumindest das interne Problem zu lösen. Abgesehen davon haben die Leute auch nicht kapiert, dass Passwörter und Code nicht darüber zu versenden sind.
Eigentlich kamen nur &lt;a href=&#34;https://rocket.chat/&#34;&gt;Rocket.chat&lt;/a&gt; und &lt;a href=&#34;https://matrix.org&#34;&gt;Matrix.org&lt;/a&gt; in Kombination mit &lt;a href=&#34;https://matrix.org/docs/projects/client/riot.html&#34;&gt;Riot&lt;/a&gt; in Frage.&lt;br /&gt;
Beide erfüllten die Voraussetzungen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ende-zu-Ende Verschlüsselung&lt;/li&gt;
&lt;li&gt;OpenSource&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rocket.Chat war/ist für eine Firma eigentlich sinnvoller, allerdings fand ich die Android und iOS Version damals so schrecklich(2017), dass ich nach einer Weile dann doch noch Matrix mit Riot ausprobiert habe, zumal mein Ex-Kollege von &lt;a href=&#34;https://www.informatik.tu-darmstadt.de/fb20/organisation_fb20/infrastruktur_und_studentischer_poolservice/index.de.jsp&#34;&gt;TU-Darmstadt / ISP&lt;/a&gt; das auch im Einsatz hat. Kann also nicht soo schlecht sein.&lt;br /&gt;
Wie auch immer, das ist nun über zwei Jahre her und ich kann sagen: es hat sich gelohnt. Ich betreibe selbst auch einen Matrix (Synapse) Server und der kommuniziert mit dem in der Firma. Wie E-Mail eben.&lt;br /&gt;
Zwar gibt es hier und da noch ein wenig zu feilen, vor allem was die Verschlüsselung für die Chat Räume so angeht (so ist zum Beispiel keine Suche möglich), aber Riot hat in den letzten Monaten riesige Sprünge gemacht, sodass ich sagen kann: wir nutzen Skype intern überhaupt nicht mehr. Wobei .. das gilt für uns Sysops/Devops and DBA. Die beim Support nutzen noch Skype, weil die Kunden das so erwarten.&lt;/p&gt;

&lt;h1 id=&#34;mastodon&#34;&gt;Mastodon&lt;/h1&gt;

&lt;p&gt;Kennt noch einer Qwitter ? Nein ? Macht nix. Hat sich eh nie wirklich einen Namen machen können. &lt;a href=&#34;https://de.wikipedia.org/wiki/Mastodon_(Software)&#34;&gt;Mastodon&lt;/a&gt; dagegen hat durchaus das Zeug gleich neben der Twitter App positioniert zu werden. Technisch ist es wie Matrix / E-Mail. Jeder kann sich einen eigenen Server (Instanz) hinstellen, oder einen der zahlreichen vorhandenen nutzen. Der größte ist &lt;a href=&#34;https://mastodon.social&#34;&gt;https://mastodon.social&lt;/a&gt; (vom Erfinder selbst) und im deutschsprachigen Raum dürfte das &lt;a href=&#34;https://chaos.social&#34;&gt;https://chaos.social&lt;/a&gt; sein, vermute ich mal.&lt;br /&gt;
Ich habe mir auch einen aufgesetzt, weil ich einen Augenblick Langeweile hatte, unter &lt;a href=&#34;https://bunt.social&#34;&gt;https://bunt.social&lt;/a&gt; . Da sind neben mir noch drei / vier andere drauf, aber es hält sich sehr in Grenzen. Wer in seiner &amp;ldquo;Timeline&amp;rdquo; ein wenig mehr Bewegung haben möchte, sollte definitiv eine größere Instanz wählen, sonst verliert man schnell die Lust, an der Twitter Alternative.
Ansonsten ist der Umgang untereinander bisher noch angenehm, auch wenn es schon erste Idioten auch in diese Sphäre geschafft haben. Irgendwann wird man auch dort einen Querschnitt der Gesellschaft haben. Einziger Vorteil allerdings: man kann (theoretisch) schneller etwas gegen sie tun.&lt;br /&gt;
Immerhin kann ich bereits behaupten, die Spammer / Bots haben mich bereits gefunden und ~30 Accounts erstellt. War etwas mühsam die alle wieder zu löschen.&lt;/p&gt;

&lt;p&gt;Auch hier gilt: abwarten, Milch trinken und schauen, was sich da so in den nächsten Jahren entwickelt.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Mainroad Adé, Hallo Jane</title>
      <link>https://www.denny-fuchs.de/blog/2019/04/06/jane_theme/</link>
      <pubDate>Sat, 06 Apr 2019 18:39:48 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/04/06/jane_theme/</guid>
      
        <description>&lt;p&gt;Lange Zeit habe ich &amp;ldquo;meine&amp;rdquo; RedLady &amp;ldquo;mitgenommen&amp;rdquo;, seit rund 2007. Das Bild (Red-Lady) stammt von &lt;a href=&#34;https://www.flickr.com/photos/mandolux/&#34;&gt;Mandolux&lt;/a&gt;, der schon damals sehr gute Hintergrundbilder für mehrere Bildschirme hervorgebracht hat. Seine ursprüngliche Seite (&lt;a href=&#34;https://www.mandolux.com/&#34;&gt;https://www.mandolux.com/&lt;/a&gt;) ist leider sehr geschrumpft und scheint nicht mehr wirklich gepflegt zu werden.&lt;/p&gt;


&lt;link rel=&#34;stylesheet&#34; href=&#34;./css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34;&gt;
&lt;figure  itemprop=&#34;associatedMedia&#34;
  itemscope itemtype=&#34;http://schema.org/ImageObject&#34; &gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;./blog/2019/04/06/blog_reloaded_mainroad.png&#34; alt=&#34;Blog mit altem Theme mit Mainroad&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;./blog/2019/04/06/blog_reloaded_mainroad.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;&lt;h4&gt;Blog mit Mainroad theme&lt;/h4&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;


&lt;p&gt;Das Theme was ich zuletzt verwendet habe, war &lt;a href=&#34;https://themes.gohugo.io/mainroad/&#34;&gt;Mainroad&lt;/a&gt;, was sich gut mit der RedLady verstanden hat.
Nach so langer Zeit &amp;ndash; dominiert von vielen Rottönen &amp;ndash; war es mal an der Zeit ein Theme für Hugo zu wählen, welches ein wenig augenfreundlicher ist und weniger Farben beinhaltet. Ich bin auf &lt;a href=&#34;https://themes.gohugo.io/hugo-theme-jane/&#34;&gt;&amp;ldquo;Jane&amp;rdquo;&lt;/a&gt; &lt;a href=&#34;https://terrty.net/2018/15-hugo-framework-blog-themes/&#34;&gt;gestoßen&lt;/a&gt;, welches mir wirklich sehr gut gefällt.
Mal schauen, wie lang das so bleiben wird.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>GitLab Pages</title>
      <link>https://www.denny-fuchs.de/blog/2019/04/06/gitlab_pages/</link>
      <pubDate>Sat, 06 Apr 2019 17:01:42 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2019/04/06/gitlab_pages/</guid>
      
        <description>&lt;p&gt;In der Firma haben wir ein MediaWiki und so begeistert ich anfangs auch war &amp;ndash; was MediaWiki angeht &amp;ndash; ich kann es nicht mehr leiden. Es ist beschissen zu pflegen; die Debian Version ist meistens hoffnungslos veraltet und die Plugins sind in der Regel auch  &amp;hellip; ach lassen wir das.&lt;/p&gt;

&lt;p&gt;Egal.&lt;/p&gt;

&lt;p&gt;Jeder weiß, wenn ein Wiki als Dokumentationsquelle dienen soll, benötigt es einiges an Disziplin. Die Struktur darf nicht wie Kraut und Rüben wachsen und die Seiten müssen auch (thematisch) gefunden werden können. Die Sache mit der Pflege der Inhalte ist ohnehin ein Thema für sich.
Seit langem setzen wir in der Firma GitLab ein, was die Repo Funktion von Redmine ersetzt hat (was eh nur als Frontend dient(e)). GitLab erledigt einfach viele Dinge schöner und bietet auch ein Wiki an, welches auf MarkDown basiert. Allerdings hat es den unschönen &amp;ldquo;Nachteil&amp;rdquo;, dass es projektbezogen ist. Das ist oftmals nicht sehr praktisch, wenn die Dokumentation eher übergreifend sein soll.&lt;br /&gt;
Ein weiterer Nachteil ist, dass es relativ umständlich erreichbar ist (klick / klick &amp;hellip;).
Wer als Mitarbeiter nicht drauf hingewiesen wird, sucht an der falschen Stelle, da Markdown auch im regulärem Repo interpretiert wird. Schön ist allerdings, wenn man wirklich das Wiki dort verwendet, ist es ein eigenes (!) Repository, welches per &lt;code&gt;git clone&lt;/code&gt; erreichbar ist.
Ich machte mich also an die Arbeit, die Mediawiki Seiten nach MarkDown zu konvertieren. Es war eine Drecksarbeit. Die Ursache waren vielfältig. Zum einen haben die wenigsten Kollegen die Wikisyntax beachtet, zum anderen war das Tool um aus dem XML Export Markdown zu erstellen, hoffnungslos überfordert. Auch nicht viel besser war der Umweg über den Import nach DokuWiki(!) und dann via &lt;a href=&#34;https://pandoc.org/&#34;&gt;Pandoc&lt;/a&gt; nach Markdown. Kleiner Tipp daher: wenn ihr nicht gerade hunderte von Seiten habt, kopiert den Inhalt lieber von Hand und korrigiert/ersetzt die Syntax. Dauert zwar länger, hat aber vier entscheidende Vorteile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seiten entstauben, bei denen die Inhalte nicht mehr stimmen&lt;/li&gt;
&lt;li&gt;Obsolete Seiten gleich löschen&lt;/li&gt;
&lt;li&gt;Eine Struktur reinbringen&lt;/li&gt;
&lt;li&gt;Syntax fixen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nachdem ich also ausgiebig geflucht und konvertiert hatte, stach mir bei irgendeiner Google Suche GitLab &lt;a href=&#34;https://docs.gitlab.com/ee/user/project/pages/&#34;&gt;&amp;ldquo;Pages&amp;rdquo;&lt;/a&gt; ins Auge.
Im Grunde ist es nichts anderes, als dass GitLab mittels CI/CD einen Seitengenerator aufruft, um aus Markdown Dateien eine statische Seite zu bauen. Diese Seiten sind dann zum Beispiel unter [gruppe].pages.example.com/[projekt]/ zu erreichen.
Aktuell habe ich es noch im Experimentier- Stadium, da mir einige Dinge noch nicht gefallen. Ein Grund ist zum Beispiel ein gutes(!) Theme für Hugo zu finden, welches sich für eine Dokumentation eignet. Aktuell bin ich bei &lt;a href=&#34;https://docdock.netlify.com/&#34;&gt;https://docdock.netlify.com/&lt;/a&gt; gelandet. Leider habe ich es so angepasst, dass es auf dem Handy nicht mehr zu gebrauchen ist, wegen dem TOC, das nachträglich eingebaut wurde.
Wie auch immer. Pages von GitLab ist eine phantastische Lösung um über Git die Dokumentation zu pflegen. Dank meiner privaten Kenntnisse über Hugo, war es noch leichter das ganze zu implementieren. Jetzt muss ich es nur noch den Kollegen schmackhaft machen, dass es sich lohnt mehr Mühe in die Doku zu stecken, und nicht nur einfach ein copy/paste in ein Wiki zu klatschen.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Zurück zum iPhone</title>
      <link>https://www.denny-fuchs.de/blog/2018/05/26/zur%C3%BCck_zum_iphone/</link>
      <pubDate>Sat, 26 May 2018 01:12:39 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2018/05/26/zur%C3%BCck_zum_iphone/</guid>
      
        <description>

&lt;h1 id=&#34;es-war-einmal&#34;&gt;Es war einmal&lt;/h1&gt;

&lt;p&gt;Am 6. Januar 2016 habe ich mein Fairphone2 erhalten und war erst einmal recht glücklich es in den Händen halten zu dürfen. O.K meine anfängliche Begeisterung hielt sich in Grenzen, denn es lag beschissen in der Hand (zu rutschig) und die Schutzhülle, die gleichzeitig auch die Gehäuseabdeckung ist, war pott häßlich. Aber gut, durchatmen und an die gute Idee glauben (was ich bis heute tue). Leider ist es in den nachfolgenden Monaten nicht wirklich besser geworden. Android ist einfach ein schreckliches Betriebssystem und habe bis heute auch kein Backup gemacht (von Threema abgesehen), wie auch.  Man hat sich zwar damit abgefunden und kam damit auch über den Tag &amp;hellip; oder zumindest fast. Mein Tag beginnt in der Regel um 6:05 mit dem Aufstehen und dem Abziehen des Telefons vom Ladegerät. Nun sollte man doch eigentlich erwarten, dass es zumindest bis abends hält (~10h). Entweder ich bin ein wirklich sehr ungewöhnlicher Benutzer (Musik / Streaming / Twitter / Mail), bei dem das Handy es kaum bis zur Mittagspause schafft, oder der Akku ist so etwas von unterdimensioniert, dass ein Akkupack eigentlich zum Lieferumfang gehören sollte. Nimmt man sich die diversen Ratschläge um Energie zu sparen zu Herzen und setzt sie um, ist dies gleich bedeutend mit dem Ausschalten des Fairphones, zu mindestens für mich. Fairerweise sollte ich dazu erwähnen, dass die Laufzeit sich vor allem dadurch halbierte, wenn zwei SIM Karten aktiv waren.
Mag sein, dass dies bei anderen nicht der Fall ist, Fakt ist jedoch, dass ich mit meinem alten iPhone 4s länger auskam, bei gleicher Nutzungscharakteristik. Auch ein Austausch des Akkus nach rund sechs Monaten half da nicht.
Wo  ich schon beim Austausch bin: ich habe bereits das dritte Display in meinem Telefon. An für sich eine phantastische Sache, mal eben den Bildschirm zu tauschen, aber nicht die Gründe. Fall Nummer eins war ein Produktionsfehler der noch in der Garantie lag. Fall Nummer zwei war eine tote Linie am Rand, die nicht mehr auf Eingaben reagierte. Immerhin, Bildschirm Nummer drei hält bis heute.
Als nächstes wurde das Kameramodul getauscht, da sie nicht mehr fokussierte (Urlaubsbilder adé), was weiter entfernt als 20cm war.
Auch das wurde anstandslos getaucht. Mit dem Aufkommen des neuen Moduls mit höherer Auflösung, habe ich nicht lang gefackelt &amp;hellip; und wieder einige Monate später sind kaum scharfe Bilder dabei. Über allen liegt ein &amp;ldquo;Blur&amp;rdquo; Effekt. In der Sekunde in der die Kamera &amp;ldquo;auslöst&amp;rdquo;, wird das Bild unscharf, obwohl es in Echtzeit ganz passabel aussieht. Man gewöhnt sich ja an alles&amp;hellip;
Der nächste Punkt der unfassbar nervig ist: die ständigen Neustarts &amp;hellip; Entweder werden sie durch ein Wackeln des Akkus ausgelöst,  einem Bug (zu Anfang mehrmals pro Tag) oder  - sehr häufig bei mir - den Ein- Ausschalter unbewußt zu betätigen. Dieser liegt so ungünstig, dass ich es nahezu immer schaffe die Taste beim sitzen zu betätigen, da ich das Telefon immer kopfüber in die Gesäßtasche stecke.
Im Grunde gibt es eigentlich nur vier Dinge, die mir am Telefon gut gefallen haben:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aquamail&lt;/li&gt;
&lt;li&gt;Öffi&lt;/li&gt;
&lt;li&gt;Echter Firefox mit NoScript&lt;/li&gt;
&lt;li&gt;Fairphone Sicherheits- Aktualisierungen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die oberen Punkte sind alles Android Apps, aber was die Aktualisierungen angeht, da ist das Team rund um das Fairphone wirklich verdammt schnell. Auch meine anfänglichen Bluetoothprobleme und den Kopfhörern, ist weitestgehend behoben worden, innerhalb von rund 2-3 Monaten. Ach, da fällt mir ein: Die Klinkenbuchse war bei mir nahezu unbrauchbar, da sämtliche Kopfhörer permanent Probleme hatten und die Wiedergabe stoppte, oder ich nur auf einer Seite etwas zu hören bekam. Daher war häufiges Drehen des Steckers angesagt.
Auch ein negativer Punkt ist die Hülle und auch die Anordnung oder Art der Knöpfe. Die Hülle ist einfach zu glatt und das Telefon rutschte mir häufiger aus der Hand. Die Lautstärke habe ich fast nie über die Knöpfe reguliert, da der Druckpunkt nicht fühlbar ist und auch viel zu fest zu drücken war. Der Knopf für die Kamera konnte nicht unpraktischer konstruiert werden, da der sehr häufig unbewußt ausgelöst wurde, ähnlich wie mit dem Power Button.&lt;/p&gt;

&lt;p&gt;Das war nun wirklich eine Menge Text und ich trauere ein wenig, da mir die Idee und die dahinter liegende Philosophie wirklich sehr zusagt, aber was nutzt mir ein Smartphone, welches beim Verlassen des Hauses bereits 10% seines Akkus &amp;ldquo;verloren&amp;rdquo; hat, mich mein Gegenüber nicht hört, weil das Mikrophon nicht immer funktioniert, oder ich die Kamera wieder einpacken muss, weil jedes Bild einfach mies aussieht.&lt;/p&gt;

&lt;h2 id=&#34;zurück-zum-iphone&#34;&gt;Zurück zum iPhone&lt;/h2&gt;

&lt;p&gt;Donnerstag, 24.05.2018, 17:45: &lt;cite&gt;&amp;ldquo;Ich brauche ein neues Telefon!!!11&amp;rdquo;&lt;/cite&gt;&lt;/p&gt;

&lt;p&gt;So, oder so ähnlich lautete meine Nachricht an meine Frau, die mir bereits seit Monaten die Erlaubnis gab, mir ein neues Telefon zu kaufen. Bisher konnte ich mich immer dem verwehren, aber als erneut mein Gesprächspartner mich nicht hören konnte, hatte ich keine Lust mehr. Ein iPhone musste (wieder) her.
Mir war klar, dass es kein Android werden würde, da ich Android per se nicht mag. Das fängt beim Backup an, geht über das Design und endet irgendwo mit der Sorge, schon nach einem Jahr keine (Sicherheits-) Aktualisieren  mehr zu erhalten, weil das nächste &amp;ldquo;Top&amp;rdquo; Smartphone herausgekommen ist. Und überhaupt, ich kann Android nicht leiden.
Die Frage war nun, welches iPhone. Obwohl, eigentlich war es keine &amp;hellip; nur die Farbe:

&lt;link rel=&#34;stylesheet&#34; href=&#34;./css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34;&gt;
&lt;figure  itemprop=&#34;associatedMedia&#34;
  itemscope itemtype=&#34;http://schema.org/ImageObject&#34; &gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;./blog/2018/images/iphone_red.jpg&#34; alt=&#34;Apple iPhone Red Edition&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;./blog/2018/images/iphone_red.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;&lt;h4&gt;iRed&lt;/h4&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;Seit nunmehr ein paar Tagen bin ich wieder mit dem iPhone unterwegs. Blöd ist zwar, dass man Threema immer noch nicht Plattform übergreifend sichern und zurückspielen kann, aber es ist ein wirklich gutes Gefühl ohne ruckeln, Neustarts und sonstigen Ärgernis (bisher) einfach ein funktionierendes Smartphone zu haben.&lt;/p&gt;

&lt;p&gt;Ich hoffe inständig, dass das Fairphone Team bei dem Fairphone3 diese Fehler nicht wiederholt und wer weiß &amp;hellip; (Scherz &amp;hellip; kein Android mehr!).&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Hugo</title>
      <link>https://www.denny-fuchs.de/blog/2018/05/21/hugo/</link>
      <pubDate>Mon, 21 May 2018 01:01:39 +0200</pubDate>
      
      <guid>https://www.denny-fuchs.de/blog/2018/05/21/hugo/</guid>
      
        <description>&lt;p&gt;Da ich eh nur noch selten irgend etwas blogge, spielte ich bereits seit längerem mit dem Gedanken mein Wordpress abzuschalten. Durch die neuen Datenschutzbestimmungen wurde das Vorhaben noch befeuert.
Als Alternative habe ich &lt;a href=&#34;https://jekyllrb.com/&#34;&gt;Jekyll&lt;/a&gt; ausprobiert, was auf den ersten Blick ganz O.K aussah, aber zum einen mag ich Ruby nicht (erst recht nicht unter OSX) und zum anderen waren die Themes zumeist sehr alt oder nicht mein Geschmack. Aktuell werden meine Seiten via &lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt; generiert und mit rsync ausgeliefert. Hugo lief einfach so (brew install hugo) und auf dem Server per dpkg -i *.deb. Als Theme nutze ich &lt;a href=&#34;https://github.com/Vimux/Mainroad&#34;&gt;Mainroad&lt;/a&gt;, was meinem alten Wordpress Theme ähnlich sieht.
Was leider so garnicht vernünftig geklappt hat, ist der Export/Import der Wordpress-Daten. Der blanke Text ist zwar da, aber die Formatieren sind zumeist kaputt. Einiges ließ sich per find  / sed korrigieren, andere Sachen wie Bildlinks etc. nicht. Aktuell habe ich da aber keine Lust, alle Beiträge durchzugehen und zu schauen, was zu fixen wäre. So wichtig ist mir dann das doch nicht.&lt;/p&gt;

&lt;p&gt;Meine Vorteile: Die Einträge liegen jetzt im Git. Ich kann lokal auf dem Mac hantieren, oder wenn es mal eilig ist, auch auf dem Server. Ich benötige keine Datenbank mehr und ich verwende praktisch keine externen Resourcen oder Plugins mehr. Aktuell die einzige Ausnahme ist fonts.googleapis.com, das war es auch bereits.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Zpool übertragen</title>
      <link>https://www.denny-fuchs.de/2017/11/07/zpool-uebertragen/</link>
      <pubDate>Tue, 07 Nov 2017 23:04:40 +0000</pubDate>
      
      <guid>https://www.denny-fuchs.de/2017/11/07/zpool-uebertragen/</guid>
      
        <description>&lt;p&gt;Da ich in die Verlegenheit kam von einer 960GB SSD (Crucial M550) auf eine Samsung 960Pro (890GB) zu migrieren (weil die Crucial mit der I/O Last zu Cron Zeiten nicht mehr zurecht kam), durfte ich einen Zpool übertragen.&lt;/p&gt;

&lt;p&gt;Da man das nicht jeden Tag macht, habe ich mir das einmal aufgeschrieben:&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://www.pug.org/mediawiki/index.php/Zpool_migrieren&#34;&gt;https://www.pug.org/mediawiki/index.php/Zpool_migrieren&lt;/a&gt;&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>snmp v3 unter Debian Jessie</title>
      <link>https://www.denny-fuchs.de/2016/11/20/snmp-v3-unter-debian-jessie/</link>
      <pubDate>Sun, 20 Nov 2016 20:59:13 +0000</pubDate>
      
      <guid>https://www.denny-fuchs.de/2016/11/20/snmp-v3-unter-debian-jessie/</guid>
      
        <description>&lt;p&gt;Damit ich nicht ständig danach suchen muss:&lt;/p&gt;

&lt;p&gt;Das Hilfsprogramm net-snmp-config versteckt sich im Paket libsnmp-dev&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# apt-get install libsnmp-dev&lt;/span&gt;
&lt;span class=&#34;c1&#34;&gt;# net-snmp-config --create-snmpv3-user -ro -A &amp;#39;geheim&amp;#39; -X &amp;#39;secret&amp;#39; -a SHA -x  AES icinga&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      
    </item>
    
    <item>
      <title>Zwei Monate Fairphone2 – Erfahrungsbericht</title>
      <link>https://www.denny-fuchs.de/2016/02/29/zwei-monate-fairphone2-erfahrungsbericht/</link>
      <pubDate>Mon, 29 Feb 2016 17:32:40 +0000</pubDate>
      
      <guid>https://www.denny-fuchs.de/2016/02/29/zwei-monate-fairphone2-erfahrungsbericht/</guid>
      
        <description>&lt;p&gt;Nun habe ich das Fairphone2 seit zwei Monaten im Einsatz und von daher kann ich mal meine persönlichen Erfahrungen kundtun.&lt;/p&gt;

&lt;p&gt;Als ich im Januar das Handy in den Händen hielt, war mir schon klar, dass ich mich von liebgewonnenen Funktionen und Programmen unter IOS verabschieden muss. Ich bin ein klarer Verfechter vom IOS Benutzerinterface, auch wenn es unter den letzten IOS Versionen etwas an Übersicht verloren hat. Ein Flameware zwischen IOS und Android will ich hier aber nicht starten, da das Telefon doch eher im Vordergrund stehen soll.&lt;/p&gt;

&lt;p&gt;Nach der Montage des Akkus und dem Aufsetzen der Hülle, habe ich gleich bemerkt, dass es schwer werden würde, das FP2 mit nur einer Hand zu bedienen. Abgesehen von seinen Dimensionen, ist vor allem der recht ungünstige Schwerpunkt ein Problem, da dieser recht hoch liegt. Hat man das Telefon im unteren Drittel in der Hand und möchte mit dem Daumen obere Bereiche erreichen, passiert es schnell, dass mir das Gerät fast aus der Hand fällt. Erschwerend kommt hinzu, dass die Hülle für mein Empfinden viel zu glatt ist. Meine ausgewählten IPhone 4s Hüllen hatten auch immer die Eigenschaft, nicht aus der Hand zu rutschen. Das Gleiche galt auch für das Ablegen auf z.B. nicht ebenen Oberflächen, wie einem Rucksack. Das FP2 ist mir dadaruch schon mehrfach entglitten und unsanft auf dem Boden gelandet.&lt;/p&gt;

&lt;p&gt;Als nicht sonderlich schöne Lösung habe ich mir &lt;a href=&#34;http://www.amazon.de/Plasti-Dip-61001001-Fl%C3%BCssiggummi-transparent/dp/B003A6B6TA&#34;&gt;Sprühgummi&lt;/a&gt; gekauft und die Hülle erst komplett mit vier Schichten „eingummiert“, dann zwei Tage später wieder komplett entfernt, nur um dann beim zweiten Versuch nur partiell die Rückseite zu beschichten. Beim ersten Versuch hat sich das Gummi an den Kanten sehr schnell abgelöst und noch häßlichere Blasen erzeugt. Die partielle Beschichtung hält etwas besser, aber auch nur ein paar Tage. Es sieht jetzt bereits nicht mehr schön aus, allerdings erfüllt es noch seinen Zweck.&lt;/p&gt;

&lt;p&gt;Kommen wir zu dem eher technischen Kram: Das nahezu erste war das Testen meiner Bluetooth Kopfhörer und wurde sogleich enttäuscht. Dies markiert auch einen Punkt, an dem man den Entwicklern als Kritik mit auf dem Weg geben kann, ihre Hardware/Software besser zu testen. Das Problem ist nähmlich nicht nur, dass das A2DP irgendwie kaputt ist (hoffentlich &lt;em&gt;nur&lt;/em&gt; ein Softwareproblem), was dazu führt, dass sehr viele Bluetoothkopfhörer oder Geräte nur &lt;a href=&#34;https://forum.fairphone.com/t/bluetooth-audio-quality-realy-bad/12016&#34;&gt;stotterndes Audio&lt;/a&gt; rausbringen), über flackernde Bildschirme und nicht mehr ansprechbares UI, während es am Ladegerät hängt.&lt;/p&gt;

&lt;p&gt;Schaut man sich mal im &lt;a href=&#34;https://forum.fairphone.com/c/fairphone2help&#34;&gt;Faiphone Forum&lt;/a&gt; um, fällt einem der nächste gravierende Punkt auf: das FP2 ist verdammt Reboot freudig. Anfangs war das bei mir eher die Ausnahme, mittlerweile habe ich zwischen zwei bis drei Reboots am Tag. Mal mehr, mal weniger. Eventuell liegt es an der SD Karte, oder den zwei (Congster) SIM Karten.&lt;/p&gt;

&lt;p&gt;Worauf ich hinaus will ist, dass ich mir nicht vorstellen kann, dass diese Probleme nicht schon während der Entwicklung aufgetreten sind. Dafür treten sie viel zu gehäuft auf. Ich kenne andere Inhaber, mit exakt den gleichen Problemen. Ich und andere Käufer hätten mit Sicherheit kein Problem gehabt, noch ein oder zwei Monate länger zu warten.&lt;/p&gt;

&lt;p&gt;Als Fazit kann man nur sagen: man sollte es sich sehr gut überlegen, ob man all diese Probleme auf sich nehmen möchte. Allein die Tatsache, dass ich die Idee sehr gut finde und die Entwickler blutige Anfänger sind (gemessen an den Erfahrungen der restlichen Handy Hersteller), lässt mich meine Toleranzgrenze sehr sehr dehnbar halten. Jedes andere Gerät wäre schon längst wieder zum Hersteller zurückgegangen, oder schlimmer, in die Schublade zum Siemens S65/Nokia E51.&lt;/p&gt;

&lt;p&gt;Ich kann nur sehr hoffen, dass mit dem hoffentlich bald kommenden Software Update ein Großteil der Probleme gelöst werden, andernfalls weiß ich nicht, ob ich mir das über Jahre antun möchte.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Landbrot No. 1</title>
      <link>https://www.denny-fuchs.de/2015/12/27/landbrot-no-1/</link>
      <pubDate>Sun, 27 Dec 2015 22:26:37 +0000</pubDate>
      
      <guid>https://www.denny-fuchs.de/2015/12/27/landbrot-no-1/</guid>
      
        <description>&lt;p&gt;Der &lt;a href=&#34;https://plus.google.com/+KristianK%C3%B6hntopp&#34;&gt;Kristian&lt;/a&gt; hat mal wieder Essen gepostet, allerdings war es dieses Mal &lt;a href=&#34;https://plus.google.com/+KristianKöhntopp/posts/9tMk9gtrXhG&#34;&gt;Brot von seiner Frau Carola&lt;/a&gt;, bzw. einer Vorstufe davon. Ich glaube von da an habe ich beschlossen, selbst unter die Bäcker zu gehen, mit Unterstützung meiner Frau 🙂
Wir haben zwar schon länger einen Brotbackautomaten und diverse Backmischungen, allerdings kommen sie nicht an den Geschmack eines Bäckerbrotes heran.
Mittlerweile weiß ich auch warum: Zeit + gutes Mehl fehlen.
Da ja gerade Weihnachten war, bekam ich von meiner Frau weiteres Zubehör sowie das &lt;a href=&#34;http://bongu.de/main/Artikel/51/das-brotbackbuch-nr-1-grundlagen&#34;&gt;Brotbackbuch Nr 1&lt;/a&gt;. Dazu gab es dann noch passendes &lt;a href=&#34;http://bongu.de/main/Artikel/60/t110-bio-landbrotmehl&#34;&gt;Landbrotmehl&lt;/a&gt;.
Das erste Brot im Buch ist ein Landbrot und wurde ein voller Erfolg 🙂 Zwar hatte ich den Vorteig mit zuviel Trockenhefe und Roggen- statt Dinkelmehl angesetzt, aber es schmeckt wirklich wie vom Bäcker.
Damit ist dann klar, dass ich sehr viel häufiger den Ofen an seine maximale Grenze bringen werde 😉&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Elasticsearch Cluster</title>
      <link>https://www.denny-fuchs.de/2015/10/16/elasticsearch-cluster/</link>
      <pubDate>Fri, 16 Oct 2015 11:31:48 +0000</pubDate>
      
      <guid>https://www.denny-fuchs.de/2015/10/16/elasticsearch-cluster/</guid>
      
        <description>&lt;p&gt;Da ich in der Firma einen neuen Logserver gebraucht habe (die SPARC (Sun v2xx) Kiste hat jeden Tag einen Reset hingelegt), läuft nun Elasticsearch mit vier Nodes (weil es ging) 🙂&lt;/p&gt;

&lt;p&gt;Nach drei Wochen würde ich das aber nicht mehr auf die Reihe bekommen, (Puppet seit Dank), daher doch mal lieber den Weg zu Fuß aufgeschrieben.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://www.pug.org/mediawiki/index.php/Elasticsearch_Logstash_Kibana_Cluster&#34;&gt;https://www.pug.org/mediawiki/index.php/Elasticsearch_Logstash_Kibana_Cluster&lt;/a&gt;&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Notiz: PDF Kennwort tilgen</title>
      <link>https://www.denny-fuchs.de/2015/09/01/notiz-pdf-kennwort-tilgen/</link>
      <pubDate>Tue, 01 Sep 2015 11:58:33 +0000</pubDate>
      
      <guid>https://www.denny-fuchs.de/2015/09/01/notiz-pdf-kennwort-tilgen/</guid>
      
        <description>&lt;p&gt;Hin und wieder benötigt man das:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre class=&#34;chroma&#34;&gt;gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=OUTPUT.pdf -c .setpdfwrite -f passwort-pdf.pdf&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      
    </item>
    
  </channel>
</rss>