<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>bisko.be</title><description>Persönlicher Blog und Texte von bisko – Gedanken zu Entwicklung, Abenteuern und dem Leben.</description><link>https://bisko.be/de/</link><language>de</language><item><title>Ollama mit älteren GPUs unter CachyOS betreiben</title><link>https://bisko.be/de/posts/dev/running-ollama-with-older-gpus-on-cachyos/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/running-ollama-with-older-gpus-on-cachyos/</guid><description>Heute habe ich meine Windows-11-VM auf Linux migriert, um flexibler bei den Diensten zu sein, die darauf laufen, und bin dabei auf ein Problem gestoßen: Ollama lief nicht auf meinen alten GPUs – GTX1070 und GTX970</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h3 id=&quot;tldr&quot;&gt;TL;DR;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;ollama-cuda&lt;/code&gt; unterstützt unter CachyOS (zum jetzigen Zeitpunkt) nur &lt;code&gt;compute &gt;= 7.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Wenn du ältere GPUs mit niedrigerem &lt;code&gt;compute&lt;/code&gt; hast, MUSST du eines von 2 Dingen tun:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ollama-cuda&lt;/code&gt; aus dem Quellcode bauen, mit Unterstützung für die älteren Compute-Targets&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ollama-vulkan&lt;/code&gt; installieren&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ich habe mich für &lt;code&gt;ollama-vulkan&lt;/code&gt; entschieden und es läuft einwandfrei!&lt;/p&gt;
&lt;h3 id=&quot;storytime&quot;&gt;Storytime&lt;/h3&gt;
&lt;p&gt;Heute kam mir die Eingebung, endlich meine Windows-11-VM abzuschalten und auf Linux zu migrieren.&lt;/p&gt;
&lt;p&gt;Die Anforderungen waren, dass Folgendes laufen muss:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama – für lokale Modell-Magie&lt;/li&gt;
&lt;li&gt;Docker – für Remote-Entwicklung&lt;/li&gt;
&lt;li&gt;Steam – zum Zocken&lt;/li&gt;
&lt;li&gt;Jellyfin – für das Heimvideo-Archiv&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ich konzentriere mich jetzt nur auf Ollama, denn es war eine interessante Erfahrung und hat mich zum Nachdenken gebracht, warum die Dinge nicht offensichtlicher sind.&lt;/p&gt;
&lt;p&gt;In der Maschine stecken 2 GPUs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GTX 1070 – 8 GB&lt;/li&gt;
&lt;li&gt;GTX 970 – 4 GB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ich wollte Ollama darauf laufen lassen, um mit lokalen Modellen herumzuspielen und zu schauen, wie ich sie in ein paar Projekte integrieren könnte. Zum Beispiel: Daten lokal anonymisieren, eine nicht-destruktive OpenClaw-Implementierung bauen, die zu meinen Anwendungsfällen passt, lokale OCR für Dokumente, die ich mit dem Handy scanne, und einige Dinge im Alltag der Haushaltsverwaltung automatisieren.&lt;/p&gt;
&lt;p&gt;Also habe ich ganz selbstverständlich &lt;code&gt;ollama&lt;/code&gt; und &lt;code&gt;ollama-cuda&lt;/code&gt; installiert, da ich 2 Nvidia-GPUs drin habe, und erwartet, dass das problemlos funktioniert, schließlich lief es unter Windows ja noch ein paar Minuten zuvor.&lt;/p&gt;
&lt;p&gt;Ich habe Ollama gestartet, &lt;code&gt;qwen3:8b&lt;/code&gt; für ein schnelles Experiment geladen und… es lief auf der CPU 🤔&lt;/p&gt;
&lt;p&gt;Die GPUs wären völlig in der Lage gewesen, das Modell im VRAM zu halten, aber aus irgendeinem Grund entschied sich Ollama, es auf der CPU laufen zu lassen.&lt;/p&gt;
&lt;p&gt;Nachdem ich versucht hatte, es anhand der Logs herauszufinden, habe ich Claude um Hilfe gebeten, und der kam mit einem ziemlich entmutigenden Ergebnis um die Ecke:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;The&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; logs&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; tell&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; the&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; story&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; clearly.&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Both&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; your&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GPUs&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; are&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; detected&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; but&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; then&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; filtered&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; out&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; because&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; they&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; fail&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CUDA&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initialization:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  &quot;filtering device which didn&apos;t fully initialize&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; id=GPU-eb132a13-b9f4-40e3-d85d-60f211dfd21e&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ...&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; library=CUDA&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  &quot;filtering device which didn&apos;t fully initialize&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; id=GPU-550263c8-37e2-2a25-c0b6-10cc7511ed20&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ...&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; library=CUDA&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  The&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; reason&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; the&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CUDA&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; library&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; bundled&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; with&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Ollama&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.17.4&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; was&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; compiled&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; these&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; architectures&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; only:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  CUDA.0.ARCHS&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;=750,800,860,870,880,890,900,1000,1030,1100,1200,1210&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  The&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; minimum&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; supported&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; compute&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; capability&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 7.5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (Turing &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; RTX&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 20xx&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; series&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;). Your GPUs are older than that:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  ┌──────────┬────────────────────┬──────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   GPU&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Compute&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Capability&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Architecture&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  ├──────────┼────────────────────┼──────────────┤&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GTX&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1070&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; │&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 6.1&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;                │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Pascal&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  ├──────────┼────────────────────┼──────────────┤&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GTX&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 970&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  │&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 5.2&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;                │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Maxwell&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  └──────────┴────────────────────┴──────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  Neither&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; the&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; supported&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list,&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; so&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CUDA&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initialization&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; fails&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; both,&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Ollama&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; falls&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; back&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CPU-only&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inference.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  Your&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; options:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  1.&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Downgrade&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Ollama&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; an&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; older&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; version&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; that&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; still&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; included&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Pascal/Maxwell&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; support&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (pre-0.6.x &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;era&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; had&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; broader&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; arch&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; coverage,&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; but&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; check&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; release&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; notes&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; specifics&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  2.&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Build&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Ollama&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; with&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CUDA_ARCHITECTURES=&quot;52;61;75;80;86&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; include&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; your&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GPU&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; architectures.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  3.&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Upgrade&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GPUs&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; at&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; least&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; an&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; RTX&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 2060&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; newer&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (compute &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;7.5+&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Das war ehrlich gesagt ein ziemlicher Dämpfer, denn ich wollte die GPUs so lange wie möglich nutzen, bevor ich auf eine neue umsteige.&lt;/p&gt;
&lt;p&gt;Ich wollte Ollama nicht tatsächlich aus dem Quellcode neu bauen, denn es sollte eigentlich out of the box funktionieren, und ich war sehr verwirrt, warum es das nicht tat, obwohl die Windows-Installation diese Architekturen unterstützt hat.&lt;/p&gt;
&lt;p&gt;Diese Karten wurden auf der Ollama-Website außerdem als unterstützt aufgeführt!&lt;/p&gt;
&lt;p&gt;Um die lange Google-Odyssee abzukürzen:&lt;/p&gt;
&lt;p&gt;Es stellt sich heraus, dass &lt;code&gt;ollama-cuda&lt;/code&gt; nur mit den oben genannten Anforderungen kommt… und der Tipp lautete, &lt;code&gt;ollama-vulkan&lt;/code&gt; zu installieren.&lt;/p&gt;
&lt;p&gt;Nachdem ich das gemacht hatte, lief alles butterweich!&lt;/p&gt;</content:encoded><category>dev</category><category>linux</category><category>llm</category><category>ollama</category><category>cachyos</category><category>vulcan</category><category>cuda</category></item><item><title>[Linux] Eine getrennte `apt dist-upgrade`-Sitzung wiederherstellen</title><link>https://bisko.be/de/posts/dev/linux-recovering-a-disconnected-apt-dist-upgrade-session/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/linux-recovering-a-disconnected-apt-dist-upgrade-session/</guid><description>Heute habe ich meine Proxmox-Installation aus der Ferne über die integrierte Konsole aktualisiert, dabei aber vergessen, was ich gerade tat, und den Tab mittendrin geschlossen. Dadurch konnte ich mich nicht mehr verbinden, denn die Pakete wurden bereits im Hintergrund aktualisiert und das Upgrade hatte eine Frage zum Ersetzen einer Datei gestellt und wartete auf Antwort</description><pubDate>Wed, 23 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Heute habe ich meine Proxmox-Installation aus der Ferne über die integrierte Konsole aktualisiert, dabei aber vergessen, was ich gerade tat, und den Tab mittendrin geschlossen.&lt;/p&gt;
&lt;p&gt;Das führte dazu, dass ich mich nicht mehr verbinden konnte, da die Pakete bereits im Hintergrund aktualisiert wurden und das Upgrade eine Frage zum Ersetzen einer Datei gestellt hatte und nun auf meine Eingabe wartete.&lt;/p&gt;
&lt;p&gt;Ich konnte mich also per SSH einloggen, aber nichts tun, da es immer noch auf eine Eingabe in einer Konsole wartete, mit der ich mich nicht verbinden konnte, weil sich die Oberfläche nicht öffnen ließ.&lt;/p&gt;
&lt;p&gt;Nach kurzem Umschauen bin ich auf einen &lt;a href=&quot;https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session&quot;&gt;Serverfault-Thread&lt;/a&gt; gestoßen, in dem erwähnt wurde, &lt;code&gt;reptyr&lt;/code&gt; zu benutzen, um die Terminalsitzung per SSH zu übernehmen.&lt;/p&gt;
&lt;p&gt;Ich halte hier fest, was genau ich gemacht habe, um die Sitzung zurückzubekommen und das Upgrade abzuschließen:&lt;/p&gt;
&lt;p&gt;Aus &lt;a href=&quot;https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session#comment1506308_979180&quot;&gt;diesem Kommentar&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; clone&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; https://github.com/nelhage/reptyr&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; reptyr&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;make&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; install&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Damit wurde &lt;code&gt;reptyr&lt;/code&gt; auf dem Rechner installiert.&lt;/p&gt;
&lt;p&gt;Dann habe ich mit &lt;code&gt;ps ax | grep pts&lt;/code&gt; nach allen offenen Sitzungen gesucht, um den gesuchten Prozess zu finden.&lt;/p&gt;
&lt;p&gt;Danach habe ich den obersten Elternprozess im Prozessbaum gefunden, dem ein &lt;code&gt;pts&lt;/code&gt; zugewiesen ist, und mich über seine PID daran angehängt:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;reptyr&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -T&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1390511&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dann konnte ich das Upgrade abschließen! 🎉&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category></item><item><title>Hibiskuspflanze unter den Morgenstrahlen</title><link>https://bisko.be/de/posts/blog/hibiscus-plant-under-the-morning-rays/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/hibiscus-plant-under-the-morning-rays/</guid><pubDate>Sun, 21 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Große rote Hibiskusblüte im Fokus, darüber Knospen, vor blauem Himmel mit dünnen Wolken und Dorfhäusern im Hintergrund&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_2327-b97d8968.C7nMUQ33_Z1YnOwk.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>flower</category><category>flowers</category><category>nature</category></item><item><title>Zeitraffer: Porto am Fluss</title><link>https://bisko.be/de/posts/blog/timelapse-porto-by-the-river/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/timelapse-porto-by-the-river/</guid><description>Vor ein paar Tagen hatten wir ein Team-Treffen in Porto. Endlich habe ich ein paar meiner Kolleginnen und Kollegen getroffen, die ich in den letzten zwei Jahren nur über Zoom gesehen hatte. Wir haben ein paar Tage im großartigen Co-Working-Space Porto I/O Riverside verbracht. Der Space hat einen tollen Balkon, den wir ausgiebig genossen haben und auf dem wir</description><pubDate>Tue, 07 Jun 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vor ein paar Tagen hatten wir ein Team-Treffen in &lt;a href=&quot;https://en.wikipedia.org/wiki/Porto&quot;&gt;Porto&lt;/a&gt;. Endlich habe ich ein paar meiner Kolleginnen und Kollegen getroffen, die ich in den letzten zwei Jahren nur über Zoom gesehen hatte.&lt;/p&gt;
&lt;p&gt;Wir haben ein paar Tage im großartigen Co-Working-Space &lt;a href=&quot;https://porto.io/en/location/riverside/&quot;&gt;Porto I/O Riverside&lt;/a&gt; verbracht.&lt;/p&gt;
&lt;p&gt;Der Space hat einen tollen Balkon, den wir ausgiebig genossen haben, und wir haben dort einige produktive Gespräche geführt, wenn wir uns nicht gerade im Anblick des Schiffsverkehrs auf dem Fluss verloren haben&lt;/p&gt;
&lt;p&gt;In einem dieser Momente, in denen wir einfach nur still dasaßen und die Aussicht bewunderten, ist mir ein richtig schöner Zeitraffer gelungen.&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Photography</category><category>Timelapse</category><category>travel</category><category>boats</category><category>Porto</category><category>Portugal</category><category>river</category><category>roofs</category></item><item><title>[Linux] Syncthing – Dateisystem schreibgeschützt, wenn es als Service läuft</title><link>https://bisko.be/de/posts/dev/linux-syncthing-read-only-file-system-when-running-as-service/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/linux-syncthing-read-only-file-system-when-running-as-service/</guid><description>Ich benutze Syncthing jetzt schon seit ein paar Monaten, um meine Arbeitskopie mit einem lokalen Dev-Server zu synchronisieren. Anfangs habe ich es genutzt, indem ich mich eingeloggt und es manuell über die CLI gestartet habe. Das lief gut, also habe ich mir keine weiteren Gedanken gemacht, als ich es auf den Betrieb als Service umgestellt habe.</description><pubDate>Wed, 06 Apr 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ich benutze &lt;a href=&quot;https://syncthing.net/&quot;&gt;Syncthing&lt;/a&gt; schon eine Weile, um meine Arbeitskopie mit einem lokalen Dev-Server zu synchronisieren, genauer gesagt seit ein paar Monaten.&lt;/p&gt;
&lt;p&gt;Anfangs habe ich es genutzt, indem ich mich eingeloggt und es manuell über die CLI gestartet habe. Das lief gut, also habe ich mir keine weiteren Gedanken gemacht, als ich es auf den Betrieb als Service umgestellt habe. Es startete, es synchronisierte ein paar Daten, alles war in Ordnung.&lt;/p&gt;
&lt;p&gt;Bis es das natürlich nicht mehr war! 🙂&lt;/p&gt;
&lt;p&gt;Wie sich herausstellte, hatte ich eine ganze Reihe von Fehlern in den Logs übersehen, die besagten, dass das Dateisystem auf dem Dev-Server schreibgeschützt ist, und deshalb synchronisierte Syncthing überhaupt nichts.&lt;/p&gt;
&lt;p&gt;Ich dachte, es wäre ein Bug und es würde bei den Ordnern nur &lt;code&gt;Out of Sync&lt;/code&gt; anzeigen, aber eigentlich würde es synchronisieren. Tja, falsch gedacht.&lt;/p&gt;
&lt;p&gt;Nach ein paar Stunden Debugging und ein paar Google-Suchen, bei denen ich in den Foren absolut keine Hinweise fand, landete ich bei einem &lt;a href=&quot;https://wiki.archlinux.org/title/syncthing#read-only_file_system_error_on_/etc_although_run_as_root&quot;&gt;Syncthing-Artikel im ArchWiki&lt;/a&gt;, der genau meinen Fall beschrieb:&lt;/p&gt;
&lt;p&gt;read-only file system error on /etc although run as root&lt;/p&gt;
&lt;p&gt;Das war exakt mein Anwendungsfall, nur dass der problematische Ordner nicht &lt;code&gt;/etc&lt;/code&gt; war, sondern &lt;code&gt;/usr/local/src&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nach dem Lesen stellte sich heraus: Wenn man Syncthing (oder irgendetwas anderes) über &lt;code&gt;systemd&lt;/code&gt; laufen lässt und für den Service &lt;code&gt;ProtectSystem&lt;/code&gt; auf &lt;code&gt;full&lt;/code&gt; gesetzt ist, werden standardmäßig einige Verzeichnisse schreibgeschützt. &lt;code&gt;/usr&lt;/code&gt; ist eines dieser Verzeichnisse.&lt;/p&gt;
&lt;p&gt;Um das zu beheben, muss man in der Service-Konfiguration eine neue Zeile hinzufügen und den Service neu starten (und &lt;code&gt;daemon-reload&lt;/code&gt; ausführen):&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ReadWritePaths=/usr/local/src&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Danach sollte Syncthing einwandfrei funktionieren.&lt;/p&gt;</content:encoded><category>dev</category><category>Homelab</category><category>linux</category><category>permissions</category><category>read-only</category><category>syncthing</category><category>systemd</category></item><item><title>Zugriff verweigert</title><link>https://bisko.be/de/posts/blog/access-denied/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/access-denied/</guid><pubDate>Sat, 31 Jul 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Drei Wespen krabbeln um ein rostiges Loch in einem Metalltorpfosten, eine davon sitzt auf einem Schlüssel, der im Schloss steckt, neben weißen Blumen&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_4506-8e7e236d.BcqhatkL_zWajt.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>door</category><category>insect</category><category>insects</category><category>key</category><category>lock</category><category>nature</category><category>wasp</category><category>wasps</category></item><item><title>Lavendel im Sonnenuntergang</title><link>https://bisko.be/de/posts/blog/lavender-sunset/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/lavender-sunset/</guid><pubDate>Sat, 03 Jul 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Lavendelähren im Gegenlicht als Silhouette, hinter dem höchsten Stängel leuchtet die tiefstehende Sonne vor blauem Himmel und dunklen Bäumen&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/image_534908fa-cab6-4233-832b-e401bab27a30.img_3963-ccdc9838.CHRt9-9J_ZxRqVE.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>Uncategorized</category><category>flower</category><category>sun</category></item><item><title>Zeitraffer: Ein Sturm zieht auf</title><link>https://bisko.be/de/posts/blog/timelapse-a-storm-rolling-over/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/timelapse-a-storm-rolling-over/</guid><pubDate>Sat, 26 Jun 2021 00:00:00 GMT</pubDate><content:encoded/><category>blog</category><category>Photography</category><category>clouds</category><category>storm</category><category>Timelapse</category><category>weather</category></item><item><title>Sonnenstrahlen auf Gelb</title><link>https://bisko.be/de/posts/blog/sunrays-on-yellow/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/sunrays-on-yellow/</guid><pubDate>Sat, 05 Jun 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Sonnenbeschienene gelbe Nachtkerzenblüten mit zarten Staubblättern vor einem unscharfen grünen Hintergrund aus Blättern und hellem Himmel&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/image_42f35f6f-2341-47f4-a7a0-eb0a75d3678f.img_3167-8b4daa1a.WUo3hBS8_BI9FB.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>flower</category><category>sunrays</category><category>yellow</category></item><item><title>Rosen</title><link>https://bisko.be/de/posts/blog/roses/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/roses/</guid><pubDate>Sun, 23 May 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Leuchtend rote Rosen in voller Blüte und als Knospen an einem Kletterrosenstrauch vor blauem Himmel, rechts ist eine Dachkante zu sehen&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_2866-bd30e710.fEDlZ8s7_Z3rCvg.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category></item><item><title>Bewölkt mit Aussicht auf Tulpen</title><link>https://bisko.be/de/posts/blog/cloudy-with-a-chance-of-tulips/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/cloudy-with-a-chance-of-tulips/</guid><description>Rückblick ins Jahr 2013, als ich meinen Opa im Dorf besucht habe. Dabei habe ich diese hübsche Tulpe gefunden, abgeschnitten und einfach an den Straßenrand geworfen.</description><pubDate>Mon, 03 May 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Rote Tulpe im Gegenlicht der Sonne, von unten vor tiefblauem Himmel mit weißen Wolken fotografiert, daneben ragt ein grünes Blatt empor&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1936&quot; height=&quot;2592&quot; src=&quot;/_astro/img_1645-bb728269.BHDQHNQt_1vNnmk.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Rückblick ins Jahr 2013, als ich meinen Opa im Dorf besucht habe. Dabei habe ich diese hübsche Tulpe gefunden, abgeschnitten und einfach an den Straßenrand geworfen.&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>clouds</category><category>flower</category><category>flowers</category><category>nature</category><category>red</category><category>sky</category><category>travel</category></item><item><title>[Linux] Mehrere Befehle parallel auf mehreren Servern ausführen</title><link>https://bisko.be/de/posts/dev/linux-running-multiple-commands-on-multiple-servers-in-parallel/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/linux-running-multiple-commands-on-multiple-servers-in-parallel/</guid><description>Ich habe zu Hause einen Cluster aus Raspberry Pis, auf dem Docker Swarm läuft. Damit alles im Gleichschritt bleibt, verwenden sie dieselbe Konfiguration – Benutzer, Docker-Versionen usw. Manche Updates erfordern, dass auf allen Knoten des Clusters dasselbe ausgeführt wird – zum Beispiel das Anlegen eines neuen Docker-macvlan-Netzwerks. Um</description><pubDate>Mon, 19 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ich habe zu Hause einen Cluster aus Raspberry Pis, auf dem Docker Swarm läuft. Damit alles im Gleichschritt bleibt, verwenden sie dieselbe Konfiguration – Benutzer, Docker-Versionen usw.&lt;/p&gt;
&lt;p&gt;Manchmal erfordern Updates, dass auf allen Knoten des Clusters dasselbe ausgeführt wird – zum Beispiel das Anlegen eines neuen Docker-macvlan-Netzwerks.&lt;/p&gt;
&lt;p&gt;Dafür muss man entweder dieselben Befehle auf allen Knoten manuell ausführen, indem man sich per &lt;strong&gt;ssh&lt;/strong&gt; auf jeden einzelnen einloggt, die Befehle laufen lässt und dann zum nächsten weitergeht.&lt;/p&gt;
&lt;p&gt;Da ich versuche, langfristig meinen Aufwand zu reduzieren und alles so ordentlich wie möglich zu halten, habe ich angefangen, nach Möglichkeiten zu suchen, Befehle auf allen Knoten gleichzeitig auszuführen.&lt;/p&gt;
&lt;h3 id=&quot;iteration-1-eigenes-python-skript&quot;&gt;Iteration 1: Eigenes Python-Skript&lt;/h3&gt;
&lt;p&gt;Die erste Iteration bestand darin, ein eigenes Python-Skript zu schreiben. Einerseits wollte ich dabei Python etwas besser lernen, andererseits fand ich keinen guten Weg, Befehle auf eine eher native Art auszuführen.&lt;/p&gt;
&lt;p&gt;Wie zu erwarten war (ich habe schließlich noch wenig Erfahrung mit der Sprache 🙂 ), wurde es ziemlich schnell ein aufgeblähtes Durcheinander und war sehr anfällig für Fehler.&lt;/p&gt;
&lt;p&gt;Ich musste einen anderen Weg finden, ohne mir ständig neu erarbeiten zu müssen, was ich vor drei Wochen gemacht hatte und was beim letzten Mal kaputtgegangen ist.&lt;/p&gt;
&lt;h3 id=&quot;iteration-2-pssh&quot;&gt;Iteration 2: &lt;code&gt;pssh&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Beim Herumgooglen bin ich auf &lt;code&gt;[pssh](https://linux.die.net/man/1/pssh)&lt;/code&gt; gestoßen, das Dinge parallel über SSH ausführen kann.&lt;/p&gt;
&lt;p&gt;Alles in allem war es ziemlich einfach, das Ganze zum Laufen zu bekommen.&lt;/p&gt;
&lt;p&gt;Das Problem war, dass ich einige Dinge per &lt;code&gt;sudo&lt;/code&gt; ausführen musste. Passwörter herumzureichen war nicht gerade ideal, also musste ich wieder suchen, wie ich das &lt;code&gt;sudo&lt;/code&gt;-Passwort senden kann, wenn der entfernte Server danach fragt.&lt;/p&gt;
&lt;p&gt;Es stellt sich heraus, dass es ziemlich einfach ist, wenn man über den richtigen &lt;a href=&quot;https://unix.stackexchange.com/a/487558/134974&quot;&gt;StackOverflow-Kommentar&lt;/a&gt; stolpert.&lt;/p&gt;
&lt;h3 id=&quot;die-kurzfassung-tldr&quot;&gt;Die Kurzfassung (TL;DR):&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;stty&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -echo&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;Password: &quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;read&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; PASS&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;stty&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; echo&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;PASS&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}&quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;pssh&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -h&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;HOSTFIL&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;E&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -o&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /tmp/output&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -t&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -I&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;`&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cat&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ./commands.sh`&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Das &lt;code&gt;-I &quot;`cat ./commands.sh`&quot;&lt;/code&gt; muss genau so geschrieben werden (in Anführungszeichen und Backticks eingefasst), sonst werden die Befehle nicht richtig ausgeführt. Das Passwort wird als separater Befehl gesendet und nicht als Eingabe für &lt;strong&gt;sudo&lt;/strong&gt; aufgenommen.&lt;/p&gt;
&lt;p&gt;Der andere Haken ist, dass man wegen dieser Konstruktion &lt;code&gt;sudo&lt;/code&gt; mit dem Parameter &lt;code&gt;-S&lt;/code&gt; ausführen muss, damit die Passworteingabe korrekt entgegengenommen wird.&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category></item><item><title>Sternennacht</title><link>https://bisko.be/de/posts/blog/starry-night/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/starry-night/</guid><description>Kürzlich waren wir im Urlaub in den bulgarischen Bergen. In einer der Nächte war der Himmel klar genug, um dem neuen Nachtmodus des iPhone 12 eine Chance zu geben. Die ersten Versuche wirkten etwas verrauscht und zeigten nicht allzu viele Details. Zum Glück habe ich dieses Foto mit meinem Cousin geteilt, und er meinte, dass</description><pubDate>Tue, 09 Feb 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Kürzlich waren wir im Urlaub in den bulgarischen Bergen.&lt;/p&gt;
&lt;p&gt;In einer der Nächte war der Himmel klar genug, um dem neuen Nachtmodus des iPhone 12 eine Chance zu geben.&lt;/p&gt;
&lt;p&gt;Die ersten Versuche wirkten etwas verrauscht und zeigten nicht allzu viele Details.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Schwacher grüner Polarlicht-Schimmer über Kiefern und Sternen, aufgenommen von einem Balkon unter einem Dachüberstand&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_1381-10c608c2.DVecqBvr_Z1VJ5i5.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Zum Glück habe ich dieses Foto mit meinem Cousin geteilt, und er meinte, ich könnte es mal mit RAW versuchen, da dabei mehr Informationen erhalten bleiben, die sich nach der Aufnahme noch anpassen lassen.&lt;/p&gt;
&lt;p&gt;Das habe ich gemacht und das Speichern der Fotos in ProRAW aktiviert. Das Ergebnis sah ähnlich aus wie das obige Foto, aber dann habe ich es in der Fotos-App auf iOS bearbeitet, ganz ohne externe Tools.&lt;/p&gt;
&lt;p&gt;Nach ein paar Anpassungen kamen die Details vor dem dunklen Himmelshintergrund richtig gut zum Vorschein.&lt;/p&gt;
&lt;p&gt;Das Endergebnis gefällt mir ziemlich gut!&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Dunkler Sternenhimmel mit einem blassen leuchtenden Dunst über grün beleuchteten Kiefern, eingerahmt von einem Balkongeländer&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_1380-3c06f94f.9xJS155n_VMvSG.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Und noch eine lustige Tatsache zum Foto: Das helle Leuchten am Himmel ist in Wirklichkeit Rauch aus dem Kamin des Hotels, den ich erst beim Fotografieren gesehen habe, nicht mit bloßem Auge. Es war sooo dunkel.&lt;/p&gt;
&lt;p&gt;Ich werde auf jeden Fall in Zukunft weiter mit Nachtmodus-Fotografie experimentieren, und zwar bei klarerem und dunklerem Himmel!&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>night-photos</category><category>travel</category></item><item><title>Weirdy der Schneemann</title><link>https://bisko.be/de/posts/blog/weirdy-the-snowman/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/weirdy-the-snowman/</guid><description>Manchmal ist der Schnee einfach zu gefroren, um eine anständige Kugel für einen Schneemann zu formen. Warum ihn in solchen Fällen nicht Stein für Stein oder Schicht für Schicht bauen, als wäre er ein Lego-Bauwerk?</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Schneemann mit einem Nudelsieb aus Metall als Hut, Karottennase, rot umrandeten Augen und rotem Mund, mit türkisfarbenen Stockarmen, auf einem verschneiten Holztisch&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/image_af25d50e-4c23-444f-9224-f7c5c1bceca3.img_0953-83f032c2.C2lW_tiM_1jpdxL.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Manchmal ist der Schnee einfach zu gefroren, um eine anständige Kugel für einen Schneemann zu formen. Warum ihn in solchen Fällen nicht Stein für Stein oder Schicht für Schicht bauen, als wäre er ein Lego-Bauwerk?&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>Winter</category><category>ice</category><category>snowman</category></item><item><title>Die Heuschrecke</title><link>https://bisko.be/de/posts/blog/the-grasshopper/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/the-grasshopper/</guid><description>Habe diesen kleinen Kerl an einem ziemlich kalten Morgen neben meinem Auto beim Chillen entdeckt.</description><pubDate>Tue, 08 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Grüne, laubheuschreckenartige Heuschrecke auf rauem grauem Asphalt, ihre langen Fühler hinter sich herziehend, im Hintergrund verschwommenes Gras&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_0416-de3b3257.C7SwA0Oo_ZcuH8m.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Habe diesen kleinen Kerl an einem ziemlich kalten Morgen neben meinem Auto beim Chillen entdeckt.&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>Animals</category><category>cold</category><category>grasshopper</category><category>green</category><category>morning</category><category>Photography</category></item><item><title>Der „Bleistift“</title><link>https://bisko.be/de/posts/blog/the-pencil/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/the-pencil/</guid><description>Bei unserem letzten Ausflug ging es in die Berge. Es war ein schöner, abgelegener Ort. Nur ein paar Häuser und ein Restaurant. Direkt neben einem verlassenen Stausee. Die Mücken und die Hitze waren unsere Erzfeinde, aber wir haben uns irgendwie durchgeschlagen. Da es in der Gegend nicht viel zu tun gab, mussten wir uns Beschäftigungen einfallen lassen.</description><pubDate>Sun, 08 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Verwitterter Treibholzstock mit angespitzter Spitze und mehreren kleinen Löchern, der auf einem dunklen Holzdielenboden liegt&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_3189-041bec7e.ylsLA4bE_Zu4r9W.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Bei unserem letzten Ausflug ging es in die Berge. Es war ein schöner, abgelegener Ort. Nur ein paar Häuser und ein Restaurant. Direkt neben einem verlassenen Stausee.&lt;/p&gt;
&lt;p&gt;Die Mücken und die Hitze waren unsere Erzfeinde, aber wir haben uns irgendwie durchgeschlagen.&lt;/p&gt;
&lt;p&gt;Da es in der Gegend nicht viel zu tun gab, mussten wir uns Beschäftigungen einfallen lassen. Zum Glück stolperte mein Sohn über einen großen, rechteckigen Stein und fand es richtig faszinierend, ihn herumzutragen. Ich fand ihn auch faszinierend.&lt;/p&gt;
&lt;p&gt;Jede Seite hatte eine andere Textur, ungefähr wie verschiedene Schleifpapiere.&lt;/p&gt;
&lt;p&gt;Außerdem hatten wir eine Menge älterer Äste, die von den Bäumen rund um den Ort heruntergefallen waren.&lt;/p&gt;
&lt;p&gt;Nach sorgfältiger Überlegung von ein paar Sekunden begannen wir, die wunderbare Welt zu erkunden, in der man Stöcke spitzer macht.&lt;/p&gt;
&lt;p&gt;Einer der Stöcke wurde genau wie ein Bleistift! Er hatte ein Loch in perfekter Größe, um ein winziges Stück Graphit aus einem echten Bleistift hineinzustecken, und es funktionierte!&lt;/p&gt;
&lt;p&gt;Wir haben damit auf dem Boden herumgemalt, und es war großartig.&lt;/p&gt;</content:encoded><category>blog</category><category>Quick &amp;amp; Easy</category><category>travel</category><category>Adventures</category><category>forest</category><category>stone</category><category>woodwork</category></item><item><title>Schneeglöckchen</title><link>https://bisko.be/de/posts/blog/snowdrops/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/snowdrops/</guid><description>Rückblick ins Jahr 2007.</description><pubDate>Thu, 08 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Drei weiße Schneeglöckchen mit grünen Markierungen, die sich an schlanken Stielen neben einem Baumstamm und einem Holzzaun neigen&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1024&quot; height=&quot;768&quot; src=&quot;/_astro/c7a42ddf-26db-487f-8ca3-20b5ef6704dc_1_105_c-bd84ccbc.nK60jHnF_Z1KzMGp.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Rückblick ins Jahr 2007.&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>flowers</category><category>snowdrops</category></item><item><title>Das Passwort einer numerischen ZIP-Datei nur mit Kommandozeilen-Werkzeugen erraten</title><link>https://bisko.be/de/posts/dev/guessing-a-numeric-zip-file-password-only-with-command-line-utilities/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/guessing-a-numeric-zip-file-password-only-with-command-line-utilities/</guid><description>Heute habe ich meine monatliche Rechnung von meinem Internetanbieter erhalten und etwas kam mir seltsam vor. Die Rechnung, die in der E-Mail enthalten war, befand sich in einer passwortgeschützten ZIP-Datei. Ganz zu schweigen davon, wie merkwürdig es in der heutigen Zeit ist, einen Anhang als ZIP-Datei zu erhalten (Spam, Malware, Phishing usw.), das</description><pubDate>Mon, 14 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Heute habe ich meine monatliche Rechnung von meinem Internetanbieter erhalten und etwas kam mir seltsam vor.&lt;/p&gt;
&lt;p&gt;Die Rechnung, die in der E-Mail enthalten war, befand sich in einer ZIP-Datei mit Passwort.&lt;/p&gt;
&lt;p&gt;Ganz zu schweigen davon, wie merkwürdig es in der heutigen Zeit ist, einen Anhang als ZIP-Datei zu erhalten (Spam, Malware, Phishing usw.), kam mir das gewählte Passwort ziemlich schwach vor.&lt;/p&gt;
&lt;p&gt;Es ist der Geburtstag des Kontoinhabers im Format &lt;code&gt;YYMMDD&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ich habe im Fitnessstudio eine sehr grobe Berechnung im Kopf angestellt und bin auf sehr wenige mögliche Kombinationen gekommen. Nachdem ich mit einem Online-Tool berechnet habe, wie viele Tage seit dem 1900-01-01 vergangen sind (da nicht alle Kombinationen ein gültiges Datum ergeben würden), stellte sich heraus, dass es nur 44.075 Kombinationen sind (bis 2020-09-14).&lt;/p&gt;
&lt;p&gt;Da ich weiß, dass optimierte Tools, die GPU-Leistung zum Knacken von Hashes nutzen, Millionen von Versuchen pro Sekunde durchführen können, wollte ich sehen, wie schnell das Passwort ohne solche Tools geraten werden kann, nur mit der Linux/macOS-Kommandozeile (da ich im Fitnessstudio nur Zugriff auf einen VPS hatte).&lt;/p&gt;
&lt;p&gt;Ich habe folgenden Code entwickelt, der unter macOS funktioniert:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;echo {1..44000} | xargs -P 16 -n 1 -I{} date -v &quot;-{}d&quot; +&quot;%y%m%d&quot; | xargs -P 16 -I{} sh -c &apos;unzip -qqoP &quot;{}&quot; 0417160508.zip &amp;#x26;&amp;#x26; echo &quot;{}&quot; &amp;#x26;&amp;#x26; exit 255&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Der Befehl ist von seiner Funktionsweise her ziemlich einfach, auch wenn er kompliziert erscheint.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;echo {1..44000}&lt;/code&gt; erzeugt die Zahlen von 1 bis 44.000 und gibt sie an den nächsten Schritt weiter.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xargs -P 16 -n 1 -I{} date -v &quot;-{}d&quot; +&quot;%y%m%d&quot;&lt;/code&gt; – nimmt die Eingabe aus dem ersten Schritt und erzeugt Daten im Format &lt;code&gt;YYMMDD&lt;/code&gt;, indem die Funktionalität von &lt;code&gt;date&lt;/code&gt; genutzt wird, ein Datum um einen bestimmten Betrag zu „ergänzen“. In diesem Fall würde es X Tage vom aktuellen Datum abziehen, wobei X die im ersten Schritt erzeugte Zahl ist. Auf diese Weise können wir Daten vom heutigen Tag zurück bis in die 1900er Jahre erzeugen.&lt;/p&gt;
&lt;p&gt;Der dritte Schritt ist der interessantere, daher werde ich ihn in zwei Teile aufteilen:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xargs -P 16 -I{} sh -c &apos;...&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Dies nimmt die in Schritt 2 erzeugten Daten und führt für jedes dieser Daten einen Befehl aus. &lt;code&gt;-P 16&lt;/code&gt; bedeutet hier, dass dies in 16 parallelen Prozessen ausgeführt wird, um das Durchsuchen der Daten zu beschleunigen. Derselbe Trick wird auch in Schritt 2 angewendet, um die Datumserzeugung zu beschleunigen.&lt;/p&gt;
&lt;p&gt;Der zweite Teil ist der Ort, an dem die Rateversuche stattfinden:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;unzip -qqoP &quot;{}&quot; 0417160508.zip &amp;#x26;&amp;#x26; echo &quot;{}&quot; &amp;#x26;&amp;#x26; exit 255&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Dabei wird zunächst versucht, die ZIP-Datei mit dem in Schritt 2 erzeugten Passwort zu entpacken. Wenn es erfolgreich ist, wird das erratene Passwort ausgegeben (&lt;code&gt;echo&lt;/code&gt;), und dann erzwingt &lt;code&gt;exit 255&lt;/code&gt;, dass &lt;code&gt;xargs&lt;/code&gt; die Ausführung stoppt. Wir wollen nicht weiter raten, wenn das Passwort bereits gefunden wurde.&lt;/p&gt;
&lt;p&gt;Alles in allem war es eine ziemlich schlechte Entscheidung, dies als Passwort für die Datei zu wählen, denn das Ausführen des obigen Befehls dauert nur etwa 10 Sekunden, um das richtige Passwort für meine Rechnung zu erraten. Für jeden anderen auch nicht viel länger.&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category></item><item><title>Graffiti rund um die Welt: Burgas, Bulgarien</title><link>https://bisko.be/de/posts/blog/graffiti-around-the-world-burgas-bulgaria/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/graffiti-around-the-world-burgas-bulgaria/</guid><description>Neulich bin ich zufällig auf dieses Foto von einem Freund von mir gestoßen. Passt definitiv in die Serie!</description><pubDate>Tue, 08 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Buntes Straßenwandbild einer orangefarbenen Schnecke mit gelbem Spiralhaus, auf dem Pilze, Wesen mit Augen, ein UFO und ein grüner Außerirdischer sitzen&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1440&quot; height=&quot;1087&quot; src=&quot;/_astro/img_1545-6a461b59.DrLukEK8_ozvWH.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Die Psy-Schnecke&lt;/p&gt;
&lt;p&gt;Neulich bin ich zufällig auf dieses Foto von einem Freund von mir gestoßen. Passt definitiv in die Serie!&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category></item><item><title>Das neue Rad</title><link>https://bisko.be/de/posts/blog/the-new-wheel/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/the-new-wheel/</guid><description>Bei einem Ausflug in ein Bergdorf haben wir diesen Laster gefunden, dem eines der Hinterräder fehlte. Unser Sohn war gar nicht glücklich darüber, dass der Laster verletzt war, also beschlossen wir, ihm ein Rad zu improvisieren. Nachdem wir einen Verschluss einer Wasserflasche gefunden hatten, haben wir mit ein bisschen Messerzauber einen Teil des Verschlusses entfernt, um</description><pubDate>Sat, 08 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Gelber Spielzeug-Betonmischer-Laster mit einem unpassenden, selbstgebastelten blauen Hinterrad, während das Vorderrad schwarz mit gelber Nabe ist&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_1070-1bce5de4.PNKa8g3z_Z1B6f9F.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Bei einem Ausflug in ein Bergdorf haben wir diesen Laster gefunden, dem eines der Hinterräder fehlte.&lt;/p&gt;
&lt;p&gt;Unser Sohn war gar nicht glücklich darüber, dass der Laster verletzt war, also beschlossen wir, ihm ein Rad zu improvisieren.&lt;/p&gt;
&lt;p&gt;Nachdem wir einen Wasserflaschenverschluss gefunden hatten, haben wir mit ein bisschen Messerzauber einen Teil des Verschlusses entfernt, damit er in der Größe passt.&lt;/p&gt;
&lt;p&gt;Nach einem kurzen Eingriff mit dem Feuerzeug, um das Plastik zu schmelzen, haben wir es geschafft, ihn an die Achse des fehlenden Rads zu schweißen.&lt;/p&gt;
&lt;p&gt;Und es funktioniert tatsächlich!&lt;/p&gt;
&lt;p&gt;Seht nur, wie er flitzt!&lt;/p&gt;</content:encoded><category>blog</category><category>Quick &amp;amp; Easy</category><category>Second Chances</category><category>diy</category><category>fixing</category><category>toys</category></item><item><title>Umgang mit Spaghetti-Code in PHP: Anonyme Funktionen nutzen, um Teile von Template-Code zu extrahieren</title><link>https://bisko.be/de/posts/dev/dealing-with-spaghetti-code-in-php-using-anonymous-functions-to-extract-pieces-of-template-code/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/dealing-with-spaghetti-code-in-php-using-anonymous-functions-to-extract-pieces-of-template-code/</guid><description>Kürzlich habe ich einem Freund geholfen, Code zu verstehen und so zu ändern, dass er gut mit asynchronen Aufrufen ans Backend funktioniert. Ein Bonus wäre, ihn modularer und wiederverwendbarer schreiben zu können. Der Code ist ein WordPress-Plugin, das geschrieben wurde</description><pubDate>Sat, 08 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Kürzlich habe ich einem Freund geholfen, Code zu verstehen und so zu ändern, dass er gut mit asynchronen Aufrufen ans Backend funktioniert. Ein Bonus wäre, ihn modularer und wiederverwendbarer schreiben zu können.&lt;/p&gt;
&lt;p&gt;Der Code ist ein WordPress-Plugin, das mit einem sehr altmodischen Ansatz geschrieben wurde – Business- und Frontend-Logik an einer Stelle vermischt. Datenmanipulationen mitten im Template-Code und so weiter.&lt;/p&gt;
&lt;p&gt;Im Grunde das, was man Anfang der 2000er auf PHP-Seiten gesehen hat, bevor all die großartigen OOP-Erweiterungen in die Sprache kamen und es eine Reihe ausgereifter Frameworks gab.&lt;/p&gt;
&lt;p&gt;Der Fall, an dem ich heute geknabbert habe, sah so aus: Du hast eine Tabelle, die eine Menge Einträge anzeigt. Wir mussten der Tabelle mehrere Filter hinzufügen und sie per AJAX funktionieren lassen, damit sich die Oberfläche schnell aktualisiert, ohne die ganze WordPress-Admin-Seite neu zu laden.&lt;/p&gt;
&lt;p&gt;Das Filtern der Daten war einfach – ein schnelles Inline-&lt;code&gt;array_filter&lt;/code&gt;, um die Daten zu filtern, bevor sie an den Template-Code übergeben wurden (um den Code-Stil beizubehalten, stand das ebenfalls in der Template-Datei 😇).&lt;/p&gt;
&lt;p&gt;Das Problem begann, als wir daran gingen, die Tabelle über AJAX renderbar zu machen.&lt;/p&gt;
&lt;p&gt;Sie steckt mitten in einem Haufen anderen Template- und Business-Codes. Wenn wir die Ausgabe per AJAX nur auf die Tabelle beschränken wollten, hatten wir nur ein paar Möglichkeiten.&lt;/p&gt;
&lt;p&gt;Die erste wäre, das HTML vor und nach der Tabelle in RIESIGE &lt;code&gt;if&lt;/code&gt;-Anweisungen zu packen, damit es nicht gerendert wird.&lt;/p&gt;
&lt;p&gt;Eine andere wäre, das Template in eine separate Datei auszulagern und sie in der AJAX-Action einzubinden, die wir im Code des Plugins definieren würden.&lt;/p&gt;
&lt;p&gt;Anonyme Funktionen to the rescue!&lt;/p&gt;
&lt;p&gt;Als ich überlegte, wie sich das am einfachsten lösen lässt, versuchte ich, eine normale PHP-Funktion zu definieren, die den Tabellencode enthält, aber da gab es ein Problem.&lt;/p&gt;
&lt;p&gt;Der Code läuft innerhalb einer Klassenmethode. Im Tabellen-Template gibt es Verweise auf &lt;code&gt;$this&lt;/code&gt;. Wenn wir den Code nicht zu sehr ändern wollen, müssten wir &lt;code&gt;$this&lt;/code&gt; als Funktionsargument übergeben. Tja, das funktioniert nicht so ganz, denn &lt;code&gt;$this&lt;/code&gt; kann man nicht als Parameter übergeben 🤷‍♂️.&lt;/p&gt;
&lt;p&gt;Ich war ein bisschen enttäuscht, dass wir einen Haufen im Template umschreiben müssten, und es gab ziemlich viele Verweise, die wir im Blick behalten wollten, damit alles weiter funktioniert.&lt;/p&gt;
&lt;p&gt;Dann fiel mir ein, dass die Seite nicht auf PHP 5.2 läuft, sondern auf PHP 7 und anonyme Funktionen somit unterstützt würden.&lt;/p&gt;
&lt;p&gt;Und die haben dieses praktische Feature, mit dem man festlegen kann, welche Variablen aus dem aufrufenden Scope an die Funktion weitergereicht werden, wenn sie aufgerufen wird. Zum Beispiel:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;php&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;$table_function &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ( $pages, $current_page, $items ) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // ... Table render code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dadurch kannst du direkt im Funktionskörper auf &lt;code&gt;$pages&lt;/code&gt; oder &lt;code&gt;$items&lt;/code&gt; zugreifen.&lt;/p&gt;
&lt;p&gt;Das Großartige daran: Du kannst auch &lt;code&gt;$this&lt;/code&gt; als Variable in den Funktions-Scope übergeben!&lt;/p&gt;
&lt;p&gt;Jetzt konnten wir den Code zum Rendern der Tabelle komplett in eine separate Funktion auslagern, die wir beim AJAX-Aufruf isoliert aufrufen können!&lt;/p&gt;
&lt;p&gt;Natürlich muss man bei den Variablen im Funktionskörper sehr vorsichtig sein, da sie definiert sein müssen. Man sollte also genau darauf achten, wo die AJAX-Funktion aufgerufen werden kann.&lt;/p&gt;
&lt;p&gt;Für uns bedeutet das, dass wir in der Hauptklasse eine winzige Action hinzufügen, die die Datei weiterhin einbindet, wir aber mehr Kontrolle darüber haben, alle anderen Ausgaben zu unterbinden, die sonst stattfinden würden.&lt;/p&gt;</content:encoded><category>dev</category><category>Snippets</category><category>lambda-functions</category><category>php</category><category>WordPress</category></item><item><title>Graffiti rund um die Welt: Pferde</title><link>https://bisko.be/de/posts/blog/graffiti-around-the-world-horses/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/graffiti-around-the-world-horses/</guid><description>Kinderspielplatz in Sofia, Bulgarien</description><pubDate>Wed, 08 Jul 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Wandgemälde mit zehn stilisierten, kubistischen Pferdeköpfen in Gelb, Schwarz, Lila, Grau, Orange, Blau, Weiß und Braun vor einem blau-rosa Hintergrund&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;6435&quot; height=&quot;2755&quot; src=&quot;/_astro/img_1222-8152ca52.D5sLohsY_Z2jrb7b.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kinderspielplatz in Sofia, Bulgarien&lt;/strong&gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Graffiti</category><category>horses</category><category>Photography</category><category>travel</category></item><item><title>Zeitraffer: Abendlandung am Flughafen Toronto Pearson</title><link>https://bisko.be/de/posts/blog/timelapse-evening-landing-at-toronto-pearaon-airport/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/timelapse-evening-landing-at-toronto-pearaon-airport/</guid><description>Abendlandung am Flughafen Toronto Pearson – 28. September 2018</description><pubDate>Mon, 08 Jun 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Abendlandung am Flughafen Toronto Pearson – 28. September 2018&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>travel</category><category>Airplane</category><category>Canada</category><category>Landing</category><category>Timelapse</category><category>Toronto</category></item><item><title>Die Giraffe</title><link>https://bisko.be/de/posts/blog/the-giraffe/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/the-giraffe/</guid><description>Beim Spielen mit Lego Duplo ist ein hübsches Muster entstanden</description><pubDate>Fri, 08 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Wand aus bunten, rechteckigen Spielzeugbausteinen in Lila, Gelb, Rot, Blau und Grün, mit einem kleinen Giraffen-Messlatten-Plättchen nahe der Oberkante&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2734&quot; height=&quot;3645&quot; src=&quot;/_astro/img_0214-37c92416.DWchMgfS_ZILsQg.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Beim Spielen mit Lego Duplo ist ein hübsches Muster entstanden&lt;/p&gt;</content:encoded><category>blog</category><category>Animals</category><category>Photography</category><category>blocks</category><category>building</category><category>duplo</category><category>lego</category></item><item><title>Arduino/ESP32: Den Task-Watchdog deaktivieren</title><link>https://bisko.be/de/posts/dev/arduino-esp32-disabling-the-task-watchdog/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/arduino-esp32-disabling-the-task-watchdog/</guid><description>Kürzlich habe ich ein bisschen mit der Multicore-Funktionalität des ESP32 und dem Pinning von Tasks auf bestimmte Kerne herumgespielt. Ich habe AutoConnect verwendet, um eine WLAN-Verbindung ohne im Code gespeicherte Zugangsdaten zu unterstützen und OTA-Updates über die Web-Oberfläche anzubieten. Das war für ein Projekt, das einige 4-Pin-PWM-CPU-Lüfter steuern sollte, die in</description><pubDate>Wed, 29 Apr 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Kürzlich habe ich ein bisschen mit der Multicore-Funktionalität des ESP32 und dem Pinning von Tasks auf bestimmte Kerne herumgespielt.&lt;/p&gt;
&lt;p&gt;Ich habe &lt;a href=&quot;https://github.com/Hieromon/AutoConnect&quot;&gt;AutoConnect&lt;/a&gt; verwendet, um eine WLAN-Verbindung ohne im Code gespeicherte Zugangsdaten zu unterstützen und OTA-Updates über die Web-Oberfläche anzubieten.&lt;/p&gt;
&lt;p&gt;Das war für ein Projekt, das einige 4-Pin-PWM-CPU-Lüfter in meinem Serverschrank steuern sollte, um die Luft darin zu kühlen. Dafür wollte ich die Logik auf zwei Tasks aufteilen.&lt;/p&gt;
&lt;p&gt;Ein Task für APIs, Sensorauslesung, Updates, WLAN usw. und ein Task für den Interrupt und die PWM-Steuerung der Lüfter.&lt;/p&gt;
&lt;p&gt;Alles war gut, die Tasks wurden erstellt, aber beim Ausführen des Codes zeigte sich ein seltsames Verhalten, sobald ich den ESP32 in den Modus brachte, in dem man sich mit ihm verbinden muss, um ihm zu sagen, mit welchem WLAN er sich verbinden soll: Er startete alle paar Sekunden den Controller neu, und ich bekam die Verbindung nicht zum Laufen.&lt;/p&gt;
&lt;p&gt;Das war eine nervige Zeit, denn ich musste den Controller von seinem Platz abmontieren und per USB anschließen, um eine neue Firmware zu flashen.&lt;/p&gt;
&lt;p&gt;Nachdem ich das getan hatte, bemerkte ich, dass der Fehler vom Watchdog kam:&lt;/p&gt;
&lt;p&gt;Task watchdog got triggered. The following tasks did not feed the watchdog in time:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;IDLE (CPU 1)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Tasks currently running:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;CPU 0: ManageTask&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;CPU 1: ControllerTask&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Beim Recherchieren stellte sich heraus, dass das vom Task-Watchdog des ESP32 ausgelöst wird, der sicherstellt, dass alle Tasks ihre Rechenzeit auf der CPU bekommen.&lt;/p&gt;
&lt;p&gt;Außerdem schien AutoConnect in einem Task-Kontext nicht besonders flexibel zu sein, verglichen mit der Ausführung außerhalb eines Tasks, direkt zusammen mit dem restlichen Code und den anderen Funktionen.&lt;/p&gt;
&lt;p&gt;Nach etwas Herumstöbern und Ausprobieren scheint der einfachste Ausweg zu sein, den Watchdog einfach zu deaktivieren und zu hoffen, dass alles rechtzeitig ausgeführt wird 🙂 Der Task ist nicht geschäftskritisch, also ist es in Ordnung, wenn er etwas länger braucht, um fertig zu werden.&lt;/p&gt;
&lt;p&gt;Um den Watchdog zu deaktivieren, musst du zwei Dinge tun:&lt;/p&gt;
&lt;p&gt;Erstens: den Header &lt;code&gt;esp_task_wdt.h&lt;/code&gt; einbinden. Füge dazu &lt;code&gt;#include &amp;#x3C;esp_task_wdt.h&gt;&lt;/code&gt; zu deinem Include-Bereich hinzu.&lt;/p&gt;
&lt;p&gt;Zweitens: den Watchdog so einstellen, dass er den Controller nicht zurücksetzt und länger wartet. Dafür musst du &lt;code&gt;esp_task_wdt_init(30, false);&lt;/code&gt; am Anfang deines Task-Codes einfügen.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; manage_core_task&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;pv_parameters&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    esp_task_wdt_init&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // .... rest of the code ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Das setzt das Watchdog-Timeout auf 30 &lt;strong&gt;SEKUNDEN&lt;/strong&gt; und deaktiviert den Controller-Reset, wenn er ausgelöst wird.&lt;/p&gt;
&lt;p&gt;Wenn du möchtest, dass der Controller nach dem Auslösen des Watchdogs trotzdem zurückgesetzt wird, ändere den zweiten Parameter des Funktionsaufrufs von &lt;code&gt;false&lt;/code&gt; auf &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category><category>arduino</category><category>code</category><category>esp32</category><category>espressif</category><category>multi-core</category><category>multi-threading</category></item><item><title>🌼 &amp; 🐝</title><link>https://bisko.be/de/posts/blog/%F0%9F%8C%BC-%F0%9F%90%9D/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/%F0%9F%8C%BC-%F0%9F%90%9D/</guid><pubDate>Tue, 14 Apr 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Biene auf einer weißen, margeritenartigen Chrysantheme, umgeben von weißen, gelben, rosa und rotorangen Blüten in einem Gartenbeet&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1024&quot; height=&quot;768&quot; src=&quot;/_astro/image-1-c44a4a22.DM-UJBpr_ZsDCIE.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>bee</category><category>bees</category><category>flower</category><category>flowers</category></item><item><title>Wenn Reisen eine Pause vom Reisen braucht</title><link>https://bisko.be/de/posts/blog/when-travel-needs-a-break-from-travel/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/when-travel-needs-a-break-from-travel/</guid><description>Wenn ein Kind findet, dass die Reisekoffer sich ausruhen müssen.</description><pubDate>Sat, 14 Mar 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Orangefarbenes Pop-up-Zelt in einem sonnigen Wohnzimmer mit Sofa und Kinderrutsche, darin eine Matratze und drei Koffer&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1024&quot; height=&quot;768&quot; src=&quot;/_astro/image-ef37b29d.BszBkRqS_1jMq5e.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Wenn ein Kind findet, dass die Reisekoffer sich ausruhen müssen.&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>fun</category><category>travel</category></item><item><title>Graffiti rund um die Welt: Dublin</title><link>https://bisko.be/de/posts/blog/graffiti-around-the-world-dublin/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/graffiti-around-the-world-dublin/</guid><description>Vor ein paar Monaten waren wir auf einem Trip in Dublin, und ich war überrascht, wie viele richtig gute Graffiti-Künstler es dort gibt. Hier sind ein paar davon.</description><pubDate>Fri, 14 Feb 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vor ein paar Monaten waren wir auf einem Trip in Dublin, und ich war überrascht, wie viele richtig gute Graffiti-Künstler es dort gibt.&lt;/p&gt;
&lt;p&gt;Hier sind ein paar davon.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Street Art im Stencil-Stil: eine junge Frau mit einem kleinen Vogel auf der Schulter, gemalt auf einen Verteilerkasten neben einem Schaufenster von Powers Irish Whiskey&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7482-63b60082.Bxx3TjUc_1oK5zc.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Bemalter Verteilerkasten mit zwei Figuren in gepuderten Perücken in einer Theaterloge, eine mit langer Nase hält eine gelbe Rose, dahinter ein Mann&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7716-cf4a09eb.BXnFmORL_Zwb0W.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Wandbild auf einem Verteilerkasten bei Nacht: zwei Frauen machen Selfies mit ihren Handys, eine sitzt auf dem Schoß der anderen, umgeben von goldenen Sternen&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7465-a1ef02f7.dem_I3k3_1u9UWt.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Verteilerkasten, bemalt als Retro-Kassette mit Regenbogenstreifen, beschriftet mit Mixtape for Dublin und Stereo 120&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7670-a65a7a2d.6pMYI6Bw_Z15AP4O.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Rotes Wandbild eines bärtigen alten Seemanns, der neben einem kleinen Hund Pfeife raucht, mit dem Schriftzug Auld Dubliner auf einem Schild im Buntglas-Stil&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_7672-dbb3a83b.DFWmxWvS_ZOjwzR.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Bemalter Verteilerkasten mit einem lockenköpfigen Dirigenten vor einem Chor aus orangehaarigen Sängern mit offenen Mündern in weißen Chorhemden&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7362-681994c0.Cob4Td7H_2gJf3X.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>blog</category><category>Graffiti</category><category>Dublin</category><category>Ireland</category><category>Photography</category><category>travel</category></item><item><title>Einen YubiKey für das Signieren von Git-Commits einrichten</title><link>https://bisko.be/de/posts/dev/setting-up-a-yubikey-for-git-commit-signing/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/setting-up-a-yubikey-for-git-commit-signing/</guid><description>Ich benutze einen YubiKey als Zwei-Faktor-Authentifizierungs-Schlüssel und um meine Git-Commits zu signieren. Bis vor ein paar Tagen war das ein YubiKey 4. Da mein aktueller Rechner keine USB-A-Anschlüsse hat, habe ich ständig USB-A-auf-USB-C-Adapter in meinem Rucksack herumgeschleppt, und den Key zu benutzen war ein Krampf für das</description><pubDate>Wed, 08 Jan 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ich benutze einen YubiKey als &lt;a href=&quot;https://de.wikipedia.org/wiki/Mehr-Faktor-Authentisierung&quot;&gt;Zwei-Faktor-Authentifizierungs&lt;/a&gt;-Schlüssel und um meine Git-Commits zu signieren. Bis vor ein paar Tagen habe ich einen YubiKey 4 benutzt. Da mein aktueller Rechner keine USB-A-Anschlüsse hat, habe ich ständig USB-A-auf-USB-C-Adapter in meinem Rucksack herumjongliert, und den Key zu benutzen war im letzten Jahr ein ziemlicher Krampf. Deshalb habe ich beschlossen, dass es Zeit ist, auf meinen „neuen“ YubiKey 5C umzusteigen, damit ich nicht mehr mit diesen Adaptern hantieren muss.&lt;/p&gt;
&lt;p&gt;Eigentlich habe ich den Key schon eine Weile, denn ich hatte ihn zusammen mit einem Ersatz-YubiKey-4 bestellt, wegen des &lt;a href=&quot;https://www.yubico.com/2017/10/infineon-rsa-key-generation-issue/&quot;&gt;Infineon-TPM&lt;/a&gt;-Problems, das sie damals festgestellt haben. Aber erst jetzt habe ich entschieden, dass es Zeit für den Wechsel auf den neuen Key ist.&lt;/p&gt;
&lt;p&gt;Der andere Grund, es jetzt zu tun: Meine alten GPG-Keys sind abgelaufen und ich musste sie neu ausstellen, also kann ich den Key gleich zum Signieren meiner Git-Commits benutzen.&lt;/p&gt;
&lt;h3 id=&quot;gpg-wahnsinn&quot;&gt;GPG-Wahnsinn&lt;/h3&gt;
&lt;p&gt;Wenn du schon einmal mit GPG-Keys zu tun hattest (oder gerade hast), weißt du, dass es ziemlich schwer sein kann, alles richtig und sicher zum Laufen zu bringen, wenn man es noch nie gemacht hat. Master-Keys offline halten, öffentliche Schlüssel hin- und herschieben, Keys nach dem Ablauf neu ausstellen, sie eventuell mit früheren Keys signieren, um sie zu verifizieren, Keys widerrufen … Selbst in der Theorie ist es nicht leicht, die Best Practices zu befolgen. In der Praxis wird es extrem kompliziert.&lt;/p&gt;
&lt;p&gt;Die meisten Tutorials im Netz sagen, du sollst die CLI zum Erzeugen deiner Keys benutzen, dich durch Menüs mit einem ungewöhnlichen Bedienkonzept hangeln, und generell ist es eine Qual, das alles zum Laufen zu bringen. Die meisten Tutorials empfehlen einen Offline-Rechner wie einen Raspberry Pi und/oder Master-Key und Subkeys offline zu erzeugen und den Master-Key nicht auf deinem Rechner zu lassen.&lt;/p&gt;
&lt;p&gt;🤯&lt;/p&gt;
&lt;p&gt;Damit schlage ich mich jetzt seit fast 4 Jahren jeden Januar herum. Ich fürchte den Moment, in dem ich folgenden Fehler bekomme, der mir sagt, dass meine Signing-Keys abgelaufen sind.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;error: gpg failed to sign the data&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fatal: failed to write commit object&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dieses Jahr habe ich beschlossen, dass es Zeit ist, diesen Prozess deutlich einfacher zu machen und die eingebaute Schlüsselerzeugung zu nutzen, um den ganzen Ärger mit der GPG-Key-Generierung und Co. zu vermeiden.&lt;/p&gt;
&lt;h3 id=&quot;schlüsselerzeugung-direkt-auf-dem-yubikey&quot;&gt;Schlüsselerzeugung direkt auf dem YubiKey&lt;/h3&gt;
&lt;p&gt;Auch hier müssen wir die CLI-Oberfläche benutzen, aber sie ist etwas übersichtlicher, weil es weniger Schritte gibt.&lt;/p&gt;
&lt;p&gt;Zuerst müssen wir unsere Karte bzw. unser Gerät einrichten.&lt;/p&gt;
&lt;h3 id=&quot;einrichtung-von-kartegerät&quot;&gt;Einrichtung von Karte/Gerät&lt;/h3&gt;
&lt;p&gt;Führe &lt;code&gt;gpg --card-status&lt;/code&gt; im Terminal aus und du solltest in etwa Folgendes sehen:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Reader ………..: Yubico Yubikey 4 OTP U2F CCID&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Application ID …: &amp;#x3C;Serial number&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Version ……….: 2.1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Manufacturer …..: Yubico&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Serial number ….: &amp;#x3C;Device serial number&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Name of cardholder: unspecified&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Language prefs …: en&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Sex …………..: unspecified&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;URL of public key : \[not set\]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Login data …….: &amp;#x3C;e-mail or nothing&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Signature PIN ….: not forced&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Key attributes …: rsa4096 rsa4096 rsa4096&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Max. PIN lengths .: 127 127 127&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;PIN retry counter : 3 0 3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Signature counter : 9&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wenn du etwas Ähnliches siehst und keine Fehler auftauchen, kannst du weitermachen.&lt;/p&gt;
&lt;p&gt;Führe &lt;code&gt;gpg --card-edit&lt;/code&gt; aus.&lt;/p&gt;
&lt;p&gt;Du landest in einer CLI-Oberfläche, die zu Beginn dieselben Informationen anzeigt und unten eine Eingabeaufforderung &lt;code&gt;gpg/card&gt;&lt;/code&gt; hat.&lt;/p&gt;
&lt;p&gt;Tippe &lt;code&gt;admin&lt;/code&gt; und drücke Return/Enter.&lt;/p&gt;
&lt;p&gt;Mit &lt;code&gt;help&lt;/code&gt; kannst du jetzt herausfinden, wie du die Besitzerinformationen und die PINs der Karte änderst.&lt;/p&gt;
&lt;p&gt;Eines &lt;strong&gt;&lt;em&gt;MUSST&lt;/em&gt;&lt;/strong&gt; du tun: die Standard-PINs der Karte ändern. Es gibt zwei davon. Die erste ist die PIN, mit der du auf die Keys auf der Karte zugreifst. Die zweite ist die „Admin“-PIN oder PUK (Personal Unblocking Code).&lt;/p&gt;
&lt;p&gt;Dazu tippst du &lt;code&gt;passwd&lt;/code&gt; und siehst ein Menü:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg/card&gt; passwd  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg: OpenPGP card no. &amp;#x3C;Serial number&gt; detected&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;1 - change PIN  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;2 - unblock PIN  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;3 - change Admin PIN  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;4 - set the Reset Code  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Q - quit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tippe &lt;code&gt;1&lt;/code&gt; und folge den Anweisungen, um deine PIN zu ändern. Die Standard-PIN ist &lt;code&gt;123456&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Wähle danach &lt;code&gt;3&lt;/code&gt;, um die Admin-PIN zu ändern. Der Standardwert ist &lt;code&gt;12345678&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Wenn beide PINs geändert sind, gehe zurück ins Hauptmenü, um die Key-Informationen fertig zu aktualisieren.&lt;/p&gt;
&lt;p&gt;Die verfügbaren Befehle sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; – um den Namen des Karteninhabers zu ändern&lt;/li&gt;
&lt;li&gt;&lt;code&gt;login&lt;/code&gt; – um die E-Mail-Adresse oder den Login des Karteninhabers zu ändern&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Danach können wir mit der eigentlichen Schlüsselerzeugung weitermachen.&lt;/p&gt;
&lt;h3 id=&quot;schlüsselerzeugung&quot;&gt;Schlüsselerzeugung&lt;/h3&gt;
&lt;p&gt;Jetzt ist es Zeit, die Keys tatsächlich zu erzeugen.&lt;/p&gt;
&lt;p&gt;Tippe dazu &lt;code&gt;generate&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Du wirst gefragt: &lt;code&gt;Make off-card backup of encryption key? (Y/n)&lt;/code&gt;. Wie in der Dokumentation von YubiKey erwähnt, ist das aber nur ein Schein-Backup und erstellt kein vollständiges Backup der geheimen Schlüssel, daher spielt es keine Rolle, ob du mit &lt;code&gt;Yes&lt;/code&gt; oder &lt;code&gt;No&lt;/code&gt; antwortest. Ich antworte mit &lt;code&gt;No(n)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Falls bereits Keys auf der Karte gespeichert sind, wirst du gefragt, ob du sie ersetzen willst:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg: Note: keys are already stored on the card!&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Replace existing keys? (y/N)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Stelle sicher, dass du nichts Wichtiges ersetzt, wovon du kein Backup hast, und fahre mit &lt;code&gt;Y&lt;/code&gt; fort. Wenn etwas Wichtiges drauf ist, brich den ganzen Vorgang besser mit &lt;code&gt;Ctrl+C&lt;/code&gt; ab.&lt;/p&gt;
&lt;p&gt;Du wirst nach der Karten-PIN gefragt, die du vorhin gesetzt hast.&lt;/p&gt;
&lt;p&gt;Danach musst du auswählen, wie lange die Keys gültig sein sollen:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Please specify how long the key should be valid.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        0 = key does not expire&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      &amp;#x3C;n&gt; = key expires in n days&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &amp;#x3C;n&gt;w = key expires in n weeks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &amp;#x3C;n&gt;m = key expires in n months&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &amp;#x3C;n&gt;y = key expires in n years&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt; Key is valid for? (0)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wenn die Keys nur 1 Jahr gültig sein sollen, tippe &lt;code&gt;1y&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Du wirst gebeten, das Ablaufdatum zu bestätigen. Prüfe, ob alles stimmt, und bestätige.&lt;/p&gt;
&lt;p&gt;Danach wirst du aufgefordert, Informationen zum Key-Besitzer einzugeben:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Is this correct? (y/N) y&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;GnuPG needs to construct a user ID to identify your key.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Real name: &amp;#x3C;Your name&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Email address: &amp;#x3C;Your e-mail&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Comment: &amp;#x3C;Comment is optional&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt; You selected this USER-ID:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &quot;&amp;#x3C;Your name&gt; &amp;#x3C;comment&gt; &amp;#x3C;your e-mail&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt; Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Type `O` to confirm if everything seems correct.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dann wirst du nach deiner Admin-PIN bzw. PUK gefragt. Die wird gebraucht, weil auf die Karte geschrieben wird.&lt;/p&gt;
&lt;p&gt;Wenn alles stimmt, beginnt der YubiKey zu blinken und tut das eine ganze Weile (bei mir etwa fünf Minuten).&lt;/p&gt;
&lt;p&gt;Wenn er fertig ist, siehst du die folgende Meldung:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg: key &amp;#x3C;Short ID&gt; marked as ultimately trusted&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg: revocation certificate stored as &apos;/Users/bisko/.gnupg/openpgp-revocs.d/&amp;#x3C;LONG ID&gt;.rev&apos; public and secret key created and signed.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notiere dir die &lt;code&gt;&amp;#x3C;Short ID&gt;&lt;/code&gt;, wir brauchen sie später noch.&lt;/p&gt;
&lt;p&gt;An diesem Punkt kannst du die GPG-Eingabeaufforderung mit &lt;code&gt;quit&lt;/code&gt; oder &lt;code&gt;Ctrl+C&lt;/code&gt; verlassen.&lt;/p&gt;
&lt;p&gt;Jetzt ist es Zeit, den öffentlichen Schlüssel zu sichern, damit wir den Key auch auf einem anderen Rechner verwenden können.&lt;/p&gt;
&lt;p&gt;Führe dazu den folgenden Befehl aus:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --armor&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Short&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Short&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.asc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Das exportiert den öffentlichen Schlüssel in eine Datei namens &lt;code&gt;&amp;#x3C;Short ID&gt;.asc&lt;/code&gt;. Die brauchst du später, wenn du den YubiKey auf einem anderen Rechner nutzen willst oder wenn du deine GPG-Konfiguration verlierst.&lt;/p&gt;
&lt;p&gt;Um den öffentlichen Schlüssel in deinem Schlüsselbund wiederherzustellen, musst du Folgendes tun:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --import&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Short&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.asc&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; key&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Short&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; public&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; key&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;Your Name &amp;#x3C;your@email&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; imported&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Total&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; processed:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; imported:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Ein sehr wichtiger Hinweis.&lt;/em&gt;&lt;/strong&gt; Wenn es eine frische GPG-Installation oder ein anderer Rechner ist, erkennt GPG die Keys auf der Karte nicht von selbst. Du musst &lt;code&gt;gpg --card-status&lt;/code&gt; ausführen, damit GPG die Karte ausliest und die Keys darauf erkennt.&lt;/p&gt;
&lt;h3 id=&quot;git-für-das-signieren-einrichten&quot;&gt;Git für das Signieren einrichten&lt;/h3&gt;
&lt;p&gt;Damit Git deine Commits signiert, musst du Folgendes zu deiner &lt;code&gt;~/.gitconfig&lt;/code&gt; hinzufügen.&lt;/p&gt;
&lt;p&gt;Im Abschnitt &lt;code&gt;[user]&lt;/code&gt; musst du die folgende Zeile hinzufügen (oder aktualisieren):&lt;/p&gt;
&lt;p&gt;&lt;code&gt;signingkey = 0x&amp;#x3C;Short ID&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Wenn du alle deine Commits signieren willst, füge am Ende der Datei Folgendes hinzu:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;ini&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;[gpg]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  program&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; = /usr/local/bin/gpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;[commit]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  gpgsign&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; = true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Damit signiert Git alle deine Commits.&lt;/p&gt;
&lt;p&gt;Um GitHub einzurichten, musst du deinen öffentlichen Schlüssel zu deinem Profil hinzufügen. Gehe dazu auf &lt;code&gt;GitHub -&gt; Settings -&gt; SSH and GPG keys -&gt; New GPG key&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Dann siehst du ein Textfeld, in das du den gesamten Inhalt der oben erzeugten Datei &lt;code&gt;&amp;#x3C;Short ID&gt;.asc&lt;/code&gt; einfügen musst.&lt;/p&gt;
&lt;p&gt;Wenn du den Inhalt der Datei kopieren willst (unter macOS), kannst du das hier tun:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cat &amp;#x3C;Short ID&gt;.asc | pbcopy&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Das kopiert den Inhalt der ganzen Datei in die Zwischenablage.&lt;/p&gt;
&lt;p&gt;Füge ihn in das Textfeld auf GitHub ein und klicke auf den Button &lt;code&gt;Add GPG key&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Danach kannst du einen Commit machen und zu GitHub pushen, und du solltest das hübsche &lt;code&gt;Verified&lt;/code&gt;-Label sehen.&lt;/p&gt;
&lt;h3 id=&quot;debugging&quot;&gt;Debugging&lt;/h3&gt;
&lt;p&gt;Manchmal klappt nicht gleich alles. Um mehr Informationen zu sammeln, kannst du Folgendes versuchen:&lt;/p&gt;
&lt;h3 id=&quot;signieren-mit-gpg&quot;&gt;Signieren mit GPG&lt;/h3&gt;
&lt;p&gt;Versuche zuerst, mit dem Key etwas zu signieren:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gpg -s &amp;#x3C;file&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Wenn das fehlschlägt, versuche herauszufinden, warum. Ich bin kein Experte und kann da nicht weiterhelfen.&lt;/p&gt;
&lt;p&gt;Sieh dir die Ausgabe von Git anGIT_TRACE=1 git commit -am “test”&lt;/p&gt;
&lt;p&gt;Das zeigt dir genau, was Git tut, während es versucht, den Commit durchzuführen und zu signieren. Es gibt dir einen Hinweis darauf, warum das Signieren fehlschlagen könnte.&lt;/p&gt;
&lt;p&gt;Daran kannst du auch sehen, dass Git den folgenden Befehl ausführt:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;/usr/local/bin/gpg&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --status-fd=2&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -bsau&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Key&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Du kannst versuchen, ihn manuell auszuführen, um vielleicht eine aussagekräftigere Fehlermeldung zu bekommen.&lt;/p&gt;</content:encoded><category>dev</category><category>Snippets</category><category>Technology</category><category>git</category><category>github</category><category>gpg</category><category>key</category><category>public-key</category><category>secrets</category><category>sign</category><category>yubikey</category></item><item><title>e1000e  eth0: Detected Hardware Unit Hang</title><link>https://bisko.be/de/posts/dev/e1000e-device-id-eth0-detected-hardware-unit-hang/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/e1000e-device-id-eth0-detected-hardware-unit-hang/</guid><description>Vor Kurzem hat mein Heimserver und VM-Host angefangen, zufällig die Netzwerkverbindung zu verlieren. Von außen sieht es so aus, als würde er noch laufen, aber ich kam auf keinem Weg mehr aus der Ferne an ihn heran. Der Ethernet-Adapter war laut Switch eingeschaltet, also musste das Problem irgendwo in der Software liegen. Es wäre nicht</description><pubDate>Wed, 18 Dec 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vor Kurzem hat mein Heimserver und VM-Host angefangen, zufällig die Netzwerkverbindung zu verlieren. Von außen sieht es so aus, als würde er noch laufen, aber ich kam auf keinem Weg mehr aus der Ferne an ihn heran. Der Ethernet-Adapter war laut Switch eingeschaltet, also musste das Problem irgendwo in der Software liegen.&lt;/p&gt;
&lt;p&gt;Es wäre nicht das erste Mal, dass ein Treiber für eine hängende Netzwerkverbindung verantwortlich ist. In der Vergangenheit haben mich schon fehlerhafte WLAN-Treiber unter Linux und Windows geärgert.&lt;/p&gt;
&lt;p&gt;Nachdem ich ein bisschen in den Systemlogs gegraben hatte, bin ich auf Folgendes gestoßen:&lt;/p&gt;
&lt;p&gt;vmhost kernel: e1000e 0000:00:1f.6 eth0: Detected Hardware Unit Hang:&lt;br&gt;
vmhost kernel:   TDH                  &amp;#x3C;0&gt;&lt;br&gt;
vmhost kernel:   TDT                  &amp;#x3C;1&gt;&lt;br&gt;
vmhost kernel:   next_to_use          &amp;#x3C;1&gt;&lt;br&gt;
vmhost kernel:   next_to_clean        &amp;#x3C;0&gt;&lt;br&gt;
vmhost kernel: buffer_info[next_to_clean]:&lt;br&gt;
vmhost kernel:   time_stamp           &amp;#x3C;10fbc2f81&gt;&lt;br&gt;
vmhost kernel:   next_to_watch        &amp;#x3C;0&gt;&lt;br&gt;
vmhost kernel:   jiffies              &amp;#x3C;10fbc3871&gt;&lt;br&gt;
vmhost kernel:   next_to_watch.status &amp;#x3C;0&gt;&lt;br&gt;
vmhost kernel: MAC Status             &amp;#x3C;40080083&gt;&lt;br&gt;
vmhost kernel: PHY Status             &amp;#x3C;796d&gt;&lt;br&gt;
vmhost kernel: PHY 1000BASE-T Status  &amp;#x3C;7800&gt;&lt;br&gt;
vmhost kernel: PHY Extended Status    &amp;#x3C;3000&gt;&lt;br&gt;
vmhost kernel: PCI Status             &amp;#x3C;10&gt;&lt;br&gt;
vmhost kernel: e1000e 0000:00:1f.6 eth0: Reset adapter unexpectedly&lt;br&gt;
vmhost kernel: vmbr0: port 1(eth0) entered disabled state&lt;/p&gt;
&lt;p&gt;Danach setzt er den Netzwerkadapter zurück und macht nach einer Weile wieder dasselbe, bis die Maschine komplett offline geht.&lt;/p&gt;
&lt;p&gt;Bei der Suche nach Antworten im Netz bin ich auf &lt;a href=&quot;https://serverfault.com/questions/616485/e1000e-reset-adapter-unexpectedly-detected-hardware-unit-hang&quot;&gt;diesen ServerFault-Thread&lt;/a&gt; gestoßen.&lt;/p&gt;
&lt;p&gt;Ursache&lt;/p&gt;
&lt;p&gt;Nach dem Lesen verschiedener Quellen und Bug-Reports scheint der beste Weg, das Problem zu reproduzieren, eine Situation mit hoher Bandbreite auf dem Gerät zu sein, also etwa das Streamen großer Datenmengen, die die Schnittstelle auslasten.&lt;/p&gt;
&lt;p&gt;Bei mir passierte es meistens, wenn ich Medien vom lokalen Plex-Server auf ein Gerät streame. Wegen der Art, wie das Netzwerk aufgebaut ist, muss die Windows-VM, auf der die Plex-Instanz läuft, die Mediendatei von einer NFS-Freigabe auf einem separaten Gerät holen, in der VM transkodieren und sie dann an das Wiedergabegerät schicken.&lt;/p&gt;
&lt;p&gt;Das summiert sich zu einer Menge Netzwerkverkehr, meist ~40–100 Mbit/s, je nach Wiedergabegerät und Qualität der Quelldatei.&lt;/p&gt;
&lt;p&gt;Dasselbe Problem trat auch beim Streamen von Spielen per Steam Link auf unseren Apple TV auf. Die Verbindung ist kabelgebunden, aber es ist nicht ungewöhnlich, dass das Netzwerk abbricht. Ich vermute, dass es mit demselben Problem zusammenhängt, werde aber ein Auge darauf haben, ob es nach dem Fix in Zukunft noch passiert.&lt;/p&gt;
&lt;p&gt;Möglicher Fix&lt;/p&gt;
&lt;p&gt;Ein möglicher Fix scheint zu sein, &lt;strong&gt;GSO&lt;/strong&gt; &lt;em&gt;(Generic Segmentation Offload)&lt;/em&gt;, &lt;strong&gt;TSO&lt;/strong&gt; &lt;em&gt;(TCP Segmentation Offload)&lt;/em&gt; und &lt;strong&gt;GRO&lt;/strong&gt; &lt;em&gt;(Generic Receive Offload)&lt;/em&gt; auf der Netzwerkschnittstelle zu deaktivieren*:&lt;/p&gt;
&lt;p&gt;ethtool -K eth0 gso off gro off tso off&lt;/p&gt;
&lt;p&gt;Ich habe das bei mir angewendet und warte nun ab, ob es das Problem auf lange Sicht wirklich löst.&lt;/p&gt;
&lt;p&gt;Fußnoten&lt;/p&gt;
&lt;p&gt;* Diese Optionen betreffen das Auslagern der Paketsegmentierung an den Netzwerk-Controller, um die CPU-Last auf der Maschine zu verringern. Mehr Details gibt es in &lt;a href=&quot;https://en.wikipedia.org/wiki/Large_send_offload&quot;&gt;diesem Wikipedia-Artikel&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>dev</category><category>Homelab</category><category>bandwidth</category><category>bug</category><category>network</category><category>nic</category><category>plex</category><category>proxmox</category><category>steam</category><category>streaming</category></item><item><title>Der Kürbis</title><link>https://bisko.be/de/posts/blog/the-pumpkin/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/the-pumpkin/</guid><description>Foto aufgenommen im Simple Food Punkt</description><pubDate>Sun, 03 Nov 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Ein geschnitzter Kürbis in einer Pfanne? Bin mir nicht sicher.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_8045-99331106.C4JicSzy_20be15.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Foto aufgenommen im &lt;a href=&quot;https://www.facebook.com/Simple.Food.Punkt/&quot;&gt;Simple Food Punkt&lt;/a&gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>fun</category><category>Halloween</category><category>Orange</category><category>pumpkin</category></item><item><title>Snippets: Eine lokale/private Docker-Image-Registry für den Swarm betreiben</title><link>https://bisko.be/de/posts/dev/snippets-running-a-local-private-swarm-docker-image-registry/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/snippets-running-a-local-private-swarm-docker-image-registry/</guid><description>Heute wollte ich aus einem Node.js-Projekt ein Docker-Image erzeugen und es auf meinem lokalen Test-Swarm deployen. Leider wird ein lokal gebautes Docker-Image nur auf dem Node gespeichert, auf dem es erstellt wurde, und die anderen Swarm-Nodes können nicht darauf zugreifen. Die</description><pubDate>Fri, 11 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Heute wollte ich aus einem Node.js-Projekt ein Docker-Image erzeugen und es auf meinem lokalen Test-Swarm deployen.&lt;/p&gt;
&lt;p&gt;Leider wird ein lokal gebautes Docker-Image nur auf dem Node gespeichert und ist auch nur dort verfügbar, auf dem es erstellt wurde. Die anderen Swarm-Nodes kommen nicht heran.&lt;/p&gt;
&lt;p&gt;Die Lösung: das Image in eine Docker-Registry pushen, aus der es dann alle Nodes im Swarm pullen können.&lt;/p&gt;
&lt;p&gt;Die Registry erstellen&lt;/p&gt;
&lt;p&gt;Um einen Registry-Service im Swarm zu starten, führe Folgendes aus:&lt;/p&gt;
&lt;p&gt;docker service create —name registry —publish 5000:5000 registry:latest&lt;/p&gt;
&lt;p&gt;Das erstellt den Registry-Service und lässt ihn im Swarm laufen, sodass er für alle Nodes im Swarm erreichbar ist.&lt;/p&gt;
&lt;p&gt;Ein Image in die Registry pushen&lt;/p&gt;
&lt;p&gt;Um ein Image in die Registry zu pushen, musst du zwei Dinge tun – das Image taggen und dann pushen.&lt;/p&gt;
&lt;p&gt;Hier ein Beispiel, wie man das Image in einem Rutsch baut und taggt:&lt;/p&gt;
&lt;p&gt;docker build . -t localhost.localdomain:5000/&lt;image-name&gt;:latest&lt;/image-name&gt;&lt;/p&gt;
&lt;p&gt;Und so pusht man es in die Registry:&lt;/p&gt;
&lt;p&gt;docker push localhost.localdomain:5000/&lt;image-name&gt;:latestDas Image in einem Service/Container/etc. verwenden&lt;/image-name&gt;&lt;/p&gt;
&lt;p&gt;Um das Image in einem Service oder Container zu verwenden, gibst du den vollständigen Pfad von oben an, also &lt;code&gt;localhost.localdomain:5000/&amp;#x3C;image-name&gt;:latest&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Die Swarm-Nodes haben dann Zugriff auf das Image und können es pullen und ausführen.&lt;/p&gt;
&lt;p&gt;Wichtiger Hinweis zur Registry-Adresse&lt;/p&gt;
&lt;p&gt;In den meisten Tutorials im Netz wird die Registry-URL als &lt;code&gt;localhost:5000&lt;/code&gt; angegeben. Leider funktioniert das nicht, und meistens läuft die Verbindung in einen Timeout. Wenn wir das zu &lt;code&gt;localhost.localdomain&lt;/code&gt; ändern, klappt es!&lt;/p&gt;
&lt;p&gt;Keine Ahnung, warum das passiert, wo doch sowohl &lt;code&gt;localhost&lt;/code&gt; als auch &lt;code&gt;localhost.localdomain&lt;/code&gt; zu &lt;code&gt;127.0.0.1&lt;/code&gt; aufgelöst werden.&lt;/p&gt;</content:encoded><category>dev</category><category>Homelab</category><category>Snippets</category><category>Technology</category><category>docker</category><category>docker-swarm</category><category>registry</category><category>swarm</category></item><item><title>Zeitraffer: Rollen und Start vom Orlando International Airport</title><link>https://bisko.be/de/posts/blog/timelapse-taxiing-and-takeoff-from-orlando-international-airport/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/timelapse-taxiing-and-takeoff-from-orlando-international-airport/</guid><description>Das war der Beginn der Rückreise nach Hause, nachdem unser fantastisches Automattic Grand Meetup 2019 zu Ende gegangen war. Tolle Zeit mit großartigen Leuten! 🤩</description><pubDate>Tue, 01 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Aufgenommen mit dem iPhone X durch das Flugzeugfenster&lt;/p&gt;
&lt;p&gt;Das war der Beginn der Rückreise nach Hause, nachdem unser fantastisches Automattic Grand Meetup 2019 zu Ende gegangen war. Tolle Zeit mit großartigen Leuten! 🤩&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Photography</category><category>travel</category><category>Airplane</category><category>Flying</category><category>Orlando_FL</category><category>Timelapse</category></item><item><title>Zeitraffer: Landung im nebligen Frankfurt</title><link>https://bisko.be/de/posts/blog/timelapse-landing-in-foggy-frankfurt/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/timelapse-landing-in-foggy-frankfurt/</guid><description>Frankfurt war einer der Zwischenstopps auf dem Weg zu unserem jährlichen Automattic Grand Meetup. An diesem Tag war es ziemlich neblig, und die Landung war ein ziemlich spannendes Erlebnis. Erst fliegt man über einer wolligen Wolkendecke, und dann setzt man plötzlich auf der Landebahn auf! Hier ist ein Bonusfoto davon, was beim Anflug von der Stadt zu sehen war während der</description><pubDate>Tue, 10 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Aufgenommen mit dem iPhone X durch das Flugzeugfenster&lt;/p&gt;
&lt;p&gt;Frankfurt war einer der Zwischenstopps auf dem Weg zu unserem jährlichen Automattic Grand Meetup. An diesem Tag war es ziemlich neblig, und die Landung war ein ziemlich spannendes Erlebnis. Erst fliegt man über einer wolligen Wolkendecke, und dann setzt man plötzlich auf der Landebahn auf!&lt;/p&gt;
&lt;p&gt;Hier ist ein Bonusfoto davon, was beim Anflug von der Stadt zu sehen war.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Luftaufnahme aus einem Flugzeug: eine dichte Decke aus Nebel und Wolken, aus der zwei Schornsteine ragen, dahinter dunkle Hügel&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_6547-fa702d62.ByzaITRP_2k3iLQ.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Photography</category><category>travel</category><category>Airplane</category><category>Frankfurt</category><category>Landing</category><category>Timelapse</category></item><item><title>Die Avocado: Es sprießt!</title><link>https://bisko.be/de/posts/blog/the-avocado-sprouting/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/the-avocado-sprouting/</guid><description>Das ist unser erster erfolgreicher Versuch, eine Avocado zum Keimen zu bringen!</description><pubDate>Sat, 03 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Aufgeplatzter Avocadokern in einem Topf mit Erde, aus dem Spalt ragt ein schlanker brauner Trieb mit gekrümmter grüner Spitze&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5899-f2ad7864.YgnFMYgT_1cfcKJ.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Das ist unser erster erfolgreicher Versuch, eine Avocado zum Keimen zu bringen!&lt;/p&gt;</content:encoded><category>blog</category><category>The Avocado</category><category>Avocado</category><category>Gardening</category><category>Plant</category><category>Sprout</category></item><item><title>Snippets: Die Apple-Tastatur-Taste „Paragraphzeichen“ auf Backquote umbelegen ( § zu ` )</title><link>https://bisko.be/de/posts/dev/snippets-map-apple-keyboard-section-sign-key-to-back-quote-%C2%A7-to/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/snippets-map-apple-keyboard-section-sign-key-to-back-quote-%C2%A7-to/</guid><description>Ich benutze schon eine Weile Apple-Tastaturen, aber wenn man in Europa lebt, ist es nicht leicht, die US-Layout-Varianten zu bekommen, die ich gewohnt bin. Unter macOS gibt es einen „einfachen“ Weg, die Tastatur mit nur einem Terminal-Befehl umzubelegen: watch -n1 -x hidutil property -m ‘{“ProductID”:592, “VendorID”:1452}’ –set ‘{“UserKeyMapping”:[{“HIDKeyboardModifierMappingSrc”:0x700000035,”HIDKeyboardModifierMappingDst”:0x700000064}]}’ Was dieser</description><pubDate>Wed, 31 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ich benutze schon eine Weile Apple-Tastaturen, aber wenn man in Europa lebt, ist es nicht leicht, die US-Layout-Varianten zu bekommen, die ich gewohnt bin.&lt;/p&gt;
&lt;p&gt;Unter macOS gibt es einen „einfachen“ Weg, die Tastatur mit nur einem Terminal-Befehl umzubelegen:&lt;/p&gt;
&lt;p&gt;watch -n1 -x hidutil property -m ’{“ProductID”:592, “VendorID”:1452}’ —set ’{“UserKeyMapping”:[{“HIDKeyboardModifierMappingSrc”:0x700000035,“HIDKeyboardModifierMappingDst”:0x700000064}]}’&lt;/p&gt;
&lt;p&gt;Dieses Stück Code ändert die Belegung der Paragraphzeichen-Taste ( § ), sodass sie stattdessen die Backquote-/Tilde-Taste ( &lt;code&gt;`/ ~&lt;/code&gt; ) ausgibt.&lt;/p&gt;
&lt;p&gt;Der Teil &lt;code&gt;watch -n1 -x&lt;/code&gt; führt das jede Sekunde aus, weil macOS die Einstellung manchmal verliert, meist wenn der Computer in den Ruhezustand geht oder die Tastatur ab- und wieder angesteckt wird.&lt;/p&gt;
&lt;p&gt;Beachte bitte, dass das Hilfsprogramm &lt;code&gt;watch&lt;/code&gt; bei manchen macOS-Versionen nicht installiert ist und über etwas wie &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; oder &lt;a href=&quot;https://www.macports.org/&quot;&gt;MacPorts&lt;/a&gt; nachinstalliert werden muss.&lt;/p&gt;
&lt;p&gt;Der obige Code funktioniert mit der externen Apple-Tastatur mit USB und europäischem Layout mit bulgarischen Buchstaben. Bei anderen Tastaturtypen müssen die Hex-Werte der Tasten eventuell leicht angepasst werden.&lt;/p&gt;
&lt;p&gt;Eine Variante des Befehls funktioniert gut für denselben Tastaturtyp am MacBook Pro selbst. Dazu musst du nur die Positionen der Werte &lt;code&gt;0x700000035&lt;/code&gt; und &lt;code&gt;0x700000064&lt;/code&gt; vertauschen.&lt;/p&gt;
&lt;p&gt;Ich habe schon überlegt, ein Tool zu schreiben, das das automatisch für mich erledigt, aber im Moment denke ich, dass es sich mehr lohnt, in eine neue Tastatur mit dem richtigen Layout zu investieren 🙂&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category></item><item><title>Lila Blumen</title><link>https://bisko.be/de/posts/blog/purple-flowers/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/purple-flowers/</guid><description>Entdeckt auf einem Ausflug nach Borowez im Rila-Gebirge.</description><pubDate>Fri, 28 Jun 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Lila asterähnliche Blumen und runde Knospen auf behaarten grünen Stängeln, von einer hellen Sonne an einem blauen Himmel von hinten beleuchtet, dahinter dunkle Nadelbäume&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5256-c4ebab4e.B9-0LH79_ZcCswB.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Entdeckt auf einem Ausflug nach &lt;a href=&quot;https://en.wikipedia.org/wiki/Borovets&quot;&gt;Borowez&lt;/a&gt;, im &lt;a href=&quot;https://en.wikipedia.org/wiki/Rila&quot;&gt;Rila-Gebirge&lt;/a&gt; gelegen.&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>flower</category><category>flowers</category><category>purple</category><category>sun</category></item><item><title>Retro-Museum</title><link>https://bisko.be/de/posts/blog/retro-museum/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/retro-museum/</guid><description>Während unseres Sommerurlaubs am Schwarzen Meer haben wir einen kurzen Abstecher nach Warna gemacht, da wir in einem Resort ganz in der Nähe waren. Dort sind wir zufällig auf ein sehr interessantes Retro-Museum gestoßen. Ich war sehr positiv überrascht, fast alle der verschiedenen Dinge zu finden, die ich in meiner Jugend benutzt habe. So viele schöne Erinnerungen</description><pubDate>Tue, 25 Jun 2019 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Vitrine mit alten bulgarischen Spielsachen und Puzzles: Zauberwürfel, Schlangenpuzzles und Brettspiele wie Ne se sardi und Idvat tankove&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5095-fff7354b.B87XGoKK_spbqC.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Regale mit Weckern aus der Sowjetzeit, darunter gelbe küken­förmige Slava-Wecker, runde Metallwecker und rechteckige Tischmodelle&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5094-03b89044.PJIIKBDz_ZrumKn.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Glasvitrine voller alter bulgarischer Lewa-Banknoten in Bündeln und Fächern, dazu verstreute Münzen und Banderolen&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_5092-fe5af8eb.D8cpVmlj_Z2gS5rt.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Schrank mit Retro-Haarpflegeprodukten: Haartrockner in Gelb und Orange, Lockenstäbe, Lockenwickler und verpackte Vibrationsmassagegeräte&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_5091-0793f161.ByQJsy2P_Z1u1ItY.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Zwei türkisfarbene alte Staubsauger mit cremefarbenen Enden und Schläuchen in einer Glasvitrine&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5090-2e051edf.CX0aDctc_Zqdst9.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Zirkel-Set zum technischen Zeichnen auf blauem Samt, daneben Buntstifte, Kugelschreiber und bestickte Sportabzeichen der Schule&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_5089-f1b68d98.DkuBHl-h_Zx4MsX.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Alte Waschmaschinen mit Schleuder und Waschmittelpackungen auf dem Museumsboden, im Hintergrund geparkte Oldtimer&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_5088-53896321.yYoU5Fok_Z15PUQh.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Sammlung von Spielzeug-Musikinstrumenten: Melodicas, Blockflöten und Mundharmonikas, daneben ein Spieleset in der Schachtel und Spielkarten&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5086-09a7e3df.D4AuUo7d_Z16eSYx.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Grüner Tischfußball mit roten und weißen Figuren, umgeben von Matroschka-Puppen, einem Zauberwürfel und elektronischen Handheld-Spielen&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5085-b5ba1d92.CTJokrFJ_Z8Erqh.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Fotos sind im &lt;a href=&quot;https://www.tripadvisor.com/Attraction_Review-g295392-d8441907-Reviews-The_Retro_Museum_In_Varna-Varna_Varna_Province.html&quot;&gt;Retro-Museum in Warna, Bulgarien&lt;/a&gt; entstanden (Link von TripAdvisor, da die Website des Museums offenbar nicht mehr existiert).&lt;/p&gt;
&lt;p&gt;Während unseres Sommerurlaubs am &lt;a href=&quot;https://en.wikipedia.org/wiki/Black_Sea&quot;&gt;Schwarzen Meer&lt;/a&gt; haben wir einen kurzen Abstecher nach &lt;a href=&quot;https://en.wikipedia.org/wiki/Varna&quot;&gt;Warna&lt;/a&gt; gemacht, da wir in einem Resort ganz in der Nähe waren. Dort sind wir zufällig auf ein sehr interessantes Retro-Museum gestoßen.&lt;/p&gt;
&lt;p&gt;Ich war sehr positiv überrascht, fast alle der verschiedenen Dinge zu finden, die ich in meiner Jugend benutzt habe. Beim Besuch kamen so viele schöne Erinnerungen an meine Kindheit hoch.&lt;/p&gt;
&lt;p&gt;Definitiv ein guter Ort für einen Besuch, wenn man in Warna ist!&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>memories</category><category>museum</category><category>retro</category><category>Varna</category></item><item><title>Gänseblümchenmeer</title><link>https://bisko.be/de/posts/blog/sea-of-daisies/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/sea-of-daisies/</guid><description>Foto aufgenommen in der Nähe von Chorul.</description><pubDate>Fri, 31 May 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Dichte Wiese mit weißen Margeriten mit gelben Mitten auf hohen grünen Stängeln, dazwischen ein paar rosa Kleeblüten im Gras&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_4633-ced55558.CA2pVc_h_cVSP7.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Foto aufgenommen in der Nähe von &lt;a href=&quot;https://en.wikipedia.org/wiki/Chorul&quot;&gt;Chorul&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Photography</category><category>daisy</category><category>flower</category><category>flowers</category></item><item><title>Zeitraffer: Ausflug nach Montserrat</title><link>https://bisko.be/de/posts/blog/timelapses-trip-to-montserrat/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/timelapses-trip-to-montserrat/</guid><description>Bei unserem letzten Team-Treffen in Barcelona haben wir einen Ausflug zum Berg Montserrat gemacht. Wir hatten uns einen sehr wolkigen Tag ausgesucht, aber die Wolken hingen trotzdem hoch genug, dass wir das Tal sehen konnten, bevor es anfing zu regnen. Hier sind zwei Zeitraffer von diesem Ausflug:</description><pubDate>Wed, 08 May 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Bei unserem letzten Team-Treffen in Barcelona haben wir einen Ausflug zum &lt;a href=&quot;https://en.wikipedia.org/wiki/Montserrat_(mountain)&quot;&gt;Berg Montserrat&lt;/a&gt; gemacht. Wir hatten uns einen sehr wolkigen Tag ausgesucht, aber die Wolken hingen trotzdem hoch genug, dass wir das Tal sehen konnten, bevor es anfing zu regnen.&lt;/p&gt;
&lt;p&gt;Hier sind zwei Zeitraffer von diesem Ausflug:&lt;/p&gt;
&lt;p&gt;Wolkenzauber!&lt;/p&gt;
&lt;p&gt;Die Fahrt nach unten mit der &lt;a href=&quot;https://en.wikipedia.org/wiki/Aeri_de_Montserrat&quot;&gt;Aeri de Montserrat&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>travel</category><category>Barcelona</category><category>Montseratt</category><category>Spain</category><category>Timelapse</category></item><item><title>Zeitraffer: Landung am Flughafen Barcelona</title><link>https://bisko.be/de/posts/blog/timelapse-landing-at-barcelona-airport/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/timelapse-landing-at-barcelona-airport/</guid><pubDate>Sat, 04 May 2019 00:00:00 GMT</pubDate><content:encoded/><category>blog</category><category>Adventures</category><category>travel</category><category>Airplane</category><category>Barcelona</category><category>Landing</category><category>Spain</category><category>Timelapse</category></item><item><title>Die graue Katze</title><link>https://bisko.be/de/posts/blog/the-grey-cat/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/the-grey-cat/</guid><description>Diesen Burschen haben wir irgendwo in der Nähe von zu Hause gefunden! Ein hübscher Kerl, der Leckerlis liebt!</description><pubDate>Thu, 21 Mar 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Graue Katze mit gelben Augen steht neben einem Baumstamm auf einem grasbewachsenen, laubbedeckten Hang in der Nähe eines großen Felsens und einer Betonmauer&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_1995-f9f8058b.DJx6IsPU_1JdhCg.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Diesen Burschen haben wir irgendwo in der Nähe von zu Hause gefunden! Ein hübscher Kerl, der Leckerlis liebt!&lt;/p&gt;</content:encoded><category>blog</category><category>Animals</category><category>Photography</category><category>cat</category><category>grey</category></item><item><title>Apple-TV-Fernbedienung zurücksetzen/neu starten</title><link>https://bisko.be/de/posts/dev/resetting-restarting-apple-tv-remote/</link><guid isPermaLink="true">https://bisko.be/de/posts/dev/resetting-restarting-apple-tv-remote/</guid><description>Gestern Abend, während eines Gästebesuchs, habe ich es geschafft, unsere Apple-TV-Fernbedienung unter Wasser zu tauchen. Schlafmangel und wackelige Gläser führen eben zu Unfällen. Die Fernbedienung funktionierte gestern Abend noch einwandfrei, aber heute hat sie den Dienst quittiert. Sie reagiert auf keinerlei Eingaben. Ich habe versucht, sie gegen meine Hand zu schlagen und das Wasser herauszuschütteln. Es</description><pubDate>Sun, 17 Feb 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Gestern Abend, während eines Gästebesuchs, habe ich es geschafft, unsere Apple-TV-Fernbedienung unter Wasser zu tauchen. Schlafmangel und wackelige Gläser führen eben zu Unfällen.&lt;/p&gt;
&lt;p&gt;Die Fernbedienung funktionierte gestern Abend noch einwandfrei, aber heute hat sie den Dienst quittiert. Sie reagiert auf keinerlei Eingaben. Ich habe versucht, sie gegen meine Hand zu schlagen und das Wasser herauszuschütteln. Es hat überhaupt nichts gebracht.&lt;/p&gt;
&lt;p&gt;Wir dachten, sie sei hinüber, und suchten schon in den Schränken nach der Reispackung.&lt;/p&gt;
&lt;p&gt;Ich ging online, größtenteils aus Spaß, um zu schauen, ob ich versuchen kann, sie „neu zu starten“.&lt;/p&gt;
&lt;p&gt;Eine hilfreiche Anleitung riet mir, die Tasten Lauter und Menü 2–3 Sekunden lang gedrückt zu halten, um die Fernbedienung zurückzusetzen und in den Kopplungsmodus zu versetzen.&lt;/p&gt;
&lt;p&gt;Ich war echt überrascht, als es &lt;strong&gt;tatsächlich&lt;/strong&gt; &lt;strong&gt;funktioniert hat&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Wenn also etwas faul zu sein scheint, versucht zuerst, die Fernbedienung zurückzusetzen. Wenn das nicht klappt, könnt ihr es immer noch mit Reis und einem Eingriff an der Hardware probieren.&lt;/p&gt;
&lt;p&gt;TL;DR;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Menü + Lauter 2–3 Sekunden lang gedrückt halten&lt;/li&gt;
&lt;li&gt;Ein paar Sekunden warten&lt;/li&gt;
&lt;li&gt;Versuchen, mit dem Apple TV zu interagieren&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>dev</category><category>Apple</category><category>Technology</category><category>AppleTV</category><category>Have you tried turning it off and on again?</category><category>remote</category><category>reset</category><category>restart</category></item><item><title>Die alte Straßenbahn</title><link>https://bisko.be/de/posts/blog/the-old-tram/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/the-old-tram/</guid><description>Diesen Beitrag auf Instagram ansehen Ein Beitrag geteilt von Biser Perchinkov (@biskobe) In den letzten Tagen von 2018 gingen wir mit ein paar Freunden auf eine geheime Party. Die große Überraschung war der Ort, an dem sie stattfand! Es war eine der beiden ältesten noch fahrenden Straßenbahnen in Bulgarien! Sie wurde vor fast hundert Jahren gebaut und</description><pubDate>Fri, 04 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;[&lt;/p&gt;
&lt;p&gt;Diesen Beitrag auf Instagram ansehen&lt;/p&gt;
&lt;p&gt;](&lt;a href=&quot;https://www.instagram.com/p/Br8XYN5j0z9/?utm_source=ig_embed&amp;#x26;utm_campaign=loading&quot;&gt;https://www.instagram.com/p/Br8XYN5j0z9/?utm_source=ig_embed&amp;#x26;utm_campaign=loading&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.instagram.com/p/Br8XYN5j0z9/?utm_source=ig_embed&amp;#x26;utm_campaign=loading&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.instagram.com/p/Br8XYN5j0z9/?utm_source=ig_embed&amp;#x26;utm_campaign=loading&quot;&gt;Ein Beitrag geteilt von Biser Perchinkov (@biskobe)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In den letzten Tagen von 2018 gingen wir mit ein paar Freunden auf eine geheime Party.&lt;/p&gt;
&lt;p&gt;Die große Überraschung war der Ort, an dem sie stattfand! Es war eine der zwei ältesten noch fahrenden Straßenbahnen in Bulgarien!&lt;/p&gt;
&lt;p&gt;Sie wurde vor fast einem Jahrhundert gebaut und versetzt einen definitiv in jene Zeit zurück, auch wenn sie ein wenig modernisiert wurde, mit Licht, Heizung und etwas Musik/Medientechnik, damit Reiseleiter unterwegs über die Sehenswürdigkeiten erzählen können.&lt;/p&gt;
&lt;p&gt;Mir hat es ziemlich gut gefallen, denn einer der Organisatoren arbeitet im Straßenbahndepot und wir hatten Plätze in der ersten Reihe, um zu sehen, wie der Fahrer die Bahn bedient. Wir bekamen einen Crashkurs, was all die Hebel machen, und durften die Klingel läuten! Und Toma bekam sogar die Chance, die Bahn in Bewegung zu setzen, aber wie sich herausstellte, braucht man ziemlich viel Kraft, um sie zu bedienen! Vielleicht in ein paar Jahren 😝&lt;/p&gt;
&lt;p&gt;Auch die Passanten hatten ihre Freude an dem Anblick, denn Retro-Straßenbahnen sind hier keine alltägliche Erscheinung.&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Winter</category><category>joy</category><category>machinery</category><category>party</category><category>tram</category><category>travel</category></item><item><title>Großartige Spiele-Soundtracks – Stellaris</title><link>https://bisko.be/de/posts/blog/amazing-game-soundtracks-stellaris/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/amazing-game-soundtracks-stellaris/</guid><description>Vor einer Weile habe ich mir Stellaris zugelegt und darin schnell ein paar Stunden versenkt. Über das Spiel selbst will ich hier gar nicht reden. Das wurde in Reviews, Let&apos;s Plays und so weiter schon ausführlich behandelt. Weil ich in Worten nicht erklären kann, wie genial er ist, sage ich einfach nur – hör rein</description><pubDate>Mon, 02 Apr 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vor einer Weile habe ich mir &lt;a href=&quot;https://en.wikipedia.org/wiki/Stellaris_(video_game)&quot;&gt;Stellaris&lt;/a&gt; zugelegt und darin schnell ein paar Stunden versenkt. Über das Spiel selbst will ich hier gar nicht reden. Das wurde in Reviews, Let’s Plays und so weiter schon ausführlich behandelt.&lt;/p&gt;
&lt;p&gt;Weil ich in Worten nicht erklären kann, wie genial er ist, sage ich einfach nur – hör ihn dir an. Schließ die Augen, stell dir vor, du bist auf einem Abenteuer im tiefen Weltraum oder irgendwo anders, wohin dein Verstand dich trägt, und genieß es.&lt;/p&gt;
&lt;p&gt;( oder wenn du kein Spotify hast, probier die &lt;a href=&quot;https://www.youtube.com/results?search_query=stellaris+soundtrack&quot;&gt;Suchergebnisse auf YouTube&lt;/a&gt; )&lt;/p&gt;</content:encoded><category>blog</category><category>Music</category><category>games</category><category>ost</category><category>soundtrack</category><category>stellaris</category></item><item><title>Eintauchen in Erinnerungen: Von Rosen und Bienen</title><link>https://bisko.be/de/posts/blog/diving-back-in-memories-of-roses-and-bees/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/diving-back-in-memories-of-roses-and-bees/</guid><description>Vor ein paar Tagen habe ich meine Fotosammlung durchstöbert und bin dabei auf eines meiner Lieblingsfotos gestoßen. Es ist eine interessante Geschichte, wie dieses Foto entstanden ist. Mein Papa hatte sich ein paar Tage zuvor eine neue Digitalkamera gekauft, eine Canon PowerShot A610. Ich konnte es kaum erwarten, sie auszuprobieren, aber er ließ mich nicht</description><pubDate>Sun, 10 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vor ein paar Tagen habe ich meine Fotosammlung durchstöbert und bin dabei auf eines meiner Lieblingsfotos gestoßen.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Eine Biene erkundet die Rose&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2592&quot; height=&quot;1944&quot; src=&quot;/_astro/img_0350-258314a7.DVI6yd6N_6PkwW.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Es ist eine interessante Geschichte, wie dieses Foto entstanden ist.&lt;/p&gt;
&lt;p&gt;Mein Papa hatte sich ein paar Tage zuvor eine neue Digitalkamera gekauft, eine Canon PowerShot A610. Ich konnte es kaum erwarten, sie auszuprobieren, aber er gab mir keine Chance, ein bisschen damit zu fotografieren, weil er sie von vorne bis hinten erkundete und lernte, wie sie funktioniert. Schließlich war es unsere erste „fortgeschrittene“ Digitalkamera.&lt;/p&gt;
&lt;p&gt;An dem Tag, an dem das Foto entstand, gingen mein Papa und ich zum Einkaufen, und er nahm die Kamera mit. Ich bat ihn, sie mir zum Tragen zu geben und zu schauen, ob ich etwas fotografieren könnte. Während wir darüber diskutierten, ob ich fähig genug sei, die Kamera zu tragen, ohne sie kaputt zu machen, waren wir 5–6 Minuten gelaufen und kamen gerade an einem Rosenstrauch vorbei, um den ein paar Bienen herumflogen.&lt;/p&gt;
&lt;p&gt;Da wusste ich schon, dass ich ein Foto von der wunderschönen Rosenblüte machen wollte, die ihr oben seht. Ich holte die Kamera heraus, schaltete sie ein, wartete, bis eine Biene auf der Blüte landete, und drückte ab.&lt;/p&gt;
&lt;p&gt;Und da war es. Mein allererstes Foto mit dieser Kamera.&lt;/p&gt;
&lt;p&gt;Bis heute ist dieses Foto eines meiner liebsten.&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>bee</category><category>bees</category><category>flower</category><category>nature</category><category>outside</category><category>rose</category></item><item><title>Papa-Sachen: Schatz, ein Online-Spiel kann man nicht pausieren!</title><link>https://bisko.be/de/posts/blog/dad-things-baby-you-cant-pause-an-online-game/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/dad-things-baby-you-cant-pause-an-online-game/</guid><description>Tja… der Kreis schließt sich. Heute, während ich die letzten Tage meiner Elternzeit genieße, die mir das großartige Automattic ermöglicht hat, habe ich beschlossen, tief ins Land der Nostalgie einzutauchen und etwas gutes altes StarCraft zu spielen. Klingt ziemlich normal, oder? Ja, ist es auch! Abgesehen davon, dass ich das Baby mit im Büro habe</description><pubDate>Tue, 05 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tja… der Kreis schließt sich.&lt;/p&gt;
&lt;p&gt;Heute, während ich die letzten Tage meiner Elternzeit genieße, die mir das großartige &lt;a href=&quot;https://automattic.com&quot;&gt;Automattic&lt;/a&gt; ermöglicht hat, habe ich beschlossen, tief ins Land der Nostalgie einzutauchen und etwas gutes altes StarCraft zu spielen.&lt;/p&gt;
&lt;p&gt;Klingt ziemlich normal, oder? Ja, ist es auch! Abgesehen davon, dass ich das Baby mit im Büro habe, damit ich mich um ihn kümmern kann, während Mama anderes zu tun hat.&lt;/p&gt;
&lt;p&gt;Alles lief super, das Baby schlief, ich hatte ein spaßiges Spiel gefunden, es gestartet, und mittendrin wachte das Baby auf. Alles gut. Ich habe ihn eine Weile getröstet, aber er war quengelig, also habe ich das Spiel verlassen und mich auf ihn konzentriert. Es gab keine Möglichkeit, mich gleichzeitig auf das Spiel und das Baby zu konzentrieren.&lt;/p&gt;
&lt;p&gt;Während ich das Baby also auf dem Arm wiegte, ihm liebe Worte zuflüsterte und versuchte, ihn zu beruhigen, warf ich einen Blick auf den Monitor und sah mehrere Nachrichten vom Ersteller des Spiels:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;„Warum tritt man einem Spiel bei, wenn man dann wieder geht?“&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Immer und immer wieder gesendet.&lt;/p&gt;
&lt;p&gt;Zuerst wollte ich antworten, dass ich ein Baby auf dem Arm hatte und mich um es kümmern musste, aber dann überkamen mich Flashbacks an meine jüngeren Jahre, als ich meiner Mama voller Verzweiflung zurief, dass man ein Online-Spiel nicht pausieren kann.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Oh mein Gott, Mama, ein Online-Spiel kann man nicht pausieren!!!!1!1!1!!1!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In diesem Moment wurde mir klar, dass ich für eine Weile auf Online-Spiele verzichten muss.&lt;/p&gt;
&lt;p&gt;Na ja… ¯\_(ツ)_/¯&lt;/p&gt;
&lt;p&gt;Wenigstens kann ich mich jetzt darauf konzentrieren, meinen ständig wachsenden Backlog an Singleplayer-Spielen abzuarbeiten. The Witcher 3 spielt sich schließlich nicht von allein durch!&lt;/p&gt;</content:encoded><category>blog</category><category>Gaming</category><category>Parenting</category><category>baby</category></item><item><title>Graffiti rund um die Welt – Montréal</title><link>https://bisko.be/de/posts/blog/graffiti-around-the-world-montreal/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/graffiti-around-the-world-montreal/</guid><description>Vor ein paar Wochen war ich bei einem Team-Meetup in Montréal, und beim Spazieren durch die Straßen hat mir die Graffiti-Kultur dort richtig gut gefallen. Ich fand sie im Vergleich zu anderen Orten, an denen ich bisher war, richtig bunt und/oder verspielt. Ein paar meiner Favoriten:</description><pubDate>Tue, 06 Jun 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vor ein paar Wochen war ich bei einem Team-Meetup in Montréal, und beim Spazieren durch die Straßen hat mir die Graffiti-Kultur dort richtig gut gefallen. Ich fand sie im Vergleich zu anderen Orten, an denen ich bisher war, richtig bunt und/oder verspielt.&lt;/p&gt;
&lt;p&gt;Ein paar meiner Favoriten:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Hydralisk!&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2694&quot; height=&quot;3495&quot; src=&quot;/_astro/img_7084-8397910a.ZIxhC7qM_1z6wBb.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Ich bin mir nicht sicher, ob ich richtig liege, aber weil ich früher viel StarCraft gespielt habe, denke ich bei diesen Kreaturen immer an Hydralisken.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Riesiges Wandbild einer älteren Frau mit Brille und grauem Dutt, flankiert von Tauben und violetten Stadtgebäuden, an einer Straßenecke&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2101&quot; height=&quot;2115&quot; src=&quot;/_astro/img_7096-cd130da6.CQOvGu0o_ZRu3Go.webp&quot; &gt;&lt;img alt=&quot;Nachtansicht eines Mary-Poppins-Wandbilds mit Regenschirmen, Big Ben und tropfender blauer Farbe an einem weißen Gebäude, darauf ein Tag&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2387&quot; height=&quot;2357&quot; src=&quot;/_astro/img_7083-a1cb125f.CBVRLzF4_Z1ImeId.webp&quot; &gt;&lt;img alt=&quot;Buntes Wandbild mit einäugigen Eiskugel-Monstern an einem rosa-violetten Gebäude über einem Dirty-Dogs-Restaurant, davor ein Fahrrad&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_7098-99273db4.Bqxpgo6f_y2ISn.webp&quot; &gt;&lt;img alt=&quot;Schablonen-Wandbild von Männern mit gelben Regenschirmen auf einer blauen Wand, die unten in rostiges Braun übergeht, neben einer Metalltreppe&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3384&quot; height=&quot;2901&quot; src=&quot;/_astro/img_7344-7ed4ce8e.CovT3-V7_hGgJI.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Graffiti</category><category>montreal</category><category>Photography</category><category>travel</category></item><item><title>Angst vor Hunden</title><link>https://bisko.be/de/posts/blog/fear-of-dogs/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/fear-of-dogs/</guid><description>Als ich ein Kind war, wahrscheinlich so 5-6 Jahre alt, hat mich der Hund eines Nachbarn beim Spielen gebissen. Es war nichts Ernstes, nur ein Kratzer, aber für meinen kindlichen Verstand war es eine schreckliche Erfahrung. Nach dem Vorfall entwickelte ich eine riesige Angst vor Hunden. Ich rannte vor ihnen weg und versteckte mich zu Hause oder in</description><pubDate>Fri, 31 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Als ich ein Kind war, wahrscheinlich so 5-6 Jahre alt, hat mich der Hund eines Nachbarn gebissen, als ich mit ihm gespielt habe. Es war nichts Ernstes, nur ein Kratzer, aber für meinen kindlichen Verstand war es eine schreckliche Erfahrung.&lt;/p&gt;
&lt;p&gt;Nach dem Vorfall entwickelte ich eine riesige Angst vor Hunden. Ich rannte vor ihnen weg und versteckte mich zu Hause oder im Hof eines Nachbarn. Wenn es der Hund eines Freundes war, blieb ich wachsam und rannte in ein anderes Zimmer oder irgendwohin, wo der Hund mich nicht erreichen konnte, sobald er sich auch nur ein kleines bisschen bewegte.&lt;/p&gt;
&lt;p&gt;Beim Heranwachsen hielt ich mich von Hunden fern, aber mit der Zeit freundete ich mich langsam mit ihnen an. Der erste Hund, vor dem ich nicht schreiend davonlief, war der Hund meiner Cousins – ein &lt;a href=&quot;https://en.wikipedia.org/wiki/Rough_Collie&quot;&gt;Langhaarcollie&lt;/a&gt; namens Clara.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Clara&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1505&quot; height=&quot;1027&quot; src=&quot;/_astro/clara-de4f7f1b.CfG1RsCF_Z112bUQ.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Clara in all ihrer Pracht 🙂&lt;/p&gt;
&lt;p&gt;Sie war einfach der beste Hund. Ihre Besitzer hatten sie wirklich gut erzogen und sie war ein sehr ruhiger Hund, zumindest solange man Gewitter nicht mitzählt. Vor Donner hatte sie panische Angst, man musste sie fest halten und die Türen geschlossen halten, sonst wäre sie weggelaufen und hätte versucht, sich irgendwo weit weg vom Sturm zu verstecken.&lt;/p&gt;
&lt;p&gt;Die Sommer in meinem Dorf zu verbringen und sie von Zeit zu Zeit zu Besuch zu haben, hat wirklich dabei geholfen, die Angst vor Hunden und die allgemeine Unruhe in ihrer Nähe zu verringern.&lt;/p&gt;
&lt;p&gt;Hier in Bulgarien laufen immer noch viele streunende Hunde frei herum und können von Zeit zu Zeit eine Gefahr darstellen, da die Rudel leicht 5-10+ Hunde umfassen können. Das hat mir immer Angst gemacht und mich nervös werden lassen, wenn ich im Dunkeln draußen unterwegs war und hinter mir ab und zu Gebell hörte.&lt;/p&gt;
&lt;p&gt;Mit der Zeit habe ich gelernt, dass Hunde gar nicht so furchteinflößend sind, und ich konnte aggressive Hunde von freundlichen unterscheiden, die einfach spielen wollen.&lt;/p&gt;
&lt;p&gt;Letztes Wochenende habe ich mich selbst stolz gemacht.&lt;/p&gt;
&lt;p&gt;In den letzten Monaten ist uns ein streunender Hund aufgefallen, der um das Ferienhaus herumlief. Anfangs hatte ich ziemlich Angst davor, dass ein fremder Hund um uns herumstreicht. Nach ein paar Besuchen merkte ich, dass der Hund gar nicht so gruselig war 🙂 Er kam vorbei, schaute uns an und ging wieder.&lt;/p&gt;
&lt;p&gt;Es hat mich etwas Mut gekostet, aber am Ende habe ich ihn zusammengenommen, ein bisschen Dosenfutter gekauft und mich mit dem Futter in einer Plastikschüssel nach draußen gestellt, um den Hund zu rufen, damit er vorbeikommt und eine ordentliche Mahlzeit bekommt.&lt;/p&gt;
&lt;p&gt;Lustig, dass der Hund mehr Angst vor mir zu haben schien als ich vor ihm. Nach ein paar Rufen und einem Schritt zurück von mir kam er zu der improvisierten Schüssel und fing an zu fressen.&lt;/p&gt;
&lt;p&gt;Sieg! 🙂&lt;/p&gt;
&lt;p&gt;Es war auch witzig, ihm im Rückspiegel zuzusehen, wie er neben uns herlief, als wir das Ferienhaus verließen.&lt;/p&gt;
&lt;p&gt;Radis Mutter hat ihn sogar Bear genannt.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Bear klaut die Schüssel.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2076&quot; height=&quot;1594&quot; src=&quot;/_astro/img_5556-54e1db0f.Dxlc4oQQ_1RmVVu.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;– Die Schüssel gehört jetzt mir!&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category></item><item><title>Eislaufen</title><link>https://bisko.be/de/posts/blog/ice-skating/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/ice-skating/</guid><description>Es ist fast einen Monat her, aber ich werde das Ereignis nie vergessen 🙂 Am letzten Tag des vergangenen Jahres schlug mein Cousin vor, dass wir eine Eisbahn besuchen. Ich war noch nie auf einer gewesen und hatte eine Todesangst, mir sämtliche Gliedmaßen zu brechen. Zum Glück hatte ich als</description><pubDate>Mon, 30 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Es ist fast einen Monat her, aber ich werde das Ereignis nie vergessen 🙂&lt;/p&gt;
&lt;p&gt;Am letzten Tag des vergangenen Jahres schlug mein Cousin vor, dass wir eine Eisbahn besuchen. Ich war noch nie auf einer gewesen und hatte eine Todesangst, mir sämtliche Gliedmaßen zu brechen.&lt;/p&gt;
&lt;p&gt;Zum Glück hatte ich als Kind ein wenig Erfahrung mit Inlineskaten gesammelt, und das hat mein Selbstvertrauen ziemlich gestärkt. Ich wusste, dass es ungefähr so sein würde. Auf das, was passierte, als ich meine Schlittschuhe anzog und aufs Eis trat, war ich natürlich nicht ganz vorbereitet – es war so glatt!&lt;/p&gt;
&lt;p&gt;Meine Angst verschwand schnell und ich schaffte es, zu laufen, ohne mich an der Bande festhalten zu müssen. All meine alte Inlineskate-Erfahrung kam zurück und ich konnte frei auf dem Eis stehen.&lt;/p&gt;
&lt;p&gt;Es war eine unglaublich lustige Erfahrung und ich würde definitiv wieder zur Eisbahn gehen! 🙂&lt;/p&gt;
&lt;p&gt;Als Bonus ist mir eine Aufnahme aus der „Ich-Perspektive“ gelungen, wie mein Cousin aufs Eis fällt:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.instagram.com/p/BOrgVw6j8O3/?taken-by=biskobe&quot;&gt;https://www.instagram.com/p/BOrgVw6j8O3/?taken-by=biskobe&lt;/a&gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Winter</category><category>fun</category><category>ice</category><category>skating</category></item><item><title>Wie man sich eine dauerhafte EORI-Nummer auf elektronischem Weg besorgt, oder warum Papier nie sterben wird.</title><link>https://bisko.be/de/posts/blog/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%B0-%D1%81%D0%B8-%D0%B8%D0%B7%D0%B2%D0%B0%D0%B4%D0%B8%D0%BC-%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B5%D0%BD-eori-%D0%BD%D0%BE%D0%BC%D0%B5%D1%80-%D0%BF%D0%BE-%D0%B5/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%B0-%D1%81%D0%B8-%D0%B8%D0%B7%D0%B2%D0%B0%D0%B4%D0%B8%D0%BC-%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B5%D0%BD-eori-%D0%BD%D0%BE%D0%BC%D0%B5%D1%80-%D0%BF%D0%BE-%D0%B5/</guid><description>Wichtiger Hinweis – der Artikel ist auf dem Stand von 2017 🙂 In den Kommentaren gibt es ein paar Aktualisierungen des Ablaufs, schaut sie euch auch an. Aktualisierung aus Kommentar 1 Außerdem hatte ich eine Mail von jemand anderem bekommen, der diesen Prozess vor Kurzem (September 2020) durchlaufen hat, aber ich warte noch auf seine Infos dazu, wie der Prozess aktuell abläuft. Wenn ihr trotzdem Lust habt</description><pubDate>Fri, 06 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Wichtiger Hinweis – der Artikel ist auf dem Stand von 2017 🙂 In den Kommentaren gibt es ein paar Aktualisierungen des Ablaufs, schaut sie euch auch an.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bisko.be/2017/01/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d1%81%d0%b8-%d0%b8%d0%b7%d0%b2%d0%b0%d0%b4%d0%b8%d0%bc-%d0%bf%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b5%d0%bd-eori-%d0%bd%d0%be%d0%bc%d0%b5%d1%80-%d0%bf%d0%be-%d0%b5/#comment-16503&quot;&gt;Aktualisierung aus Kommentar 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Außerdem hatte ich eine Mail von jemand anderem bekommen, der diesen Prozess vor Kurzem (September 2020) durchlaufen hat, aber ich warte noch auf seine Infos dazu, wie der Prozess aktuell abläuft.&lt;/p&gt;
&lt;p&gt;Wenn ihr trotzdem lesen wollt, wie der Prozess 2017 aussah, könnt ihr den ganzen Artikel lesen.&lt;/p&gt;
&lt;p&gt;Wenn nicht – &lt;a href=&quot;https://bisko.be/2017/01/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%B0-%D1%81%D0%B8-%D0%B8%D0%B7%D0%B2%D0%B0%D0%B4%D0%B8%D0%BC-%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B5%D0%BD-eori-%D0%BD%D0%BE%D0%BC%D0%B5%D1%80-%D0%BF%D0%BE-%D0%B5/#comments&quot;&gt;springt direkt zu den Kommentaren&lt;/a&gt;, um zu sehen, was sich geändert hat und mit welchen neuen Kopfschmerzen die Leute zu kämpfen haben.&lt;/p&gt;
&lt;h4 id=&quot;originalartikel-von-2017&quot;&gt;&lt;em&gt;&lt;strong&gt;Originalartikel von 2017&lt;/strong&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p&gt;TL;DR; und die konkreten Schritte stehen am Ende des Posts 🙂&lt;/p&gt;
&lt;p&gt;Rund um Weihnachten bin ich auf ein ziemlich gutes Angebot gestoßen – eine Transcend 480-GB-SSD für 86 $ – Treffer! Das Problem: Sie kam von Amazon.com, was bedeutet, dass sie vom Zoll aufgehalten werden würde.&lt;/p&gt;
&lt;p&gt;Der Preis und die Gier haben gewonnen, und so bestellte ich sie am 28. Dezember, und am 3. Januar war sie schon in Sofia. Lieferung mit DHL, alles super. Die DHL-Mitarbeiter erklärten mir, dass sie eine Vollmacht, eine Beschreibung der Ware auf Bulgarisch und die begehrte EORI-Nummer brauchen.&lt;/p&gt;
&lt;p&gt;Die ersten beiden Dinge sind trivial. Ein Besuch beim Notar und eine Zeile Freitext.&lt;/p&gt;
&lt;p&gt;Die EORI-Nummer war dagegen eine ganz andere Geschichte.&lt;/p&gt;
&lt;p&gt;Wie jeder weiß, der schon mal mit dem Zoll zu tun hatte, gibt es zwei Arten von EORI-Nummern – dauerhafte und temporäre. Die temporäre bekommt man sofort, und sie gilt für eine einzelne Sendung. Braucht man sie für künftige Sendungen, muss man jedes Mal eine neue besorgen.&lt;/p&gt;
&lt;p&gt;Von Bekannten wusste ich, dass man die dauerhafte EORI-Nummer kostenlos über das Online-System des Zolls bekommt. DHL wollte dagegen einen gewissen Betrag dafür, eine zu besorgen. Ich habe Vertrauen in elektronische Systeme (wie naiv von mir) und beschloss, ein bisschen Geld zu sparen.&lt;/p&gt;
&lt;p&gt;Am Nachmittag des 3. setzte ich mich hin und fing an, mich zu fragen, wie das Ganze funktioniert und wie genau ich eine EORI-Nummer „registrieren“ soll.&lt;/p&gt;
&lt;p&gt;Das elektronische Zollportal (ecustoms.bg) ist nutzlos, wenn man es direkt aufruft. Warum? Weil man dort schon registriert sein muss. Ich wiederhole – um darauf zuzugreifen, muss man dort bereits registriert sein. Wie man sich registrieren soll, wenn man nicht registriert ist, bleibt mir ein Rätsel. Das andere, kleinere Drama ist, dass man eine elektronische Signatur braucht, um überhaupt hineinzukommen.&lt;/p&gt;
&lt;p&gt;So weit, so gut (nicht). Ich öffnete Google und begann, Zaubersprüche zu wirken, um herauszufinden, wie ich den begehrten Antrag stellen kann. Ein paar Suchen später stoße ich auf folgende Seite: &lt;em&gt;&lt;a href=&quot;http://ecustoms.bg/eportal/public/Controler?control=UpdateForm&amp;#x26;doc%5C_def%5C_id=24&amp;#x26;row%5C_id=1&amp;#x26;param%5C_selector=4&quot;&gt;http://ecustoms.bg/eportal/public/Controler?control=UpdateForm&amp;#x26;doc\_def\_id=24&amp;#x26;row\_id=1&amp;#x26;param\_selector=4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Screen Shot 2017-01-06 at 11.13.28.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1287&quot; height=&quot;860&quot; src=&quot;/_astro/Screen-Shot-2017-01-06-at-11.13.28-f052b73c.B7w6nr_s_1fJCpg.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;So weit, so gut, ich lese den Text, erkenne mit Mühe den versteckten Link auf „hier“, klicke und … nichts. Der Link führt mich zu einem nicht funktionierenden System – &lt;em&gt;&lt;a href=&quot;https://ecustoms.bg:18443/eportal/servlet/Controler?control=ReaderForm&amp;#x26;doc%5C_def%5C_id=3&amp;#x26;row%5C_id=5&quot;&gt;https://ecustoms.bg:18443/eportal/servlet/Controler?control=ReaderForm&amp;#x26;doc\_def\_id=3&amp;#x26;row\_id=5&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Eine Weile murmele ich allerlei Zaubersprüche und hoffe, dass das nicht eines dieser Online-Systeme ist, die nur werktags von 9 bis 17 Uhr laufen, aber ich gebe nicht auf und mache weiter.&lt;/p&gt;
&lt;p&gt;Wieder Zaubersprüche bei Google, und nach ein paar erfolglosen Versuchen lande ich durch einen riesigen Zufall auf: &lt;a href=&quot;https://eori.customs.bg:8443/&quot;&gt;https://eori.customs.bg:8443/&lt;/a&gt;. Es folgen Überraschung, Staunen, Feiertagsstimmung usw.&lt;/p&gt;
&lt;p&gt;Schnell stecke ich die elektronische Signatur ein und fange fieberhaft an, die Oberfläche zu erkunden, die aus insgesamt 4 Buttons besteht, von denen zwei &lt;strong&gt;Beenden&lt;/strong&gt; und einer &lt;strong&gt;Aktualisieren&lt;/strong&gt; heißen. Der letzte Button war etwas in der Art von „Registrierung“, aber weil man ihn nach einer einmal durchgeführten Registrierung nicht mehr sieht, kann ich euch nicht genau sagen, was darauf stand.&lt;/p&gt;
&lt;p&gt;Klick, es erscheint ein Formular mit mehreren verschiedenen Feldtypen und irgendwelchen Codes darauf. Ich füllte die aus, bei denen ich wusste, worum es geht, aber die anderen waren terra incognita. Manche waren fett, andere nicht, aber es war nicht klar, welche Pflichtfelder sind und welche nicht.&lt;/p&gt;
&lt;p&gt;Zurück zu Google. Zaubersprüche – nichts. Schließlich beschloss ich, nach konkreten Formulierungen aus den Feldern zu suchen, und durch Zufall landete ich auf &lt;a href=&quot;http://ecustoms.bg/eportal/public/DocumentViewer?row_id=265&quot;&gt;http://ecustoms.bg/eportal/public/DocumentViewer?row_id=265&lt;/a&gt;, was sich als die Verordnung zur Einrichtung der EORI-BG-Registrierung entpuppte. Wie schön. Statt ein paar Popups mit einer kurzen Beschreibung des Feldes muss man in Verordnungen und Gesetzen wühlen, um ein Formular auszufüllen. C’est la vie, oder auf Bulgarisch – so läuft das hier.&lt;/p&gt;
&lt;p&gt;Eine Verordnung hält mich nicht auf. Ich überfliege sie und gelange ganz nach unten, wo ich mehrere Beispielformulare sehe, die für die Papierversion des Antrags verwendet werden. Ich fülle mein Formular fertig aus, speichere, unterschreibe mit der elektronischen Signatur und fange an zu hoffen.&lt;/p&gt;
&lt;p&gt;Beginn des Prozesses gegen 18 Uhr, Ende um 21:43 Uhr. Für einen Online-Antrag.&lt;/p&gt;
&lt;p&gt;Schneller wäre es gewesen, wenn ich zu einem der Sofioter Zollämter gegangen wäre und das vor Ort erledigt hätte, nur dass diese EORI-Nummer nach dem Wohnsitz ausgestellt wird, und ich bin immer noch in Montana gemeldet. Ja, aber in Montana gibt es kein Zollamt. Das nächste ist in Lom, etwa 40 km von Montana entfernt. Ich bin in Sofia. Stellt man den Antrag auf Papier, muss man zweimal dorthin fahren, was mir überhaupt nicht gefällt. Draußen liegt Schnee, es geht nur an einem Werktag und dazu all die anderen Schönheiten der staatlichen Verwaltung.&lt;/p&gt;
&lt;p&gt;Bis hierhin glaube ich noch an elektronische Systeme und freue mich, dass ich für so eine Kleinigkeit nicht ans andere Ende Bulgariens fahren muss (und ein bisschen Geld spare, denn daher kam ja alles).&lt;/p&gt;
&lt;p&gt;Zwei Tage vergehen, inzwischen ist Donnerstag, am Antrag tut sich nichts. Langsam beginne ich zu zweifeln. Ich rief beim zuständigen Service Desk des Zolls an, wo die Mitarbeiterin mir ganz höflich sagte, die Frist betrage bis zu 5 Werktage, und wenn es danach nicht geklappt habe, solle ich noch einmal anrufen. Gut, ich warte.&lt;/p&gt;
&lt;p&gt;Tagsüber lese ich über diese begehrten Online-Anträge für EORI und welche Erfahrungen die Leute geteilt haben, und bei allen ist es dasselbe – wer Glück hat, hat Glück, wer nicht, wartet. Jemand erwähnte, er habe beim regionalen Zollamt nachgefragt, und dort habe man ihm gesagt, ein solcher Antrag sei bei ihnen nicht eingegangen. Hier beginnt mein Glaube an das elektronische System bedrohlich zu wanken.&lt;/p&gt;
&lt;p&gt;Heute, am Freitag, dachte ich mir, es wäre gut zu prüfen, ob nicht auch ich einer der Leidtragenden des elektronischen Systems bin. Ich rufe beim Zollamt in Lom an. Eine freundliche Mitarbeiterin sagte mir, ich solle bei der zuständigen Abteilung anrufen. Sie nannte mir eine lokale Nummer für Lom ohne Vorwahl, und nach ein paar dummen Fragen, was das für eine Zahl sei, die sie mir da diktiert, verstand ich, dass es in Wirklichkeit eine andere Telefonnummer ist, die ich anrufen soll. Wir lächelten uns am Telefon über die Situation an, und ich rief die Nummer an, die sie mir gegeben hatte.&lt;/p&gt;
&lt;p&gt;Dort nahm ein wieder höflicher Herr ab, und nachdem ich mein Anliegen vorgetragen hatte, sagte er, sie bearbeiten die Anträge, wenn sie ankommen, bei ihnen sei nichts eingegangen, und er werde nachsehen, was los ist und warum er nicht angekommen ist. Ich solle in 10 Minuten noch einmal anrufen. Ich freue mich, dass wenigstens die Haltung aller in der Kette menschlich war und es dieses sozialistische Anpampen und die arrogante Art nicht gab. Ich fing an zu warten, und nach nicht einmal 5 Minuten bekomme ich die Benachrichtigung über eine neue Mail mit dem Betreff: „&lt;strong&gt;Informationen zu Ihrer EORI-Registrierung!&lt;/strong&gt;“ JUHU! Ich habe sie!&lt;/p&gt;
&lt;p&gt;Ich schickte sie an DHL, und jetzt muss nur noch die Sendung freigegeben und von mir abgeholt werden. Juhu! (schon wieder)&lt;/p&gt;
&lt;p&gt;Zum Schluss (oder TL;DR;) eine kompaktere Anleitung, wie man sich online eine dauerhafte EORI-Nummer besorgt:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Besorgt euch eine elektronische Signatur, falls ihr keine habt.&lt;/li&gt;
&lt;li&gt;Geht auf: &lt;a href=&quot;https://eori.customs.bg:8443/&quot;&gt;https://eori.customs.bg:8443/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Ladet euch &lt;a href=&quot;http://ecustoms.bg/eportal/public/DocumentViewer?row_id=265&quot;&gt;http://ecustoms.bg/eportal/public/DocumentViewer?row_id=265&lt;/a&gt; herunter, um zu sehen, wie die Felder auszufüllen sind. Die Informationen, die ihr braucht, stehen auf den letzten paar Seiten.&lt;/li&gt;
&lt;li&gt;Reicht den Antrag ein und unterschreibt ihn unbedingt. Ihr müsst eine Zeile mit folgendem Wert in der Spalte „Aktion“ sehen: &lt;strong&gt;EORI-REG-SIGN&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Wartet einen Tag, oder, wenn ihr euch als Glückspilz fühlt, ruft bei der Regionalstelle des Zolls an, bei der ihr den Antrag eingereicht habt, und fragt taktvoll, ob er angekommen ist, weil das elektronische System euch irgendwelche Fehler anzeige. Erwähnt nicht, dass ihr es eilig habt.&lt;/li&gt;
&lt;li&gt;Nach kurzer Zeit bekommt ihr die begehrte EORI-Nummer.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ein paar Anmerkungen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Die elektronische Signatur muss auf euren Namen lauten, da beim Ausfüllen des Formulars ziemlich viele Daten (Namen, ЕГН, Mail) aus der Signatur übernommen werden. D. h. mit der Signatur eines Freundes geht es nicht.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Das System ist ziemlich seltsam in der Bedienung und manchmal ziemlich eigensinnig.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Schickt das Formular erst ab und unterschreibt es, nachdem ihr alle Felder sorgfältig geprüft habt.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Funktioniert erfolgreich mit Chrome auf dem Mac mit einer Signatur von Infonotary.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hinzugefügte Anmerkung aus dem Kommentar von &lt;a href=&quot;http://bisko.be/2017/01/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d1%81%d0%b8-%d0%b8%d0%b7%d0%b2%d0%b0%d0%b4%d0%b8%d0%bc-%d0%bf%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b5%d0%bd-eori-%d0%bd%d0%be%d0%bc%d0%b5%d1%80-%d0%bf%d0%be-%d0%b5/#comment-16471&quot;&gt;Petya&lt;/a&gt; weiter unten:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Wenn ich versuche, mit der elektronischen Signatur zu unterschreiben, beginnt der Download einer Datei (stampitls). Nach zwei Tagen Kampf mit dem HelpDesk des Zolls haben sie mir &lt;a href=&quot;http://bisko.be/wp-content/uploads/2018/05/stampit-sign-esig.pdf&quot;&gt;eine Anleitung geschickt&lt;/a&gt;, mit der es mir gelungen ist zu unterschreiben.&lt;br&gt;
Und noch etwas – wenn ihr eine Adresse in Sofia habt und die EORI-Nummer mit elektronischer Signatur beantragen wollt, wählt bei der Auswahl der Zolldienststelle &lt;strong&gt;ТМУ Столична&lt;/strong&gt; – das geht in etwa einer Stunde, wenn ihr dagegen Летище София (Flughafen Sofia) wählt, kann es bis zu 5 Werktage dauern&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Митница</category><category>eori</category><category>еори</category><category>митница</category></item><item><title>Das ZET und kommerzielle Nachrichten (… die unerwünschten…)</title><link>https://bisko.be/de/posts/blog/%D0%B7%D0%B5%D1%82-%D0%B8-%D1%82%D1%8A%D1%80%D0%B3%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D1%82%D0%B5-%D1%81%D1%8A%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BD%D0%B5%D0%BF%D0%BE%D0%B8%D1%81%D0%BA/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/%D0%B7%D0%B5%D1%82-%D0%B8-%D1%82%D1%8A%D1%80%D0%B3%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D1%82%D0%B5-%D1%81%D1%8A%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BD%D0%B5%D0%BF%D0%BE%D0%B8%D1%81%D0%BA/</guid><description>Heute habe ich mir wieder einmal “Gemäß ZET, Art. 6 (1) kann diese kommerzielle Nachricht unerwünscht sein” angesehen, und danach 5 Seiten Gekotze mit allerlei Blödsinn, ohne jegliche Formatierung, klar getrennte Abschnitte usw. Weil ich es satt hatte, solchen Unsinn zu lesen, habe ich mich ins ZET eingegraben, um zu sehen, was dieser berüchtigte</description><pubDate>Tue, 24 Aug 2010 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Heute habe ich mir wieder einmal “Gemäß ZET, Art. 6 (1) kann diese kommerzielle Nachricht unerwünscht sein” angesehen, und danach 5 Seiten Gekotze mit allerlei Blödsinn, ohne jegliche Formatierung, klar getrennte Abschnitte usw.&lt;/p&gt;
&lt;p&gt;Weil ich es satt hatte, solchen Unsinn zu lesen, habe ich mich ins ZET eingegraben, um zu sehen, was dieser berüchtigte Artikel 6 eigentlich besagt, und lese:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Art. 6.&lt;/strong&gt; (1) Ein Diensteanbieter, der unerwünschte kommerzielle Nachrichten per E-Mail ohne vorherige Einwilligung des Empfängers versendet, ist verpflichtet, die klare und unmissverständliche Erkennbarkeit der kommerziellen Nachricht als unerwünscht bereits beim Eingang beim Empfänger sicherzustellen.&lt;/p&gt;
&lt;p&gt;(2) (Geändert – DV, Nr. 105 von 2006, in Kraft seit 24.12.2006) Die Kommission für Verbraucherschutz führt ein elektronisches Register der elektronischen Adressen juristischer Personen, die keine unerwünschten kommerziellen Nachrichten erhalten möchten, nach einem durch Verordnung des Ministerrats festgelegten Verfahren.&lt;/p&gt;
&lt;p&gt;(3) Der Versand unerwünschter kommerzieller Nachrichten an elektronische Adressen, die im Register nach Abs. 2 eingetragen sind, ist verboten.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So weit, so gut, alles klar, einverstanden. Es hat keinen Sinn, mit den gesetzlichen Bestimmungen zu hadern, ich ertrage es oder blocke sie, bla bla, und ich lese weiter bis Absatz 4 und was sehe ich:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(4) Der Versand unerwünschter kommerzieller Nachrichten an Verbraucher &lt;strong&gt;ohne deren vorherige Einwilligung&lt;/strong&gt; ist &lt;strong&gt;verboten&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Äääh.. Wie bitte? Demnach müssten sie mir zuerst ein Mailchen schicken und mich fragen, ob ich damit einverstanden bin, diesen ganzen Auswurf zu erhalten oder nicht, aber das tun sie nicht. Sie teilen mir einfach mit, dass diese kommerzielle Nachricht laut Art. 6 (1) möglicherweise nicht von mir gewünscht ist, und kippen dann den ganzen Auswurf in derselben Mail aus. Nirgends fragen sie, ob ich einverstanden bin oder nicht – direkt von der Tür in die Beine.&lt;/p&gt;
&lt;p&gt;Ich frage mich, wie legal diese Praxis ist – Spam ohne meine ausdrückliche Einwilligung zu verschicken?&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Random rants</category><category>закони</category><category>спам</category></item><item><title>Phonetik und xorg</title><link>https://bisko.be/de/posts/blog/phonetics-and-xorg/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/phonetics-and-xorg/</guid><description>In einer der letzten xorg-Versionen, die etwa im Januar/Februar dieses Jahres erschienen sind, haben sich in die phonetische Belegung Änderungen eingeschlichen, und zwar von jemandem, der überhaupt nicht an den normalen Nutzer gedacht hat und die Phonetik unbedingt in die BDS-Belegung verwandeln wollte. Die Änderungen bestehen darin, dass die Zeichen für obere und untere Anführungszeichen statt</description><pubDate>Sat, 15 May 2010 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In einer der letzten xorg-Versionen, die etwa im Januar/Februar dieses Jahres erschienen sind, haben sich in die phonetische Belegung Änderungen eingeschlichen, und zwar von jemandem, der überhaupt nicht an den normalen Nutzer gedacht hat und die Phonetik unbedingt in die BDS-Belegung verwandeln wollte. Die Änderungen bestehen darin, dass die Zeichen für obere und untere Anführungszeichen statt &amp;#x3C;&gt; eingeführt wurden, außerdem ein Paragraphenzeichen statt &amp;#x26; und ein Eurozeichen statt ^.&lt;/p&gt;
&lt;p&gt;Um diese Gräueltaten zu beheben, fügt man in &lt;strong&gt;~/.bashrc&lt;/strong&gt; die folgenden Zeilen hinzu:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;xmodmap -e “keycode 16 = 7 ampersand 7 ampersand”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 12 = 3 numbersign 3 numbersign”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 15 = 6 asciicircum 6 asciicircum”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 20 = minus underscore minus underscore”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 59 = comma less comma less”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 60 = period greater period greater”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Danach loggt man sich aus und wieder neu in das System ein, und dann sollte man die alte Belegung der Zeichen wieder haben.&lt;/p&gt;
&lt;p&gt;P.S. Es gibt noch eine weitere Änderung: Statt des großen ь (Jer, klein, lateinisches x) ist jetzt ѝ (mit Akzent) belegt, was ich für nützlich halte und deshalb in den obigen Änderungen nicht rückgängig gemacht habe.&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Funny</category><category>Random rants</category><category>Tech</category></item><item><title>Den iPhone-Code entfernen</title><link>https://bisko.be/de/posts/blog/removing-iphone-passcode-lock/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/removing-iphone-passcode-lock/</guid><description>Gestern hatte ich ein paar Drinks intus und beschloss, meinem iPhone einen Code zu verpassen, nur für den Fall, dass keiner darin herumschnüffelt (dumme Paranoia)… Also habe ich den Code eingerichtet, in den Einstellungen zweimal eingetippt, auf die Zahl gesetzt, die ich zu tippen glaubte, und dann</description><pubDate>Sat, 14 Nov 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Gestern hatte ich ein paar Drinks intus und beschloss, meinem iPhone einen Code zu verpassen, nur für den Fall, dass keiner darin herumschnüffelt (dumme Paranoia)… Also habe ich den Code eingerichtet, in den Einstellungen zweimal eingetippt, auf die Zahl gesetzt, die ich zu tippen glaubte, und dann das Telefon gesperrt (Power-/Standby-Taste). Als ich es entsperren wollte, stellte sich heraus, dass ich es irgendwie geschafft hatte, zweimal eine Zahl einzutippen, die nicht die gewünschte war. Den Rest der Nacht habe ich also versucht herauszufinden, welche Zahl es war, aber ohne Erfolg.&lt;/p&gt;
&lt;p&gt;Jetzt, mit nüchternerem Kopf, habe ich einen Weg gefunden, die Code-Sperre zu entfernen (allerdings zusammen mit allen anderen Passwörtern auf dem Telefon).&lt;/p&gt;
&lt;p&gt;Die Schritte sind folgende:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Auf das Dateisystem des Telefons zugreifen (unter Linux ist das einfach – schau dir &lt;a href=&quot;http://marcansoft.com/blog/2009/10/iphone-syncing-on-linux-part-2/&quot; title=&quot;Marcansoft&quot;&gt;http://marcansoft.com/blog/2009/10/iphone-syncing-on-linux-part-2/&lt;/a&gt; an, wie man auf das iPod-Dateisystem zugreift – beim iPhone und iPod touch funktioniert es genauso).&lt;/li&gt;
&lt;li&gt;Dann zu &lt;strong&gt;/private/var/Keychains&lt;/strong&gt; wechseln&lt;/li&gt;
&lt;li&gt;Die Datei &lt;strong&gt;keychain-2.db&lt;/strong&gt; an einen anderen Ort verschieben, z. B. nach /&lt;/li&gt;
&lt;li&gt;Dann zu &lt;strong&gt;/var/mobile/Library/Preferences/&lt;/strong&gt; wechseln&lt;/li&gt;
&lt;li&gt;Die Datei &lt;strong&gt;com.apple.springboard.plist&lt;/strong&gt; an einen anderen Ort verschieben, z. B. nach /&lt;/li&gt;
&lt;li&gt;Danach musst du SpringBoard beenden (&lt;strong&gt;killall SpringBoard&lt;/strong&gt;, wenn du per SSH drin bist) &lt;strong&gt;oder einfach das Telefon neu starten&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Voilà, das war’s.&lt;/p&gt;
&lt;p&gt;Der Nebeneffekt dieser Aktion: Du verlierst alle Passwörter für Mail-Konten und Exchange-Konten sowie die Anordnung der Icons auf dem SpringBoard, aber dafür musst du das Telefon nicht neu flashen 🙂&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Random rants</category><category>Tech</category><category>drinkingisbad</category><category>Funny</category><category>iphone</category><category>ipod</category><category>ipod touch</category><category>lock</category><category>lockdown</category><category>passcode</category></item><item><title>Die letzten Tropfen Akku…</title><link>https://bisko.be/de/posts/blog/last-drops-of-battery/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/last-drops-of-battery/</guid><description>Heute Abend gab es in meiner Nachbarschaft einen kleinen Stromausfall, und ich beschloss, dass es an der Zeit ist, den Akku meines Acer 5935g auf die Probe zu stellen. Ich zog das Netzkabel ab und setzte meinen Filmabend mit Dexter S02 fort. Hier also das Endergebnis meines kleinen Akkutests: 1:30 Stunden – Filme, 35 Minuten</description><pubDate>Tue, 08 Sep 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Heute Abend gab es in meiner Nachbarschaft einen kleinen Stromausfall, und ich beschloss, dass es an der Zeit ist, den Akku meines Acer 5935g auf die Probe zu stellen. Ich zog das Netzkabel ab und setzte meinen Filmabend mit Dexter S02 fort.&lt;/p&gt;
&lt;p&gt;Hier also das Endergebnis meines kleinen Akkutests:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1:30 Stunden – Filme&lt;/li&gt;
&lt;li&gt;35 Minuten Surfen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das ergibt zusammen 2:05 Stunden garantierte Akkulaufzeit (mindestens), und ich habe immer noch eine Reserve von knapp einer halben Stunde, um ein paar Texte fertigzustellen, an denen ich gerade arbeite.&lt;/p&gt;
&lt;p&gt;Tatsächlich komme ich zum ersten Mal sehr nah an die vom Hersteller angegebene Akkulaufzeit heran. Ich bin froh, dass ich mich für Acer entschieden habe 🙂&lt;/p&gt;
&lt;p&gt;Das System, auf dem ich den Akku getestet habe:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acer 5935g (Original-Akku)&lt;/li&gt;
&lt;li&gt;Windows Vista SP2 64 Bit&lt;/li&gt;
&lt;li&gt;GeForce 130M aktiv (nicht die Onboard-Intel-4500)&lt;/li&gt;
&lt;li&gt;Razer Copperhead Maus&lt;/li&gt;
&lt;li&gt;die ganze Zeit 60 % Helligkeit&lt;/li&gt;
&lt;li&gt;Skype lief im Hintergrund&lt;/li&gt;
&lt;li&gt;WLAN an, mit dem Netzwerk verbunden&lt;/li&gt;
&lt;li&gt;KMplayer spielt DivX ab (mit ganz viel Vor- und Zurückspulen – ich kann keinen Film von Anfang bis Ende schauen, ohne zu spulen 🙂 )&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Als Nächstes folgt ein Test unter Linux mit denselben Aktivitäten. Allerdings muss ich es zuerst installieren und konfigurieren, das dauert also noch, bis ich mal etwas freie Zeit habe.&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Tech</category><category>acer</category><category>battery</category><category>cool</category><category>regards</category><category>video</category></item><item><title>Fehler E16 bei einer Canon-Kamera</title><link>https://bisko.be/de/posts/blog/error-e16-canon-camera/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/error-e16-canon-camera/</guid><description>Die Geschichte begann gestern, als mir mein Vater schrieb, dass seine Kamera (Canon A610) kaputtgegangen sei und beim Einschalten (im Aufnahmemodus) nur noch das Objektiv ausfährt, wieder einfährt und auf schwarzem Hintergrund Error E16 anzeigt. Ich habe im Internet gestöbert, und die meisten Infos besagten, dass das Problem unbekannt sei und nicht selten auftrete</description><pubDate>Wed, 02 Sep 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Die Geschichte begann gestern, als mir mein Vater schrieb, dass die Kamera (&lt;strong&gt;Canon A610&lt;/strong&gt;) kaputtgegangen sei und beim Einschalten (im Aufnahmemodus) nur noch das Objektiv ausfährt, es wieder einfährt und auf schwarzem Hintergrund Folgendes anzeigt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Error E16&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ich habe im Internet gestöbert, und die meisten Infos besagten, dass &lt;strong&gt;das Problem unbekannt ist&lt;/strong&gt; und nicht selten vorkommt. Man solle die Kamera an Canon schicken, die würden sie dann austauschen.&lt;/p&gt;
&lt;p&gt;Bis hierhin alles schön und gut, nur ist die Garantie der Kamera vor mehr als einem Jahr abgelaufen (&lt;strong&gt;kein Garantiefall&lt;/strong&gt; also, denn sie wurde im Mai 2006 gekauft).&lt;/p&gt;
&lt;p&gt;Ich war also ratlos, bis mein Vater plötzlich auf die Idee kam und das &lt;strong&gt;Standardmittel&lt;/strong&gt; bei „gelber“ Technik ausprobierte – &lt;strong&gt;PRÜGEL&lt;/strong&gt;! 🙂&lt;/p&gt;
&lt;p&gt;Es stellt sich heraus, dass die &lt;strong&gt;Fehlermeldung&lt;/strong&gt; bei &lt;strong&gt;kräftigem Schütteln oder Klatschen&lt;/strong&gt; auf die Kamera gute Chancen hat, &lt;strong&gt;zu verschwinden, und die Kamera funktioniert&lt;/strong&gt; dann wieder normal.&lt;/p&gt;
&lt;p&gt;Das birgt aber seine &lt;strong&gt;Risiken&lt;/strong&gt;: Wenn der Fehler einmal aufgetreten ist, &lt;strong&gt;kommt er womöglich wieder&lt;/strong&gt;, alles ist nur &lt;strong&gt;eine Frage der Zeit&lt;/strong&gt;. Man sollte also über eine &lt;strong&gt;neue Kamera&lt;/strong&gt; nachdenken, solange man sich noch mit der alten über Wasser halten kann.&lt;/p&gt;
&lt;p&gt;Das Ganze hat auch einen „coolen“ Nebeneffekt: Das Video funktioniert nur „zur Hälfte“, wie ihr unter folgendem Link sehen könnt: E16 error on Canon A610&lt;/p&gt;
&lt;p&gt;--- ## External Downloads Saved Locally - [&lt;a href=&quot;http://www.youtube.com/watch?v=fQGdaOgQt9M%5C&quot;&gt;http://www.youtube.com/watch?v=fQGdaOgQt9M\&lt;/a&gt;](media/грешка-e16-при-фотоапарат-canon-Canon A610 E16 error video.mkv)&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>camera</category><category>canon</category><category>chinatech</category><category>e16</category><category>error</category><category>fix</category></item><item><title>iPhone 3.0</title><link>https://bisko.be/de/posts/blog/iphone-30/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/iphone-30/</guid><description>Uaaaaa…. ich freue mich wie ein kleines Kind 😉 Ich habe mein iPhone jetzt mit der neuesten Version von iPhone OS ausgestattet, nämlich der lang ersehnten Version 3.0. Auf den ersten Blick ist es eine große Spielerei, bis man die neuen (natürlich nützlichen) Dinge in der neuen Firmware erkundet hat. Hier sind einige, die ich persönlich nützlich finde: Spotlight (erster Bildschirm (nullter, wenn man Home als ersten zählt) – sehr</description><pubDate>Fri, 19 Jun 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Uaaaaa…. ich freue mich wie ein kleines Kind 😉&lt;/p&gt;
&lt;p&gt;Ich habe mein iPhone jetzt mit der neuesten Version von iPhone OS ausgestattet, nämlich der lang ersehnten Version 3.0.&lt;br&gt;
Auf den ersten Blick ist es eine große Spielerei, bis man die neuen (natürlich nützlichen) Dinge in der neuen Firmware erkundet hat. Hier sind einige, die ich persönlich nützlich finde:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Spotlight&lt;/strong&gt; (erster Bildschirm (nullter, wenn man Home als ersten zählt) – macht richtig Freude. Du tippst 3 Buchstaben und hast schon den richtigen Kontakt angerufen oder den gewünschten Song gestartet. In den Einstellungen kann man festlegen, dass es per Doppelklick auf den Home-Button erreichbar ist.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Landscape&lt;/strong&gt; (der Bildschirm mit den Beinen zur Seite) – einfach nur ein Riesenspaß 🙂 . SMS, E-Mail, Notizen – alles im Landscape-Modus … AAAAAAAAAAA (Freudenschreie)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copy&amp;#x26;Paste&amp;#x26;Undo&amp;#x26;…&lt;/strong&gt; (das, was es bisher nicht gab) – die Funktionalität zum Kopieren und Einfügen ist richtig clever gelöst. (Man kann sie sich in den Reviews ansehen.) Bisher habe ich 2 Bugs gefunden. Beim ersten Kopieren von Bild + Text wird nur das Bild kopiert. Der andere Bug: Wenn man in Safari etwas zum Kopieren markiert hat, Safari beendet und gleich wieder startet, sieht man zuerst den markierten Bereich, und erst dann lädt irgendetwas anderes.&lt;/li&gt;
&lt;li&gt;Detaillierteres &lt;strong&gt;Call Log&lt;/strong&gt; (Telefon-Logger) – in Phone.app werden jetzt ausführlichere Informationen zu den Gesprächen mit einer bestimmten Nummer angezeigt – zum Beispiel die Gesprächsdauer, wann es geführt wurde und welchen Status das Gespräch hatte.&lt;/li&gt;
&lt;li&gt;Die Möglichkeit, die SMS-Erinnerung in den Einstellungen auszuschalten -&gt; Settings -&gt; General -&gt; Messages -&gt; Repeat Alert – die Rettung vor den erschreckenden Vibro-Tönen des Telefons, wenn man vergisst, die schon vom Home-Screen aus gelesene SMS zu öffnen.&lt;/li&gt;
&lt;li&gt;Verbesserungen im &lt;strong&gt;iPod&lt;/strong&gt; – &lt;strong&gt;Shake to Shuffle&lt;/strong&gt; (man schüttelt das Telefon zur Seite und es wechselt zu einem zufälligen Song) – praktisch, aber man muss ziemlich kräftig schütteln. (Note to self: im Kleinbus und in der Stadt testen); In den Podcasts gibt es einen SOOO großen &lt;strong&gt;Button zum 30-Sekunden-Zurückspringen&lt;/strong&gt; im laufenden Podcast. Daneben befindet sich der &lt;strong&gt;1x(2x,1/2x)-Button&lt;/strong&gt;, wenn man die Geschwindigkeit des gehörten Podcasts erhöhen oder verlangsamen will. (Klingt sehr lustig, besonders wenn man etwas ausreichend schnell abspielt); Außerdem kann man Podcasts online durchstöbern und sie anschließend auf das Telefon herunterladen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GESCHWINDIGKEIT&lt;/strong&gt; – ich habe mich erschreckt … das Telefon läuft mindestens 60 % schneller als mit 2.2.1. Anwendungen öffnen sich mit Lichtgeschwindigkeit. Das Schließen auch. Sogar der Ton hängt nicht mehr, wenn ich eine andere Anwendung oder den iPod selbst öffne oder schließe.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mehr fällt mir im Moment nicht ein, aber ich verspreche, die Liste zu ergänzen, sobald ich neue nützliche Dinge in der neuen Firmware entdecke.&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>cool</category><category>iphone</category><category>update</category></item><item><title>IE daily</title><link>https://bisko.be/de/posts/blog/ie-daily/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/ie-daily/</guid><description>Falls euch irgendwann, woher auch immer, die Border eines Elements im IE6/7 ‚zerhackt‘ werden, versucht einfach, dem Element ein background zu verpassen – die Chancen stehen gut, dass der Trick funktioniert.</description><pubDate>Sat, 30 May 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Falls euch irgendwann, woher auch immer, die Border eines Elements im IE6/7 ‚zerhackt‘ werden, versucht einfach, dem Element ein background zu verpassen – die Chancen stehen gut, dass der Trick funktioniert.&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>bug</category><category>ie</category></item><item><title>Will it Lens?</title><link>https://bisko.be/de/posts/blog/will-it-lens/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/will-it-lens/</guid><description>Die Typen bei Google sind total durchgeknallt 🙂 http://googleblog.blogspot.com/2009/04/will-it-lens.html</description><pubDate>Sat, 11 Apr 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Die Typen bei Google sind total durchgeknallt 🙂&lt;br&gt;
&lt;a href=&quot;http://googleblog.blogspot.com/2009/04/will-it-lens.html&quot;&gt;http://googleblog.blogspot.com/2009/04/will-it-lens.html&lt;/a&gt;&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>google</category><category>lens</category></item><item><title>Tante Vaza … oder Unterwegs mit Rentnern</title><link>https://bisko.be/de/posts/blog/lelq-vaca/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/lelq-vaca/</guid><description>Freitag, 13:30 … die letzten Minuten auf der Arbeit. Ich unterschreibe den Abmeldezettel, letzte Worte, und mache mich auf den Weg zum Hauptbahnhof. Ich steige in die Straßenbahn, rechne vorsichtig meine Zeit durch und kämpfe mit meinem gefräßigen Ich über die Frage, ob ich bei McDonalds vorbeigehen und mir etwas holen soll oder nicht… Ich schaffe es, es niederzuringen,</description><pubDate>Sun, 09 Nov 2008 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Freitag 13:30 … die letzten Minuten auf der Arbeit. Ich unterschreibe den Abmeldezettel, letzte Worte, und mache mich auf den Weg zum Hauptbahnhof. Ich steige in die Straßenbahn, rechne vorsichtig meine Zeit durch und kämpfe mit meinem gefräßigen Ich über die Frage, ob ich bei McDonalds vorbeigehen und mir etwas holen soll oder nicht… Ich schaffe es, es niederzuringen, denn nach groben Berechnungen schaffe ich es vielleicht gar nicht bis 15:15 zum Bahnhof, wenn ich mich mit Bruder Irschi verabredet hatte.&lt;/p&gt;
&lt;p&gt;Natürlich waren meine groben Berechnungen völlig daneben … ich war fast 40 Minuten zu früh da … In diesem Moment fing mein gefräßiges Ich (das ich von nun an der Kürze halber Ferkelchen nenne) an, mir ständig vorzuhalten: „Du hättest ja auch vorbeigehen und etwas zu essen holen können, oder?!“. Nach ein paar Flüchen auf Ferkelchens Kosten ging ich in den Bahnhof und blieb wie vom Donner gerührt stehen… „Verdammt! So viele Leute habe ich an diesem Bahnhof noch nie gesehen!!!“ Es war voller als … ich weiß nicht was … ein einziges Gedränge 🙂 . Ich sah, dass auf den Bänken kein Platz war, ging wieder raus und setzte mich auf die Treppe unter der Uhr. Ich schickte Iwan eine SMS, dass hier der Wahnsinn herrscht, und bekam prompt die Anweisung, sofort Fahrkarten zu kaufen :).&lt;/p&gt;
&lt;p&gt;Ich ging wieder rein und direkt zu den kleinen Schaltern… ich war blitzschnell durch. Klar, ist ja logisch, denn vor mir standen nur 2–3 Leute, während an den anderen Schaltern der reinste Wahnsinn herrschte. Ich holte Fahrkarten, natürlich mit Sitzplatzreservierung, und wartete wieder draußen. Iwan kam gegen 15:40, weil die öffentlichen Verkehrsmittel ja böse Menschen sind, zusammen mit den Taxis 🙂, und wir warteten an der Tafel darauf, dass sie anschreiben, wo unser Zug bereitgestellt wird. Wir sitzen, warten, sitzen, warten … es wird :50 … noch immer keine Information.. in diesem Moment sind wir, zusammen mit dem ganzen Rest des Bahnhofs, in der Stimmung „Mist, verdammter“.&lt;/p&gt;
&lt;p&gt;Irgendwann fangen sie über die Lautsprecheranlage (oder wie das Ding heißt) an durchzusagen, welcher Zug wo steht, und wir sehen, wie der ganze Bahnhof zu den Bahnsteigen stürmt…&lt;/p&gt;
&lt;p&gt;Nach schnellem Schubsen, Stoßen und Treten, bei dem selbst American-Football-Spieler anerkennend mit der Zunge geschnalzt hätten, kommen wir auf dem Bahnsteig an und suchen unsere Plätze. Hier Wagen 12, da Wagen 12…. hopp, wir laufen den ganzen Zug ab und erreichen den Wagen. Wir quetschen uns schnell hinein, denn es ist 15:58 und jeden Moment muss der Zug losfahren, und drinnen…. ach, drinnen… Drinnen musste man entweder ein Mikrobe sein, um sich durchzuzwängen, oder ein Superman, um die Leute wegzuschieben, die hektisch durch die Gänge wuselten. Zum Glück lagen unsere Plätze im 2. Abteil und nicht irgendwo in der Mitte, denn sonst hätte es durchaus eine Szene aus „Bloodsport X“ geben können.&lt;/p&gt;
&lt;p&gt;Schließlich richteten wir uns ein und warteten darauf, dass der Zug losfährt. Nach knapp 2 Minuten kommen irgendwelche Alten mit reservierten Plätzen in unserem Abteil und verjagen im Handumdrehen die „Eindringlinge“ (obwohl wir sie kannten, aber … Schicksal). Leider blieben die 2 nervigen Omas aus Berkowiza … alle hatten sich eingerichtet und wir begannen zu warten, dass der Zug losfährt.&lt;/p&gt;
&lt;p&gt;Natürlich erkenne ich in der Zwischenzeit einen der Alten, der bis vor ein paar Jahren neben uns wohnte. Er erkennt mich dagegen nicht … offenbar macht sich die Demenz bemerkbar 😀&lt;/p&gt;
&lt;p&gt;Die meisten Details lasse ich weg, es sind so viele, dass man sie sich kaum merken kann, aber einen erwähne ich, der mich völlig weggehauen hat vor Lachen:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;…&lt;br&gt;
– Mensch, der trinkt jeden Morgen Kaffee bei Tante Vaza!&lt;br&gt;
– Tante Vaza?&lt;br&gt;
– Ja klar, auf den Tassen soll Tante Vaza stehen, und am Ende stellt sich raus, dass das lavAzza war&lt;br&gt;
…&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Und so ging es 4 volle Stunden weiter mit Rentnerhumor, der einem zeitweise „das Zwerchfell zerreißt, und du steigst am Bahnhof Septemvri aus, damit sie dir ein neues einsetzen“.&lt;/p&gt;
&lt;p&gt;Letztlich kamen wir mit etwa einer Stunde Verspätung in Montana an, aber immerhin eine Stunde, die schnell verging 🙂 Deshalb: Wenn ihr in einem Abteil voller alter Leute reist und mindestens 2 Opas dabei sind, bedauert euch nicht, die Party ist garantiert 😀&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Funny</category><category>Travel</category></item><item><title>Hier?</title><link>https://bisko.be/de/posts/blog/post-2008-11-01/</link><guid isPermaLink="true">https://bisko.be/de/posts/blog/post-2008-11-01/</guid><description>Die Geschichte eines seltsamen Tages und des Kaufs eines DreamHost-Hostings.</description><pubDate>Sat, 01 Nov 2008 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Gestern war ein seltsamer Tag…&lt;/p&gt;
&lt;p&gt;Morgens bin ich trotz leicht verspäteten Aufbruchs pünktlich auf der Arbeit angekommen. Offenbar hat der Stau diesmal für mich gearbeitet. Der Tag verlief dann ganz normal, bis gegen 13 Uhr, als Zwetan mir einen Link zu irgendeiner Aktion von DreamHost zum 11. Geburtstag des Unternehmens schickte.&lt;br&gt;
Ich öffnete ihn und fing an zu lesen.. mit jeder Zeile der Tabelle mit den Hosting-Eigenschaften wurden meine Augen größer und gieriger (der Sabber lief sogar auch schon :D ).&lt;br&gt;
Schnell war klar: Das ist es, das wird gekauft, ABER es tauchte ein Problem auf – wie bezahlen? Ich habe eine Karte mit aktivierten Online-Zahlungen, aber kein Geld drauf, und Zwetan hat Geld, aber keine Online-Zahlungen – wir laufen gegen eine Wand … oder eher gleich gegen Granit.&lt;/p&gt;
&lt;p&gt;Nächster Schritt: Er schickt mir Geld über ePay.bg und ich bezahle. Alles perfekt, bis sich herausstellt, dass ich dort den Status eines völligen Deppen habe und mein Tageslimit für den Empfang … 50 Lewa beträgt. Schnell suche ich, wie ich ein „bekannter“ Nutzer werden kann, und bin von der Information schockiert:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Wie steige ich auf eine höhere Stufe auf&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Um zur Stufe „2“ – „bekannter Kunde“ – aufzusteigen, müssen Sie in Ihrem Benutzerprofil eine registrierte Bankkarte haben, mit der Sie über das System mindestens 5 Rechnungen für Strom, Wasser, Telefon, Heizung usw. bezahlt haben (die Bezahlung eines Prepaid-Dienstes gilt nicht als Bezahlung einer Rechnung).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ach komm schon! Mindestens 5 Rechnungen … was ist das für ein Quatsch. Als hätte ich ein eigenes Haus, für das ich solche Rechnungen bezahlen würde. Völliger Blödsinn. Hätten sie ein Foto vom Personalausweis verlangt oder so, ja … aber das hier ist zu viel, besonders wenn du eine gewisse Summe jetzt sofort, auf der Stelle, übertragen musst.&lt;/p&gt;
&lt;p&gt;Ich spüre schon, wie uns die Aktion wie eine eingeseifte Tasse aus den Händchen flutscht. In dieser Lage bleibt nur die allerletzte Variante – er überweist Geld in Warna direkt auf mein Konto bei der Postbank, und wir hoffen, dass es klappt. Ich gebe ihm die IBAN, er geht los zum Einzahlen. Nach 25-30-40 Minuten ruft er an: „Ich hab überwiesen, sie sagten, dass die Änderungen im E-Banking bis 2 Uhr sichtbar sind.“ Natürlich war ich bei der Info mit den 2 Stunden schockiert, dass die ganze Sache so auf Messers Schneide steht, und wartete 15 lange Minuten, loggte mich bei e-postbank ein und sah mit SO GROẞEN Augen und heruntergefallener Kinnlade, dass das Geld angekommen war.&lt;/p&gt;
&lt;p&gt;Fieberhaft öffne ich den Link, den Zwetan mir kurz zuvor zum Warenkorb bei Google Checkout geschickt hatte, fülle meine Daten aus, klicke auf Check out und fertig… In dem Moment drängten sich in meinem Kopf Millionen Fragezeichen: Wie kann es sein, dass es hier keine Kontobestätigungen gibt wie bei Moneybookers oder PayPal, keine Abbuchungen kleiner Beträge oder ähnlichen Schwachsinn, sondern man einfach die Daten ausfüllt, auf Bezahlen klickt und fertig…&lt;/p&gt;
&lt;p&gt;Danach schickte ich ihm eine SMS, dass ich bezahlt habe, schnappte mein Gepäck und ging zum Hauptbahnhof, um nach Montana zu fahren. Dort traf ich ein paar „Mitreisende“, wir kauften Tickets und stiegen in den Zug. Wir fuhren los, aber ich konnte nicht noch 3 Stunden warten, um zu erfahren, ob die Zahlung wirklich geklappt hat, und rief Zwetan an, der bestätigte, dass alles in Ordnung ist. Das nahm mir einen Stein vom Herzen und ich atmete auf.&lt;/p&gt;
&lt;p&gt;Aus diesem Tag ergeben sich 4 Dinge:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ePay sind Geizkragen, zusammen mit PayPal und Moneybookers.&lt;/li&gt;
&lt;li&gt;Die Postbank bestärkt mich weiter in der Meinung, dass sie die richtige Wahl ist.&lt;/li&gt;
&lt;li&gt;Google haut wie immer mit seinen unkomplizierten Abläufen alles weg.&lt;/li&gt;
&lt;li&gt;Dreamhost gefällt mir! (nur der Upload dorthin saugt ziemlich heftig, aber dazu später mehr)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;P.S. Verdammt, jetzt schulde ich Zwetan schon 90 Eier :-D&lt;/p&gt;</content:encoded><category>blog</category><category>travel</category><category>random</category></item></channel></rss>