<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Software – Yeri Tiete</title>
    <link>https://yeri.be/category/software/</link>
    <description>Yeri Tiete&#39;s blog</description>
    <language>en</language>
    <copyright>© Yeri Tiete</copyright>
    <lastBuildDate>Sun, 17 May 2026 06:32:54 +0200</lastBuildDate>
    <atom:link href="https://yeri.be/category/software/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Scheduling posts on a static blog</title>
      <link>https://yeri.be/scheduling-posts-on-a-static-blog/</link>
      <pubDate>Sun, 17 May 2026 06:32:54 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/scheduling-posts-on-a-static-blog/</guid><enclosure url="https://static.yeri.be/posts/scheduled-posts/box.mp4" length="0" type="video/mp4" />
      <description>&lt;p&gt;One of the things I missed &lt;a href=&#34;https://yeri.be/from-wordpress-to-hugo/&#34;&gt;moving from WordPress to Hugo&lt;/a&gt;: scheduled posts.&#xA;WP just&amp;hellip; does that. Set a future date, and forget about it.&lt;/p&gt;&#xA;&lt;p&gt;And static site generators don&amp;rsquo;t&amp;hellip; The site only rebuilds when you &lt;code&gt;git push&lt;/code&gt;, and that&amp;rsquo;s it. 😢&lt;/p&gt;&#xA;&lt;p&gt;Why schedule posts, you ask? Because at times I write 3-4 posts in a day, and I don&amp;rsquo;t want to spam. ¯\&lt;em&gt;(ツ)&lt;/em&gt;/¯ I have a rule that there should only be a single published post a day, and if I know I&amp;rsquo;m out of topics (especially for FlatTurtle) I tend to add a week or 2 between posts to spread it out evenly.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><video controls preload="metadata"><source src="https://static.yeri.be/posts/scheduled-posts/box.mp4" type="video/mp4"></video></p><p>One of the things I missed <a href="/from-wordpress-to-hugo/">moving from WordPress to Hugo</a>: scheduled posts.
WP just&hellip; does that. Set a future date, and forget about it.</p>
<p>And static site generators don&rsquo;t&hellip; The site only rebuilds when you <code>git push</code>, and that&rsquo;s it. 😢</p>
<p>Why schedule posts, you ask? Because at times I write 3-4 posts in a day, and I don&rsquo;t want to spam. ¯\<em>(ツ)</em>/¯ I have a rule that there should only be a single published post a day, and if I know I&rsquo;m out of topics (especially for FlatTurtle) I tend to add a week or 2 between posts to spread it out evenly.</p>
<p>So I wrote (aka vibe coded) a little thing about a year or two ago, originally called <em>BlogTurtle Rebuilder</em>, because it was meant for <a href="https://flatturtle.xyz" target="_blank" rel="noopener noreferrer">FlatTurtle</a>&rsquo;s hugo <a href="https://flatturtle.link/blog" target="_blank" rel="noopener noreferrer">blog</a>. I&rsquo;ve since repurposed it for this site.</p>
<p>The flow is quite simple:</p>
<ol>
<li>I push a Markdown post to GitLab with <code>date = &quot;...&quot;</code> set to whenever I want it published.</li>
<li>Gitlab runs CI and deploys to Cloudflare Pages. Hugo will, however, hide posts with a <code>date</code> in the future.</li>
<li>On push, GitLab also pings a webhook (a docker container on a server).</li>
<li>Said container does a <code>git pull</code> and scans every <code>.md</code> for that date field.</li>
<li>Anything in the future gets an in-memory timer for that exact moment. Anything already due gets ignored at Gitlab CI would&rsquo;ve deployed it.</li>
<li>When the timer pops, it triggers the GitLab CI/CD pipeline (through another webhook) that does a new Hugo build + deploy.</li>
<li>As an added bonus, I get an email telling me the post is live, with a <a href="https://culturedcode.com/things/" target="_blank" rel="noopener noreferrer">Things3</a> deep-link to add a follow-up task to share it somewhere. It&rsquo;s one click away.</li>
</ol>
<p>That&rsquo;s the whole thing.</p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>blog</category><category>docker</category><category>python</category><category>hugo</category><category>gitlab</category><category>flatturtle</category>
    </item>
    
    <item>
      <title>The web, ladies and gentlemen</title>
      <link>https://yeri.be/the-web-ladies-and-gentlemen/</link>
      <pubDate>Fri, 15 May 2026 21:33:29 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/the-web-ladies-and-gentlemen/</guid><enclosure url="https://static.yeri.be/posts/the-web-ladies-and-gentlemen/pexels-nikola-tomasic.jpg" length="0" type="image/jpeg" />
      <description>&lt;div class=&#34;embed-responsive embed-youtube&#34;&gt;&#xA;&#x9;&lt;iframe src=&#34;https://www.youtube-nocookie.com/embed/s5_UWZDiayY&#34; title=&#34;YouTube video&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;What a time to be alive! The web is truly, utterly broken.&lt;/p&gt;&#xA;&lt;p&gt;To be entirely clear, I&amp;rsquo;m not doing anything. It just refreshes a million times, &lt;a href=&#34;https://en.wikipedia.org/wiki/Denial-of-service_attack&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;DoS&lt;/a&gt;ing itself in the process, until, after a while, it actually loads &amp;ldquo;perfectly&amp;rdquo; fine.&#xA;All I run is &lt;a href=&#34;https://ublockorigin.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;uBlock&lt;/a&gt; and &lt;a href=&#34;https://nextdns.io/?from=tuts3r6c&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;NextDNS&lt;/a&gt; to get rid of (a portion of) the trackers and ads.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/posts/the-web-ladies-and-gentlemen/pexels-nikola-tomasic.jpg" alt="The web, ladies and gentlemen"></p><div class="embed-responsive embed-youtube">
	<iframe src="https://www.youtube-nocookie.com/embed/s5_UWZDiayY" title="YouTube video" loading="lazy" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

<p>What a time to be alive! The web is truly, utterly broken.</p>
<p>To be entirely clear, I&rsquo;m not doing anything. It just refreshes a million times, <a href="https://en.wikipedia.org/wiki/Denial-of-service_attack" target="_blank" rel="noopener noreferrer">DoS</a>ing itself in the process, until, after a while, it actually loads &ldquo;perfectly&rdquo; fine.
All I run is <a href="https://ublockorigin.com/" target="_blank" rel="noopener noreferrer">uBlock</a> and <a href="https://nextdns.io/?from=tuts3r6c" target="_blank" rel="noopener noreferrer">NextDNS</a> to get rid of (a portion of) the trackers and ads.</p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>firefox</category><category>wtf</category>
    </item>
    
    <item>
      <title>SlimmeLezer&#43;</title>
      <link>https://yeri.be/slimmelezer-/</link>
      <pubDate>Mon, 11 May 2026 14:42:22 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/slimmelezer-/</guid><enclosure url="https://static.yeri.be/posts/slimmelezer/slimmelezer.jpg" length="0" type="image/jpeg" />
      <description>Notes (and a working config) on getting a SlimmeLezer+ talking to Home Assistant alongside a Marstek battery CT on the same P1 port and some context on my setup.</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/posts/slimmelezer/slimmelezer.jpg" alt="SlimmeLezer+"></p><p>This is the foundation post for the rest of my <a href="/tag/homeassistant/">Home Assistant</a> energy series (if I ever get to it). Before I could automate around electricity, I obviously needed a (real-time) view of what&rsquo;s actually flowing in and out.</p>
<h2 id="some-context-first">Some context first</h2>
<ul>
<li>I have solar panels (with a Huawei inverter installed by the previous owner)</li>
<li><a href="https://www.smappee.com/eu/our-story" target="_blank" rel="noopener noreferrer">Smappee EV charger</a> (bad purchase, it&rsquo;s quite dumb and has a <em>terrible</em> UI and Home Assistant can&rsquo;t control it),</li>
<li>and I recently got 2x <a href="https://eu.marstekenergy.com/en-us/products/marstek-venus-e-gen-3" target="_blank" rel="noopener noreferrer">Marstek batteries</a> (great hardware, cheap, and the worst software ever, truly terrible software. Oh and support started ghosting me after I lost my patience around Lunar New Year — they just will not reply to any of my help messages anymore).</li>
<li>I drive a <a href="https://en.wikipedia.org/wiki/Polestar_4" target="_blank" rel="noopener noreferrer">Polestar 4</a> (first edition, 2025)</li>
</ul>
<p>note: the original Huawei inverter was dead when I moved in and likely never worked, don&rsquo;t think the previous owners ever noticed &amp; it got replaced under warranty after a lot of chasing and nagging Huawei directly. <a href="https://www.rensol.be/" target="_blank" rel="noopener noreferrer">Rensol</a> couldn&rsquo;t move it forward and I basically asked to be cc&rsquo;ed in the ticket and got my <a href="https://www.incrementum.biz/" target="_blank" rel="noopener noreferrer">PA</a> to chase Huawei with all het wrath. Great service from both Huawei and Rensol&hellip;</p>
<p>So that&rsquo;s that&hellip; ;)</p>
<h2 id="slimmelezer">SlimmeLezer</h2>
<p>&hellip; And more context.</p>
<p>I use a <a href="https://www.zuidwijk.com/product/slimmelezer-plus/" target="_blank" rel="noopener noreferrer">SlimmeLezer+</a> with my P1 port (<a href="https://www.fluvius.be/nl/meters-en-meterstanden/digitale-meter/maak-je-meter-slim" target="_blank" rel="noopener noreferrer">Fluvius smart meter</a>). As ESPHome has significantly changed since I got mine and it wouldn&rsquo;t compile on a recent release, here&rsquo;s my working config. ¯\<em>(ツ)</em>/¯</p>
<p>The SlimmeLezer used to be entirely powered by the P1 port but <a href="https://en.wikipedia.org/wiki/Brownout_%28electricity%29" target="_blank" rel="noopener noreferrer">brownouts</a> did happen; my initial config tried to limit memory and WiFi usage in an attempt to prevent these brownouts)&hellip; As this is no longer much of an issue (see below), I&rsquo;ve stopped optimising that. But YMMV depending on your setup.</p>
<p>As the Marstek CT also uses the P1 port and I needed a splitter: I started off with a passive splitter but it was quite clear from the get-go that there were tons of issues (both meters were powered over P1). It&rsquo;s been a while but I think roughly half the messages didn&rsquo;t go through to SlimmeLezer (IIRC the message would just be forwarded across the two ports but would be too weak to be consistently read or something). I then got an <a href="https://www.homewizard.com/shop/active-p1-splitter/" target="_blank" rel="noopener noreferrer">active P1 splitter</a>. As I only had one power plug available, I&rsquo;d power either the splitter or the SlimmeLezer over a USB-C PSU&hellip; But what really fixed it and brought stability was doubling the power sockets: the splitter is powered over P1 power, both the SlimmeLezer and the Marstek CT have their dedicated power in via USB-C.</p>
<p>Honestly, I had a lot of issues with the Marstek CT, to the point they actually shipped me a replacement unit. In hindsight I don&rsquo;t think it was broken, more a mix of crap software + P1 power issues + delayed/laggy Marstek dashboards + &hellip;</p>
<h2 id="the-setup-end-to-end">The setup, end to end</h2>
<pre tabindex="0"><code>                ┌─────────────┐
                │ Solar panels│
                └──────┬──────┘
                       │ DC
                ┌──────┴──────┐
                │   Huawei    │── fusion_solar (cloud)
                │   inverter  │
                └──────┬──────┘
                       │ AC
        ───────────────┴───────────────  ← house AC bus
        │              │                │
  ┌─────┴──────┐ ┌─────┴──────┐  ┌──────┴────────┐
  │ Marstek    │ │ Fluvius P1 │  │ Smappee EV    │
  │ Venus E ×2 │ │ smart meter│  │ Wall + CTs    │
  │ (1× CT003) │ └─────┬──────┘  └──────┬────────┘
  └─────┬──────┘       │ RJ12, DSMR     │ (cloud; read-only)
        │ Modbus       │                │ 
        │ TCP   ┌──────┴──────┐         │
        │       │SlimmeLezer+ │         │
        │       └──────┬──────┘         │
        ▼              ▼                ▼
        ┌────────────────────────────────┐
        │       Home Assistant           │
        └────────────────────────────────┘
</code></pre><p>SlimmeLezer is fire-and-forget (at least as long as you don&rsquo;t update ESPHome). Huawei is a cloud-poll. Marstek is local Modbus (<em>but Modbus/battery BMS or firmware does crash and gets stuck. Restarting the integration sometimes fixes it</em>). Smappee, cloud-only, can only read data (as opposed to telling it when to, for example, start/stop charging my EV).</p>
<h3 id="sensors">Sensors</h3>
<p>What you get out of it, sensor-wise:</p>
<pre tabindex="0"><code>sensor.slimmelezer_power_consumed — instantaneous import (kW)
sensor.slimmelezer_power_produced — instantaneous export (kW)
Per-phase power in / out
Per-phase voltage and current
Cumulative energy import + export per tariff
Gas consumption (if you have a gas meter on the same connector)
</code></pre><p>That&rsquo;s all I need to know whether I&rsquo;m paying or selling at any given moment.</p>
<h2 id="the-slimmelezer-yaml">The SlimmeLezer YAML</h2>
<p>Stock Zuidwijk firmware with three small tweaks and a few changes to get it to compile on the latest ESPHome at the time of writing):</p>
<ol>
<li><code>output_power: 14dB</code> on the WiFi to fit inside the P1 250mA budget without rebooting (before getting an active splitter and dedicated power).</li>
<li><code>rx_buffer_size: 1200</code> on UART (down from default 1700). Belgian P1 telegrams are well under 1200 bytes; saves ~500 bytes of heap which the ESP8266 will thank you for.</li>
<li>A &ldquo;Last Restart&rdquo; and &ldquo;Last Time Sync&rdquo; template sensor so I can spot if the device has flatlined.</li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">substitutions</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">device_name</span><span class="p">:</span><span class="w"> </span><span class="l">slimmelezer</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">timezone</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Europe/Brussels&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">domain</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;.iot.internal&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">wifi_fast_connect</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;false&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">esphome</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">${device_name}</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name_add_mac_suffix</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">project</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">zuidwijk.slimmelezer</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;2.0&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">on_boot</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">then</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">if</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">condition</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span><span class="nt">lambda</span><span class="p">:</span><span class="w"> </span><span class="l">return id(has_key);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">then</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span>- <span class="nt">lambda</span><span class="p">:</span><span class="w"> </span><span class="p">|-</span><span class="sd">
</span></span></span><span class="line"><span class="cl"><span class="sd">                std::string key(id(stored_decryption_key), 32);
</span></span></span><span class="line"><span class="cl"><span class="sd">                id(dsmr_instance).set_decryption_key(key.c_str());</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">else</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span>- <span class="nt">logger.log</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                </span><span class="nt">level</span><span class="p">:</span><span class="w"> </span><span class="l">INFO</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                </span><span class="nt">format</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Not using decryption key. If you need to set a key use Home Assistant service &#39;ESPHome: ${device_name}_set_dsmr_key&#39;&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">esp8266</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">restore_from_flash</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">board</span><span class="p">:</span><span class="w"> </span><span class="l">d1_mini</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">mdns</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">disabled</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">wifi</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">ssid</span><span class="p">:</span><span class="w"> </span>!<span class="l">secret wifi_ssid</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">password</span><span class="p">:</span><span class="w"> </span>!<span class="l">secret wifi_password</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">fast_connect</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;${wifi_fast_connect}&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">domain</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;${domain}&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="c"># Powersaving for brownout due to 250mA restriction P1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">output_power</span><span class="p">:</span><span class="w"> </span><span class="l">14dB</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">logger</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">level</span><span class="p">:</span><span class="w"> </span><span class="l">INFO</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">baud_rate</span><span class="p">:</span><span class="w"> </span><span class="m">0</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">api</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">reboot_timeout</span><span class="p">:</span><span class="w"> </span><span class="l">15min</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">encryption</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">key</span><span class="p">:</span><span class="w"> </span>!<span class="l">secret encryption_key_slimmelezer</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">services</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">service</span><span class="p">:</span><span class="w"> </span><span class="l">set_dsmr_key</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">variables</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">private_key</span><span class="p">:</span><span class="w"> </span><span class="l">string</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">then</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">logger.log</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">format</span><span class="p">:</span><span class="w"> </span><span class="l">Setting private key %s. Set to empty string to disable</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">args</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="l">std::string(private_key).c_str()]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">globals.set</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">has_key</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">value</span><span class="p">:</span><span class="w"> </span>!<span class="l">lambda &#34;return private_key.length() == 32;&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">lambda</span><span class="p">:</span><span class="w"> </span><span class="p">|-</span><span class="sd">
</span></span></span><span class="line"><span class="cl"><span class="sd">          std::string pk_str(private_key);
</span></span></span><span class="line"><span class="cl"><span class="sd">          if (pk_str.length() == 32)
</span></span></span><span class="line"><span class="cl"><span class="sd">            pk_str.copy(id(stored_decryption_key), 32);
</span></span></span><span class="line"><span class="cl"><span class="sd">          id(dsmr_instance).set_decryption_key(pk_str.c_str());</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">ota</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">esphome</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">password</span><span class="p">:</span><span class="w"> </span>!<span class="l">secret ota_password</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">on_error</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">then</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">logger.log</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">format</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;OTA update error %s&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">args</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;x&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">dashboard_import</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">package_import_url</span><span class="p">:</span><span class="w"> </span><span class="l">github://zuidwijk/dsmr/slimmelezer.yaml@main</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">import_full_config</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">time</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">homeassistant</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">homeassistant_time</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">timezone</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;${timezone}&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">on_time_sync</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">then</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span>- <span class="nt">text_sensor.template.publish</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">last_time_sync</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span>!<span class="l">lambda &#39;return id(homeassistant_time).now().strftime(&#34;%Y-%m-%d %H:%M:%S&#34;);&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span>- <span class="nt">if</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span><span class="nt">condition</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span><span class="nt">lambda</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;return id(device_last_restart).state == &#34;&#34;;&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span><span class="nt">then</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span>- <span class="nt">text_sensor.template.publish</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">device_last_restart</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span>!<span class="l">lambda &#39;return id(homeassistant_time).now().strftime(&#34;%Y-%m-%d %H:%M:%S&#34;);&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">globals</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">has_key</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">bool</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">restore_value</span><span class="p">:</span><span class="w"> </span><span class="kc">yes</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">initial_value</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;false&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">stored_decryption_key</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">char[32]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">restore_value</span><span class="p">:</span><span class="w"> </span><span class="kc">yes</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">uart</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">baud_rate</span><span class="p">:</span><span class="w"> </span><span class="m">115200</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">rx_pin</span><span class="p">:</span><span class="w"> </span><span class="l">D7</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="c"># Drop DSMR/UART buffers from 1700 → 1200 (Belgian P1 is fine at 1200; saves ~500–600 bytes).</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">rx_buffer_size</span><span class="p">:</span><span class="w"> </span><span class="m">1200</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">dsmr</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">dsmr_instance</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">max_telegram_length</span><span class="p">:</span><span class="w"> </span><span class="m">1200</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">sensor</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">dsmr</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">energy_delivered_lux</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Energy Consumed Luxembourg&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">energy_delivered_tariff1</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Energy Consumed Tariff 1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">energy_delivered_tariff2</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Energy Consumed Tariff 2&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">energy_returned_lux</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Energy Produced Luxembourg&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">energy_returned_tariff1</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Energy Produced Tariff 1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">energy_returned_tariff2</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Energy Produced Tariff 2&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">power_delivered</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Power Consumed&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">power_returned</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Power Produced&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">electricity_failures</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Electricity Failures&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l">mdi:alert</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">electricity_long_failures</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Long Electricity Failures&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l">mdi:alert</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">voltage_l1</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Voltage Phase 1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">voltage_l2</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Voltage Phase 2&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">voltage_l3</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Voltage Phase 3&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">current_l1</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Current Phase 1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">current_l2</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Current Phase 2&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">current_l3</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Current Phase 3&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">power_delivered_l1</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Power Consumed Phase 1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">power_delivered_l2</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Power Consumed Phase 2&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">power_delivered_l3</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Power Consumed Phase 3&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">power_returned_l1</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Power Produced Phase 1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">power_returned_l2</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Power Produced Phase 2&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">power_returned_l3</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Power Produced Phase 3&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">gas_delivered</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Gas Consumed&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">gas_delivered_be</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Gas Consumed Belgium&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">uptime</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;SlimmeLezer Uptime&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">wifi_signal</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;SlimmeLezer Wi-Fi Signal&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">update_interval</span><span class="p">:</span><span class="w"> </span><span class="l">60s</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">template</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Free Heap&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">lambda</span><span class="p">:</span><span class="w"> </span><span class="p">|-</span><span class="sd">
</span></span></span><span class="line"><span class="cl"><span class="sd">      return (float)system_get_free_heap_size();</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">unit_of_measurement</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;bytes&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">accuracy_decimals</span><span class="p">:</span><span class="w"> </span><span class="m">0</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity_category</span><span class="p">:</span><span class="w"> </span><span class="l">diagnostic</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;mdi:memory&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">text_sensor</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">dsmr</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">identification</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;DSMR Identification&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">p1_version</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;DSMR Version&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">p1_version_be</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;DSMR Version Belgium&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">wifi_info</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">ip_address</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;SlimmeLezer IP Address&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">ssid</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;SlimmeLezer Wi-Fi SSID&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">bssid</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;SlimmeLezer Wi-Fi BSSID&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">version</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;ESPHome Version&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">hide_timestamp</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">template</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;Last Restart&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">device_last_restart</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l">mdi:timeline-clock</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity_category</span><span class="p">:</span><span class="w"> </span><span class="l">diagnostic</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l">template</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Last Time Sync&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">last_time_sync</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l">mdi:clock</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">entity_category</span><span class="p">:</span><span class="w"> </span><span class="l">diagnostic</span><span class="w">
</span></span></span></code></pre></div><p>Drop that into ESPHome, set your WiFi/encryption secrets, flash, and the device will appear in HA&rsquo;s <a href="https://www.home-assistant.io/integrations/esphome/" target="_blank" rel="noopener noreferrer">ESPHome integration</a> with all the sensors above.</p>
<p><a href="https://static.yeri.be/posts/slimmelezer/graphs.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/posts/slimmelezer/graphs.png" alt="graphs"></a></p>
<p>I&rsquo;m very happy with the SlimmeLezer+ and got my parents one too.</p>
]]></content:encoded>
      <category>hardware</category><category>software</category>
      <category>homeassistant</category>
    </item>
    
    <item>
      <title>Home Assistant: WP6003 Air Box</title>
      <link>https://yeri.be/home-assistant-wp6003-air-box/</link>
      <pubDate>Thu, 20 Jun 2024 13:04:47 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/home-assistant-wp6003-air-box/</guid><enclosure url="https://static.yeri.be/2024/06/pollution.webp" length="0" type="image/webp" />
      <description>&lt;p&gt;I recently got a WP6003 Air Box (&lt;a href=&#34;https://www.aliexpress.com/item/1005001816855462.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Aliexpress&lt;/a&gt;). The official product page seems to be offline but &lt;a href=&#34;http://web.archive.org/web/20230102015437/http://www.vson.com.cn/English/Product/3614894931.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;can be accessed through Archive.org&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It&#39;s quite straightforward to integrate in a Bluetooth Proxy and Home Assistant &lt;a href=&#34;https://omarghader.github.io/esp32-airquality-box-wp6003-homeassistant/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;thanks to Omar&#39;s work&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The major problem I have with it, is that the Bluetooth (4.0) range is terrible. Neither my Mac Mini nor my Bluetooth Proxy could connect with it if I moved it from the office to the kitchen (had it on top of the fridge, so some metal there) that&#39;s roughly 10ish meters away.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2024/06/pollution.webp" alt="Home Assistant: WP6003 Air Box"></p><p>I recently got a WP6003 Air Box (<a href="https://www.aliexpress.com/item/1005001816855462.html" target="_blank" rel="noreferrer noopener">Aliexpress</a>). The official product page seems to be offline but <a href="http://web.archive.org/web/20230102015437/http://www.vson.com.cn/English/Product/3614894931.html" target="_blank" rel="noreferrer noopener">can be accessed through Archive.org</a>.</p>
<p>It's quite straightforward to integrate in a Bluetooth Proxy and Home Assistant <a href="https://omarghader.github.io/esp32-airquality-box-wp6003-homeassistant/" target="_blank" rel="noreferrer noopener">thanks to Omar's work</a>.</p>
<p>The major problem I have with it, is that the Bluetooth (4.0) range is terrible. Neither my Mac Mini nor my Bluetooth Proxy could connect with it if I moved it from the office to the kitchen (had it on top of the fridge, so some metal there) that's roughly 10ish meters away.</p>
<figure class="wp-block-image size-full"><a href="https://static.yeri.be/2024/06/wp6003-sensors.png"><img src="https://static.yeri.be/2024/06/wp6003-sensors.png" alt="" class="wp-image-74646"/></a></figure>
<p>Sensor wise, I've only had it working for a few days, and so far, it doesn't seem to be very accurate. The temperature is 1-2° below my other sensors... But hey, it's quite cheap and the previous tool I linked has a way to calibrate it (but I haven't tried that yet).</p>
<p>In the screenshot, Airquality level converts bytes into meaningful sensor readings:</p>
<ul>
<li>Temperature: Extracted from bytes 6 and 7, then divided by 10 to get the temperature in degrees </li>
<li>TVOC (Total Volatile Organic Compounds): Extracted from bytes 10 and 11, then divided by 1000 to get the concentration in parts per </li>
<li>HCHO (Formaldehyde): Extracted from bytes 12 and 13, similarly processed to TVOC.</li>
<li>CO2 (Carbon Dioxide): Calculated from bytes 16 and 17, adjusted by subtracting 150 to correct the baseline.</li>
</ul>
<p>Each of these values is then published to different sensor IDs within <a href="https://esphome.io/" target="_blank" rel="noreferrer noopener">ESPHome</a>, allowing Home Assistant to display and use this data. </p>
<p>The function returns the size of the data packet as a float, which can be used for debugging or validation. In my case (and assume yours as well) it's 18. I've marked it as <code>internal: true</code> in my config, as it's not useful to show once it's  working. </p>
<p>My config for ESPhome <a href="https://gitlab.com/yeri/homeassistant/-/blob/main/esphome/ble_proxy/bluetooth-proxy.yaml?ref_type=heads" target="_blank" rel="noreferrer noopener">can be found here</a>.</p>
<p>You can <a href="https://saso5.github.io/WP6003-air-box/" target="_blank" rel="noreferrer noopener">use this tool</a> to read out the sensor (and find the MAC address) from Chrome.</p>
<p>Guess it's a bit hard to show (and for some reason Firefox refused to take a screenshot of the entire page) but this is my current view in Home Assistant.</p>
<figure class="wp-block-gallery has-nested-images columns-default is-cropped">
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2024/06/Screenshot-2024-06-11-at-23-35-24-Settings-–-Home-Assistant.png"><img src="https://static.yeri.be/2024/06/Screenshot-2024-06-11-at-23-35-24-Settings-–-Home-Assistant-1024x732.png" alt="" class="wp-image-74649"/></a></figure>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2024/06/Screenshot-2024-06-11-at-23-35-47-Settings-–-Home-Assistant.png"><img src="https://static.yeri.be/2024/06/Screenshot-2024-06-11-at-23-35-47-Settings-–-Home-Assistant-1024x721.png" alt="" class="wp-image-74650"/></a></figure>
</figure>
<p>Note that I have since added 3 more <a href="https://github.com/atc1441/ATC_MiThermometer/" target="_blank" rel="noreferrer noopener">ATC Xiaomi thermometers</a> and hidden Airquality levels. </p>
]]></content:encoded>
      <category>hardware</category><category>software</category>
      <category>homeassistant</category>
    </item>
    
    <item>
      <title>Home Assistant: Zigbee routers</title>
      <link>https://yeri.be/home-assistant-zigbee-routers/</link>
      <pubDate>Thu, 13 Jun 2024 12:40:39 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/home-assistant-zigbee-routers/</guid><enclosure url="https://static.yeri.be/2024/05/zigbee-map.png" length="0" type="image/png" />
      <description>&lt;p&gt;In my Home Assistant quest and simplifying (not sure if that&#39;s actually happening) and getting more control (aka less reliant on the cloud and 3rd parties) I&#39;ve been playing with Zigbee.&lt;/p&gt;&#xA;&lt;p&gt;Zigbee is quite cool because it&#39;s a mesh network. As I used it before with my &lt;a href=&#34;https://yeri.be/tag/homeassistant/&#34;&gt;Philips Hue&lt;/a&gt; bulbs, I was eager to expand and play with Zigbee.&lt;/p&gt;&#xA;&lt;p&gt;First thing first. Not all routers are equal. I&#39;ve got &lt;a href=&#34;https://www.aliexpress.com/item/1005006812746892.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;these two smart power plugs&lt;/a&gt; as an example (Grey and Blue colour, v2 with HomeKit support) and they act weirdly. They don&#39;t seem to route sensors properly, and randomly turn off whatever is plugged in.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2024/05/zigbee-map.png" alt="Home Assistant: Zigbee routers"></p><p>In my Home Assistant quest and simplifying (not sure if that's actually happening) and getting more control (aka less reliant on the cloud and 3rd parties) I've been playing with Zigbee.</p>
<p>Zigbee is quite cool because it's a mesh network. As I used it before with my <a href="https://yeri.be/tag/homeassistant/">Philips Hue</a> bulbs, I was eager to expand and play with Zigbee.</p>
<p>First thing first. Not all routers are equal. I've got <a href="https://www.aliexpress.com/item/1005006812746892.html" target="_blank" rel="noreferrer noopener">these two smart power plugs</a> as an example (Grey and Blue colour, v2 with HomeKit support) and they act weirdly. They don't seem to route sensors properly, and randomly turn off whatever is plugged in.</p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2024/05/powerplugs.png"><img src="https://static.yeri.be/2024/05/powerplugs-1024x357.png" alt="" class="wp-image-74640"/></a></figure>
<p>The one that seems to work reliably well is this <a href="https://www.aliexpress.com/item/1005006437054440.html" target="_blank" rel="noreferrer noopener">orange Zigbee plug</a>. </p>
<p>Compared to my bulbs (more on that <a href="https://yeri.be/home-assistant-getting-rid-of-philips-hue-bridge/">here</a>) the sensors do detect them the two aforementioned power plugs, and do connect, but generally little to no data flows. I'm not entirely sure what the issue is (bad antenna, bad routing software) but the consensus on the internet seems to be: add more routers, don't trust some routers (Ikea and Hue seem decent), and not all endpoints are very smart and pick the best router (so may need to repair or force it to join a specific router). Unlike WiFi, in this case it seems that more is better. </p>
<p>When setting up the network, it's also recommended to first set up and pair the routers and then the endpoints (battery-powered sensors).</p>
<p>And the network takes a while to stabilise (and all routes to be learned). Some people even suggest waiting one or two days for the dust to settle.  </p>
<pre class="wp-block-verse">Moving routers screws up a lot, too. I've had sensors stop working (and refusing to pair again) after moving some routers and turning some off -- routers that weren't used by said sensors. So really odd stuff.</pre>
<p>As always, with Aliexpress, it's very much unclear what the brand/model is, but according to <a href="https://www.zigbee2mqtt.io/" target="_blank" rel="noreferrer noopener">Z2M</a>, all three are <a href="https://www.zigbee2mqtt.io/devices/TS011F_plug_1.html#tuya-ts011f_plug_1" target="_blank" rel="noreferrer noopener">TS011F</a>, but two of the three are definitely different (has Apple Homekit support and the plugs are bigger). </p>
<p>The energy (kWh) and Power (W) reporting works well, though, on all three models.</p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2024/05/power.png"><img src="https://static.yeri.be/2024/05/power-1024x879.png" alt="" class="wp-image-74623"/></a></figure>
<p>Can see when a charger is plugged in, and charging a MacBook Air.</p>
<p>I'm buying EU plugs because I'll be relocating back to Europe in the next 6 months. So I'm slowly getting rid of my UK smart plugs and replacing them with EU plugs. </p>
<pre class="wp-block-verse">Note that these plugs are not approved for (official) sale in Belgium though: child safety is not up to spec and the grounding is not approved (i.e. needs to be a pin). </pre>
]]></content:encoded>
      <category>hardware</category><category>networking</category><category>software</category>
      <category>homeassistant</category>
    </item>
    
    <item>
      <title>Home Assistant: Getting rid of Philips Hue bridge</title>
      <link>https://yeri.be/home-assistant-getting-rid-of-philips-hue-bridge/</link>
      <pubDate>Wed, 12 Jun 2024 12:41:52 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/home-assistant-getting-rid-of-philips-hue-bridge/</guid><enclosure url="https://static.yeri.be/2024/06/bulbs.webp" length="0" type="image/webp" />
      <description>&lt;p&gt;In my Home Assistant quest and simplifying (not sure if that&#39;s actually happening) and getting more control (aka less reliant on the cloud and 3rd parties) I&#39;ve been playing with Zigbee.&lt;/p&gt;&#xA;&lt;p&gt;Zigbee is quite cool because it&#39;s a mesh network. As I used it before with my &lt;a href=&#34;https://yeri.be/ikea-tradfri-with-philips-hue/&#34;&gt;Philips Hue&lt;/a&gt; bulbs, I was eager to expand and play with Zigbee.&lt;/p&gt;&#xA;&lt;p&gt;I have several bulbs, including: &lt;a href=&#34;https://www.zigbee2mqtt.io/devices/7199960PH.html#philips-7199960ph&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Hue Iris, Hue Go&lt;/a&gt;, &lt;a href=&#34;https://www.zigbee2mqtt.io/devices/8718696449691.html#philips-8718696449691&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;some random bulb&lt;/a&gt;, &lt;a href=&#34;https://www.zigbee2mqtt.io/devices/929001953301.html#philips-929001953301&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;a reading spot&lt;/a&gt;, and &lt;a href=&#34;https://www.zigbee2mqtt.io/devices/915005733701.html#philips-915005733701&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Hue Play&lt;/a&gt; (3x).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2024/06/bulbs.webp" alt="Home Assistant: Getting rid of Philips Hue bridge"></p><p>In my Home Assistant quest and simplifying (not sure if that's actually happening) and getting more control (aka less reliant on the cloud and 3rd parties) I've been playing with Zigbee.</p>
<p>Zigbee is quite cool because it's a mesh network. As I used it before with my <a href="https://yeri.be/ikea-tradfri-with-philips-hue/">Philips Hue</a> bulbs, I was eager to expand and play with Zigbee.</p>
<p>I have several bulbs, including: <a href="https://www.zigbee2mqtt.io/devices/7199960PH.html#philips-7199960ph" target="_blank" rel="noreferrer noopener">Hue Iris, Hue Go</a>, <a href="https://www.zigbee2mqtt.io/devices/8718696449691.html#philips-8718696449691" target="_blank" rel="noreferrer noopener">some random bulb</a>, <a href="https://www.zigbee2mqtt.io/devices/929001953301.html#philips-929001953301" target="_blank" rel="noreferrer noopener">a reading spot</a>, and <a href="https://www.zigbee2mqtt.io/devices/915005733701.html#philips-915005733701" target="_blank" rel="noreferrer noopener">Hue Play</a> (3x).</p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2024/05/hue.png"><img src="https://static.yeri.be/2024/05/hue-1024x494.png" alt="" class="wp-image-74625"/></a></figure>
<p>My Home Assistant setup uses the <a href="https://www.home-assistant.io/skyconnect/" target="_blank" rel="noreferrer noopener">Skyconnect</a>. I've updated the firmware (on a Mac) to use <a href="https://github.com/Koenkk/zigbee2mqtt/discussions/21462" target="_blank" rel="noreferrer noopener">Ember firmware as ezsp</a> will be deprecated soon(™).  </p>
<pre class="wp-block-verse">At the time of writing you can't update the firmware directly from HA just yet, you need another device.</pre>
<p>As I had two Zigbee networks (one for Hue, and one for my sensors and Ikea bulb) it made sense to merge them (and have one less connected bridge): it would reduce interference, and the bulbs all act as a router, so that would greatly improve my network coverage and stability.</p>
<p>Generally speaking, it went quite smoothly: delete the devices in the Hue app (it factory resets them and puts them in pairing mode) and then pair them in <a href="https://www.zigbee2mqtt.io/" target="_blank" rel="noreferrer noopener">Zigbee2Mqtt</a> (I use that over <a href="https://www.home-assistant.io/integrations/zha/" target="_blank" rel="noreferrer noopener">ZHA</a>). </p>
<p>However, my main issue was that my Zigbee bulbs were unreliable: it sometimes worked, but often it lagged or timed out. Especially when controlling multiple bulbs at once (such as a big room such as the living room) or sending multiple commands in sequence (on/off/on/off). </p>
<pre class="wp-block-verse">In hindsight, my sensors were unreliable as well: there was data missing, and it didn't properly broadcast/update every 5 minutes. I first thought it was just because they were cheap Chinese (<a href="https://www.tuya.com/" target="_blank" rel="noreferrer noopener">TuYa</a>) sensors using battery-power. If the temp or humidity didn't change enough, it wouldn't broadcast.</pre>
<p>I often saw errors such as these in Z2M:</p>
<pre class="wp-block-code"><code>2024-05-26 22:29:02Publish 'set' 'state' to 'Hue Play Right' failed: 'Error: ZCL command 0x0017880104d89bc4/11 genOnOff.on({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed ({"target":29608,"apsFrame":{"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":11,"options":4416,"groupId":0,"sequence":110},"zclSequence":244,"commandIdentifier":11} <strong>timed out after</strong> <strong>10000ms</strong>)'</code></pre>
<p>But the annoying thing (in debugging, and thinking the network "needs to settle") was that it often worked just fine, and then randomly started breaking down/time outing when I thought it was finally solved. </p>
<p>I almost gave up and went back to a Hue bridge, when I asked for some advice on <a href="https://discord.com/channels/556563650429583360/1052136886912688199" target="_blank" rel="noreferrer noopener">Discord</a>. The reason was the channel... </p>
<p>First off: check the Zigbee channel of your Hue. It's likely 25. Z2M uses channel 11 by default.</p>
<p>There are 4 channels that are getting the least WiFi interference. These are called <a href="https://www.zigbee2mqtt.io/guide/configuration/zigbee-network.html#network-config" target="_blank" rel="noreferrer noopener">ZLL channels</a> (whatever that stands for): 11, 15, 20, 25. However, it seems that 11 is <a href="https://www.reddit.com/r/homeassistant/comments/y1cm9q/i_changed_my_z2m_network_to_channel_25_and/" target="_blank" rel="noreferrer noopener">quite terrible</a>, and I would not recommend using it. </p>
<p>My Z2M sat on Channel 11 (which is Channel 1 for WiFi). I live in <a href="https://yeri.be/tag/singapore/">Singapore</a>, in an apartment building, with a shit-ton of WiFi, hence the massive interference and lag on Zigbee. </p>
<pre class="wp-block-verse">Also, 2.4Ghz WiFi is generally 20Mhz channel width, whereas Zigbee is 2Mhz, so one WiFi channel overlaps many Zigbee channels. </pre>
<p>You can modify the channel (via the config file in <code>/homeassistant/zigbee2mqtt/configuration.yaml</code>) by adding the following and restarting the Z2M container:</p>
<pre class="wp-block-code"><code>advanced:
  &#91;...] # there should already be a ton of things
  channel: 25</code></pre>
<p>The problem with changing the channel, is that it requires repairing (some of) the Zigbee devices. And it's a total mess to repair Hue bulbs once they are no longer on a Hue bridge.</p>
<pre class="wp-block-verse">There's no need to remove the devices from Z2M as that will wipe their configs (I believe). It's possible that removing the devices from Z2M will put them in pairing mode again (for Hue bulbs, see below) but I couldn't get a confirmation.</pre>
<p>Ikea has the 6x power off/on sequence that resets them, but Hue dropped support for something similar in some firmware upgrade (why?!?!). </p>
<p><a href="https://www.zigbee2mqtt.io/guide/usage/touchlink.html" target="_blank" rel="noreferrer noopener">TouchLink</a> is another option, but that didn't work for me at all. </p>
<p>Some Hue bulbs can be reset by long pressing (30-60seconds) the power button (for example the Hue Go), but what worked best for me is pairing them again on the Hue bridge using the serial (force pair), deleting them again, and pairing on Z2M. </p>
<p>However, I didn't have the serial of two bulbs: one Hue Play has the label missing, and the Hue Iris didn't have any label at all. I thought I would be forced to go and purchase a Hue dimmer/remote control (that comes with TouchLink and allows resetting the bulbs)... </p>
<p>However, suddenly, after an hour or two of messing around, the Hue bulbs that weren't repaired just started working again. </p>
<p>So it seems that if they are disconnected from their bridge for a while, they start changing channels until they find the bridge again. I guess there's a chance, with enough patience, that I didn't have to repair my Hue bulbs (not sure about Ikea, and I would definitely not trust my <a href="https://yeri.be/home-assistant-zigbee-routers/">Chinese Power plugs</a> and sensors to come back online). </p>
<p>The sensors are quite easily repaired (long press the pairing button or pinhole and done -- don't forget to set Z2M in <code>Permit join</code>)</p>
<p>Other stuff you can try if the range or network sucks can be found <a href="https://www.zigbee2mqtt.io/advanced/zigbee/02_improve_network_range_and_stability.html" target="_blank" rel="noreferrer noopener">here</a>. </p>
<p>However, if it kinda works, you better not mess with it... :) </p>
]]></content:encoded>
      <category>hardware</category><category>networking</category><category>software</category>
      <category>homeassistant</category>
    </item>
    
    <item>
      <title>Home Assistant: Assign entities to areas</title>
      <link>https://yeri.be/home-assistant-assign-entities-to-areas/</link>
      <pubDate>Thu, 06 Jun 2024 11:46:53 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/home-assistant-assign-entities-to-areas/</guid><enclosure url="https://static.yeri.be/2024/05/ble.webp" length="0" type="image/webp" />
      <description>&lt;p&gt;I&#39;ve finally started working with Home Assistant and while the learning curve has been steep, it&#39;s been fun.&lt;/p&gt;&#xA;&lt;p&gt;I&#39;m going to post some random notes (mostly for myself) on things I discovered, and I need to keep in mind.&lt;/p&gt;&#xA;&lt;p&gt;For example, I have set up an &lt;a href=&#34;https://www.aliexpress.com/item/1005005967641936.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;ESP32-c3&lt;/a&gt; Bluetooth Proxy for a &lt;a href=&#34;https://www.aliexpress.com/item/1005006414566166.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Mi ble thermometer&lt;/a&gt;. &lt;/p&gt;&#xA;&lt;p&gt;I&#39;ve assigned the ESP device to an area: IT cabinet. However, the BLE sensors are scattered across the house (in different areas). Took me a while to figure it out, but you can assign entities to specific areas.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2024/05/ble.webp" alt="Home Assistant: Assign entities to areas"></p><p>I've finally started working with Home Assistant and while the learning curve has been steep, it's been fun.</p>
<p>I'm going to post some random notes (mostly for myself) on things I discovered, and I need to keep in mind.</p>
<p>For example, I have set up an <a href="https://www.aliexpress.com/item/1005005967641936.html" target="_blank" rel="noreferrer noopener">ESP32-c3</a> Bluetooth Proxy for a <a href="https://www.aliexpress.com/item/1005006414566166.html" target="_blank" rel="noreferrer noopener">Mi ble thermometer</a>. </p>
<p>I've assigned the ESP device to an area: IT cabinet. However, the BLE sensors are scattered across the house (in different areas). Took me a while to figure it out, but you can assign entities to specific areas.</p>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2024/05/entities.png"><img src="https://static.yeri.be/2024/05/entities-1024x668.png" alt="" class="wp-image-74605"/></a></figure>
<p>Head to <code>Entities</code> and select the entity config, and at the bottom, unselect <code>use device area</code>, and select the correct area.</p>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2024/05/entity-custom-area.png"><img src="https://static.yeri.be/2024/05/entity-custom-area-742x1024.png" alt="" class="wp-image-74606"/></a></figure>
<p>Tadaaa, you can now assign the sensors to the correct area, and they'll show up in the right dashboards/cards.</p>
<p>The proxy config <a href="https://yeri.be/home-assistant-esp32-c3-bluetooth-proxy/" data-type="link" data-id="https://yeri.be/home-assistant-esp32-c3-bluetooth-proxy/">can be found here</a>.</p>
]]></content:encoded>
      <category>hardware</category><category>software</category>
      <category>homeassistant</category>
    </item>
    
    <item>
      <title>Home Assistant: ESP32-C3 Bluetooth proxy</title>
      <link>https://yeri.be/home-assistant-esp32-c3-bluetooth-proxy/</link>
      <pubDate>Fri, 31 May 2024 11:33:03 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/home-assistant-esp32-c3-bluetooth-proxy/</guid><enclosure url="https://static.yeri.be/2024/05/sensors.webp" length="0" type="image/webp" />
      <description>&lt;p&gt;I have set up an &lt;a href=&#34;https://www.aliexpress.com/item/1005005967641936.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;ESP32-c3&lt;/a&gt; Bluetooth Proxy for a &lt;a href=&#34;https://www.aliexpress.com/item/1005006414566166.html&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Mi ble thermometer&lt;/a&gt; (and I have a few other BLE sensors that I haven&#39;t managed to set up yet).&lt;/p&gt;&#xA;&lt;p&gt;The proxy config &lt;a href=&#34;https://gitlab.com/yeri/homeassistant/-/blob/main/esphome/ble_proxy/bluetooth-proxy.yaml?ref_type=heads&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;can be found here&lt;/a&gt;. &lt;/p&gt;&#xA;&lt;p&gt;Be sure to modify the variables to match whatever you want to do. I&#39;m using static IPs because auto discovery is unreliable (&lt;code&gt;hostname.iot.internal&lt;/code&gt;). &lt;/p&gt;&#xA;&lt;p&gt;You&#39;ll also need to add the &lt;code&gt;!secret&lt;/code&gt; variables into the &lt;code&gt;secrets.yaml&lt;/code&gt; file.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2024/05/sensors.webp" alt="Home Assistant: ESP32-C3 Bluetooth proxy"></p><p>I have set up an <a href="https://www.aliexpress.com/item/1005005967641936.html" target="_blank" rel="noreferrer noopener">ESP32-c3</a> Bluetooth Proxy for a <a href="https://www.aliexpress.com/item/1005006414566166.html" target="_blank" rel="noreferrer noopener">Mi ble thermometer</a> (and I have a few other BLE sensors that I haven't managed to set up yet).</p>
<p>The proxy config <a href="https://gitlab.com/yeri/homeassistant/-/blob/main/esphome/ble_proxy/bluetooth-proxy.yaml?ref_type=heads" target="_blank" rel="noreferrer noopener">can be found here</a>. </p>
<p>Be sure to modify the variables to match whatever you want to do. I'm using static IPs because auto discovery is unreliable (<code>hostname.iot.internal</code>). </p>
<p>You'll also need to add the <code>!secret</code> variables into the <code>secrets.yaml</code> file.</p>
<p>Note that there's an issue with Bluetooth and WiFi on single cores (i.e.: the ESP locks up as it can't do both at boot). The workaround is in that config file.</p>
<blockquote class="wp-block-quote">
<p>Use on single-core chips</p>
<p>On dual-core devices the WiFi component runs on core 1, while this component runs on core 0. When using this component on single core chips such as the ESP32-C3 both WiFi and ble_tracker must run on the same core, and this has been known to cause issues when connecting to WiFi. A work-around for this is to enable the tracker only while the native API is connected. The following config will achieve this:</p>
<pre class="wp-block-code"><code>esp32_ble_tracker:
  scan_parameters:
    continuous: false

api:
  encryption:
    key: !secret encryption_key
  on_client_connected:
    - esp32_ble_tracker.start_scan:
       continuous: true
  on_client_disconnected:
    - esp32_ble_tracker.stop_scan:</code></pre>
<p><cite><a href="https://esphome.io/components/esp32_ble_tracker.html#use-on-single-core-chips" target="_blank" rel="noreferrer noopener">Esphome</a></cite></blockquote></p>
<p>To flash the Mi thermometer, use <a href="https://atc1441.github.io/TelinkFlasher.html" target="_blank" rel="noreferrer noopener">this flasher</a> and the <a href="https://github.com/atc1441/ATC_MiThermometer/releases" target="_blank" rel="noreferrer noopener">firmware from here</a>.</p>
<p>Example output of the log (from <a href="https://esphome.io/" target="_blank" rel="noreferrer noopener">Esphome</a> in Home Assistant directly, but can be seen from the web interface as well):</p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2024/05/log.png"><img src="https://static.yeri.be/2024/05/log-1024x443.png" alt="" class="wp-image-74613"/></a></figure>
<p>You can then add the proxy (and the entities) in Home Assistant. It should update every couple of minutes (the Mi device updates every 5 or so minutes, the Proxy scans every channel every 3-ish minutes). </p>
<p>In the example above, I (at the time of writing) only have one Bluetooth sensor, but it should be quite trivial to add more. The hardest part is finding the right MAC address of the sensors... :) </p>
]]></content:encoded>
      <category>hardware</category><category>networking</category><category>software</category>
      <category>homeassistant</category>
    </item>
    
    <item>
      <title>Unable to connect with Autodesk Desktop Licensing Service</title>
      <link>https://yeri.be/unable-to-connect-with-autodesk-desktop-licensing-service/</link>
      <pubDate>Sat, 27 Apr 2024 22:05:06 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/unable-to-connect-with-autodesk-desktop-licensing-service/</guid><enclosure url="https://static.yeri.be/2024/04/DALL%c2%b7E-2024-04-24-22.01.29-A-humorous-wide-banner-image-of-a-robot-designed-as-an-inept-version-of-AutoCAD-software.-The-robot-has-a-rectangular-body-resembling-a-traditional-co.webp" length="0" type="image/webp" />
      <description>&lt;p&gt;Recently migrated &lt;a href=&#34;https://yeri.be/tag/shanwong/&#34;&gt;Shan&lt;/a&gt; from Windows to an Apple/macOS and every reboot she kept getting &#34;Unable to connect with Autodesk Desktop Licensing Service&#34; when launching AutoCAD on her Mac.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://archive.is/zC2ZP&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;official bullshit&lt;/a&gt; is to reinstall the Licensing Service (why is there even such a thing). But alas, that didn&#39;t fix it.&lt;/p&gt;&#xA;&lt;figure class=&#34;wp-block-image size-large is-resized&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2024/04/hJhRzhlQifHGAlAqFndnadFw-1024x478.jpg&#34; alt=&#34;&#34; class=&#34;wp-image-74570&#34; style=&#34;width:650px;height:auto&#34;/&gt;&lt;/figure&gt;&#xA;&lt;p&gt;Also updating AutoCad to 2025 (we&#39;re barely even in 2024) didn&#39;t fix it (but made it work until the next reboot).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2024/04/DALL·E-2024-04-24-22.01.29-A-humorous-wide-banner-image-of-a-robot-designed-as-an-inept-version-of-AutoCAD-software.-The-robot-has-a-rectangular-body-resembling-a-traditional-co.webp" alt="Unable to connect with Autodesk Desktop Licensing Service"></p><p>Recently migrated <a href="https://yeri.be/tag/shanwong/">Shan</a> from Windows to an Apple/macOS and every reboot she kept getting "Unable to connect with Autodesk Desktop Licensing Service" when launching AutoCAD on her Mac.</p>
<p>The <a href="https://archive.is/zC2ZP" target="_blank" rel="noreferrer noopener">official bullshit</a> is to reinstall the Licensing Service (why is there even such a thing). But alas, that didn't fix it.</p>
<figure class="wp-block-image size-large is-resized"><img src="https://static.yeri.be/2024/04/hJhRzhlQifHGAlAqFndnadFw-1024x478.jpg" alt="" class="wp-image-74570" style="width:650px;height:auto"/></figure>
<p>Also updating AutoCad to 2025 (we're barely even in 2024) didn't fix it (but made it work until the next reboot).</p>
<p>The trick was to go to <code>System Settings &gt; General &gt; Login Items</code> and heading down to "<em>Allow in the Background</em>". Make sure AutoDesk is turned on (no need to turn on AutoCAD). </p>
<p>Sigh. </p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>autocad</category>
    </item>
    
    <item>
      <title>GTFS</title>
      <link>https://yeri.be/gtfs/</link>
      <pubDate>Tue, 09 Apr 2024 18:44:29 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/gtfs/</guid><enclosure url="https://static.yeri.be/2024/04/gtfs.webp" length="0" type="image/webp" />
      <description>&lt;p&gt;As &lt;a href=&#34;https://gtfs.irail.be/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;iRail&#39;s servers&lt;/a&gt; go down once in a while (and contain some legacy files, making it a bit messy), I decided to back up and host the GTFS feeds of Belgian Railway (NMBS), and the 3 Belgian bus companies (De Lijn, TEC and MIVB) at &lt;a href=&#34;https://gtfs.flatturtle.cloud/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;gtfs.flatturtle.cloud&lt;/a&gt;. &lt;/p&gt;&#xA;&lt;p&gt;Every night, around 3am (CET), the GTFS files are uploaded to Cloudflare R2. &lt;/p&gt;&#xA;&lt;p&gt;I keep the historical files as well (&lt;a href=&#34;https://hello.irail.be/?s=gtfs&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;iRail&lt;/a&gt; only did this for NMBS, but I&#39;m doing it for all). The latest available GTFS is in &lt;code&gt;*/_latest/&amp;lt;file&gt;.zip&lt;/code&gt;. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2024/04/gtfs.webp" alt="GTFS"></p><p>As <a href="https://gtfs.irail.be/" target="_blank" rel="noreferrer noopener">iRail's servers</a> go down once in a while (and contain some legacy files, making it a bit messy), I decided to back up and host the GTFS feeds of Belgian Railway (NMBS), and the 3 Belgian bus companies (De Lijn, TEC and MIVB) at <a href="https://gtfs.flatturtle.cloud/" target="_blank" rel="noreferrer noopener">gtfs.flatturtle.cloud</a>. </p>
<p>Every night, around 3am (CET), the GTFS files are uploaded to Cloudflare R2. </p>
<p>I keep the historical files as well (<a href="https://hello.irail.be/?s=gtfs" target="_blank" rel="noreferrer noopener">iRail</a> only did this for NMBS, but I'm doing it for all). The latest available GTFS is in <code>*/_latest/&lt;file>.zip</code>. </p>
<p>The directory listing is created using <a href="https://github.com/cmj2002/r2-dir-list/" target="_blank" rel="noreferrer noopener">Workers</a>.</p>
<p>I'm trying to get access to <a href="http://dewaterbus.be" target="_blank" rel="noreferrer noopener">dewaterbus.be</a> as well, but so far, they haven't replied. </p>
]]></content:encoded>
      <category>linux</category><category>software</category><category>irail</category>
      <category>belgium</category><category>cloudflare</category>
    </item>
    
    <item>
      <title>WordPress unable to connect to SQL database</title>
      <link>https://yeri.be/wordpress-unable-to-connect-to-sql-database/</link>
      <pubDate>Thu, 22 Feb 2024 11:24:50 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/wordpress-unable-to-connect-to-sql-database/</guid><enclosure url="https://static.yeri.be/2024/02/crashed_database.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Yesterday, three blogs I&#39;m hosting suddenly went offline and &lt;a href=&#34;https://yeri.be/?s=betteruptime&#34;&gt;alerts&lt;/a&gt; went off.&lt;/p&gt;&#xA;&lt;p&gt;They all had the same error that they couldn&#39;t connect to their SQL database, and it seemed that &lt;a href=&#34;https://hub.docker.com/_/mariadb&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;the container&lt;/a&gt; recently was auto-updated. &lt;/p&gt;&#xA;&lt;p&gt;Docker logs also showed (which may or may not have been related):&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;2024-02-21  7:30:29 97 &amp;#91;Warning] Aborted connection 97 to db: &#39;unconnected&#39; user: &#39;unauthenticated&#39; host: &#39;192.168.200.4&#39; (This connection closed normally without authentication)&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This was odd. I started the usual troubleshooting:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2024/02/crashed_database.jpg" alt="WordPress unable to connect to SQL database"></p><p>Yesterday, three blogs I'm hosting suddenly went offline and <a href="https://yeri.be/?s=betteruptime">alerts</a> went off.</p>
<p>They all had the same error that they couldn't connect to their SQL database, and it seemed that <a href="https://hub.docker.com/_/mariadb" target="_blank" rel="noreferrer noopener">the container</a> recently was auto-updated. </p>
<p>Docker logs also showed (which may or may not have been related):</p>
<pre class="wp-block-code"><code>2024-02-21  7:30:29 97 &#91;Warning] Aborted connection 97 to db: 'unconnected' user: 'unauthenticated' host: '192.168.200.4' (This connection closed normally without authentication)</code></pre>
<p>This was odd. I started the usual troubleshooting:</p>
<ul>
<li>As these containers have their own network, maybe the IPs changed and as the SQL users can only access from a certain IP range, something broke there -- nothing seemed to have changed and I could connect from the nginx container to the other just fine</li>
<li>Password somehow changed -- nah, connections were accepted</li>
<li>Roll back to a previous version of MariaDB -- didn't do anything, odd</li>
<li>This was not actually a MariaDB problem but a WordPress problem? Was there an auto-update? Didn't make sense because one of the blogs is running a very old WP version</li>
<li>Worth noting that I also host two Ghosts blogs using the same setup (nginx+mariadb in container) and they were unaffected and humming along just fine...</li>
<li>At this point I was starting to think something was massively corrupt and this was gonna be a long day.</li>
</ul>
<p>I then continued and created a php (<code>testconnection.php</code>) file on the nginx:</p>
<pre class="wp-block-code"><code>&lt;?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Connection Details
$hostname = "container-mariadb";  // Your MariaDB hostname 
$username = "your_username"; // Your MariaDB username
$password = "your_password"; // Your MariaDB password
$database = "your_database_name"; // The database

// Create the connection
$conn = new mysqli($hostname, $username, $password, $database);

// Check for errors
if ($conn-&gt;connect_error) {
    die("Connection failed: " . $conn-&gt;connect_error);
}

// Print Debug Information
echo "Connected successfully\n"; 
echo "Host information: " . $conn-&gt;host_info . "\n";
echo "Client information: " . $conn-&gt;client_info . "\n";

// Close the connection
$conn-&gt;close();
?&gt;</code></pre>
<p>This threw the following error... We were getting somewhere:</p>
<pre class="wp-block-code"><code>Fatal error: Uncaught mysqli_sql_exception: Server sent charset (0) unknown to the client. Please, report to the developers in /var/www/domain/testconnection.php:13 Stack trace: #0 /var/www/domain/testconnection.php(13): mysqli-&gt;__construct() #1 {main} thrown in /var/www/domain/testconnection.php on line 13</code></pre>
<p>The charset I was using was <code>utf8mb4</code> with a collate of <code>utf8mb4_general_ci</code>:</p>
<pre class="wp-block-code"><code>SHOW CREATE DATABASE your_database_name;</code></pre>
<p>My <code>wp-config.php</code> file already had <code>DB_CHARSET</code>, but <code>DB_COLLATE</code> was not set. I added that in the config as well:</p>
<pre class="wp-block-code"><code>define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', 'utf8mb4_general_ci' );</code></pre>
<p>Sadly, that didn't fix it either. Still saying it can't connect to the database. Grmbl.</p>
<p>I then went ahead and checked <code>/etc/mysql/mariadb.conf</code> and the files in <code>/etc/mariadb.conf.d/</code>. It included <code>character-set-server = utf8mb4</code>, but not <code>collation-server = utf8mb4_general_ci</code>. The line was specifically in <code>/etc/mariadb.conf.d/50-server.cnf</code>.</p>
<p>Adding the latter solved the problem... 2hrs of my life gone. </p>
<p>As this file (likely) is managed in the container and changed by the OS (it's apparently based on Ubuntu, ewwww) or the MariaDB version, the easiest way was just creating another file: <code>/etc/mariadb.conf.d/51-&lt;something&gt;.cnf</code>.</p>
<p>This is my <strong>very dirty</strong> hack (as I'm not using Docker Compose for this):</p>
<pre class="wp-block-code"><code>docker exec -it container-mariadb bash -c "echo -e '&#91;mysqld]\ncollation-server = utf8mb4_general_ci'> /etc/mysql/mariadb.conf.d/51-yeri.cnf"
docker restart container-mariadb</code></pre>
<p>It now works fine again... </p>
]]></content:encoded>
      <category>linux</category><category>software</category><category>www</category>
      <category>mysql</category><category>nginx</category><category>wordpress</category>
    </item>
    
    <item>
      <title>Software &amp;amp; time-saving</title>
      <link>https://yeri.be/software-time-saving/</link>
      <pubDate>Mon, 06 Nov 2023 18:33:06 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/software-time-saving/</guid><enclosure url="https://static.yeri.be/2023/11/time.jpg" length="0" type="image/jpeg" />
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&#xA;&lt;p&gt;Software is typically sold on the promise of increased convenience or productivity, or both. If we were to believe all the clichéd marketing lingo about time-saving, our lives would now consist largely of uninterrupted leisure time.&amp;nbsp;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://brettscott.substack.com/p/tech-doesnt-make-our-lives-easier?utm_source=DenseDiscovery-262&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;In a recent post&lt;/a&gt;, Brett Scott argues persuasively that, far from making our lives easier, technology is making them faster and more discombobulated. To understand how this shift happens, Scott tells us to look at the issue from a systemic perspective:&amp;nbsp;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/11/time.jpg" alt="Software &amp;amp; time-saving"></p><blockquote class="wp-block-quote">
<p>Software is typically sold on the promise of increased convenience or productivity, or both. If we were to believe all the clichéd marketing lingo about time-saving, our lives would now consist largely of uninterrupted leisure time.&nbsp;</p>
<p><a href="https://brettscott.substack.com/p/tech-doesnt-make-our-lives-easier?utm_source=DenseDiscovery-262" target="_blank" rel="noreferrer noopener">In a recent post</a>, Brett Scott argues persuasively that, far from making our lives easier, technology is making them faster and more discombobulated. To understand how this shift happens, Scott tells us to look at the issue from a systemic perspective:&nbsp;</p>
<p>“We don’t just live in any economy. We live in a mega-scale corporate capitalist economy, and in such a setting technology is never used to save time. It’s used to speed up production and consumption in order to expand the system. The basic rule is this: technology doesn’t make our lives easier. It makes them faster and more crammed with stuff.”</p>
<p>The invention of the car is a great example because it enabled us to move greater distances at much higher speeds, but didn’t fundamentally change our experience of work. The time ‘saved’ by driving versus walking was quickly taken up by more work. Fast travel by car (a high-value consumer good) quickly became the new default.&nbsp;</p>
<p>“Los Angeles only exists in its current form because of cars, which means life will be difficult there if you don’t have one. In this scenario you’re essentially held hostage by the auto industry, whose products are the very thing that have catalysed our dependence on giant megacities. Rather than acknowledge that, we lapse into a type of Stockholm Syndrome where we choose to imagine the car as a saviour that grants us our independence in that context. In reality, the car is just a minimum requirement to scrape by in a car-catalysed environment. ...”</p>
<p>“Each technology not only unlocks a new state of expanded acceleration (that will be hardcoded into our lives as the new basis for our survival), but will also be used as the basis for new technologies to continue that process. The vast majority of people do not experience this technology as ‘liberating’ them. Rather, they experience it as something that propagates itself around them, and something they must race to keep up with in order to not be ‘left behind’.”</p>
<p>The irony is that as the world around us feels hectic and more unmanageable due to technology, we turn to the very same tools for help:&nbsp;</p>
<p>“In reality, we’ll just be more burned out, which in turn will be weaponised to sell us more acceleration tech.&nbsp;<em>Feeling burned out? Why not automate more?</em>&nbsp;… We increasingly live a ‘just in time’ life because, at a systemic level, there’s pressure to pack in as much stuff as possible at both a consumption and production level. We’re just as dissatisfied, only busier.”</p>
<p>In Scott’s view, AI will have the same accelerating effect, raising employers’ productivity expectations and demanding that we all do more, faster. Because that is the gospel of innovation:</p>
<p>“In the mythology of Silicon Valley, and in corporate capitalism more generally, it’s believed that we expand alongside our system, and that new products are turning us into fuller expressions of ourselves. In reality, we’re biological beings with finite capacities ensnared within an economy with an acceleration drive, and its constant attempt to expand just crowds out other stuff in our lives.”</p>
<p>As with all systemic issues, individuals lack the agency to effectively counteract this dynamic. Still, Scott encourages us “to realise that all these things we’re told we need are just illusions generated by the numb logic of a system that cannot value anything except accumulation and profit. From that point we can strive to build balances of power to prevent the worst excesses of the situation coming out.” It’s the economy, stupid!</p>
<cite><em>Source</em>: <a href="https://www.densediscovery.com/issues/262" target="_blank" rel="noreferrer noopener">Dense Discovery</a></cite></blockquote>
]]></content:encoded>
      <category>misc</category><category>software</category>
      <category>software</category><category>time</category>
    </item>
    
    <item>
      <title>DALL-E 3: wow</title>
      <link>https://yeri.be/dall-e-3-wow/</link>
      <pubDate>Fri, 27 Oct 2023 17:20:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/dall-e-3-wow/</guid><enclosure url="https://static.yeri.be/2023/10/dall-e.jpeg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;&lt;a href=&#34;http://web.archive.org/web/20240501152901/https://openai.com/dall-e-3&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;DALL-E 3&lt;/a&gt; is here. And the future too, or almost at least.&lt;/p&gt;&#xA;&lt;div class=&#34;wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular&#34;&gt;&lt;div class=&#34;tiled-gallery__gallery&#34;&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;73737&#34; data-link=&#34;https://yeri.be/?attachment_id=73737&#34; data-url=&#34;https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.10.39-3D-render-of-a-chic-living-room-in-a-Singapore-house-characterized-by-its-minimalistic-design.-The-room-boasts-light-beige-walls-a-cream-colored-rug.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.10.39-3D-render-of-a-chic-living-room-in-a-Singapore-house-characterized-by-its-minimalistic-design.-The-room-boasts-light-beige-walls-a-cream-colored-rug.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;73736&#34; data-link=&#34;https://yeri.be/?attachment_id=73736&#34; data-url=&#34;https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.10.37-3D-render-of-a-spacious-living-room-in-a-contemporary-Singaporean-home.-The-design-emphasizes-simplicity-with-light-colored-walls-and-flooring.-A-whit.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.10.37-3D-render-of-a-spacious-living-room-in-a-contemporary-Singaporean-home.-The-design-emphasizes-simplicity-with-light-colored-walls-and-flooring.-A-whit.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;73735&#34; data-link=&#34;https://yeri.be/?attachment_id=73735&#34; data-url=&#34;https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.10.35-3D-render-of-a-modern-and-minimalistic-living-room-in-a-Singaporean-house.-The-space-is-illuminated-by-natural-light-from-large-windows-highlighting-.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.10.35-3D-render-of-a-modern-and-minimalistic-living-room-in-a-Singaporean-house.-The-space-is-illuminated-by-natural-light-from-large-windows-highlighting-.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;p&gt;Prompt: generate 3D images of the inside of a house in Singapore. It needs to look modern and minimalistic, with light colours, to show a customer. Focus on the living room.&lt;/p&gt;&#xA;&lt;p&gt;It still sucks at generating text... Trying to get an 80s style logo for &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;http://superuser.one&#34; data-type=&#34;link&#34; data-id=&#34;superuser.one&#34; target=&#34;_blank&#34;&gt;superuser.one&lt;/a&gt;...&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/10/dall-e.jpeg" alt="DALL-E 3: wow"></p><p><a href="http://web.archive.org/web/20240501152901/https://openai.com/dall-e-3" target="_blank" rel="noreferrer noopener">DALL-E 3</a> is here. And the future too, or almost at least.</p>
<div class="wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular"><div class="tiled-gallery__gallery"><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73737" data-link="https://yeri.be/?attachment_id=73737" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.10.39-3D-render-of-a-chic-living-room-in-a-Singapore-house-characterized-by-its-minimalistic-design.-The-room-boasts-light-beige-walls-a-cream-colored-rug.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.10.39-3D-render-of-a-chic-living-room-in-a-Singapore-house-characterized-by-its-minimalistic-design.-The-room-boasts-light-beige-walls-a-cream-colored-rug.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73736" data-link="https://yeri.be/?attachment_id=73736" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.10.37-3D-render-of-a-spacious-living-room-in-a-contemporary-Singaporean-home.-The-design-emphasizes-simplicity-with-light-colored-walls-and-flooring.-A-whit.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.10.37-3D-render-of-a-spacious-living-room-in-a-contemporary-Singaporean-home.-The-design-emphasizes-simplicity-with-light-colored-walls-and-flooring.-A-whit.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73735" data-link="https://yeri.be/?attachment_id=73735" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.10.35-3D-render-of-a-modern-and-minimalistic-living-room-in-a-Singaporean-house.-The-space-is-illuminated-by-natural-light-from-large-windows-highlighting-.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.10.35-3D-render-of-a-modern-and-minimalistic-living-room-in-a-Singaporean-house.-The-space-is-illuminated-by-natural-light-from-large-windows-highlighting-.png?ssl=1" data-amp-layout="responsive"/></figure></div></div></div></div>
<p>Prompt: generate 3D images of the inside of a house in Singapore. It needs to look modern and minimalistic, with light colours, to show a customer. Focus on the living room.</p>
<p>It still sucks at generating text... Trying to get an 80s style logo for <a rel="noreferrer noopener" href="http://superuser.one" data-type="link" data-id="superuser.one" target="_blank">superuser.one</a>...</p>
<div class="wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular"><div class="tiled-gallery__gallery"><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73738" data-link="https://yeri.be/?attachment_id=73738" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.03.16-Logo-design-in-an-80s-retro-style-reminiscent-of-the-Stranger-Things-title-font.-The-logo-reads-superuser.one-with-neon-colors-and-a-vintage-feel.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.03.16-Logo-design-in-an-80s-retro-style-reminiscent-of-the-Stranger-Things-title-font.-The-logo-reads-superuser.one-with-neon-colors-and-a-vintage-feel.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73739" data-link="https://yeri.be/?attachment_id=73739" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.03.19-Retro-80s-inspired-logo-for-superuser.one_.-The-text-is-styled-with-bold-angular-letters-evoking-the-iconic-Stranger-Things-title.-The-letters-ha.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.03.19-Retro-80s-inspired-logo-for-superuser.one_.-The-text-is-styled-with-bold-angular-letters-evoking-the-iconic-Stranger-Things-title.-The-letters-ha.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73740" data-link="https://yeri.be/?attachment_id=73740" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.05.24-Retro-80s-inspired-logo-design-where-the-words-super-user-and-one-are-distinctly-separated-and-stacked-vertically.-Each-word-is-styled-with-bo.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.05.24-Retro-80s-inspired-logo-design-where-the-words-super-user-and-one-are-distinctly-separated-and-stacked-vertically.-Each-word-is-styled-with-bo.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73741" data-link="https://yeri.be/?attachment_id=73741" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.07.25-80s-retro-inspired-logo-design-with-the-text-superuser.one_.-The-text-is-rendered-in-bold-neon-style-typography-reminiscent-of-Stranger-Things.-Th.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.07.25-80s-retro-inspired-logo-design-with-the-text-superuser.one_.-The-text-is-rendered-in-bold-neon-style-typography-reminiscent-of-Stranger-Things.-Th.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73742" data-link="https://yeri.be/?attachment_id=73742" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.07.55-80s-retro-style-logo-with-the-text-superuser.one-accurately-displayed.-The-typography-is-bold-and-neon-lit-reminiscent-of-the-Stranger-Things-ser.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.07.55-80s-retro-style-logo-with-the-text-superuser.one-accurately-displayed.-The-typography-is-bold-and-neon-lit-reminiscent-of-the-Stranger-Things-ser.png?ssl=1" data-amp-layout="responsive"/></figure></div></div></div></div>
<p>Website content... The prompt was a weird one. </p>
<div class="wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular"><div class="tiled-gallery__gallery"><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73743" data-link="https://yeri.be/?attachment_id=73743" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.00.57-Photo-realistic-image-of-a-modern-coworking-space-filled-with-diverse-individuals-working-on-laptops-and-collaborating-at-communal-tables.-The-atmosph-1024x585.png" data-width="1792" src="https://i1.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.00.57-Photo-realistic-image-of-a-modern-coworking-space-filled-with-diverse-individuals-working-on-laptops-and-collaborating-at-communal-tables.-The-atmosph-1024x585.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73744" data-link="https://yeri.be/?attachment_id=73744" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-17.01.02-Photo-realistic-depiction-of-a-bustling-coworking-environment-with-people-of-various-genders-and-descents-engrossed-in-their-work.-The-space-has-an-op-1024x585.png" data-width="1792" src="https://i0.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-17.01.02-Photo-realistic-depiction-of-a-bustling-coworking-environment-with-people-of-various-genders-and-descents-engrossed-in-their-work.-The-space-has-an-op-1024x585.png?ssl=1" data-amp-layout="responsive"/></figure></div></div></div></div>
<p>prompt: for a website, I need an image of a coworking space. It needs to show people working. Our tech is the WiFi and efficient networking equipment that needs to be displayed but not clearly visible. Make it so it's not a given, but shows happy people. Make it photo realistic</p>
<div class="wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular"><div class="tiled-gallery__gallery"><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73745" data-link="https://yeri.be/?attachment_id=73745" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-16.57.47-3D-comic-style-illustration-of-a-vibrant-dolphin-with-a-large-cannon-mounted-on-its-back.-The-dolphin-is-dynamically-leaping-out-of-the-shimmering-sea.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-16.57.47-3D-comic-style-illustration-of-a-vibrant-dolphin-with-a-large-cannon-mounted-on-its-back.-The-dolphin-is-dynamically-leaping-out-of-the-shimmering-sea.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="73746" data-link="https://yeri.be/?attachment_id=73746" data-url="https://static.yeri.be/2023/10/DALL·E-2023-10-27-16.57.50-3D-comic-style-render-of-a-playful-dolphin-equipped-with-a-cannon-on-its-dorsal-side-making-a-spectacular-jump-out-of-the-turquoise-sea.-Waves-crash-.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2023/10/DALL%C2%B7E-2023-10-27-16.57.50-3D-comic-style-render-of-a-playful-dolphin-equipped-with-a-cannon-on-its-dorsal-side-making-a-spectacular-jump-out-of-the-turquoise-sea.-Waves-crash-.png?ssl=1" data-amp-layout="responsive"/></figure></div></div></div></div>
<p>Prompt: draw a 3D comic style dolphin with a canon on its back jumping out of the sea</p>
]]></content:encoded>
      <category>software</category>
      <category>ai</category>
    </item>
    
    <item>
      <title>RPi kernels in Bookworm</title>
      <link>https://yeri.be/rpi-kernels-in-bookworm/</link>
      <pubDate>Tue, 24 Oct 2023 22:43:24 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/rpi-kernels-in-bookworm/</guid><enclosure url="https://static.yeri.be/2023/10/kernel.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Raspberry Pi recently &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/&#34; target=&#34;_blank&#34;&gt;launched Bookworm&lt;/a&gt;, and with that, a new kernel package. &lt;/p&gt;&#xA;&lt;p&gt;However, due to the massive changes from Bullseye to Bookworm, they are not suggesting a &lt;code&gt;dist-upgrade&lt;/code&gt;. &lt;/p&gt;&#xA;&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&#xA;&lt;p&gt;In the past, we have suggested procedures for updating an existing image to the new version, but always with the caveat that we do not recommend it, and you do this at your own risk.&lt;/p&gt;&#xA;&lt;p&gt;This time, because the changes to the underlying architecture are so significant, we are not suggesting any procedure for upgrading a Bullseye image to Bookworm; any attempt to do this will almost certainly end up with a non-booting desktop and data loss.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/10/kernel.jpg" alt="RPi kernels in Bookworm"></p><p>Raspberry Pi recently <a rel="noreferrer noopener" href="https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/" target="_blank">launched Bookworm</a>, and with that, a new kernel package. </p>
<p>However, due to the massive changes from Bullseye to Bookworm, they are not suggesting a <code>dist-upgrade</code>. </p>
<blockquote class="wp-block-quote">
<p>In the past, we have suggested procedures for updating an existing image to the new version, but always with the caveat that we do not recommend it, and you do this at your own risk.</p>
<p>This time, because the changes to the underlying architecture are so significant, we are not suggesting any procedure for upgrading a Bullseye image to Bookworm; any attempt to do this will almost certainly end up with a non-booting desktop and data loss.</p>
<cite><a href="https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/" target="_blank" rel="noreferrer noopener">Bookworm — the new version of Raspberry Pi OS</a></cite></blockquote>
<p>But screw that, ain't nobody got time to reinstall all their RPis in the wild (and in all fairness, I've had zero issues updating; just some messing around with kernels -- hence the post)...</p>
<p>As this is not very well documented, and Raspberry Pi, across all their versions, has <a href="https://www.baeldung.com/linux/arm64-armel-armhf-overview" target="_blank" rel="noreferrer noopener">4 different architectures</a>, it's confusing. </p>
<p>There's a quick <a rel="noreferrer noopener" href="https://gist.github.com/jauderho/6b7d42030e264a135450ecc0ba521bd8" target="_blank">dirty guide</a> on how to update from <code>raspberrypi-kernel</code> and <code>raspberrypi-bootloader</code> to <code>linux-image-rpi</code>.</p>
<p>However, it's unclear in terms of which kernel to pick, so here goes:</p>
<ul>
<li>RPi3 (including RPi4) and newer in 64 bit<sup data-fn="0f5f6479-f0ea-4fac-a731-9e31357bd843" class="fn"><a href="#0f5f6479-f0ea-4fac-a731-9e31357bd843" id="0f5f6479-f0ea-4fac-a731-9e31357bd843-link">1</a></sup> (aarch64): <br /><code>apt install -y linux-image-rpi-v8 linux-headers-rpi-v8</code></li>
<li>RPi4 and 400 in 32 bit<sup data-fn="dd6d6631-b7cf-4b99-9f8c-4de4e6f782b3" class="fn"><a href="#dd6d6631-b7cf-4b99-9f8c-4de4e6f782b3" id="dd6d6631-b7cf-4b99-9f8c-4de4e6f782b3-link">2</a></sup>:<br /><code>apt install -y linux-image-rpi-v7l linux-headers-rpi-v7l</code></li>
<li>RPi2 (only 32bit) or 3, 3+, Zero 2 W, Compute Modules 3 and 3+ in 32 bit mode<sup data-fn="4be59b98-e820-4499-875e-ce58820aafeb" class="fn"><a href="#4be59b98-e820-4499-875e-ce58820aafeb" id="4be59b98-e820-4499-875e-ce58820aafeb-link">3</a></sup> (armhf): <br /><code>apt install -y linux-image-rpi-v7 linux-headers-rpi-v7</code></li>
<li>RPi1, Zero, Zero W, Compute Module 1 (armel):<br /><code>apt install -y linux-image-rpi-v6 linux-headers-rpi-v6</code></li>
</ul>
<p>This mostly comes from <a rel="noreferrer noopener" href="https://www.raspberrypi.com/documentation/computers/linux_kernel.html#building-the-kernel" target="_blank">here</a>.</p>
<p>So, in short, this is what worked for me. As I use <a href="https://yeri.be/tag/wireguard">Wireguard</a> as well, I needed to remove the package first to prevent conflicts.</p>
<pre class="wp-block-code"><code>apt remove -y wireguard
apt autoremove -y

dpkg --purge --force-depends raspberrypi-kernel raspberrypi-bootloader
umount /boot
fsck -y /boot
mkdir /boot/firmware
sed -i.bak -e "s#boot#boot/firmware#" /etc/fstab
systemctl daemon-reload
mount /boot/firmware
apt install raspi-firmware -y

# rpi3+ 64bit
#apt install linux-image-rpi-v8 linux-headers-rpi-v8
# rpi4+ 32bit
#apt install linux-image-rpi-v7l linux-headers-rpi-v7l
# rpi2 and rest
#apt install linux-image-rpi-v7 linux-headers-rpi-v7
# rpi1
#apt install linux-image-rpi-v6 linux-headers-rpi-v6

sed -i.bak '$ a\auto_initramfs=1' /boot/firmware/config.txt 

apt install wireguard -y
systemctl enable wg-quick@wg0.service
systemctl start wg-quick@wg0.service

# reboot</code></pre>
<p>When running <code>apt install &lt;kernel&gt;</code> -- do write down the package it'll install. The listed packages are just meta packages and will pull a bunch of other packages that actually hold the important files. Running <code>apt --reinstall</code> on those meta packages, for example, won't actually reinstall the kernel.</p>
<p>To roll back, you can purge those packages and reinstall <code>raspberrypi-kernel raspberrypi-bootloader</code> (be aware of the path changes in <code>/boot</code>). If you made a mistake, just <code>apt install --reinstall -y &lt;all the packages you wrote down&gt;</code> and it should reinstall everything.</p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category>
      <category>apt</category><category>kernel</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>IP Changed?</title>
      <link>https://yeri.be/ip-changed/</link>
      <pubDate>Fri, 06 Oct 2023 11:28:41 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/ip-changed/</guid><enclosure url="https://static.yeri.be/2023/10/ip-changed.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Very &lt;a href=&#34;https://gitlab.com/superuser.one/ipchanged&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;simple Python script&lt;/a&gt; that tracks one or multiple hosts/domains for IP changes, and prints it in a &lt;a href=&#34;https://matrix.org&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Matrix&lt;/a&gt; room.&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;# docker logs ipchanged&#xA;29-09-2023 - 11:26:35 - Logged in as @turtlebot:matrix.org&#xA;29-09-2023 - 11:26:35 - IP address for be.yeri.be is 94.105.123.126&#xA;29-09-2023 - 11:26:35 - IP address for sg.yeri.be is 58.96.238.208&#xA;29-09-2023 - 11:26:35 - IP address for industry.yeri.be is 78.23.172.72&#xA;29-09-2023 - 11:29:36 - IP address for be.yeri.be is 94.105.123.126&#xA;29-09-2023 - 11:29:36 - IP address for sg.yeri.be is 58.96.238.208&#xA;29-09-2023 - 11:29:36 - IP address for industry.yeri.be is 78.23.172.72&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Includes a Docker container to keep it running. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/10/ip-changed.jpg" alt="IP Changed?"></p><p>Very <a href="https://gitlab.com/superuser.one/ipchanged" target="_blank" rel="noreferrer noopener">simple Python script</a> that tracks one or multiple hosts/domains for IP changes, and prints it in a <a href="https://matrix.org" target="_blank" rel="noreferrer noopener">Matrix</a> room.</p>
<pre class="wp-block-code"><code># docker logs ipchanged
29-09-2023 - 11:26:35 - Logged in as @turtlebot:matrix.org
29-09-2023 - 11:26:35 - IP address for be.yeri.be is 94.105.123.126
29-09-2023 - 11:26:35 - IP address for sg.yeri.be is 58.96.238.208
29-09-2023 - 11:26:35 - IP address for industry.yeri.be is 78.23.172.72
29-09-2023 - 11:29:36 - IP address for be.yeri.be is 94.105.123.126
29-09-2023 - 11:29:36 - IP address for sg.yeri.be is 58.96.238.208
29-09-2023 - 11:29:36 - IP address for industry.yeri.be is 78.23.172.72</code></pre>
<p>Includes a Docker container to keep it running. </p>
<figure class="wp-block-image size-large"><img src="https://static.yeri.be/2023/09/Screenshot-2023-09-29-at-11.31.00-645x1024.png" alt="" class="wp-image-73549"/></figure>
<p>I made it less noisy (i.e. won't talk when the IP didn't change) and as the IP of my DynDNS hosts hasn't changed yet, there's not much to see... ;) </p>
]]></content:encoded>
      <category>networking</category><category>software</category>
      <category>python</category>
    </item>
    
    <item>
      <title>Check websites with LanguageTool for typos</title>
      <link>https://yeri.be/check-websites-with-languagetool-for-typos/</link>
      <pubDate>Fri, 08 Sep 2023 17:40:29 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/check-websites-with-languagetool-for-typos/</guid><enclosure url="https://static.yeri.be/2023/09/typo-checker.png" length="0" type="image/png" />
      <description>&lt;p&gt;This is quick and dirty (and with the help of ChatGPT). &lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://yeri.be/tag/flatturtle&#34; data-type=&#34;link&#34; data-id=&#34;https://flatturtle.com&#34;&gt;FlatTurtle&lt;/a&gt; has a &lt;a href=&#34;https://flatturtle.com&#34; data-type=&#34;link&#34; data-id=&#34;https://flatturtle.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;new site&lt;/a&gt;, and there&#39;s been some fine-tuning here and there that led to a few typos creeping in. I wanted a quick tool to plug in a page, and that would highlight possible mistakes.&lt;/p&gt;&#xA;&lt;p&gt;I&#39;ve been a personal (paying) user of &lt;a href=&#34;https://languagetool.org/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;LanguageTool&lt;/a&gt; for a few years now (European, and less spammy and dodgy than Grammarly)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/09/typo-checker.png" alt="Check websites with LanguageTool for typos"></p><p>This is quick and dirty (and with the help of ChatGPT). </p>
<p><a href="https://yeri.be/tag/flatturtle" data-type="link" data-id="https://flatturtle.com">FlatTurtle</a> has a <a href="https://flatturtle.com" data-type="link" data-id="https://flatturtle.com" target="_blank" rel="noreferrer noopener">new site</a>, and there's been some fine-tuning here and there that led to a few typos creeping in. I wanted a quick tool to plug in a page, and that would highlight possible mistakes.</p>
<p>I've been a personal (paying) user of <a href="https://languagetool.org/" target="_blank" rel="noreferrer noopener">LanguageTool</a> for a few years now (European, and less spammy and dodgy than Grammarly)</p>
<p>Started off with a <a rel="noreferrer noopener" href="https://gitlab.com/superuser.one/languagetool-website-checker/-/blob/38c4c09a560f70e549e2d7266ad11ea256d82383/typocheck.py" data-type="link" data-id="https://gitlab.com/superuser.one/languagetool-website-checker/-/blob/38c4c09a560f70e549e2d7266ad11ea256d82383/typocheck.py" target="_blank">terminal tool</a>, but in the end that wasn't working out (hard to get the colouring to work and make it clear enough). </p>
<p>Figured a website would be easier:</p>
<ul>
<li>Insert a site</li>
<li>Let it go through the LanguageTool API for mistakes*</li>
<li>Show what is potentially wrong and explain why so I can go and edit it</li>
</ul>
<p>(*) Surprisingly hard because it needs to trim all HTML and js and other crap. And it has issues detecting headers (without punctuation) from paragraph text, etc). </p>
<p>It's far from perfect, but it works well enough for half a day of fiddling around. </p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2023/09/typo-checker-ft.png"><img src="https://static.yeri.be/2023/09/typo-checker-ft-1024x680.png" alt="" class="wp-image-73287"/></a></figure>
<p>You can hover your mouse over the red words to get some information as to why something is wrong.</p>
<p>The code, provided as-is, <a rel="noreferrer noopener" href="https://gitlab.com/superuser.one/languagetool-website-checker" data-type="link" data-id="https://gitlab.com/superuser.one/languagetool-website-checker" target="_blank">is here</a>, and you can run it using:</p>
<pre class="wp-block-code"><code>python3 -m pip install flask selenium beautifulsoup4 geckodriver-autoinstaller requests
python3 web_check.py --api-key KEY --username EMAIL</code></pre>
<p>And opening http://localhost:5000.</p>
<p>EMAIL is your login, the KEY can be found <a rel="noreferrer noopener" href="https://languagetool.org/editor/settings/access-tokens" target="_blank">here</a>.</p>
<p>Have fun. </p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>ai</category><category>flatturtle</category><category>mac os x</category><category>python</category>
    </item>
    
    <item>
      <title>Script to display Mac battery information</title>
      <link>https://yeri.be/script-to-display-mac-battery-information/</link>
      <pubDate>Tue, 05 Sep 2023 17:07:44 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/script-to-display-mac-battery-information/</guid><enclosure url="https://static.yeri.be/2023/09/pexels-photo-4245928.jpeg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;You can see how this script makes that couple very happy.&lt;/p&gt;&#xA;&lt;p&gt;Quick and dirty script that shows your Mac battery information (health, cycles, etc). If an Apple keyboard or mouse is connected, it&#39;ll also display the battery % of those.&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;# Battery information&#xA;battery() {&#xA;&#xA;&#x9;if !ioreg &amp;gt; /dev/null 2&amp;gt;&amp;amp;1; then&#xA;&#x9;&#x9;echo &#34;ioreg not found. Exiting.&#34;&#xA;&#x9;&#x9;return 1&#xA;&#x9;fi&#xA;&#xA;&#x9;_ioreg=`ioreg -l`&#xA;&#x9;_profile=`system_profiler SPPowerDataType`&#xA;&#xA;&#x9;MOUSE=`echo $_ioreg -l | grep -A 10 &#34;Mouse&#34; | grep &#39;&#34;BatteryPercent&#34; =&#39; | sed &#39;s/&amp;#91;^0-9]*//g&#39;`&#xA;&#x9;TRACKPAD=`echo $_ioreg -l | grep -A 10 &#34;Track&#34; | grep &#39;&#34;BatteryPercent&#34; =&#39; | sed &#39;s/&amp;#91;^0-9]*//g&#39;`&#xA;&#x9;KEYBOARD=`echo $_ioreg -l | grep -A 10 &#34;Keyboard&#34; | grep &#39;&#34;BatteryPercent&#34; =&#39; | sed &#39;s/&amp;#91;^0-9]*//g&#39;`&#xA;&#x9;CYCLE=`echo $_profile | grep &#34;Cycle Count&#34; | awk &#39;{print $3}&#39;`&#xA;&#xA;&#x9;if &amp;#91; -n &#34;$MOUSE&#34; ]; then&#xA;&#x9;&#x9;echo &#34;Mouse: &#34;$MOUSE&#34;%&#34;&#xA;&#x9;fi&#xA;&#xA;&#x9;if &amp;#91; -n &#34;$TRACKPAD&#34; ]; then&#xA;&#x9;&#x9;echo &#34;Trackpad: &#34;$TRACKPAD&#34;%&#34;&#xA;&#x9;fi&#xA;&#xA;&#x9;if &amp;#91; -n &#34;$KEYBOARD&#34; ]; then&#xA;&#x9;&#x9;echo &#34;Keyboard: &#34;$KEYBOARD&#34;%&#34;&#xA;&#x9;fi&#xA;&#xA;&#x9;if &amp;#91; -n &#34;$CYCLE&#34; ] &amp;amp;&amp;amp; &amp;#91; &#34;$CYCLE&#34; -ne 0 ]; then&#xA;&#x9;&#x9;echo &#34;Mac battery &#34;`echo $_profile | grep &#34;State of Charge&#34; | awk &#39;{print $5}&#39;`&#34;%&#34;&#xA;&#x9;&#x9;echo &#34;Charging: &#34;`echo $_profile | grep &#34;Charging&#34; | head -n 1 | awk &#39;{print $2}&#39;`&#xA;&#x9;&#x9;echo &#34;Cycles: &#34;$CYCLE&#xA;&#x9;&#x9;echo &#34;Condition: &#34;`echo $_profile | grep &#34;Condition&#34; | awk &#39;{print $2}&#39;`&#xA;&#x9;&#x9;echo &#34;Health: &#34;`echo $_profile | grep &#34;Maximum Capacity&#34; | awk &#39;{print $3}&#39;`&#xA;&#x9;fi&#xA;}&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Outputs something similar to this (no mouse or keyboard connected):&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/09/pexels-photo-4245928.jpeg" alt="Script to display Mac battery information"></p><p>You can see how this script makes that couple very happy.</p>
<p>Quick and dirty script that shows your Mac battery information (health, cycles, etc). If an Apple keyboard or mouse is connected, it'll also display the battery % of those.</p>
<pre class="wp-block-code"><code># Battery information
battery() {

	if !ioreg &gt; /dev/null 2&gt;&amp;1; then
		echo "ioreg not found. Exiting."
		return 1
	fi

	_ioreg=`ioreg -l`
	_profile=`system_profiler SPPowerDataType`

	MOUSE=`echo $_ioreg -l | grep -A 10 "Mouse" | grep '"BatteryPercent" =' | sed 's/&#91;^0-9]*//g'`
	TRACKPAD=`echo $_ioreg -l | grep -A 10 "Track" | grep '"BatteryPercent" =' | sed 's/&#91;^0-9]*//g'`
	KEYBOARD=`echo $_ioreg -l | grep -A 10 "Keyboard" | grep '"BatteryPercent" =' | sed 's/&#91;^0-9]*//g'`
	CYCLE=`echo $_profile | grep "Cycle Count" | awk '{print $3}'`

	if &#91; -n "$MOUSE" ]; then
		echo "Mouse: "$MOUSE"%"
	fi

	if &#91; -n "$TRACKPAD" ]; then
		echo "Trackpad: "$TRACKPAD"%"
	fi

	if &#91; -n "$KEYBOARD" ]; then
		echo "Keyboard: "$KEYBOARD"%"
	fi

	if &#91; -n "$CYCLE" ] &amp;&amp; &#91; "$CYCLE" -ne 0 ]; then
		echo "Mac battery "`echo $_profile | grep "State of Charge" | awk '{print $5}'`"%"
		echo "Charging: "`echo $_profile | grep "Charging" | head -n 1 | awk '{print $2}'`
		echo "Cycles: "$CYCLE
		echo "Condition: "`echo $_profile | grep "Condition" | awk '{print $2}'`
		echo "Health: "`echo $_profile | grep "Maximum Capacity" | awk '{print $3}'`
	fi
}</code></pre>
<p>Outputs something similar to this (no mouse or keyboard connected):</p>
<pre class="wp-block-code"><code>nazgul ~ $ battery
Mac battery 54%
Charging: No
Cycles: 224
Condition: Normal
Health: 89%</code></pre>
<p>This works on <code>zsh</code> and may not work in <code>bash</code>.</p>
]]></content:encoded>
      <category>apple</category><category>hardware</category><category>software</category>
      <category>mac os x</category><category>macbook</category>
    </item>
    
    <item>
      <title>PoC: Betteruptime &#43; Python-kasa</title>
      <link>https://yeri.be/poc-betteruptime-python-kasa/</link>
      <pubDate>Tue, 04 Jul 2023 15:20:06 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/poc-betteruptime-python-kasa/</guid><enclosure url="https://static.yeri.be/2023/07/kasa-smart-plug.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;&lt;strong&gt;Content Update&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The provided scripts have been updated on 16 Jul 2023. Specifically the SmartStrip part was not working as intended. &lt;/p&gt;&#xA;&lt;hr class=&#34;wp-block-separator has-alpha-channel-opacity&#34;/&gt;&#xA;&lt;p&gt;I&#39;ve been a big fan of &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://uptime.betterstack.com/&#34; target=&#34;_blank&#34;&gt;Betteruptime&lt;/a&gt;. I&#39;ve started using it to monitor all my assets online (websites, DNS, ping, successful script runs) as well as my servers (using &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://betterstack.com/docs/uptime/cron-and-heartbeat-monitor/&#34; target=&#34;_blank&#34;&gt;heartbeats&lt;/a&gt;). &lt;/p&gt;&#xA;&lt;figure class=&#34;wp-block-image alignwide size-large&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2023/07/mammoth.png&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2023/07/mammoth-1024x570.png&#34; alt=&#34;Screenshot of Betteruptime showing a heartbeat that failed for several hours. &#34; class=&#34;wp-image-72880&#34;/&gt;&lt;/a&gt;&lt;figcaption class=&#34;wp-element-caption&#34;&gt;Image of a heartbeat that failed for several hours. After 2 hours of no hearbeat, it turned into an incident, and several hours later the heartbeats resumed. &lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;p&gt;I have a few Raspberry Pi&#39;s, and once in a while they hang (not sure why, maybe USB-to-SSD issues or something). Nothing too critical, but annoying. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/07/kasa-smart-plug.jpg" alt="PoC: Betteruptime + Python-kasa"></p><p><strong>Content Update</strong></p>
<p>The provided scripts have been updated on 16 Jul 2023. Specifically the SmartStrip part was not working as intended. </p>
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<p>I've been a big fan of <a rel="noreferrer noopener" href="https://uptime.betterstack.com/" target="_blank">Betteruptime</a>. I've started using it to monitor all my assets online (websites, DNS, ping, successful script runs) as well as my servers (using <a rel="noreferrer noopener" href="https://betterstack.com/docs/uptime/cron-and-heartbeat-monitor/" target="_blank">heartbeats</a>). </p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2023/07/mammoth.png" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2023/07/mammoth-1024x570.png" alt="Screenshot of Betteruptime showing a heartbeat that failed for several hours. " class="wp-image-72880"/></a><figcaption class="wp-element-caption">Image of a heartbeat that failed for several hours. After 2 hours of no hearbeat, it turned into an incident, and several hours later the heartbeats resumed. </figcaption></figure>
<p>I have a few Raspberry Pi's, and once in a while they hang (not sure why, maybe USB-to-SSD issues or something). Nothing too critical, but annoying. </p>
<p>I've plugged them all on <a href="https://www.tp-link.com/sg/home-networking/smart-plug/" target="_blank" rel="noreferrer noopener">TP-Link Kasa</a> smart plugs to remotely restart them if I had to (once or twice a year). </p>
<pre class="wp-block-verse">Note, to confuse everyone, TP-Link also launched Tapo, which... competes with Kasa and is not compatible, but does the exact same thing... ¯\_(ツ)_/¯</pre>
<p>After some <a rel="noreferrer noopener" href="https://medium.com/geekculture/use-raspberry-pi-and-tp-link-kasa-to-automate-your-devices-9f936a6243c1" target="_blank">Googling</a> (actually <a href="https://kagi.com" target="_blank" rel="noreferrer noopener">Kagi'ing</a>) I found out, there's a <a rel="noreferrer noopener" href="https://python-kasa.readthedocs.io/en/latest/" target="_blank">Python library</a> that lets you control your smart plugs. </p>
<p>So, the idea was born to:</p>
<ul>
<li>Check Betteruptime heartbeats, if down, power cycle the smart plug</li>
<li>Do this at most once per day (in case something else is causing issues)</li>
<li>Betteruptime <a rel="noreferrer noopener" href="https://betterstack.com/docs/uptime/api/get-a-single-hearbeat/" target="_blank">heartbeats</a> manage when a device is marked as offline (i.e.: it expects a heartbeat every 5 minutes, but will only consider the device down if no heartbeats are received for 2 hours).  </li>
<li>The bulk of the code had to be written by ChatGPT. Let ChatGPT choose the language (it ended up being a mix of Bash and Python)</li>
<li>Everything needs to run in Docker (using a cron, the Docker container doesn't daemonise)</li>
<li>These run on Raspberry Pi's (but of course the RPi can't check itself: so RPi1 checks for RPi2, and vice versa. As these RPis are on different networks (my parent's home, my own home, etc) I had to enable "<code>--net=host</code>" in <code>Docker run</code> to get the correct routes from the host system, but you may not actually need this</li>
<li>To top if off, sent an email (using Mailgun EU servers) to warn me something broke and it rebooted</li>
</ul>
<p>So, after some fiddling (half an evening or so) the proof-of-concept worked. </p>
<p>I should probably throw this in a Git repo but shrug. I don't want to give the impression that I'll maintain this and provide support.  </p>
<p>Dockerfile:</p>
<pre class="wp-block-code"><code>FROM python:alpine
RUN apk add bash curl jq
RUN pip3 install python-kasa
COPY heartbeat.sh kasa-api.py /
VOLUME /tmp/kasa/
CMD &#91;"/heartbeat.sh"]</code></pre>
<p>Python script <code>kasa-api.py</code> (this works with both <a href="https://www.tp-link.com/sg/home-networking/smart-plug/kp303/" target="_blank" rel="noreferrer noopener">smart strips</a> and <a href="https://www.kasasmart.com/us/products/smart-plugs/kasa-smart-wifi-plug-hs100" target="_blank" rel="noreferrer noopener">smart plugs</a>):</p>
<pre class="wp-block-code"><code>import sys
import asyncio
from kasa import SmartPlug, SmartStrip

async def main():
	if len(sys.argv) != 4:
		print("Usage: python kasa-api.py type IP-address outlet-index")
		return

	device_type = sys.argv&#91;1]
	ip_address = sys.argv&#91;2]
	outlet_index = int(sys.argv&#91;3])

	if device_type == "smartplug":
		await control_smart_plug(ip_address)
	elif device_type == "smartstrip":
		await control_smart_strip(ip_address, outlet_index)
	else:
		print(f"Unsupported device type: {device_type}")

async def control_smart_plug(ip_address):
	plug = SmartPlug(ip_address)

	try:
		await plug.update()

		# Retrieve the current state
		plug_state = plug.is_on

		# Turn off the plug
		await plug.turn_off()

		print(f"Turned off SmartPlug at {ip_address}")
		await asyncio.sleep(5)

		# Turn on the plug if it was previously on
		if plug_state:
			await plug.turn_on()

		print(f"Turned on SmartPlug at {ip_address}")
	except Exception as e:
		print(f"Failed to control SmartPlug at {ip_address}: {e}")

async def control_smart_strip(ip_address, outlet_index):
	strip = SmartStrip(ip_address)

	try:
		await strip.update()

		# Retrieve the current state of the specified child plug
		child_state = strip.children&#91;outlet_index].is_on

		# Turn off the specified child plug
		await strip.children&#91;outlet_index].turn_off()

		print(f"Turned off child plug {outlet_index} in SmartStrip at {ip_address}")
		await asyncio.sleep(5)

		# Turn on the child plug if it was previously on
		await strip.children&#91;outlet_index].turn_on()

		print(f"Turned on child plug {outlet_index} in SmartStrip at {ip_address}")
	except Exception as e:
		print(f"Failed to control SmartStrip at {ip_address}: {e}")

# Run the asyncio event loop
asyncio.run(main())</code></pre>
<p><code>heartbeat.sh</code> -- with example devices. Be sure to fill in the variables (including <code>hb</code>, that's the heartbeat ID you can get from the Betteruptime URL and the IP or DNS hostname of the smartplug):</p>
<pre class="wp-block-code"><code>#!/bin/bash

API_KEY="BetterUptime API token"
BU="https://uptime.betterstack.com/api/v2/heartbeats/" # no need to change this

MAILGUN_API_KEY="Mailgun API token"
MAILGUN_DOMAIN="mg.you.com" # use your own domain

if &#91;&#91; "$DEVICE" = tyr ]] || &#91;&#91; "$1" = tyr ]]; then

	# Tyr
	device="Tyr"
	hb=1111
	bu="https://uptime.betterstack.com/team/1/heartbeats/$hb"
	plug_type="smartplug"
	plug_host="smartplug1.kasa.you.com"

elif &#91;&#91; "$DEVICE" = mammoth ]] || &#91;&#91; "$1" = mammoth ]]; then

	# Mammoth
	device="mammoth"
	hb=2222
	bu="https://uptime.betterstack.com/team/1/heartbeats/$hb"
	plug_type="smartstrip"
	plug_host="smartstrip1.kasa.you.com"
	plug_index=0 # plug 2 is rly plug 3 because the index counts from 0 to 2 and not from 1 to 3.

elif &#91;&#91; "$DEVICE" = liana ]] || &#91;&#91; "$1" = liana ]]; then

	# Liana
	device="liana"
	hb=3333
	bu="https://uptime.betterstack.com/team/1/heartbeats/$hb"
	plug_type="smartstrip"
	plug_host="smartstrip1.kasa.you.com"
	plug_index=1 # plug 2 is rly plug 3 because the index counts from 0 to 2 and not from 1 to 3.

elif &#91;&#91; "$DEVICE" = eagle ]] || &#91;&#91; "$1" = eagle ]]; then

	device="eagle"
	hb=4444
	bu="https://uptime.betterstack.com/team/1/heartbeats/$hb"
	plug_type="smartstrip"
	plug_host="smartstrip1.kasa.yeri.be"
	plug_index=2 # plug 2 is rly plug 3 because the index counts from 0 to 2 and not from 1 to 3.

else
	echo "Unknown device."
	exit 1
fi

url=$BU/$hb

send_alert() {
	MAILGUN_URL="https://api.eu.mailgun.net/v3/$MAILGUN_DOMAIN/messages"
	from="kasa@you.com"
	to="alert@you.com"
	subject="Smartplug power cycled: $device"
	body="rebooted device $device!"$'\n'"Kasa IP: $plug_host."$'\n'"$bu"

	# Send alert email
	curl -s --user "api:$MAILGUN_API_KEY" \
		"$MAILGUN_URL" \
		-F from="$from" \
		-F to="$to" \
		-F subject="$subject" \
		-F text="$body"
}

kasa_cycle() {
	echo "Betteruptime heartbeat ($hb) says the service for $device is down, restarting."
	python /kasa-api.py "$plug_type" "$plug_host" "$plug_index"
	# Update the last execution date in the file
	echo "$current_date" &gt; "$file"
}

kasa_info() {
	kasa --host $plug_host
}

response=$(curl -sL "$url" -H "Authorization: Bearer $API_KEY")
status=$(echo "$response" | jq -r '.data.attributes.status')

if &#91;&#91; "$status" == "down" ]]; then
	dir="/tmp/.kasa/"
	mkdir -p "$dir"
	file="${dir}${device}.txt"

	# Get current date
	current_date=$(date "+%F")
	# Check if the file exists
	if &#91; -f "$file" ]; then
		# Get last execution date from the file
		last_execution=$(cat "$file")
		# We only want to run this once every 24hrs. If a reboot doesn't fix it, something more
		# serious is going on and likely needs manual intervention. No point spam rebooting the device.
		if &#91;&#91; "$current_date" != "$last_execution" ]]; then
			kasa_cycle
			send_alert
		else
			echo "Power cycle already executed today."
		fi
	else
		kasa_cycle
		send_alert
	fi
elif &#91;&#91; "$status" == "up" ]]; then
	echo "Betteruptime heartbeat says the service ($hb) for $device is up."
else
	# this could happen if the heartbeat is paused.
	echo "Unknown status."
	kasa_info
	exit 1
fi</code></pre>
<p>I run Docker with two scripts, a builder (<code>rebuild.sh</code>) and a file that runs it (<code>start.sh</code>). It should rebuild in case a docker cleanup script ran (and deleted dangling containers). </p>
<p>I run this as <code>root</code> and probably shouldn't, but yeah... That'll be for another lifetime. </p>
<p>Be sure to change the paths (<code>/root/git/kasa-api</code>) in both scripts. </p>
<p><code>rebuild.sh</code>:</p>
<pre class="wp-block-code"><code>#!/bin/bash
cd /root/git/kasa-api # the path where this project exists

git pull &gt; /dev/null

BASEIMAGE=`cat Dockerfile | grep FROM | awk '{print $2}'`
docker pull $BASEIMAGE
docker build -q -t kasa-api .
rm -f /tmp/.kasa/*.txt</code></pre>
<p><code>start.sh</code>:</p>
<pre class="wp-block-code"><code>#!/bin/bash

if &#91; -z "$1" ]; then
	echo "Missing device name."
	exit 1
fi

docker stop kasa-api 2&gt; /dev/null
docker rm kasa-api 2&gt; /dev/null

run_kasa() {
	DEVICE=$1
	docker run --net=host -v /tmp/.kasa:/tmp/.kasa --rm -e DEVICE=$DEVICE --name kasa-api kasa-api
}

if &#91;&#91; $(docker image ls | grep kasa-api) ]]; then
	run_kasa $1
else
	cd /root/git/kasa-api
	/root/git/kasa-api/rebuild.sh &gt; /dev/null
	run_kasa $1
fi</code></pre>
<p>And that's pretty much it. I run this using with cron in <code>/etc/cron.d/</code>. For example (be sure to edit the parameter/device name/path):</p>
<pre class="wp-block-code"><code>#
# cron-jobs for kasa-api
#

MAILTO=root

*/15 * * * *	root	if &#91; -x /root/git/kasa-api/start.sh ] &amp;&amp; &#91; -f /root/git/kasa-api/start.sh ]; then /root/git/kasa-api/start.sh tyr &gt;/dev/null; fi</code></pre>
<p>I'm sure there must be bugs in this ChatGPT generated code but... so far, it has actually worked.</p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>networking</category><category>software</category>
      <category>bash</category><category>dailyprompt</category><category>dailyprompt-2001</category><category>docker</category><category>python</category>
    </item>
    
    <item>
      <title>killwarp</title>
      <link>https://yeri.be/killwarp/</link>
      <pubDate>Mon, 03 Jul 2023 15:48:30 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/killwarp/</guid><enclosure url="https://static.yeri.be/2023/05/warp-desktop-3.png" length="0" type="image/png" />
      <description>&lt;p&gt;Is your company forcing &lt;a href=&#34;https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/download-warp/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Cloudflare Warp&lt;/a&gt; on you, and are you running on a Mac (with &lt;code&gt;sudo&lt;/code&gt; access)?&lt;/p&gt;&#xA;&lt;p&gt;It probably sucks, spies on you, does MitM attacks, breaks most video conferencing tools, and is generally not very stable... Also... Zero trust!&lt;/p&gt;&#xA;&lt;p&gt;Add this function to your &lt;code&gt;.bashrc&lt;/code&gt; or &lt;code&gt;.zshrc&lt;/code&gt; (whichever shell you&#39;re using*):&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;func killwarp() {&#xA;&#x9;sudo launchctl remove com.cloudflare.1dot1dot1dot1.macos.warp.daemon&#xA;&#x9;sudo killall Cloudflare\ WARP&#xA;}&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Open a new shell window (to reload your dot files), and type &lt;code&gt;killwarp&lt;/code&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/05/warp-desktop-3.png" alt="killwarp"></p><p>Is your company forcing <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/download-warp/" target="_blank" rel="noreferrer noopener">Cloudflare Warp</a> on you, and are you running on a Mac (with <code>sudo</code> access)?</p>
<p>It probably sucks, spies on you, does MitM attacks, breaks most video conferencing tools, and is generally not very stable... Also... Zero trust!</p>
<p>Add this function to your <code>.bashrc</code> or <code>.zshrc</code> (whichever shell you're using*):</p>
<pre class="wp-block-code"><code>func killwarp() {
	sudo launchctl remove com.cloudflare.1dot1dot1dot1.macos.warp.daemon
	sudo killall Cloudflare\ WARP
}</code></pre>
<p>Open a new shell window (to reload your dot files), and type <code>killwarp</code>.</p>
<p>This will permanently disable Warp (until your Mac is rebooted; as it's most likely force installed/started by your admin). So just run this after every reboot. </p>
<p>(*) Find out with <code>echo $SHELL</code>. </p>
]]></content:encoded>
      <category>apple</category><category>networking</category><category>software</category>
      <category>cloudflare</category><category>vpn</category>
    </item>
    
    <item>
      <title>Don&#39;t trust corporates</title>
      <link>https://yeri.be/dont-trust-corporates/</link>
      <pubDate>Mon, 12 Jun 2023 15:28:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/dont-trust-corporates/</guid><enclosure url="https://static.yeri.be/2023/06/pexels-photo-6266283.jpeg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Especially those at the pinnacle that&#39;ve lost touch with their customers. &lt;/p&gt;&#xA;&lt;p&gt;I&#39;ve &lt;a href=&#34;https://yeri.be/the-enshittification-lifecycle-of-saas&#34;&gt;blogged&lt;/a&gt; about &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys&#34; target=&#34;_blank&#34;&gt;it&lt;/a&gt; before.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&#xA;&lt;p&gt;Here is how platforms die: first, they are good to their users; then they abuse their users to make things better for their business customers; finally, they abuse those business customers to claw back all the value for themselves. Then, they die.&lt;/p&gt;&#xA;&lt;cite&gt;&lt;em&gt;Source&lt;/em&gt;: &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys&#34; target=&#34;_blank&#34;&gt;Pluralistic&lt;/a&gt;&lt;/cite&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;I&#39;ve just learned that Amazon Kindle killed the &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://liliputing.com/amazon-ends-support-for-lending-kindle-books-to-other-users/&#34; target=&#34;_blank&#34;&gt;book loaning feature&lt;/a&gt;... Something they initially used as a selling point when I got my first Kindle in 2017 (or whenever it was). &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/06/pexels-photo-6266283.jpeg" alt="Don&#39;t trust corporates"></p><p>Especially those at the pinnacle that've lost touch with their customers. </p>
<p>I've <a href="https://yeri.be/the-enshittification-lifecycle-of-saas">blogged</a> about <a rel="noreferrer noopener" href="https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys" target="_blank">it</a> before.</p>
<blockquote class="wp-block-quote">
<p>Here is how platforms die: first, they are good to their users; then they abuse their users to make things better for their business customers; finally, they abuse those business customers to claw back all the value for themselves. Then, they die.</p>
<cite><em>Source</em>: <a rel="noreferrer noopener" href="https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys" target="_blank">Pluralistic</a></cite></blockquote>
<p>I've just learned that Amazon Kindle killed the <a rel="noreferrer noopener" href="https://liliputing.com/amazon-ends-support-for-lending-kindle-books-to-other-users/" target="_blank">book loaning feature</a>... Something they initially used as a selling point when I got my first Kindle in 2017 (or whenever it was). </p>
<p>I've spent about an hour on the phone with 4 (!) Amazon support reps to find a solution (tl;dr: there are none, but they recommend one of the following three options: 1/ share your Amazon account/password with whoever you want to loan your book to, 2/ add the person to your household (never mind you can only have 2 adults in your household), 3/ buy the books again). </p>
<p>As I told them none of these options realistically worked (and are not a solution to the problem) I asked for a gift voucher (to re-purchase the books I wanted to loan to a friend) which they initially said were unable to do, and eventually admitted were able to do, but refused to do because they felt they offered workable solutions: "you can just purchase them again". Sigh.</p>
<p>It is a disheartening reality that companies often take a turn towards evil once they hit a certain size. Lose touch with reality. </p>
<p>The initial promises of exceptional service and genuine customer care gradually fade away. Instead, the focus shifts to maximizing profits, leaving customer satisfaction behind. Shareholders exert pressure, prioritizing returns on investment over the long-term relationship with customers. </p>
<p>Don't trust corporates. </p>
<p>We've turned the world into a place where we don't actually own anything. SaaS offers ease of access (streaming, cloud, etc), but if consumers are at the whims of corporates to turn features on and off, give or take away access, something is wrong.</p>
]]></content:encoded>
      <category>software</category>
      <category>capitalism</category><category>greed</category><category>saas</category>
    </item>
    
    <item>
      <title>Bookworm: eth0 -&gt; enX0</title>
      <link>https://yeri.be/bookworm-eth0-enx0/</link>
      <pubDate>Sun, 11 Jun 2023 14:29:44 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/bookworm-eth0-enx0/</guid><enclosure url="https://static.yeri.be/2023/06/nic.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Started updating my Debian systems from Bullseye to Bookworm.&lt;/p&gt;&#xA;&lt;p&gt;The first thing I noticed was that ethX renamed to enXY.&lt;/p&gt;&#xA;&lt;p&gt;To get back to the old naming scheme, you can fix this by adding the following in &lt;code&gt;/etc/network/interfaces&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;rename enX0=eth0&#xA;rename enX1=eth1&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;And reboot. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/06/nic.jpg" alt="Bookworm: eth0 -&gt; enX0"></p><p>Started updating my Debian systems from Bullseye to Bookworm.</p>
<p>The first thing I noticed was that ethX renamed to enXY.</p>
<p>To get back to the old naming scheme, you can fix this by adding the following in <code>/etc/network/interfaces</code>:</p>
<pre class="wp-block-code"><code>rename enX0=eth0
rename enX1=eth1</code></pre>
<p>And reboot. </p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category>
      <category>debian</category>
    </item>
    
    <item>
      <title>Micro-mice and mazes</title>
      <link>https://yeri.be/micromouse/</link>
      <pubDate>Fri, 02 Jun 2023 11:33:06 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/micromouse/</guid>
      <description>&lt;div class=&#34;embed-responsive embed-youtube&#34;&gt;&#xA;&#x9;&lt;iframe src=&#34;https://www.youtube-nocookie.com/embed/ZMQbHMgK2rw&#34; title=&#34;YouTube video&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Via &lt;a href=&#34;https://kottke.org/23/05/the-fastest-maze-solving-competition-on-earth&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Kottke&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Truly wish we learned all this in school. Would&#39;ve attended school significantly more often... ;) &lt;/p&gt;</description>
      <content:encoded><![CDATA[<div class="embed-responsive embed-youtube">
	<iframe src="https://www.youtube-nocookie.com/embed/ZMQbHMgK2rw" title="YouTube video" loading="lazy" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

<p>Via <a href="https://kottke.org/23/05/the-fastest-maze-solving-competition-on-earth" target="_blank" rel="noreferrer noopener">Kottke</a>.</p>
<p>Truly wish we learned all this in school. Would've attended school significantly more often... ;) </p>
]]></content:encoded>
      <category>games</category><category>hardware</category><category>software</category>
      <category>japan</category><category>youtube</category>
    </item>
    
    <item>
      <title>Keeping Mastodon storage in check</title>
      <link>https://yeri.be/keeping-mastodon-storage-in-check/</link>
      <pubDate>Mon, 29 May 2023 14:28:59 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/keeping-mastodon-storage-in-check/</guid><enclosure url="https://static.yeri.be/2023/05/clearing_mastodon_storage.png" length="0" type="image/png" />
      <description>&lt;p&gt;For my &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://m.superuser.one/&#34; target=&#34;_blank&#34;&gt;Mastodon instance&lt;/a&gt;, I use &lt;a href=&#34;https://yeri.be/mastodon-server-r2&#34;&gt;Cloudflare R2&lt;/a&gt;; mainly for two reasons: &lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Storage was growing quickly (~80Gb during its peak); I am hosting my instance on a RPi4 (w/ 8Gb RAM) and the SSD was filling up rapidly,&lt;/li&gt;&#xA;&lt;li&gt;I wanted something speedy to serve (big and cacheable) content (i.e. a CDN). &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;While I didn&#39;t care much about storage any more, I still wanted to make sure it was kept in check, also for two reasons:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/05/clearing_mastodon_storage.png" alt="Keeping Mastodon storage in check"></p><p>For my <a rel="noreferrer noopener" href="https://m.superuser.one/" target="_blank">Mastodon instance</a>, I use <a href="https://yeri.be/mastodon-server-r2">Cloudflare R2</a>; mainly for two reasons: </p>
<ul>
<li>Storage was growing quickly (~80Gb during its peak); I am hosting my instance on a RPi4 (w/ 8Gb RAM) and the SSD was filling up rapidly,</li>
<li>I wanted something speedy to serve (big and cacheable) content (i.e. a CDN). </li>
</ul>
<p>While I didn't care much about storage any more, I still wanted to make sure it was kept in check, also for two reasons:</p>
<ul>
<li>Mastodon downloads a copy of all content it says on the Fediverse, and keeps it until purged. So every instance has all the content from other instances. This could theoretically lead to you hosting illegal content and getting in trouble for it,</li>
<li>Cloudflare used to be my employer, and I have free access to R2. However, there's always a risk they'll disable my employee benefits one day and get me to pay for my used storage.</li>
</ul>
<p>I run my Mastodon in a Docker instance, so your commands may vary (basically <code>tootctl X Y</code> is what matters). I run most of these commands once a week using systemd (except the media remover, that runs every day). </p>
<p>This will clear:</p>
<ul>
<li>accounts (you never interacted with)</li>
<li>header files (big picture every account can upload)</li>
<li>profile pictures</li>
<li>link preview cards</li>
<li>orphaned media (uploaded media but not posted)</li>
<li>media (from other accounts)</li>
<li>statuses (from other accounts)</li>
<li><em>and as a bonus</em> include updating Elasticsearch indices (which sound run every once in a while to optimise search)</li>
</ul>
<pre class="wp-block-code"><code>/usr/bin/docker compose -f /srv/mastodon/docker-compose.yml run --rm shell tootctl accounts prune

/usr/bin/docker compose -f /srv/mastodon/docker-compose.yml run --rm shell tootctl media remove --remove-headers --days 15

/usr/bin/docker compose -f /srv/mastodon/docker-compose.yml run --rm shell tootctl media remove--prune-profiles --days 30

/usr/bin/docker compose -f /srv/mastodon/docker-compose.yml run --rm shell tootctl preview_cards remove --days 15

/usr/bin/docker compose -f /srv/mastodon/docker-compose.yml run --rm shell tootctl media remove-orphans

/usr/bin/docker compose -f /srv/mastodon/docker-compose.yml run --rm shell tootctl media remove --days 30

/usr/bin/docker compose -f /srv/mastodon/docker-compose.yml run --rm shell tootctl statuses remove --days 30

/usr/bin/docker compose -f /srv/mastodon/docker-compose.yml run --rm shell tootctl search deploy</code></pre>
<p>Note that you should play with the <code>--days X</code> to find something that works for you (i.e.: you can scroll back in the history and still see posts/media, but not overload your storage). </p>
<p>I've included all the systemd files that's needed <a rel="noreferrer noopener" href="https://static.yeri.be/2023/05/mastodon-cleanup.tar" target="_blank">here</a>. Again, will only work in a Docker environment using the same paths as me. </p>
<p>The systemd files will need to be activated using something similar to this (but again, don't blindly run these commands as it'll likely not work):</p>
<pre class="wp-block-code"><code>cp *.service *.timer /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now *.timer
systemctl list-timers | grep masto</code></pre>
<p>Oh, and this is not specific to R2. This works even when storing everything locally.</p>
<p>I've <a href="https://yeri.be/using-mastodon-with-cloudflare">written before</a> on how to use Cloudflare CDN to protect/speed up your instance. </p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>cloudflare</category><category>fediverse</category><category>mastodon</category>
    </item>
    
    <item>
      <title>Flipper Zero: Waiting for SD card</title>
      <link>https://yeri.be/flipper-zero-waiting-for-sd-card/</link>
      <pubDate>Fri, 28 Apr 2023 18:11:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/flipper-zero-waiting-for-sd-card/</guid><enclosure url="https://static.yeri.be/2023/04/445BCD92-CD5E-446F-B195-E714A2DD2C5F.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Just got myself a &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://flipperzero.one/&#34; target=&#34;_blank&#34;&gt;Flipper Zero&lt;/a&gt; because #whynot. &lt;/p&gt;&#xA;&lt;p&gt;However, the updating process from 0.6x.y to 0.82.3 was not very smooth sailing: &lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First it was stuck in &lt;code&gt;synchronising&lt;/code&gt; on the iOS app refusing to initiate the update (had to force quit + reboot Flipper Zero to get it to continue) &lt;/li&gt;&#xA;&lt;li&gt;After that, once I managed to upload the new firmware, it was stuck on &lt;code&gt;Waiting for SD card&lt;/code&gt; after the Flipper rebooted.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The SD card I tried was an old 2Gb Samsung SD I had lying around (have 3-4 of these). &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/04/445BCD92-CD5E-446F-B195-E714A2DD2C5F.jpg" alt="Flipper Zero: Waiting for SD card"></p><p>Just got myself a <a rel="noreferrer noopener" href="https://flipperzero.one/" target="_blank">Flipper Zero</a> because #whynot. </p>
<p>However, the updating process from 0.6x.y to 0.82.3 was not very smooth sailing: </p>
<ul>
<li>First it was stuck in <code>synchronising</code> on the iOS app refusing to initiate the update (had to force quit + reboot Flipper Zero to get it to continue) </li>
<li>After that, once I managed to upload the new firmware, it was stuck on <code>Waiting for SD card</code> after the Flipper rebooted.</li>
</ul>
<p>The SD card I tried was an old 2Gb Samsung SD I had lying around (have 3-4 of these). </p>
<p>Tried several times, but alas, until I tried a different SD card... Then the update process went fine and the firmware updated as expected. </p>
<p>So looks like this is a sign the SD card is not properly performing (even though format, benchmark and uploading firmware worked fine). </p>
]]></content:encoded>
      <category>hardware</category><category>software</category>
      <category>flipperzero</category><category>hacking</category>
    </item>
    
    <item>
      <title>Allow ping from USG</title>
      <link>https://yeri.be/allow-ping-from-usg/</link>
      <pubDate>Mon, 03 Apr 2023 23:06:26 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/allow-ping-from-usg/</guid><enclosure url="https://static.yeri.be/2023/04/usg-fw.png" length="0" type="image/png" />
      <description>&lt;p&gt;Because I keep forgetting and it takes me far too much time to go through one of my million sites where I set this up and find the right config... &lt;/p&gt;&#xA;&lt;p&gt;To allow a USG (&lt;a rel=&#34;noreferrer noopener&#34; href=&#34;http://web.archive.org/web/20230426183703/https://store.ui.com/products/unifi-security-gateway&#34; target=&#34;_blank&#34;&gt;Unifi Security Gateway&lt;/a&gt;) to reply to external (WAN) ping requests, do the following:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Head to the Unifi dashboard -&gt; Settings -&gt; Firewall &amp;amp; Security&lt;/li&gt;&#xA;&lt;li&gt;Create a new rule&lt;/li&gt;&#xA;&lt;li&gt;Type: Internet Local&lt;/li&gt;&#xA;&lt;li&gt;Description: Allow Ping (Echo Request)&lt;/li&gt;&#xA;&lt;li&gt;Rule Applied: Before Predefined Rules&lt;/li&gt;&#xA;&lt;li&gt;Action: Accept&lt;/li&gt;&#xA;&lt;li&gt;IPv4 Protocol: ICMP&lt;/li&gt;&#xA;&lt;li&gt;IPv4 IMP Type Name: Echo Request&lt;/li&gt;&#xA;&lt;li&gt;Apply Changes -&gt; wait ~2 minutes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;That&#39;s it... &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/04/usg-fw.png" alt="Allow ping from USG"></p><p>Because I keep forgetting and it takes me far too much time to go through one of my million sites where I set this up and find the right config... </p>
<p>To allow a USG (<a rel="noreferrer noopener" href="http://web.archive.org/web/20230426183703/https://store.ui.com/products/unifi-security-gateway" target="_blank">Unifi Security Gateway</a>) to reply to external (WAN) ping requests, do the following:</p>
<ul>
<li>Head to the Unifi dashboard -> Settings -> Firewall &amp; Security</li>
<li>Create a new rule</li>
<li>Type: Internet Local</li>
<li>Description: Allow Ping (Echo Request)</li>
<li>Rule Applied: Before Predefined Rules</li>
<li>Action: Accept</li>
<li>IPv4 Protocol: ICMP</li>
<li>IPv4 IMP Type Name: Echo Request</li>
<li>Apply Changes -> wait ~2 minutes</li>
</ul>
<p>That's it... </p>
<p>All this for <a rel="noreferrer noopener" href="https://smokeping.eu" target="_blank">Smokeping</a>.</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category>
      <category>firewall</category><category>smokeping</category><category>ubiquiti</category>
    </item>
    
    <item>
      <title>NextDNS and NetworkManager</title>
      <link>https://yeri.be/nextdns-and-networkmanager/</link>
      <pubDate>Fri, 17 Feb 2023 22:40:09 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nextdns-and-networkmanager/</guid><enclosure url="https://static.yeri.be/2023/02/wifi.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;A while back, I &lt;a href=&#34;https://yeri.be/networkmanager-exit-status-1&#34;&gt;wrote about installing&lt;/a&gt; NetworkManager if &lt;a href=&#34;https://yeri.be/tag/nextdns&#34;&gt;NextDNS&lt;/a&gt; activate fails to work. &lt;/p&gt;&#xA;&lt;p&gt;Only... I realised that for some reason on Raspberry Pi (4), WiFi stopped working with the following errors:&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.2204] device (wlan0): state change: config -&amp;gt; failed (reason &#39;ssid-not-found&#39;, sys-iface-state: &#39;managed&#39;)&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.7525] device (wlan0): set-hw-addr: set MAC address to 92:F3:ED:C2:8F:9B (scanning)&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;warn&amp;gt;  &amp;#91;1676631302.7559] device (wlan0): Activation: failed for connection &#39;superuser.one&#39;&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.7562] device (wlan0): supplicant interface state: scanning -&amp;gt; disconnected&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.7562] device (p2p-dev-wlan0): supplicant management interface state: scanning -&amp;gt; disconnected&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.7577] device (wlan0): supplicant interface state: disconnected -&amp;gt; interface_disabled&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.7578] device (p2p-dev-wlan0): supplicant management interface state: disconnected -&amp;gt; interface_disabled&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.7579] device (wlan0): supplicant interface state: interface_disabled -&amp;gt; disconnected&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.7579] device (p2p-dev-wlan0): supplicant management interface state: interface_disabled -&amp;gt; disconnected&#xA;Feb 17 11:55:02 tyr NetworkManager&amp;#91;449]: &amp;lt;info&amp;gt;  &amp;#91;1676631302.7585] device (wlan0): state change: failed -&amp;gt; disconnected (reason &#39;none&#39;, sys-iface-state: &#39;managed&#39;)&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The WiFi SSID and password (&lt;code&gt;wpa_supplicant&lt;/code&gt;) never changed, so I wasn&#39;t sure what it was. However, as most Pi&#39;s are wired I didn&#39;t pay much attention, until today.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/02/wifi.jpg" alt="NextDNS and NetworkManager"></p><p>A while back, I <a href="https://yeri.be/networkmanager-exit-status-1">wrote about installing</a> NetworkManager if <a href="https://yeri.be/tag/nextdns">NextDNS</a> activate fails to work. </p>
<p>Only... I realised that for some reason on Raspberry Pi (4), WiFi stopped working with the following errors:</p>
<pre class="wp-block-code"><code>Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.2204] device (wlan0): state change: config -&gt; failed (reason 'ssid-not-found', sys-iface-state: 'managed')
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.7525] device (wlan0): set-hw-addr: set MAC address to 92:F3:ED:C2:8F:9B (scanning)
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;warn&gt;  &#91;1676631302.7559] device (wlan0): Activation: failed for connection 'superuser.one'
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.7562] device (wlan0): supplicant interface state: scanning -&gt; disconnected
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.7562] device (p2p-dev-wlan0): supplicant management interface state: scanning -&gt; disconnected
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.7577] device (wlan0): supplicant interface state: disconnected -&gt; interface_disabled
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.7578] device (p2p-dev-wlan0): supplicant management interface state: disconnected -&gt; interface_disabled
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.7579] device (wlan0): supplicant interface state: interface_disabled -&gt; disconnected
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.7579] device (p2p-dev-wlan0): supplicant management interface state: interface_disabled -&gt; disconnected
Feb 17 11:55:02 tyr NetworkManager&#91;449]: &lt;info&gt;  &#91;1676631302.7585] device (wlan0): state change: failed -&gt; disconnected (reason 'none', sys-iface-state: 'managed')</code></pre>
<p>The WiFi SSID and password (<code>wpa_supplicant</code>) never changed, so I wasn't sure what it was. However, as most Pi's are wired I didn't pay much attention, until today.</p>
<p>As I had one RPi where <code>nextdns activate</code> worked fine, without NetworkManager installed, and where WiFi worked, I figured there was something evil about NetworkManager (= breaks my WiFi) and NextDNS not actually needing it... </p>
<p>I reverted my changed from my previous post (and removed some extra stuff that was not needed in my case, YMMV):</p>
<div class="wp-block-comments">
<pre class="wp-block-code"><code>apt purge -y network-manager dnsmasq-base resolvconf modemmanager ppp ; apt install -y powermgmt-base openresolv ; apt autoremove -y</code></pre>
</div>
<pre class="wp-block-verse">The powermgmt-base, and modemmanager, ppp parts are likely not needed, but this is just a copy and paste of what I did.</pre>
<p>Reboot... And WiFi worked again. However, <code>nextdns activate</code> would still throw an error:</p>
<pre class="wp-block-code"><code># nextdns activate
Error: NetworkManager resolver management: exit status 5</code></pre>
<p>Going through <a rel="noreferrer noopener" href="https://github.com/nextdns/nextdns/blob/master/host/dns_linux.go" target="_blank">the source code</a> (yay for open-source) I noticed:</p>
<pre class="wp-block-code"><code>var networkManagerFile = "/etc/NetworkManager/conf.d/nextdns.conf"</code></pre>
<p>That file indeed existed on both RPis that had the <code>activate</code> issue.</p>
<p>I ran the following command...</p>
<pre class="wp-block-code"><code>rm /etc/NetworkManager/conf.d/nextdns.conf</code></pre>
<p>But that still gave the same error. But as I had purged the entire NetworkManager, I didn't need its lingering config files... So, why not rid ourselves of everything:</p>
<pre class="wp-block-code"><code>rm -r /etc/NetworkManager</code></pre>
<p>And tada... Now <code>activate</code> works fine:</p>
<pre class="wp-block-code"><code>tyr ~ # nextdns activate
tyr ~ #</code></pre>
<p>Go figure ¯\_(ツ)_/¯ </p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>dns</category><category>nextdns</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>The Enshittification Lifecycle of SaaS</title>
      <link>https://yeri.be/the-enshittification-lifecycle-of-saas/</link>
      <pubDate>Fri, 27 Jan 2023 19:57:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/the-enshittification-lifecycle-of-saas/</guid><enclosure url="https://static.yeri.be/2023/01/pexels-photo-5081926.jpeg" length="0" type="image/jpeg" />
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&#xA;&lt;p&gt;Here is how platforms die: First, they are good to their users; then they abuse their users to make things better for their business customers; finally, they abuse those business customers to claw back all the value for themselves. Then, they die.&lt;/p&gt;&#xA;&lt;p&gt;[...]&lt;/p&gt;&#xA;&lt;p&gt;This is enshittification: Surpluses are first directed to users; then, once they’re locked in, surpluses go to suppliers; then once they’re locked in, the surplus is handed to shareholders and the platform becomes a useless pile of shit. From mobile app stores to Steam, from Facebook to Twitter, this is the enshittification lifecycle.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/01/pexels-photo-5081926.jpeg" alt="The Enshittification Lifecycle of SaaS"></p><blockquote class="wp-block-quote">
<p>Here is how platforms die: First, they are good to their users; then they abuse their users to make things better for their business customers; finally, they abuse those business customers to claw back all the value for themselves. Then, they die.</p>
<p>[...]</p>
<p>This is enshittification: Surpluses are first directed to users; then, once they’re locked in, surpluses go to suppliers; then once they’re locked in, the surplus is handed to shareholders and the platform becomes a useless pile of shit. From mobile app stores to Steam, from Facebook to Twitter, this is the enshittification lifecycle.</p>
<cite><em>Source</em>: <a rel="noreferrer noopener" href="https://kottke.org/23/01/the-enshittification-lifecycle-of-online-platforms" target="_blank">Kottke</a>, via <a rel="noreferrer noopener" href="https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys" target="_blank">Pluralistic</a> </cite></blockquote>
]]></content:encoded>
      <category>google</category><category>software</category>
      <category>capitalism</category><category>greed</category><category>saas</category>
    </item>
    
    <item>
      <title>Mounting a whole disk with partitions</title>
      <link>https://yeri.be/mounting-a-whole-disk-with-partitions/</link>
      <pubDate>Tue, 03 Jan 2023 03:02:59 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mounting-a-whole-disk-with-partitions/</guid><enclosure url="https://static.yeri.be/2023/01/mounting-a-hard-disk.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;I reinstalled one of my RPis (moving from 32 to 64 bit). &lt;/p&gt;&#xA;&lt;p&gt;Before doing the full reinstall, I took a dump (&lt;code&gt;dd&lt;/code&gt;) of my disk. &lt;/p&gt;&#xA;&lt;p&gt;Usually, I create one per partition, but this was the &lt;a href=&#34;https://yeri.be/tag/christmas-card&#34;&gt;Christmas season&lt;/a&gt;, and I was half occupied with feasting and half occupied with entertaining &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://ila.tw/&#34; target=&#34;_blank&#34;&gt;Ila&lt;/a&gt;. So, mistakes were made. &lt;/p&gt;&#xA;&lt;p&gt;I ran &lt;code&gt;dd if=/dev/sdb of=backup.img&lt;/code&gt; -- but this means I can&#39;t mount the disk directly, as it&#39;s not a partition:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/01/mounting-a-hard-disk.jpg" alt="Mounting a whole disk with partitions"></p><p>I reinstalled one of my RPis (moving from 32 to 64 bit). </p>
<p>Before doing the full reinstall, I took a dump (<code>dd</code>) of my disk. </p>
<p>Usually, I create one per partition, but this was the <a href="https://yeri.be/tag/christmas-card">Christmas season</a>, and I was half occupied with feasting and half occupied with entertaining <a rel="noreferrer noopener" href="https://ila.tw/" target="_blank">Ila</a>. So, mistakes were made. </p>
<p>I ran <code>dd if=/dev/sdb of=backup.img</code> -- but this means I can't mount the disk directly, as it's not a partition:</p>
<pre class="wp-block-code"><code># mount backup.img /tmp/disk
mount: /tmp/disk: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.</code></pre>
<p>I should've dd'd /dev/sdb2 instead of the entire disk. </p>
<p>All right, so let's figure out what can be done... First, let's look at the content of the image:</p>
<pre class="wp-block-code"><code># fdisk -l backup.img
Disk backup.img: 111.8 GiB, 120040980480 bytes, 234455040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8297a463

Device          Boot  Start      End  Sectors  Size Id Type
backup.img1 *      8192   532479   524288  256M  c W95 FAT32 (LBA)
backup.img2      532480 34078199 33545720   16G 83 Linux</code></pre>
<p>So, we can probably mount starting from sector <code>532480</code>. </p>
<p>We can see that the sector size is 512 (which, I think, is the default for most). So, if we multiply <code>512 * 532480</code> we get <code>272629760</code>.</p>
<p>Now we can mount the disk using the following command:</p>
<pre class="wp-block-code"><code>mount -o loop,offset=272629760 backup.img /tmp/disk</code></pre>
<p>And that should do it. </p>
<p>The 2nd partition (the one with data) is now mounted and accessible under <code>/tmp/disk</code>. </p>
<p>If you need the first partition, the same can be done by running <code>512 * 8192 = 4194304</code>; the following command mounts the boot partition: </p>
<pre class="wp-block-code"><code>mount -o loop,offset=4194304 backup.img /tmp/disk.</code></pre>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>backup</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>NetworkManager exit status 1</title>
      <link>https://yeri.be/networkmanager-exit-status-1/</link>
      <pubDate>Mon, 26 Dec 2022 21:19:59 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/networkmanager-exit-status-1/</guid><enclosure url="https://static.yeri.be/2022/12/networkManager.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Recently reinstalled &lt;a href=&#34;https://yeri.be/tag/nextdns&#34;&gt;NextDNS&lt;/a&gt; on a RPi4 64bit and came across this error:&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;# nextdns activate&#xA;Error: NetworkManager resolver management: exit status 1&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;It seems like &lt;a href=&#34;https://nextdns.io/?from=tuts3r6c&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;NextDNS&lt;/a&gt; was actually running, but just throwing an error when running &lt;code&gt;nextdns activate&lt;/code&gt;. Restarting did seem to work without throwing any error.&lt;/p&gt;&#xA;&lt;p&gt;The logs showed the same error:&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;Dec 20 14:06:20 tyr nextdns&amp;#91;5753]: Starting NextDNS 1.38.0/linux on :53&#xA;Dec 20 14:06:20 tyr nextdns&amp;#91;5753]: Listening on TCP/:53&#xA;Dec 20 14:06:20 tyr nextdns&amp;#91;5753]: Starting mDNS discovery&#xA;Dec 20 14:06:20 tyr nextdns&amp;#91;5753]: Listening on UDP/:53&#xA;Dec 20 14:06:21 tyr nextdns&amp;#91;5753]: Connected 45.90.28.0:443 (con=13ms tls=58ms, TCP, TLS13)&#xA;Dec 20 14:06:21 tyr nextdns&amp;#91;5753]: Connected 185.18.148.91:443 (con=12ms tls=28ms, TCP, TLS13)&#xA;Dec 20 14:06:21 tyr nextdns&amp;#91;5753]: Switching endpoint: https://dns.nextdns.io#185.18.148.91,2a04:b80:1:30::2&#xA;Dec 20 14:06:25 tyr nextdns&amp;#91;5753]: Setting up router&#xA;Dec 20 14:06:25 tyr nextdns&amp;#91;5753]: Activating&#xA;Dec 20 14:06:25 tyr nextdns&amp;#91;5753]: Activate: NetworkManager resolver management: exit status 1&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The solution was (as root):&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/12/networkManager.jpg" alt="NetworkManager exit status 1"></p><p>Recently reinstalled <a href="https://yeri.be/tag/nextdns">NextDNS</a> on a RPi4 64bit and came across this error:</p>
<pre class="wp-block-code"><code># nextdns activate
Error: NetworkManager resolver management: exit status 1</code></pre>
<p>It seems like <a href="https://nextdns.io/?from=tuts3r6c" target="_blank" rel="noreferrer noopener">NextDNS</a> was actually running, but just throwing an error when running <code>nextdns activate</code>. Restarting did seem to work without throwing any error.</p>
<p>The logs showed the same error:</p>
<pre class="wp-block-code"><code>Dec 20 14:06:20 tyr nextdns&#91;5753]: Starting NextDNS 1.38.0/linux on :53
Dec 20 14:06:20 tyr nextdns&#91;5753]: Listening on TCP/:53
Dec 20 14:06:20 tyr nextdns&#91;5753]: Starting mDNS discovery
Dec 20 14:06:20 tyr nextdns&#91;5753]: Listening on UDP/:53
Dec 20 14:06:21 tyr nextdns&#91;5753]: Connected 45.90.28.0:443 (con=13ms tls=58ms, TCP, TLS13)
Dec 20 14:06:21 tyr nextdns&#91;5753]: Connected 185.18.148.91:443 (con=12ms tls=28ms, TCP, TLS13)
Dec 20 14:06:21 tyr nextdns&#91;5753]: Switching endpoint: https://dns.nextdns.io#185.18.148.91,2a04:b80:1:30::2
Dec 20 14:06:25 tyr nextdns&#91;5753]: Setting up router
Dec 20 14:06:25 tyr nextdns&#91;5753]: Activating
Dec 20 14:06:25 tyr nextdns&#91;5753]: Activate: NetworkManager resolver management: exit status 1</code></pre>
<p>The solution was (as root):</p>
<pre class="wp-block-code"><code>apt install network-manager resolvconf -y
systemctl enable NetworkManager
systemctl start NetworkManager
nextdns activate</code></pre>
<p>Looks like, instead of <code>resolvconf</code>, <code>openresolv</code> was installed. </p>
<p>First time I heard about <a rel="noreferrer noopener" href="https://wiki.archlinux.org/title/Openresolv" target="_blank">openresolv</a>; usually resolvconf is the default. Not entirely sure if this was the culprit (and NetworkManager not being started) but the errors are now gone. </p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>dns</category><category>nextdns</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>Google TV recommendations</title>
      <link>https://yeri.be/google-tv-recommendations/</link>
      <pubDate>Thu, 08 Dec 2022 13:01:31 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/google-tv-recommendations/</guid><enclosure url="https://static.yeri.be/2022/12/google_tv_recommendations.jpeg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Google recently updated their &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://tv.google/&#34; target=&#34;_blank&#34;&gt;Google TV&lt;/a&gt;, to include &#34;in your face&#34; supposedly recommendations.&lt;/p&gt;&#xA;&lt;p&gt;I don&#39;t mind recommendations if...:&lt;/p&gt;&#xA;&lt;p&gt;a/ they are useful (i.e. I don&#39;t see how kid shows are something I&#39;d be interested in; and Google has no idea &lt;a href=&#34;https://ila.tw&#34; data-type=&#34;post&#34; data-id=&#34;69860&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Ila&lt;/a&gt; exists, and she&#39;s at least 2-3 years too young to watch those shows anyway).&lt;/p&gt;&#xA;&lt;p&gt;b/ the recommendations would be for apps and subscriptions I actually have. Don&#39;t recommend me something on Amazon Prime if I don&#39;t have Amazon Prime installed, nor an active subscription. Idem dito for Disney+. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/12/google_tv_recommendations.jpeg" alt="Google TV recommendations"></p><p>Google recently updated their <a rel="noreferrer noopener" href="https://tv.google/" target="_blank">Google TV</a>, to include "in your face" supposedly recommendations.</p>
<p>I don't mind recommendations if...:</p>
<p>a/ they are useful (i.e. I don't see how kid shows are something I'd be interested in; and Google has no idea <a href="https://ila.tw" data-type="post" data-id="69860" target="_blank" rel="noreferrer noopener">Ila</a> exists, and she's at least 2-3 years too young to watch those shows anyway).</p>
<p>b/ the recommendations would be for apps and subscriptions I actually have. Don't recommend me something on Amazon Prime if I don't have Amazon Prime installed, nor an active subscription. Idem dito for Disney+. </p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2022/12/google_tv_top_picks.jpg" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/12/google_tv_top_picks-1024x768.jpg" alt="" class="wp-image-71068"/></a><figcaption class="wp-element-caption">Mumu is not impressed. And neither am I. Didn't even know YouTube had TV Series and I honestly couldn't care less. </figcaption></figure>
<p>Google had recommendations before but at the bottom of the app list. It was not so much in your face. Now it's all the way on top and I need to click 2x down on the remote before getting access to the apps (Netflix, Kodi, Youtube, etc). </p>
<p>So far the best method I found was to enable your Google TV in <a rel="noreferrer noopener" href="https://support.google.com/googletv/answer/10070784?hl=en" target="_blank">apps-only mode</a>. It turns off ALL recommendations (so your home screen becomes rather bare; but at least less clicking). Note that the article doesn't mention rebooting the device; but I had to restart it to get rid of all the <s>ads</s> recommendations. </p>
<pre class="wp-block-code"><code>Turn on Apps only mode:

1. On a Google TV device, from the home screen, scroll to your profile.
2. Select Settings.
3. Select Accounts &amp; Sign In.
4. Select your profile.
5. Select Apps only mode and then Continue.
7. Reboot the device</code></pre>
]]></content:encoded>
      <category>google</category><category>software</category>
      <category>ad</category><category>chrome</category>
    </item>
    
    <item>
      <title>Kagi</title>
      <link>https://yeri.be/kagi/</link>
      <pubDate>Mon, 28 Nov 2022 14:45:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/kagi/</guid><enclosure url="https://static.yeri.be/2022/11/kagi.png" length="0" type="image/png" />
      <description>&lt;p&gt;It&#39;s now been roughly 6 months I&#39;ve switched from DuckDuckGo to &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;http://kagi.com&#34; target=&#34;_blank&#34;&gt;Kagi&lt;/a&gt;. I started paying right away after roughly the one month trial. &lt;/p&gt;&#xA;&lt;p&gt;I had not been very happy with DDG; mostly the results were very low quality (having to switch back to Google one too many times; results often lagged behind by months of publishing), many &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://thejollyteapot.com/2022/10/28/something-is-rotten-in-the-state-of-bing-search&#34; target=&#34;_blank&#34;&gt;search bugs&lt;/a&gt;, and there&#39;s been &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://www.wired.com/story/duckduckgo-microsoft-twitter-ft-bush-assassination-whatsapp/&#34; target=&#34;_blank&#34;&gt;that thing&lt;/a&gt; with Bing advertising, and generally not seeing many improvements over the ~2 years I tried to use it full-time. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/11/kagi.png" alt="Kagi"></p><p>It's now been roughly 6 months I've switched from DuckDuckGo to <a rel="noreferrer noopener" href="http://kagi.com" target="_blank">Kagi</a>. I started paying right away after roughly the one month trial. </p>
<p>I had not been very happy with DDG; mostly the results were very low quality (having to switch back to Google one too many times; results often lagged behind by months of publishing), many <a rel="noreferrer noopener" href="https://thejollyteapot.com/2022/10/28/something-is-rotten-in-the-state-of-bing-search" target="_blank">search bugs</a>, and there's been <a rel="noreferrer noopener" href="https://www.wired.com/story/duckduckgo-microsoft-twitter-ft-bush-assassination-whatsapp/" target="_blank">that thing</a> with Bing advertising, and generally not seeing many improvements over the ~2 years I tried to use it full-time. </p>
<p>Kagi, on the other hand, has his search engine worked out. I know they also pull data from Bing, but also <a rel="noreferrer noopener" href="https://help.kagi.com/kagi/search-details/search-sources.html?highlight=bing#search-sources" target="_blank">various other sources</a> (apparently that includes Google) and their own scraper (<a rel="noreferrer noopener" href="https://teclis.com/" target="_blank">Teclis</a>, <a rel="noreferrer noopener" href="https://tinygem.org/" target="_blank">TinyGem</a>), etc. </p>
<p>You can compare the Google and Kagi results. While not entirely the same, I don't think <a href="https://www.google.com/search?q=yeri+tiete" target="_blank" rel="noreferrer noopener">Google</a>'s are better than <a href="https://kagi.com/search?q=yeri+tiete&amp;r=sg&amp;sh=hhfGTSPJzxpvClu7hRuEWA" target="_blank" rel="noreferrer noopener">Kagi</a>'s. </p>
<p>So search is <em>really</em> good and I very very rarely ever need to head back to Google. Only for very obscure errors with very few results, and Google almost never has a better answer. </p>
<p>It also adds some cool other features, like rewriting URLs. </p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2022/11/reddit-ukraine.png" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/11/reddit-ukraine-1024x588.png" alt="" class="wp-image-71020"/></a><figcaption class="wp-element-caption">reddit.com URLs getting rewritten to reddit.superuser.one.</figcaption></figure>
<p>For example, I run my own <a rel="noreferrer noopener" href="https://github.com/libreddit/libreddit" target="_blank">Libreddit</a>, so when search results include reddit, I can now redirect to <a rel="noreferrer noopener" href="https://reddit.superuser.one/" target="_blank">my own Reddit instance</a> (sorry, you won't have access).  </p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2022/11/kagi-rewrite-rules.png" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/11/kagi-rewrite-rules-1024x571.png" alt="" class="wp-image-71021"/></a><figcaption class="wp-element-caption">My current rewrite rules. Rewrite AMP and reddit. </figcaption></figure>
<p>There's a bunch of other cool stuff, like Bangs (short codes that would redirect directly to a site, for example <code>w</code> for wiki -- so <code>w flightradar</code> would show <a rel="noreferrer noopener" href="https://en.wikipedia.org/wiki/Flightradar24" target="_blank">this result instantly</a>; and there's more like hackernews, reddit, google, etc).</p>
<p>You can also lower priority of certain sites. Seeing too much Tiktok or Pinterest? Want to boost Hackernew results? All possible!</p>
<p>To make it work on iOS, you need to <a rel="noreferrer noopener" href="https://help.kagi.com/kagi/getting-started/setting-default.html" target="_blank">install a browser extension</a>, but that works relatively well (it rewrites your search from Google to Kagi). </p>
<p>I was a bit apprehensive as it's a very small team, and they are also trying to reinvent the browser space with <a rel="noreferrer noopener" href="https://browser.kagi.com/" target="_blank">Orion</a>, which is a cut-throat tough market to get in. Two massive enterprises that would need a lot of funding and a lot of dev time. </p>
<p>Orion is based on Safari, and far from good enough to replace Firefox, but I'm actually mildly enthusiastic about this project as well. </p>
<p>The company is very <a href="https://blog.kagi.com/status-update-first-three-months#financials" target="_blank" rel="noreferrer noopener">transparent</a> and there's <a href="https://kagi.com/changelog" target="_blank" rel="noreferrer noopener">clear progress</a>. If you want to get involved, they also have a <a href="https://kagi.com/discord">Discord</a> and a <a href="https://kagifeedback.org/" target="_blank" rel="noreferrer noopener">feedback/bug</a> forum.</p>
<figure class="wp-block-image alignwide size-large"><a href="https://static.yeri.be/2022/11/kagi-usage.png" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/11/kagi-usage-1024x666.png" alt="" class="wp-image-71024"/></a><figcaption class="wp-element-caption">They don't log your search queries, but show your total searches and what it costs them to handle those searches (server (GCP), API costs, etc). </figcaption></figure>
<p>I'm considering a <a rel="noreferrer noopener" href="https://blog.kagi.com/status-update-first-three-months#future" target="_blank">family plan</a> and will force <a href="https://yeri.be/tag/shanwong">Shan</a> to switch once released.  </p>
<p>So, all things considered, quite excited about this. Looking forward to see if they can revolutionise search. And I truly hope they make it. </p>
<p>The only thing I don't like is that their <a href="https://kagi.com/faq#kagi-logo" target="_blank" rel="noreferrer noopener">logo</a> looks too much like Google's... 🙈</p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>google</category>
    </item>
    
    <item>
      <title>Mastodon server: R2</title>
      <link>https://yeri.be/mastodon-server-r2/</link>
      <pubDate>Tue, 22 Nov 2022 11:49:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mastodon-server-r2/</guid><enclosure url="https://static.yeri.be/2022/11/cf-r2.png" length="0" type="image/png" />
      <description>&lt;p&gt;This is a very short post because to be honest, I &lt;a href=&#34;https://m.superuser.one/@lxcid@kopiti.am/109374284873832578&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;didn&#39;t figure much out myself&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;My uploads/static files are now saved in &lt;a href=&#34;http://web.archive.org/web/20230723095440/https://www.cloudflare.com/en-gb/products/r2/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;R2&lt;/a&gt; under &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://media.m.superuser.one/media_attachments/files/109/385/863/456/667/693/original/764c92352c9e9b5a.jpg&#34; target=&#34;_blank&#34;&gt;its own URL&lt;/a&gt; (part of my enterprise zone) so that my &lt;a href=&#34;https://developers.cloudflare.com/r2/data-access/public-buckets/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;normal caching rules&lt;/a&gt; and other settings are applied.&lt;/p&gt;&#xA;&lt;p&gt;Add &lt;a href=&#34;https://github.com/mastodon/mastodon/issues/20416#issuecomment-1312454331&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;these&lt;/a&gt; to your application.env file:&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;3_ENABLED = &#34;true&#34;&#xA;S3_BUCKET = &#34;&amp;lt;bucket name&gt;&#34;&#xA;S3_ENDPOINT = &#34;https://&amp;lt;some-id&gt;.r2.cloudflarestorage.com&#34;&#xA;S3_ALIAS_HOST = &#34;&amp;lt;connected domain&gt;&#34; &#xA;S3_PERMISSION = &#34;private&#34;&#xA;AWS_ACCESS_KEY_ID = &#34;&amp;lt;access_key&gt;&#34;&#xA;AWS_SECRET_ACCESS_KEY = &#34;&amp;lt;secret_access_key&gt;&#34;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The token/API key is a bit hard to find, but it&#39;s on &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://developers.cloudflare.com/r2/data-access/s3-api/tokens/&#34; target=&#34;_blank&#34;&gt;the top right&lt;/a&gt;. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/11/cf-r2.png" alt="Mastodon server: R2"></p><p>This is a very short post because to be honest, I <a href="https://m.superuser.one/@lxcid@kopiti.am/109374284873832578" target="_blank" rel="noreferrer noopener">didn't figure much out myself</a>.</p>
<p>My uploads/static files are now saved in <a href="http://web.archive.org/web/20230723095440/https://www.cloudflare.com/en-gb/products/r2/" target="_blank" rel="noreferrer noopener">R2</a> under <a rel="noreferrer noopener" href="https://media.m.superuser.one/media_attachments/files/109/385/863/456/667/693/original/764c92352c9e9b5a.jpg" target="_blank">its own URL</a> (part of my enterprise zone) so that my <a href="https://developers.cloudflare.com/r2/data-access/public-buckets/" target="_blank" rel="noreferrer noopener">normal caching rules</a> and other settings are applied.</p>
<p>Add <a href="https://github.com/mastodon/mastodon/issues/20416#issuecomment-1312454331" target="_blank" rel="noreferrer noopener">these</a> to your application.env file:</p>
<pre class="wp-block-code"><code>3_ENABLED = "true"
S3_BUCKET = "&lt;bucket name>"
S3_ENDPOINT = "https://&lt;some-id>.r2.cloudflarestorage.com"
S3_ALIAS_HOST = "&lt;connected domain>" 
S3_PERMISSION = "private"
AWS_ACCESS_KEY_ID = "&lt;access_key>"
AWS_SECRET_ACCESS_KEY = "&lt;secret_access_key>"</code></pre>
<p>The token/API key is a bit hard to find, but it's on <a rel="noreferrer noopener" href="https://developers.cloudflare.com/r2/data-access/s3-api/tokens/" target="_blank">the top right</a>. </p>
<p>Then (re)deploy your site. </p>
<pre class="wp-block-verse">I did set up a <a rel="noreferrer noopener" href="http://m.superuser.one/@yeri" target="_blank">new server</a> (my RPi4 started to struggle, and I guess if I'm half serious about Mastodon, I shouldn't host it at home), so I started afresh... But there's a way to migrate existing data to R2 as well, following <a rel="noreferrer noopener" href="https://stanislas.blog/2018/05/moving-mastodon-media-files-to-wasabi-object-storage/" target="_blank">this guide</a>. </pre>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>cloudflare</category><category>fediverse</category><category>mastodon</category>
    </item>
    
    <item>
      <title>Free speech</title>
      <link>https://yeri.be/free-speech/</link>
      <pubDate>Sat, 19 Nov 2022 12:56:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/free-speech/</guid><enclosure url="https://static.yeri.be/2022/11/free-speech.jpg" length="0" type="image/jpeg" />
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&#xA;&lt;p&gt;I specifically disagree with his stance on free speech, because I think that it depends on your interpretation of what free speech means. If you allow the most intolerant voices to be as loud as they want to, you’re going to shut down voices of different opinions as well. So allowing free speech by just allowing all speech is not actually leading to free speech, it just leads to a cesspit of hate.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/11/free-speech.jpg" alt="Free speech"></p><blockquote class="wp-block-quote">
<p>I specifically disagree with his stance on free speech, because I think that it depends on your interpretation of what free speech means. If you allow the most intolerant voices to be as loud as they want to, you’re going to shut down voices of different opinions as well. So allowing free speech by just allowing all speech is not actually leading to free speech, it just leads to a cesspit of hate.</p>
<p>I think that is a very uniquely American idea of creating this marketplace of ideas where you can say anything you want completely without limits. It is very foreign to the German mindset where we, in our Constitution, our number one priority is maintaining human dignity. And so, hate speech is not part of the German concept of free speech, for example. So I think that when Elon Musk says that everything’s gonna be allowed, or whatever, I generally disagree with that.</p>
<cite><em>Source: </em><a href="https://time.com/6229230/mastodon-eugen-rochko-interview/" target="_blank" rel="noreferrer noopener">Time.com</a> interview with <a href="https://en.wikipedia.org/wiki/Eugen_Rochko" target="_blank" rel="noreferrer noopener">Eugen Rochko</a></cite></blockquote>
]]></content:encoded>
      <category>misc</category><category>software</category>
      <category>germany</category><category>mastodon</category><category>politics</category><category>twitter</category><category>usa</category>
    </item>
    
    <item>
      <title>Heads we win, tails he loses</title>
      <link>https://yeri.be/heads-we-win-tails-he-loses/</link>
      <pubDate>Fri, 18 Nov 2022 17:54:33 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/heads-we-win-tails-he-loses/</guid><enclosure url="https://static.yeri.be/2022/11/twitter.jpg" length="0" type="image/jpeg" />
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&#xA;&lt;p&gt;Regardless of what happens to Twitter, Elon Musk is without a doubt the most interesting man in the world right now. He&#39;s positioned himself at the intersection of so many trends and topics that it&#39;s hard to keep count, and through it all, he&#39;s tweeting memes. It&#39;s the greatest show on earth, no work of fiction could ever hope to compete.&lt;/p&gt;&#xA;&lt;p&gt;It&#39;s also incredibly divisive. Not since Trump has a single character managed to invoke such extreme levels of love and hate on the world stage for weeks at the time. Nor has anyone been able to play the media like a fiddle with such virtuosity.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/11/twitter.jpg" alt="Heads we win, tails he loses"></p><blockquote class="wp-block-quote">
<p>Regardless of what happens to Twitter, Elon Musk is without a doubt the most interesting man in the world right now. He's positioned himself at the intersection of so many trends and topics that it's hard to keep count, and through it all, he's tweeting memes. It's the greatest show on earth, no work of fiction could ever hope to compete.</p>
<p>It's also incredibly divisive. Not since Trump has a single character managed to invoke such extreme levels of love and hate on the world stage for weeks at the time. Nor has anyone been able to play the media like a fiddle with such virtuosity.</p>
<p>Thankfully the stakes are so much lower, though. Musk might be firing rockets into space, but they won't accidentally have any nuclear warheads on them. His media trolling isn't coming from within the White House. This reality show is playing out over something as disposable as a struggling social media website.</p>
<p>Furthermore, the world doesn't need Twitter. In fact, the world would almost certainly be better off without Twitter.</p>
<p>That's what makes this show so guiltlessly entertaining to watch: Whichever the outcome, the world wins. If Musk manages to fix Twitter, we're left with a better Twitter. Great! If Musk manages to burn down Twitter, we're left with a world free of Twitter. Great!</p>
<p>This is a 44 billion dollar gamble where the rest of us will win whatever the outcome.</p>
<cite><em>Source: </em><a rel="noreferrer noopener" href="https://world.hey.com/dhh/heads-we-win-tails-he-loses-16ba4116" target="_blank">David Heinemeier</a> from 37signals and Hey</cite></blockquote>
]]></content:encoded>
      <category>software</category>
      <category>politics</category><category>twitter</category>
    </item>
    
    <item>
      <title>Using Mastodon with Cloudflare</title>
      <link>https://yeri.be/using-mastodon-with-cloudflare/</link>
      <pubDate>Wed, 16 Nov 2022 16:07:46 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/using-mastodon-with-cloudflare/</guid><enclosure url="https://static.yeri.be/2022/11/mastodon.png" length="0" type="image/png" />
      <description>&lt;p&gt;If you&#39;re using Mastodon with Cloudflare CDN/protection and &lt;a href=&#34;http://web.archive.org/web/20230202013849/https://support.cloudflare.com/hc/en-us/articles/200168196-Using-Cloudflare-Auto-Minify&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;minify&lt;/a&gt; turned on, you&#39;ll notice the site may look broken (after a few visits, when hitting Cloudflare cache).&lt;/p&gt;&#xA;&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2022/11/Screenshot-2022-11-15-at-16.00.15.png&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2022/11/Screenshot-2022-11-15-at-16.00.15-1024x944.png&#34; alt=&#34;&#34; class=&#34;wp-image-70935&#34;/&gt;&lt;/a&gt;&lt;figcaption class=&#34;wp-element-caption&#34;&gt;Yeah, that&#39;s not how it&#39;s supposed to look.&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;p&gt;And you&#39;ll notice errors in the webdev tools similar to &lt;code&gt;Failed to find a valid digest in the &#39;integrity&#39; attribute, with computed SHA-256 integrity&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;Failed to find a valid digest in the &#39;integrity&#39; attribute for resource &#39;https://mastodon.yeri.be/packs/js/common-997d98113e1e433a9a9f.js&#39; with computed SHA-256 integrity &#39;YgEhHmwjKL88zKfUOMt/qRulYurIuHzhn4SZC9QQ5Mg=&#39;. The resource has been blocked.&#xA;@yeri:1 Failed to find a valid digest in the &#39;integrity&#39; attribute for resource &#39;https://mastodon.yeri.be/packs/js/locale_en-f70344940a5a8f625e92.chunk.js&#39; with computed SHA-256 integrity &#39;1VgpQjY/9w/fgRLw1QH2pfzqr36p3hINvg9ahpBiI2U=&#39;. The resource has been blocked.&#xA;@yeri:1 Failed to find a valid digest in the &#39;integrity&#39; attribute for resource &#39;https://mastodon.yeri.be/packs/js/public-a52a3460655116c9cf18.chunk.js&#39; with computed SHA-256 integrity &#39;onh6vHxzykkVgJkiww+OCPk0tKC48KMUD9GVJ8/LKJQ=&#39;. The resource has been blocked.&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Basically, the sha256 hash doesn&#39;t match the js or css static files. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/11/mastodon.png" alt="Using Mastodon with Cloudflare"></p><p>If you're using Mastodon with Cloudflare CDN/protection and <a href="http://web.archive.org/web/20230202013849/https://support.cloudflare.com/hc/en-us/articles/200168196-Using-Cloudflare-Auto-Minify" target="_blank" rel="noreferrer noopener">minify</a> turned on, you'll notice the site may look broken (after a few visits, when hitting Cloudflare cache).</p>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2022/11/Screenshot-2022-11-15-at-16.00.15.png" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/11/Screenshot-2022-11-15-at-16.00.15-1024x944.png" alt="" class="wp-image-70935"/></a><figcaption class="wp-element-caption">Yeah, that's not how it's supposed to look.</figcaption></figure>
<p>And you'll notice errors in the webdev tools similar to <code>Failed to find a valid digest in the 'integrity' attribute, with computed SHA-256 integrity</code>:</p>
<pre class="wp-block-code"><code>Failed to find a valid digest in the 'integrity' attribute for resource 'https://mastodon.yeri.be/packs/js/common-997d98113e1e433a9a9f.js' with computed SHA-256 integrity 'YgEhHmwjKL88zKfUOMt/qRulYurIuHzhn4SZC9QQ5Mg='. The resource has been blocked.
@yeri:1 Failed to find a valid digest in the 'integrity' attribute for resource 'https://mastodon.yeri.be/packs/js/locale_en-f70344940a5a8f625e92.chunk.js' with computed SHA-256 integrity '1VgpQjY/9w/fgRLw1QH2pfzqr36p3hINvg9ahpBiI2U='. The resource has been blocked.
@yeri:1 Failed to find a valid digest in the 'integrity' attribute for resource 'https://mastodon.yeri.be/packs/js/public-a52a3460655116c9cf18.chunk.js' with computed SHA-256 integrity 'onh6vHxzykkVgJkiww+OCPk0tKC48KMUD9GVJ8/LKJQ='. The resource has been blocked.</code></pre>
<p>Basically, the sha256 hash doesn't match the js or css static files. </p>
<p>This happens because Cloudflare minifies those files and thus the hash has been changed.</p>
<p>To get it to work correctly, you'll need to create a Page Rule via <code>Rules > Page Rules > Create Page Rule</code> with the following info: </p>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2022/11/page-rule.png" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/11/page-rule-1024x500.png" alt="" class="wp-image-70937"/></a><figcaption class="wp-element-caption">The page rule created; in this screenshot, the rule is still turned off.</figcaption></figure>
<ul>
<li>URL: YourMastodonURL.com/packs/*</li>
<li>Settings: Auto Minify: off (do not select anything)</li>
<li>Rocket Loader: slider off</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2022/11/page-rule-details.png" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/11/page-rule-details-1011x1024.png" alt="" class="wp-image-70938"/></a><figcaption class="wp-element-caption">Details on the page rule. Save and deploy.</figcaption></figure>
<p>Don't forget to purge your cache via the dashboard (for the Mastodon domain) via <code>Caching > Custom Purge > Hostname > YourMastodonURL.com</code>.</p>
]]></content:encoded>
      <category>errors</category><category>software</category><category>www</category>
      <category>cloudflare</category><category>fediverse</category><category>javascript</category><category>mastodon</category>
    </item>
    
    <item>
      <title>Mastodon server: email</title>
      <link>https://yeri.be/mastodon-server-email/</link>
      <pubDate>Sun, 13 Nov 2022 23:19:45 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mastodon-server-email/</guid><enclosure url="https://static.yeri.be/2022/11/mastodon-mail.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Always a hassle to get mail delivery to work. &lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-verse&#34;&gt;Had a similar problem with a VoIP (&lt;a href=&#34;https://developer.vonage.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Nexmo&lt;/a&gt; SMS/call forwarding) tool that just refused to work using local mail servers without a valid cert. Gave up and started using Mailgun. &lt;/pre&gt;&#xA;&lt;p&gt;Long story short: use something like Mailgun or another provider. &lt;/p&gt;&#xA;&lt;p&gt;Using localhost SMTP server support seems to be limited if you don&#39;t have working certs. &lt;a rel=&#34;noreferrer noopener&#34; href=&#34;https://docs.joinmastodon.org/admin/config/#email&#34; target=&#34;_blank&#34;&gt;The documentation&lt;/a&gt; is also lacking as to what does what. Didn&#39;t figure out how to have it ignore SSL. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/11/mastodon-mail.jpg" alt="Mastodon server: email"></p><p>Always a hassle to get mail delivery to work. </p>
<pre class="wp-block-verse">Had a similar problem with a VoIP (<a href="https://developer.vonage.com/" target="_blank" rel="noreferrer noopener">Nexmo</a> SMS/call forwarding) tool that just refused to work using local mail servers without a valid cert. Gave up and started using Mailgun. </pre>
<p>Long story short: use something like Mailgun or another provider. </p>
<p>Using localhost SMTP server support seems to be limited if you don't have working certs. <a rel="noreferrer noopener" href="https://docs.joinmastodon.org/admin/config/#email" target="_blank">The documentation</a> is also lacking as to what does what. Didn't figure out how to have it ignore SSL. </p>
<p>This is what worked for me, using Mailgun server:</p>
<pre class="wp-block-code"><code>SMTP_SERVER=smtp.eu.mailgun.org
SMTP_PORT=465
SMTP_LOGIN=mastodon@your.domain
SMTP_PASSWORD=some-password
SMTP_FROM_ADDRESS=you@anything.com
SMTP_DELIVERY_METHOD=smtp
SMTP_SSL=true
SMTP_ENABLE_STARTTLS_AUTO=false
SMTP_AUTH_METHOD=plain
SMTP_OPENSSL_VERIFY_MODE=none</code></pre>
<p>And it looks like I'm <a href="https://peterbabic.dev/blog/setting-up-smtp-in-mastodon/" target="_blank" rel="noreferrer noopener">not the only one</a> struggling.</p>
]]></content:encoded>
      <category>linux</category><category>software</category>
      <category>fediverse</category><category>mail</category><category>mastodon</category>
    </item>
    
    <item>
      <title>Feed2Toot</title>
      <link>https://yeri.be/feed2toot/</link>
      <pubDate>Sat, 12 Nov 2022 16:36:32 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/feed2toot/</guid><enclosure url="https://static.yeri.be/2023/10/toot.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Started looking into a service to auto-post from this blog onto my &lt;a href=&#34;https://m.superuser.one&#34; data-type=&#34;URL&#34; data-id=&#34;m.superuser.one&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Mastodon&lt;/a&gt; feed. &lt;a href=&#34;https://feed2toot.readthedocs.io/en/latest/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Feed2Toot&lt;/a&gt; fit the bill perfectly. &lt;/p&gt;&#xA;&lt;p&gt;I wanted to run the whole thing from a Docker container, though, so I&#39;ll quickly write a how-to.&lt;/p&gt;&#xA;&lt;p&gt;This whole thing runs from a Raspberry Pi, as root. No k8s or k3s for me. The path I use is &lt;code&gt;/root/git/feed2toot/&lt;/code&gt;, so be sure to modify that to whatever you&#39;re using.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2023/10/toot.jpg" alt="Feed2Toot"></p><p>Started looking into a service to auto-post from this blog onto my <a href="https://m.superuser.one" data-type="URL" data-id="m.superuser.one" target="_blank" rel="noreferrer noopener">Mastodon</a> feed. <a href="https://feed2toot.readthedocs.io/en/latest/" target="_blank" rel="noreferrer noopener">Feed2Toot</a> fit the bill perfectly. </p>
<p>I wanted to run the whole thing from a Docker container, though, so I'll quickly write a how-to.</p>
<p>This whole thing runs from a Raspberry Pi, as root. No k8s or k3s for me. The path I use is <code>/root/git/feed2toot/</code>, so be sure to modify that to whatever you're using.</p>
<p>First off, <a rel="noreferrer noopener" href="https://feed2toot.readthedocs.io/en/latest/configure.html" target="_blank">get your credentials</a> for the app. You can either install the Feed2Toot package on a system (i.e. throwaway VM, to keep it clean), or use the Docker container below, but add <code>RUN apk add bash</code> and change the last line to <code>CMD ["bash"]</code> and then chroot into it via <code>docker exec -it feed2toot bash</code>.</p>
<p>This will generate two files (<code>feed2toot_clientcred.txt</code> and <code>feed2toot_usercred.txt</code>). Be sure to save these.</p>
<p>You can also try to run Feed2Toot at least once to make sure it's working and to fine-tune your <code>ini</code> file. This is mine:</p>
<pre class="wp-block-code"><code>&#91;mastodon]
instance_url=https://m.superuser.one
; Here you need the two files created by register_feed2toot_app
user_credentials=/etc/feed2toot/feed2toot_usercred.txt
client_credentials=/etc/feed2toot/feed2toot_clientcred.txt
; Default visibility is public, but you can override it:
; toot_visibility=unlisted

&#91;cache]
cachefile=/feed2toot/feed2toot.db
cache_limit=10000

&#91;lock]
lock_file=/var/lock/feed2toot.lock
lock_timeout=3600

&#91;rss]
uri=https://yeri.be/feed
; uri_list=/feed2toot/rsslist.txt
toot={title} {link}
; toot_max_len=500
title_pattern=Open Source
title_pattern_case_sensitive=true
no_uri_pattern_no_global_pattern=true
; ignore_ssl=false

&#91;hashtaglist]
; several_words_hashtags_list=/feed2toot/hashtags.txt
; no_tags_in_toot=false

&#91;feedparser]
; accept_bozo_exceptions=true

&#91;media]
; custom=/var/lib/feed2toot/media/logo.png</code></pre>
<p>I have three other files to make this work, first off <code>Dockerfile</code>:</p>
<pre class="wp-block-code"><code>FROM python:3.6-alpine
RUN pip3 install feed2toot &amp;&amp; mkdir -p /etc/feed2toot/
COPY feed2toot.ini feed2toot_clientcred.txt feed2toot_usercred.txt /etc/feed2toot/
VOLUME /feed2toot/
CMD &#91;"feed2toot", "-c", "/etc/feed2toot/feed2toot.ini"]</code></pre>
<p>The script I run to build the container (<code>start.sh</code>):</p>
<pre class="wp-block-code"><code>#!/bin/bash
git pull

BASEIMAGE=`cat Dockerfile | grep FROM | awk '{print $2}'`
docker pull $BASEIMAGE
docker stop feed2toot
docker rm feed2toot
docker build -t feed2toot .
./run.sh</code></pre>
<p>And finally, the script to run the container every so often (<code>run.sh</code>):</p>
<pre class="wp-block-code"><code>#!/bin/bash
docker run -d --rm -v /srv/mastodon/feed2toot/:/feed2toot/ --name feed2toot feed2toot</code></pre>
<p>This will save the database file under <code>/srv/mastodon/</code>, to preserve states across rebuilds.</p>
<p>Note that once Feed2Toot runs, it'll exit, and the container will be stopped. So it does not automatically run all the time. </p>
<p>So, you'll want to run this every so often. You can add a file to <code>/etc/cron.d/</code> to run it, for example, every six hours:</p>
<pre class="wp-block-code"><code>#
# cron-jobs for feed2toot
#

MAILTO=root

0 */6 * * *		root	if &#91; -x /root/git/feed2toot/run.sh ]; then /root/git/feed2toot/run.sh &gt;/dev/null; fi</code></pre>
<p>That's it. Should do the trick. It'll now post stuff from your RSS feed onto your timeline. </p>
<p>Oh, and Jeroen has <a rel="noreferrer noopener" href="https://www.forceflow.be/2022/11/11/moving-from-twitter-to-mastodon/" target="_blank">a good post</a> about Mastodon.</p>
]]></content:encoded>
      <category>linux</category><category>software</category><category>virtualisation</category>
      <category>blog</category><category>docker</category><category>fediverse</category><category>mastodon</category>
    </item>
    
    <item>
      <title>Ikea Tradfri with Philips Hue</title>
      <link>https://yeri.be/ikea-tradfri-with-philips-hue/</link>
      <pubDate>Fri, 11 Nov 2022 09:47:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/ikea-tradfri-with-philips-hue/</guid><enclosure url="https://static.yeri.be/2022/11/star.png" length="0" type="image/png" />
      <description>&lt;p&gt;Recently visited Ikea and had to get a Christmas star-light like I used to have during my childhood. &lt;/p&gt;&#xA;&lt;figure class=&#34;wp-block-image aligncenter size-large&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2022/11/tradfri.jpg&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2022/11/tradfri-768x1024.jpg&#34; alt=&#34;&#34; class=&#34;wp-image-70798&#34;/&gt;&lt;/a&gt;&lt;figcaption class=&#34;wp-element-caption&#34;&gt;Star-light with Tradfri, Philips Hue in the table lamp, and a Kasa smartplug powered Ikea LED light. Oh and &lt;a href=&#34;http://instagram.com/tofurawr/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Taro&lt;/a&gt; in the corner.  &lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;p&gt;Most of my (non-track) light at home is smart using either a TP-Link Kasa smartplug or Philips Hue (and I want to avoid adding more brands, more apps, and more shit). However, Philips Hue is quite $$$ and not always all that easy to get in Singapore (shady retailers, limited stock, not many options).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/11/star.png" alt="Ikea Tradfri with Philips Hue"></p><p>Recently visited Ikea and had to get a Christmas star-light like I used to have during my childhood. </p>
<figure class="wp-block-image aligncenter size-large"><a href="https://static.yeri.be/2022/11/tradfri.jpg" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/11/tradfri-768x1024.jpg" alt="" class="wp-image-70798"/></a><figcaption class="wp-element-caption">Star-light with Tradfri, Philips Hue in the table lamp, and a Kasa smartplug powered Ikea LED light. Oh and <a href="http://instagram.com/tofurawr/" target="_blank" rel="noreferrer noopener">Taro</a> in the corner.  </figcaption></figure>
<p>Most of my (non-track) light at home is smart using either a TP-Link Kasa smartplug or Philips Hue (and I want to avoid adding more brands, more apps, and more shit). However, Philips Hue is quite $$$ and not always all that easy to get in Singapore (shady retailers, limited stock, not many options).</p>
<p>I knew that <a href="https://www.ikea.com/sg/en/p/tradfri-led-bulb-e14-470-lumen-smart-wireless-dimmable-white-spectrum-globe-20489730/">Tradfri</a> was technically compatible with the Hue Bridge, but never made the jump as I just wanted things to work (don't want to mess around with lights). Until today. Figured I may as well give it a go.</p>
<p>Surprisingly, everything worked out of the box. I had to do a factory reset (not sure if that's because I kept the light on for ~10 minutes before trying to set it up, or if this was a returned product as clearly the box had been opened before)...</p>
<figure class="wp-block-image aligncenter size-large"><a href="https://static.yeri.be/2022/11/Hue-settings.png" target="_blank" rel="noreferrer noopener"><img src="https://static.yeri.be/2022/11/Hue-settings-473x1024.png" alt="" class="wp-image-70799"/></a><figcaption class="wp-element-caption">Ikea light, in the Hue app.</figcaption></figure>
<ul>
<li>Turn on light</li>
<li>Reset light by turning it off and on 6 times</li>
<li>Open Philips Hue app and search/add light</li>
<li>Tada... Should work</li>
</ul>
<pre class="wp-block-verse">Side note: it requires a modern firmware (and I assume all lights being sold today have said firmware, but if for some reason you end up with old stock, you may need to update). To update you need the Ikea Bridge though (or... apparently the dimmers/buttons may work as well -- did not test).</pre>
<p>All the controls are working as well (dimming, changing colours, etc).</p>
<figure class="wp-block-video aligncenter"><video autoplay controls loop src="https://static.yeri.be/2022/11/light-settings-1.mp4"></video><figcaption class="wp-element-caption">Ikea Star light in the Hue app.</figcaption></figure>
<p></p>
]]></content:encoded>
      <category>hardware</category><category>networking</category><category>software</category>
      <category>christmas</category><category>homeassistant</category><category>interior</category><category>winter</category>
    </item>
    
    <item>
      <title>The pandemic is over: kill the QR menu</title>
      <link>https://yeri.be/the-pandemic-is-over-kill-the-qr-menu/</link>
      <pubDate>Mon, 31 Oct 2022 12:00:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/the-pandemic-is-over-kill-the-qr-menu/</guid><enclosure url="https://static.yeri.be/2022/10/qr.jpg" length="0" type="image/jpeg" />
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&#xA;&lt;p&gt;The QR-code menu—which you access by scanning a black-and-white square with your smartphone—has taken off ever since. It may dominate going forward. But I hope not, because I detest those digital menus. Never mind dying peacefully in my sleep; I want to go out while sitting in a restaurant on my 100th birthday, an aperitif in my left hand and a paper menu in my right. And as eager as I’ll be for heaven if I’m lucky enough to stand on its threshold, I want one last downward glance at a paramedic prying the menu from my fist. In that better future, where old-school menus endure, I’ll go to my urn happy that coming generations will still begin meals meeting one another’s eyes across a table instead of staring at a screen.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/10/qr.jpg" alt="The pandemic is over: kill the QR menu"></p><blockquote class="wp-block-quote">
<p>The QR-code menu—which you access by scanning a black-and-white square with your smartphone—has taken off ever since. It may dominate going forward. But I hope not, because I detest those digital menus. Never mind dying peacefully in my sleep; I want to go out while sitting in a restaurant on my 100th birthday, an aperitif in my left hand and a paper menu in my right. And as eager as I’ll be for heaven if I’m lucky enough to stand on its threshold, I want one last downward glance at a paramedic prying the menu from my fist. In that better future, where old-school menus endure, I’ll go to my urn happy that coming generations will still begin meals meeting one another’s eyes across a table instead of staring at a screen.</p>
<cite><em>Source</em>: <a rel="noreferrer noopener" href="https://www.theatlantic.com/ideas/archive/2022/10/qr-code-menus-restaurants-pandemic/671888/" target="_blank">The Atlantic</a></cite></blockquote>
<p>Every single restaurant in Singapore uses these terrible, crappy UI, QR code menus. They suck. It's time for them to die in a fire. The pandemic is over and there's no reason for them to be used. </p>
<p>I need to use my phone, I can't easily discuss with my party on who is ordering what by showing and sharing a menu, the internet often sucks, and the page fails to load (or takes forever), the UI is broken on a tiny screen (text/ingredients are not fully shown, impossible to scan through a one-pager with 100s of items), some restaurants explicitly ask you to order only from one phone (imagine having two phones ordering food! Nuclear disaster!!) and some of those apps/sites clear the cart when going "back" in the browser, and each have their own, terrible, UI built differently taking forever to figure it out).</p>
<p>Even worse are those menus where you need to fill in your credit card to pre-pay (god forbid using Apple/Google Pay) that block copying and pasting numbers (out of 1password) or clear the input field every time you tab out of the browser and for example into <a href="https://support.1password.com/getting-started-ios/" target="_blank" rel="noreferrer noopener">1password</a>). AAAARGGHHH.</p>
<p>For now, we can't escape them, but I will happily get out of my way to avoid a restaurant that uses QR codes and get into one that provides a proper menu.</p>
]]></content:encoded>
      <category>software</category>
      <category>food</category><category>singapore</category>
    </item>
    
    <item>
      <title>DALL-E: Mythical creatures</title>
      <link>https://yeri.be/dall-e-mythical-creatures/</link>
      <pubDate>Wed, 31 Aug 2022 13:35:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/dall-e-mythical-creatures/</guid>
      <description>&lt;div class=&#34;wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular&#34;&gt;&lt;div class=&#34;tiled-gallery__gallery&#34;&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70264&#34; data-link=&#34;https://yeri.be/?attachment_id=70264&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.13.08-fire-breathing-dragon-flying-in-space-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.13.08-fire-breathing-dragon-flying-in-space-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70265&#34; data-link=&#34;https://yeri.be/?attachment_id=70265&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.15.09-poster-of-a-dragon-eating-villagers-in-a-neon-lit-airport-terminal-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.15.09-poster-of-a-dragon-eating-villagers-in-a-neon-lit-airport-terminal-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70266&#34; data-link=&#34;https://yeri.be/?attachment_id=70266&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.15.51-phoenix-flying-over-tokyo-city-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.15.51-phoenix-flying-over-tokyo-city-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70267&#34; data-link=&#34;https://yeri.be/?attachment_id=70267&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.15.58-phoenix-flying-over-tokyo-city-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.15.58-phoenix-flying-over-tokyo-city-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70268&#34; data-link=&#34;https://yeri.be/?attachment_id=70268&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.16.14-phoenix-flying-over-tokyo-city-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.16.14-phoenix-flying-over-tokyo-city-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70269&#34; data-link=&#34;https://yeri.be/?attachment_id=70269&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.16.23-phoenix-flying-over-tokyo-city-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.16.23-phoenix-flying-over-tokyo-city-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:50.00000%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70270&#34; data-link=&#34;https://yeri.be/?attachment_id=70270&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.17.55-a-dragon-drawn-by-banksy-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.17.55-a-dragon-drawn-by-banksy-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:50.00000%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70271&#34; data-link=&#34;https://yeri.be/?attachment_id=70271&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.18.03-a-dragon-drawn-by-banksy-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.18.03-a-dragon-drawn-by-banksy-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
      <content:encoded><![CDATA[<div class="wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular"><div class="tiled-gallery__gallery"><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70264" data-link="https://yeri.be/?attachment_id=70264" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.13.08-fire-breathing-dragon-flying-in-space-digital-art-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.13.08-fire-breathing-dragon-flying-in-space-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70265" data-link="https://yeri.be/?attachment_id=70265" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.15.09-poster-of-a-dragon-eating-villagers-in-a-neon-lit-airport-terminal-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.15.09-poster-of-a-dragon-eating-villagers-in-a-neon-lit-airport-terminal-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70266" data-link="https://yeri.be/?attachment_id=70266" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.15.51-phoenix-flying-over-tokyo-city-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.15.51-phoenix-flying-over-tokyo-city-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70267" data-link="https://yeri.be/?attachment_id=70267" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.15.58-phoenix-flying-over-tokyo-city-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.15.58-phoenix-flying-over-tokyo-city-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70268" data-link="https://yeri.be/?attachment_id=70268" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.16.14-phoenix-flying-over-tokyo-city-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.16.14-phoenix-flying-over-tokyo-city-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70269" data-link="https://yeri.be/?attachment_id=70269" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.16.23-phoenix-flying-over-tokyo-city-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.16.23-phoenix-flying-over-tokyo-city-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70270" data-link="https://yeri.be/?attachment_id=70270" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.17.55-a-dragon-drawn-by-banksy-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.17.55-a-dragon-drawn-by-banksy-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70271" data-link="https://yeri.be/?attachment_id=70271" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.18.03-a-dragon-drawn-by-banksy-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.18.03-a-dragon-drawn-by-banksy-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div></div></div>
]]></content:encoded>
      <category>software</category>
      <category>ai</category>
    </item>
    
    <item>
      <title>DALL-E: Tigers</title>
      <link>https://yeri.be/dall-e-tigers/</link>
      <pubDate>Wed, 17 Aug 2022 13:57:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/dall-e-tigers/</guid>
      <description>&lt;div class=&#34;wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular&#34;&gt;&lt;div class=&#34;tiled-gallery__gallery&#34;&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70318&#34; data-link=&#34;https://yeri.be/?attachment_id=70318&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.06.21-cute-chinese-tiger-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.06.21-cute-chinese-tiger-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70319&#34; data-link=&#34;https://yeri.be/?attachment_id=70319&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.06.27-cute-chinese-tiger-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.06.27-cute-chinese-tiger-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70320&#34; data-link=&#34;https://yeri.be/?attachment_id=70320&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.06.39-cute-chinese-tiger-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.06.39-cute-chinese-tiger-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70323&#34; data-link=&#34;https://yeri.be/?attachment_id=70323&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.07.56-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.07.56-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70322&#34; data-link=&#34;https://yeri.be/?attachment_id=70322&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.08.03-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.08.03-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70324&#34; data-link=&#34;https://yeri.be/?attachment_id=70324&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.08.12-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.08.12-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70321&#34; data-link=&#34;https://yeri.be/?attachment_id=70321&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.09.55-slim-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-floating-island-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.09.55-slim-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-floating-island-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70325&#34; data-link=&#34;https://yeri.be/?attachment_id=70325&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.11.30-cute-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-a-tree-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.11.30-cute-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-a-tree-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70326&#34; data-link=&#34;https://yeri.be/?attachment_id=70326&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.11.38-cute-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-a-tree-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.11.38-cute-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-a-tree-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
      <content:encoded><![CDATA[<div class="wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular"><div class="tiled-gallery__gallery"><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70318" data-link="https://yeri.be/?attachment_id=70318" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.06.21-cute-chinese-tiger-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.06.21-cute-chinese-tiger-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70319" data-link="https://yeri.be/?attachment_id=70319" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.06.27-cute-chinese-tiger-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.06.27-cute-chinese-tiger-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70320" data-link="https://yeri.be/?attachment_id=70320" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.06.39-cute-chinese-tiger-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.06.39-cute-chinese-tiger-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70323" data-link="https://yeri.be/?attachment_id=70323" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.07.56-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.07.56-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70322" data-link="https://yeri.be/?attachment_id=70322" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.08.03-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.08.03-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70324" data-link="https://yeri.be/?attachment_id=70324" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.08.12-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.08.12-cute-sitting-chinese-tiger-with-paw-in-the-air-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70321" data-link="https://yeri.be/?attachment_id=70321" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.09.55-slim-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-floating-island-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.09.55-slim-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-floating-island-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70325" data-link="https://yeri.be/?attachment_id=70325" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.11.30-cute-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-a-tree-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.11.30-cute-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-a-tree-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70326" data-link="https://yeri.be/?attachment_id=70326" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.11.38-cute-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-a-tree-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.11.38-cute-sitting-chinese-tiger-with-paw-in-the-air-on-top-of-a-tree-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div></div></div>
]]></content:encoded>
      <category>software</category>
      <category>ai</category>
    </item>
    
    <item>
      <title>DALL-E: Cats</title>
      <link>https://yeri.be/dall-e-cats/</link>
      <pubDate>Mon, 01 Aug 2022 15:33:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/dall-e-cats/</guid>
      <description>&lt;div class=&#34;wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular&#34;&gt;&lt;div class=&#34;tiled-gallery__gallery&#34;&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70231&#34; data-link=&#34;https://yeri.be/?attachment_id=70231&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.00.04-a-cat-with-a-cape-saving-the-world-from-mice-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.00.04-a-cat-with-a-cape-saving-the-world-from-mice-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70232&#34; data-link=&#34;https://yeri.be/?attachment_id=70232&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.00.11-a-cat-with-a-cape-saving-the-world-from-mice-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.00.11-a-cat-with-a-cape-saving-the-world-from-mice-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70233&#34; data-link=&#34;https://yeri.be/?attachment_id=70233&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.01.55-a-painting-from-rene-magritte-of-a-cat-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.01.55-a-painting-from-rene-magritte-of-a-cat-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70234&#34; data-link=&#34;https://yeri.be/?attachment_id=70234&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.02.09-a-painting-from-rene-magritte-of-a-cat-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.02.09-a-painting-from-rene-magritte-of-a-cat-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70235&#34; data-link=&#34;https://yeri.be/?attachment_id=70235&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.02.14-a-painting-from-rene-magritte-of-a-cat-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.02.14-a-painting-from-rene-magritte-of-a-cat-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70236&#34; data-link=&#34;https://yeri.be/?attachment_id=70236&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.05.37-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.05.37-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70238&#34; data-link=&#34;https://yeri.be/?attachment_id=70238&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.05.49-a-cat-painted-by-picasso-on-a-sunny-afternoon-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.05.49-a-cat-painted-by-picasso-on-a-sunny-afternoon-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70237&#34; data-link=&#34;https://yeri.be/?attachment_id=70237&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.08.37-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.08.37-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70239&#34; data-link=&#34;https://yeri.be/?attachment_id=70239&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.08.43-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.08.43-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:50.00000%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70240&#34; data-link=&#34;https://yeri.be/?attachment_id=70240&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.09.00-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.09.00-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:50.00000%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70241&#34; data-link=&#34;https://yeri.be/?attachment_id=70241&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.09.09-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.09.09-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70242&#34; data-link=&#34;https://yeri.be/?attachment_id=70242&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.12.03-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.12.03-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70243&#34; data-link=&#34;https://yeri.be/?attachment_id=70243&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.12.09-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.12.09-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70245&#34; data-link=&#34;https://yeri.be/?attachment_id=70245&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.12.17-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.12.17-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70244&#34; data-link=&#34;https://yeri.be/?attachment_id=70244&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.12.22-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.12.22-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70249&#34; data-link=&#34;https://yeri.be/?attachment_id=70249&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.25.53-a-cat-riding-a-horse-in-a-photorealistic-style-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.25.53-a-cat-riding-a-horse-in-a-photorealistic-style-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70246&#34; data-link=&#34;https://yeri.be/?attachment_id=70246&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.26.37-a-cat-riding-a-horse-in-a-photorealistic-style-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.26.37-a-cat-riding-a-horse-in-a-photorealistic-style-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70247&#34; data-link=&#34;https://yeri.be/?attachment_id=70247&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.46.08-a-cat-in-a-green-chair-with-big-eyes-staring-at-us-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.46.08-a-cat-in-a-green-chair-with-big-eyes-staring-at-us-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70248&#34; data-link=&#34;https://yeri.be/?attachment_id=70248&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.46.15-a-cat-in-a-green-chair-with-big-eyes-staring-at-us-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.46.15-a-cat-in-a-green-chair-with-big-eyes-staring-at-us-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70250&#34; data-link=&#34;https://yeri.be/?attachment_id=70250&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-12.58.20-an-alien-with-a-cat-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-12.58.20-an-alien-with-a-cat-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:50.00000%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70251&#34; data-link=&#34;https://yeri.be/?attachment_id=70251&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-12.58.33-an-alien-with-a-cat-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-12.58.33-an-alien-with-a-cat-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:50.00000%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70252&#34; data-link=&#34;https://yeri.be/?attachment_id=70252&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-12.58.48-an-alien-with-a-cat-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-12.58.48-an-alien-with-a-cat-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:66.77815%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70253&#34; data-link=&#34;https://yeri.be/?attachment_id=70253&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.00.18-a-cat-driving-a-tesla-during-sunset-vaporware-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.00.18-a-cat-driving-a-tesla-during-sunset-vaporware-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.22185%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70254&#34; data-link=&#34;https://yeri.be/?attachment_id=70254&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.02.42-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.02.42-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70255&#34; data-link=&#34;https://yeri.be/?attachment_id=70255&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.02.49-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.02.49-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__row&#34;&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70256&#34; data-link=&#34;https://yeri.be/?attachment_id=70256&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.02.56-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.02.56-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70257&#34; data-link=&#34;https://yeri.be/?attachment_id=70257&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.03.55-a-cat-running-around-on-the-moon-with-an-astronaut-in-the-background-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.03.55-a-cat-running-around-on-the-moon-with-an-astronaut-in-the-background-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div class=&#34;tiled-gallery__col&#34; style=&#34;flex-basis:33.33333%&#34;&gt;&lt;figure class=&#34;tiled-gallery__item&#34;&gt;&lt;img alt=&#34;&#34; data-height=&#34;1024&#34; data-id=&#34;70258&#34; data-link=&#34;https://yeri.be/?attachment_id=70258&#34; data-url=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.04.05-a-cat-running-around-on-the-moon-with-an-astronaut-in-the-background-digital-art-1024x1024.png&#34; data-width=&#34;1024&#34; src=&#34;https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.04.05-a-cat-running-around-on-the-moon-with-an-astronaut-in-the-background-digital-art-1024x1024.png?ssl=1&#34; data-amp-layout=&#34;responsive&#34;/&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
      <content:encoded><![CDATA[<div class="wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular"><div class="tiled-gallery__gallery"><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70231" data-link="https://yeri.be/?attachment_id=70231" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.00.04-a-cat-with-a-cape-saving-the-world-from-mice-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.00.04-a-cat-with-a-cape-saving-the-world-from-mice-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70232" data-link="https://yeri.be/?attachment_id=70232" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.00.11-a-cat-with-a-cape-saving-the-world-from-mice-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.00.11-a-cat-with-a-cape-saving-the-world-from-mice-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70233" data-link="https://yeri.be/?attachment_id=70233" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.01.55-a-painting-from-rene-magritte-of-a-cat-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.01.55-a-painting-from-rene-magritte-of-a-cat-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70234" data-link="https://yeri.be/?attachment_id=70234" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.02.09-a-painting-from-rene-magritte-of-a-cat-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.02.09-a-painting-from-rene-magritte-of-a-cat-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70235" data-link="https://yeri.be/?attachment_id=70235" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.02.14-a-painting-from-rene-magritte-of-a-cat-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.02.14-a-painting-from-rene-magritte-of-a-cat-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70236" data-link="https://yeri.be/?attachment_id=70236" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.05.37-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.05.37-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70238" data-link="https://yeri.be/?attachment_id=70238" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.05.49-a-cat-painted-by-picasso-on-a-sunny-afternoon-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.05.49-a-cat-painted-by-picasso-on-a-sunny-afternoon-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70237" data-link="https://yeri.be/?attachment_id=70237" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.08.37-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.08.37-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70239" data-link="https://yeri.be/?attachment_id=70239" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.08.43-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.08.43-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70240" data-link="https://yeri.be/?attachment_id=70240" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.09.00-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.09.00-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70241" data-link="https://yeri.be/?attachment_id=70241" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.09.09-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.09.09-a-cat-with-big-eyes-looking-cute-staring-at-us-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70242" data-link="https://yeri.be/?attachment_id=70242" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.12.03-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.12.03-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70243" data-link="https://yeri.be/?attachment_id=70243" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.12.09-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.12.09-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70245" data-link="https://yeri.be/?attachment_id=70245" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.12.17-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.12.17-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70244" data-link="https://yeri.be/?attachment_id=70244" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.12.22-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.12.22-two-cats-plotting-to-take-over-the-world-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70249" data-link="https://yeri.be/?attachment_id=70249" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.25.53-a-cat-riding-a-horse-in-a-photorealistic-style-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.25.53-a-cat-riding-a-horse-in-a-photorealistic-style-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70246" data-link="https://yeri.be/?attachment_id=70246" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.26.37-a-cat-riding-a-horse-in-a-photorealistic-style-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.26.37-a-cat-riding-a-horse-in-a-photorealistic-style-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70247" data-link="https://yeri.be/?attachment_id=70247" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.46.08-a-cat-in-a-green-chair-with-big-eyes-staring-at-us-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.46.08-a-cat-in-a-green-chair-with-big-eyes-staring-at-us-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70248" data-link="https://yeri.be/?attachment_id=70248" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-11.46.15-a-cat-in-a-green-chair-with-big-eyes-staring-at-us-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-11.46.15-a-cat-in-a-green-chair-with-big-eyes-staring-at-us-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70250" data-link="https://yeri.be/?attachment_id=70250" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-12.58.20-an-alien-with-a-cat-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-12.58.20-an-alien-with-a-cat-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70251" data-link="https://yeri.be/?attachment_id=70251" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-12.58.33-an-alien-with-a-cat-digital-art-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-12.58.33-an-alien-with-a-cat-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:50.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70252" data-link="https://yeri.be/?attachment_id=70252" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-12.58.48-an-alien-with-a-cat-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-12.58.48-an-alien-with-a-cat-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:66.77815%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70253" data-link="https://yeri.be/?attachment_id=70253" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.00.18-a-cat-driving-a-tesla-during-sunset-vaporware-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.00.18-a-cat-driving-a-tesla-during-sunset-vaporware-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.22185%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70254" data-link="https://yeri.be/?attachment_id=70254" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.02.42-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.02.42-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70255" data-link="https://yeri.be/?attachment_id=70255" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.02.49-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.02.49-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70256" data-link="https://yeri.be/?attachment_id=70256" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.02.56-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png" data-width="1024" src="https://i2.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.02.56-a-giant-cat-on-top-of-a-very-tall-building-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70257" data-link="https://yeri.be/?attachment_id=70257" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.03.55-a-cat-running-around-on-the-moon-with-an-astronaut-in-the-background-digital-art-1024x1024.png" data-width="1024" src="https://i1.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.03.55-a-cat-running-around-on-the-moon-with-an-astronaut-in-the-background-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div><div class="tiled-gallery__col" style="flex-basis:33.33333%"><figure class="tiled-gallery__item"><img alt="" data-height="1024" data-id="70258" data-link="https://yeri.be/?attachment_id=70258" data-url="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.04.05-a-cat-running-around-on-the-moon-with-an-astronaut-in-the-background-digital-art-1024x1024.png" data-width="1024" src="https://i0.wp.com/static.yeri.be/2022/07/DALL%C2%B7E-2022-07-31-13.04.05-a-cat-running-around-on-the-moon-with-an-astronaut-in-the-background-digital-art-1024x1024.png?ssl=1" data-amp-layout="responsive"/></figure></div></div></div></div>
]]></content:encoded>
      <category>software</category>
      <category>ai</category>
    </item>
    
    <item>
      <title>DALL-E: a bowl of soup with koi fishes inside</title>
      <link>https://yeri.be/dall-e-a-bowl-of-soup-with-koi-fishes-inside/</link>
      <pubDate>Sun, 31 Jul 2022 13:26:20 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/dall-e-a-bowl-of-soup-with-koi-fishes-inside/</guid>
      <description>&lt;figure class=&#34;wp-block-gallery has-nested-images columns-default is-cropped&#34;&gt;&#xA;&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.19.27-a-bowl-of-soup-with-koi-fishes-inside-1024x1024.png&#34; alt=&#34;&#34; class=&#34;wp-image-70219&#34;/&gt;&lt;/figure&gt;&#xA;&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.19.33-a-bowl-of-soup-with-koi-fishes-inside-1024x1024.png&#34; alt=&#34;&#34; class=&#34;wp-image-70220&#34;/&gt;&lt;/figure&gt;&#xA;&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.19.55-a-bowl-of-soup-with-koi-fishes-inside-1024x1024.png&#34; alt=&#34;&#34; class=&#34;wp-image-70221&#34;/&gt;&lt;/figure&gt;&#xA;&lt;figure class=&#34;wp-block-image size-large&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.20.01-a-bowl-of-soup-with-koi-fishes-inside-1024x1024.png&#34; alt=&#34;&#34; class=&#34;wp-image-70222&#34;/&gt;&lt;/figure&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Been playing around with &lt;a href=&#34;https://en.wikipedia.org/wiki/DALL-E&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;DALL-E&lt;/a&gt; (and burned through all my free credits in no time). Amazing. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<figure class="wp-block-gallery has-nested-images columns-default is-cropped">
<figure class="wp-block-image size-large"><img src="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.19.27-a-bowl-of-soup-with-koi-fishes-inside-1024x1024.png" alt="" class="wp-image-70219"/></figure>
<figure class="wp-block-image size-large"><img src="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.19.33-a-bowl-of-soup-with-koi-fishes-inside-1024x1024.png" alt="" class="wp-image-70220"/></figure>
<figure class="wp-block-image size-large"><img src="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.19.55-a-bowl-of-soup-with-koi-fishes-inside-1024x1024.png" alt="" class="wp-image-70221"/></figure>
<figure class="wp-block-image size-large"><img src="https://static.yeri.be/2022/07/DALL·E-2022-07-31-13.20.01-a-bowl-of-soup-with-koi-fishes-inside-1024x1024.png" alt="" class="wp-image-70222"/></figure>
</figure>
<p>Been playing around with <a href="https://en.wikipedia.org/wiki/DALL-E" target="_blank" rel="noopener">DALL-E</a> (and burned through all my free credits in no time). Amazing. </p>
]]></content:encoded>
      <category>software</category>
      <category>ai</category>
    </item>
    
    <item>
      <title>Smokeping.eu</title>
      <link>https://yeri.be/smokeping-eu/</link>
      <pubDate>Thu, 14 Jul 2022 10:57:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/smokeping-eu/</guid><enclosure url="https://static.yeri.be/2022/07/sg_last_2592000.png" length="0" type="image/png" />
      <description>&lt;p&gt;I&#39;ve revamped my Smokeping infra a bit &lt;a href=&#34;https://yeri.be/smokeping&#34;&gt;since 2020&lt;/a&gt;. &lt;/p&gt;&#xA;&lt;p&gt;First off, starting to use the &lt;a href=&#34;http://www.smokeping.eu&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;smokeping.eu&lt;/a&gt;&lt;sup&gt;1&lt;/sup&gt; domain that &lt;a href=&#34;https://github.com/BiancoZandbergen&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Bianco&lt;/a&gt; got 10 or so years ago instead of using weird URLs under &lt;a href=&#34;http://superuser.one&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;superuser.one&lt;/a&gt; domain. &lt;/p&gt;&#xA;&lt;p&gt;It&#39;s running on four nodes as we speak: &lt;/p&gt;&#xA;&lt;ul&gt;&lt;li&gt;a virtual machine on a &lt;a href=&#34;https://yeri.be/tag/rootspirit/page/2&#34;&gt;colocation server&lt;/a&gt; in Leaseweb, Amsterdam, NL -&amp;gt; &lt;a href=&#34;https://leaseweb.nl.smokeping.eu/smokeping/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;leaseweb.nl.smokeping.eu&lt;/a&gt;&lt;/li&gt;&lt;li&gt;a RPi3 (+SD card, slowest of all), Telenet, Belgium -&amp;gt; &lt;a href=&#34;http://telenet.be.smokeping.eu/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;telenet.be.smokeping.eu&lt;/a&gt;&lt;/li&gt;&lt;li&gt;a RPi4, EDPnet, Belgium -&amp;gt; &lt;a href=&#34;https://edpnet.be.smokeping.eu/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;edpnet.be.smokeping.eu&lt;/a&gt;&lt;/li&gt;&lt;li&gt;a RPi4, Starhub, Singapore -&amp;gt; &lt;a href=&#34;http://starhub.sg.smokeping.eu&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;starhub.sg.smokeping.eu&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&#xA;&lt;p&gt;This is achieved using Smokeping &lt;a href=&#34;https://docs.linuxserver.io/images/docker-smokeping&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;in a docker&lt;/a&gt; container, &lt;a href=&#34;https://www.cloudflare.com/en-gb/products/tunnel/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Cloudflare tunnel&lt;/a&gt; and Cloudflare CDN/DNS.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/07/sg_last_2592000.png" alt="Smokeping.eu"></p><p>I've revamped my Smokeping infra a bit <a href="https://yeri.be/smokeping">since 2020</a>. </p>
<p>First off, starting to use the <a href="http://www.smokeping.eu" target="_blank" rel="noreferrer noopener">smokeping.eu</a><sup>1</sup> domain that <a href="https://github.com/BiancoZandbergen" target="_blank" rel="noreferrer noopener">Bianco</a> got 10 or so years ago instead of using weird URLs under <a href="http://superuser.one" target="_blank" rel="noreferrer noopener">superuser.one</a> domain. </p>
<p>It's running on four nodes as we speak: </p>
<ul><li>a virtual machine on a <a href="https://yeri.be/tag/rootspirit/page/2">colocation server</a> in Leaseweb, Amsterdam, NL -&gt; <a href="https://leaseweb.nl.smokeping.eu/smokeping/" target="_blank" rel="noreferrer noopener">leaseweb.nl.smokeping.eu</a></li><li>a RPi3 (+SD card, slowest of all), Telenet, Belgium -&gt; <a href="http://telenet.be.smokeping.eu/" target="_blank" rel="noreferrer noopener">telenet.be.smokeping.eu</a></li><li>a RPi4, EDPnet, Belgium -&gt; <a href="https://edpnet.be.smokeping.eu/" target="_blank" rel="noreferrer noopener">edpnet.be.smokeping.eu</a></li><li>a RPi4, Starhub, Singapore -&gt; <a href="http://starhub.sg.smokeping.eu" target="_blank" rel="noreferrer noopener">starhub.sg.smokeping.eu</a></li></ul>
<p>This is achieved using Smokeping <a href="https://docs.linuxserver.io/images/docker-smokeping" target="_blank" rel="noreferrer noopener">in a docker</a> container, <a href="https://www.cloudflare.com/en-gb/products/tunnel/" target="_blank" rel="noreferrer noopener">Cloudflare tunnel</a> and Cloudflare CDN/DNS.</p>
<pre class="wp-block-verse"><sup>1</sup> Doesn't point at anything at the moment. To do later.</pre>
]]></content:encoded>
      <category>linux</category><category>misc</category><category>networking</category><category>software</category><category>virtualisation</category>
      <category>docker</category><category>smokeping</category>
    </item>
    
    <item>
      <title>Remote desktop and Wake-on-LAN</title>
      <link>https://yeri.be/remote-desktop-and-wake-on-lan/</link>
      <pubDate>Sat, 09 Jul 2022 23:14:54 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/remote-desktop-and-wake-on-lan/</guid><enclosure url="https://static.yeri.be/2022/07/pexels-photo-1438073.jpeg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;&lt;a href=&#34;http://shanwong.com&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Shan&lt;/a&gt; uses her iPad a lot, but a lot of the more serious (interior design) work needs to happen on &lt;a href=&#34;https://yeri.be/screen-going-black-with-autocad-lt&#34;&gt;AutoCAD&lt;/a&gt; or Photoshop. That is just not going to work on an iPad. &lt;/p&gt;&#xA;&lt;p&gt;When we&#39;re travelling (read: holiday) she&#39;s carrying an old Lenovo &lt;a href=&#34;https://www.lenovo.com/gb/en/laptops/thinkpad/13-series/ThinkPad-13-Windows-2nd-Gen/p/22TP2TX133E&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;ThinkPad 13&lt;/a&gt; (great device!) just &#34;in case&#34; she needs to open AutoCAD and edit something minor or read the drawings/dimensions. But honestly, most of the time that device is turned off and dead weight.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/07/pexels-photo-1438073.jpeg" alt="Remote desktop and Wake-on-LAN"></p><p><a href="http://shanwong.com" target="_blank" rel="noreferrer noopener">Shan</a> uses her iPad a lot, but a lot of the more serious (interior design) work needs to happen on <a href="https://yeri.be/screen-going-black-with-autocad-lt">AutoCAD</a> or Photoshop. That is just not going to work on an iPad. </p>
<p>When we're travelling (read: holiday) she's carrying an old Lenovo <a href="https://www.lenovo.com/gb/en/laptops/thinkpad/13-series/ThinkPad-13-Windows-2nd-Gen/p/22TP2TX133E" target="_blank" rel="noreferrer noopener">ThinkPad 13</a> (great device!) just "in case" she needs to open AutoCAD and edit something minor or read the drawings/dimensions. But honestly, most of the time that device is turned off and dead weight.</p>
<p>But all the above is just an excuse to "I was bored, and I wanted to test something": can I use an old Raspberry Pi (<a href="https://www.raspberrypi.com/products/raspberry-pi-zero-w/" target="_blank" rel="noreferrer noopener">zero W</a>) to remotely wake her Intel NUC, and then use <a href="http://tailscale.com/" target="_blank" rel="noreferrer noopener">Tailscale</a> to use RD on her iPad? Well, yes I can. </p>
<p>I completed this using:</p>
<ul><li>Tailscale to remote desktop from anywhere to home</li><li>Cloudflare Tunnels, Access and DNS to have a web interface to wake the desktop</li><li>A Linux device that's always on and in the same LAN, and that'll run a PHP script. </li></ul>
<h2>Prep work: enable WOL</h2>
<p>First off: enable Wake-on-LAN (WOL) in the BIOS <em>and </em>in your Windows settings. <a href="https://www.intel.com/content/www/us/en/support/articles/000027615/intel-nuc.html" target="_blank" rel="noreferrer noopener">This article explains</a> it for Intel NUCs, but would be similar enough for most devices. The Device Manager pane looked different on our i5 NUC, but was close enough. </p>
<p>On Mac, you just need to enable it in the Energy preference pane, for Linux I have no clue. 🤷‍♂️</p>
<p>Second step: have a working Raspberry Pi (or any Linux device) in <em>the same LAN</em>. This device needs to be turned on 24/7, so use something that uses very little power. </p>
<pre class="wp-block-verse">I do have a more powerful <a href="https://yeri.be/making-bluetooth-work-on-rpi4">RPi4</a> I wish I could've reused (running <a href="https://yeri.be/running-wireguard-in-a-docker-container-rpi">Docker</a> and some other "serious" stuff; however it's currently in a different VLAN, and it's quite crucial the Linux device is in the same LAN as the device(s) you want to wake up), so I went with an old Raspberry Pi Zero W that was collecting dust (it used to run <a href="https://pwnagotchi.ai/" target="_blank" rel="noreferrer noopener">pwnagotchi</a>).</pre>
<p>On the Linux device, install <a href="https://www.mkssoftware.com/docs/man1/etherwake.1.asp" target="_blank" rel="noreferrer noopener">etherwake</a>. The command to run is quite simply <code>etherwake aa:bb:cc:11:22:33</code> (= the ethernet MAC address of your device).</p>
<p>If this doesn't wake your desktop, something is wrong and there's no point continuing. Go and troubleshoot. </p>
<h2>Install Tailscale and RD</h2>
<p>On the (<a href="https://www.youtube.com/watch?v=lKQroybFqg4" target="_blank" rel="noreferrer noopener">Windows</a>) desktop and your iPad, install <a href="https://tailscale.com/download" target="_blank" rel="noreferrer noopener">Tailscale</a>. Login, and make sure it works by pinging from one to the other. </p>
<p>Then set up Remote Desktop on both (<a href="https://support.microsoft.com/en-us/windows/how-to-use-remote-desktop-5fe128d5-8fb1-7a23-3b8a-41e636865e8c#ID0EDD=Windows_10" target="_blank" rel="noreferrer noopener">Windows</a>, <a href="https://apps.apple.com/us/app/remote-desktop-mobile/id714464092" target="_blank" rel="noreferrer noopener">iPad</a>). You should test and make sure you can properly connect using the LAN IP address and then the Tailscale IP address.</p>
<pre class="wp-block-verse">Fun fact: I create a DNS record for all my devices using <a href="https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/" target="_blank" rel="noreferrer noopener">Cloudflare DNS</a> with the syntax of <a href="https://smokeping-sg.superuser.one/smokeping/?target=yeri.TSwol" target="_blank" rel="noreferrer noopener">device-name.ts.yeri.be</a>, so I don't need to ever remember IPs, and can easily <code>ssh</code> or <code>ping</code> devices without having to look up IPs. </pre>
<figure class="wp-block-image size-large is-resized"><img src="https://static.yeri.be/2022/07/cf-dns-ts-1024x461.png" alt="" class="wp-image-70039" width="610" height="274"/><figcaption>Cloudflare DNS screenshot, filtered on "ts". I add both <code>A</code> and <code>AAAA</code> records (not shown in the screenshot) </figcaption></figure>
<pre class="wp-block-verse">Fun fact side track: I actually have a dynamic script that runs (on Linux) and creates <code>hostname.ts.yeri.be</code> for the Tailscale IP, <code>hostname.wg.yeri.be</code> based on the <a href="https://yeri.be/wireguard" target="_blank" rel="noreferrer noopener">Wireguard</a> IP, <code>hostname.lan.yeri.be</code> based on the LAN IP. This dyndns script runs every so often and updates IPs if needed. All this is running using <a href="https://github.com/tech-otaku/cloudflare-dns" target="_blank" rel="noreferrer noopener">Cloudflare DNS and their API</a>. Super convenient.</pre>
<h2>Nginx, php and etherwake</h2>
<pre class="wp-block-verse">I'm a 80s kid, so I'll use dirty PHP to run this script. I'm sure I'll go straight to hell for this, but yolo.</pre>
<p>Install <a href="https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04" target="_blank" rel="noreferrer noopener">nginx and PHP</a> (no need for MySQL and other stuff).</p>
<p><code>etherwake</code> requires root to run (because it needs root access to create a weird <a href="https://en.wikipedia.org/wiki/Wake-on-LAN#Magic_packet" target="_blank" rel="noreferrer noopener">magic</a> ethernet packet). Create a file in <code>/etc/sudoers.d/etherwake</code> and add this line:</p>
<pre class="wp-block-code"><code>www-data ALL=(ALL) NOPASSWD: /usr/sbin/etherwake</code></pre>
<p>This will allow <code>www-data</code> (nginx/php) to run <code>/usr/sbin/etherwake</code> using <code>sudo</code>, without password.</p>
<p>In <code>/var/www/html/</code> create an <code>index.php</code> file with:</p>
<pre class="wp-block-code"><code>&lt;html&gt;
&lt;head&gt;&lt;title&gt;Wake on Lan&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;Wake up &lt;a href="mycooldesktop.php"&gt;My Cool Desktop&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>And a <code>mycooldesktop.php</code> (or whatever) file with:</p>
<pre class="wp-block-code"><code>&lt;?php
$output = shell_exec('sudo /usr/sbin/etherwake aa:bb:cc:11:22:33 2&gt;&amp;1');
echo "&lt;pre&gt;$output&lt;/pre&gt;";
?&gt;
&lt;p&gt;&lt;a href=".."&gt;Back&lt;/a&gt;&lt;/p&gt;</code></pre>
<pre class="wp-block-verse">It ain't pretty -- but it gets the job done. </pre>
<p>And be sure to edit the MAC address to match your desktop's ethernet MAC address. </p>
<h2>Cloudflare tunnels</h2>
<p>Install Cloudflare Tunnel (via <a href="https://dash.teams.cloudflare.com" target="_blank" rel="noreferrer noopener">Zero Trust</a> dashboard). </p>
<p>When creating a new tunnel, the dashboard will give you all needed commands to install the tunnel on your RPi -- but be sure to select the right OS/architecture (arm64? arm? armhf?). </p>
<figure class="wp-block-image size-large"><img src="https://static.yeri.be/2022/07/cf-tunnel-1024x448.png" alt="" class="wp-image-70047"/><figcaption>Easy.</figcaption></figure>
<p>And then point the tunnel to <code>http://localhost</code>. No need to mess around with <a href="https://yeri.be/tag/ssl">SSL</a> certs.</p>
<p>Lastly, set up Cloudflare Access (via the same Zero Trust dashboard): create a new application, and make sure only approved users can sign in (i.e.: using a pin code emailed to only approved emails). </p>
<figure class="wp-block-image size-large"><img src="https://static.yeri.be/2022/07/cf-access-1024x796.png" alt="" class="wp-image-70048"/><figcaption>I only allow access to my own emails, and my family, by using groups.</figcaption></figure>
<p>You can try it yourself via <a href="https://wol.superuser.one/" target="_blank" rel="noreferrer noopener">wol.superuser.one</a>. You won't get in. :)</p>
<pre class="wp-block-verse">Optionally, but recommended: lock down Nginx to only allow connections from localhost (<code>127.0.0.0/8</code> and <code>::1</code>) if using Cloudflare Tunnels, or <a href="https://www.frankindev.com/2020/11/18/allow-cloudflare-only-in-nginx/" target="_blank" rel="noreferrer noopener">Cloudflare IPs</a> if using port forwarding with <a href="https://www.cloudflare.com/en-gb/products/zero-trust/access/" target="_blank" rel="noreferrer noopener">Cloudflare Access</a> in front. </pre>
<figure class="wp-block-image size-large is-resized"><img src="https://static.yeri.be/2022/07/wol-interface-1024x540.png" alt="" class="wp-image-70042" width="610" height="321"/><figcaption>Love my design skills... But it gets the job done: click that link, and it'll execute <code>etherwake</code>.</figcaption></figure>
<h2>To recap</h2>
<ul><li>We used Tailscale to create a VPN network between the desktop and the iPad. The big benefit is that Tailscale works effortlessly across NAT networks without having to open ports,</li><li>We used Cloudflare DNS so we don't need to remember hostnames :),</li><li>We used Cloudflare Tunnels to make sure the RPi web interface is accessible across NAT (without port forwarding) and from anywhere, </li><li>We used Cloudflare Acces and locked down access to the right people using ACLs,</li><li>We used <code>etherwake</code> running on a RPi to wake up devices that are hibernating or turned off.</li></ul>
<p>And that's it really.</p>
<pre class="wp-block-verse">PS: technically WoL works with WiFi, but when I enabled WoL on the WiFi adapter, the NUC refused to hibernate/sleep for more than a minute, and kept waking itself up. So, there seems to be some kind of trigger in my network that keeps waking it up. Also, not sure if WoL via WiFi would work if the device is turned off (as opposed to sleep or hibernate). I just ended up using ethernet. 

PPS: both Cloudflare Tunnels and Tailscale use <a href="https://www.wireguard.com/" target="_blank" rel="noreferrer noopener">Wireguard</a> tech in the background, so that's really cool. </pre>
]]></content:encoded>
      <category>apple</category><category>hardware</category><category>linux</category><category>misc</category><category>networking</category><category>software</category><category>windows</category><category>www</category>
      <category>windows</category><category>cloudflare</category><category>tailscale</category><category>vpn</category>
    </item>
    
    <item>
      <title>Abortion</title>
      <link>https://yeri.be/abortion/</link>
      <pubDate>Mon, 27 Jun 2022 22:35:55 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/abortion/</guid><enclosure url="https://static.yeri.be/2022/06/pexels-photo-12616193.jpeg" length="0" type="image/jpeg" />
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&lt;p&gt;I&#39;m pro-Becky who found out at her 20-week anatomy scan that the infant she had been so excited to bring into this world had developed without life sustaining organs.&lt;/p&gt;&lt;p&gt;I&#39;m pro-Susan who was sexually assaulted on her way home from work, only to come to the horrific realization that her assailant planted his seed in her when she got a positive pregnancy test result a month later.&lt;/p&gt;&lt;p&gt;I&#39;m pro-Theresa who hemorrhaged due to a placental abruption, causing her parents, spouse, and children to have to make the impossible decision on whether to save her or her unborn child.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/06/pexels-photo-12616193.jpeg" alt="Abortion"></p><blockquote class="wp-block-quote"><p>I'm pro-Becky who found out at her 20-week anatomy scan that the infant she had been so excited to bring into this world had developed without life sustaining organs.</p><p>I'm pro-Susan who was sexually assaulted on her way home from work, only to come to the horrific realization that her assailant planted his seed in her when she got a positive pregnancy test result a month later.</p><p>I'm pro-Theresa who hemorrhaged due to a placental abruption, causing her parents, spouse, and children to have to make the impossible decision on whether to save her or her unborn child.</p><p>I'm pro-little Cathy who had her innocence ripped away from her by someone she should have been able to trust and her 11-year-old body isn't mature enough to bear the consequence of that betrayal.</p><p>I'm pro-Melissa who's working two jobs just to make ends meet and has to choose between bringing another child into poverty or feeding the children she already has because her spouse walked out on her.</p><p>I'm pro-Brittany who realizes that she is in no way financially, emotionally, or physically able to raise a child.</p><p>I'm pro-Emily who went through IVF, ending up with SIX viable implanted eggs requiring selective reduction to ensure the safety of her and a SAFE number of fetuses.</p><p>I'm pro-Jessica who is FINALLY getting the strength to get away from her physically abusive spouse only to find out that she is carrying the monster's child.</p><p>I'm pro-Vanessa who went into her confirmation appointment after YEARS of trying to conceive only to hear silence where there should be a heartbeat.</p><p>I'm pro-Lindsay who lost her virginity in her sophomore year with a broken condom and now has to choose whether to be a teenage mom or just a teenager.</p><p>I'm pro-Courtney who just found out she's already 13 weeks along, but the egg never made it out of her fallopian tube, so either she terminates the pregnancy or risks dying from internal bleeding.</p><p>You can argue and say that I'm pro-choice all you want, but the truth is:<br />I'm pro-life.<br />Their lives.<br />Women's lives.</p><p>You don't get to pick and choose which scenarios should be accepted. It's not about which stories you don't agree with. It's about fighting for the women in the stories that you do agree with and the CHOICE that was made.</p><p>Women's rights are meant to protect ALL women, regardless of their situation!</p><p>Overturning Roe does not stop abortions, it stops SAFE abortions!&nbsp;</p><p>Abortion is healthcare.</p><cite><em>Source/Author Unknown, reposted</em></cite></blockquote>
]]></content:encoded>
      <category>misc</category><category>software</category>
      <category>wtf</category><category>politics</category><category>usa</category>
    </item>
    
    <item>
      <title>Web 3.0</title>
      <link>https://yeri.be/web3/</link>
      <pubDate>Tue, 21 Jun 2022 16:09:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/web3/</guid><enclosure url="https://static.yeri.be/2022/06/embers-glow-wood-burn-68482.jpeg" length="0" type="image/jpeg" />
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&lt;p&gt;Web 3 goes against the core promise of the internet which tries to be a great equalizer.&lt;/p&gt;&lt;p&gt;The Web was about making information accessible to all, Web 3 is trying to provide value to a few, where everything is done for the benefit of the few rather than benefit of all.&lt;/p&gt;&lt;p&gt;Web 2 gave us Wikipedia, Google search, Facebook and more. They are not perfect systems, any system which involves humans will have loopholes &amp;amp; problems driven by greed and a hunger for power. But, they did act as an equalizer. Where is Wikipedia of Web3? Wikipedia never started with the mission of making it&#39;s contributors rich.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2022/06/embers-glow-wood-burn-68482.jpeg" alt="Web 3.0"></p><blockquote class="wp-block-quote"><p>Web 3 goes against the core promise of the internet which tries to be a great equalizer.</p><p>The Web was about making information accessible to all, Web 3 is trying to provide value to a few, where everything is done for the benefit of the few rather than benefit of all.</p><p>Web 2 gave us Wikipedia, Google search, Facebook and more. They are not perfect systems, any system which involves humans will have loopholes &amp; problems driven by greed and a hunger for power. But, they did act as an equalizer. Where is Wikipedia of Web3? Wikipedia never started with the mission of making it's contributors rich.</p><cite><em>Source</em>: <a href="https://ravivyas.com/2022/06/19/web-3-is-flawed/" target="_blank" rel="noreferrer noopener">Ravi Vyas</a></cite></blockquote>
<p>I'm <a href="https://moxie.org/2022/01/07/web3-first-impressions.html" target="_blank" rel="noreferrer noopener">extremely pessimistic</a> to what <a href="https://en.wikipedia.org/wiki/Web3" target="_blank" rel="noreferrer noopener">Web 3.0</a> will supposedly bring. </p>
<p>We all had good fun in the early days of Crypto -- some of us made a quick buck -- but we need to come to terms it's not really solving anything (besides laundering money and fuelling criminals). And it's not sustainable at all. And don't get me started on NFTs. </p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>bitcoin</category>
    </item>
    
    <item>
      <title>Encryption</title>
      <link>https://yeri.be/encryption/</link>
      <pubDate>Thu, 03 Feb 2022 16:39:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/encryption/</guid>
      <description>&lt;div class=&#34;embed-responsive embed-youtube&#34;&gt;&#xA;&#x9;&lt;iframe src=&#34;https://www.youtube-nocookie.com/embed/ZghMPWGXexs&#34; title=&#34;YouTube video&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;</description>
      <content:encoded><![CDATA[<div class="embed-responsive embed-youtube">
	<iframe src="https://www.youtube-nocookie.com/embed/ZghMPWGXexs" title="YouTube video" loading="lazy" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

]]></content:encoded>
      <category>networking</category><category>software</category>
      <category>encryption</category><category>youtube</category>
    </item>
    
    <item>
      <title>Sony stops DNS resolvers</title>
      <link>https://yeri.be/sony-stops-dns-resolvers/</link>
      <pubDate>Wed, 01 Dec 2021 10:08:59 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/sony-stops-dns-resolvers/</guid>
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&lt;p&gt;The Hamburg Regional Court today ruled that they would not suspend an existing injunction against &lt;a href=&#34;https://www.quad9.net/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Quad9&lt;/a&gt; in a case filed by Sony Music Germany. The case centers around Sony Music’s demand that Quad9’s servers located in Germany stop resolving DNS names of third-party sites which are claimed to have URLs that contain copyright infringements.&lt;/p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&#34;https://www.quad9.net/news/press/german-court-rules-against/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Source&lt;/a&gt;&lt;/em&gt;.&lt;/cite&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Unbelievable. &lt;/p&gt;&#xA;&lt;p&gt;Also note &#34;&lt;em&gt;claimed&lt;/em&gt; to have&#34;. Not &lt;em&gt;proven&lt;/em&gt; to have. &lt;/p&gt;&#xA;&lt;p&gt;Knowing that Sony has not been very good at actually identifying copyrighted content, and they just throw stuff around to see what sticks. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<blockquote class="wp-block-quote"><p>The Hamburg Regional Court today ruled that they would not suspend an existing injunction against <a href="https://www.quad9.net/" target="_blank" rel="noreferrer noopener">Quad9</a> in a case filed by Sony Music Germany. The case centers around Sony Music’s demand that Quad9’s servers located in Germany stop resolving DNS names of third-party sites which are claimed to have URLs that contain copyright infringements.</p><cite><em><a href="https://www.quad9.net/news/press/german-court-rules-against/" target="_blank" rel="noreferrer noopener">Source</a></em>.</cite></blockquote>
<p>Unbelievable. </p>
<p>Also note "<em>claimed</em> to have". Not <em>proven</em> to have. </p>
<p>Knowing that Sony has not been very good at actually identifying copyrighted content, and they just throw stuff around to see what sticks. </p>
<p>And <a href="https://www.eff.org/wp/unintended-consequences-under-dmca" target="_blank" rel="noreferrer noopener">DMCA</a> requests have done more evil than good... </p>
<p>Also, what will actually happen? Quad9 will move its DNS servers outside of Germany and/or people will use other DNS resolvers. Nothing get fixed, and users are punished with worse latency. </p>
]]></content:encoded>
      <category>networking</category><category>software</category>
      <category>wtf</category><category>dns</category><category>europe</category><category>law</category><category>politics</category><category>warez</category>
    </item>
    
    <item>
      <title>Xiaomi Phone Shipped With Censorship List</title>
      <link>https://yeri.be/xiaomi-censorship-list/</link>
      <pubDate>Sun, 21 Nov 2021 11:53:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/xiaomi-censorship-list/</guid><enclosure url="https://static.yeri.be/2021/11/pexels-photo-5253002.jpeg" length="0" type="image/jpeg" />
      <description>&lt;blockquote class=&#34;wp-block-quote&#34;&gt;&lt;p&gt;This summer, the Lithuanian government went public &lt;a href=&#34;https://static.yeri.be/2021/11/2021-08-23_5G-CN-analysis_env3.pdf&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;with an astounding finding&lt;/a&gt;. A Xiaomi phone sold in Europe — the Mi 10T 5G — could censor approximately 450 words and phrases, it said. The blocklist wasn’t active, but could be activated remotely. It was filled with political terms, including “Democratic Movement” and “Long live Taiwan’s independence.”&lt;/p&gt;&lt;p&gt;[...]&lt;/p&gt;&lt;p&gt;The accusations, which Xiaomi disputes, clarified just how fraught the West’s relationship is with China’s growing technology power. As China-based tech companies like Xiaomi and TikTok flourish, there’s still no playbook in North America or Europe to deal with their potential to censor or steer culture via &lt;a href=&#34;https://stratechery.com/2020/the-tiktok-war/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;algorithms&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2021/11/pexels-photo-5253002.jpeg" alt="Xiaomi Phone Shipped With Censorship List"></p><blockquote class="wp-block-quote"><p>This summer, the Lithuanian government went public <a href="https://static.yeri.be/2021/11/2021-08-23_5G-CN-analysis_env3.pdf" target="_blank" rel="noreferrer noopener">with an astounding finding</a>. A Xiaomi phone sold in Europe — the Mi 10T 5G — could censor approximately 450 words and phrases, it said. The blocklist wasn’t active, but could be activated remotely. It was filled with political terms, including “Democratic Movement” and “Long live Taiwan’s independence.”</p><p>[...]</p><p>The accusations, which Xiaomi disputes, clarified just how fraught the West’s relationship is with China’s growing technology power. As China-based tech companies like Xiaomi and TikTok flourish, there’s still no playbook in North America or Europe to deal with their potential to censor or steer culture via <a href="https://stratechery.com/2020/the-tiktok-war/" target="_blank" rel="noreferrer noopener">algorithms</a>.</p><p>“Western countries,” Abukevicius said, “<strong>are more and more reliant on technologies, and a big part of those technologies comes from countries which are not friendly, which we don't trust, and it poses risks.</strong>”</p><cite><a href="https://bigtechnology.substack.com/p/a-xiaomi-phone-mightve-shipped-with" target="_blank" rel="noreferrer noopener">Source</a>.</cite></blockquote>
<p></p>
]]></content:encoded>
      <category>hardware</category><category>networking</category><category>software</category>
      <category>android</category><category>china</category><category>politics</category>
    </item>
    
    <item>
      <title>Eneco and Smart Readers</title>
      <link>https://yeri.be/eneco-and-smart-readers/</link>
      <pubDate>Fri, 02 Jul 2021 23:49:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/eneco-and-smart-readers/</guid>
      <description>&lt;blockquote class=&#34;wp-block-quote is-style-default&#34;&gt;&lt;p&gt;[...] &lt;br /&gt;Op zich een behulpzaam aanbod, maar ik zit er niet op te wachten. Men vraagt hier toestemming om &lt;strong&gt;per kwartier&lt;/strong&gt; het stroomverbruik uit te lezen, en te delen met derde partijen, iets wat een serieuze inbreuk maakt op mijn privacy. Ik meet mijn eigen stroomverbruik en ik kan precies zien of er iemand in huis is, hoe laat we gaan slapen, hoe laat we opstaan etc. Dat hoeft niemand anders te weten.&lt;br /&gt;[...]&lt;/p&gt;</description>
      <content:encoded><![CDATA[<blockquote class="wp-block-quote is-style-default"><p>[...] <br />Op zich een behulpzaam aanbod, maar ik zit er niet op te wachten. Men vraagt hier toestemming om <strong>per kwartier</strong> het stroomverbruik uit te lezen, en te delen met derde partijen, iets wat een serieuze inbreuk maakt op mijn privacy. Ik meet mijn eigen stroomverbruik en ik kan precies zien of er iemand in huis is, hoe laat we gaan slapen, hoe laat we opstaan etc. Dat hoeft niemand anders te weten.<br />[...]</p></blockquote>
<p>(<em><a href="https://berthub.eu/articles/posts/eneco-moet-dit-nou/" target="_blank" rel="noreferrer noopener">Source</a></em>).</p>
]]></content:encoded>
      <category>hardware</category><category>misc</category><category>software</category>
      <category>dutch</category>
    </item>
    
    <item>
      <title>Screen going black with AutoCAD (LT)</title>
      <link>https://yeri.be/screen-going-black-with-autocad-lt/</link>
      <pubDate>Mon, 03 May 2021 10:20:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/screen-going-black-with-autocad-lt/</guid><enclosure url="https://static.yeri.be/2021/04/blueprint.png" length="0" type="image/png" />
      <description>&lt;p&gt;I am not sure what is the problem -- I&#39;ve upgraded Shan&#39;s 27&#34; 2k monitor to a 32&#34; 4k monitor and AutoCAD LT recently updated from 2021 to 2022. &lt;a href=&#34;http://shanwong.design&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Shan&lt;/a&gt;&#39;s been using a 2017 i5 NUC (NUC7i5BNB) with 32Gb RAM using the onboard GPU. Something that should be plenty for a bit of Windows, Chrome, Photoshop and AutoCAD LT. &lt;/p&gt;&#xA;&lt;p&gt;For the past few weeks, several times a day her screen would black out for half a second or so and then everything should go back to normal. Sometimes it would happen several times in a row, sometimes it wouldn&#39;t for hours on end. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2021/04/blueprint.png" alt="Screen going black with AutoCAD (LT)"></p><p>I am not sure what is the problem -- I've upgraded Shan's 27" 2k monitor to a 32" 4k monitor and AutoCAD LT recently updated from 2021 to 2022. <a href="http://shanwong.design" target="_blank" rel="noreferrer noopener">Shan</a>'s been using a 2017 i5 NUC (NUC7i5BNB) with 32Gb RAM using the onboard GPU. Something that should be plenty for a bit of Windows, Chrome, Photoshop and AutoCAD LT. </p>
<p>For the past few weeks, several times a day her screen would black out for half a second or so and then everything should go back to normal. Sometimes it would happen several times in a row, sometimes it wouldn't for hours on end. </p>
<p>I tried several things, including getting a 8k 120hz HDMI cable, using a usb-c to DP cable, changing the GPU vRAM minimum from 128Mb to 2048Mb (quite the hack, as it can't be set in the bios -- requires <a href="https://www.contechblog.com/2019/10/increase-vram-on-intel-gpu-without-bios.html" target="_blank" rel="noreferrer noopener">messing around in the registry</a>. Wow.), updating all the drivers, updating the bios, making sure the NUC was properly ventilated and keeping cool (every full moon the NUC shuts down due to overheating in Singapore if I set the fan to 'balanced' instead of 'cool'), and probably more. And because it happened so sporadically it was quite hard to debug (to the point I sometimes didn't want to believe her as I couldn't see it blacken out). </p>
<p>Shan was getting frustrated (which in turn means I get frustrated)... and I started looking at getting either an eGPU (I can get a free <a href="https://blogs.nvidia.com/blog/2015/04/09/quadro-m6000/" target="_blank" rel="noreferrer noopener">Nividia M6000</a>, just need the enclosure, but the enclosure would be $$), an <a href="https://www.asrockind.com/en-gb/4X4%20BOX-4800U" title="https://www.newegg.com/asrock-4x4-box-4500u/p/N82E16856158070" target="_blank" rel="noreferrer noopener">AMD Ryzen 5 or 7 NUC</a> (no more Intel in this house, but also $$$), or some other refurb (massive) desktop some friend had lying around (HP z240 or something, zero $, but Shan would kill me for having this massive thing on her desk). </p>
<p>Turns out, the quick fix, was to simply <a href="https://knowledge.autodesk.com/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/How-to-enable-or-disable-hardware-acceleration-in-AutoCAD.html" target="_blank" rel="noreferrer noopener">disable hardware acceleration</a>.</p>
<p>Run <code>GRAPHICSCONFIG</code> and uncheck <code>hardware acceleration</code>. </p>
<p>This is probably not ideal in the long run (hopefully it's an issue with AutoCAD 2022 that is getting fixed, as opposed to the onboard Intel GPU getting messed up with AutoCAD).  </p>
<p>When in doubt… Turn off hardware acceleration.</p>
]]></content:encoded>
      <category>errors</category><category>hardware</category><category>misc</category><category>software</category><category>windows</category>
      <category>autocad</category><category>gpu</category><category>shanwong</category><category>software</category>
    </item>
    
    <item>
      <title>Apple Watch OS7 stopped showing the date</title>
      <link>https://yeri.be/apple-watch-os7-stopped-showing-the-date/</link>
      <pubDate>Thu, 17 Sep 2020 22:16:43 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/apple-watch-os7-stopped-showing-the-date/</guid><enclosure url="https://static.yeri.be/2020/09/AppleWatch.png" length="0" type="image/png" />
      <description>&lt;p&gt;I&#39;ve been running the Apple &lt;a href=&#34;https://www.apple.com/newsroom/2020/09/apple-watch-se-the-ultimate-combination-of-design-function-and-value/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;WatchOS&lt;/a&gt; 7 beta for a while now, and when updating, my watch face lost the &#34;date&#34;: it was no longer showing the date and day of the week (i.e. Fri). &lt;/p&gt;&#xA;&lt;figure class=&#34;wp-block-gallery columns-2 is-cropped&#34;&gt;&lt;ul class=&#34;blocks-gallery-grid&#34;&gt;&lt;li class=&#34;blocks-gallery-item&#34;&gt;&lt;figure&gt;&lt;img src=&#34;https://static.yeri.be/2020/09/IMG_1762-1-473x1024.png&#34; alt=&#34;&#34; data-id=&#34;38427&#34; data-link=&#34;https://yeri.be/?attachment_id=38427&#34; class=&#34;wp-image-38427&#34;/&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li class=&#34;blocks-gallery-item&#34;&gt;&lt;figure&gt;&lt;img src=&#34;https://static.yeri.be/2020/09/IMG_1761-1-473x1024.png&#34; alt=&#34;&#34; data-id=&#34;38428&#34; data-full-url=&#34;https://static.yeri.be/2020/09/IMG_1761-1.png&#34; data-link=&#34;https://yeri.be/?attachment_id=38428&#34; class=&#34;wp-image-38428&#34;/&gt;&lt;/figure&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/figure&gt;&#xA;&lt;p&gt;Quite annoying -- but it&#39;s a beta after all. I shouldn&#39;t complain. I did what every good beta tester would do: I filed a bug (it&#39;s still unanswered from what I can see). &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/09/AppleWatch.png" alt="Apple Watch OS7 stopped showing the date"></p><p>I've been running the Apple <a href="https://www.apple.com/newsroom/2020/09/apple-watch-se-the-ultimate-combination-of-design-function-and-value/" target="_blank" rel="noreferrer noopener">WatchOS</a> 7 beta for a while now, and when updating, my watch face lost the "date": it was no longer showing the date and day of the week (i.e. Fri). </p>
<figure class="wp-block-gallery columns-2 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img src="https://static.yeri.be/2020/09/IMG_1762-1-473x1024.png" alt="" data-id="38427" data-link="https://yeri.be/?attachment_id=38427" class="wp-image-38427"/></figure></li><li class="blocks-gallery-item"><figure><img src="https://static.yeri.be/2020/09/IMG_1761-1-473x1024.png" alt="" data-id="38428" data-full-url="https://static.yeri.be/2020/09/IMG_1761-1.png" data-link="https://yeri.be/?attachment_id=38428" class="wp-image-38428"/></figure></li></ul></figure>
<p>Quite annoying -- but it's a beta after all. I shouldn't complain. I did what every good beta tester would do: I filed a bug (it's still unanswered from what I can see). </p>
<p>Beta updates came and went but the date did not come back. Would I be unable to use my watch to figure out the date?! It's when you lose a feature that you see how often a day you use it. </p>
<p>And then, out of the blue, the big stable release. Apple Watch OS 7 is released to the general public. Surely, I thought, they must've fixed it now. </p>
<p>But alas, I was to be disappointed. </p>
<p>I updated <a href="http://shan.sg" title="Shan Wong" target="_blank" rel="noreferrer noopener">Shan</a>'s watch (that never ran the beta) to see if she had the same issue -- but her watch was fine. Sooooo... What was I doing wrong? Why me, Apple Overlord? </p>
<p>I started fiddling around with my language and regional settings (nope, not it), and was contemplating a factory reset (argh, re-adding all my cards to Apple Pay)... </p>
<p>And then... </p>
<p>An epiphany. </p>
<p>They wouldn't?!?! Would they?? </p>
<p>Something only Apple would dare to do. </p>
<p>I deleted the Apple Calendar app (on my iPhone) -- as I use the Google Calendar app. Would that somehow be related?</p>
<p>And guess what... Installing the Apple Calendar app via the App Store resolved it:</p>
<figure class="wp-block-gallery columns-2 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img src="https://static.yeri.be/2020/09/IMG_1764-473x1024.png" alt="" data-id="38433" data-link="https://yeri.be/?attachment_id=38433" class="wp-image-38433"/></figure></li><li class="blocks-gallery-item"><figure><img src="https://static.yeri.be/2020/09/IMG_1763-473x1024.png" alt="" data-id="38436" data-full-url="https://static.yeri.be/2020/09/IMG_1763.png" data-link="https://yeri.be/?attachment_id=38436" class="wp-image-38436"/></figure></li></ul></figure>
<p>Check Apple Watch and the option is back! </p>
<p>That's one way of forcing people to use your apps.</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>iphone</category><category>watch</category>
    </item>
    
    <item>
      <title>Making Bluetooth work on RPi4</title>
      <link>https://yeri.be/making-bluetooth-work-on-rpi4/</link>
      <pubDate>Tue, 01 Sep 2020 22:30:16 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/making-bluetooth-work-on-rpi4/</guid><enclosure url="https://static.yeri.be/2020/09/Screenshot-2020-09-01-at-15.33.24.png" length="0" type="image/png" />
      <description>&lt;p&gt;I &lt;a href=&#34;https://www.benkuhn.net/wireless/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;rarely use&lt;/a&gt; Bluetooth on my RPis. I&#39;m already facing enough issues with my iMac and Mac Mini (it lags, it randomly disconnects in meetings, etc). &lt;/p&gt;&#xA;&lt;p&gt;My &lt;a href=&#34;http://pwnagotchi.ai/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;pwnagotchi&lt;/a&gt; on the other hand is counting on a BLE network to connect to the internet: for now I am using my iPad, and while that works, it causes my iPad to disconnect from WiFi (because of course, it can only do tethering from a mobile network, not from its WiFi network). &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/09/Screenshot-2020-09-01-at-15.33.24.png" alt="Making Bluetooth work on RPi4"></p><p>I <a href="https://www.benkuhn.net/wireless/" target="_blank" rel="noreferrer noopener">rarely use</a> Bluetooth on my RPis. I'm already facing enough issues with my iMac and Mac Mini (it lags, it randomly disconnects in meetings, etc). </p>
<p>My <a href="http://pwnagotchi.ai/" target="_blank" rel="noreferrer noopener">pwnagotchi</a> on the other hand is counting on a BLE network to connect to the internet: for now I am using my iPad, and while that works, it causes my iPad to disconnect from WiFi (because of course, it can only do tethering from a mobile network, not from its WiFi network). </p>
<p>I wanted to explore if I could set up bluetooth tethering/internet sharing from my RPi4 server... But for that BLE had to work! And for some reason BLE was not working on <a href="https://yeri.be/raspberry-pi-4-ssd" target="_blank" rel="noreferrer noopener">Liana</a>.</p>
<pre class="wp-block-code"><code>&#91;bluetooth]# power on
No default controller available</code></pre>
<p>For some reason no controller was available. The drivers were definitely installed... </p>
<pre class="wp-block-code"><code>apt install bluetooth pi-bluetooth bluez raspberrypi-sys-mods</code></pre>
<p>but <code>hcitool dev ; hciconfig -a</code> weren't returning anything.  </p>
<p>After quite some extensive Googling I found <a href="https://raspberrypi.stackexchange.com/questions/72419/raspberry-pi-3-bluetooth-no-controller/85158#85158" target="_blank" rel="noreferrer noopener">the solution</a>... </p>
<p>Check if this returns something:</p>
<pre class="wp-block-code"><code># ls -l /dev | grep ttyAMA0
lrwxrwxrwx 1 root root           7 Sep  1 15:08 serial1 -> ttyAMA0
crw-rw---- 1 root dialout 204,  64 Sep  1 15:08 ttyAMA0</code></pre>
<p>As opposed to:</p>
<pre class="wp-block-code"><code># ls -l /dev | grep ttyS0
# (no output)</code></pre>
<p>Then continue to do the following:</p>
<pre class="wp-block-code"><code># make a backup
cp /boot/cmdline.txt /boot/cmdline.txt.bak
# edit the file
nano -w /boot/cmdline.txt
# edit the first part from
# console=ttySerial0 to console=ttyAMA0
# the line should be something similar to but do NOT blindly copy paste it as you won't be able to boot due to your PARTUUID being different
console=ttyAMA0,115200 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
reboot</code></pre>
<p>After rebooting ... it works!</p>
<pre class="wp-block-code"><code>liana ~ # hcitool dev ; hciconfig -a
Devices:
	hci0	DC:A6:32:B1:0E:79
hci0:	Type: Primary  Bus: UART
	BD Address: DC:A6:32:B1:0E:79  ACL MTU: 1021:8  SCO MTU: 64:1
	UP RUNNING 
	RX bytes:2397 acl:0 sco:0 events:118 errors:0
	TX bytes:2603 acl:0 sco:0 commands:99 errors:0
	Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
	Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
	Link policy: RSWITCH SNIFF 
	Link mode: SLAVE ACCEPT 
	Name: 'liana'
	Class: 0x000000
	Service Classes: Unspecified
	Device Class: Miscellaneous, 
	HCI Version: 5.0 (0x9)  Revision: 0x13b
	LMP Version: 5.0 (0x9)  Subversion: 0x6119
	Manufacturer: Cypress Semiconductor Corporation (305)

liana ~ # bluetoothctl 
Agent registered
&#91;bluetooth]# scan on
Discovery started
&#91;CHG] Controller DC:A6:32:B1:0E:79 Discovering: yes
&#91;NEW] Device 7F:A9:BC:8D:E4:14 7F-A9-BC-8D-E4-14
&#91;NEW] Device 58:EB:19:D8:D4:23 58-EB-19-D8-D4-23
&#91;NEW] Device A4:83:E7:42:79:F6 A4-83-E7-42-79-F6
&#91;NEW] Device 58:7B:24:1B:CC:5C 58-7B-24-1B-CC-5C
&#91;NEW] Device D9:05:9F:DB:55:19 N0163
&#91;NEW] Device 5F:DA:90:34:82:68 5F-DA-90-34-82-68
&#91;NEW] Device 77:2A:1B:11:54:7D 77-2A-1B-11-54-7D
&#91;NEW] Device 42:BF:0B:38:F3:20 42-BF-0B-38-F3-20</code></pre>
<p>Next step is trying to get tethering to work... </p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category>
      <category>ble</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>Ideal travel router: GL-AR750S</title>
      <link>https://yeri.be/ideal-travel-router-gl-ar750s/</link>
      <pubDate>Fri, 26 Jun 2020 18:24:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/ideal-travel-router-gl-ar750s/</guid><enclosure url="https://static.yeri.be/2020/04/ar750s-ext_1000x1000.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Right. With the pandemic and all none of us are going to travel much but still...&lt;/p&gt;&#xA;&lt;p&gt;About a year ago I purchased myself an &lt;a class=&#34;aioseop-link&#34; rel=&#34;noreferrer noopener&#34; href=&#34;https://www.gl-inet.com/products/gl-ar750s/&#34; target=&#34;_blank&#34;&gt;OpenWRT router&lt;/a&gt; to use on the plane and in hotels.&lt;/p&gt;&#xA;&lt;p&gt;And so far I really like both the device and the Hong Kong based brand (launching new and updated products, and releasing relatively regular updates for older products). Pick a device that fits your needs (&lt;a href=&#34;https://www.gl-inet.com/products/gl-mt300n-v2/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;USB powered&lt;/a&gt;? &lt;a href=&#34;https://www.gl-inet.com/products/gl-e750/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;LTE&lt;/a&gt;? &lt;a href=&#34;https://www.gl-inet.com/products/vixmini/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;Small form factor&lt;/a&gt;?). &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/04/ar750s-ext_1000x1000.jpg" alt="Ideal travel router: GL-AR750S"></p><p>Right. With the pandemic and all none of us are going to travel much but still...</p>
<p>About a year ago I purchased myself an <a class="aioseop-link" rel="noreferrer noopener" href="https://www.gl-inet.com/products/gl-ar750s/" target="_blank">OpenWRT router</a> to use on the plane and in hotels.</p>
<p>And so far I really like both the device and the Hong Kong based brand (launching new and updated products, and releasing relatively regular updates for older products). Pick a device that fits your needs (<a href="https://www.gl-inet.com/products/gl-mt300n-v2/" target="_blank" rel="noreferrer noopener">USB powered</a>? <a href="https://www.gl-inet.com/products/gl-e750/" target="_blank" rel="noreferrer noopener">LTE</a>? <a href="https://www.gl-inet.com/products/vixmini/" target="_blank" rel="noreferrer noopener">Small form factor</a>?). </p>
<p>The GL-AR750S aka Slate is fully customizable but runs a few nice things out of the box: <a href="https://yeri.be/wireguard" target="_blank" rel="noreferrer noopener">WireGuard</a> (with a physical button to turn it on or off), <a href="https://yeri.be/tag/openvpn" target="_blank" rel="noreferrer noopener">OpenVPN</a>, shell access, Tor (requires the latest firmware), <a href="https://yeri.be/tag/ipv6" target="_blank" rel="noreferrer noopener">IPv6</a>, <a href="https://en.wikipedia.org/wiki/DNS_over_HTTPS" target="_blank" rel="noreferrer noopener">DoH</a> (<a href="https://web.archive.org/web/20210827100952/https://developers.cloudflare.com/1.1.1.1/dns-over-https" target="_blank" rel="noreferrer noopener">Cloudflare</a> only for now), multiple SSIDs (i.e. Guest WiFi), and more. </p>
<p>Oh and I specifically picked this version (compared to <a href="https://www.gl-inet.com/products/" target="_blank" rel="noreferrer noopener">other or cheaper ones</a>) because it had both 2.4Ghz and 5Ghz, as well as 3 Gbit ports (1x WAN, 2x LAN).</p>
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://static.yeri.be/2020/06/glinet-compare-1.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/06/glinet-compare-1-1024x694.png" alt="" class="wp-image-9088"/></a><figcaption>Pick whatever works for you...</figcaption></figure></div>
<p>I use the device on flights, where I connect to the network once in the air, purchase WiFi or use <a href="http://web.archive.org/web/20240228214834/https://www.ipass.com/inflight-internet/" target="_blank" rel="noreferrer noopener">iPass</a> "for one device" and then connect to the interwebs behind my <a href="https://en.wikipedia.org/wiki/Network_address_translation" target="_blank" rel="noreferrer noopener">NAT</a>-router from my iPad, phone(s), laptop(s), and even <a href="https://yeri.be/shan-wong-sketching" title="Shan Wong sketching" target="_blank" rel="noreferrer noopener">Shan</a>'s devices if she is travelling with me.</p>
<p>In hotels, I either connect it to the wired ethernet, if still available (tends to be more stable), or connect it to the guest WiFi and then connect my devices to the router: saves me from connecting to a new network and typing the room number and login/password/family name on every device. And once again hides the true number of connected devices; quite handy trick for those pesky hotels providing free access only to two devices.</p>
<p>Sure it takes a bit of setup every time: find a working USB port, sign in to the web interface, search for new networks if this is a new hotel or I haven't travelled on this airline, connect to said network, sign in with iPass, and optionally enable VPN)...</p>
<p>And once in a while some fiddling with VPN or DNS that's borking up or being blocked by overzealous firewalls. </p>
<p>Also, some in-flight entertainment USB ports don't provide enough power (and/or are often broken -- looking at you Lufthansa in economy) so be sure to carry <a href="https://www.apple.com/shop/product/MD810LL/A/apple-5w-usb-power-adapter?fnode=83f41015933a91450d5764c4af01b7dcde6df42b8f2bd3d69b5785e0ebe48054e25d0a20aee428acbd11aa75bf2c77677833fecc12d57e28996bdafa64dfb0a43baa67bb1e79a1e51318f290bc482600cab20f21c35e5c95c94188846e9c860c366a443744dd092235bfa2928b330b8f&amp;fs=fh%3D458e%252B45d4" target="_blank" rel="noreferrer noopener nofollow sponsored">a couple of these</a> (US-plug works best) -- I've already forgotten one on my last flight from <a href="https://my.flightradar24.com/Tuinslak" target="_blank" rel="noreferrer noopener">MUC-SIN</a> on LH, but luckily I have pretty easy access to these. </p>
<p>If you travel a lot it's totally worth the money.</p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>networking</category><category>software</category>
      <category>china</category><category>openvpn</category><category>openwrt</category><category>router</category><category>wifi</category><category>wireguard</category>
    </item>
    
    <item>
      <title>Raspberry Pi 4 &#43; SSD</title>
      <link>https://yeri.be/raspberry-pi-4-ssd/</link>
      <pubDate>Sun, 21 Jun 2020 01:15:02 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/raspberry-pi-4-ssd/</guid><enclosure url="https://static.yeri.be/2020/06/IMG_9881.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;All right. With the release of the new &lt;a href=&#34;https://www.raspberrypi.org/blog/8gb-raspberry-pi-4-on-sale-now-at-75/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;RPi4 with 8Gb of RAM&lt;/a&gt; I had to get myself one to see if it was already a viable desktop replacement for surfing and emails. &lt;/p&gt;&#xA;&lt;p&gt;While a SD card works fine for certain tasks (things that don&#39;t require a lot of IO) -- for a desktop that&#39;s a no-go... It&#39;s just too slow.&lt;/p&gt;&#xA;&lt;p&gt;I still had an old Macbook Pro 13&#34; (2o15?) SSD lying around that was collecting dust. Why not use that one to use as root for the RPi? &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/06/IMG_9881.jpg" alt="Raspberry Pi 4 + SSD"></p><p>All right. With the release of the new <a href="https://www.raspberrypi.org/blog/8gb-raspberry-pi-4-on-sale-now-at-75/" target="_blank" rel="noreferrer noopener">RPi4 with 8Gb of RAM</a> I had to get myself one to see if it was already a viable desktop replacement for surfing and emails. </p>
<p>While a SD card works fine for certain tasks (things that don't require a lot of IO) -- for a desktop that's a no-go... It's just too slow.</p>
<p>I still had an old Macbook Pro 13" (2o15?) SSD lying around that was collecting dust. Why not use that one to use as root for the RPi? </p>
<p>This article will focus on making it work on Raspbian first. Technically this should all work on other distros as well, but <a href="https://www.urbandictionary.com/define.php?term=ymmv" target="_blank" rel="noreferrer noopener">YMMV</a> seeing all this is still beta. </p>
<p>I use Raspbian Lite: I like to work with minimalstic systems and install just what I need. But technically this should work with any flavour. </p>
<p>But first, let's prep the device.</p>
<p><strong>Case</strong></p>
<p>I already have a RPi4 (4Gb) at home running mostly Docker containers (nginx proxy and a few personal things and <a href="https://smokeping-sg.superuser.one/" target="_blank" rel="noreferrer noopener">Smokeping</a>). </p>
<p>And one of the 'best' purchases I made for the RPi4 was the "Raspberry Pi 4 Model B Aluminium Case" (<a href="https://web.archive.org/web/20210125015506/https://www.lazada.sg/products/for-raspberry-pi-4-model-b-aluminum-case-passive-cooling-aluminum-alloy-protective-shell-metal-enclosure-for-raspberry-pi-4-model-b-i738812614-s2377660292.html?mp=1" target="_blank" rel="noreferrer noopener nofollow sponsored">Lazada</a>, <a href="https://www.aliexpress.com/item/33051396297.html?spm=a2g0o.productlist.0.0.125a5bd6Y009xm&amp;algo_pvid=0d7b54ae-8c21-4cee-82ad-201fb4359d0c&amp;algo_expid=0d7b54ae-8c21-4cee-82ad-201fb4359d0c-8&amp;btsid=0ab6fb8315926566848663739ead8c&amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_" target="_blank" rel="noreferrer noopener nofollow sponsored">AliExpress</a>). This case is passive and dissipates enough heat (even in a closed cabinet in Singapore where it's 30°) for the CPU never to throttle back when overclocked at 2Ghz (see below). </p>
<p>Do note that this case (which is pretty much just a massive heat sink) gets pretty hot if the RPi is running at max performance for long periods of time. </p>
<p><strong>USB-SSD</strong></p>
<p>Get one that fits your SSD and that ideally has Linux support. As Apple uses custom SSD connectors (prior to being soldered onto the motherboard) I had to get a converter from China. It was a bit of Russian Roulette to see if it would work or be supported on Linux. I got myself <a href="https://www.aliexpress.com/item/4001014439722.html?spm=a2g0o.productlist.0.0.53e65b1eIgYBZs&amp;algo_pvid=07a65076-95e6-4fe9-962d-7a70c22b8df5&amp;algo_expid=07a65076-95e6-4fe9-962d-7a70c22b8df5-1&amp;btsid=0ab50f4415907422600613293e387b&amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_" rel="noreferrer noopener nofollow sponsored" target="_blank">this one</a> (chipset: Netchip Technology). As I didn't remember what type of Macbook Pro this came from, using <a href="https://beetstech.com/product/solid-state-drive-256gb-655-1803" target="_blank" rel="noreferrer noopener">this site</a> to compare serial/model was useful. This USB-to-SSD converted also works on Mac and Windows by the way. </p>
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://static.yeri.be/2020/06/ssd-enclosure.jpg" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/06/ssd-enclosure-1024x768.jpg" alt="" class="wp-image-9077"/></a><figcaption>The SSD with the PCB that provides the USB interface.</figcaption></figure></div>
<p>In my case, the RPi also did not provider enough power to the USB-SSD converter (although... it really should but whatevs), so be sure to use the provided power cable and plug it into a USB power source. Not doing so will cause the SSD to heat up and show a bunch of disconnects/errors in <code>dmesg</code>. </p>
<pre class="wp-block-code"><code>raspbian ~ # fdisk -l /dev/sda1 
Disk /dev/sda1: 233.8 GiB, 250999127552 bytes, 490232671 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
raspbian ~ # lsusb 
Bus 002 Device 002: ID 0525:622b Netchip Technology, Inc. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
raspbian ~ # lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M</code></pre>
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://static.yeri.be/2020/06/ssd.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/06/ssd-1024x628.png" alt="Raspberry Pi 4 with USB SSD connected" class="wp-image-9059"/></a><figcaption>Raspberry Pi 4 with USB SSD connected</figcaption></figure></div>
<p><strong>eeprom update</strong></p>
<p>Disconnect the USB-SSD for now.</p>
<p>At the time of writing we need to <a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md" target="_blank" rel="noreferrer noopener">update</a> the eeprom to boot from USB. I'm using the latest eeprom available to me. Note that the USB-boot eeprom is about to hit stable so you might not need to do this anymore. </p>
<p>There are two methods for updating. We can do it manually:</p>
<pre class="wp-block-code"><code>rpi-update
cd /lib/firmware/raspberrypi/bootloader/beta
rpi-eeprom-update -d -f ./pieeprom-2020-06-15.bin
# BCM2711 detected
# VL805 firmware in bootloader EEPROM
# BOOTFS /boot
# *** INSTALLING ./pieeprom-2020-06-15.bin ***
# BOOTFS /boot
# EEPROM update pending. Please reboot to apply the update.
reboot
# RPi should come back online after a reboot</code></pre>
<p>Or we use <code>rpi-eeprom-update</code> (see <a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md" target="_blank" rel="noreferrer noopener">article</a>, at the bottom):</p>
<pre class="wp-block-code"><code>nano -w /etc/default/rpi-eeprom-update
# edit critical to stable
rpi-eeprom-update
rpi-eeprom-update -a</code></pre>
<p>The good thing is that, even if you boot from a Raspbian that does not have <code>/etc/default/rpi-eeprom-update</code> edited to use <code>stable</code> instead of <code>critical</code>, it will not downgrade your eeprom. </p>
<p>Now you can plug in the SD card in an USB-SD card reader, and test if the RPi boots from USB. Note that the SD card might be slower. </p>
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://static.yeri.be/2020/06/rpi-boots-usb-sd.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/06/rpi-boots-usb-sd-1024x993.png" alt="" class="wp-image-9062"/></a><figcaption>RPi booting the SD card from USB (<code>/dev/sda</code>)</figcaption></figure></div>
<p>All right -- so everything is working. I am keeping this SD card to update the eeprom again at a later stage (as the one we flashed is beta). If we use <a href="https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4" target="_blank" rel="noreferrer noopener">Archlinux</a> or Ubuntu the eeprom update tools won't be included. </p>
<p>Next step is to flash Raspbian to the USB-SSD. </p>
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://static.yeri.be/2020/06/flash-to-ssd.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/06/flash-to-ssd-1024x665.png" alt="" class="wp-image-9065"/></a><figcaption>This screenshot shows <a href="https://ubuntu.com/download/raspberry-pi" target="_blank" rel="noreferrer noopener">Ubuntu</a>, but for the sake of this article, we'll use Raspbian still. I'm using <a href="https://www.balena.io/etcher/" target="_blank" rel="noreferrer noopener">Etcher</a> to flash. </figcaption></figure></div>
<p>Boot-up from the USB-SSD. </p>
<p><strong>Errors</strong></p>
<p>In case you are getting an error similar to <code>start4.elf: is not compatible</code> you'll need to copy paste <code>/boot/start4.elf</code> from a Raspbian that ran <code>rpi-update</code> (i.e. the one from the SD card, or see below). </p>
<p>If you are booting (a fresh) Raspbian, it might complain about <code>cma: Failed to reserve 256 MiB</code> (and several other errors). The solution is running <code>rpi-update</code>. </p>
<p>Boot from the working Raspbian (using the SD card):</p>
<pre class="wp-block-code"><code># check which drive is your USB-SSD (i.e. using fdisk -l or dmesg). 
# In my case I booted from USB-SD (/dev/sda) and we'll update the new/clean Raspbian on the SSD (/dev/sdb).
#
# First resize the partition, if the system never booted it'll be 1.5Gb and thus not big enough:
# Device     Boot  Start     End Sectors  Size Id Type
# /dev/sdb1         8192  532479  524288  256M  c W95 FAT32 (LBA)
# /dev/sdb2       532480 3620863 3088384  1.5G 83 Linux
fdisk /dev/sdb
# Type the following:
# p (and visually check it all makes sense)
# d
# 2
# n
# Select (default p): p
# Partition number (2-4, default 2): &lt;enter>
# First sector (2048-490234751, default 2048): 532480 (or whichever is the same "start" from the 2nd partition) 
# Last sector, +/-sectors or +/-size{K,M,G,T,P} (532480-490234751, default 490234751): &lt;enter>
# Created a new partition 2 of type 'Linux' and of size 233.5 GiB.
# Partition #2 contains a ext4 signature.
# Do you want to remove the signature? &#91;Y]es/&#91;N]o: n
# p (visually check once again it makes sense, if not you can cancel/quit by typing q)
# w (if it makes sense)
# The last command will write the changes to the partition table and sync all changes. 
# Then we need to check and resize the filesystem:
e2fsck -f /dev/sdb2
resize2fs /dev/sdb2
# If all that worked we can start mounting everything
mkdir /tmp/ssd
mount /dev/sdb2 /tmp/ssd/
mount /dev/sdb1 /tmp/ssd/boot/
mount /proc/ /tmp/ssd/proc/ -t proc
mount --rbind /sys/ /tmp/ssd/sys/
mount --rbind /dev/ /tmp/ssd/dev/
# Once everything is mounted, we're chrooting into the fresh Raspbian running on the SSD
chroot /tmp/ssd/ /bin/bash
# you can double confirm the partition size using:
df -h
# And we update the system. Again, if all this hits stable it might not be needed.
rpi-update
# say "y" when it's asking you to.
# exit the chroot and turn off the device, remove the USB-SD and leave USB-SSD connected. 
exit 
halt</code></pre>
<p>My first reboot the boot process threw errors about failing to mount the root fs.</p>
<p>We'll need to update <code>/etc/fstab</code> with the correct <code>partuuid</code>. </p>
<pre class="wp-block-code"><code># Boot from the (USB-)SD card again
# In my case sdb became sda and vice versa, so double check
lsblk
# be sure to select the right disk (the SSD, no the SD)!
mkdir /tmp/ssd
mount /dev/sda2 /tmp/ssd/
# And find the SSD here as well.
# look for the last column, partuuid, something like 
"6f6cc2fb-01"
blkid
nano -w /tmp/ssd/etc/fstab
# edit the existing partuuid's with the ones from blkid
# you'll need to edit both /boot (-01) and / (root, -02).
halt
# When rebooting from the SSD it'll go through a fsck. In my case for some reason it failed and dropped to a shell. I did a manual check and everything was fine. Rebooted and it booted normally... *shrug*</code></pre>
<p><strong>Booting</strong></p>
<p>At this stage booting from the USB-SSD should work just fine. You have a working system booting from USB. </p>
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://static.yeri.be/2020/06/rpi4-booted-from-ssd.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/06/rpi4-booted-from-ssd-1024x714.png" alt="" class="wp-image-9074"/></a><figcaption>It's working! Now I can configure my system. </figcaption></figure></div>
<p><strong>Overclocking</strong></p>
<p>Last thing I'd recommend is getting a bit more juice out of your four cores.</p>
<p>You can quite easily overclock the RPi4 to 2Ghz (per core). It's a pretty nice boost (~25%) and worth going for. I haven't seen any heat issues leading to underclocking (throttling back), and everything runs stable. Note that under real circumstances you are unlikely to be running at 100% for extended period of times. </p>
<p><a href="https://magpi.raspberrypi.org/articles/how-to-overclock-raspberry-pi-4" target="_blank" rel="noreferrer noopener">This guide</a> explains how to overclock Raspbian (but the same applies for <a href="https://ubuntu.com/download/raspberry-pi" target="_blank" rel="noreferrer noopener">Ubuntu RPi</a> -- I'll eventually be using Ubuntu as the OS due to its 64 bit support; at the moment <a href="https://www.raspberrypi.org/forums/viewtopic.php?f=117&amp;t=275370" target="_blank" rel="noreferrer noopener">Raspbian</a> only supports a 64 bit kernel (beta) and the userland still runs 32 bit. But that'll be a follow-up article. </p>
<p>The gist of the article is to edit <code>/boot/config.txt</code> and add:</p>
<pre class="wp-block-code"><code>over_voltage=6
arm_freq=2000</code></pre>
<p>Save the file, reboot and monitor temp (<code>echo $((cat /sys/class/thermal/thermal_zone0/temp/1000))</code>) and core frequency (<code>watch -n 1 vcgencmd measure_clock arm</code>) while running <code>stress -c 4</code> to make sure the cores are running at 100%.</p>
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://static.yeri.be/2020/06/rpi4-2ghz.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/06/rpi4-2ghz-1024x628.png" alt="Raspberry Pi 4 running at 2Ghz" class="wp-image-9058"/></a><figcaption>Raspberry Pi 4 running at 2Ghz. It never throttled back after running for ~30 minutes.</figcaption></figure></div>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category>
      <category>raspberrypi</category><category>ssd</category><category>usb</category>
    </item>
    
    <item>
      <title>Synology &#34;Operation Failed&#34; manually updating package</title>
      <link>https://yeri.be/synology-operation-failed-manually-updating-package/</link>
      <pubDate>Wed, 20 May 2020 00:24:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/synology-operation-failed-manually-updating-package/</guid><enclosure url="https://static.yeri.be/2020/05/operation-failed.png" length="0" type="image/png" />
      <description>&lt;p&gt;&lt;a href=&#34;https://yeri.be/synology-resilio-sync-stuck&#34; target=&#34;_blank&#34; aria-label=&#34; (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;Resilio Sync&lt;/a&gt; released an update last week and on Synology these package don&#39;t auto update. Time to manually update the packages again.&lt;/p&gt;&#xA;&lt;p&gt;On my &lt;code&gt;DS1515&lt;/code&gt; (more RAM, more CPU) the manual update goes by fine (stop service, manual update, browse for file, upload, start service) but my &lt;code&gt;DS216j&lt;/code&gt;, not so much. &lt;/p&gt;&#xA;&lt;p&gt;Attempting to upload the file instantly fails with the useful error &#34;Operation Failed&#34;. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/05/operation-failed.png" alt="Synology &#34;Operation Failed&#34; manually updating package"></p><p><a href="https://yeri.be/synology-resilio-sync-stuck" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">Resilio Sync</a> released an update last week and on Synology these package don't auto update. Time to manually update the packages again.</p>
<p>On my <code>DS1515</code> (more RAM, more CPU) the manual update goes by fine (stop service, manual update, browse for file, upload, start service) but my <code>DS216j</code>, not so much. </p>
<p>Attempting to upload the file instantly fails with the useful error "Operation Failed". </p>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2020/05/synology-fail.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/05/synology-fail-1024x745.png" alt="" class="wp-image-8904"/></a></figure>
<p>I tried to re-download the file (was it corrupt)... Nop. Did I select the right <a aria-label="architecture (opens in a new tab)" href="https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Compatibility_Peripherals/What_kind_of_CPU_does_my_NAS_have" target="_blank" rel="noreferrer noopener" class="aioseop-link">architecture</a>? Yep. Decided to give it a go via via the command line. Perhaps a reboot? Nop. </p>
<p>First, make sure SSH is enabled and you can SSH. Oh and pro tip: add your SSH key. </p>
<p>Something along these lines should get you started:</p>
<pre class="wp-block-code"><code># Transfer the file to the NAS
scp *.spk NAS-IP:
# Connect to the device
ssh user@NAS-IP
# Install it as root using sudo. It'll ask for your psw
sudo synopkg install *.spk
&#91;password]
# resiliosync_armada38x_DSM6_2.7.0.1366-1.spk install successfully
# All good? Then remove the installer
rm *.spk</code></pre>
<p>Somehow this worked... 🤷‍♂️ Not sure what caused the error in the first place. I am guessing the device is a bit low on RAM. </p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category>
      <category>nas</category><category>synology</category>
    </item>
    
    <item>
      <title>NextDNS, EdgeOS and device names</title>
      <link>https://yeri.be/nextdns-edgeos-and-device-names/</link>
      <pubDate>Fri, 15 May 2020 13:02:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nextdns-edgeos-and-device-names/</guid><enclosure url="https://static.yeri.be/2020/05/nextdnslogs.png" length="0" type="image/png" />
      <description>&lt;p&gt;Noticed that NextDNS was reporting old hostnames in the logs. For example old device names (devices that changed hostnames), devices that were definitely no longer on the network, or IPs that were matched to the wrong hostnames.&lt;/p&gt;&#xA;&lt;p&gt;The culprit is how EdgeOS deals with its &lt;a aria-label=&#34;hosts file (opens in a new tab)&#34; href=&#34;https://en.wikipedia.org/wiki/Hosts_%28file%29&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;hosts file&lt;/a&gt;. Basically it just keeps all the old hosts added and just adds a new line at the end of the file. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/05/nextdnslogs.png" alt="NextDNS, EdgeOS and device names"></p><p>Noticed that NextDNS was reporting old hostnames in the logs. For example old device names (devices that changed hostnames), devices that were definitely no longer on the network, or IPs that were matched to the wrong hostnames.</p>
<p>The culprit is how EdgeOS deals with its <a aria-label="hosts file (opens in a new tab)" href="https://en.wikipedia.org/wiki/Hosts_%28file%29" target="_blank" rel="noreferrer noopener" class="aioseop-link">hosts file</a>. Basically it just keeps all the old hosts added and just adds a new line at the end of the file. </p>
<p>NextDNS searches for the first valid entry in that file, which is always going to be an older record.</p>
<p>So the simplest solution I found was the turn off <code>hostfile-update</code> every so often. This clears the hosts file. </p>
<p>So <code>ssh</code> into the device, run <code>configure</code>, and then run these commands:</p>
<pre class="wp-block-code"><code>set service dhcp-server hostfile-update disable
commit
set service dhcp-server hostfile-update enable
commit
save</code></pre>
<h2 class="wp-block-heading">Update 22 Jun '23:</h2>
<p>Be sure to restart NextDNS, or it won't actually publish the up-to-date client hostnames.</p>
<pre class="wp-block-code"><code>sudo /config/nextdns/nextdns restart</code></pre>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category>
      <category>dns</category><category>nextdns</category><category>router</category><category>ubiquiti</category>
    </item>
    
    <item>
      <title>Running WireGuard in a Docker container (RPi)</title>
      <link>https://yeri.be/running-wireguard-in-a-docker-container-rpi/</link>
      <pubDate>Fri, 08 May 2020 18:10:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/running-wireguard-in-a-docker-container-rpi/</guid><enclosure url="https://static.yeri.be/2020/04/wg-liana.png" length="0" type="image/png" />
      <description>&lt;p&gt;This follows the my two other posts about &lt;a href=&#34;https://yeri.be/wireguard&#34; target=&#34;_blank&#34; aria-label=&#34;WireGuard (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;WireGuard&lt;/a&gt;. &lt;/p&gt;&#xA;&lt;p&gt;Most of this can be copied from &lt;a aria-label=&#34;the amd64 post (opens in a new tab)&#34; href=&#34;https://yeri.be/running-wireguard-in-a-docker-container-(amd64)&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;the amd64 post&lt;/a&gt; -- with a minor change for making it work on RPi4. &lt;a aria-label=&#34;This is the full Git repo (opens in a new tab)&#34; href=&#34;https://gitlab.com/yeri/wireguard-docker/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;This is the full &lt;/a&gt;&lt;a href=&#34;https://gitlab.com/yeri/wireguard-docker/&#34; target=&#34;_blank&#34; aria-label=&#34;This is the full Git repo (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;g&lt;/a&gt;&lt;a aria-label=&#34;This is the full Git repo (opens in a new tab)&#34; href=&#34;https://gitlab.com/yeri/wireguard-docker/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;it repo&lt;/a&gt; (including both rpi and amd64). &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/04/wg-liana.png" alt="Running WireGuard in a Docker container (RPi)"></p><p>This follows the my two other posts about <a href="https://yeri.be/wireguard" target="_blank" aria-label="WireGuard (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">WireGuard</a>. </p>
<p>Most of this can be copied from <a aria-label="the amd64 post (opens in a new tab)" href="https://yeri.be/running-wireguard-in-a-docker-container-(amd64)" target="_blank" rel="noreferrer noopener" class="aioseop-link">the amd64 post</a> -- with a minor change for making it work on RPi4. <a aria-label="This is the full Git repo (opens in a new tab)" href="https://gitlab.com/yeri/wireguard-docker/" target="_blank" rel="noreferrer noopener" class="aioseop-link">This is the full </a><a href="https://gitlab.com/yeri/wireguard-docker/" target="_blank" aria-label="This is the full Git repo (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">g</a><a aria-label="This is the full Git repo (opens in a new tab)" href="https://gitlab.com/yeri/wireguard-docker/" target="_blank" rel="noreferrer noopener" class="aioseop-link">it repo</a> (including both rpi and amd64). </p>
<p>The main difference is in the <a aria-label="run.sh file (opens in a new tab)" href="https://gitlab.com/yeri/wireguard-docker/-/blob/master/liana.run.sh" target="_blank" rel="noreferrer noopener" class="aioseop-link">run.sh file</a>. The installation is a bit different and we'll need to install the Raspberry Pi kernel headers. </p>
<p>WireGuard is also installed from testing instead of Debian backports. </p>
<p>Note that for older RPi's (ie gen 1) you'll need to <a href="https://github.com/adrianmihalko/raspberrypiwireguard" target="_blank" aria-label="compile from scratch (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">compile from scratch</a>. </p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category>
      <category>debian</category><category>docker</category><category>raspberrypi</category><category>wireguard</category>
    </item>
    
    <item>
      <title>Resilio Sync on Synology stuck?</title>
      <link>https://yeri.be/synology-resilio-sync-stuck/</link>
      <pubDate>Tue, 05 May 2020 06:21:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/synology-resilio-sync-stuck/</guid><enclosure url="https://static.yeri.be/2020/04/resilio-sync.png" length="0" type="image/png" />
      <description>&lt;p&gt;The &lt;a aria-label=&#34;Resilio Sync (opens in a new tab)&#34; href=&#34;https://www.resilio.com/individuals/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;Resilio Sync&lt;/a&gt; package that&#39;s provided on a Synology NAS&#39; Packager Center is out of date (2.6.2) and has a bug that causes big files to fail to sync (and that causes a loop of endless retries).&lt;/p&gt;&#xA;&lt;p&gt;The solution is to manually update the package from 2.6.2 to 2.6.4. Find your &lt;a aria-label=&#34;NAS architecture (opens in a new tab)&#34; href=&#34;https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Compatibility_Peripherals/What_kind_of_CPU_does_my_NAS_have&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;NAS architecture&lt;/a&gt; and then &lt;a label=&#34;download (opens in a new tab)&#34; href=&#34;https://web.archive.org/web/20210226065408/https://help.resilio.com/hc/en-us/articles/206664850-Synology&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;download&lt;/a&gt; (bottom of the page) the right binary and manually install it. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/04/resilio-sync.png" alt="Resilio Sync on Synology stuck?"></p><p>The <a aria-label="Resilio Sync (opens in a new tab)" href="https://www.resilio.com/individuals/" target="_blank" rel="noreferrer noopener" class="aioseop-link">Resilio Sync</a> package that's provided on a Synology NAS' Packager Center is out of date (2.6.2) and has a bug that causes big files to fail to sync (and that causes a loop of endless retries).</p>
<p>The solution is to manually update the package from 2.6.2 to 2.6.4. Find your <a aria-label="NAS architecture (opens in a new tab)" href="https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Compatibility_Peripherals/What_kind_of_CPU_does_my_NAS_have" target="_blank" rel="noreferrer noopener" class="aioseop-link">NAS architecture</a> and then <a label="download (opens in a new tab)" href="https://web.archive.org/web/20210226065408/https://help.resilio.com/hc/en-us/articles/206664850-Synology" target="_blank" rel="noreferrer noopener" class="aioseop-link">download</a> (bottom of the page) the right binary and manually install it. </p>
<p>Note that you need to stop the Resilio Sync service running (manually stop it via Package Center) before uploading the package and installing it.</p>
<p>Once done, don't forget to manually start the service again. </p>
<p>Resilio Sync GUI will be at <code>&lt;NAS IP>:28888/gui/</code>. </p>
<p>The howto guide to manually update the package can be found <a label="here (opens in a new tab)" href="https://web.archive.org/web/20210226065408/https://help.resilio.com/hc/en-us/articles/206664850-Synology" target="_blank" rel="noreferrer noopener" class="aioseop-link">here</a>. </p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>networking</category><category>software</category>
      <category>bittorrent</category><category>nas</category><category>rsync</category><category>synology</category>
    </item>
    
    <item>
      <title>Error! Bad return status for module build on kernel: 4.19.0-8-amd64 (x86_64)</title>
      <link>https://yeri.be/error-bad-return-status-for-module-build-on-kernel-4-19-0-8-amd64-x86-64/</link>
      <pubDate>Mon, 04 May 2020 14:01:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/error-bad-return-status-for-module-build-on-kernel-4-19-0-8-amd64-x86-64/</guid><enclosure url="https://static.yeri.be/2020/05/WireGuard-dkms-crash.png" length="0" type="image/png" />
      <description>&lt;p&gt;I was rebuilding my &lt;a aria-label=&#34;WireGuard (opens in a new tab)&#34; href=&#34;https://yeri.be/tag/wireguard&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;WireGuard&lt;/a&gt; &lt;a aria-label=&#34;Docker (opens in a new tab)&#34; href=&#34;https://yeri.be/running-wireguard-in-a-docker-container-amd64&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;Docker&lt;/a&gt; container today and this error started popping up:&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;Setting up dkms (2.6.1-4) ...&#xA;Setting up wireguard-dkms (1.0.20200429-1~bpo10+1) ...&#xA;Loading new wireguard-1.0.20200429 DKMS files...&#xA;It is likely that 4.19.0-8-cloud-amd64 belongs to a chroot&#39;s host&#xA;Building for 4.19.0-8-amd64 and 4.19.0-8-cloud-amd64&#xA;Building initial module for 4.19.0-8-amd64&#xA;Error! Bad return status for module build on kernel: 4.19.0-8-amd64 (x86_64)&#xA;Consult /var/lib/dkms/wireguard/1.0.20200429/build/make.log for more information.&#xA;dpkg: error processing package wireguard-dkms (--configure):&#xA; installed wireguard-dkms package post-installation script subprocess returned error exit status 10&#xA;Setting up build-essential (12.6) ...&#xA;Setting up libalgorithm-diff-xs-perl (0.04-5+b1) ...&#xA;Setting up libalgorithm-merge-perl (0.08-3) ...&#xA;dpkg: dependency problems prevent configuration of wireguard:&#xA; wireguard depends on wireguard-dkms (&gt;= 0.0.20200121-2) | wireguard-modules (&gt;= 0.0.20191219); however:&#xA;  Package wireguard-dkms is not configured yet.&#xA;  Package wireguard-modules is not installed.&#xA;&#xA;dpkg: error processing package wireguard (--configure):&#xA; dependency problems - leaving unconfigured&#xA;Processing triggers for systemd (241-7~deb10u3) ...&#xA;Processing triggers for libc-bin (2.28-10) ...&#xA;Errors were encountered while processing:&#xA; wireguard-dkms&#xA; wireguard&#xA;E: Sub-process /usr/bin/dpkg returned an error code (1)&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The solution was to install &lt;code&gt;bc&lt;/code&gt;. Seems like Debian is not pulling the right dependencies. I&#39;ll be adding it to my Dockerfile.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/05/WireGuard-dkms-crash.png" alt="Error! Bad return status for module build on kernel: 4.19.0-8-amd64 (x86_64)"></p><p>I was rebuilding my <a aria-label="WireGuard (opens in a new tab)" href="https://yeri.be/tag/wireguard" target="_blank" rel="noreferrer noopener" class="aioseop-link">WireGuard</a> <a aria-label="Docker (opens in a new tab)" href="https://yeri.be/running-wireguard-in-a-docker-container-amd64" target="_blank" rel="noreferrer noopener" class="aioseop-link">Docker</a> container today and this error started popping up:</p>
<pre class="wp-block-code"><code>Setting up dkms (2.6.1-4) ...
Setting up wireguard-dkms (1.0.20200429-1~bpo10+1) ...
Loading new wireguard-1.0.20200429 DKMS files...
It is likely that 4.19.0-8-cloud-amd64 belongs to a chroot's host
Building for 4.19.0-8-amd64 and 4.19.0-8-cloud-amd64
Building initial module for 4.19.0-8-amd64
Error! Bad return status for module build on kernel: 4.19.0-8-amd64 (x86_64)
Consult /var/lib/dkms/wireguard/1.0.20200429/build/make.log for more information.
dpkg: error processing package wireguard-dkms (--configure):
 installed wireguard-dkms package post-installation script subprocess returned error exit status 10
Setting up build-essential (12.6) ...
Setting up libalgorithm-diff-xs-perl (0.04-5+b1) ...
Setting up libalgorithm-merge-perl (0.08-3) ...
dpkg: dependency problems prevent configuration of wireguard:
 wireguard depends on wireguard-dkms (>= 0.0.20200121-2) | wireguard-modules (>= 0.0.20191219); however:
  Package wireguard-dkms is not configured yet.
  Package wireguard-modules is not installed.

dpkg: error processing package wireguard (--configure):
 dependency problems - leaving unconfigured
Processing triggers for systemd (241-7~deb10u3) ...
Processing triggers for libc-bin (2.28-10) ...
Errors were encountered while processing:
 wireguard-dkms
 wireguard
E: Sub-process /usr/bin/dpkg returned an error code (1)</code></pre>
<p>The solution was to install <code>bc</code>. Seems like Debian is not pulling the right dependencies. I'll be adding it to my Dockerfile.</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category>
      <category>debian</category><category>docker</category><category>wireguard</category>
    </item>
    
    <item>
      <title>Running WireGuard in a Docker container (amd64)</title>
      <link>https://yeri.be/running-wireguard-in-a-docker-container-amd64/</link>
      <pubDate>Fri, 01 May 2020 17:09:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/running-wireguard-in-a-docker-container-amd64/</guid><enclosure url="https://static.yeri.be/2020/05/wg-ocean.png" length="0" type="image/png" />
      <description>&lt;p&gt;This is the 2nd post about &lt;a aria-label=&#34;WireGuard (opens in a new tab)&#34; href=&#34;https://yeri.be/tag/wireguard&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;WireGuard&lt;/a&gt;. &lt;/p&gt;&#xA;&lt;p&gt;So I am running two &lt;a aria-label=&#34;WireGuard (opens in a new tab)&#34; href=&#34;https://yeri.be/wireguard&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;WireGuard&lt;/a&gt; servers -- one on a Raspberry Pi 4, and one in an amd64 virtual machine. This post will be about getting WireGuard working on amd64 in a Docker container. &lt;/p&gt;&#xA;&lt;p&gt;As this container rarely get rebuild, I am running &lt;a aria-label=&#34;unattended-upgrades (opens in a new tab)&#34; href=&#34;https://wiki.debian.org/UnattendedUpgrades&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;unattended-upgrades&lt;/a&gt; inside the container to make sure security updates are applied. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/05/wg-ocean.png" alt="Running WireGuard in a Docker container (amd64)"></p><p>This is the 2nd post about <a aria-label="WireGuard (opens in a new tab)" href="https://yeri.be/tag/wireguard" target="_blank" rel="noreferrer noopener" class="aioseop-link">WireGuard</a>. </p>
<p>So I am running two <a aria-label="WireGuard (opens in a new tab)" href="https://yeri.be/wireguard" target="_blank" rel="noreferrer noopener" class="aioseop-link">WireGuard</a> servers -- one on a Raspberry Pi 4, and one in an amd64 virtual machine. This post will be about getting WireGuard working on amd64 in a Docker container. </p>
<p>As this container rarely get rebuild, I am running <a aria-label="unattended-upgrades (opens in a new tab)" href="https://wiki.debian.org/UnattendedUpgrades" target="_blank" rel="noreferrer noopener" class="aioseop-link">unattended-upgrades</a> inside the container to make sure security updates are applied. </p>
<p>I am also running <a aria-label="Bind9 (opens in a new tab)" href="https://wiki.debian.org/Bind9" target="_blank" rel="noreferrer noopener" class="aioseop-link">Bind9</a> to act as a caching DNS server inside the container. Ideally this should be running from its dedicated container but that makes everything more complicated and not worth it for what I am trying. </p>
<p>I am also </p>
<p>The public repo that acts as a proof of concept can be found <a href="https://gitlab.com/yeri/wireguard-docker" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">here</a>. </p>
<p><a href="https://gitlab.com/yeri/wireguard-docker/-/blob/master/start.sh" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">start.sh</a> -- this file starts (or restarts) and builds the container. It will also create the files as needed, set the forwarding DNS server, etc. </p>
<p><a href="https://gitlab.com/yeri/wireguard-docker/-/blob/master/Dockerfile" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">Dockerfile</a> -- the example will start a basic container based on debian-slim, set up the port forwarding, install the tools we need, and copy over the configs</p>
<p><a href="https://gitlab.com/yeri/wireguard-docker/-/blob/master/ocean.run.sh" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">run.sh</a> -- this file will be executed after the container has been built. We need to install WireGuard from this file or it will fail due to the volume not being mounted and not having the right params. <br />This will also start the named (bind9) server. <br />I manually set <code>ip address add dev wg0 10.200.200.1/24</code> because using Address in <code>wg0.conf</code> caused issues. I haven't recently tested if that's still the case. </p>
<p><a aria-label=" (opens in a new tab)" href="https://gitlab.com/yeri/wireguard-docker/-/blob/master/files/named.conf.options.default" target="_blank" rel="noreferrer noopener" class="aioseop-link">named.conf.options</a> -- pretty standard bind9 config file; I want to be in control of my <a aria-label="forwarding (opens in a new tab)" href="https://docstore.mik.ua/orelly/networking_2ndEd/dns/ch10_05.htm" target="_blank" rel="noreferrer noopener" class="aioseop-link">forwarding</a> server because I am using <a aria-label="NextDNS (opens in a new tab)" href="https://yeri.be/tag/nextdns" target="_blank" rel="noreferrer noopener" class="aioseop-link">NextDNS</a> and want to apply a different config. </p>
<p>And of course your <a aria-label="wg0.conf (opens in a new tab)" href="https://gitlab.com/yeri/wireguard-docker/-/blob/master/files/ocean.wg0.conf" target="_blank" rel="noreferrer noopener" class="aioseop-link">wg0.conf</a>. </p>
<p>Running <code>docker exec wireguard wg</code> should give details about your connected hosts. </p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category>
      <category>debian</category><category>docker</category><category>wireguard</category>
    </item>
    
    <item>
      <title>WireGuard</title>
      <link>https://yeri.be/wireguard/</link>
      <pubDate>Mon, 27 Apr 2020 20:34:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/wireguard/</guid><enclosure url="https://static.yeri.be/2020/04/WireGuard-network.png" length="0" type="image/png" />
      <description>&lt;p&gt;This is the first post of &lt;a href=&#34;https://yeri.be/tag/wireguard&#34; target=&#34;_blank&#34; aria-label=&#34; (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;several&lt;/a&gt;. Next posts will focus on running WireGuard inside a Docker container on &lt;a href=&#34;https://yeri.be/running-wireguard-in-a-docker-container-(amd64)&#34; target=&#34;_blank&#34; aria-label=&#34;amd64 Linux (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;amd64 Linux&lt;/a&gt; and a &lt;a href=&#34;https://yeri.be/running-wireguard-in-a-docker-container-rpi&#34; target=&#34;_blank&#34; aria-label=&#34;Raspberry Pi (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;Raspberry Pi&lt;/a&gt;. &lt;/p&gt;&#xA;&lt;p&gt;I&#39;ve been running &lt;a aria-label=&#34;Wireguard (opens in a new tab)&#34; href=&#34;https://www.wireguard.com/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;WireGuard&lt;/a&gt; for a few months now and I&#39;ve been loving it. &lt;/p&gt;&#xA;&lt;p&gt;I first started using it about a year ago when in &lt;a aria-label=&#34;China (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34; href=&#34;https://yeri.be/tag/china&#34; target=&#34;_blank&#34;&gt;China&lt;/a&gt; — OpenVPN was once again being actively blocked and it was driving me nuts. Overnight I set up a &lt;a aria-label=&#34;DigitalOcean (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34; href=&#34;https://m.do.co/c/3276c58fdbfd&#34; target=&#34;_blank&#34;&gt;DigitalOcean&lt;/a&gt; server in Singapore and ran WireGuard from it — both my phone and laptop were able to actively bypass the &lt;a aria-label=&#34;GFW (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34; href=&#34;https://yeri.be/tag/gfw&#34; target=&#34;_blank&#34;&gt;GFW&lt;/a&gt; and (at that time) surf the internet freely once more. As WireGuard gains popularity, I am sure the GFW will start detecting it — it&#39;s a quiet but not a stealthy &lt;a aria-label=&#34;protocol (opens in a new tab)&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34; href=&#34;https://www.wireguard.com/protocol/&#34; target=&#34;_blank&#34;&gt;protocol&lt;/a&gt;. &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/04/WireGuard-network.png" alt="WireGuard"></p><p>This is the first post of <a href="https://yeri.be/tag/wireguard" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">several</a>. Next posts will focus on running WireGuard inside a Docker container on <a href="https://yeri.be/running-wireguard-in-a-docker-container-(amd64)" target="_blank" aria-label="amd64 Linux (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">amd64 Linux</a> and a <a href="https://yeri.be/running-wireguard-in-a-docker-container-rpi" target="_blank" aria-label="Raspberry Pi (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">Raspberry Pi</a>. </p>
<p>I've been running <a aria-label="Wireguard (opens in a new tab)" href="https://www.wireguard.com/" target="_blank" rel="noreferrer noopener" class="aioseop-link">WireGuard</a> for a few months now and I've been loving it. </p>
<p>I first started using it about a year ago when in <a aria-label="China (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link" href="https://yeri.be/tag/china" target="_blank">China</a> — OpenVPN was once again being actively blocked and it was driving me nuts. Overnight I set up a <a aria-label="DigitalOcean (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link" href="https://m.do.co/c/3276c58fdbfd" target="_blank">DigitalOcean</a> server in Singapore and ran WireGuard from it — both my phone and laptop were able to actively bypass the <a aria-label="GFW (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link" href="https://yeri.be/tag/gfw" target="_blank">GFW</a> and (at that time) surf the internet freely once more. As WireGuard gains popularity, I am sure the GFW will start detecting it — it's a quiet but not a stealthy <a aria-label="protocol (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link" href="https://www.wireguard.com/protocol/" target="_blank">protocol</a>. </p>
<p>Since then I've dug quite a bit deeper in WireGuard and am really looking forward to what it's going to bring. </p>
<p>WireGuard differentiates itself to be an extremely simple VPN server (which can make getting started and debugging a bit more challenging) — but it wants to seamlessly work together with existing tools. One of the main features still missing is for example running a DHCP server on the server and dynamically assigning IPs (like oVPN does). </p>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2020/04/WireGuard-network.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/04/WireGuard-network.png" alt="WireGuard network" class="wp-image-8750"/></a><figcaption>Simplified diagram of my network. Using static routing my clients can access the WireGuard network even without running WireGuard directly. (Some of) my containers are also able to access the network, this allows me to run Resilio Sync over WireGuard. It's using one big subnet to create one big LAN. </figcaption></figure>
<p>It's also pretty cool because any node can both be a server and a client at the same time. In my setup I am running two servers: one running at home in Singapore on a RPi4 (1Gbit fiber connection) and one on a virtual machine in <a aria-label="Amsterdam (opens in a new tab)" href="https://yeri.be/tag/rootspirit/" target="_blank" rel="noreferrer noopener" class="aioseop-link">Amsterdam</a> (1Gbit as well). The RPis at my parents are connected to the server in Amsterdam, my iPad and phones are connected to the server in Singapore. If I am in Europe I might switch over and let my iDevices connect to the AMS server instead. </p>
<figure class="wp-block-image size-large"><a href="https://static.yeri.be/2020/04/WireGuard-and-traffic-shaping.png" target="_blank" rel="noopener noreferrer"><img src="https://static.yeri.be/2020/04/WireGuard-and-traffic-shaping-1024x150.png" alt="WireGuard and traffic shaping" class="wp-image-8751"/></a><figcaption>Click to enlarge. <br />Bandwidth stats from Resilio Sync, transferring several big files. We can clearly see a speed increase (from 2-5mb/s to 11mb/s) when routing the exact same traffic over WireGuard. <a aria-label="Traffic shaping (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link" href="https://en.wikipedia.org/wiki/Traffic_shaping" target="_blank">Traffic shaping</a> at its best.</figcaption></figure>
<p>The example above clearly shows speed gains by cloaking the traffic in UDP packets. The shared folder has only two nodes (sender and receiver) and shows several big files being transferred from Amsterdam to Singapore. <a aria-label="Resilio Sync (opens in a new tab)" href="https://www.resilio.com/individuals/" target="_blank" rel="noreferrer noopener" class="aioseop-link">Resilio Sync</a> uses the <a aria-label="Bittorrent protocol (opens in a new tab)" href="https://en.wikipedia.org/wiki/Resilio_Sync#Technology" target="_blank" rel="noreferrer noopener" class="aioseop-link">Bittorrent protocol</a>, something ISPs generally hate and tend to slow down as much as they can — thanks Starhub. </p>
<p>Wireguard also allows the client to decide what to route through the server: only the VPN LAN traffic, or a whole subnet, or 0.0.0.0/0? So for my iPhone I for example route all traffic through VPN to avoid hotel/airport/... WiFi's to mine/log/scan my data. For my laptop I have two configs, one to only connect to the LAN, but another that routes all my traffic through the VPN if I want to avoid exposure or circumvent censoring. </p>
<p>Note that I am not running WireGuard to remain anonymous and I'll definitely leak some information — just trying to minimise and remain in control of what I leak. This is not a <a aria-label="Tor (opens in a new tab)" rel="noreferrer noopener" href="https://www.torproject.org/" target="_blank" class="aioseop-link">Tor</a> replacement. </p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category>
      <category>debian</category><category>docker</category><category>raspberrypi</category><category>vpn</category><category>wireguard</category>
    </item>
    
    <item>
      <title>Box — Docker shell server</title>
      <link>https://yeri.be/box-docker-shell-server/</link>
      <pubDate>Fri, 24 Apr 2020 10:27:00 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/box-docker-shell-server/</guid><enclosure url="https://static.yeri.be/2020/04/box.png" length="0" type="image/png" />
      <description>&lt;p&gt;A couple of months ago I had the great idea to set up a shell server in Docker. Simply because my docker skillz were quite rusty and a shell server was something I actually genuinely needed. &lt;/p&gt;&#xA;&lt;p&gt;Shell servers... so 2005. I remember in the good old IRC days people asking for (free) shell servers to run their &lt;a aria-label=&#34;eggdrop (opens in a new tab)&#34; href=&#34;https://eggheads.org/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34; class=&#34;aioseop-link&#34;&gt;eggdrop&lt;/a&gt; and stuff. OMG am I getting old? Anyhow... &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2020/04/box.png" alt="Box — Docker shell server"></p><p>A couple of months ago I had the great idea to set up a shell server in Docker. Simply because my docker skillz were quite rusty and a shell server was something I actually genuinely needed. </p>
<p>Shell servers... so 2005. I remember in the good old IRC days people asking for (free) shell servers to run their <a aria-label="eggdrop (opens in a new tab)" href="https://eggheads.org/" target="_blank" rel="noreferrer noopener" class="aioseop-link">eggdrop</a> and stuff. OMG am I getting old? Anyhow... </p>
<p>I ssh quite often. I manage quite a few <a href="https://yeri.be/tag/rootspirit" target="_blank" aria-label="servers (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">servers</a> (~15?) and <a href="https://yeri.be/?s=edgerouter" target="_blank" aria-label="routers (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">routers</a> that require me to login and do some random stuff. I also work on a laptop quite often and that means closing the lid and moving around. </p>
<p>First of all, <a aria-label=" (opens in a new tab)" href="https://mosh.org/" target="_blank" rel="noreferrer noopener" class="aioseop-link">mosh</a> is amazing and allows you to stay connected via ssh, even with crappy (airport/hotel) internet as well as moving around networks -- that solves half the problem. If you are not using it, start using it now!</p>
<p>Second, during my <a aria-label="datacenter technician (opens in a new tab)" href="https://www.google.com/about/datacenters/" target="_blank" rel="noreferrer noopener" class="aioseop-link">datacenter technician</a> days at Google we used to have a "jump server" -- a shell server that allowed us to bridge the corporate network and ssh into prod machines. Doubt that's still used nowadays, but the idea stuck. I wanted something similar to ssh from, wherever I was, and easily connect to my servers. And as the network the shell server is running on is stable, I only need to use mosh to the shell server. Thereafter, the connection very rarely dies. </p>
<p>And I guess, third, I recently purchased an iPad Pro and I really need to have my local "dev" environment with my git repo that I edit quite frequently but iPadOS isn't really your average computer, and doesn't even have a proper terminal. This is my experiment to make iPadOS work as a main computer when on the move. </p>
<p>Enter box -- <a href="https://gitlab.com/yeri/box-public" target="_blank" aria-label="Docker shell server (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">Docker shell server</a>... <a href="https://gitlab.com/yeri/box-public" class="aioseop-link"></a></p>
<p>I've copied over the files I use to this <a aria-label="example repo (opens in a new tab)" href="https://gitlab.com/yeri/box-public" target="_blank" rel="noreferrer noopener" class="aioseop-link">example repo</a>, and added some comments. Mind you that this repo acts as a proof of concept and isn't kept up to date, as I have my own private repo -- but this should give you a good idea on how to set up your own shell server with Docker. </p>
<p><a aria-label=" (opens in a new tab)" href="https://gitlab.com/yeri/box-public/-/blob/master/start.sh" target="_blank" rel="noreferrer noopener" class="aioseop-link">start.sh</a> -- this is a simple script that I execute when I first run or need to update the container. I execute the same file on two different servers: <a label="Liana (opens in a new tab)" href="http://smokeping-sg.superuser.one/" target="_blank" rel="noreferrer noopener" class="aioseop-link">Liana</a>, my Raspberry Pi at home and <a aria-label="Ocean (opens in a new tab)" href="http://smokeping.rootspirit.com/" target="_blank" rel="noreferrer noopener" class="aioseop-link">Ocean</a>, my server in <a aria-label="Amsterdam (opens in a new tab)" href="https://yeri.be/tag/rootspirit" target="_blank" rel="noreferrer noopener" class="aioseop-link">Amsterdam</a>. </p>
<p><a href="https://gitlab.com/yeri/box-public/-/blob/master/zsh.sh" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="aioseop-link">zsh.sh</a> -- this installs what I care about for zsh. This could be part of the Dockerfile but for some reason I separated it. ¯\_(ツ)_/¯ </p>
<p><a aria-label=" (opens in a new tab)" href="https://gitlab.com/yeri/box-public/-/blob/master/git.sh" target="_blank" rel="noreferrer noopener" class="aioseop-link">git.sh</a> -- this clones my Git repos so I can edit and commit stuff from the shell server. </p>
<p><a aria-label="run.sh (opens in a new tab)" href="https://gitlab.com/yeri/box-public/-/blob/master/run.sh" target="_blank" rel="noreferrer noopener" class="aioseop-link">run.sh</a> -- this file is launched by Dockerfile at the end and executes what matters: the ssh daemon. It also adds a <a aria-label="Wireguard (opens in a new tab)" href="https://yeri.be/tag/wireguard" target="_blank" rel="noreferrer noopener" class="aioseop-link">Wireguard</a> route and executes the scripts above. </p>
<p><a aria-label=" (opens in a new tab)" href="https://gitlab.com/yeri/box-public/-/blob/master/Dockerfile" target="_blank" rel="noreferrer noopener" class="aioseop-link">Dockerfile</a> -- this installs everything I need and configures the whole thing. I've added tons of comments that should get you going. </p>
<p>I am also cloning <a aria-label="misc (opens in a new tab)" href="https://gitlab.com/yeri/homefiles/" target="_blank" rel="noreferrer noopener" class="aioseop-link">misc</a> and <a aria-label="homefiles (opens in a new tab)" href="https://gitlab.com/yeri/homefiles/" target="_blank" rel="noreferrer noopener" class="aioseop-link">homefiles</a> as submodules in <a aria-label="files/ (opens in a new tab)" href="https://gitlab.com/yeri/box-public/-/tree/master/files" target="_blank" rel="noreferrer noopener" class="aioseop-link">files/</a> -- but you should change this to something that works for you. See the Dockerfile for more info. </p>
]]></content:encoded>
      <category>apple</category><category>linux</category><category>networking</category><category>software</category><category>virtualisation</category>
      <category>debian</category><category>docker</category><category>raspberrypi</category><category>rootspirit</category><category>vpn</category><category>wireguard</category>
    </item>
    
    <item>
      <title>Blockchain</title>
      <link>https://yeri.be/blockchain/</link>
      <pubDate>Sun, 05 Feb 2017 15:46:50 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/blockchain/</guid>
      <description>&lt;p&gt;Probably the best and easiest to understand Blockchain explanation I&amp;rsquo;ve seen.&lt;/p&gt;&#xA;&lt;div class=&#34;embed-responsive embed-youtube&#34;&gt;&#xA;&#x9;&lt;iframe src=&#34;https://www.youtube-nocookie.com/embed/_160oMzblY8&#34; title=&#34;YouTube video&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;(&lt;a href=&#34;https://web.archive.org/web/20191014221938/https://anders.com/blockchain/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Source&lt;/em&gt;&lt;/a&gt;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Probably the best and easiest to understand Blockchain explanation I&rsquo;ve seen.</p>
<div class="embed-responsive embed-youtube">
	<iframe src="https://www.youtube-nocookie.com/embed/_160oMzblY8" title="YouTube video" loading="lazy" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

<p>(<a href="https://web.archive.org/web/20191014221938/https://anders.com/blockchain/" target="_blank" rel="noopener"><em>Source</em></a>)</p>
]]></content:encoded>
      <category>networking</category><category>software</category>
      <category>bitcoin</category><category>blockchain</category>
    </item>
    
    <item>
      <title>Postfix &amp; Courier &amp; Letsencrypt</title>
      <link>https://yeri.be/postfix-courier-letsencrypt/</link>
      <pubDate>Sun, 12 Jun 2016 13:35:10 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/postfix-courier-letsencrypt/</guid>
      <description>&lt;p&gt;First of all, &lt;a href=&#34;https://letsencrypt.org/getting-started/&#34; target=&#34;_blank&#34;&gt;create&lt;/a&gt; your certificates (the regular way). I created one with multiple domains: webmail.rootspirit.com, mail.rootspirit.com, smtp.rootspirit.com.&lt;/p&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;http://rootspirit.com/&#34; target=&#34;_blank&#34;&gt;my case&lt;/a&gt;, as the mailserver and webserver are behind a proxy (postfix, imap, Roundcube Webmail), I create the certificate on the proxy (nginx) and scp the cert to the mail server. All this is automated with a tiny script.&lt;/p&gt;&#xA;&lt;p&gt;For Postfix, edit &lt;code&gt;main.cf&lt;/code&gt; and change/edit/add these lines (check the right path too!):&lt;/p&gt;&#xA;&lt;pre&gt;smtpd_use_tls = yes&#xA;smtpd_tls_key_file = /etc/ssl/letsencrypt/webmail.privkey.pem&#xA;smtpd_tls_cert_file = /etc/ssl/letsencrypt/webmail.fullchain.pem&#xA;smtpd_tls_received_header = yes&#xA;smtpd_tls_session_cache_timeout = 3600s&#xA;tls_random_exchange_name = /var/run/prng_exch&#xA;tls_random_source = dev:/dev/urandom&#xA;smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA&#xA;smtpd_tls_dh1024_param_file = /etc/ssl/postfix/dhparams.pem&#xA;smtpd_tls_auth_only = yes&#xA;smtp_tls_security_level = may&#xA;smtpd_use_tls=yes&#xA;smtpd_tls_security_level=may&#xA;smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache&#xA;smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&#xA;smtpd_tls_loglevel=1&#xA;smtp_tls_loglevel=1&lt;/pre&gt;&#xA;&lt;p&gt;And restart postfix: &lt;code&gt;/etc/init.d/postfix restart&lt;/code&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>First of all, <a href="https://letsencrypt.org/getting-started/" target="_blank">create</a> your certificates (the regular way). I created one with multiple domains: webmail.rootspirit.com, mail.rootspirit.com, smtp.rootspirit.com.</p>
<p>In <a href="http://rootspirit.com/" target="_blank">my case</a>, as the mailserver and webserver are behind a proxy (postfix, imap, Roundcube Webmail), I create the certificate on the proxy (nginx) and scp the cert to the mail server. All this is automated with a tiny script.</p>
<p>For Postfix, edit <code>main.cf</code> and change/edit/add these lines (check the right path too!):</p>
<pre>smtpd_use_tls = yes
smtpd_tls_key_file = /etc/ssl/letsencrypt/webmail.privkey.pem
smtpd_tls_cert_file = /etc/ssl/letsencrypt/webmail.fullchain.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_exchange_name = /var/run/prng_exch
tls_random_source = dev:/dev/urandom
smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA
smtpd_tls_dh1024_param_file = /etc/ssl/postfix/dhparams.pem
smtpd_tls_auth_only = yes
smtp_tls_security_level = may
smtpd_use_tls=yes
smtpd_tls_security_level=may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_loglevel=1
smtp_tls_loglevel=1</pre>
<p>And restart postfix: <code>/etc/init.d/postfix restart</code></p>
<p>As for Courier you&rsquo;ll need to concatenate the files (again, check the path, it&rsquo;s most likely <code>/etc/letsencrypt/live/domain/xyz.pem</code>):</p>
<p><code>cat /etc/ssl/letsencrypt/webmail.privkey.pem /etc/ssl/letsencrypt/webmail.fullchain.pem &gt; /etc/ssl/letsencrypt/webmail.all.pem</code></p>
<p>Then edit both <code>/etc/courier/pop3d-ssl</code> and <code>/etc/courier/imapd-ssl</code></p>
<p>And add/change the path of the certificate:</p>
<p><code>TLS_CERTFILE=/etc/ssl/letsencrypt/webmail.all.pem</code></p>
<p>And restart Courier: <code>/etc/init.d/courier-imap-ssl restart &amp;&amp; /etc/init.d/courier-pop-ssl restart</code></p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>encryption</category><category>mail</category><category>rootspirit</category><category>ssl</category>
    </item>
    
    <item>
      <title>Gmail &amp; Postfix: unencrypted emails?</title>
      <link>https://yeri.be/gmail-unencrypted-emails/</link>
      <pubDate>Mon, 07 Mar 2016 19:14:52 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/gmail-unencrypted-emails/</guid>
      <description>&lt;p style=&#34;text-align: left;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2016/03/gmail-unencrypted-tls.png&#34; rel=&#34;attachment wp-att-7458&#34;&gt;&lt;img class=&#34;alignnone wp-image-7458 size-full&#34; src=&#34;https://static.yeri.be/2016/03/gmail-unencrypted-tls.png&#34; alt=&#34;gmail-unencrypted-tls&#34; width=&#34;762&#34; height=&#34;222&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;If you&#39;re running Postfix, add this line to &lt;code&gt;main.cf&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;code&gt;smtp_tls_security_level = may&lt;/code&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;Restart Postfix, and retry.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2016/03/gmail-encrypted-tls.png&#34; rel=&#34;attachment wp-att-7464&#34;&gt;&lt;img class=&#34;alignnone size-full wp-image-7464&#34; src=&#34;https://static.yeri.be/2016/03/gmail-encrypted-tls.png&#34; alt=&#34;gmail-encrypted-tls&#34; width=&#34;850&#34; height=&#34;370&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;PS: You can set &lt;code&gt;encrypt&lt;/code&gt; instead of &lt;code&gt;may&lt;/code&gt; -- but this can cause issues with Amavis and/or SpamAssassin.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: left;"><a href="https://static.yeri.be/2016/03/gmail-unencrypted-tls.png" rel="attachment wp-att-7458"><img class="alignnone wp-image-7458 size-full" src="https://static.yeri.be/2016/03/gmail-unencrypted-tls.png" alt="gmail-unencrypted-tls" width="762" height="222" /></a></p>
<p style="text-align: left;">If you're running Postfix, add this line to <code>main.cf</code>:</p>
<code>smtp_tls_security_level = may</code>
<p style="text-align: left;">Restart Postfix, and retry.</p>
<p style="text-align: left;"><a href="https://static.yeri.be/2016/03/gmail-encrypted-tls.png" rel="attachment wp-att-7464"><img class="alignnone size-full wp-image-7464" src="https://static.yeri.be/2016/03/gmail-encrypted-tls.png" alt="gmail-encrypted-tls" width="850" height="370" /></a></p>
<p style="text-align: left;">PS: You can set <code>encrypt</code> instead of <code>may</code> -- but this can cause issues with Amavis and/or SpamAssassin.</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>rootspirit</category><category>ssl</category>
    </item>
    
    <item>
      <title>Belgian banks &amp; SSL — part 5</title>
      <link>https://yeri.be/belgian-banks-ssl-part-5/</link>
      <pubDate>Fri, 18 Dec 2015 11:35:57 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/belgian-banks-ssl-part-5/</guid>
      <description>&lt;p&gt;Minor &lt;a href=&#34;https://yeri.be/belgian-banks-ssl-part-4&#34;&gt;end of year update&lt;/a&gt;. No big SSL exploits have been released since (bar DH, see below).&lt;/p&gt;&#xA;&lt;p&gt;Once again, this is testing the public websites I can access. There might be other gateways, APIs, etc that are not (as) secure.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s worthy to note that some banks are serious about security and fixing their SSL. Most improved their rating and solved all issues (especially getting rid of SHA1 in the chain). However, a couple lowered from B to C (see below). But&amp;hellip; No more F&amp;rsquo;s. :)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Minor <a href="https://yeri.be/belgian-banks-ssl-part-4">end of year update</a>. No big SSL exploits have been released since (bar DH, see below).</p>
<p>Once again, this is testing the public websites I can access. There might be other gateways, APIs, etc that are not (as) secure.</p>
<p>It&rsquo;s worthy to note that some banks are serious about security and fixing their SSL. Most improved their rating and solved all issues (especially getting rid of SHA1 in the chain). However, a couple lowered from B to C (see below). But&hellip; No more F&rsquo;s. :)</p>
<p>The noteworthy changers:</p>
<ul>
	<li>Hello Bank! went from A to B though due to weak DH,</li>
	<li>Triodos lost their Forward Secrecy,</li>
	<li>Optima from F to A(-) (and a bunch others from B to A, and higher),</li>
	<li>A bunch from B to C due to SSLLabs being more severe (see below). Most did solve some of their issues,</li>
	<li>BKCP is doing a lot wrong.</li>
</ul>
Edit: Tested wrong AXA domain; updated to A+.
<p><em>Update 11 Jan 2016</em>: ABK &amp; BvB updated to A.</p>
<p>Note that not supporting TLS 1.2 or supporting RC4 capped sites to grade B about a year ago; it now caps to grade C (aka SSLLabs is more severe).</p>
<p><span style="color: #008000;">Grade A</span></p>
<ul>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure1.rabobank.be" target="_blank">Rabobank</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.evi.be" target="_blank">Evi</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=crelan-online.be" target="_blank">Crelan</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=login.binck.be&amp;hideResults=on" target="_blank">Binck</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.ing.be&amp;s=193.58.129.66&amp;hideResults=on" target="_blank">ING</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.keytradebank.be&amp;s=93.191.218.12" target="_blank">Keytrade Bank</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=cph.be" target="_blank">CPH</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebanking.nibcdirect.be" target="_blank">NIBC Direct</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=home.axabank.be&amp;latest" target="_blank">AXA</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.deltalloydbank.be" target="_blank">Delta Lloyd Bank</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.deutschebank.be" target="_blank">Deutsche Bank</a> (<span style="color: #339966;">A</span>): weak signature (SHA1).</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=elogin.medirectbank.be" target="_blank">MeDirect Bank</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.montepaschi.be" target="_blank">Monte Paschi</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.belfius.be&amp;s=212.63.233.37" target="_blank">Belfius</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bnpparibasfortis.be&amp;s=193.58.4.82" target="_blank">BNP Paribas Fortis</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bpostbank.be" target="_blank">bpost bank</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=internetbanking.argenta.be" target="_blank">Argenta</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=fortuneo.be&amp;s=93.20.42.107" target="_blank">Fortuneo</a> (<span style="color: #339966;">A</span>): invalid HSTS policy.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=fintro.be" target="_blank">Fintro</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=netbanking.dhbbank.com" target="_blank">DHB Bank</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=online.vdk.be" target="_blank">VDK</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=abkonline.abk.be" target="_blank">ABK</a>: (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.bankvanbreda.be&amp;latest" target="_blank">Bank Van Breda</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.ogone.com" target="_blank">Ogone</a> (<em>payment facilitator</em> -- <span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=moneyou.be" target="_blank">Moneyou</a> (<span style="color: #339966;">A-</span>): no Forward Secrecy.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=homebank.recordbank.be" target="_blank">Record Bank</a> (<span style="color: #339966;">A-</span>): no Forward Secrecy.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=banking.triodos.be&amp;latest" target="_blank">Triodos</a> (<span style="color: #339966;">A-</span>): no Forward Secrecy.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=optimaonline.optimabank.be" target="_blank">Optima Bank</a> (<span style="color: #339966;">A-</span>): no Forward Secrecy.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.kbc.be">KBC</a> (<span style="color: #339966;">A-</span>): no Forward Secrecy.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=isabel.eu" target="_blank">Isabel</a> (<em>banking tool for corps</em> -- <span style="color: #339966;">A-</span>): no Forward Secrecy.</li>
</ul>
<span style="color: #ff6600;">Grade B</span>
<ul>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.hellobank.be" target="_blank">Hello bank!</a>: Weak Diffie-Hell (aka DH) (<a href="https://weakdh.org/" target="_blank">info</a>).</li>
</ul>
<span style="color: #ff0000;">Grade C</span>
<ul>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.psabank.be&amp;s=93.20.46.143&amp;hideResults=on" target="_blank">PSA Bank</a>: weak signature (SHA1), no TLS 1.2, no Forward Secrecy.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=beobank.be" target="_blank">beobank</a>: weak DH, no TLS 1.2, RC4 (insecure), no Forward Secrecy, no secure renegotiation.</li>
	<li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ident.bkcp.be&amp;hideResults=on&amp;latest" target="_blank">BKCP</a>: weak signature (SHA1), no TLS 1.2, RC4 (insecure), no Forward Secrecy, weak DH.</li>
</ul>
<span style="color: #ff0000;">Grade D</span>
<ul>
	<li>n/a</li>
</ul>
<span style="color: #ff0000;">Grade E</span>
<ul>
	<li>n/a</li>
</ul>
<span style="color: #ff0000;">Grade F</span>
<ul>
	<li>n/a</li>
</ul>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>belgium</category><category>ssl</category>
    </item>
    
    <item>
      <title>Waze not getting a GPS fix</title>
      <link>https://yeri.be/waze-cannot-get-a-gps-fix/</link>
      <pubDate>Thu, 02 Jul 2015 10:23:06 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/waze-cannot-get-a-gps-fix/</guid>
      <description>&lt;p&gt;TL;DR: recalibrate your compass.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve come across an issue for the past 10 days that &lt;a href=&#34;https://www.waze.com/&#34; target=&#34;_blank&#34;&gt;Waze&lt;/a&gt; kept losing its GPS fix. This meant:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;constantly switching between 0 and 120 (or whatever) km/h&lt;/li&gt;&#xA;&#x9;&lt;li&gt;constantly zooming in &amp;amp; out on maps (dynamic zoom level depending on speed)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;being in a field/not on the road for most of the time, or stuck to a location of many minutes ago&lt;/li&gt;&#xA;&#x9;&lt;li&gt;often &amp;amp; randomly losing GPS fix (ie middle of the highway without any buildings blocking the line of sight)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;I could do a 45 minute trip with Waze never getting a GPS fix&lt;/li&gt;&#xA;&#x9;&lt;li&gt;not knowing road issues (accidents, traffic jams ahead, speed traps, etc)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;Things I tried:&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;nothing changed (no new car window, didn&#39;t move my phone location in the car, etc)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;not moving (ie parked car) didn&#39;t really improve the GPS fix&lt;/li&gt;&#xA;&#x9;&lt;li&gt;even left my phone with Waze on in the car for 30 minutes parked (got a fix, but later that evening when driving home it started to lose its GPS fix again)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;clear Waze cache&lt;/li&gt;&#xA;&#x9;&lt;li&gt;uninstall Waze completely&lt;/li&gt;&#xA;&#x9;&lt;li&gt;GPS Essentials showed a fix with 3 or more GPS satellites when Waze couldn&#39;t get a fix&lt;/li&gt;&#xA;&#x9;&lt;li&gt;I was about to find a way to reset my GPS and/or clear its cache (???)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;PS: I have had this issue in the past (I believe with the same phone, a Nexus 5), but it went away after several days.&#xA;&lt;p&gt;What I did notice, however, is that in Google Maps the arrow (clicking the pin point button twice or something) was pretty much showing the opposite direction of how the car was moving (thus driving backwards at ~120km/h). This made me think, as I know the GPSes in smartphones are quite cheap and aren&amp;rsquo;t always on (to save battery &amp;ndash; my phone is always being charged in the car though) and the phone uses the accelerometer and other sensors to &amp;ldquo;guess&amp;rdquo; current path (or rather, path changes, ie taking a turn or slowing down/accelerating).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>TL;DR: recalibrate your compass.</p>
<p>I&rsquo;ve come across an issue for the past 10 days that <a href="https://www.waze.com/" target="_blank">Waze</a> kept losing its GPS fix. This meant:</p>
<ul>
	<li>constantly switching between 0 and 120 (or whatever) km/h</li>
	<li>constantly zooming in &amp; out on maps (dynamic zoom level depending on speed)</li>
	<li>being in a field/not on the road for most of the time, or stuck to a location of many minutes ago</li>
	<li>often &amp; randomly losing GPS fix (ie middle of the highway without any buildings blocking the line of sight)</li>
	<li>I could do a 45 minute trip with Waze never getting a GPS fix</li>
	<li>not knowing road issues (accidents, traffic jams ahead, speed traps, etc)</li>
</ul>
Things I tried:
<ul>
	<li>nothing changed (no new car window, didn't move my phone location in the car, etc)</li>
	<li>not moving (ie parked car) didn't really improve the GPS fix</li>
	<li>even left my phone with Waze on in the car for 30 minutes parked (got a fix, but later that evening when driving home it started to lose its GPS fix again)</li>
	<li>clear Waze cache</li>
	<li>uninstall Waze completely</li>
	<li>GPS Essentials showed a fix with 3 or more GPS satellites when Waze couldn't get a fix</li>
	<li>I was about to find a way to reset my GPS and/or clear its cache (???)</li>
</ul>
PS: I have had this issue in the past (I believe with the same phone, a Nexus 5), but it went away after several days.
<p>What I did notice, however, is that in Google Maps the arrow (clicking the pin point button twice or something) was pretty much showing the opposite direction of how the car was moving (thus driving backwards at ~120km/h). This made me think, as I know the GPSes in smartphones are quite cheap and aren&rsquo;t always on (to save battery &ndash; my phone is always being charged in the car though) and the phone uses the accelerometer and other sensors to &ldquo;guess&rdquo; current path (or rather, path changes, ie taking a turn or slowing down/accelerating).</p>
<p>I then recalibrate my compass using this <a href="https://www.youtube.com/watch?v=oNJJPeoG8lQ" target="_blank">method</a> with the free app <a href="https://play.google.com/store/apps/details?id=com.mictale.gpsessentials" target="_blank">GPS Essentials</a> (compass tab). I noticed two things</p>
<ul>
	<li>my compass was showing south as north</li>
	<li>calibrating it in my room (no known magnets here) gave a mixed result (it sometimes pointed north, and sometimes stopped doing so)</li>
	<li>moving around gave me a better calibration (more accurately pointing north)</li>
	<li>question? Is the compass chip fucked? broken? cheap ass crap?</li>
</ul>
Trying now again driving around with Waze:
<ul>
	<li>Waze almost instantly has a GPS fix</li>
	<li>Waze doesn't lose its GPS fix most of the time but ...</li>
	<li>Waze still occasionally loses its fix (but regain it after a second or two, three)</li>
</ul>
So it's not always a GPS issue, but rather an issue with one of the other sensors (what here seems to be the compass).
<p><span style="text-decoration: underline;">Edit</span>: the problem comes back after ~1 day. Compass often stuck and doesn&rsquo;t really point north. Ever. Calibrating sometimes helps, but it ends to get stuck again after a while. Nexus 5 chipset issue? Google Navigation works (way) better (it doesn&rsquo;t remain at the same location for ~10 minutes), but it&rsquo;s not very precise either (always lagging behind a a street or cross road or something). Perhaps Google Navigation is better at using GSM localisation and doesn&rsquo;t use the compass to figure out so much?</p>
<p>Edit 2: It works &ldquo;fairly ok&rdquo; if I calibrate my compass just before driving. It still loses its fix a few times, but all in all it was acceptable.</p>
<p>I&rsquo;ve seen in tools like <a href="https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2" target="_blank">GPS Status</a> that north always points to the bottom right (&ldquo;south east&rdquo;) unless it finds a GPS fix. When it&rsquo;s stuck &ldquo;finding GPS location&rdquo; my compass is entirely off and Waze is seeking a fix. When it has a GPS location Waze is fine.</p>
<p>Note that while it cannot find a GPS location, it does have a fix with 3+ GPS satellites.</p>
<p>So I&rsquo;m not sure if it&rsquo;s a compass issue, or a GPS issue, and what the definite difference is between both (a smartphone compass not <span style="text-decoration: line-through;"><a href="https://www.quora.com/How-does-a-compass-work-in-smart-phones-What-sensors-are-used-and-how-do-they-show-the-correct-directions" target="_blank">being a magnetic compass if I understand correctly</a></span>).</p>
]]></content:encoded>
      <category>errors</category><category>google</category><category>hardware</category><category>software</category>
      <category>android</category><category>gps</category><category>nexus</category>
    </item>
    
    <item>
      <title>Proximus Innovation: D-Link DCS-2132L</title>
      <link>https://yeri.be/proximus-innovation-d-link-dcs-2132l/</link>
      <pubDate>Thu, 14 May 2015 15:11:01 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/proximus-innovation-d-link-dcs-2132l/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://web.archive.org/web/20150629195028/http://www.proximusinnovation.be/en/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Proximus Innovation&lt;/a&gt; team handed me a D-Link DCS-2132L (ver. B1) to play with. I have some experience with, what is considered, a professional (~€120 + tax) PoE surveillance camera: the &lt;a href=&#34;https://web.archive.org/web/20160722065729/https://www.ubnt.com/unifi-video/unifi-video-camera/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Unifi Video Camera&lt;/a&gt; (basic version).&lt;/p&gt;&#xA;&lt;p&gt;Amazon retails this D-Link for around €120 (including tax). So it&amp;rsquo;s worth noting it&amp;rsquo;s almost the same price as a metal, semi outdoor, cloud based camera.&lt;/p&gt;&#xA;&lt;p&gt;The first things I noticed unpacking:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;Plastic. And it feels very plastic.&lt;/li&gt;&#xA;    &lt;li&gt;Indoor only.&lt;/li&gt;&#xA;    &lt;li&gt;The base is a bit light if you just want to set it on a table without screwing it or using glue. The utp and power cable can make it trip easily.&lt;/li&gt;&#xA;    &lt;li&gt;No PoE (power-over-ethernet).&lt;/li&gt;&#xA;    &lt;li&gt;Infrared (you can clearly hear the filter &#39;clicking&#39; when booting up the camera)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This thing comes with ethernet, and, surprisingly, with WiFi. That&amp;rsquo;ll make it easier to use in small shops. There&amp;rsquo;s also an option to add a micro SD card as local storage.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://web.archive.org/web/20150629195028/http://www.proximusinnovation.be/en/" target="_blank" rel="noopener noreferrer">Proximus Innovation</a> team handed me a D-Link DCS-2132L (ver. B1) to play with. I have some experience with, what is considered, a professional (~€120 + tax) PoE surveillance camera: the <a href="https://web.archive.org/web/20160722065729/https://www.ubnt.com/unifi-video/unifi-video-camera/" target="_blank" rel="noopener noreferrer">Unifi Video Camera</a> (basic version).</p>
<p>Amazon retails this D-Link for around €120 (including tax). So it&rsquo;s worth noting it&rsquo;s almost the same price as a metal, semi outdoor, cloud based camera.</p>
<p>The first things I noticed unpacking:</p>
<ul>
    <li>Plastic. And it feels very plastic.</li>
    <li>Indoor only.</li>
    <li>The base is a bit light if you just want to set it on a table without screwing it or using glue. The utp and power cable can make it trip easily.</li>
    <li>No PoE (power-over-ethernet).</li>
    <li>Infrared (you can clearly hear the filter 'clicking' when booting up the camera)</li>
</ul>
<p>This thing comes with ethernet, and, surprisingly, with WiFi. That&rsquo;ll make it easier to use in small shops. There&rsquo;s also an option to add a micro SD card as local storage.</p>
<p>While setting up WiFi, I managed to already bug it and lose access by setting up both WiFi and having an ethernet cable connected; and updating the firmware didn&rsquo;t seem to solve that issue. So it&rsquo;s basically one or the other. Want to use WiFi? Don&rsquo;t plug in a cable!</p>
<p>There is a live view (using Java) from the interface: FPS wise it seems quite low, around two-three frames per second, and there is some lag on the interface (setting is set to &ldquo;max 25 fps&rdquo; &ndash; which apparently is only used when recording).</p>
<p><a href="https://static.yeri.be/2015/05/dark-ir.png"><img class="alignnone size-large wp-image-7080" src="https://static.yeri.be/2015/05/dark-ir-1024x660.png" alt="dark-ir" width="780" height="503" /></a></p>
<p><a href="https://static.yeri.be/2015/05/dark-room.jpeg"><img class="alignnone size-large wp-image-7088" src="https://static.yeri.be/2015/05/dark-room-1024x576.jpeg" alt="dark room" width="780" height="439" /></a></p>
<p><a href="https://static.yeri.be/2015/05/desk.jpeg"><img class="alignnone size-large wp-image-7082" src="https://static.yeri.be/2015/05/desk-1024x576.jpeg" alt="desk" width="780" height="439" /></a></p>
<p>Quality in a close to dark room is okay-ish &ndash; infrared enabled (+ time still wrong on most of the pictures).</p>
<p><a href="https://static.yeri.be/2015/05/antwerp.jpeg"><img class="alignnone size-large wp-image-7083" src="https://static.yeri.be/2015/05/antwerp-1024x576.jpeg" alt="antwerp" width="780" height="439" /></a></p>
<p>Outdoor picture of Antwerp without IR. Not so detailed and CMOS sensor quality is fairly crap.</p>
<p><a href="https://static.yeri.be/2015/05/indoor-day.jpeg"><img class="alignnone size-large wp-image-7133" src="https://static.yeri.be/2015/05/indoor-day-1024x576.jpeg" alt="indoor-day" width="780" height="439" /></a></p>
<p><a href="https://static.yeri.be/2015/05/highview.jpeg"><img class="alignnone size-large wp-image-7136" src="https://static.yeri.be/2015/05/highview-1024x576.jpeg" alt="highview" width="780" height="439" /></a></p>
<p>Indoor pictures during the day (it&rsquo;s always quite dark in my room &ndash; no direct sun).</p>
<p><a href="https://static.yeri.be/2015/05/god-delusion.jpeg"><img class="alignnone size-large wp-image-7134" src="https://static.yeri.be/2015/05/god-delusion-1024x576.jpeg" alt="god-delusion" width="780" height="439" /></a></p>
<p>Close up &amp; view of my kitchen: a bit blurry.</p>
<p>On the other hand &ndash; for a D-Link I was surprised with the options from the interface though. You can set up motion (+ select an area to detect motion &ndash; not necessarily the whole area) &amp; sound detection, WiFi &ldquo;just works&rdquo;, you can generate new self signed or upload your own SSL certificates, access list, QoS, uPnP, DDNS, PPPoE, NTP, IPv6, privacy masking (cover an area), etc.</p>
<p><a href="https://static.yeri.be/2015/05/d-link-interface.png"><img class="alignnone size-full wp-image-7085" src="https://static.yeri.be/2015/05/d-link-interface.png" alt="d-link interface" width="846" height="518" /></a></p>
<p>UX &amp; design isn&rsquo;t their thing though.</p>
<p>The whole interface, unlike UVC which streams content to a cloud server (and everything is recorded/stored there), is ran from the onboard web interface. There is some separate Windows software you can download &ndash; but I have a Mac and it didn&rsquo;t seem to add much value.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2015/05/zoom-ie.png"><img class="alignnone size-full wp-image-7079" src="https://static.yeri.be/2015/05/zoom-ie.png" alt="zoom-ie" width="567" height="277" /></a></p>
<p style="text-align: center;"><a href="https://static.yeri.be/2015/05/whether-or-not.png"><img class="alignnone size-full wp-image-7081" src="https://static.yeri.be/2015/05/whether-or-not.png" alt="whether-or-not" width="532" height="265" /></a></p>
<p style="text-align: left;">It's still made and translated by Taiwanese people... ;)</p>
<p style="text-align: left;">All in all, this is a decent camera for small businesses or personal surveillance. It's a bit too expensive, but it does the job and has a decent amount of options.</p>
<p>PS: the default username is admin with no password. Remember to change it, or you&rsquo;ll have voyeurs looking at you (in case it has a public IP and/or if it automatically opens ports using uPnP) &ndash; like I am looking at this man using simple Google queries (I needed examples about for a panel talk at <a href="https://yeri.be/stibbe-cybercrime">Stibbe</a> about internet security).</p>
<p><a href="https://static.yeri.be/2015/05/angry-man-doesnt-know-his-webcam-is-on.png"><img class="alignnone size-full wp-image-7091" src="https://static.yeri.be/2015/05/angry-man-doesnt-know-his-webcam-is-on.png" alt="angry-man-doesnt-know-his-webcam-is-on" width="810" height="610" /></a></p>
]]></content:encoded>
      <category>hardware</category><category>misc</category><category>networking</category><category>software</category>
      <category>dlink</category><category>webcam</category>
    </item>
    
    <item>
      <title>Stibbe - Cybercrime</title>
      <link>https://yeri.be/stibbe-cybercrime/</link>
      <pubDate>Wed, 06 May 2015 11:14:55 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/stibbe-cybercrime/</guid>
      <description>&lt;p&gt;Short presentation about the ease of finding and getting into unprotected systems.&lt;/p&gt;&#xA;&lt;iframe src=&#34;https://www.slideshare.net/slideshow/embed_code/key/JjloQH8mJ8rVZG&#34; width=&#34;476&#34; height=&#34;400&#34; frameborder=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; scrolling=&#34;no&#34;&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;PDF can be downloaded &lt;a href=&#34;https://static.yeri.be/2015/05/stibbe.pdf&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Presentation given at Stibbe on 5 May 2015.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Short presentation about the ease of finding and getting into unprotected systems.</p>
<iframe src="https://www.slideshare.net/slideshow/embed_code/key/JjloQH8mJ8rVZG" width="476" height="400" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<p>PDF can be downloaded <a href="https://static.yeri.be/2015/05/stibbe.pdf">here</a>.</p>
<p>Presentation given at Stibbe on 5 May 2015.</p>
]]></content:encoded>
      <category>networking</category><category>software</category>
      <category>law</category><category>security</category>
    </item>
    
    <item>
      <title>CIFS: mount error(13): Permission denied</title>
      <link>https://yeri.be/cifs-mount-error13-permission-denied/</link>
      <pubDate>Thu, 30 Apr 2015 11:46:40 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/cifs-mount-error13-permission-denied/</guid>
      <description>&lt;p&gt;You&amp;rsquo;ve just updated your Raspberry Pi (or whatever Linux) and you&amp;rsquo;re noticing your CIFS (smb) mounts aren&amp;rsquo;t getting auto mounted anymore. You curse and start noticing this error:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;# mount -t cifs //192.168.1.100/public -o username=public,password=public sam/&#xA;mount error(13): Permission denied&#xA;Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;The solution is to add after &lt;code&gt;-o username=X,password=Y&lt;/code&gt; the following: &lt;code&gt;sec=ntlm&lt;/code&gt;; thus it becomes &lt;code&gt;-o username=X,password=Y,sec=ntlm&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;You can do the same in &lt;code&gt;fstab&lt;/code&gt;:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>You&rsquo;ve just updated your Raspberry Pi (or whatever Linux) and you&rsquo;re noticing your CIFS (smb) mounts aren&rsquo;t getting auto mounted anymore. You curse and start noticing this error:</p>
<p><code># mount -t cifs //192.168.1.100/public -o username=public,password=public sam/
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)</code></p>
<p>The solution is to add after <code>-o username=X,password=Y</code> the following: <code>sec=ntlm</code>; thus it becomes <code>-o username=X,password=Y,sec=ntlm</code>.</p>
<p>You can do the same in <code>fstab</code>:</p>
<p><code>//192.168.1.100/public	/mnt/sam/	cifs	domain=TIETE,username=public,password=public,sec=ntlm		0	0</code></p>
<p>No idea why it&rsquo;s suddenly required, but whatevs.</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category>
      <category>raspberrypi</category><category>samba</category>
    </item>
    
    <item>
      <title>Belgian banks &amp; SSL — part 4</title>
      <link>https://yeri.be/belgian-banks-ssl-part-4/</link>
      <pubDate>Mon, 16 Feb 2015 20:32:24 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/belgian-banks-ssl-part-4/</guid>
      <description>&lt;p&gt;Because of the &lt;a href=&#34;https://www.google.be/search?ie=UTF-8&amp;amp;q=yeri+tiete+ssl&amp;amp;gws_rd=cr&amp;amp;ei=6x_jVPHHIpG5adrIgNgJ&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;mediastorm&lt;/a&gt; it&amp;rsquo;s time for an update. The previous (&lt;a href=&#34;https://yeri.be/belgian-banks-ssl&#34;&gt;1&lt;/a&gt;, &lt;a href=&#34;https://yeri.be/belgian-banks-ssl-part-2&#34;&gt;2&lt;/a&gt;, &lt;a href=&#34;https://yeri.be/belgian-banks-ssl-part-3&#34;&gt;3&lt;/a&gt;) blog posts are &lt;strong&gt;outdated&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll do my usual &lt;a href=&#34;https://yeri.be/irail-slashdot-effect&#34;&gt;slashdot-effect&lt;/a&gt; post in a couple of days (it&amp;rsquo;s already at 10k views today).&lt;/p&gt;&#xA;&lt;p&gt;Banks that changed rank since last post (all for the better):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;16/02/2015:&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;Keytrade: B to A&lt;/li&gt;&#xA;    &lt;li&gt;Hello Bank!: C to A&lt;/li&gt;&#xA;    &lt;li&gt;ING: F to A-&lt;/li&gt;&#xA;    &lt;li&gt;Record Bank: F to A-&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;    &lt;li&gt;17/02/2015:&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;ABK: F to B&lt;/li&gt;&#xA;    &lt;li&gt;Bank Van Breda: C to B&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;    &lt;li&gt;18/02/2015:&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;MeDirect: F to A&lt;/li&gt;&#xA;    &lt;li&gt;Added 6 new (small) banks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;    &lt;li&gt;27/02/2015&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;Ogone: C to A-&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;    &lt;li&gt;02/03/2015&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;Fortuneo: C to B&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;    &lt;li&gt;03/03/2015&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;Crelan: B to A&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I cannot test &lt;a href=&#34;https://www.ssllabs.com/ssltest/analyze.html?d=www.europabank.be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Europabank&lt;/a&gt; using SSL Labs. I can only speculate they &lt;a href=&#34;https://www.ssllabs.com/about/assessment.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;requested SSL Labs to not scan them&lt;/a&gt;. I have also added a couple new banks (Delta Lloyd, Deutsche Bank, Moneyou, Fortuneo, BKCP, Binck, and Isabel as bank tool).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Because of the <a href="https://www.google.be/search?ie=UTF-8&amp;q=yeri+tiete+ssl&amp;gws_rd=cr&amp;ei=6x_jVPHHIpG5adrIgNgJ" target="_blank" rel="noopener noreferrer">mediastorm</a> it&rsquo;s time for an update. The previous (<a href="https://yeri.be/belgian-banks-ssl">1</a>, <a href="https://yeri.be/belgian-banks-ssl-part-2">2</a>, <a href="https://yeri.be/belgian-banks-ssl-part-3">3</a>) blog posts are <strong>outdated</strong>!</p>
<p>I&rsquo;ll do my usual <a href="https://yeri.be/irail-slashdot-effect">slashdot-effect</a> post in a couple of days (it&rsquo;s already at 10k views today).</p>
<p>Banks that changed rank since last post (all for the better):</p>
<ul>
    <li>16/02/2015:
<ul>
    <li>Keytrade: B to A</li>
    <li>Hello Bank!: C to A</li>
    <li>ING: F to A-</li>
    <li>Record Bank: F to A-</li>
</ul>
</li>
    <li>17/02/2015:
<ul>
    <li>ABK: F to B</li>
    <li>Bank Van Breda: C to B</li>
</ul>
</li>
    <li>18/02/2015:
<ul>
    <li>MeDirect: F to A</li>
    <li>Added 6 new (small) banks</li>
</ul>
</li>
    <li>27/02/2015
<ul>
    <li>Ogone: C to A-</li>
</ul>
</li>
    <li>02/03/2015
<ul>
    <li>Fortuneo: C to B</li>
</ul>
</li>
    <li>03/03/2015
<ul>
    <li>Crelan: B to A</li>
</ul>
</li>
</ul>
<p>I cannot test <a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.europabank.be" target="_blank" rel="noopener noreferrer">Europabank</a> using SSL Labs. I can only speculate they <a href="https://www.ssllabs.com/about/assessment.html" target="_blank" rel="noopener noreferrer">requested SSL Labs to not scan them</a>. I have also added a couple new banks (Delta Lloyd, Deutsche Bank, Moneyou, Fortuneo, BKCP, Binck, and Isabel as bank tool).</p>
<p>I would like to apologise for every IT&rsquo;er that had a crappy Monday morning, and thank you for fixing SSL so fast. :)</p>
<p>The entire <strong>list updated </strong>(last partial update 18/02/2015 around 20h00):</p>
<p>I&rsquo;ve updated the sites to now correctly test the login page and not the main homepage. If that&rsquo;s not the case somewhere, please tell me.</p>
<p><span style="color: #008000;">Grade A</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure1.rabobank.be" target="_blank" rel="noopener noreferrer">Rabobank</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>. Support for HTTP Strict Transport Security and prevented downgrade attacks.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=banking.triodos.be&amp;latest" target="_blank" rel="noopener noreferrer">Triodos</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>. Support for HTTP Strict Transport Security and prevented downgrade attacks.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.evi.be" target="_blank" rel="noopener noreferrer">Evi</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=crelan-online.be" target="_blank" rel="noopener noreferrer">Crelan</a> (<span style="color: #339966;">A</span>): weak signature (SHA1).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.deltalloydbank.be" target="_blank" rel="noopener noreferrer">Delta Lloyd Bank</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>. [<a href="https://www.deltalloydbank.be/nl/actueel/detail/probleem-met-het-beveiligingsniveau-van-onze-websites" target="_blank" rel="noopener noreferrer">news post</a>]</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.deutschebank.be" target="_blank" rel="noopener noreferrer">Deutsche Bank</a> (<span style="color: #339966;">A</span>): weak signature (SHA1).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.hellobank.be" target="_blank" rel="noopener noreferrer">Hello bank!</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.keytradebank.be&amp;s=93.191.218.12" target="_blank" rel="noopener noreferrer">Keytrade Bank</a> (<span style="color: #339966;">A</span>): weak signature (SHA1, intermediate, very very minor issue).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=elogin.medirectbank.be" target="_blank" rel="noopener noreferrer">MeDirect Bank</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>. [newsletter: <a href="https://static.yeri.be/2015/02/medirect.jpg" target="_blank" rel="noopener noreferrer">1</a>, <a href="https://static.yeri.be/2015/02/medirect2.png" target="_blank" rel="noopener noreferrer">2</a>]</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.montepaschi.be" target="_blank" rel="noopener noreferrer">Monte Paschi</a> (<span style="color: #339966;">A</span>): <span style="color: #339966;">no known issues</span>.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.belfius.be&amp;s=212.63.233.37" target="_blank" rel="noopener noreferrer">Belfius</a> (<span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bnpparibasfortis.be&amp;s=193.58.4.82" target="_blank" rel="noopener noreferrer">BNP Paribas Fortis</a> (<span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bpostbank.be" target="_blank" rel="noopener noreferrer">bpost bank</a> (<span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=login.binck.be&amp;hideResults=on" target="_blank" rel="noopener noreferrer">Binck</a> (<span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=fintro.be" target="_blank" rel="noopener noreferrer">Fintro</a> (<span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.ing.be&amp;s=193.58.129.66&amp;hideResults=on" target="_blank" rel="noopener noreferrer">ING</a> (<span style="color: #339966;">A-</span>): no Forward Secrecy. [<a href="http://www.standaard.be/cnt/dmf20150216_01531736" target="_blank" rel="noopener noreferrer">press release via Standaard</a>]</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=moneyou.be" target="_blank" rel="noopener noreferrer">Moneyou</a> (<span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=homebank.recordbank.be" target="_blank" rel="noopener noreferrer">Record Bank</a> (<span style="color: #339966;">A-</span>): no Forward Secrecy. [<a href="https://static.yeri.be/2015/02/recordbank.png" target="_blank" rel="noopener noreferrer">news post</a>]</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=isabel.eu" target="_blank" rel="noopener noreferrer">Isabel</a> (banking tool for big corps - <span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.ogone.com" target="_blank" rel="noopener noreferrer">Ogone</a> (payment facilitator): no Forward Secrecy. [<a href="https://twitter.com/stroobl/status/567586488712699905" target="_blank" rel="noopener noreferrer">newsletter via twitter</a>]</li>
</ul>
<p><span style="color: #ff6600;">Grade B</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=internetbanking.argenta.be" target="_blank" rel="noopener noreferrer">Argenta</a>: SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=abkonline.abk.be" target="_blank" rel="noopener noreferrer">ABK</a>: weak signature (SHA1), no TLS 1.2, no Forward Secrecy, no support for secure renegotiation. [<a href="https://yeri.be/belgian-banks-ssl-part-4/comment-page-1#comment-32154">update</a>]</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=fe.axa.be" target="_blank" rel="noopener noreferrer">AXA</a>: weak signature (SHA1), SSL3 (insecure), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.vanbredaonline.be" target="_blank" rel="noopener noreferrer">Bank Van Breda</a>: weak signature (SHA1), no TLS 1.2, no Forward Secrecy, no support for secure renegotiation. [<a href="https://yeri.be/belgian-banks-ssl-part-4/comment-page-1#comment-32154">update</a>]</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=beobank.be" target="_blank" rel="noopener noreferrer">beobank</a>: weak signature (SHA1), no TLS 1.2, RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ident.bkcp.be&amp;hideResults=on&amp;latest" target="_blank" rel="noopener noreferrer">BKCP</a>: weak signature (SHA1), no TLS 1.2, RC4 (insecure), no Forward Secrecy. [<a href="https://static.yeri.be/2015/02/bkcp.png" target="_blank" rel="noopener noreferrer">newsletter</a>]</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=cph.be" target="_blank" rel="noopener noreferrer">CPH</a>: no TLS 1.2, RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=netbanking.dhbbank.com" target="_blank" rel="noopener noreferrer">DHB Bank</a>: weak signature (SHA1), RC4 (insecure).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=fortuneo.be&amp;s=93.20.42.107" target="_blank" rel="noopener noreferrer">Fortuneo</a>: weak signature (SHA1), no TLS 1.2, no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.kbc.be">KBC</a>: weak signature (SHA1), no TLS 1.2, no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebanking.nibcdirect.be" target="_blank" rel="noopener noreferrer">NIBC Direct</a>: weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=online.vdk.be" target="_blank" rel="noopener noreferrer">VDK</a>: SSL3 (insecure),no TLS 1.2, weak signature (SHA1), RC4 (insecure), no Forward Secrecy</li>
</ul>
<p><span style="color: #ff0000;">Grade C</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.psabank.be&amp;s=93.20.46.143&amp;hideResults=on" target="_blank" rel="noopener noreferrer">PSA Bank</a>: weak signature (SHA1), no TLS 1.2, RC4 (insecure), no Forward Secrecy.</li>
</ul>
<p><span style="color: #ff0000;">Grade D</span></p>
<ul>
    <li>n/a</li>
</ul>
<p><span style="color: #ff0000;">Grade E</span></p>
<ul>
    <li>n/a</li>
</ul>
<p><span style="color: #ff0000;">Grade F</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=optimaonline.optimabank.be" target="_blank" rel="noopener noreferrer">Optima Bank</a>: vulnerable to POODLE attack in SSL3 and TLS format, weak signature (SHA1), RC4, no Forward Secrecy.</li>
</ul>
<p>Information about SSL Labs grading can be found <a href="https://web.archive.org/web/20170119124000/https://www.ssllabs.com/downloads/SSL_Server_Rating_Guide.pdf" target="_blank" rel="noopener noreferrer">here</a>. Grade A (+) being the best possible ranking, and F the worst.</p>
<p>Respect to those that send a mailing list to their customers with more detailed information. Communication++</p>
<p>Respect to Rabobank to be the only bank that directly contacted me (officially, not hiding behind a Gmail or Hotmail address) and thanked me for the work I did, asking for more details, etc.</p>
<p>And thank you for an anonymous person, working for one of the big banks, to give me more details about why they are slow at patching this, how legacy works, etc. I wish he could take this discussion public, but alas.</p>
]]></content:encoded>
      <category>linux</category><category>misc</category><category>networking</category><category>software</category><category>www</category>
      <category>belgium</category><category>ssl</category>
    </item>
    
    <item>
      <title>Belgian banks &amp; SSL — part 3</title>
      <link>https://yeri.be/belgian-banks-ssl-part-3/</link>
      <pubDate>Sun, 15 Feb 2015 11:11:42 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/belgian-banks-ssl-part-3/</guid>
      <description>&lt;p&gt;&lt;span style=&#34;text-decoration: underline;&#34;&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;/span&gt;: ING is now A- (not reflected in this blog post).&#xA;&lt;strong&gt;&lt;span style=&#34;text-decoration: underline;&#34;&gt;EDIT 2&lt;/span&gt;&lt;/strong&gt;: Keytrade &amp;amp; Hello Bank also went to A. I&amp;rsquo;ll post a new blog post later tonight.&#xA;&lt;strong&gt;&lt;span style=&#34;text-decoration: underline;&#34;&gt;EDIT 3&lt;/span&gt;&lt;/strong&gt;: Updated post &lt;a href=&#34;https://yeri.be/belgian-banks-ssl-part-4&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Part three, or how I single-handedly &amp;ldquo;fixed&amp;rdquo; SSL at the Belgian banks. ;)&lt;/p&gt;&#xA;&lt;p&gt;Part &lt;a href=&#34;https://yeri.be/belgian-banks-ssl&#34;&gt;one&lt;/a&gt; and &lt;a href=&#34;https://yeri.be/belgian-banks-ssl-part-2&#34;&gt;two&lt;/a&gt; are available here. Not related but useful nonetheless &lt;a href=&#34;http://web.archive.org/web/20260116231349/https://www.nytimes.com/2015/02/15/world/bank-hackers-steal-millions-via-malware.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;NY Times article&lt;/a&gt; about bank hackers.&lt;/p&gt;&#xA;&lt;p&gt;Argenta &lt;a href=&#34;https://www.facebook.com/argenta/posts/10206360815449230&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;promised to fix their SSL&lt;/a&gt;, so it&amp;rsquo;s the time to check everything again.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><span style="text-decoration: underline;"><strong>EDIT</strong></span>: ING is now A- (not reflected in this blog post).
<strong><span style="text-decoration: underline;">EDIT 2</span></strong>: Keytrade &amp; Hello Bank also went to A. I&rsquo;ll post a new blog post later tonight.
<strong><span style="text-decoration: underline;">EDIT 3</span></strong>: Updated post <a href="https://yeri.be/belgian-banks-ssl-part-4">here</a>.</p>
<p>Part three, or how I single-handedly &ldquo;fixed&rdquo; SSL at the Belgian banks. ;)</p>
<p>Part <a href="https://yeri.be/belgian-banks-ssl">one</a> and <a href="https://yeri.be/belgian-banks-ssl-part-2">two</a> are available here. Not related but useful nonetheless <a href="http://web.archive.org/web/20260116231349/https://www.nytimes.com/2015/02/15/world/bank-hackers-steal-millions-via-malware.html" target="_blank" rel="noopener noreferrer">NY Times article</a> about bank hackers.</p>
<p>Argenta <a href="https://www.facebook.com/argenta/posts/10206360815449230" target="_blank" rel="noopener noreferrer">promised to fix their SSL</a>, so it&rsquo;s the time to check everything again.</p>
<p>TL;DR: Only Argenta&rsquo;s status changed for the better.</p>
<p>Those that <strong>did not</strong> change:</p>
<ul>
    <li><span style="color: #339966;">Rabobank</span>: A+</li>
    <li><span style="color: #339966;">Triodos</span>: A+</li>
    <li><span style="color: #339966;">Belfius</span>: A-</li>
    <li><span style="color: #339966;">BNP Paribas Fortis</span>: A-</li>
    <li><span style="color: #339966;">bpost bank</span>: A-</li>
    <li><span style="color: #ff9900;">AXA</span>: B</li>
    <li><span style="color: #ff9900;">beobank</span>: B</li>
    <li><span style="color: #ff9900;">CPH</span>: B</li>
    <li><span style="color: #ff9900;">KBC</span>: B</li>
    <li><span style="color: #ff9900;">Keytrade Bank</span>: B</li>
    <li><span style="color: #ff9900;">Crelan</span> (internet banking): B</li>
    <li><span style="color: #ff0000;">Hello bank!</span>: C</li>
    <li><span style="color: #ff0000;">Bank Van Breda</span> (internet banking): C
<ul>
    <li>BvB no longer supports <a href="https://community.qualys.com/blogs/securitylabs/2010/10/06/disabling-ssl-renegotiation-is-a-crutch-not-a-fix" target="_blank" rel="noopener noreferrer">secure renegotiation</a> (which, afaik, it did before). However, it's still rated as C, as this isn't a real issue.</li>
</ul>
</li>
    <li><span style="color: #ff0000;">ING</span>: F</li>
    <li><span style="color: #ff0000;">Record Bank</span> (internet banking): F</li>
</ul>
<p>Those that <strong>did</strong> change:</p>
<ul>
    <li>Argenta (internet banking): <span style="color: #ff0000;">F</span> to <span style="color: #ff9900;">B</span>
<ul>
    <li><span style="color: #339966;">No longer vulnerable to POODLE</span>,</li>
    <li>Support for <span style="color: #339966;">protocol downgrade attacks prevention</span>,</li>
    <li><span style="color: #ff9900;">Still using SSL3 </span>(obsolete and insecure),</li>
    <li><span style="color: #ff9900;">Weak signature </span>(SHA1),</li>
    <li><span style="color: #ff9900;">RC4 cipher is supported</span> (insecure),</li>
    <li><span style="color: #ff9900;">No Forward Secrecy</span>.</li>
</ul>
</li>
</ul>
<p>Still a little way to go for Argenta, but it&rsquo;s on the right path.</p>
<p>Those that I <strong>hadn&rsquo;t tested</strong> before:</p>
<ul>
    <li><span style="color: #ff9900;">VDK</span>: B</li>
    <li><span style="color: #ff0000;">ABK</span>: F</li>
    <li><span style="color: #ff0000;">MeDirect Bank</span>: F</li>
    <li><span style="color: #ff0000;">Ogone</span>: C (technically not a bank, and <a href="https://twitter.com/stroobl/status/561920969800171520" target="_blank" rel="noopener noreferrer">promised a fix</a>, but it <a href="https://twitter.com/stroobl/status/566910029685850112" target="_blank" rel="noopener noreferrer">got delayed</a>).</li>
</ul>
<hr />
<p>The entire <strong>list updated</strong>:</p>
<p><span style="color: #008000;">Grade A</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.rabobank.be&amp;s=172.230.225.200" target="_blank" rel="noopener noreferrer">Rabobank</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>. Support for HTTP Strict Transport Security and prevented downgrade attacks.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.triodos.be" target="_blank" rel="noopener noreferrer">Triodos</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>. Support for HTTP Strict Transport Security and prevented downgrade attacks.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.belfius.be&amp;s=212.63.233.37" target="_blank" rel="noopener noreferrer">Belfius</a> (<span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bnpparibasfortis.be&amp;s=193.58.4.82" target="_blank" rel="noopener noreferrer">BNP Paribas Fortis</a>: (<span style="color: #339966;">A-</span>) weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bpostbank.be" target="_blank" rel="noopener noreferrer">bpost bank</a>: (<span style="color: #339966;">A-</span>) weak signature (SHA1), no Forward Secrecy.</li>
</ul>
<p><span style="color: #ff6600;">Grade B</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=argenta.be" target="_blank" rel="noopener noreferrer">Argenta</a>: no SSL on main page.
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=internetbanking.argenta.be" target="_blank" rel="noopener noreferrer">internet banking</a>: SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
</ul>
</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.axa.be" target="_blank" rel="noopener noreferrer">AXA</a>: weak signature (SHA1), SSL3 (insecure), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=beobank.be" target="_blank" rel="noopener noreferrer">beobank</a>: weak signature (SHA1), no TLS 1.2, RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=cph.be" target="_blank" rel="noopener noreferrer">CPH</a>: no TLS 1.2, RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.kbc.be">KBC</a>: weak signature (SHA1), no TLS 1.2, no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.keytradebank.be&amp;s=93.191.218.12" target="_blank" rel="noopener noreferrer">Keytrade Bank</a>: weak signature (SHA1), RC4 (insecure).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=online.vdk.be" target="_blank" rel="noopener noreferrer">VDK</a>: SSL3 (insecure),no TLS 1.2, weak signature (SHA1), RC4 (insecure), no Forward Secrecy</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=crelan.be&amp;latest" target="_blank" rel="noopener noreferrer">Crelan</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=crelan-online.be" target="_blank" rel="noopener noreferrer">internet banking</a>: weak signature (SHA1), SSL3 (insecure), no TLS 1.2, RC4, no Forward Secrecy.</li>
</ul>
</li>
</ul>
<p><span style="color: #ff0000;">Grade C</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.hellobank.be" target="_blank" rel="noopener noreferrer">Hello bank!</a>: vulnerable to POODLE attack, weak signature (SHA1), RC4 (insecure).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=bankvanbreda.be&amp;latest" target="_blank" rel="noopener noreferrer">Bank Van Breda</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.vanbredaonline.be" target="_blank" rel="noopener noreferrer">internet banking</a>: vulnerable to POODLE attack, weak signature (SHA1), no TLS 1.2, no Forward Secrecy, no support for secure renegotiation.</li>
</ul>
</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.ogone.com" target="_blank" rel="noopener noreferrer">Ogone</a>: payment facilitator
<ul>
    <li>weak signature (SHA1), RC4, vulnerable to POODLE, no Forward Secrecy</li>
</ul>
</li>
</ul>
<p><span style="color: #ff0000;">Grade D</span></p>
<ul>
    <li>n/a</li>
</ul>
<p><span style="color: #ff0000;">Grade E</span></p>
<ul>
    <li>n/a</li>
</ul>
<p><span style="color: #ff0000;">Grade F</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=abkonline.abk.be" target="_blank" rel="noopener noreferrer">ABK</a>: SSL2 (insecure), vulnerable to POODLE attack, weak signature (SHA1), RC4 (insecure), no Forward Secrecy, no TLS 1.2.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.ing.be&amp;s=193.58.129.66&amp;hideResults=on" target="_blank" rel="noopener noreferrer">ING</a>: vulnerable to POODLE attack, SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=elogin.medirectbank.be" target="_blank" rel="noopener noreferrer">MeDirect Bank</a>: vulnerable to POODLE attack, <a href="https://community.qualys.com/blogs/securitylabs/2014/06/13/ssl-pulse-49-vulnerable-to-cve-2014-0224-14-exploitable" target="_blank" rel="noopener noreferrer">OpenSSL CCS vulnerability</a> (quite bad),</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=recordbank.be&amp;latest" target="_blank" rel="noopener noreferrer">Record Bank</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=homebank.recordbank.be" target="_blank" rel="noopener noreferrer">internet banking</a>: vulnerable to POODLE attack, RC4 (insecure), no Forward Secrecy.</li>
</ul>
</li>
</ul>
<p>Information about SSL Labs grading can be found <a href="https://web.archive.org/web/20170119124000/https://www.ssllabs.com/downloads/SSL_Server_Rating_Guide.pdf" target="_blank" rel="noopener noreferrer">here</a>. Grade A (+) being the best possible ranking, and F the worst.</p>
<p>Also, shame on you ING. More than any other bank.</p>
]]></content:encoded>
      <category>linux</category><category>misc</category><category>networking</category><category>software</category><category>windows</category><category>www</category>
      <category>belgium</category><category>ssl</category>
    </item>
    
    <item>
      <title>Courier IMAP and auto deleting trash after 7 days</title>
      <link>https://yeri.be/courier-imap-and-auto-deleting-trash-after-7-days/</link>
      <pubDate>Tue, 03 Feb 2015 11:53:20 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/courier-imap-and-auto-deleting-trash-after-7-days/</guid>
      <description>&lt;p&gt;E-mails that had been deleted for over 7 days were automatically removed from the IMAP server. E-mail date was ignored (ie the mail could have been from 2010; the actual time in &amp;ldquo;Trash&amp;rdquo; counted). This didn&amp;rsquo;t happen to other folders (Sent, Archive, Spam). This recently happened and hadn&amp;rsquo;t happened before.&lt;/p&gt;&#xA;&lt;p&gt;I had to restore my trash folder from backups every 7 days (yay for &lt;a href=&#34;http://www.nongnu.org/rdiff-backup/&#34; target=&#34;_blank&#34;&gt;rdiff-backup&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;It took me a while to figure it out&amp;hellip; The problem first appeared in October, right after several big changes:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>E-mails that had been deleted for over 7 days were automatically removed from the IMAP server. E-mail date was ignored (ie the mail could have been from 2010; the actual time in &ldquo;Trash&rdquo; counted). This didn&rsquo;t happen to other folders (Sent, Archive, Spam). This recently happened and hadn&rsquo;t happened before.</p>
<p>I had to restore my trash folder from backups every 7 days (yay for <a href="http://www.nongnu.org/rdiff-backup/" target="_blank">rdiff-backup</a>).</p>
<p>It took me a while to figure it out&hellip; The problem first appeared in October, right after several big changes:</p>
<ul>
	<li>Yosemite update</li>
	<li>Airmail to <a href="http://airmailapp.com/" target="_blank">Airmail 2</a> update (I was <a href="https://twitter.com/Tuinslak/status/543457760525180929" target="_blank">convinced this was the root cause</a>, looking at my clients instead of the server)</li>
	<li>Android 5.0.x</li>
	<li>Android Email app sunset, changes to GMail app</li>
	<li>IPv6 working decently at home after updating my <a href="https://yeri.be/connect-different-lans-over-openvpn">RPi</a> to <a href="http://en.avm.de/" target="_blank">Fritzbox</a> devices.</li>
	<li>Random connection errors in GMail app (this was due to misconfigured DNS in the GMail app and causing IPv6 catch all to redirect to the webserver instead of the mailserver. It didn't happen consistently because over mobile (4G &amp; lower) there is no IPv6 and at home is randomly falls back to IPv4 as well. IPv4 DNS was well configured.</li>
	<li>Moving my ~100.000 deleted e-mails from "Deleted Items" (OS X Mail default) to "Trash" (Android &amp; Courier default) to stop having to move them manually from one folder to the other every so often. =&gt; this was eventually the cause but I didn't realize.</li>
</ul>
Being convinced it was most likely Airmail 2 and very maybe Android I had been looking in that direction.
<p>Debugging was also extremely slow as I had to wait 7 days before being able to check if the changes I made helped anything.</p>
<p>I eventually figured out that it was not Airmail when I rebuild my whole mail database and it defaulted back to putting my deleted mails into the Archive folder instead of Trash. Archive mails were kept over 7 days, but items in Trash still removed.</p>
<p>That&rsquo;s when I started looking at Courier IMAP config: <code>/etc/courier/imapd</code> (and not <code>imapd-ssl</code>).</p>
<p>There&rsquo;s an option that says:</p>
<pre>##NAME: IMAP_EMPTYTRASH:0
#
# The following setting is optional, and causes messages from the given
# folder to be automatically deleted after the given number of days.
# IMAP_EMPTYTRASH is a comma-separated list of folder:days.  The default
# setting, below, purges 7 day old messages from the Trash folder.
# Another useful setting would be:
#  
# IMAP_EMPTYTRASH=Trash:7,Sent:30
#
# This would also delete messages from the Sent folder (presumably copies
# of sent mail) after 30 days.  This is a global setting that is applied to
# every mail account, and is probably useful in a controlled, corporate
# environment.
#
# Important: the purging is controlled by CTIME, not MTIME (the file time
# as shown by ls).  It is perfectly ordinary to see stuff in Trash that's
# a year old.  That's the file modification time, MTIME, that's displayed.
# This is generally when the message was originally delivered to this
# mailbox.  Purging is controlled by a different timestamp, CTIME, which is
# changed when the file is moved to the Trash folder (and at other times too).
#
# You might want to disable this setting in certain situations - it results
# in a stat() of every file in each folder, at login and logout.
#
IMAP_EMPTYTRASH=Trash:7</pre>
<p>Comment out that last line, and restart courier-imap(-ssl)&hellip; Simple as that.</p>
<p>This solved my issue.</p>
<p>I&rsquo;m not sure when that config change happened (Debian update?) and I do not know who at Courier thought it was a good idea &hellip;. But sheesh.</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>linux</category><category>networking</category><category>software</category>
      <category>gmail</category><category>imap</category><category>mac os x</category><category>mail</category>
    </item>
    
    <item>
      <title>Belgian banks &amp; SSL -- part 2</title>
      <link>https://yeri.be/belgian-banks-ssl-part-2/</link>
      <pubDate>Sun, 01 Feb 2015 11:32:43 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/belgian-banks-ssl-part-2/</guid>
      <description>&lt;p&gt;I previously wrote about &lt;a href=&#34;https://yeri.be/belgian-banks-ssl&#34;&gt;Belgian banks &amp;amp; SSL&lt;/a&gt;. Updated version (15/02/2015) &lt;a href=&#34;https://yeri.be/belgian-banks-ssl-part-3&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Going through my Google Analytics I noticed some noteworthy network domains, which Google discribes as &amp;ldquo;The fully qualified domain names of your visitors&amp;rsquo; Internet service providers (ISPs)&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.01.png&#34;&gt;&lt;img class=&#34;alignnone size-full wp-image-6815&#34; src=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.01.png&#34; alt=&#34;Screen Shot 2015-02-01 at 01.35.01&#34; width=&#34;651&#34; height=&#34;34&#34; /&gt;&lt;/a&gt;&lt;a href=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.23.png&#34;&gt;&lt;img class=&#34;alignnone size-large wp-image-6816&#34; src=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.23.png&#34; alt=&#34;Screen Shot 2015-02-01 at 01.35.23&#34; width=&#34;650&#34; height=&#34;34&#34; /&gt;&lt;/a&gt;&lt;a href=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.34.png&#34;&gt;&lt;img class=&#34;alignnone size-large wp-image-6817&#34; src=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.34.png&#34; alt=&#34;Screen Shot 2015-02-01 at 01.35.34&#34; width=&#34;650&#34; height=&#34;33&#34; /&gt;&lt;/a&gt;&lt;a href=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.36.59.png&#34;&gt;&lt;img class=&#34;alignnone size-large wp-image-6818&#34; src=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.36.59.png&#34; alt=&#34;Screen Shot 2015-02-01 at 01.36.59&#34; width=&#34;649&#34; height=&#34;103&#34; /&gt;&lt;/a&gt;&lt;a href=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.37.32.png&#34;&gt;&lt;img class=&#34;alignnone size-large wp-image-6819&#34; src=&#34;https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.37.32.png&#34; alt=&#34;Screen Shot 2015-02-01 at 01.37.32&#34; width=&#34;651&#34; height=&#34;34&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I previously wrote about <a href="https://yeri.be/belgian-banks-ssl">Belgian banks &amp; SSL</a>. Updated version (15/02/2015) <a href="https://yeri.be/belgian-banks-ssl-part-3">here</a>.</p>
<p>Going through my Google Analytics I noticed some noteworthy network domains, which Google discribes as &ldquo;The fully qualified domain names of your visitors&rsquo; Internet service providers (ISPs)&rdquo;.</p>
<p><a href="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.01.png"><img class="alignnone size-full wp-image-6815" src="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.01.png" alt="Screen Shot 2015-02-01 at 01.35.01" width="651" height="34" /></a><a href="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.23.png"><img class="alignnone size-large wp-image-6816" src="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.23.png" alt="Screen Shot 2015-02-01 at 01.35.23" width="650" height="34" /></a><a href="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.34.png"><img class="alignnone size-large wp-image-6817" src="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.35.34.png" alt="Screen Shot 2015-02-01 at 01.35.34" width="650" height="33" /></a><a href="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.36.59.png"><img class="alignnone size-large wp-image-6818" src="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.36.59.png" alt="Screen Shot 2015-02-01 at 01.36.59" width="649" height="103" /></a><a href="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.37.32.png"><img class="alignnone size-large wp-image-6819" src="https://static.yeri.be/2015/02/Screen-Shot-2015-02-01-at-01.37.32.png" alt="Screen Shot 2015-02-01 at 01.37.32" width="651" height="34" /></a></p>
<p>There are a few more (Belgian) government institutions and universities, and the top in the list are &ldquo;(not set)&rdquo; and &ldquo;unknown&rdquo;.</p>
<p>Clearly some people at the banks read the post during their work time. So it&rsquo;s only fair to recheck the websites&hellip; Here goes:</p>
<p>Those that I <strong>hadn&rsquo;t tested</strong> before:</p>
<ul>
    <li><span style="color: #ff9900;">CPH</span>: B</li>
    <li><span style="color: #ff0000;">Record Bank</span> (internet banking): F</li>
</ul>
<p>Those that <strong>did not</strong> change:</p>
<ul>
    <li><span style="color: #339966;">Rabobank</span>: A+</li>
    <li><span style="color: #339966;">Belfius</span>: A-</li>
    <li><span style="color: #ff9900;">AXA</span>: B</li>
    <li><span style="color: #ff9900;">beobank</span>: B</li>
    <li><span style="color: #ff9900;">KBC</span>: B</li>
    <li><span style="color: #ff9900;">Keytrade Bank</span>: B</li>
    <li><span style="color: #ff9900;">Crelan</span> (internet banking): B</li>
    <li><span style="color: #ff0000;">Hello bank!</span>: C</li>
    <li><span style="color: #ff0000;">Bank Van Breda</span> (internet banking): C</li>
    <li><span style="color: #ff0000;">ING</span>: F</li>
    <li><span style="color: #ff0000;">Argenta</span> (internet banking): F</li>
</ul>
<p>Those that <strong>did</strong> change:</p>
<ul>
    <li><span style="color: #339966;">Triodos</span>: <span style="color: #339966;">A</span> to <span style="color: #339966;">A+</span>
<ul>
    <li>downgrade prevention correctly applied.</li>
</ul>
</li>
    <li><span style="color: #339966;">BNP Paribas Fortis</span>: <span style="color: #ff0000;">F</span> to <span style="color: #339966;">A-</span>
<ul>
    <li>No longer vulnerable to POODLE,</li>
    <li>Disabled SSL3 (insecure),</li>
    <li>Disabled RC4 (insecure),</li>
    <li>Still using a weak signature (SHA1),</li>
    <li>No Forward Secrecy.</li>
</ul>
</li>
    <li><span style="color: #339966;">bpost bank</span>: <span style="color: #ff0000;">F</span> to <span style="color: #339966;">A-</span>
<ul>
    <li>No longer vulnerable to POODLE,</li>
    <li>Disabled SSL3 (insecure),</li>
    <li>Disabled RC4 (insecure),</li>
    <li>Still using a weak signature (SHA1),</li>
    <li>No Forward Secrecy.</li>
</ul>
</li>
</ul>
<p>Huge thumbs up for these last three banks! Well done, especially BNP &amp; bpost! :)</p>
<p>Keep on shaming the others.</p>
<hr />
<p>The entire <strong>list updated</strong>:</p>
<p><span style="color: #008000;">Grade A</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.rabobank.be&amp;s=172.230.225.200" target="_blank" rel="noopener noreferrer">Rabobank</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>. Support for HTTP Strict Transport Security and prevented downgrade attacks.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.triodos.be" target="_blank" rel="noopener noreferrer">Triodos</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>. Support for HTTP Strict Transport Security and prevented downgrade attacks.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.belfius.be&amp;s=212.63.233.37" target="_blank" rel="noopener noreferrer">Belfius</a> (<span style="color: #339966;">A-</span>): weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bnpparibasfortis.be&amp;s=193.58.4.82" target="_blank" rel="noopener noreferrer">BNP Paribas Fortis</a>: (<span style="color: #339966;">A-</span>) weak signature (SHA1), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bpostbank.be" target="_blank" rel="noopener noreferrer">bpost bank</a>: (<span style="color: #339966;">A-</span>) weak signature (SHA1), no Forward Secrecy.</li>
</ul>
<p><span style="color: #ff6600;">Grade B</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.axa.be" target="_blank" rel="noopener noreferrer">AXA</a>: weak signature (SHA1), SSL3 (insecure), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=beobank.be" target="_blank" rel="noopener noreferrer">beobank</a>: weak signature (SHA1), no TLS 1.2, RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=cph.be" target="_blank" rel="noopener noreferrer">CPH</a>: no TLS 1.2, RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.kbc.be">KBC</a>: weak signature (SHA1), no TLS 1.2, no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.keytradebank.be&amp;s=93.191.218.12" target="_blank" rel="noopener noreferrer">Keytrade Bank</a>: weak signature (SHA1), RC4 (insecure).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=crelan.be&amp;latest" target="_blank" rel="noopener noreferrer">Crelan</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=crelan-online.be" target="_blank" rel="noopener noreferrer">internet banking</a>: weak signature (SHA1), SSL3 (insecure), no TLS 1.2, RC4, no Forward Secrecy.</li>
</ul>
</li>
</ul>
<p><span style="color: #ff0000;">Grade C</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.hellobank.be" target="_blank" rel="noopener noreferrer">Hello bank!</a>: vulnerable to POODLE attack, weak signature (SHA1), RC4 (insecure).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=bankvanbreda.be&amp;latest" target="_blank" rel="noopener noreferrer">Bank Van Breda</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.vanbredaonline.be" target="_blank" rel="noopener noreferrer">internet banking</a>: vulnerable to POODLE attack, weak signature (SHA1), no TLS 1.2, no Forward Secrecy.</li>
</ul>
</li>
</ul>
<p><span style="color: #ff0000;">Grade D</span></p>
<ul>
    <li>n/a</li>
</ul>
<p><span style="color: #ff0000;">Grade E</span></p>
<ul>
    <li>n/a</li>
</ul>
<p><span style="color: #ff0000;">Grade F</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.ing.be&amp;s=193.58.129.66&amp;hideResults=on" target="_blank" rel="noopener noreferrer">ING</a>: vulnerable to POODLE attack, SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=argenta.be" target="_blank" rel="noopener noreferrer">Argenta</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=internetbanking.argenta.be" target="_blank" rel="noopener noreferrer">internet banking</a>: vulnerable to POODLE attack, SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
</ul>
</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=recordbank.be&amp;latest" target="_blank" rel="noopener noreferrer">Record Bank</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=homebank.recordbank.be" target="_blank" rel="noopener noreferrer">internet banking</a>: vulnerable to POODLE attack, RC4 (insecure), no Forward Secrecy.</li>
</ul>
</li>
</ul>
<p>Information about SSL Labs grading can be found <a href="https://web.archive.org/web/20170119124000/https://www.ssllabs.com/downloads/SSL_Server_Rating_Guide.pdf" target="_blank" rel="noopener noreferrer">here</a>. Grade A (+) being the best possible ranking, and F the worst.</p>
]]></content:encoded>
      <category>linux</category><category>misc</category><category>networking</category><category>software</category><category>windows</category><category>www</category>
      <category>belgium</category><category>ssl</category>
    </item>
    
    <item>
      <title>Updated @Flightradar24 Ansible cookbook</title>
      <link>https://yeri.be/updated-flightradar24-ansible-cookbook/</link>
      <pubDate>Wed, 21 Jan 2015 17:04:04 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/updated-flightradar24-ansible-cookbook/</guid>
      <description>&lt;p&gt;I had to wait a little while for the ARMv7 version for my EfikaMX devices, but they finally had time to compile it. Yay!&lt;/p&gt;&#xA;&lt;p&gt;The updated &lt;a href=&#34;https://yeri.be/flightradar24-ansible-playbook&#34;&gt;cookbooks&lt;/a&gt; are &lt;a href=&#34;https://github.com/Tuinslak/ansible-flightradar24&#34; target=&#34;_blank&#34;&gt;on Github&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Changes (&lt;a href=&#34;https://github.com/Tuinslak/ansible-flightradar24/commits/master&#34; target=&#34;_blank&#34;&gt;commits&lt;/a&gt;):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;Better key management&lt;/li&gt;&#xA;&#x9;&lt;li&gt;fr24feed.ini&lt;/li&gt;&#xA;&#x9;&lt;li&gt;No more separate dump1090 launch&lt;/li&gt;&#xA;&#x9;&lt;li&gt;newest fr24 version&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;Download links for &lt;a href=&#34;http://feed.flightradar24.com/linux/&#34; target=&#34;_blank&#34;&gt;Linux&lt;/a&gt; &amp;amp; &lt;a href=&#34;http://feed.flightradar24.com/raspberry-pi/&#34; target=&#34;_blank&#34;&gt;RPi&lt;/a&gt;.</description>
      <content:encoded><![CDATA[<p>I had to wait a little while for the ARMv7 version for my EfikaMX devices, but they finally had time to compile it. Yay!</p>
<p>The updated <a href="https://yeri.be/flightradar24-ansible-playbook">cookbooks</a> are <a href="https://github.com/Tuinslak/ansible-flightradar24" target="_blank">on Github</a>.</p>
<p>Changes (<a href="https://github.com/Tuinslak/ansible-flightradar24/commits/master" target="_blank">commits</a>):</p>
<ul>
	<li>Better key management</li>
	<li>fr24feed.ini</li>
	<li>No more separate dump1090 launch</li>
	<li>newest fr24 version</li>
</ul>
Download links for <a href="http://feed.flightradar24.com/linux/" target="_blank">Linux</a> &amp; <a href="http://feed.flightradar24.com/raspberry-pi/" target="_blank">RPi</a>.
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>virtualisation</category>
      <category>ansible</category><category>dvb-t</category><category>flightradar24</category>
    </item>
    
    <item>
      <title>Belgian banks &amp; SSL</title>
      <link>https://yeri.be/belgian-banks-ssl/</link>
      <pubDate>Tue, 20 Jan 2015 11:40:50 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/belgian-banks-ssl/</guid>
      <description>&lt;p&gt;Tested using &lt;a href=&#34;https://www.ssllabs.com&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;SSL Labs&lt;/a&gt; on 20/01/2015. Updated version 01/02/2015 &lt;a href=&#34;https://yeri.be/belgian-banks-ssl-part-2&#34;&gt;here&lt;/a&gt; and 15/02/2015 &lt;a href=&#34;https://yeri.be/belgian-banks-ssl-part-3&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Only providing the weak points. Once there is one SHA1 key in the chain, I will report everything as weak.&lt;/p&gt;&#xA;&lt;p&gt;Check SSL Labs for a full report, including what they actually did good (if anything).&lt;/p&gt;&#xA;&lt;p&gt;&lt;span style=&#34;color: #008000;&#34;&gt;Grade A&lt;/span&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://www.ssllabs.com/ssltest/analyze.html?d=www.rabobank.be&amp;amp;s=172.230.225.200&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Rabobank&lt;/a&gt; (&lt;span style=&#34;color: #339966;&#34;&gt;A+&lt;/span&gt;): &lt;span style=&#34;color: #339966;&#34;&gt;no known issues&lt;/span&gt;. Support for &lt;a href=&#34;https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;HTTP Strict Transport Security&lt;/a&gt; and prevented &lt;a href=&#34;https://crypto.stackexchange.com/questions/10493/why-is-tls-susceptible-to-protocol-downgrade-attacks&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;downgrade attacks&lt;/a&gt;.&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://www.ssllabs.com/ssltest/analyze.html?d=www.triodos.be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Triodos&lt;/a&gt; (&lt;span style=&#34;color: #339966;&#34;&gt;A&lt;/span&gt;): no downgrade attack prevention.&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://www.ssllabs.com/ssltest/analyze.html?d=www.belfius.be&amp;amp;s=212.63.233.37&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Belfius&lt;/a&gt; (&lt;span style=&#34;color: #339966;&#34;&gt;A-&lt;/span&gt;): weak signature (&lt;a href=&#34;https://community.qualys.com/blogs/securitylabs/2014/09/09/sha1-deprecation-what-you-need-to-know&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;SHA1&lt;/a&gt;), no &lt;a href=&#34;https://en.wikipedia.org/wiki/Forward_secrecy&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Forward Secrecy&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;span style=&#34;color: #ff6600;&#34;&gt;Grade B&lt;/span&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Tested using <a href="https://www.ssllabs.com" target="_blank" rel="noopener noreferrer">SSL Labs</a> on 20/01/2015. Updated version 01/02/2015 <a href="https://yeri.be/belgian-banks-ssl-part-2">here</a> and 15/02/2015 <a href="https://yeri.be/belgian-banks-ssl-part-3">here</a>.</p>
<p>Only providing the weak points. Once there is one SHA1 key in the chain, I will report everything as weak.</p>
<p>Check SSL Labs for a full report, including what they actually did good (if anything).</p>
<p><span style="color: #008000;">Grade A</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.rabobank.be&amp;s=172.230.225.200" target="_blank" rel="noopener noreferrer">Rabobank</a> (<span style="color: #339966;">A+</span>): <span style="color: #339966;">no known issues</span>. Support for <a href="https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security" target="_blank" rel="noopener noreferrer">HTTP Strict Transport Security</a> and prevented <a href="https://crypto.stackexchange.com/questions/10493/why-is-tls-susceptible-to-protocol-downgrade-attacks" target="_blank" rel="noopener noreferrer">downgrade attacks</a>.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.triodos.be" target="_blank" rel="noopener noreferrer">Triodos</a> (<span style="color: #339966;">A</span>): no downgrade attack prevention.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.belfius.be&amp;s=212.63.233.37" target="_blank" rel="noopener noreferrer">Belfius</a> (<span style="color: #339966;">A-</span>): weak signature (<a href="https://community.qualys.com/blogs/securitylabs/2014/09/09/sha1-deprecation-what-you-need-to-know" target="_blank" rel="noopener noreferrer">SHA1</a>), no <a href="https://en.wikipedia.org/wiki/Forward_secrecy" target="_blank" rel="noopener noreferrer">Forward Secrecy</a>.</li>
</ul>
<p><span style="color: #ff6600;">Grade B</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.axa.be" target="_blank" rel="noopener noreferrer">AXA</a>: weak signature (SHA1), <a href="https://community.qualys.com/blogs/securitylabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack" target="_blank" rel="noopener noreferrer">SSL3</a> (insecure), <a href="https://community.qualys.com/blogs/securitylabs/2013/03/19/rc4-in-tls-is-broken-now-what" target="_blank" rel="noopener noreferrer">RC4</a> (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=beobank.be" target="_blank" rel="noopener noreferrer">beobank</a>: weak signature (SHA1), no TLS 1.2, RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.kbc.be">KBC</a>: weak signature (SHA1), no TLS 1.2, no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.keytradebank.be&amp;s=93.191.218.12" target="_blank" rel="noopener noreferrer">Keytrade Bank</a>: weak signature (SHA1), RC4 (insecure).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=crelan.be&amp;latest" target="_blank" rel="noopener noreferrer">Crelan</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=crelan-online.be" target="_blank" rel="noopener noreferrer">internet banking</a>: weak signature (SHA1), SSL3 (insecure), no TLS 1.2, RC4, no Forward Secrecy.</li>
</ul>
</li>
</ul>
<p><span style="color: #ff0000;">Grade C</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.hellobank.be" target="_blank" rel="noopener noreferrer">Hello bank!</a>: vulnerable to <a href="https://community.qualys.com/blogs/securitylabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack" target="_blank" rel="noopener noreferrer">POODLE</a> attack, weak signature (SHA1), RC4 (insecure).</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=bankvanbreda.be&amp;latest" target="_blank" rel="noopener noreferrer">Bank Van Breda</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=secure.vanbredaonline.be" target="_blank" rel="noopener noreferrer">internet banking</a>: vulnerable to POODLE attack, weak signature (SHA1), no TLS 1.2, no Forward Secrecy.</li>
</ul>
</li>
</ul>
<p><span style="color: #ff0000;">Grade D</span></p>
<ul>
    <li>n/a</li>
</ul>
<p><span style="color: #ff0000;">Grade E</span></p>
<ul>
    <li>n/a</li>
</ul>
<p><span style="color: #ff0000;">Grade F</span></p>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bnpparibasfortis.be&amp;s=193.58.4.82" target="_blank" rel="noopener noreferrer">BNP Paribas Fortis</a>: vulnerable to POODLE attack, SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.bpostbank.be" target="_blank" rel="noopener noreferrer">bpost bank</a>: vulnerable to POODLE attack, SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=www.ing.be&amp;s=193.58.129.66&amp;hideResults=on" target="_blank" rel="noopener noreferrer">ING</a>: vulnerable to POODLE attack, SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=argenta.be" target="_blank" rel="noopener noreferrer">Argenta</a>: <span style="color: #33cccc;">no SSL on main page.</span>
<ul>
    <li><a href="https://www.ssllabs.com/ssltest/analyze.html?d=internetbanking.argenta.be" target="_blank" rel="noopener noreferrer">internet banking</a>: vulnerable to POODLE attack, SSL3 (insecure), weak signature (SHA1), RC4 (insecure), no Forward Secrecy.</li>
</ul>
</li>
</ul>
<p>Information about SSL Labs grading can be found <a href="https://web.archive.org/web/20170119124000/https://www.ssllabs.com/downloads/SSL_Server_Rating_Guide.pdf" target="_blank" rel="noopener noreferrer">here</a>. Grade A (+) being the best possible ranking, and F the worst.</p>
<p><span style="text-decoration: underline;">PS</span>: none of the domains support IPv6 (while expected, it would have been nice &ndash; Belgium has the <a href="https://www.google.com/intl/en/ipv6/statistics.html#tab=per-country-ipv6-adoption" target="_blank" rel="noopener noreferrer">highest IPv6 adoption rate</a> for end users, but almost no IPv6 websites or businesses).</p>
]]></content:encoded>
      <category>linux</category><category>misc</category><category>networking</category><category>software</category><category>windows</category><category>www</category>
      <category>belgium</category><category>ssl</category>
    </item>
    
    <item>
      <title>Theme</title>
      <link>https://yeri.be/theme/</link>
      <pubDate>Sat, 27 Dec 2014 06:47:34 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/theme/</guid>
      <description>&lt;p&gt;I had the &lt;a href=&#34;https://yeri.be/theme-blog-and-stuff&#34;&gt;same theme&lt;/a&gt; for over four years. I&amp;rsquo;ve made quite a few custom css and PHP edits myself, and it had been &lt;a href=&#34;http://azeemazeez.com/blogs/white-as-milk/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;outdated for ages&lt;/a&gt;&amp;hellip; But it served me well.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2014/12/theme-2011.png&#34;&gt;&lt;img class=&#34;alignnone size-full wp-image-6554&#34; src=&#34;https://static.yeri.be/2014/12/theme-2011.png&#34; alt=&#34;theme-2011&#34; width=&#34;1817&#34; height=&#34;1192&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;However, it&amp;rsquo;s now time for &lt;a href=&#34;https://wordpress.org/themes/opal&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;something new&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2014/12/theme-2015.png&#34;&gt;&lt;img class=&#34;alignnone size-full wp-image-6542&#34; src=&#34;https://static.yeri.be/2014/12/theme-2015.png&#34; alt=&#34;theme-2015&#34; width=&#34;1411&#34; height=&#34;1174&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;As always, as minimalistic as possible.&lt;/p&gt;&#xA;&lt;p&gt;On a side note, this blog has been moved from &lt;a href=&#34;https://yeri.be/blog-changes&#34;&gt;vm1&lt;/a&gt; (and &lt;a href=&#34;https://yeri.be/one-2&#34;&gt;one&lt;/a&gt; before that) a virtual machine running on a dual Xeon 3070 (2.66Ghz) at &lt;a href=&#34;https://yeri.be/four&#34;&gt;Databarn&lt;/a&gt; to &lt;a href=&#34;http://www.wowwiki.com/Akama&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Akama&lt;/a&gt;, a VM on an 8 core Xeon E3-1230 (3.2Ghz) at &lt;a href=&#34;https://www.facebook.com/photo.php?fbid=10203828300326081&amp;amp;set=pb.1177197811.-2207520000.1419638163.&amp;amp;type=3&amp;amp;theater&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Leaseweb&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I had the <a href="https://yeri.be/theme-blog-and-stuff">same theme</a> for over four years. I&rsquo;ve made quite a few custom css and PHP edits myself, and it had been <a href="http://azeemazeez.com/blogs/white-as-milk/" target="_blank" rel="noopener noreferrer">outdated for ages</a>&hellip; But it served me well.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2014/12/theme-2011.png"><img class="alignnone size-full wp-image-6554" src="https://static.yeri.be/2014/12/theme-2011.png" alt="theme-2011" width="1817" height="1192" /></a></p>
<p>However, it&rsquo;s now time for <a href="https://wordpress.org/themes/opal" target="_blank" rel="noopener noreferrer">something new</a>.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2014/12/theme-2015.png"><img class="alignnone size-full wp-image-6542" src="https://static.yeri.be/2014/12/theme-2015.png" alt="theme-2015" width="1411" height="1174" /></a></p>
<p>As always, as minimalistic as possible.</p>
<p>On a side note, this blog has been moved from <a href="https://yeri.be/blog-changes">vm1</a> (and <a href="https://yeri.be/one-2">one</a> before that) a virtual machine running on a dual Xeon 3070 (2.66Ghz) at <a href="https://yeri.be/four">Databarn</a> to <a href="http://www.wowwiki.com/Akama" target="_blank" rel="noopener noreferrer">Akama</a>, a VM on an 8 core Xeon E3-1230 (3.2Ghz) at <a href="https://www.facebook.com/photo.php?fbid=10203828300326081&amp;set=pb.1177197811.-2207520000.1419638163.&amp;type=3&amp;theater" target="_blank" rel="noopener noreferrer">Leaseweb</a>.</p>
<p>I&rsquo;ve also correctly repaired IPv6 on this blog. Apparently nginx never and/or stopped correctly listening to IPv6 (suddenly my Android devices displayed errors on this page, Chrome &amp; Firefox on OS X seemed to fall back to IPv4 instantly&hellip; Not sure how long it was broken, but it&rsquo;s back).</p>
<p>Note to self:</p>
<pre>listen          yeri.be:443;
server_name     yeri.be;</pre>
<p>Does not work with IPv6, it has to be</p>
<pre>listen          [::]:443;
server_name     yeri.be;</pre>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>networking</category><category>software</category><category>virtualisation</category><category>www</category>
      <category>tuinslak</category><category>blog</category><category>nginx</category><category>rootspirit</category>
    </item>
    
    <item>
      <title>@Flightradar24 Ansible playbook</title>
      <link>https://yeri.be/flightradar24-ansible-playbook/</link>
      <pubDate>Wed, 03 Dec 2014 10:53:25 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/flightradar24-ansible-playbook/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s my very &lt;a href=&#34;https://github.com/Tuinslak/anisble-flightradar24&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;simple Ansible playbook&lt;/a&gt; for &lt;a href=&#34;https://yeri.be/raspberry-pi-flightradar24&#34;&gt;Flightradar24&lt;/a&gt; nodes.&lt;/p&gt;&#xA;&lt;p&gt;While I run it on &lt;a href=&#34;https://web.archive.org/web/20221211143434/https://genesi.company/products/efika&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;EfikaMX&lt;/a&gt;, it should work on most Debian based devices. Just be sure to modify the FR24 software &lt;a href=&#34;https://github.com/Tuinslak/anisble-flightradar24/blob/master/site.yml&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;download URL&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This Ansible playbook is untested on its own. It comes out of a way bigger (private) Ansible playbook, and I kind of just copy pasted this part, as others might benefit from it.&lt;/p&gt;&#xA;&lt;p&gt;After running Ansible, you should reboot for driver blacklisting to work in cases it&amp;rsquo;s needed on your device (it is on RPis). And be sure to edit &lt;code&gt;/root/flightradar24.sh&lt;/code&gt; with your key.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Here&rsquo;s my very <a href="https://github.com/Tuinslak/anisble-flightradar24" target="_blank" rel="noopener">simple Ansible playbook</a> for <a href="https://yeri.be/raspberry-pi-flightradar24">Flightradar24</a> nodes.</p>
<p>While I run it on <a href="https://web.archive.org/web/20221211143434/https://genesi.company/products/efika" target="_blank" rel="noopener">EfikaMX</a>, it should work on most Debian based devices. Just be sure to modify the FR24 software <a href="https://github.com/Tuinslak/anisble-flightradar24/blob/master/site.yml" target="_blank" rel="noopener">download URL</a>.</p>
<p>This Ansible playbook is untested on its own. It comes out of a way bigger (private) Ansible playbook, and I kind of just copy pasted this part, as others might benefit from it.</p>
<p>After running Ansible, you should reboot for driver blacklisting to work in cases it&rsquo;s needed on your device (it is on RPis). And be sure to edit <code>/root/flightradar24.sh</code> with your key.</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>virtualisation</category>
      <category>ansible</category><category>flightradar24</category>
    </item>
    
    <item>
      <title>Raspberry Pi &amp; @Flightradar24</title>
      <link>https://yeri.be/raspberry-pi-flightradar24/</link>
      <pubDate>Sun, 20 Jul 2014 14:28:26 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/raspberry-pi-flightradar24/</guid>
      <description>&lt;p&gt;In a couple of lines: how to get FR24 (+ dump1090) to work on your Raspberry Pi.&lt;/p&gt;&#xA;&lt;p&gt;Be sure to have the right hardware: &lt;a href=&#34;http://www.flightradar24.com/dvbt-stick&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;flightradar24.com/dvbt-stick&lt;/a&gt; and &amp;hellip; obviously &amp;hellip; a &lt;a href=&#34;http://benl.rs-online.com/web/p/processor-microcontroller-development-kits/8111284/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RPi&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I got a &lt;a href=&#34;http://www.amazon.co.uk/gp/product/B00JQX5HT6/ref=oh_details_o00_s00_i00?ie=UTF8&amp;amp;psc=1&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;NooElec from Amazon&lt;/a&gt; because I didn&amp;rsquo;t have the patience to wait for something (that might not work) from &lt;a href=&#34;http://www.aliexpress.com/wholesale?SearchText=RTL2832U%2FR820T&amp;amp;catId=0&amp;amp;initiative_id=SB_20140719070441&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;AliExpress&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As root:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;apt-get update &amp;amp;&amp;amp; apt-get install cmake gcc pkg-config libusb-1.0 make git-core libc-dev&#xA;git clone git://git.osmocom.org/rtl-sdr.git&#xA;cd rtl-sdr&#xA;mkdir build&#xA;cd build&#xA;cmake ../ -DINSTALL_UDEV_RULES=ON&#xA;make &amp;amp;&amp;amp; make install&#xA;ldconfig&#xA;cd ../..&lt;/code&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>In a couple of lines: how to get FR24 (+ dump1090) to work on your Raspberry Pi.</p>
<p>Be sure to have the right hardware: <a href="http://www.flightradar24.com/dvbt-stick" target="_blank" rel="noopener noreferrer">flightradar24.com/dvbt-stick</a> and &hellip; obviously &hellip; a <a href="http://benl.rs-online.com/web/p/processor-microcontroller-development-kits/8111284/" target="_blank" rel="noopener noreferrer">RPi</a>.</p>
<p>I got a <a href="http://www.amazon.co.uk/gp/product/B00JQX5HT6/ref=oh_details_o00_s00_i00?ie=UTF8&amp;psc=1" target="_blank" rel="noopener noreferrer">NooElec from Amazon</a> because I didn&rsquo;t have the patience to wait for something (that might not work) from <a href="http://www.aliexpress.com/wholesale?SearchText=RTL2832U%2FR820T&amp;catId=0&amp;initiative_id=SB_20140719070441" target="_blank" rel="noopener noreferrer">AliExpress</a>.</p>
<p>As root:</p>
<p><code>apt-get update &amp;&amp; apt-get install cmake gcc pkg-config libusb-1.0 make git-core libc-dev
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make &amp;&amp; make install
ldconfig
cd ../..</code></p>
<p>And be sure to Blacklist the normal driver:</p>
<p><code>echo &ldquo;blacklist dvb_usb_rtl28xxu&rdquo; &gt; /etc/modprobe.d/dvb-t.conf</code></p>
<p>And at this point you should <code>reboot</code>.</p>
<p>As regular user (<code>screen</code> part is no longer needed as the new FR24 program will automatically launch and execute it for you):</p>
<p><code>git clone <a href="https://github.com/MalcolmRobb/dump1090.git" target="_blank" rel="noopener noreferrer">https://github.com/MalcolmRobb/dump1090.git</a>
cd dump1090
make
ln -s dump1090 /bin/
<strike>screen -dmS dump ./dump1090 &ndash;interactive &ndash;net &ndash;net-beast &ndash;net-ro-port 31001 &ndash;net-http-port 8888</strike>
cd ..</code></p>
<p>Now get the FR24 software. In case you get a 404, <span style="text-decoration: line-through;">get the latest version <a href="http://forum.flightradar24.com/threads/4270-Linux-feeder-software-for-Flightradar24" target="_blank" rel="noopener noreferrer">here</a></span> new Raspberry Pi version is <a href="http://feed.flightradar24.com/raspberry-pi/" target="_blank" rel="noopener noreferrer">here</a>, Linux (AMD64 &amp; ARMv7) is <a href="http://feed.flightradar24.com/linux/" target="_blank" rel="noopener noreferrer">here</a>.
You can get your long &amp; lat <a href="https://web.archive.org/web/20211117100953/https://www.latlong.net/" target="_blank" rel="noopener noreferrer">here</a>.
Follow the updated howto on the page. The underlying code is no longer relevant.</p>
<p><code>wget <a href="https://web.archive.org/web/20141002002531/https://dl.dropboxusercontent.com/u/66906/fr24feed_arm-rpi_242.tgz" target="_blank" rel="noopener noreferrer">https://web.archive.org/web/20141002002531/https://dl.dropboxusercontent.com/u/66906/fr24feed_arm-rpi_242.tgz</a>
tar xvzf fr24feed*
./fr24feed_arm-rpi_242 &ndash;signup</code></p>
<p>I&rsquo;ll ask a couple of questions (answer them correctly):</p>
<p><code>Step 1/5 - Enter Latitude (DD.DDDD)
$:50.927358
Step 2/5 - Enter Longitude (DD.DDDD)
$:4.399928
Step 3/5 - Enter your email address (<a href="mailto:username@domain.tld">username@domain.tld</a>)
$:yeri@tiete.be
Step 4/5 - Enter your the hostname of the data feed (leave empty for localhost)
$:
Step 5/5 - Enter your the port number of the data feed (leave empty for 30003)
$:</p>
<p>Validating form data&hellip;OK</p>
<p>The closest airport found is &lsquo;Brussels Airport (ICAO:EBBR IATA:BRU)&rsquo; near Brussels.</p>
<p>Latitude: 50.901379
Longitude: 4.484444
Country: Belgium</p>
<p>Flightradar24 may, if needed, use your email address to contact you regarding your data feed.</p>
<p>Would you like to continue using these settings?</p>
<p>(yes/no)$:yes</p>
<p>[&hellip;].</code></p>
<p>It will give you a key (and e-mail it to you) after a couple of minutes. Keep this key, as it&rsquo;s important.</p>
<p>That&rsquo;s it. As dump1090 is already running, all you have to do is start flightradar and you&rsquo;re good to go.</p>
<p>This is the script I use to start it all (in screen, allowing me to check it). As normal user:</p>
<p><code>nano -w flightradar.sh</code></p>
<p>And copy paste the following (+ edit the variables):</p>
<p><code>#!/bin/bash
KEY=YOUR-KEY-EDIT-THIS
DIR=/home/PATH-TO-YOU-SCRIPT</p>
<h3>pro script</h3>
<p>cd $DIR</p>
<h1>Start dump1090</h1>
<p>cd dump1090</p>
<h1>I run on port 8888 because 8080 is taken on my rasp</h1>
<h3>THIS IS NO LONGER NEEDED</h3>
<p>#screen -dmS dump ./dump1090 &ndash;interactive &ndash;net &ndash;net-beast &ndash;net-ro-port 31001 &ndash;net-http-port 8888
cd ..</p>
<h1>Start Flightradar24</h1>
<p>screen -dmS flightradar24 ./fr24feed_arm-rpi_242 &ndash;fr24key=$KEY</code></p>
<p>And run: <code>chmod +x flightradar.sh</code></p>
<p>To start the script, simply run <code>./flightradar.sh</code>, and check what&rsquo;s happening with <code>screen -r dump</code> or <code>screen -r flightradar</code>.</p>
<p>To auto start this script at boot time, I edit rc.local as root:</p>
<p><code>nano -w /etc/rc.local</code></p>
<p>And add the following at the end but <strong>BEFORE</strong> exit 0:</p>
<p><code>su yeri -c /home/yeri/flightradar.sh</code></p>
<p>Obviously, modify the path and the user it should run under (in this case as &ldquo;yeri&rdquo;).</p>
<p>PS: Be sure to signup again every time you move your Raspberry around (the coords seem to be hardcoded in the key).
PPS: You can get Premium access here now: <a href="https://www.flightradar24.com/premium/" target="_blank" rel="noopener noreferrer">flightradar24.com/premium</a> (and check fancy graphs about your &ldquo;radar&rdquo;).</p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>networking</category><category>software</category>
      <category>dvb-t</category><category>flightradar24</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>Wheezy Xen Dom0 &amp; RAM</title>
      <link>https://yeri.be/wheezy-xen-dom0-ram/</link>
      <pubDate>Sat, 14 Jun 2014 18:43:03 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/wheezy-xen-dom0-ram/</guid>
      <description>&lt;p&gt;Note to self: &amp;lt;1Gb of RAM on a Dom0 Wheezy server causes kernel panics.&lt;/p&gt;&#xA;&lt;p&gt;Using 2Gb of RAM seems to do the trick.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Note to self: &lt;1Gb of RAM on a Dom0 Wheezy server causes kernel panics.</p>
<p>Using 2Gb of RAM seems to do the trick.</p>
]]></content:encoded>
      <category>errors</category><category>hardware</category><category>linux</category><category>software</category><category>virtualisation</category>
      <category>debian</category><category>xen</category>
    </item>
    
    <item>
      <title>Deleting big files from your git history</title>
      <link>https://yeri.be/deleting-big-files-from-your-git-history/</link>
      <pubDate>Sun, 08 Jun 2014 18:08:14 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/deleting-big-files-from-your-git-history/</guid>
      <description>&lt;p&gt;I committed a couple of big binary files, which eventually really slowed down Git.&lt;/p&gt;&#xA;&lt;p&gt;Unchanged: This is how you find them, and delete them:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Script&lt;/a&gt; (will show top 10 biggest files):&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-code&#34;&gt;&lt;code&gt;#!/bin/bash&#xA;#set-x&#xA;# Shows you the largest objects in your repo&#39;s pack file.&#xA;# Written for osx.&#xA;# @see http://bit.ly/UmpwkV&#xA;&#xA;# @author Antony Stubbs&#xA;# set the internal field separator to line break,&#xA;# so that we can iterate easily over the verify-pack output&#xA;&#xA;IFS=$&#39;\n&#39;;&#xA;# list all objects including their size, sort by size, take top 10&#xA;objects=`git verify-pack -v .git/objects/pack/pack-*.idx | \&#xA;grep -v chain | sort -k3nr | head`&#xA;&#xA;echo &#34;All sizes are in kB&#39;s. The pack column is the size of the object, \&#xA;compressed, inside the pack file.&#34;&#xA;&#xA;output=&#34;size,pack,SHA,location&#34;&#xA;for y in $objects&#xA;do&#xA;&#x9;# extract the size in bytes&#xA;&#x9;size=$((`echo $y | cut -f 5 -d &#39; &#39;`/1024))&#xA;&#x9;# extract the compressed size in bytes&#xA;&#x9;compressedSize=$((`echo $y | cut -f 6 -d &#39; &#39;`/1024))&#xA;&#x9;# extract the SHA&#xA;&#x9;sha=`echo $y | cut -f 1 -d &#39; &#39;`&#xA;&#x9;# find the objects location in the repository tree&#xA;&#x9;other=`git rev-list --all --objects | grep $sha`&#xA;&#x9;#lineBreak=° echo e &#34;\n&#34;*&#xA;&#x9;output=&#34;${output}\n${size},${compressedSize},${other}&#34;&#xA;done&#xA;echo -e $output | column -t -s &#39;, &#39;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;And &lt;a href=&#34;https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository&#34; target=&#34;_blank&#34; rel=&#34;noreferrer noopener&#34;&gt;then&lt;/a&gt;:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I committed a couple of big binary files, which eventually really slowed down Git.</p>
<p>Unchanged: This is how you find them, and delete them:</p>
<p><a href="http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/" target="_blank" rel="noopener">Script</a> (will show top 10 biggest files):</p>
<pre class="wp-block-code"><code>#!/bin/bash
#set-x
# Shows you the largest objects in your repo's pack file.
# Written for osx.
# @see http://bit.ly/UmpwkV

# @author Antony Stubbs
# set the internal field separator to line break,
# so that we can iterate easily over the verify-pack output

IFS=$'\n';
# list all objects including their size, sort by size, take top 10
objects=`git verify-pack -v .git/objects/pack/pack-*.idx | \
grep -v chain | sort -k3nr | head`

echo "All sizes are in kB's. The pack column is the size of the object, \
compressed, inside the pack file."

output="size,pack,SHA,location"
for y in $objects
do
	# extract the size in bytes
	size=$((`echo $y | cut -f 5 -d ' '`/1024))
	# extract the compressed size in bytes
	compressedSize=$((`echo $y | cut -f 6 -d ' '`/1024))
	# extract the SHA
	sha=`echo $y | cut -f 1 -d ' '`
	# find the objects location in the repository tree
	other=`git rev-list --all --objects | grep $sha`
	#lineBreak=° echo e "\n"*
	output="${output}\n${size},${compressedSize},${other}"
done
echo -e $output | column -t -s ', '</code></pre>
<p>And <a href="https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository" target="_blank" rel="noreferrer noopener">then</a>:</p>
<pre class="wp-block-code"><code>git filter-branch-force--index-filter \
'git rm-cached-ignore-unmatch $some/file/you/dont/want' \
--prune-empty --tag-name-filter cat -- --all
git push origin master --force</code></pre>
<p>Elsewhere, you'll need to <code>rebase</code>:</p>
<pre class="wp-block-code"><code>git pull--rebase</code></pre>
]]></content:encoded>
      <category>linux</category><category>software</category>
      <category>git</category><category>linebreak</category><category>set</category>
    </item>
    
    <item>
      <title>Auto turn on a Linux Mac Mini after a power outage</title>
      <link>https://yeri.be/auto-turn-on-a-linux-mac-mini-after-power-outage/</link>
      <pubDate>Sat, 26 Apr 2014 14:26:38 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/auto-turn-on-a-linux-mac-mini-after-power-outage/</guid>
      <description>&lt;p&gt;Mainly a note for myself, in case I need it again in the future.&lt;/p&gt;&#xA;&lt;p&gt;And the &lt;a href=&#34;http://raamdev.com/2007/recovering-from-power-outages-with-a-linux-mac-mini/&#34; target=&#34;_blank&#34;&gt;original blog post is here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This will turn on a Mac Mini (at least PowerPC arch, not sure about Intel), running Linux, the moment it has power again.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;echo &amp;lsquo;server_mode=1&amp;rsquo; &amp;gt; /proc/pmu/options&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;span style=&#34;text-decoration: underline;&#34;&gt;Edit &amp;amp; Note&lt;/span&gt;: This option seems to be reset after every boot to. So add it to &lt;code&gt;rc.local&lt;/code&gt; or something.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Mainly a note for myself, in case I need it again in the future.</p>
<p>And the <a href="http://raamdev.com/2007/recovering-from-power-outages-with-a-linux-mac-mini/" target="_blank">original blog post is here</a>.</p>
<p>This will turn on a Mac Mini (at least PowerPC arch, not sure about Intel), running Linux, the moment it has power again.</p>
<p><code>echo &lsquo;server_mode=1&rsquo; &gt; /proc/pmu/options</code></p>
<p><span style="text-decoration: underline;">Edit &amp; Note</span>: This option seems to be reset after every boot to. So add it to <code>rc.local</code> or something.</p>
]]></content:encoded>
      <category>apple</category><category>hardware</category><category>linux</category><category>software</category>
      <category>power</category>
    </item>
    
    <item>
      <title>Now</title>
      <link>https://yeri.be/now/</link>
      <pubDate>Thu, 27 Feb 2014 09:06:03 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/now/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2014/01/tumblr_mzgia3VpDM1qa4p8ho1_500.jpg&#34;&gt;&lt;img class=&#34;alignnone size-full wp-image-5844&#34; alt=&#34;tumblr_mzgia3VpDM1qa4p8ho1_500&#34; src=&#34;https://static.yeri.be/2014/01/tumblr_mzgia3VpDM1qa4p8ho1_500.jpg&#34; width=&#34;500&#34; height=&#34;500&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;(&lt;a href=&#34;http://cinismoilustrado.com/post/73428972348/globos-de-dialogo&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;em&gt;Source&lt;/em&gt;&lt;/a&gt;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><a href="https://static.yeri.be/2014/01/tumblr_mzgia3VpDM1qa4p8ho1_500.jpg"><img class="alignnone size-full wp-image-5844" alt="tumblr_mzgia3VpDM1qa4p8ho1_500" src="https://static.yeri.be/2014/01/tumblr_mzgia3VpDM1qa4p8ho1_500.jpg" width="500" height="500" /></a></p>
<p style="text-align: left;">(<a href="http://cinismoilustrado.com/post/73428972348/globos-de-dialogo" target="_blank" rel="noopener noreferrer"><em>Source</em></a>)</p>
]]></content:encoded>
      <category>apple</category><category>software</category>
      <category>iphone</category>
    </item>
    
    <item>
      <title>Facebook Fraud</title>
      <link>https://yeri.be/facebook-fraud/</link>
      <pubDate>Tue, 11 Feb 2014 10:45:57 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/facebook-fraud/</guid>
      <description>&lt;iframe width=&#34;100%&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/oVfHeWTKjag?rel=0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;</description>
      <content:encoded><![CDATA[<iframe width="100%" height="315" src="https://www.youtube.com/embed/oVfHeWTKjag?rel=0" frameborder="0" allowfullscreen></iframe>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>facebook</category><category>youtube</category>
    </item>
    
    <item>
      <title>Munin &#43; Raspberry Pi &#43; temperature: updated</title>
      <link>https://yeri.be/munin-raspberry-pi-temperature-updated/</link>
      <pubDate>Sun, 09 Feb 2014 14:13:32 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/munin-raspberry-pi-temperature-updated/</guid>
      <description>&lt;p&gt;I got a mail in my inbox about a week ago from &lt;a href=&#34;https://web.archive.org/web/20130817065743/http://blog.glag.la/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Anthony&lt;/a&gt;, telling me how to improve my &lt;a href=&#34;https://yeri.be/munin-raspberry-pi-temperature&#34;&gt;Munin &amp;amp; temp&lt;/a&gt; script for a RPi:&lt;/p&gt;&#xA;&lt;blockquote&gt;Hi,&#xA;&lt;p&gt;I just read your (old) blog post about monitoring the temperature of the Raspberry Pi with munin[1].&lt;/p&gt;&#xA;&lt;p&gt;I had the exact same error as you did when I was trying to let munin do the job all by himself:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;temp.value VCHI initialization failed)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;It turns out the solution was quite easy: in&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I got a mail in my inbox about a week ago from <a href="https://web.archive.org/web/20130817065743/http://blog.glag.la/" target="_blank" rel="noopener noreferrer">Anthony</a>, telling me how to improve my <a href="https://yeri.be/munin-raspberry-pi-temperature">Munin &amp; temp</a> script for a RPi:</p>
<blockquote>Hi,
<p>I just read your (old) blog post about monitoring the temperature of the Raspberry Pi with munin[1].</p>
<p>I had the exact same error as you did when I was trying to let munin do the job all by himself:</p>
<blockquote>
<p>temp.value VCHI initialization failed)</p>
</blockquote>
<p>It turns out the solution was quite easy: in</p>
<p>/etc/munin/plugin-conf.d/munin-node</p>
<p>You simply need to tell munin that it needs to run as root for this specific plugin:</p>
<blockquote>
<p>[pisense_]</p>
</blockquote>
<blockquote>
<p>user root</p>
</blockquote>
<p>(the plugins also tracks clock speeds and voltages but any other will work just fine as long as the &ldquo;user root&rdquo; is set in the munin-node plugin config file : [2]). Probably the easiest way to check if it&rsquo;s working is to use munin-run command before and after the change.</p>
<p>&ldquo;Demo&rdquo;: [3]</p>
<p>By the way, &ldquo;Connect different LANs over openVPN&rdquo; is pretty tempting, I always wondered what the performances would be like through a USB-to-ethernet adapter.</p>
<p>Have a nice one !</p>
<p>Apteno</p>
<p>[1] <a href="https://yeri.be/munin-raspberry-pi-temperature"><a href="https://yeri.be/munin-raspberry-pi-temperature">https://yeri.be/munin-raspberry-pi-temperature</a></a>
[2] <a href="https://github.com/perception101/pisense/blob/master/pisense_"><a href="https://github.com/perception101/pisense/blob/master/pisense" target="_blank" rel="noopener noreferrer">https://github.com/perception101/pisense/blob/master/pisense</a>_</a>
[3] <a href="http://ronon.jefter.com/jefter.com/adama.jefter.com/index.html#sensors"><a href="http://ronon.jefter.com/jefter.com/adama.jefter.com/index.html#sensors" target="_blank" rel="noopener noreferrer">http://ronon.jefter.com/jefter.com/adama.jefter.com/index.html#sensors</a></a></blockquote></p>
<p>And indeed, I knew it was a permission issue, but instead of running this script as root, I tried adding Munin to a group that was supposed to be able to run  <code>vcgencmd</code> (which didn&rsquo;t work out).</p>
<p>But, let&rsquo;s look at a simpler solution:</p>
<ol>
    <li>Go to <code>/etc/munin/plugins</code> and create a file <code>temp</code> with this content (and some indentation yourself):
<pre>#!/bin/sh
case $1 in
config)
<span style="line-height: 1.5em;">cat &lt;&lt;'EOM'
</span><span style="line-height: 1.5em;">graph_category system
</span><span style="line-height: 1.5em;">graph_title Temperature
</span>graph_vlabel temp
<span style="line-height: 1.5em;">temp.label Celsius
</span><span style="line-height: 1.5em;">EOM
</span>exit 0;;
esac
echo -n "temp.value "
/opt/vc/bin/vcgencmd measure_temp | cut -d "=" -f2 | cut -d "'" -f1</pre>
</li>
    <li>As you noticed, this doesn't require any more scripts to run from cron (and thus, in case you used my <a href="https://yeri.be/munin-raspberry-pi-temperature">previous script</a>, remove it from cron)</li>
    <li>
<pre>chmod +x temp</pre>
</li>
    <li>Make sure it runs as root; in <code>/etc/munin/plugin-conf.d</code> create the file <code>temp.conf</code> with this content:
<pre>[temp]
user root</pre>
</li>
    <li><span style="line-height: 1.5em;">Test it:</span>
<pre><span style="line-height: 1.5em;"># munin-run temp
</span><span style="line-height: 1.5em;">temp.value 59.5</span></pre>
</li>
</ol>
<p>Tadaaaa. Simpler.</p>
<p>Thanks Anthony :)</p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category>
      <category>munin</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>Mac OS X Mavericks &#43; VLC top bar</title>
      <link>https://yeri.be/mac-os-x-mavericks-vlc-top-bar/</link>
      <pubDate>Tue, 21 Jan 2014 09:28:05 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mac-os-x-mavericks-vlc-top-bar/</guid>
      <description>&lt;p style=&#34;text-align: left;&#34;&gt;Mavericks, and its new &#34;multi display support&#34; adds a grey-ish bar to the top of VLC when watching anything full screen.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2014/01/VLC-fullscreen-header.png&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-5805&#34; alt=&#34;VLC-fullscreen-header&#34; src=&#34;https://static.yeri.be/2014/01/VLC-fullscreen-header-300x168.png&#34; width=&#34;300&#34; height=&#34;168&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;I never found a way to get rid of it, and it has annoyed me ever since. Until yesterday...&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;This is how to get rid of it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&#x9;&lt;li&gt;play movie&lt;/li&gt;&#xA;&#x9;&lt;li&gt;drag to 2nd screen&lt;/li&gt;&#xA;&#x9;&lt;li&gt;click Video &amp;gt; Float on Top&lt;/li&gt;&#xA;&#x9;&lt;li&gt;go full screen (cmd+F or Video &amp;gt; Fullscreen)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2014/01/float-that-shit.png&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-5809&#34; alt=&#34;float-that-shit&#34; src=&#34;https://static.yeri.be/2014/01/float-that-shit-221x300.png&#34; width=&#34;221&#34; height=&#34;300&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: left;">Mavericks, and its new "multi display support" adds a grey-ish bar to the top of VLC when watching anything full screen.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2014/01/VLC-fullscreen-header.png"><img class="alignnone size-medium wp-image-5805" alt="VLC-fullscreen-header" src="https://static.yeri.be/2014/01/VLC-fullscreen-header-300x168.png" width="300" height="168" /></a></p>
<p style="text-align: left;">I never found a way to get rid of it, and it has annoyed me ever since. Until yesterday...</p>
<p style="text-align: left;">This is how to get rid of it:</p>
<ol>
	<li>play movie</li>
	<li>drag to 2nd screen</li>
	<li>click Video &gt; Float on Top</li>
	<li>go full screen (cmd+F or Video &gt; Fullscreen)</li>
</ol>
<p style="text-align: center;"><a href="https://static.yeri.be/2014/01/float-that-shit.png"><img class="alignnone size-medium wp-image-5809" alt="float-that-shit" src="https://static.yeri.be/2014/01/float-that-shit-221x300.png" width="221" height="300" /></a></p>
<p style="text-align: left;">Keep in mind, that once you get out of full screen, and get back in it, the bar will be back. Enabling and disabling the above mentioned option won't change it anymore. The only solution I've found was to quit VLC entirely, reopen it, go back the where the movie was, click the option, and go full screen...</p>
<p style="text-align: left;">plxthx for buggy releases.</p>
<p style="text-align: left;"><span style="text-decoration: underline;">Edit</span>: Today I am unable to apply my above mentioned 'fix'. I have however found another option under VLC preferences: "Interface &gt; Use the native fullscreen mode". Deselect that option, and it seems to be working.</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>mac os x</category><category>vlc</category>
    </item>
    
    <item>
      <title>Mac OS X: Mavericks causes CPU fan to run at full speed</title>
      <link>https://yeri.be/mac-os-x-mavericks-causes-cpu-fan-to-run-at-full-speed/</link>
      <pubDate>Sat, 26 Oct 2013 10:06:30 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mac-os-x-mavericks-causes-cpu-fan-to-run-at-full-speed/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve noticed that, after upgrading from Mountain Lion to Mavericks on my borrowed &lt;a href=&#34;https://yeri.be/macbook-air-vs-macbook-pro&#34;&gt;MBA&lt;/a&gt;, my fan was running a lot&amp;hellip; and loudly. As in, moving my mouse caused the fan to run at full speed.&lt;/p&gt;&#xA;&lt;p&gt;I tried rebooting (and unchecking &amp;ldquo;reopen apps at startup&amp;rdquo;), which helped for about 5 minutes.&lt;/p&gt;&#xA;&lt;p&gt;I tried closing down apps (which helped; especially keeping Mail closed helped a lot). But even watching a YouTube or playing Music on Google Music caused the CPU fan to start spinning way louder than before.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve noticed that, after upgrading from Mountain Lion to Mavericks on my borrowed <a href="https://yeri.be/macbook-air-vs-macbook-pro">MBA</a>, my fan was running a lot&hellip; and loudly. As in, moving my mouse caused the fan to run at full speed.</p>
<p>I tried rebooting (and unchecking &ldquo;reopen apps at startup&rdquo;), which helped for about 5 minutes.</p>
<p>I tried closing down apps (which helped; especially keeping Mail closed helped a lot). But even watching a YouTube or playing Music on Google Music caused the CPU fan to start spinning way louder than before.</p>
<p>It quickly came to a point it started driving my crazy and I had a really loud machine which was also sluggish and laggy at some random points (=&gt; not sure if it&rsquo;s related, but I haven&rsquo;t had it since).</p>
<p>The thing I tried was a <a href="http://support.apple.com/kb/HT3964" target="_blank">SMC reset</a>, and that did the trick. Since then I haven&rsquo;t heard the fan on normal load anymore.</p>
<p>Do this (on an Air):</p>
<ol>
	<li>Turn off the Mac</li>
	<li>Be sure it's connected to the Magsafe</li>
	<li>Hit left shift + ctrl + alt (option) + power (like just one second or something apparently)</li>
	<li>release the keys</li>
	<li>and boot normally (hit power button)</li>
	<li>that should be it</li>
</ol>
More info on a SMC reset is <a href="http://support.apple.com/kb/HT3964" target="_blank">here</a>.
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>cpu</category><category>fan</category><category>mavericks</category>
    </item>
    
    <item>
      <title>Java heist</title>
      <link>https://yeri.be/java-heist/</link>
      <pubDate>Mon, 21 Oct 2013 10:26:30 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/java-heist/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;100%&#34; height=&#34;360&#34; src=&#34;https://www.youtube.com/embed/HXvm76e2X1Q?rel=0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe width="100%" height="360" src="https://www.youtube.com/embed/HXvm76e2X1Q?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
      <category>software</category>
      <category>java</category><category>youtube</category>
    </item>
    
    <item>
      <title>Powerdns no answer on A records and others</title>
      <link>https://yeri.be/powerdns-no-answer-on-a-records/</link>
      <pubDate>Fri, 04 Oct 2013 20:10:09 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/powerdns-no-answer-on-a-records/</guid>
      <description>&lt;p&gt;Observed:&lt;/p&gt;&#xA;&lt;pre&gt;mother ~ # dig mother.titify.com&#xA;&#xA;; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.8.4-rpz2+rl005.12-P1 &amp;lt;&amp;lt;&amp;gt;&amp;gt; mother.titify.com&#xA;;; global options: +cmd&#xA;;; Got answer:&#xA;;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 12227&#xA;;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0&#xA;;; WARNING: recursion requested but not available&#xA;&#xA;;; QUESTION SECTION:&#xA;;mother.titify.com. IN A&#xA;&#xA;;; Query time: 1 msec&#xA;;; SERVER: 127.0.0.1#53(127.0.0.1)&#xA;;; WHEN: Sat Sep 28 18:08:19 2013&#xA;;; MSG SIZE rcvd: 35&lt;/pre&gt;&#xA;&lt;p&gt;As you can see, there is a QUESTION section, but no ANSWER. This is an example with a CNAME:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Observed:</p>
<pre>mother ~ # dig mother.titify.com

; &lt;&lt;&gt;&gt; DiG 9.8.4-rpz2+rl005.12-P1 &lt;&lt;&gt;&gt; mother.titify.com
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 12227
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mother.titify.com. IN A

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Sep 28 18:08:19 2013
;; MSG SIZE rcvd: 35</pre>
<p>As you can see, there is a QUESTION section, but no ANSWER. This is an example with a CNAME:</p>
<pre>airgul ~ $ dig netly.io

; &lt;&lt;&gt;&gt; DiG 9.8.5-P1 &lt;&lt;&gt;&gt; netly.io
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 2513
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;netly.io. IN A

;; ANSWER SECTION:
netly.io. 21600 IN CNAME mother.netly.io.
mother.netly.io. 21600 IN CNAME mother.titify.com.

;; Query time: 277 msec
;; SERVER: 10.60.111.1#53(10.60.111.1)
;; WHEN: Sat Sep 28 20:06:00 CEST 2013
;; MSG SIZE rcvd: 78</pre>
<p>Solution:</p>
<pre>mother # /etc/init.d/pdns stop
mother # /etc/init.d/pdns monitor</pre>
<p>Will probably give an error message such as:</p>
<pre>Sep 28 18:08:02 Should not get here (ns1.titify.com|1): 
please run pdnssec rectify-zone titify.com
Sep 28 18:08:02 Should not get here (ns2.titify.com|1): 
please run pdnssec rectify-zone titify.com
Sep 28 18:08:02 Should not get here (ns1.netly.io|1): 
please run pdnssec rectify-zone titify.com
Sep 28 18:08:02 Should not get here (ns2.netly.io|1): 
please run pdnssec rectify-zone titify.com
Sep 28 18:08:10 Should not get here (mother.titify.com|1): 
please run pdnssec rectify-zone titify.com
Sep 28 18:08:19 Should not get here (mother.titify.com|1): 
please run pdnssec rectify-zone titify.com</pre>
<p>Execute that command:</p>
<pre>pdnssec rectify-zone titify.com</pre>
<p>and it&rsquo;s magically fixed.</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>networking</category><category>software</category>
      <category>dns</category>
    </item>
    
    <item>
      <title>Hint of the day: run-parts and not executing files</title>
      <link>https://yeri.be/hint-of-the-day-run-parts-and-not-executing-files/</link>
      <pubDate>Sun, 29 Sep 2013 19:41:50 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/hint-of-the-day-run-parts-and-not-executing-files/</guid>
      <description>&lt;p&gt;If you have a rc.local looking like this:&lt;/p&gt;&#xA;&lt;pre&gt;/bin/run-parts /etc/rc.local.d&lt;/pre&gt;&#xA;&lt;p&gt;and files in /etc/rc.local.d looking like this&lt;/p&gt;&#xA;&lt;pre&gt;hostname.sh sshkeys.sh firstboot.sh&lt;/pre&gt;&#xA;&lt;p&gt;it&amp;rsquo;s not going to work.&lt;/p&gt;&#xA;&lt;p&gt;Why, you ask, after cursing and shouting for the past hour?&lt;/p&gt;&#xA;&lt;p&gt;because run-parts &lt;a href=&#34;https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022&#34; target=&#34;_blank&#34;&gt;ignores&lt;/a&gt; files with dots (&amp;quot;.&amp;quot;) and/or .sh files.&lt;/p&gt;&#xA;&lt;p&gt;Yes. True story.&lt;/p&gt;&#xA;&lt;p&gt;rename all the files to:&lt;/p&gt;&#xA;&lt;pre&gt;hostname sshkeys firstboot&lt;/pre&gt;&#xA;&lt;p&gt;and your problem will be solved (and of course chmod +x them).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>If you have a rc.local looking like this:</p>
<pre>/bin/run-parts /etc/rc.local.d</pre>
<p>and files in /etc/rc.local.d looking like this</p>
<pre>hostname.sh sshkeys.sh firstboot.sh</pre>
<p>it&rsquo;s not going to work.</p>
<p>Why, you ask, after cursing and shouting for the past hour?</p>
<p>because run-parts <a href="https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022" target="_blank">ignores</a> files with dots (&quot;.&quot;) and/or .sh files.</p>
<p>Yes. True story.</p>
<p>rename all the files to:</p>
<pre>hostname sshkeys firstboot</pre>
<p>and your problem will be solved (and of course chmod +x them).</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category><category>virtualisation</category>
      <category>cron</category>
    </item>
    
    <item>
      <title>Hint of the day: @digitalocean and not mounting sshfs at boot</title>
      <link>https://yeri.be/hint-of-the-day-digital-ocean-and-sshfs/</link>
      <pubDate>Fri, 27 Sep 2013 20:35:04 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/hint-of-the-day-digital-ocean-and-sshfs/</guid>
      <description>&lt;p&gt;In /etc/fstab, be sure to add the option:&lt;/p&gt;&#xA;&lt;pre&gt;_netdev&lt;/pre&gt;&#xA;&lt;p&gt;As it will attempt to start the network mounted sshfs before networking has been started.&lt;/p&gt;&#xA;&lt;p&gt;The entire line looks like this:&lt;/p&gt;&#xA;&lt;pre&gt;user@host:/some/dir /local/path fuse.sshfs defaults,idmap=user,_netdev  0 0&lt;/pre&gt;&#xA;&lt;p&gt;From the man pages:&lt;/p&gt;&#xA;&lt;p&gt;&lt;b&gt;_netdev&lt;/b&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;The filesystem resides on a device that requires network access (used to prevent the system from attempting to mount these filesystems until the network has been enabled on the system).&lt;/blockquote&gt;</description>
      <content:encoded><![CDATA[<p>In /etc/fstab, be sure to add the option:</p>
<pre>_netdev</pre>
<p>As it will attempt to start the network mounted sshfs before networking has been started.</p>
<p>The entire line looks like this:</p>
<pre>user@host:/some/dir /local/path fuse.sshfs defaults,idmap=user,_netdev  0 0</pre>
<p>From the man pages:</p>
<p><b>_netdev</b></p>
<blockquote>The filesystem resides on a device that requires network access (used to prevent the system from attempting to mount these filesystems until the network has been enabled on the system).</blockquote>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>virtualisation</category>
      <category>ssh</category>
    </item>
    
    <item>
      <title>GCHQ hacks Belgacom</title>
      <link>https://yeri.be/gchq-hacks-belgacom/</link>
      <pubDate>Sat, 21 Sep 2013 11:28:33 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/gchq-hacks-belgacom/</guid>
      <description>&lt;p&gt;And thus, &lt;a href=&#34;http://www.theregister.co.uk/2013/09/20/gchq_belgacom_hack_link/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;we can assume&lt;/a&gt;, they had (have?) access to a lot of European instances and personnel, both residing here in Belgium and roaming using BGC&amp;rsquo;s network.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://deredactie.be/cm/vrtnieuws/1.516538?text=belgacom&amp;amp;action=submit&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;And not a single fuck was giving&lt;/a&gt;. &lt;a href=&#34;https://static.yeri.be/2013/09/nofuck-lesoir.png&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Not one&lt;/a&gt;. &lt;a href=&#34;https://www.google.com/search?{google:acceptedSuggestion}oq=gc&amp;amp;{google:instantFieldTrialGroupParameter}sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=gchq+belgacom#q=gchq+belgacom+site:.be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Please remain calm&lt;/a&gt; and keep on &lt;a href=&#34;https://www.youtube.com/watch?v=8AOfbnGkuGc&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;hypnotoad&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;blockquote&gt;&lt;em&gt;If GCHQ was indeed the agency concerned then this investigation is unlikely to go anywhere and the most that can be expected is some sort of diplomatic complaint from Belgium to the UK, its EU and Nato partner.&lt;/em&gt;&lt;/blockquote&gt;</description>
      <content:encoded><![CDATA[<p>And thus, <a href="http://www.theregister.co.uk/2013/09/20/gchq_belgacom_hack_link/" target="_blank" rel="noopener noreferrer">we can assume</a>, they had (have?) access to a lot of European instances and personnel, both residing here in Belgium and roaming using BGC&rsquo;s network.</p>
<p><a href="http://deredactie.be/cm/vrtnieuws/1.516538?text=belgacom&amp;action=submit" target="_blank" rel="noopener noreferrer">And not a single fuck was giving</a>. <a href="https://static.yeri.be/2013/09/nofuck-lesoir.png" target="_blank" rel="noopener noreferrer">Not one</a>. <a href="https://www.google.com/search?{google:acceptedSuggestion}oq=gc&amp;{google:instantFieldTrialGroupParameter}sourceid=chrome&amp;ie=UTF-8&amp;q=gchq+belgacom#q=gchq+belgacom+site:.be" target="_blank" rel="noopener noreferrer">Please remain calm</a> and keep on <a href="https://www.youtube.com/watch?v=8AOfbnGkuGc" target="_blank" rel="noopener noreferrer">hypnotoad</a>.</p>
<blockquote><em>If GCHQ was indeed the agency concerned then this investigation is unlikely to go anywhere and the most that can be expected is some sort of diplomatic complaint from Belgium to the UK, its EU and Nato partner.</em></blockquote>
]]></content:encoded>
      <category>misc</category><category>networking</category><category>software</category>
      <category>belgacom</category><category>belgium</category><category>politics</category><category>uk</category><category>usa</category>
    </item>
    
    <item>
      <title>Raspberry Pi &#43; ad blocking &#43; nginx</title>
      <link>https://yeri.be/raspberry-pi-ad-blocking/</link>
      <pubDate>Thu, 19 Sep 2013 20:13:26 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/raspberry-pi-ad-blocking/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s &lt;a href=&#34;http://learn.adafruit.com/raspberry-pi-as-an-ad-blocking-access-point/install-software&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;this howto&lt;/a&gt; that explains how to set up the RPi as ad blocker.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve two RPi&amp;rsquo;s acting a router and was already running dnsmasq. I decided to give it a try. Note that this howto can actually be used on any DNS serving Linux server.&lt;/p&gt;&#xA;&lt;p&gt;First of all, don&amp;rsquo;t go with the pixelserv as it crashes after a few minutes.&lt;/p&gt;&#xA;&lt;p&gt;Apache is an option that worked fine. A general hint: if you&amp;rsquo;re already running Apache or whatever on port 80, just add a 2nd static IP and make Apache listen to that.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>There&rsquo;s <a href="http://learn.adafruit.com/raspberry-pi-as-an-ad-blocking-access-point/install-software" target="_blank" rel="noopener noreferrer">this howto</a> that explains how to set up the RPi as ad blocker.</p>
<p>I&rsquo;ve two RPi&rsquo;s acting a router and was already running dnsmasq. I decided to give it a try. Note that this howto can actually be used on any DNS serving Linux server.</p>
<p>First of all, don&rsquo;t go with the pixelserv as it crashes after a few minutes.</p>
<p>Apache is an option that worked fine. A general hint: if you&rsquo;re already running Apache or whatever on port 80, just add a 2nd static IP and make Apache listen to that.</p>
<p>For example (/etc/network/interfaces) &ndash; be sure it&rsquo;s in the same subnet:</p>
<pre>auto eth0:0
iface eth0:0 inet static
 address 10.100.200.254
 netmask 255.255.255.0
 broadcast 10.100.200.255</pre>
<p>10.100.200.254 is the Apache IP that just serves a HTTP 200 (or 204).</p>
<p>Here&rsquo;s the relevant config part (note the HTTP 204 code, more info on that later):</p>
<pre>&lt;VirtualHost adblock:80&gt;
 ServerAdmin webmaster@domain.net
 DocumentRoot /var/www
 &lt;Directory /&gt;
 Options FollowSymLinks
 AllowOverride All
 &lt;/Directory&gt;
 &lt;Directory /var/www/&gt;
 Options Indexes FollowSymLinks MultiViews
 AllowOverride None
 Order allow,deny
 allow from all
 RewriteEngine on
 RedirectMatch 204 (.*)$
 ErrorDocument 204 " "
 &lt;/Directory&gt;

ErrorLog ${APACHE_LOG_DIR}/error.log
 LogLevel warn
 CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/VirtualHost&gt;</pre>
<p>And edit /etc/hosts to add &ldquo;adblock&rdquo;:</p>
<pre>10.100.200.254 adblock.local adblock</pre>
<p>If I had used the IP instead of adblock I would have had this error:</p>
<pre># apache2ctl configtest
[Mon Sep 16 20:27:21 2013] [error] (EAI 2)Name or service not known: 
Failed to resolve server name for 10.100.200.254 (check DNS) 
-- or specify an explicit ServerName
Syntax OK</pre>
<p>With the HTTP 200 code, some browsers expect some content/file in return. So it&rsquo;s generally safer to use HTTP 204 &ldquo;<a href="https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Success" target="_blank" rel="noopener noreferrer">No Content</a>&rdquo;; which basically means &ldquo;all good but I have nothing to serve you.&rdquo;</p>
<p>Now, I call myself an nginx fan. Running Apache on a RPi is a no go (at least for me). I could&rsquo;ve ran nginx on the RPi, but decided to run it on a remote server with an additional IP. At least for now. To preserve resources on the RPi.</p>
<p>Here&rsquo;s the relevant config to run it on nginx (and be sure this config is the first file nginx parses; or it might redirect all the domains to some other site):</p>
<pre>server {
 listen 80;
 server_name pixel.0x04.com 10.100.200.254 _;
 access_log /var/log/nginx/pixel.access.log;
 error_log /var/log/nginx/pixel.error.log;
 expires max;
 autoindex off; 
 rewrite ^(.*)$ /;
 location / {
  return 204 'pixel';
 }
}</pre>
<p>And if we test it, this is what we get:</p>
<pre>HTTP/1.1 204 No Content
Server: nginx/1.4.0
Date: Mon, 16 Sep 2013 18:36:52 GMT
Connection: close
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000</pre>
<p>And that&rsquo;s it.</p>
<p>&lt;3 nginx</p>
<p>The only downside is that this won&rsquo;t work with HTTPS. You can run your webbrowser with a self signed certificate, but this will throw errors&hellip;</p>
<p>The result:</p>
<p><a href="https://static.yeri.be/2013/09/adblock.png"><img class="alignnone size-medium wp-image-5298 aligncenter" alt="adblock" src="https://static.yeri.be/2013/09/adblock-300x171.png" width="300" height="171" /></a></p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>dns</category><category>nginx</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>Glitched grass</title>
      <link>https://yeri.be/glitched-grass/</link>
      <pubDate>Thu, 12 Sep 2013 22:34:54 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/glitched-grass/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://snorpey.github.io/jpg-glitch/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img class=&#34;alignnone size-full wp-image-5236 aligncenter&#34; alt=&#34;glitchedgrass&#34; src=&#34;https://static.yeri.be/2013/09/glitchedgrass.png&#34; width=&#34;500&#34; height=&#34;334&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt; &lt;/p&gt;&#xA;&lt;p&gt;And &lt;a href=&#34;https://static.yeri.be/2013/09/glitched-me3.png&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;me&lt;/a&gt;, &lt;a href=&#34;https://static.yeri.be/2013/09/glitched-me2.png&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;glitched&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I call it art.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="http://snorpey.github.io/jpg-glitch/" target="_blank" rel="noopener noreferrer"><img class="alignnone size-full wp-image-5236 aligncenter" alt="glitchedgrass" src="https://static.yeri.be/2013/09/glitchedgrass.png" width="500" height="334" /></a></p>
<p> </p>
<p>And <a href="https://static.yeri.be/2013/09/glitched-me3.png" target="_blank" rel="noopener noreferrer">me</a>, <a href="https://static.yeri.be/2013/09/glitched-me2.png" target="_blank" rel="noopener noreferrer">glitched</a>.</p>
<p>I call it art.</p>
]]></content:encoded>
      <category>errors</category><category>software</category>
      
    </item>
    
    <item>
      <title>Javapocalypse</title>
      <link>https://yeri.be/javapocalypse/</link>
      <pubDate>Sat, 15 Jun 2013 12:00:15 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/javapocalypse/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;640&#34; height=&#34;360&#34; src=&#34;https://www.youtube.com/embed/E3418SeWZfQ?rel=0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe width="640" height="360" src="https://www.youtube.com/embed/E3418SeWZfQ?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
      <category>misc</category><category>software</category>
      <category>java</category><category>youtube</category>
    </item>
    
    <item>
      <title>Munin &#43; Raspberry Pi &#43; temperature</title>
      <link>https://yeri.be/munin-raspberry-pi-temperature/</link>
      <pubDate>Sun, 26 May 2013 17:18:09 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/munin-raspberry-pi-temperature/</guid>
      <description>&lt;p&gt;Quick hack to get Munin to graph the cpu temperature.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.yeri.be/2013/05/temp-day.png&#34;&gt;&lt;img class=&#34;alignnone size-full wp-image-5081 aligncenter&#34; alt=&#34;temp-day&#34; src=&#34;https://static.yeri.be/2013/05/temp-day.png&#34; width=&#34;497&#34; height=&#34;280&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;First of all, install Munin and make sure it&amp;rsquo;s working.&lt;/p&gt;&#xA;&lt;p&gt;Then follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;We&amp;rsquo;ll use cron to write the current temp to a log file. We do this because I wasn&amp;rsquo;t able to get Munin to directly execute the command (error: &lt;code&gt;temp.value VCHI initialization failed&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Execute &lt;code&gt;crontab -e&lt;/code&gt; and add this line (this has to be on one line):&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Quick hack to get Munin to graph the cpu temperature.</p>
<p><a href="https://static.yeri.be/2013/05/temp-day.png"><img class="alignnone size-full wp-image-5081 aligncenter" alt="temp-day" src="https://static.yeri.be/2013/05/temp-day.png" width="497" height="280" /></a></p>
<p>First of all, install Munin and make sure it&rsquo;s working.</p>
<p>Then follow these steps:</p>
<ol>
<li>We&rsquo;ll use cron to write the current temp to a log file. We do this because I wasn&rsquo;t able to get Munin to directly execute the command (error: <code>temp.value VCHI initialization failed</code>)</li>
</ol>
<p>Execute <code>crontab -e</code> and add this line (this has to be on one line):</p>
<p><code>*/5 * * * * /opt/vc/bin/vcgencmd measure_temp | cut -d &ldquo;=&rdquo; -f2 | cut -d &ldquo;&rsquo;&rdquo; -f1 &gt; /tmp/.temp</code></p>
<ol start="2">
<li>Go to <code>/etc/munin/plugins/</code>, and create a file <code>temp</code>, and add this content:</li>
</ol>
<p><code>#!/bin/sh
case $1 in
config)
cat &lt;&lt;&lsquo;EOM&rsquo;
graph_category system
graph_title Temperature
graph_vlabel temp
temp.label Celsius
EOM
exit 0;;
esac
echo -n &ldquo;temp.value &quot;
cat /tmp/.temp</code></p>
<p>Save and exit the editor.</p>
<p>I&rsquo;m not sure this is needed, but better do it: <code>chmod +x temp</code></p>
<ol start="3">
<li>
<p>restart munin-node (<code>/etc/init.d/munin-node restart</code>)</p>
</li>
<li>
<p>test if it&rsquo;s working:</p>
</li>
</ol>
<p><code># telnet localhost 4949
Trying 127.0.0.1&hellip;
Connected to localhost.
Escape character is &lsquo;^]&rsquo;.</p>
<h1 id="munin-node-at-industryyeribe">munin node at industry.yeri.be</h1>
<p>fetch temp
temp.value 57.3
.</code></p>
<p>That&rsquo;s it. Your munin daemon/host should now correctly graph the temperature.</p>
<p><span style="text-decoration: underline;">Edit</span> (8/2/2014): updated script can be found <a href="https://yeri.be/munin-raspberry-pi-temperature-updated">here</a>.</p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category>
      <category>munin</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>Unable to complete backup. An error occurred while creating the backup folder.</title>
      <link>https://yeri.be/unable-to-complete-backup-an-error-occurred-while-creating-the-backup-folder/</link>
      <pubDate>Wed, 22 May 2013 16:30:18 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/unable-to-complete-backup-an-error-occurred-while-creating-the-backup-folder/</guid>
      <description>&lt;p&gt;5 or so days ago, this error suddenly popped up:&lt;/p&gt;&#xA;&lt;pre&gt;Unable to complete backup. An error occurred while creating the backup folder.&lt;/pre&gt;&#xA;&lt;p&gt;I have a Raspberry Pi, &lt;a href=&#34;https://yeri.be/home-made-timemachine&#34;&gt;acting as TimeMachine&lt;/a&gt; (using afp/Bonjour/Netatalk).&lt;/p&gt;&#xA;&lt;p&gt;There are &lt;a href=&#34;https://discussions.apple.com/thread/3524877?start=15&amp;amp;tstart=0&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;several things&lt;/a&gt; I tried to solve this, including messing in the sparebundle from Linux (chowning) and deleting my &lt;a href=&#34;http://pondini.org/TM/A4.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;TM .plist&lt;/a&gt;. This probably messed up my backup a bit.&lt;/p&gt;&#xA;&lt;p&gt;But what seemed to &amp;lsquo;solve&amp;rsquo; it for me was:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>5 or so days ago, this error suddenly popped up:</p>
<pre>Unable to complete backup. An error occurred while creating the backup folder.</pre>
<p>I have a Raspberry Pi, <a href="https://yeri.be/home-made-timemachine">acting as TimeMachine</a> (using afp/Bonjour/Netatalk).</p>
<p>There are <a href="https://discussions.apple.com/thread/3524877?start=15&amp;tstart=0" target="_blank" rel="noopener noreferrer">several things</a> I tried to solve this, including messing in the sparebundle from Linux (chowning) and deleting my <a href="http://pondini.org/TM/A4.html" target="_blank" rel="noopener noreferrer">TM .plist</a>. This probably messed up my backup a bit.</p>
<p>But what seemed to &lsquo;solve&rsquo; it for me was:</p>
<ol>
    <li><span style="line-height: 13px;">Start a backup manually (it will fail after a minute or two with the above mentioned error)</span></li>
    <li>Open finder, and go to the now mounted disk</li>
    <li>In my case, there was a &lt;date&gt;.inProgress file
<a href="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.32.19.png">
<img class="alignnone size-full wp-image-5065 aligncenter" alt="Screen Shot 2013-05-22 at 15.32.19" src="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.32.19.png" width="794" height="460" /></a></li>
    <li>If TimeMachine mounted the share for you, you will have write access (see notes below)</li>
    <li>Delete the inProgress file</li>
    <li>Empty your trash</li>
    <li>It should be gone:
<p><em id="__mceDel" style="text-align: center;"><a href="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.43.13.png"><img class="alignnone size-full wp-image-5069 aligncenter" alt="Screen Shot 2013-05-22 at 15.43.13" src="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.43.13.png" width="230" height="383" /></p>
<p></a></em></li>
<li>Unmount everything</li>
<li>Try backing up again</li></p>
</ol>
<p>In my case it changed to this error, which happens to me every so often due to corrupt backups (loss of network (because the drive is on VPN, and when I connect to my VPN Mac starts backing up, eventhough I actually don&rsquo;t really need/want that, it just happens to find the LAN), sleeping at the wrong moment, and Apple just generally not supporting DIY-TimeMachine). So this does mean I have to start from scratch anyhow&hellip; :(</p>
<p><a href="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.58.35.png"><img class="alignnone size-full wp-image-5070 aligncenter" alt="Screen Shot 2013-05-22 at 15.58.35" src="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.58.35.png" width="423" height="257" /></a></p>
<p><em>Notes</em>: I&rsquo;ve tried to manually mount the afp or smb share first, and open  the .sparebundle myself via finder.</p>
<p>Like this:</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.45.04.png"><img class="alignnone size-full wp-image-5067 aligncenter" alt="Screen Shot 2013-05-22 at 15.45.04" src="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.45.04.png" width="424" height="134" /></a></p>
<p style="text-align: center;"><a href="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.45.04.png"></a><a href="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.43.21.png"><img class="alignnone size-full wp-image-5068" alt="Screen Shot 2013-05-22 at 15.43.21" src="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.43.21.png" width="222" height="164" /></a></p>
<p>However, both via Finder as via terminal (including sudo) gave permission errors (partly reading, mostly writing) such as:</p>
<p><a href="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.32.38.png"><img class="alignnone size-full wp-image-5066 aligncenter" alt="Screen Shot 2013-05-22 at 15.32.38" src="https://static.yeri.be/2013/05/Screen-Shot-2013-05-22-at-15.32.38.png" width="410" height="134" /></a></p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>linux</category><category>networking</category><category>software</category>
      <category>backup</category>
    </item>
    
    <item>
      <title>The single most useful thing in bash</title>
      <link>https://yeri.be/the-single-most-useful-thing-in-bash/</link>
      <pubDate>Sat, 20 Apr 2013 11:38:50 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/the-single-most-useful-thing-in-bash/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://coderwall.com/p/oqtj8w&#34; target=&#34;_blank&#34;&gt;This&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://coderwall.com/p/oqtj8w" target="_blank">This</a>.</p>
]]></content:encoded>
      <category>linux</category><category>software</category>
      <category>bash</category>
    </item>
    
    <item>
      <title>Postfix &#43; maildrop &#43; recipient_delimiter</title>
      <link>https://yeri.be/postfix-maildrop-recipient_delimiter/</link>
      <pubDate>Wed, 17 Apr 2013 15:24:43 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/postfix-maildrop-recipient_delimiter/</guid>
      <description>&lt;p&gt;I suddenly noticed issues with Postfix not accepting e-mails that are tagged (&amp;ldquo;user+TAG@fqdn&amp;rdquo;) anymore. Even though it always had.&lt;/p&gt;&#xA;&lt;p&gt;Postfix main.cfg:&lt;/p&gt;&#xA;&lt;pre&gt;recipient_delimiter = +&lt;/pre&gt;&#xA;&lt;p&gt;Log snippet:&lt;/p&gt;&#xA;&lt;pre&gt;Apr 16 13:07:52 vm-dns-mail postfix/pipe[6119]: 55D1C2005E4: to=&amp;lt;user+test@rootspirit.com&amp;gt;, &#xA;relay=maildrop, delay=0.06, delays=0.01/0/0/0.05, dsn=5.1.1, status=bounced &#xA;(&lt;strong&gt;user &lt;/strong&gt;&lt;strong&gt;unknown. Command output: Invalid user specified.&lt;/strong&gt; )&lt;/pre&gt;&#xA;&lt;p&gt;Tried to find what&amp;rsquo;s wrong in MySQL, change the delimiter, Debug Maildrop, etc. Not much progress&amp;hellip; :( And after 6 hours I was starting to get annoyed.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I suddenly noticed issues with Postfix not accepting e-mails that are tagged (&ldquo;user+TAG@fqdn&rdquo;) anymore. Even though it always had.</p>
<p>Postfix main.cfg:</p>
<pre>recipient_delimiter = +</pre>
<p>Log snippet:</p>
<pre>Apr 16 13:07:52 vm-dns-mail postfix/pipe[6119]: 55D1C2005E4: to=&lt;user+test@rootspirit.com&gt;, 
relay=maildrop, delay=0.06, delays=0.01/0/0/0.05, dsn=5.1.1, status=bounced 
(<strong>user </strong><strong>unknown. Command output: Invalid user specified.</strong> )</pre>
<p>Tried to find what&rsquo;s wrong in MySQL, change the delimiter, Debug Maildrop, etc. Not much progress&hellip; :( And after 6 hours I was starting to get annoyed.</p>
<p>The clue was changing this line in master.cfg:</p>
<pre>maildrop unix - n n - - pipe
 flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}</pre>
<p>to</p>
<pre>maildrop unix - n n - - pipe
 flags=ODRhu user=vmail argv=/usr/bin/maildrop -w 90 -d ${user}@${nexthop}
 ${extension} ${recipient} ${user} ${nexthop}</pre>
<p><a href="http://gogs.info/wiki/debian/maildrop" target="_blank">Source</a> where I ripped the line from.</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>mail</category>
    </item>
    
    <item>
      <title>Diffie-Hellman Key Exchange</title>
      <link>https://yeri.be/diffie-hellman-key-exchange/</link>
      <pubDate>Mon, 01 Apr 2013 21:13:43 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/diffie-hellman-key-exchange/</guid>
      <description>&lt;p&gt;Explained this way, it&amp;rsquo;s quite simple. ;)&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;480&#34; height=&#34;360&#34; src=&#34;https://www.youtube.com/embed/YEBfamv-_do?rel=0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Explained this way, it&rsquo;s quite simple. ;)</p>
<p style="text-align: center;"><iframe width="480" height="360" src="https://www.youtube.com/embed/YEBfamv-_do?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
      <category>software</category>
      <category>encryption</category><category>youtube</category>
    </item>
    
    <item>
      <title>Home made TimeMachine</title>
      <link>https://yeri.be/home-made-timemachine/</link>
      <pubDate>Sat, 23 Mar 2013 04:01:21 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/home-made-timemachine/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.bootc.net/archives/2010/11/07/apple-time-machine-and-netatalk/&#34; target=&#34;_blank&#34;&gt;This&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Used my Raspberry Pi, with an USB disk as TimeMachine. Another disk as NAS/storage. It&amp;rsquo;s just quite slow&amp;hellip; Not sure whether it&amp;rsquo;s my WiFi or RPi that can&amp;rsquo;t keep up.&lt;/p&gt;&#xA;&lt;p&gt;But for now, it&amp;rsquo;s working.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="http://www.bootc.net/archives/2010/11/07/apple-time-machine-and-netatalk/" target="_blank">This</a>.</p>
<p>Used my Raspberry Pi, with an USB disk as TimeMachine. Another disk as NAS/storage. It&rsquo;s just quite slow&hellip; Not sure whether it&rsquo;s my WiFi or RPi that can&rsquo;t keep up.</p>
<p>But for now, it&rsquo;s working.</p>
]]></content:encoded>
      <category>apple</category><category>hardware</category><category>linux</category><category>networking</category><category>software</category>
      <category>backup</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>Fuck you, internet.</title>
      <link>https://yeri.be/fuck-you-internet/</link>
      <pubDate>Fri, 15 Mar 2013 15:55:34 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/fuck-you-internet/</guid>
      <description>&lt;p&gt;For a few years I ran my own &lt;a href=&#34;https://yeri.be/public-dns-server&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;public DNS server&lt;/a&gt;. I liked it, great experience, I could easily connect all my host to a central and fast DNS, I avoided all those nasty ISPs who filter their DNS, and it was fast (not Google fast, but fast &amp;ndash; I actually think Google DNS didn&amp;rsquo;t even launch when I set it up).&lt;/p&gt;&#xA;&lt;p&gt;A good year or so, they started using the DNS server to DDoS others (spoofed UDP DNS requests). That&amp;rsquo;s annoying&amp;hellip; It hit like 5k or so requests per minute&amp;hellip; That wasn&amp;rsquo;t really fine, but I didn&amp;rsquo;t care much until I saw the traffic it ended up generating&amp;hellip; Then I started to null route most IPs sending bogus DNS requests (spamming ripe.net or isc.org)&amp;hellip; That usually worked, and for a whole time I didn&amp;rsquo;t get any more DDoS&amp;hellip; Until, apparently, recently.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>For a few years I ran my own <a href="https://yeri.be/public-dns-server" target="_blank" rel="noopener noreferrer">public DNS server</a>. I liked it, great experience, I could easily connect all my host to a central and fast DNS, I avoided all those nasty ISPs who filter their DNS, and it was fast (not Google fast, but fast &ndash; I actually think Google DNS didn&rsquo;t even launch when I set it up).</p>
<p>A good year or so, they started using the DNS server to DDoS others (spoofed UDP DNS requests). That&rsquo;s annoying&hellip; It hit like 5k or so requests per minute&hellip; That wasn&rsquo;t really fine, but I didn&rsquo;t care much until I saw the traffic it ended up generating&hellip; Then I started to null route most IPs sending bogus DNS requests (spamming ripe.net or isc.org)&hellip; That usually worked, and for a whole time I didn&rsquo;t get any more DDoS&hellip; Until, apparently, recently.</p>
<p>And 5 to 10k I can accept&hellip; But 120k is over the limit.</p>
<p>So, as of today I&rsquo;m sunsetting my public DNS. Goodbye and thank you for all the fish.</p>
<p><a href="https://static.yeri.be/2013/03/bind9_rndc.png"><img class="alignnone size-full wp-image-4957 aligncenter" src="https://static.yeri.be/2013/03/bind9_rndc.png" alt="bind9_rndc" width="497" height="388" /></a></p>
<p>I log the queries:</p>
<p><a href="https://static.yeri.be/2013/03/df.png"><img class="alignnone size-large wp-image-4958 aligncenter" src="https://static.yeri.be/2013/03/df.png" alt="df" width="497" height="352" /></a></p>
<pre>vm1 /etc/bind # vnstat -m

eth0 / monthly

month rx | tx | total | avg. rate
 ------------------------+-------------+-------------+---------------
 Apr '12 44.04 GiB | 40.75 GiB | 84.79 GiB | 274.41 kbit/s
 May '12 108.58 GiB | 55.41 GiB | 163.99 GiB | 513.60 kbit/s
 Jun '12 150.30 GiB | 83.51 GiB | 233.81 GiB | 756.69 kbit/s
 Jul '12 240.42 GiB | 958.60 GiB | 1.17 TiB | 3.76 Mbit/s
 Aug '12 197.44 GiB | 745.38 GiB | 942.82 GiB | 2.95 Mbit/s
 Sep '12 182.99 GiB | 627.62 GiB | 810.61 GiB | 2.62 Mbit/s
 Oct '12 135.67 GiB | 431.33 GiB | 567.00 GiB | 1.78 Mbit/s
 Nov '12 93.75 GiB | 592.49 GiB | 686.24 GiB | 2.22 Mbit/s
 Dec '12 118.53 GiB | 68.36 GiB | 186.90 GiB | 585.35 kbit/s
 Jan '13 83.30 GiB | 159.82 GiB | 243.12 GiB | 761.43 kbit/s
 Feb '13 44.15 GiB | 187.99 GiB | 232.13 GiB | 804.93 kbit/s
 Mar '13 51.60 GiB | 532.81 GiB | 584.41 GiB | 4.04 Mbit/s
 ------------------------+-------------+-------------+---------------
 estimated 113.87 GiB | 1.15 TiB | 1.26 TiB |</pre>
]]></content:encoded>
      <category>linux</category><category>software</category>
      <category>dns</category>
    </item>
    
    <item>
      <title>First 5 Minutes Troubleshooting A Server</title>
      <link>https://yeri.be/first-5-minutes-troubleshooting-a-server/</link>
      <pubDate>Thu, 14 Mar 2013 06:22:18 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/first-5-minutes-troubleshooting-a-server/</guid><enclosure url="https://static.yeri.be/2013/03/server.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;&lt;a href=&#34;https://web.archive.org/web/20140401081039/http://devo.ps/blog/2013/03/06/troubleshooting-5minutes-on-a-yet-unknown-box.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;This&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2013/03/server.jpg" alt="First 5 Minutes Troubleshooting A Server"></p><p><a href="https://web.archive.org/web/20140401081039/http://devo.ps/blog/2013/03/06/troubleshooting-5minutes-on-a-yet-unknown-box.html" target="_blank" rel="noopener noreferrer">This</a>.</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>networking</category><category>software</category>
      <category>ubuntu</category><category>debian</category>
    </item>
    
    <item>
      <title>FlatTurtle product updates (March)</title>
      <link>https://yeri.be/flatturtle-product-updates-march/</link>
      <pubDate>Wed, 06 Mar 2013 06:40:13 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/flatturtle-product-updates-march/</guid>
      <description>&lt;p&gt;Can be found &lt;a href=&#34;http://us6.campaign-archive1.com/?u=d82ed07d6d647a768b87d3e8d&amp;amp;id=dc5877a70f&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Can be found <a href="http://us6.campaign-archive1.com/?u=d82ed07d6d647a768b87d3e8d&amp;id=dc5877a70f" target="_blank">here</a>.</p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>flatturtle</category>
    </item>
    
    <item>
      <title>OpenVPN: Can&#39;t assign requested address</title>
      <link>https://yeri.be/openvpn-cant-assign-requested-address/</link>
      <pubDate>Tue, 12 Feb 2013 13:17:22 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/openvpn-cant-assign-requested-address/</guid>
      <description>&lt;p&gt;For no clear reason, OpenVPN on Mac with Tunnelblick (any version, had this problem for a few years already) results in these kind of error messages (and refuses to connect):&lt;/p&gt;&#xA;&lt;pre&gt;2013-02-05 17:44:31 write UDPv4: Can&#39;t assign requested address (code=49)&#xA;2013-02-05 17:44:33 write UDPv4: Can&#39;t assign requested address (code=49)&lt;/pre&gt;&#xA;&lt;p&gt;This seems to appear more often when swapping WiFi/IP range (after my Mac goes into sleep). But also happens when connecting to the same WiFi. It doesn&amp;rsquo;t change anything whether I disconnect OpenVPN before putting the Mac to sleep.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>For no clear reason, OpenVPN on Mac with Tunnelblick (any version, had this problem for a few years already) results in these kind of error messages (and refuses to connect):</p>
<pre>2013-02-05 17:44:31 write UDPv4: Can't assign requested address (code=49)
2013-02-05 17:44:33 write UDPv4: Can't assign requested address (code=49)</pre>
<p>This seems to appear more often when swapping WiFi/IP range (after my Mac goes into sleep). But also happens when connecting to the same WiFi. It doesn&rsquo;t change anything whether I disconnect OpenVPN before putting the Mac to sleep.</p>
<p>The solution I&rsquo;ve found to solve this is:</p>
<ol>
	<li><span style="line-height: 13px;">Disconnect OpenVPN (via Tunnelblick)</span></li>
	<li>Turn off WiFi</li>
	<li>Run the script I've attached below (flush.sh)</li>
	<li>Fill in your admin/sudo password</li>
	<li>Hit ctrl+C if it doesn't exit instantly (happens in 99% of the cases)</li>
	<li>Run the script once or twice more to be sure, it will exit correctly this time</li>
	<li>Reconnect to the WiFi</li>
	<li>Reconnect OpenVPN (via Tunnelblick): this time it will work</li>
</ol>
The script (name it flush.sh, chmod +x, and run ./flush.sh via Terminal):
<p><span style="text-decoration: underline;">Edit</span>: updated script (29/01/2014)</p>
<pre>#!/bin/bash
# Change IFACE to match your WiFi interface 
# (en0 on Macbook Air and Retina, en1 on old Macbook Pros with ethernet) 
IFACE=en0
sudo ifconfig $IFACE down
sudo route flush
sudo ifconfig $IFACE up</pre>
<p>In case the script hangs (sometimes, route flush hangs): hit ctrl+C, and execute it again.</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>linux</category><category>networking</category><category>software</category>
      <category>bash</category><category>openvpn</category>
    </item>
    
    <item>
      <title>Office 2010: cannot verify the license for this product</title>
      <link>https://yeri.be/office-2010-cannot-verify-the-license-for-this-product/</link>
      <pubDate>Fri, 01 Feb 2013 20:16:45 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/office-2010-cannot-verify-the-license-for-this-product/</guid>
      <description>&lt;p&gt;Due to continuous Access errors, I decided to reinstall Office Professional 2010 (64 bit).&lt;/p&gt;&#xA;&lt;p&gt;As I couldn&amp;rsquo;t find the original CD key I installed it with, I used another one from another installation. So far so good, installation went fine, etc.&lt;/p&gt;&#xA;&lt;p&gt;Once I started any Office app, it popped up this error: &amp;ldquo;Microsoft Office professional plus 2010 cannot verify the license. blablabla useless crap check control panel&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve tried:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;Reenter CD key (via setup)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Repair Office&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Install every single item I could select during the install&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Remove office + reinstall office&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Removed CD key with &lt;a href=&#34;http://answers.microsoft.com/en-us/office/forum/officeversion_other-office_install/office-2010-cannot-verify-license-error-message/62ad5890-4e71-4bc1-829e-d6252af61fcb&#34; target=&#34;_blank&#34;&gt;this&lt;/a&gt;&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Reboot over a zillion times&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Cursed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;None of this worked.&#xA;&lt;p&gt;However, &lt;a href=&#34;http://social.technet.microsoft.com/Forums/en-US/excel/thread/22e8c4ad-aa77-4c72-ad7d-37f4e867baae&#34; target=&#34;_blank&#34;&gt;this&lt;/a&gt; seems to fix it for me:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Due to continuous Access errors, I decided to reinstall Office Professional 2010 (64 bit).</p>
<p>As I couldn&rsquo;t find the original CD key I installed it with, I used another one from another installation. So far so good, installation went fine, etc.</p>
<p>Once I started any Office app, it popped up this error: &ldquo;Microsoft Office professional plus 2010 cannot verify the license. blablabla useless crap check control panel&rdquo;</p>
<p>I&rsquo;ve tried:</p>
<ul>
	<li>Reenter CD key (via setup)</li>
	<li>Repair Office</li>
	<li>Install every single item I could select during the install</li>
	<li>Remove office + reinstall office</li>
	<li>Removed CD key with <a href="http://answers.microsoft.com/en-us/office/forum/officeversion_other-office_install/office-2010-cannot-verify-license-error-message/62ad5890-4e71-4bc1-829e-d6252af61fcb" target="_blank">this</a></li>
	<li>Reboot over a zillion times</li>
	<li>Cursed</li>
</ul>
None of this worked.
<p>However, <a href="http://social.technet.microsoft.com/Forums/en-US/excel/thread/22e8c4ad-aa77-4c72-ad7d-37f4e867baae" target="_blank">this</a> seems to fix it for me:</p>
<ol>
	<li><span style="line-height: 13px;">Open command</span></li>
	<li>cd C:\Program Files\Microsoft Office\Office14</li>
	<li>cscript ospp.vbs /act</li>
	<li>reopen any Office. No more errors. Yay</li>
</ol>
<span style="color: #2a2a2a; font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; line-height: 20px;"> </span>
]]></content:encoded>
      <category>errors</category><category>software</category><category>windows</category>
      <category>office</category>
    </item>
    
    <item>
      <title>Windows 8</title>
      <link>https://yeri.be/windows-8/</link>
      <pubDate>Wed, 30 Jan 2013 11:20:42 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/windows-8/</guid>
      <description>&lt;p&gt;I lolled.&lt;/p&gt;&#xA;&lt;p&gt; &lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/WTYet-qf1jo?rel=0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I lolled.</p>
<p> </p>
<p style="text-align: center;"><iframe width="560" height="315" src="https://www.youtube.com/embed/WTYet-qf1jo?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
      <category>software</category><category>windows</category>
      <category>windows 8</category>
    </item>
    
    <item>
      <title>Connect different LANs over openVPN</title>
      <link>https://yeri.be/connect-different-lans-over-openvpn/</link>
      <pubDate>Tue, 29 Jan 2013 11:47:50 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/connect-different-lans-over-openvpn/</guid>
      <description>&lt;p&gt;I now own three &lt;a href=&#34;http://www.raspberrypi.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Raspberry Pi&amp;rsquo;s&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Using two of them (and my &lt;a href=&#34;https://yeri.be/?s=guruplug&amp;amp;x=0&amp;amp;y=0&#34;&gt;Guruplug&lt;/a&gt; as WiFi AP) I connected my new apartment with my old house (= parents) over VPN.&lt;/p&gt;&#xA;&lt;p&gt;This way I can access the printers/scanners and NAS at home.&lt;/p&gt;&#xA;&lt;p&gt;The 2 rPI&amp;rsquo;s are used as router (using a Macbook Air USB-to-Ethernet adapter as 2nd ethernet (eth1) port). Basic howto&amp;rsquo;s are easily found using Google to do this (a &lt;a href=&#34;https://web.archive.org/web/20131205200223/http://www.gentoo.org:80/doc/en/home-router-howto.xml&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;good starting point&lt;/a&gt;).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I now own three <a href="http://www.raspberrypi.org/" target="_blank" rel="noopener noreferrer">Raspberry Pi&rsquo;s</a>.</p>
<p>Using two of them (and my <a href="https://yeri.be/?s=guruplug&amp;x=0&amp;y=0">Guruplug</a> as WiFi AP) I connected my new apartment with my old house (= parents) over VPN.</p>
<p>This way I can access the printers/scanners and NAS at home.</p>
<p>The 2 rPI&rsquo;s are used as router (using a Macbook Air USB-to-Ethernet adapter as 2nd ethernet (eth1) port). Basic howto&rsquo;s are easily found using Google to do this (a <a href="https://web.archive.org/web/20131205200223/http://www.gentoo.org:80/doc/en/home-router-howto.xml" target="_blank" rel="noopener noreferrer">good starting point</a>).</p>
<p>I made my own installation of Raspbian (as the downloadable image contains too much crap), details <a href="http://www.raspbian.org/RaspbianInstaller" target="_blank" rel="noopener noreferrer">here</a> (actually not that easy to find when Googling for bootstrap raspbian etc).</p>
<p> </p>
<p>I&rsquo;ve connected three different LANs over an OpenVPN connection:</p>
<ul>
    <li>LAN1 (home): 192.168.1.0 (Gateway: 192.168.1.1, VPN ip: 10.9.8.254)</li>
    <li>LAN2 (apartment, ethernet): 10.60.111.0 (Gateway: 10.60.111.1, VPN ip: 10.9.8.250)</li>
    <li>LAN3 (apartment, wifi): 10.10.10.0 (Gateway: 10.10.10.1, VPN ip: 10.9.8.246)</li>
</ul>
<p>OpenVPN range: 10.9.8.0. The subnet is 255.255.255.0 in all cases.</p>
<p>LAN3 is connected via LAN2 to the internet. So the default gateway of router 10.10.10.1 is 10.60.111.1.</p>
<p>The gateway/routers are all Debian-based Linux systems. I&rsquo;m using <a href="http://www.edpnet.be/" target="_blank" rel="noopener noreferrer">EDPnet</a> as ISP, and thus need to use those Sagem/Belgacom approved routers (BBox-2 hardware). These Sagems are set in bridged mode, and don&rsquo;t do the PPP stuff. <a href="http://wiki.debian.org/PPPoE" target="_blank" rel="noopener noreferrer">PPPoeconfig</a> on Debian takes care of most of the stuff. As EDPnet provides ipv6, I can ping6 from those routers.</p>
<p>The idea is to connect/ping each and every LAN from any of the clients connected the LANs (without running OpenVPN on the clients; only run it on the gateways).</p>
<p>For example: my PC with ip 10.10.10.15 wants to connect to the NAS with ip 192.168.1.100.</p>
<p>This can easily be achieved by setting a client-config-dir in the openvpn.conf file (or whatever the name of your config):</p>
<pre>client-config-dir /etc/openvpn/tiete</pre>
<p>And don&rsquo;t forget to add route pushes:</p>
<pre>push "route 192.168.1.0 255.255.255.0"
push "route 10.60.111.0 255.255.255.0"
push "route 10.10.10.0 255.255.255.0"</pre>
<p>But here comes the annoying part. As I&rsquo;m pushing routes 10.60.111.0 via VPN, which is supposed to be my Guruplug&rsquo;s default gateway as well (ISP &gt; eth0:RaspberryPi:eth1 &gt; eth0:Guruplug, remember?) this was causing quite some routing fuck ups.</p>
<p>The easiest way to solve this was to turn off VPN on the Guruplug all together, and route 10.10.10.0 over the Raspberry Pi, by adding this line to /etc/network/interfaces:</p>
<pre>up route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.60.111.2 dev eth1</pre>
<p>Then I&rsquo;ll change the client specific configs on the VPN. Create a file in whatever you picked as client-config-dir, and name it the actual VPN name (the name used when creating the key).</p>
<p>As I have three routers, I created three files (sheeva for my guruplug, Pi for my first rPI and Industry for my 2nd. Yep&hellip; Fancy names).</p>
<p>I also want to give a static IP address to the gateways, so I use the option:</p>
<pre>ifconfig-push 10.9.8.&lt;valid-ip&gt; 10.9.8.&lt;valid-ip - 1&gt;</pre>
<p>And I&rsquo;ll also add the iroute option to push routes.</p>
<p>This is what it looks like for the router on the 192.168.1.0 network (&ldquo;Pi&rdquo;):</p>
<pre>ifconfig-push 10.9.8.254 10.9.8.253
iroute 192.168.1.0 255.255.255.0</pre>
<p>For &ldquo;Sheeva&rdquo;, the WiFi AP on 10.10.10.0:</p>
<pre>ifconfig-push 10.9.8.246 10.9.8.245</pre>
<p>And for 10.60.111.0 plus 10.10.10.0 routed over 10.60.111.0 (&ldquo;Industry&rdquo;):</p>
<pre>ifconfig-push 10.9.8.250 10.9.8.249
iroute 10.60.111.0 255.255.255.0
iroute 10.10.10.0 255.255.255.0</pre>
<p>And don&rsquo;t forget to set up masquerading over tun0 (or tun+) with iptables.</p>
<p>Now&hellip; Oddly enough, this didn&rsquo;t require that much configuration, cursing and stress&hellip; And, well, it kind of just works.</p>
<p>From my Mac to my NAS:</p>
<pre>nazgul ~ $ traceroute 192.168.1.100
traceroute to 192.168.1.100 (192.168.1.100), 64 hops max, 52 byte packets
 1 sheeva (10.10.10.1) 1.936 ms 1.159 ms 0.800 ms
 2 10.60.111.1 (10.60.111.1) 1.456 ms 1.776 ms 1.539 ms
 3 10.9.8.254 (10.9.8.254) 55.745 ms 55.046 ms 54.734 ms
 4 192.168.1.100 (192.168.1.100) 62.302 ms 55.327 ms 54.795 ms</pre>
<p>From Pi (gateway 192.168.1.1) to nazgul, my Mac:</p>
<pre>pi ~ # traceroute 10.10.10.15
traceroute to 10.10.10.15 (10.10.10.15), 30 hops max, 60 byte packets
 1 10.9.8.250 (10.9.8.250) 65.892 ms 74.177 ms 73.957 ms
 2 10.60.111.2 (10.60.111.2) 73.441 ms 72.902 ms 72.342 ms
 3 10.10.10.15 (10.10.10.15) 71.780 ms 71.187 ms 70.760 ms</pre>
<p>From Heartbeat (10.9.8.102), my Munin stats server to the printer:</p>
<pre>heartbeat ~/bin # traceroute 192.168.1.90
traceroute to 192.168.1.90 (192.168.1.90), 30 hops max, 60 byte packets
 1 pi (10.9.8.254) 39.835 ms 40.794 ms 41.567 ms
 2 192.168.1.90 (192.168.1.90) 41.541 ms 42.452 ms 43.307 ms</pre>
<p>From Heartbeat to Sheeva&rsquo;s eth0 IP:</p>
<pre>heartbeat ~/bin # traceroute 10.60.111.2
traceroute to 10.60.111.2 (10.60.111.2), 30 hops max, 60 byte packets
 1 industry (10.9.8.250) 32.716 ms 32.615 ms 34.359 ms
 2 sheeva (10.60.111.2) 34.405 ms 34.349 ms 35.014 ms</pre>
<p>From Heartbeat to an Android device (not sure why the latency spike):</p>
<pre>heartbeat ~/bin # traceroute 10.10.10.72
traceroute to 10.10.10.72 (10.10.10.72), 30 hops max, 60 byte packets
 1 industry (10.9.8.250) 31.337 ms 32.269 ms 32.218 ms
 2 sheeva (10.60.111.2) 33.006 ms 33.052 ms 32.996 ms
 3 10.10.10.72 (10.10.10.72) 471.564 ms 472.169 ms 473.082 ms</pre>
<p>Next up (once I have spare time): try to sync local DNS and fix local ipv6.</p>
<p>I&rsquo;ll put most of the configs on Github at some point.</p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>networking</category><category>software</category>
      <category>debian</category><category>raspberrypi</category>
    </item>
    
    <item>
      <title>Child of the 90s</title>
      <link>https://yeri.be/child-of-the-90s/</link>
      <pubDate>Sun, 27 Jan 2013 12:51:18 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/child-of-the-90s/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/qkM6RJf15cg?rel=0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe width="560" height="315" src="https://www.youtube.com/embed/qkM6RJf15cg?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
      <category>software</category>
      <category>youtube</category>
    </item>
    
    <item>
      <title>Random reboots of Galaxy Nexus</title>
      <link>https://yeri.be/random-reboots-of-galaxy-nexus/</link>
      <pubDate>Sun, 30 Dec 2012 04:56:08 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/random-reboots-of-galaxy-nexus/</guid>
      <description>&lt;p&gt;Since I moved to Antwerp, in a high building apparently made out of the thickest steel they could find (&amp;gt; My wifi signal barely passes the internal walls, and I&amp;rsquo;m pretty much unable to make a decent cell phone call) my Galaxy Nexus has been behaving oddly.&lt;/p&gt;&#xA;&lt;p&gt;It started during the night of the &lt;a href=&#34;http://blog.flatturtle.com/post/37822619015&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;press&lt;/a&gt; &lt;a href=&#34;https://yeri.be/flatturtle-press-conference-time&#34;&gt;conf&lt;/a&gt; when I was catching up on my mails when I got home of a whiskey tasting evening/&amp;ldquo;apps for whiskey&amp;rdquo; event.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Since I moved to Antwerp, in a high building apparently made out of the thickest steel they could find (&gt; My wifi signal barely passes the internal walls, and I&rsquo;m pretty much unable to make a decent cell phone call) my Galaxy Nexus has been behaving oddly.</p>
<p>It started during the night of the <a href="http://blog.flatturtle.com/post/37822619015" target="_blank" rel="noopener noreferrer">press</a> <a href="https://yeri.be/flatturtle-press-conference-time">conf</a> when I was catching up on my mails when I got home of a whiskey tasting evening/&ldquo;apps for whiskey&rdquo; event.</p>
<p>It suddenly rebooted (the screen lit on showing the usual boot animation (&ldquo;X&rdquo;)). I didn&rsquo;t pay attention.</p>
<p>A couple of minutes (twenty ish) later again.</p>
<p>Odd&hellip; I did a reboot myself (hold power button, turn off, turn on).</p>
<p>After booting up for about 30 seconds, it rebooted again&hellip; Annoyed but busy with other stuff I didn&rsquo;t pay that much attention.</p>
<p>This time I unplugged the battery, hoping that would help anything, and tried again.</p>
<p>By the way, this is all on a stock Android 4.2.1.</p>
<p>After booting, I had to refill my pincode each time (so it was not one of those infamous reboots where it saves its session/state/whatever&hellip; The cache-thing-whatever was cleared). I first thought some mail over IMAP was causing this (as I was directly thinking of my <a href="https://yeri.be/android-4-1-imap-stock-mail-bug">previous mail issue</a>). But I made sure that I read all my mails and deleted what wasn&rsquo;t relevant on my Macbook Pro and Nexus 7. It should sync.</p>
<p>Then my attention got caught by the WiFi. While it was connected pretty instantly, it took a long time to change the icon from its grey &ldquo;I-am-unable-to-access-the-internet&rdquo; to the usual blue color. Either way after about one or two minutes into Android itself, it rebooted again. Irritating.</p>
<p>So I was starting to think about odd kernel panics or memory problems.</p>
<p>The furthest I got after that was unlocking (pattern) my display, and it would reboot&hellip; Not even making it to the settings pane.</p>
<p>After that, it would just loop-reboot. At first I would still see the lock screen popping up, then only the Android boot animation. And after a while it would just loop the Google name and flick black for a second, and (presumably) start over.</p>
<p>No matter what I did (pull battery, try without battery, get closer to the wifi, recharge battery, connect it to my mac, &hellip;) it kept on doing that. I decided to head to bed and left my GN off by removing the battery. But 8 hours of rest didn&rsquo;t really help my phone. The next morning it was still behaving the same.</p>
<p>I saw no other option that going into the boot menu (holding power button + volume down and up) and doing a factory reset. Wiping all my data (well, mainly just my settings (I am lazy), and I don&rsquo;t have any fancy apps, but it did delete all my pictures which I hadn&rsquo;t copied to my mac in a long while).</p>
<p>After the data wipe/recovery, I started reinstalling my apps, reconfiguring, and restoring my text messages backup (best app: <a href="https://play.google.com/store/apps/details?id=com.zegoggles.smssync" target="_blank" rel="noopener noreferrer">SMS Backup+</a>) and everything was pretty much okay. No hardware issue, no more reboots&hellip;</p>
<p>Note: those with a laggy Galaxy Nexus, <a href="https://yeri.be/laggy-android-4-2-on-galaxy-nexus-kill-currents">this</a> helped me to improve speeds; but a total wipe brought my GN back to about 90% of it&rsquo;s 4.1 speed (no scientific proof for that though ;)).</p>
<p>Anyway&hellip; All was fine until Thursday night. It suddenly started to reboot again, and random. With intervals of, well, sometimes 30 minutes, sometimes 10. I didn&rsquo;t get to the reboot-loop yet. Turning off wifi or turning off data didn&rsquo;t seem to help. I tried airplane mode, but I had to make phone calls/text, so I didn&rsquo;t wait until/whether it rebooted. I tried getting closer to the wifi hotspot, change rooms (yea, whatever) and none of that helped. It kept rebooting during the night (I reentered the pin code twice when I woke up that night). And it kept doing that in the morning&hellip;</p>
<p>And as I stayed a couple of days at my parent&rsquo;s house for Christmas (where everything was fine), I was starting to think my new apartment/steel-tower was bugged (or the Proximus cell tower in the neighborhood).</p>
<p>At this point I was panicking. Looking for options to buy a Nexus 4 and Googling about this (and well, apparently I&rsquo;m not the only one having this <a href="https://www.google.com/search?oq=google+nexus+rebooting+random&amp;sugexp=chrome,mod=1&amp;{google:instantFieldTrialGroupParameter}sourceid=chrome&amp;ie=UTF-8&amp;q=google+nexus+rebooting+random#hl=en&amp;safe=off&amp;tbo=d&amp;spell=1&amp;q=google+nexus+rebooting+randomly&amp;sa=X&amp;ei=c9fcUOrQLs-M0wWp-4DAAQ&amp;ved=0CDMQBSgA&amp;bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&amp;bvm=bv.1355534169,d.d2k&amp;fp=ece937e9bd4ccb65&amp;bpcl=40096503&amp;biw=1680&amp;bih=897" target="_blank" rel="noopener noreferrer">problem</a>). Random reports pointing to random apps, lock screen, GPS, etc.</p>
<p>I noticed for some reason Latitude stopped reporting my location (I hate when it does that for no apparent reason&hellip; Already happened 4-5 times the past 2 years) for this device, turned it back on and since then my device hasn&rsquo;t rebooted yet&hellip;</p>
<p>Haunted shit for sure. Google please fix your crap.</p>
<p>To be continued&hellip;</p>
<p>Edit: about 24 hours later it rebooted again. When I attempted to insert my pincode it rebooted again. After that I managed to get past the lock screen. I received Whatsapp messages, Twitter crashed, and it started to update apps. After that it (2-3 minutes after booting) it rebooted again.</p>
]]></content:encoded>
      <category>errors</category><category>google</category><category>software</category>
      <category>android</category>
    </item>
    
    <item>
      <title>Defcon 18: Pwned By the owner</title>
      <link>https://yeri.be/defcon-18-pwned-by-the-owner/</link>
      <pubDate>Sat, 29 Dec 2012 12:56:40 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/defcon-18-pwned-by-the-owner/</guid>
      <description>&lt;p style=&#34;text-align: center&#34;&gt;&lt;div class=&#34;embed-responsive embed-youtube&#34;&gt;&#xA;&#x9;&lt;iframe src=&#34;https://www.youtube-nocookie.com/embed/U4oB28ksiIo&#34; title=&#34;YouTube video&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center"><div class="embed-responsive embed-youtube">
	<iframe src="https://www.youtube-nocookie.com/embed/U4oB28ksiIo" title="YouTube video" loading="lazy" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</p>
]]></content:encoded>
      <category>apple</category><category>linux</category><category>misc</category><category>networking</category><category>software</category>
      <category>defcon</category><category>youtube</category>
    </item>
    
    <item>
      <title>Android 4.1 IMAP &#43; stock mail bug</title>
      <link>https://yeri.be/android-4-1-imap-stock-mail-bug/</link>
      <pubDate>Fri, 28 Dec 2012 01:24:02 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/android-4-1-imap-stock-mail-bug/</guid>
      <description>&lt;p&gt;On 4.1 (yes, I&amp;rsquo;m lagging behind with my blog posts) something rather funky happened. And it took my 7 days to notice.&lt;/p&gt;&#xA;&lt;p&gt;My phone was running hotter and battery life was suddenly crappier than usual. But not really paying attention, until my cell provider (Proximus) texted me I was over my data consumption limit&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;As it was the beginning of the month, so that was unusual. I checked data usage in settings, and noticed ~7Gb of traffic by mail app over WiFi and ~3Gb over mobile data.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>On 4.1 (yes, I&rsquo;m lagging behind with my blog posts) something rather funky happened. And it took my 7 days to notice.</p>
<p>My phone was running hotter and battery life was suddenly crappier than usual. But not really paying attention, until my cell provider (Proximus) texted me I was over my data consumption limit&hellip;</p>
<p>As it was the beginning of the month, so that was unusual. I checked data usage in settings, and noticed ~7Gb of traffic by mail app over WiFi and ~3Gb over mobile data.</p>
<p>The day after I noticed the unusual usage (and as I reached 4Gb traffic) Proximus cut off my data connection around 14h00 (leaving me stranded in the middle of Brussels, unable to use my GPS)&hellip;After phoning them I got my access back though.</p>
<p>Not sure where to look (some attachment problem? some fucked mail?) I cleared my inbox, and removed all mails from the folder that IMAP syncs on the Android&hellip; Still it was downloading continuously. I started to try to debug the IMAP servers, to see what commands my client was sending, but not finding anything interesting there, I started to wonder what to do&hellip;</p>
<p>Then I tried something I really didn&rsquo;t want to try (yea, now that I think of it, I probably should&rsquo;ve tried that first, and well, something to do with hating to change settings; and it took me 3 days or something before I tried this): I deleted the first of my 2 IMAP accounts, checked back after ~10 minutes to see if data consumption increased, and no, it hadn&rsquo;t.</p>
<p>Yay. So now I knew the problem was one of the 2 accounts. I restored my mail account (and to my amazement it actually wasn&rsquo;t that much settings I had to put back) and kept checking on the data. It didn&rsquo;t increase anymore.</p>
<p>Soooo, oddly enough that solved the issue (remove and readd the IMAP account).</p>
<p>No idea what happened there.</p>
<p>My bill is 145ish euro&rsquo;s because of this by the way.</p>
]]></content:encoded>
      <category>errors</category><category>google</category><category>software</category>
      <category>android</category><category>nexus</category>
    </item>
    
    <item>
      <title>Mac OS X Mountain Lion: unable to add printers</title>
      <link>https://yeri.be/mac-os-x-mountain-lion-unable-to-add-printers/</link>
      <pubDate>Thu, 27 Dec 2012 18:18:14 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mac-os-x-mountain-lion-unable-to-add-printers/</guid>
      <description>&lt;p&gt;Okay. This one took a long time to solve.&lt;/p&gt;&#xA;&lt;p&gt;At some random point after upgrading from Snow Leopard to Mountain Lion was unable to add &lt;em&gt;new&lt;/em&gt; printers.&lt;/p&gt;&#xA;&lt;p&gt;As I don&amp;rsquo;t really add new printers on a daily base, I have no idea when it actually happened or what might have caused it.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;If I deleted an existing printer, and tried to readd it, it would throw errors at me.&lt;/li&gt;&#xA;    &lt;li&gt;Plugging in (known) printers would pop up the dialog &#34;click here to install/download/search for the printer driver&#34;, even though it was installed. Clicking install would give me an error no drivers could be found.&lt;/li&gt;&#xA;    &lt;li&gt;Dymo Labelwriter shizzle stopped working.&lt;/li&gt;&#xA;    &lt;li&gt;The driver list (system pref &amp;gt; printers &amp;gt; add &amp;gt; select printer software) would be empty, while on another Mac it was fully populated.&lt;/li&gt;&#xA;    &lt;li&gt;Mac would never find the printer driver for the printer, requiring manual intervention (but, yea, as the list was empty, there wasn&#39;t much to select).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This is, as you might guess, quite annoying. Unable to print any new labels or print out any papers (and invoices ! -.-) ) I had to use another Mac just for printing.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Okay. This one took a long time to solve.</p>
<p>At some random point after upgrading from Snow Leopard to Mountain Lion was unable to add <em>new</em> printers.</p>
<p>As I don&rsquo;t really add new printers on a daily base, I have no idea when it actually happened or what might have caused it.</p>
<ul>
    <li>If I deleted an existing printer, and tried to readd it, it would throw errors at me.</li>
    <li>Plugging in (known) printers would pop up the dialog "click here to install/download/search for the printer driver", even though it was installed. Clicking install would give me an error no drivers could be found.</li>
    <li>Dymo Labelwriter shizzle stopped working.</li>
    <li>The driver list (system pref &gt; printers &gt; add &gt; select printer software) would be empty, while on another Mac it was fully populated.</li>
    <li>Mac would never find the printer driver for the printer, requiring manual intervention (but, yea, as the list was empty, there wasn't much to select).</li>
</ul>
<p>This is, as you might guess, quite annoying. Unable to print any new labels or print out any papers (and invoices ! -.-) ) I had to use another Mac just for printing.</p>
<p><span style="text-decoration: underline">Things I tried:</span></p>
<ul>
    <li>Thinking it was Dymo driver problem fucking up my ML: reinstall a million different version numbers: didn't help</li>
    <li>Thinking it was Dymo driver problem: remove Dymo from /Library/Printers and reinstall: didn't help</li>
    <li>Manually select the driver when trying to add a printer (Dymo printer in my case, under /Library/Printers/Dymo/bla/something): didn't work</li>
    <li>Reinstall Mac OS X ML without formatting: didn't help</li>
    <li>wipe drive, reinstall and restore all my files/settings: didn't help</li>
    <li>wipe drive, reinstall mac os x ML cleaning and start fresh: 50% of the newly installed apps were crashing (for example: Chrome was unable to start on a _clean_ system), but this is probably an entire different issue. Although I was starting to think my SSD or RAM was fucked.</li>
    <li>wipe drive, reinstall and restore only a part of my files: after trying a few times I found out NOT importing "other files" (which was, the first time I tried, around 20-30Gb... no idea what that was) and "personal settings" (but network settings were just fine): this caused printers to appear in my printer driver list again. Hooray!
However:
<ul>
    <li>Installing my network printer at home (Xerox) worked, but caused the driver list to go empty again, and printing actually never worked (at this point I was blaming Xerox for having shitty drivers, but I was wrong)</li>
    <li>(after retrying a wipe-reinstall-half-import:) Installing the Dymo printer worked, but the Dymo software couldn't recognise any printer and this caused my driver list to be empty again</li>
</ul>
</li>
    <li>(by now you can guess how many hours I've spent on this shit while I definitely had more useful things to do).</li>
    <li>Tried <a href="https://discussions.apple.com/thread/4070108?start=0&amp;tstart=0" target="_blank" rel="noopener noreferrer">manually downloading</a> printers</li>
    <li>and probably a lot of other stuff I would rather forget about</li>
</ul>
<p><span style="text-decoration: underline">The solution:</span></p>
<p>After thinking whether I should just buy a new Mac and start fresh (I did actually never wipe my data since, well, probably my Powerbook), and been carrying the same settings and files over my various Macs. But I am just not ready to spend another 2500 euro on a Mac right now.</p>
<p>For, perhaps the first time ever, I went to ~/Library/Printers with Finder&hellip; I noticed all my printers were still in that list (even if I hadn&rsquo;t any printers in system pref). And they are executable packages. They were .app packages actually.</p>
<p>Do note the difference between /Library and ~/Library.</p>
<p>Double clicking any of them resulted in a new yet very useful error message: &ldquo;print service is not available&rdquo;.</p>
<p>After a quick Google I came upon <a href="http://support.apple.com/kb/TS1975" target="_blank" rel="noopener noreferrer">this page</a> (which, for some reason is outdated), and that leads to <a href="http://support.apple.com/kb/HT1341" target="_blank" rel="noopener noreferrer">this page</a> (which doesn&rsquo;t include ML and the Lion explanation I didn&rsquo;t quite understand). But after some more Googling: <a href="https://web.archive.org/web/20150214004318/http://support.apple.com:80/kb/PH11143" target="_blank" rel="noopener noreferrer">tadaaa</a> (#3): Ctrl-click (or right click) in the (probably non existing) list of printers and select &ldquo;reset printing system&rdquo;. I have no idea what this does, but suddenly driver names populated my driver list again. Hooray.</p>
<p>Disclaimer: I have yet to add an other printer (I don&rsquo;t have any printers in my apartment, only at my parents&rsquo; house or at the office).</p>
<p><span style="text-decoration: underline">Things I love more and more:</span></p>
<p>Time Machine!</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>printer</category>
    </item>
    
    <item>
      <title>Adium refusing to remember passwords</title>
      <link>https://yeri.be/adium-refusing-to-remember-passwords/</link>
      <pubDate>Tue, 27 Nov 2012 12:52:12 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/adium-refusing-to-remember-passwords/</guid>
      <description>&lt;p&gt;I reinstalled my Mountain Lion, and since then Adium keeps asking for passwords on every Adium restart/startup. Understandably, this is quite annoying.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve tried the following:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;readd the accounts&lt;/li&gt;&#xA;&#x9;&lt;li&gt;reinstall adium&lt;/li&gt;&#xA;&#x9;&lt;li&gt;run keychain first aid&lt;/li&gt;&#xA;&#x9;&lt;li&gt;check &lt;a href=&#34;http://adium.im/help/pgs/Troubleshooting-PersistentPromptsForPasswords.html&#34; target=&#34;_blank&#34;&gt;this&lt;/a&gt;&lt;/li&gt;&#xA;&#x9;&lt;li&gt;reboot&lt;/li&gt;&#xA;&#x9;&lt;li&gt;pray to the gods, old and new&lt;/li&gt;&#xA;&#x9;&lt;li&gt;check console (which is spawning a thousand million errors about read access denied, but Google told me it&#39;s a known Mountain Lion bug)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;update to Mountain Lion 10.8.2&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;What I did to solve it (I believe):&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;Uninstall Adium completely (&lt;a href=&#34;http://adium.im/help/pgs/Miscellaneous-Uninstalling.html&#34; target=&#34;_blank&#34;&gt;tada&lt;/a&gt;)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;install 10.8.2 (well, I happen to reboot just after uninstalling and reinstall Adium, so I&#39;m unsure whether the first or 2nd point was most useful).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;And it&#39;s now working correctly. So far.&#xA;&lt;p&gt;Downside: have to readd all accounts (Google 2-step verification fun, and time to delete those old accounts (xmpp/icq) where I forgot the passwords), and reset all your settings.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I reinstalled my Mountain Lion, and since then Adium keeps asking for passwords on every Adium restart/startup. Understandably, this is quite annoying.</p>
<p>I&rsquo;ve tried the following:</p>
<ul>
	<li>readd the accounts</li>
	<li>reinstall adium</li>
	<li>run keychain first aid</li>
	<li>check <a href="http://adium.im/help/pgs/Troubleshooting-PersistentPromptsForPasswords.html" target="_blank">this</a></li>
	<li>reboot</li>
	<li>pray to the gods, old and new</li>
	<li>check console (which is spawning a thousand million errors about read access denied, but Google told me it's a known Mountain Lion bug)</li>
	<li>update to Mountain Lion 10.8.2</li>
</ul>
What I did to solve it (I believe):
<ul>
	<li>Uninstall Adium completely (<a href="http://adium.im/help/pgs/Miscellaneous-Uninstalling.html" target="_blank">tada</a>)</li>
	<li>install 10.8.2 (well, I happen to reboot just after uninstalling and reinstall Adium, so I'm unsure whether the first or 2nd point was most useful).</li>
</ul>
And it's now working correctly. So far.
<p>Downside: have to readd all accounts (Google 2-step verification fun, and time to delete those old accounts (xmpp/icq) where I forgot the passwords), and reset all your settings.</p>
<p>Edit: it has been confirmed by Adium it&rsquo;s enough to just upgrade to Mountain Lion 10.8.2 to solve this problem. No need to delete all your settings &amp; accounts like I did&hellip; ;)</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>adium</category>
    </item>
    
    <item>
      <title>Mac os (Mountain) Lion &#43; external display &#43; sleep when closing the lid</title>
      <link>https://yeri.be/mac-os-mountain-lion-external-display-sleep-when-closing-the-lid/</link>
      <pubDate>Wed, 05 Sep 2012 22:13:41 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mac-os-mountain-lion-external-display-sleep-when-closing-the-lid/</guid>
      <description>&lt;p&gt;I recently dared to upgrade from Snow Leopard (10.6) to Mountain Lion (10.8), skipping Lion (10.7) altogether.&lt;/p&gt;&#xA;&lt;p&gt;One of the mayor disturbances I had, was when I was using my Macbook Pro at my home office. I use an external display (some Samsung SyncMaster) as well as my MBP&amp;rsquo;s main display.&lt;/p&gt;&#xA;&lt;p&gt;I put my MBP to sleep by simply closing the lid, keeping the power source and external display attached.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I recently dared to upgrade from Snow Leopard (10.6) to Mountain Lion (10.8), skipping Lion (10.7) altogether.</p>
<p>One of the mayor disturbances I had, was when I was using my Macbook Pro at my home office. I use an external display (some Samsung SyncMaster) as well as my MBP&rsquo;s main display.</p>
<p>I put my MBP to sleep by simply closing the lid, keeping the power source and external display attached.</p>
<p>Pre-Lion this resulted in my MBP neatly going to sleep mode, in Mountain Lion this resulted in Mac OS using the external display as sole display and keeping the MBP running&hellip; Not something I was interested in, as it would either require me to unplug power before closing the lid or manually clicking the sleep button for my MBP to go to sleep.</p>
<p>After some great searching, I came along <a href="https://discussions.apple.com/thread/3194909?start=30&amp;tstart=0" target="_blank">this post</a> (page 3 and 4 have useful information) and I&rsquo;ll summarize it here:</p>
<ol>
	<li>Unplug your external display</li>
	<li>open Terminal (via spotlight for example) and type:
<code>sudo nvram boot-args="iog=0x0"</code>
</li>
	<li>Type your Mac password</li>
	<li>Reboot and wait for Mac OS X to fully boot</li>
	<li>Plug your external display back in. The resolution might be wrong and it might not recognise your display.</li>
	<li>Go to sleep by closing the lid. It should now work correctly.</li>
	<li>Upon reopening, the resolution will be fixed (if not, close and reopen or replug the external display -- I'm sure it'll be solved now).</li>
</ol>
I'll add this info as well that <a id="jive-15786396788632820814243" href="https://discussions.apple.com/people/jk10003" rel="nofollow" data-externalid="" data-username="jk10003" data-avatarid="1316">jk10003</a> added:
<blockquote>If it screws up your system, just zap the PRAM next boot (cmd-opt-p-r) and you'll be back to the default Lion state. Or if you can still get into terminal, this command will get you back to Lion's default state as well:
<pre>sudo nvram -d boot-args</pre>
</blockquote>
&nbsp;
<p> </p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>hardware</category><category>software</category>
      <category>mac os x</category>
    </item>
    
    <item>
      <title>Gentoo &amp; Samba hanging boot and refusing to start</title>
      <link>https://yeri.be/gentoo-samba-hanging-boot-and-refusing-to-start/</link>
      <pubDate>Mon, 13 Aug 2012 16:39:39 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/gentoo-samba-hanging-boot-and-refusing-to-start/</guid>
      <description>&lt;p&gt;I recently took a server from for maintenance (PSU burned down) and quickly noticed it hung at boot (hangs at Samba starting).&lt;/p&gt;&#xA;&lt;p&gt;I went into interactive boot mode and skipped Samba.&lt;/p&gt;&#xA;&lt;p&gt;Thinking it was a networking issue (server has static IP &amp;amp; routing set up) which didn&amp;rsquo;t match my home network.&lt;/p&gt;&#xA;&lt;p&gt;Set up dhcp, changed the gateway, and started restarting samba from command line.&lt;/p&gt;&#xA;&lt;p&gt;It always resulted in something like this:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I recently took a server from for maintenance (PSU burned down) and quickly noticed it hung at boot (hangs at Samba starting).</p>
<p>I went into interactive boot mode and skipped Samba.</p>
<p>Thinking it was a networking issue (server has static IP &amp; routing set up) which didn&rsquo;t match my home network.</p>
<p>Set up dhcp, changed the gateway, and started restarting samba from command line.</p>
<p>It always resulted in something like this:</p>
<pre>BroServ ~ # /etc/init.d/samba restart
 * samba -&gt; start: smbd ...
<span style="color: #808080;">**** HANGS INDEFINITELY **** </span><br />^C * * samba: caught SIGINT, abortingstart-stop-daemon: caught SIGINT, aborting
 [ !! ]v ~ # 
 * samba -&gt; start: nmbd ...
 * start-stop-daemon: /usr/sbin/nmbd is already running [ !! ]
 * Error: starting services (see system logs)
 * samba -&gt; stop: smbd ... [ ok ]
 * samba -&gt; stop: nmbd ...</pre>
<p>Could cancel it with ctrl + c (which I couldn&rsquo;t do at boot).</p>
<p>Tried to recompile CUPS &amp; Samba. Upgraded kernel from 2.6.30 to 3.3.8. Always kept hanging. Google wasn&rsquo;t really helpful. Many people experienced Samba hanging boot process, but there was never one solution to the problem.</p>
<p>The logs showed something along these lines:</p>
<pre>[2012/08/04 16:37:47, 0] smbd/server.c:1141(main)
 smbd version 3.5.15 started.
 Copyright Andrew Tridgell and the Samba Team 1992-2010
[2012/08/04 16:37:47.783423, 0] param/loadparm.c:7668(lp_do_parameter)
 Global parameter guest account found in service section!
[2012/08/04 16:37:47.783520, 0] param/loadparm.c:7668(lp_do_parameter)
 Global parameter guest account found in service section!</pre>
<p>Which basically didn&rsquo;t say much except something about guest account being in the Global section of the config. But at the same time, it had worked for eons before.</p>
<p>However, I went to take a look at noticed this in the Global section:</p>
<pre>guest ok = yes</pre>
<p>And removed it from that section and restarted Samba:</p>
<pre>BroServ ~ # ps aux | grep smb
root 2990 0.0 0.0 4064 576 pts/1 S+ 16:37 0:00 tail -f /var/log/samba/log.smbd
root 3026 0.0 0.0 6368 716 pts/0 S+ 16:38 0:00 grep --colour=auto smb
BroServ ~ # ps aux | grep nmb 
root 2729 0.0 0.0 44008 2736 ? Ss 16:25 0:00 /usr/sbin/nmbd -D
root 3028 0.0 0.0 6368 716 pts/0 S+ 16:38 0:00 grep --colour=auto nmb
BroServ ~ # kill -9 2729
BroServ ~ # ps aux | grep nmb
root 3030 0.0 0.0 6368 712 pts/0 S+ 16:38 0:00 grep --colour=auto nmb
BroServ ~ # /etc/init.d/samba restart 
 * samba -&gt; start: smbd ... [<span style="color: #008000;"> ok</span> ]
 * samba -&gt; start: nmbd ... [ <span style="color: #008000;">ok</span> ]
BroServ ~ # /etc/init.d/samba restart
 * samba -&gt; stop: smbd ... [ <span style="color: #008000;">ok</span> ]
 * samba -&gt; stop: nmbd ... [ <span style="color: #008000;">ok</span> ]
 * samba -&gt; start: smbd ... [ <span style="color: #008000;">ok</span> ]
 * samba -&gt; start: nmbd ... [ <span style="color: #008000;">ok</span> ]
BroServ ~ # /etc/init.d/samba restart
 * samba -&gt; stop: smbd ... [ <span style="color: #008000;">ok</span> ]
 * samba -&gt; stop: nmbd ... [ <span style="color: #008000;">ok</span> ]
 * samba -&gt; start: smbd ... [ <span style="color: #008000;">ok</span> ]
 * samba -&gt; start: nmbd ... [ <span style="color: #008000;">ok</span> ]
BroServ ~ #</pre>
<p>Odd, as the log still shows the same error line:</p>
<pre>[2012/08/04 16:38:29, 0] smbd/server.c:1141(main)
<span style="color: #008000;"> smbd version 3.5.15 started. </span> Copyright Andrew Tridgell and the Samba Team 1992-2010
[2012/08/04 16:38:29.491274, 0] param/loadparm.c:7668(lp_do_parameter)
<span style="color: #ff0000;"> Global parameter guest account found in service section! </span>
[2012/08/04 16:38:29.491343, 0] param/loadparm.c:7668(lp_do_parameter)
 Global parameter guest account found in service section!</pre>
<p>But at least it&rsquo;s starting up now&hellip;</p>
<p>So, what have we learned? Config mistakes can hang Samba and it will result in almost no output to the logs whatsoever.</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>samba</category>
    </item>
    
    <item>
      <title>Turing machine using Lego</title>
      <link>https://yeri.be/turing-machine-using-lego/</link>
      <pubDate>Sat, 23 Jun 2012 15:06:12 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/turing-machine-using-lego/</guid>
      <description>&lt;center&gt;&#xA;&lt;iframe src=&#34;https://player.vimeo.com/video/44202270?color=ff0179&#34; frameborder=&#34;0&#34; width=&#34;600&#34; height=&#34;300&#34;&gt;&lt;/iframe&gt;&#xA;&lt;/center&gt;&#xA;&lt;p&gt;(&lt;em&gt;&lt;a href=&#34;https://web.archive.org/web/20200224011310/http://legoturingmachine.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Source&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<center>
<iframe src="https://player.vimeo.com/video/44202270?color=ff0179" frameborder="0" width="600" height="300"></iframe>
</center>
<p>(<em><a href="https://web.archive.org/web/20200224011310/http://legoturingmachine.org/" target="_blank" rel="noopener noreferrer">Source</a></em>).</p>
]]></content:encoded>
      <category>hardware</category><category>software</category>
      <category>lego</category><category>vimeo</category>
    </item>
    
    <item>
      <title>Munin &amp; Bind9_rndc</title>
      <link>https://yeri.be/munin-bind9_rndc/</link>
      <pubDate>Mon, 18 Jun 2012 17:40:32 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/munin-bind9_rndc/</guid>
      <description>&lt;pre&gt;2012/06/18-16:30:03 [28214] Error output from bind9_rndc:&#xA;2012/06/18-16:30:03 [28214] rndc: error: none:0: open: /etc/bind/rndc.key: permission denied&#xA;2012/06/18-16:30:03 [28214] rndc: could not load rndc configuration&lt;/pre&gt;&#xA;&lt;p&gt;However, via command line (and user root) it works:&lt;/p&gt;&#xA;&lt;pre&gt;/etc/munin/plugins # ./bind9_rndc &#xA;query_recursion.value 0&#xA;query_success.value 80&#xA;query_nxrrset.value 17&#xA;query_requests.value 104&#xA;query_failure.value 0&#xA;query_duplicates.value 0&#xA;query_nonauth_answer.value 0&#xA;query_nxdomain.value 4&#xA;query_auth_answer.value 101&#xA;query_responses.value 104&lt;/pre&gt;&#xA;&lt;p&gt;Solution:&lt;/p&gt;&#xA;&lt;p&gt;add this to &lt;em&gt;/etc/munin/plugin-conf.d/munin-node&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;pre&gt;[bind_rndc]&#xA;user bind&lt;/pre&gt;&#xA;&lt;p&gt;and be sure the key has the right ownership:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<pre>2012/06/18-16:30:03 [28214] Error output from bind9_rndc:
2012/06/18-16:30:03 [28214] rndc: error: none:0: open: /etc/bind/rndc.key: permission denied
2012/06/18-16:30:03 [28214] rndc: could not load rndc configuration</pre>
<p>However, via command line (and user root) it works:</p>
<pre>/etc/munin/plugins # ./bind9_rndc 
query_recursion.value 0
query_success.value 80
query_nxrrset.value 17
query_requests.value 104
query_failure.value 0
query_duplicates.value 0
query_nonauth_answer.value 0
query_nxdomain.value 4
query_auth_answer.value 101
query_responses.value 104</pre>
<p>Solution:</p>
<p>add this to <em>/etc/munin/plugin-conf.d/munin-node</em>:</p>
<pre>[bind_rndc]
user bind</pre>
<p>and be sure the key has the right ownership:</p>
<pre>sudo chown root:bind /etc/bind/rndc.key
sudo chmod 644 /etc/bind/rndc.key</pre>
<p>and restart munin-node.</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>server status</category>
    </item>
    
    <item>
      <title>Use Google.com instead of .be in Chrome</title>
      <link>https://yeri.be/use-google-com-instead-of-be-in-chrome/</link>
      <pubDate>Sun, 17 Jun 2012 13:56:09 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/use-google-com-instead-of-be-in-chrome/</guid>
      <description>&lt;p&gt;Why?&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;Google.be lags on new features&lt;/li&gt;&#xA;&#x9;&lt;li&gt;no +1 in .be&lt;/li&gt;&#xA;&#x9;&lt;li&gt;no social integration&lt;/li&gt;&#xA;&#x9;&lt;li&gt;no instant search&lt;/li&gt;&#xA;&#x9;&lt;li&gt;probably a million other experiments that run on .com but not on .be&lt;/li&gt;&#xA;&#x9;&lt;li&gt;The black-bar is entirely different on .be, don&#39;t know why&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Better G+ integration, not that I would ever use it&lt;/li&gt;&#xA;&#x9;&lt;li&gt;.be lagged on https as well, and I&#39;m a https fan.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;How?&#xA;&lt;p&gt;In Chrome: &lt;a href=&#34;chrome://chrome/settings/&#34; target=&#34;_blank&#34;&gt;surf to settings&lt;/a&gt; &amp;gt; Manage search engines.&lt;/p&gt;&#xA;&lt;p&gt;Then either delete the default one:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Why?</p>
<ul>
	<li>Google.be lags on new features</li>
	<li>no +1 in .be</li>
	<li>no social integration</li>
	<li>no instant search</li>
	<li>probably a million other experiments that run on .com but not on .be</li>
	<li>The black-bar is entirely different on .be, don't know why</li>
	<li>Better G+ integration, not that I would ever use it</li>
	<li>.be lagged on https as well, and I'm a https fan.</li>
</ul>
How?
<p>In Chrome: <a href="chrome://chrome/settings/" target="_blank">surf to settings</a> &gt; Manage search engines.</p>
<p>Then either delete the default one:</p>
<pre>{google:baseURL}search?{google:RLZ}{google:acceptedSuggestion}{google:originalQueryForSuggestion}
{google:searchFieldtrialParameter}{google:instantFieldTrialGroupParameter}
sourceid=chrome&amp;ie={inputEncoding}&amp;q=%s</pre>
<p>Or just add a random website from the list below, and rename it to &ldquo;Google&rdquo;, &ldquo;Google.com&rdquo; and add this in the last column:</p>
<pre>https://www.google.com/search?{google:RLZ}{google:acceptedSuggestion}
{google:originalQueryForSuggestion}{google:searchFieldtrialParameter}
{google:instantFieldTrialGroupParameter}sourceid=chrome&amp;ie={inputEncoding}&amp;q=%s</pre>
<p>When copy pasting, make sure it becomes one line (e.g. no new lines).</p>
<p>And be sure to make it http<span style="text-decoration: underline;">s</span> and <span style="text-decoration: underline;">www</span>.google.com (not <a href="http://google.com" target="_blank" rel="noopener noreferrer">http://google.com</a> for example), this will increase speed significantly.</p>
]]></content:encoded>
      <category>google</category><category>software</category>
      <category>chrome</category>
    </item>
    
    <item>
      <title>*oops*</title>
      <link>https://yeri.be/oops/</link>
      <pubDate>Fri, 15 Jun 2012 19:49:49 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/oops/</guid>
      <description>&lt;img class=&#34;alignnone  wp-image-4992 aligncenter&#34; alt=&#34;IMG_20120615_101748&#34; src=&#34;https://static.yeri.be/2013/03/IMG_20120615_101748-1024x768.jpg&#34; width=&#34;819&#34; height=&#34;614&#34; /&gt;&#xA;&lt;img class=&#34;alignnone  wp-image-4991 aligncenter&#34; alt=&#34;IMG_20120615_101743&#34; src=&#34;https://static.yeri.be/2013/03/IMG_20120615_101743-1024x768.jpg&#34; width=&#34;819&#34; height=&#34;614&#34; /&gt;</description>
      <content:encoded><![CDATA[<img class="alignnone  wp-image-4992 aligncenter" alt="IMG_20120615_101748" src="https://static.yeri.be/2013/03/IMG_20120615_101748-1024x768.jpg" width="819" height="614" />
<img class="alignnone  wp-image-4991 aligncenter" alt="IMG_20120615_101743" src="https://static.yeri.be/2013/03/IMG_20120615_101743-1024x768.jpg" width="819" height="614" />
]]></content:encoded>
      <category>errors</category><category>hardware</category><category>software</category><category>windows</category>
      <category>nmbs</category>
    </item>
    
    <item>
      <title>The Silencing of Maya</title>
      <link>https://yeri.be/the-silencing-of-maya/</link>
      <pubDate>Thu, 14 Jun 2012 05:29:29 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/the-silencing-of-maya/</guid>
      <description>&lt;p&gt;[&amp;hellip;]&lt;/p&gt;&#xA;&lt;blockquote&gt;The fact that my daughter’s ability to speak is becoming a casualty of a patent battle between two businesses is beyond my comprehension.  This is a patent issue, a monetary issue, a legal issue, a business issue.  This should be handled in a business vs. business way, within the court system. PRC’s decision to fight for the removal of this app from the iTunes store isn’t just an aggressive move against Speak for Yourself, it’s an attack on my child, the other children using this app, and the children who are ready to begin using this app but now cannot.&lt;/blockquote&gt;&#xA;[...]&#xA;&lt;p&gt;&lt;em&gt;&lt;a href=&#34;http://niederfamily.blogspot.be/2012/06/silencing-of-maya.html&#34; target=&#34;_blank&#34;&gt;Source&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>[&hellip;]</p>
<blockquote>The fact that my daughter’s ability to speak is becoming a casualty of a patent battle between two businesses is beyond my comprehension.  This is a patent issue, a monetary issue, a legal issue, a business issue.  This should be handled in a business vs. business way, within the court system. PRC’s decision to fight for the removal of this app from the iTunes store isn’t just an aggressive move against Speak for Yourself, it’s an attack on my child, the other children using this app, and the children who are ready to begin using this app but now cannot.</blockquote>
[...]
<p><em><a href="http://niederfamily.blogspot.be/2012/06/silencing-of-maya.html" target="_blank">Source</a>.</em></p>
]]></content:encoded>
      <category>software</category>
      <category>patent</category>
    </item>
    
    <item>
      <title>I know someone whose 2-factor phone authentication was hacked…</title>
      <link>https://yeri.be/i-know-someone-whose-2-factor-phone-authentication-was-hacked/</link>
      <pubDate>Tue, 12 Jun 2012 18:29:59 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/i-know-someone-whose-2-factor-phone-authentication-was-hacked/</guid>
      <description>&lt;p&gt;[&amp;hellip;]&lt;/p&gt;&#xA;&lt;blockquote&gt;Attacker finally says to friend “I know all your details, I know all about you; if you let me get away with a little bit of money, I will leave you alone.”  And then a negotiation on how much is a little bit proceeds.  Friend says “I’ll think about it” and hangs up.&lt;/blockquote&gt;&#xA;[...]&#xA;&lt;p&gt;&lt;em&gt;&lt;a href=&#34;http://williamedwardscoder.tumblr.com/post/24949768311/i-know-someone-whose-2-factor-phone-authentication-was&#34; target=&#34;_blank&#34;&gt;Source&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>[&hellip;]</p>
<blockquote>Attacker finally says to friend “I know all your details, I know all about you; if you let me get away with a little bit of money, I will leave you alone.”  And then a negotiation on how much is a little bit proceeds.  Friend says “I’ll think about it” and hangs up.</blockquote>
[...]
<p><em><a href="http://williamedwardscoder.tumblr.com/post/24949768311/i-know-someone-whose-2-factor-phone-authentication-was" target="_blank">Source</a></em>.</p>
]]></content:encoded>
      <category>errors</category><category>misc</category><category>software</category>
      <category>hacking</category>
    </item>
    
    <item>
      <title>Greatly increase Chrome performance</title>
      <link>https://yeri.be/greatly-increase-chrome-performance/</link>
      <pubDate>Mon, 28 May 2012 21:23:38 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/greatly-increase-chrome-performance/</guid>
      <description>&lt;p&gt;Using experiments.&lt;/p&gt;&#xA;&lt;p&gt;My Chrome version: 19.0.1084.52 (mac)&lt;/p&gt;&#xA;&lt;p&gt;Surf to: &lt;a href=&#34;chrome://flags/&#34; target=&#34;_blank&#34;&gt;chrome://flags/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I enabled following flags, and so far it&amp;rsquo;s still working great:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;Threaded compositing Mac, Windows, Linux, Chrome OS&lt;/li&gt;&#xA;&#x9;&lt;li&gt;GPU Accelerated SVG and CSS Filters Mac, Windows, Linux, Chrome OS&lt;/li&gt;&#xA;&#x9;&lt;li&gt;HTTP Pipelining Mac, Windows, Linux, Chrome OS&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Built-in Asynchronous DNS Mac, Windows, Linux, Chrome OS&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;Pipelining requires a somewhat more decent internet connection (as in, don&#39;t use it while on EDGE on the train).&#xA;&lt;p&gt;There are a bunch of other cool experiments to play with, and be sure to check it out after every major Chrome update.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Using experiments.</p>
<p>My Chrome version: 19.0.1084.52 (mac)</p>
<p>Surf to: <a href="chrome://flags/" target="_blank">chrome://flags/</a></p>
<p>I enabled following flags, and so far it&rsquo;s still working great:</p>
<ul>
	<li>Threaded compositing Mac, Windows, Linux, Chrome OS</li>
	<li>GPU Accelerated SVG and CSS Filters Mac, Windows, Linux, Chrome OS</li>
	<li>HTTP Pipelining Mac, Windows, Linux, Chrome OS</li>
	<li>Built-in Asynchronous DNS Mac, Windows, Linux, Chrome OS</li>
</ul>
Pipelining requires a somewhat more decent internet connection (as in, don't use it while on EDGE on the train).
<p>There are a bunch of other cool experiments to play with, and be sure to check it out after every major Chrome update.</p>
<p>By the way, check out this if you haven&rsquo;t done so yet: <a href="chrome://chrome-urls/" target="_blank">chrome://chrome-urls/</a></p>
]]></content:encoded>
      <category>google</category><category>software</category>
      <category>chrome</category>
    </item>
    
    <item>
      <title>Everything Is A Remix</title>
      <link>https://yeri.be/everything-is-a-remix/</link>
      <pubDate>Fri, 13 Apr 2012 12:20:48 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/everything-is-a-remix/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;100%&#34; height=&#34;420&#34; src=&#34;https://www.youtube.com/embed/jaA8DMVOYhg?rel=0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe width="100%" height="420" src="https://www.youtube.com/embed/jaA8DMVOYhg?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>www</category>
      <category>copyright</category><category>politics</category><category>youtube</category>
    </item>
    
    <item>
      <title>i-Vlaanderen - De Vlaamse overheid en open data</title>
      <link>https://yeri.be/i-vlaanderen-de-vlaamse-overheid-en-open-data/</link>
      <pubDate>Fri, 16 Mar 2012 12:11:31 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/i-vlaanderen-de-vlaamse-overheid-en-open-data/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/UwQkVXvv9qw&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe width="560" height="315" src="https://www.youtube.com/embed/UwQkVXvv9qw" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category>
      <category>belgium</category><category>opendata</category><category>politics</category>
    </item>
    
    <item>
      <title>A future for the IT professional ?</title>
      <link>https://yeri.be/a-future-for-the-it-professional/</link>
      <pubDate>Thu, 08 Mar 2012 18:52:51 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/a-future-for-the-it-professional/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe src=&#34;https://www.slideshare.net/slideshow/embed_code/11765530&#34; width=&#34;600&#34; height=&#34;450&#34; frameborder=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; scrolling=&#34;no&#34;&gt;&lt;/iframe&gt;   &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe src="https://www.slideshare.net/slideshow/embed_code/11765530" width="600" height="450" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>   </p>
]]></content:encoded>
      <category>hardware</category><category>misc</category><category>software</category><category>www</category>
      <category>slideshare</category>
    </item>
    
    <item>
      <title>FlatTurtle @ Atlantis</title>
      <link>https://yeri.be/flatturtle-atlantis/</link>
      <pubDate>Mon, 27 Feb 2012 09:22:18 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/flatturtle-atlantis/</guid>
      <description>&lt;p&gt;We&amp;rsquo;re quite a &lt;a href=&#34;https://yeri.be/flatturtle-is-go&#34;&gt;while later&lt;/a&gt;, but this is what it&amp;rsquo;s starting to look like&amp;hellip;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;http://www.flickr.com/photos/tuinslak/6928703963/in/photostream/lightbox/&#34;&gt;&lt;img class=&#34;alignnone&#34; title=&#34;FlatTurtle @ Atlantis (Access building)&#34; src=&#34;http://farm8.staticflickr.com/7181/6928703963_646009240e_z.jpg&#34; alt=&#34;&#34; width=&#34;640&#34; height=&#34;480&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Our 46&amp;quot; Samsung screen with a &lt;a href=&#34;http://www.genesi-usa.com/products/efika&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Genesi&amp;rsquo;s Efika&lt;/a&gt; at our (temporary) &lt;a href=&#34;http://www.flickr.com/photos/tuinslak/6831202115/in/photostream/lightbox/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;o&lt;/a&gt;-&lt;a href=&#34;http://www.flickr.com/photos/tuinslak/6831200359/in/photostream/lightbox/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;f&lt;/a&gt;-&lt;a href=&#34;http://www.flickr.com/photos/tuinslak/6831199467/in/photostream/lightbox/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;f&lt;/a&gt;-&lt;a href=&#34;http://www.flickr.com/photos/tuinslak/6811406965/in/photostream/lightbox/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;f&lt;/a&gt;-&lt;a href=&#34;http://www.flickr.com/photos/tuinslak/6831198597/in/photostream/lightbox/&#34;&gt;i&lt;/a&gt;-&lt;a href=&#34;http://www.flickr.com/photos/tuinslak/6812666047/in/photostream/lightbox/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;c&lt;/a&gt;-&lt;a href=&#34;http://www.flickr.com/photos/tuinslak/6811411247/in/photostream/lightbox/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;e&lt;/a&gt;, next to L&amp;rsquo;Oreal in St. Agatha Berchem.&lt;/p&gt;&#xA;&lt;p&gt;Still lots and lots to do, but we&amp;rsquo;re slowly starting to deploy InfoScreens all over Brussels.&lt;/p&gt;&#xA;&lt;p&gt;Be sure to &lt;a href=&#34;http://flatturtle.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;provide feedback&lt;/a&gt; and to connect to the wireless Access Point &amp;ldquo;FlatTurtle.com&amp;rdquo; (unless our customer explicitly asked not to provide free WiFi ;)) near every screen.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>We&rsquo;re quite a <a href="https://yeri.be/flatturtle-is-go">while later</a>, but this is what it&rsquo;s starting to look like&hellip;</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/tuinslak/6928703963/in/photostream/lightbox/"><img class="alignnone" title="FlatTurtle @ Atlantis (Access building)" src="http://farm8.staticflickr.com/7181/6928703963_646009240e_z.jpg" alt="" width="640" height="480" /></a></p>
<p>Our 46&quot; Samsung screen with a <a href="http://www.genesi-usa.com/products/efika" target="_blank" rel="noopener noreferrer">Genesi&rsquo;s Efika</a> at our (temporary) <a href="http://www.flickr.com/photos/tuinslak/6831202115/in/photostream/lightbox/" target="_blank" rel="noopener noreferrer">o</a>-<a href="http://www.flickr.com/photos/tuinslak/6831200359/in/photostream/lightbox/" target="_blank" rel="noopener noreferrer">f</a>-<a href="http://www.flickr.com/photos/tuinslak/6831199467/in/photostream/lightbox/" target="_blank" rel="noopener noreferrer">f</a>-<a href="http://www.flickr.com/photos/tuinslak/6811406965/in/photostream/lightbox/" target="_blank" rel="noopener noreferrer">f</a>-<a href="http://www.flickr.com/photos/tuinslak/6831198597/in/photostream/lightbox/">i</a>-<a href="http://www.flickr.com/photos/tuinslak/6812666047/in/photostream/lightbox/" target="_blank" rel="noopener noreferrer">c</a>-<a href="http://www.flickr.com/photos/tuinslak/6811411247/in/photostream/lightbox/" target="_blank" rel="noopener noreferrer">e</a>, next to L&rsquo;Oreal in St. Agatha Berchem.</p>
<p>Still lots and lots to do, but we&rsquo;re slowly starting to deploy InfoScreens all over Brussels.</p>
<p>Be sure to <a href="http://flatturtle.com/" target="_blank" rel="noopener noreferrer">provide feedback</a> and to connect to the wireless Access Point &ldquo;FlatTurtle.com&rdquo; (unless our customer explicitly asked not to provide free WiFi ;)) near every screen.</p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category><category>irail</category>
      <category>flatturtle</category><category>infoscreen</category>
    </item>
    
    <item>
      <title>Adium &amp; Facebook</title>
      <link>https://yeri.be/adium-facebook/</link>
      <pubDate>Thu, 02 Feb 2012 01:17:27 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/adium-facebook/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re like me, and been unable to log in to your Facebook chat through &lt;a href=&#34;http://adium.im/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Adium&lt;/a&gt; for months&amp;hellip; This is the fix:&lt;/p&gt;&#xA;&lt;p&gt;Basically, when adding your Facebook account, Adium opens some webpage asking you to login. I always logged in using my e-mail address (as&amp;hellip; that was what the page was actually asking!).&lt;/p&gt;&#xA;&lt;p&gt;I always managed to successfully login. Facebook then asked to identify my device (&amp;ldquo;Adium&amp;rdquo; or whatever).&lt;/p&gt;&#xA;&lt;p&gt;However, here the problems started. Whenever I clicked save, I just ended up on the same page again, asking me to fill in my device name.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>If you&rsquo;re like me, and been unable to log in to your Facebook chat through <a href="http://adium.im/" target="_blank" rel="noopener noreferrer">Adium</a> for months&hellip; This is the fix:</p>
<p>Basically, when adding your Facebook account, Adium opens some webpage asking you to login. I always logged in using my e-mail address (as&hellip; that was what the page was actually asking!).</p>
<p>I always managed to successfully login. Facebook then asked to identify my device (&ldquo;Adium&rdquo; or whatever).</p>
<p>However, here the problems started. Whenever I clicked save, I just ended up on the same page again, asking me to fill in my device name.</p>
<p>Checking my devices in <a href="https://www.facebook.com/settings?tab=security" target="_blank" rel="noopener noreferrer">Account Settings</a>, I saw a million Adiums got added (because of my spam clicking/trying)&hellip;</p>
<p>I even tried to disable the &ldquo;login approvals&rdquo;, thinking that had something to do with it&hellip; But alas.</p>
<p> </p>
<p>Thinking it had something to do with cookies (session cookies not/wrongly saved or something by Adium) I updated to betas&hellip; Many times, and still no fix. This was becoming annoying and pretty odd. Was I the only one have this problem?</p>
<p> </p>
<p>I then tried, instead of using my email address, to use my actual <a href="https://fb.com/yeritiete" target="_blank" rel="noopener noreferrer">account name</a> (&ldquo;facebook.com/YOUR-ACCOUNT-NAME&rdquo;). And guess what&hellip; ;) Yea, I could log in, add the device correctly, and Facebook chat went online right away.</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category><category>www</category>
      <category>adium</category><category>facebook</category>
    </item>
    
    <item>
      <title>There is not enough memory or disk space to run the grammar checker</title>
      <link>https://yeri.be/there-is-not-enough-memory-or-disk-space-to-run-the-grammar-checker/</link>
      <pubDate>Sat, 28 Jan 2012 02:58:01 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/there-is-not-enough-memory-or-disk-space-to-run-the-grammar-checker/</guid><enclosure url="https://static.yeri.be/2012/01/error.jpg" length="0" type="image/jpeg" />
      <description>&lt;p&gt;Word (or Office in general) refusing to get proofing tools to work (spelling checker doesn&#39;t work, spawns these odd errors, won&#39;t find any spelling mistakes, etc).&lt;/p&gt;&#xA;&lt;p&gt;Lots of Googling and running Microsoft &#34;fixit&#34; applications didn&#39;t do much.&lt;/p&gt;&#xA;&lt;p&gt;Simple fix: run setup of the proofing tools again, and select repair, reboot, and all should be good.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.yeri.be/2012/01/error.jpg" alt="There is not enough memory or disk space to run the grammar checker"></p><p>Word (or Office in general) refusing to get proofing tools to work (spelling checker doesn't work, spawns these odd errors, won't find any spelling mistakes, etc).</p>
<p>Lots of Googling and running Microsoft "fixit" applications didn't do much.</p>
<p>Simple fix: run setup of the proofing tools again, and select repair, reboot, and all should be good.</p>
]]></content:encoded>
      <category>errors</category><category>software</category><category>windows</category>
      <category>office</category>
    </item>
    
    <item>
      <title>Blackout</title>
      <link>https://yeri.be/blackout/</link>
      <pubDate>Wed, 18 Jan 2012 00:01:31 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/blackout/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;em&gt;&lt;span style=&#34;color: #000000;&#34;&gt;Never doubt that a small group of thoughtful, committed citizens can change the world.&#xA;Indeed, it is the only thing that ever has.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;&lt;span style=&#34;color: #000000;&#34;&gt;-- Margaret Mead&lt;/span&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><em><span style="color: #000000;">Never doubt that a small group of thoughtful, committed citizens can change the world.
Indeed, it is the only thing that ever has.</span></em></p>
<p style="text-align: left;"><span style="color: #000000;">-- Margaret Mead</span></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>www</category>
      <category>maxim of the day</category><category>piracy</category><category>politics</category><category>warez</category>
    </item>
    
    <item>
      <title>Operation Blackout</title>
      <link>https://yeri.be/operation-blackout/</link>
      <pubDate>Tue, 17 Jan 2012 11:22:10 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/operation-blackout/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe src=&#34;https://www.youtube.com/embed/s26_0L444bs&#34; frameborder=&#34;0&#34; width=&#34;100%&#34; height=&#34;450&#34;&gt;&lt;/iframe&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;Also: &lt;a href=&#34;https://web.archive.org/web/20180626021244/https://wikimediafoundation.org/wiki/English_Wikipedia_anti-SOPA_blackout&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Wikipedia Blackout&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;Oh, and &lt;a href=&#34;http://wordpress.org/news/2012/01/help-stop-sopa-pipa/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Wordpress blackout&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe src="https://www.youtube.com/embed/s26_0L444bs" frameborder="0" width="100%" height="450"></iframe></p>
<p style="text-align: left;">Also: <a href="https://web.archive.org/web/20180626021244/https://wikimediafoundation.org/wiki/English_Wikipedia_anti-SOPA_blackout" target="_blank" rel="noopener">Wikipedia Blackout</a>.</p>
<p style="text-align: left;">Oh, and <a href="http://wordpress.org/news/2012/01/help-stop-sopa-pipa/" target="_blank" rel="noopener">Wordpress blackout</a>.</p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>anonymous</category><category>piracy</category><category>politics</category><category>warez</category><category>youtube</category>
    </item>
    
    <item>
      <title>PIPA</title>
      <link>https://yeri.be/pipa/</link>
      <pubDate>Sat, 14 Jan 2012 10:53:53 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/pipa/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe src=&#34;https://player.vimeo.com/video/31100268?byline=0&amp;amp;portrait=0;color=ff0090&#34; frameborder=&#34;0&#34; width=&#34;100%&#34; height=&#34;338&#34;&gt;&lt;/iframe&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;Also: Reddit &lt;a href=&#34;http://blog.reddit.com/2012/01/stopped-they-must-be-on-this-all.html&#34; target=&#34;_blank&#34;&gt;blog&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe src="https://player.vimeo.com/video/31100268?byline=0&amp;portrait=0;color=ff0090" frameborder="0" width="100%" height="338"></iframe></p>
<p style="text-align: left;">Also: Reddit <a href="http://blog.reddit.com/2012/01/stopped-they-must-be-on-this-all.html" target="_blank">blog</a>.</p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>www</category>
      <category>piracy</category><category>politics</category><category>vimeo</category><category>warez</category>
    </item>
    
    <item>
      <title>Listen Up</title>
      <link>https://yeri.be/listen-up/</link>
      <pubDate>Thu, 12 Jan 2012 10:42:03 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/listen-up/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2012/01/tpb.jpg&#34;&gt;&lt;img class=&#34;alignnone  wp-image-3511 aligncenter&#34; title=&#34;tpb&#34; src=&#34;https://static.yeri.be/2012/01/tpb-1024x710.jpg&#34; alt=&#34;&#34; width=&#34;614&#34; height=&#34;426&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;Thanks to &lt;a href=&#34;https://web.archive.org/web/20170929213323/http://www.sphere.ws/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Sphere&lt;/a&gt; for the screenshot.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><a href="https://static.yeri.be/2012/01/tpb.jpg"><img class="alignnone  wp-image-3511 aligncenter" title="tpb" src="https://static.yeri.be/2012/01/tpb-1024x710.jpg" alt="" width="614" height="426" /></a></p>
<p style="text-align: left;">Thanks to <a href="https://web.archive.org/web/20170929213323/http://www.sphere.ws/" target="_blank" rel="noopener noreferrer">Sphere</a> for the screenshot.</p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>piracy</category><category>politics</category><category>warez</category>
    </item>
    
    <item>
      <title>ACTA</title>
      <link>https://yeri.be/acta-2/</link>
      <pubDate>Mon, 26 Dec 2011 13:51:02 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/acta-2/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;span style=&#34;color: #ff0090;&#34;&gt;Click for larger version.&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2011/12/acta.png&#34;&gt;&lt;img class=&#34;alignnone size-large wp-image-3439&#34; title=&#34;acta&#34; src=&#34;https://static.yeri.be/2011/12/acta-415x1024.png&#34; alt=&#34;&#34; width=&#34;415&#34; height=&#34;1024&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;&lt;em&gt;&lt;a href=&#34;https://plus.google.com/112648813199640203443/posts/DVwcnEdpxrQ&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Source&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><span style="color: #ff0090;">Click for larger version.</span></p>
<p style="text-align: center;"><a href="https://static.yeri.be/2011/12/acta.png"><img class="alignnone size-large wp-image-3439" title="acta" src="https://static.yeri.be/2011/12/acta-415x1024.png" alt="" width="415" height="1024" /></a></p>
<p style="text-align: left;"><em><a href="https://plus.google.com/112648813199640203443/posts/DVwcnEdpxrQ" target="_blank" rel="noopener noreferrer">Source</a></em>.</p>
]]></content:encoded>
      <category>misc</category><category>software</category>
      <category>piracy</category><category>politics</category><category>warez</category>
    </item>
    
    <item>
      <title>The DataTank</title>
      <link>https://yeri.be/the-datatank-2/</link>
      <pubDate>Fri, 23 Dec 2011 08:12:51 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/the-datatank-2/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;100%&#34; height=&#34;360&#34; src=&#34;https://www.youtube.com/embed/3QMpd0BW7bU&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe width="100%" height="360" src="https://www.youtube.com/embed/3QMpd0BW7bU" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
      <category>linux</category><category>software</category><category>irail</category><category>www</category>
      <category>opendata</category><category>thedatatank</category>
    </item>
    
    <item>
      <title>Yourls &#43; WP plugin</title>
      <link>https://yeri.be/yourls-wp-plugin/</link>
      <pubDate>Wed, 21 Dec 2011 03:29:17 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/yourls-wp-plugin/</guid>
      <description>&lt;p&gt;I came against a problem that my &lt;a href=&#34;http://yourls.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Yourls&lt;/a&gt; WordPress plugin refused to generate a short url (it timed out when publishing a post; and it sent a tweet with no url).&lt;/p&gt;&#xA;&lt;p&gt;And when someone visited the post it tried to regenerate a new short url (and this often resulted in 4-5 short urls being created) with title &amp;ldquo;301 moved permanently&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2011/12/wp-yourls.png&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-3424&#34; title=&#34;wp-yourls&#34; src=&#34;https://static.yeri.be/2011/12/wp-yourls-300x185.png&#34; alt=&#34;&#34; width=&#34;300&#34; height=&#34;185&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;Overall, tracking &lt;strong&gt;891&lt;/strong&gt; links, &lt;strong&gt;93,876&lt;/strong&gt; clicks, and counting!&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I came against a problem that my <a href="http://yourls.org/" target="_blank" rel="noopener noreferrer">Yourls</a> WordPress plugin refused to generate a short url (it timed out when publishing a post; and it sent a tweet with no url).</p>
<p>And when someone visited the post it tried to regenerate a new short url (and this often resulted in 4-5 short urls being created) with title &ldquo;301 moved permanently&rdquo;.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2011/12/wp-yourls.png"><img class="alignnone size-medium wp-image-3424" title="wp-yourls" src="https://static.yeri.be/2011/12/wp-yourls-300x185.png" alt="" width="300" height="185" /></a></p>
<p style="text-align: center;">Overall, tracking <strong>891</strong> links, <strong>93,876</strong> clicks, and counting!</p>
I first thought the problem lied with my odd server setup (nginx proxying an nginx proxying an Apache -- don't ask, it's a long story ;)) but manually doing API calls did generate a short url without any problems...
<p>I quickly disabled my tweet-on-publish option and didn&rsquo;t really figure out why this was suddenly happening (except that my yourls site moved to a new server).</p>
<p>That&rsquo;s when I had this magnificent idea&hellip; Check if cURL is installed&hellip; ;)</p>
<p>And guess what; it wasn&rsquo;t.</p>
<p>So be sure to install curl and php5-curl (and to restart Apache). Seems like that solved all my problems!</p>
]]></content:encoded>
      <category>linux</category><category>software</category><category>www</category>
      <category>yourls</category>
    </item>
    
    <item>
      <title>Acta</title>
      <link>https://yeri.be/acta/</link>
      <pubDate>Sat, 26 Nov 2011 17:09:58 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/acta/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe src=&#34;https://www.youtube.com/embed/qlFyoEKV0dE&#34; frameborder=&#34;0&#34; width=&#34;640&#34; height=&#34;360&#34;&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe src="https://www.youtube.com/embed/qlFyoEKV0dE" frameborder="0" width="640" height="360"></iframe></p>
]]></content:encoded>
      <category>misc</category><category>software</category>
      <category>anonymous</category><category>piracy</category><category>politics</category><category>warez</category><category>youtube</category>
    </item>
    
    <item>
      <title>Feature request: Circles plugin</title>
      <link>https://yeri.be/feature-request-circles-plugin/</link>
      <pubDate>Wed, 27 Jul 2011 11:29:06 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/feature-request-circles-plugin/</guid>
      <description>&lt;p&gt;A plugin, for Wordpress and the likes, to display only content to certain &lt;a href=&#34;http://en.wikipedia.org/wiki/Google%2B#Features&#34; target=&#34;_blank&#34;&gt;circles&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Depending on your current logged in Google profile, looks up whether you&amp;rsquo;re in one of my approved circles, and depending on the result shows the content.&lt;/p&gt;&#xA;&lt;p&gt;Idem dito for Flickr, Facebook (lololol), LinkedIn, &amp;hellip;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>A plugin, for Wordpress and the likes, to display only content to certain <a href="http://en.wikipedia.org/wiki/Google%2B#Features" target="_blank">circles</a>.</p>
<p>Depending on your current logged in Google profile, looks up whether you&rsquo;re in one of my approved circles, and depending on the result shows the content.</p>
<p>Idem dito for Flickr, Facebook (lololol), LinkedIn, &hellip;</p>
]]></content:encoded>
      <category>google</category><category>misc</category><category>software</category><category>www</category>
      
    </item>
    
    <item>
      <title>FlatTurtle is go</title>
      <link>https://yeri.be/flatturtle-is-go/</link>
      <pubDate>Mon, 25 Jul 2011 23:46:13 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/flatturtle-is-go/</guid>
      <description>&lt;p&gt;Yay, after many months-o-slack it went finally live a &lt;a href=&#34;http://twitpic.com/5snyk2&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;few days ago&lt;/a&gt;. The prototype that is.&lt;/p&gt;&#xA;&lt;p&gt;Soon in every building ! ;)&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2011/07/20110719_005.jpg&#34;&gt;&lt;img class=&#34;alignnone size-large wp-image-3165&#34; title=&#34;20110719_005&#34; src=&#34;https://static.yeri.be/2011/07/20110719_005-1024x769.jpg&#34; alt=&#34;&#34; width=&#34;614&#34; height=&#34;461&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;a href=&#34;https://static.yeri.be/2011/07/350478002.jpg&#34;&gt;&lt;img class=&#34;size-large wp-image-3166 aligncenter&#34; title=&#34;350478002&#34; src=&#34;https://static.yeri.be/2011/07/350478002-1024x768.jpg&#34; alt=&#34;&#34; width=&#34;614&#34; height=&#34;461&#34; /&gt;&lt;/a&gt;&#xA;Thanks to everyone who helped out! :)</description>
      <content:encoded><![CDATA[<p>Yay, after many months-o-slack it went finally live a <a href="http://twitpic.com/5snyk2" target="_blank" rel="noopener noreferrer">few days ago</a>. The prototype that is.</p>
<p>Soon in every building ! ;)</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2011/07/20110719_005.jpg"><img class="alignnone size-large wp-image-3165" title="20110719_005" src="https://static.yeri.be/2011/07/20110719_005-1024x769.jpg" alt="" width="614" height="461" /></a></p>
<a href="https://static.yeri.be/2011/07/350478002.jpg"><img class="size-large wp-image-3166 aligncenter" title="350478002" src="https://static.yeri.be/2011/07/350478002-1024x768.jpg" alt="" width="614" height="461" /></a>
Thanks to everyone who helped out! :)
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category><category>irail</category>
      <category>flatturtle</category><category>infoscreen</category>
    </item>
    
    <item>
      <title>Shell(s) for my Great Firewall Checker</title>
      <link>https://yeri.be/shells-for-my-great-firewall-checker/</link>
      <pubDate>Sat, 23 Jul 2011 23:38:32 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/shells-for-my-great-firewall-checker/</guid>
      <description>&lt;p&gt;As my last shell has been &lt;a href=&#34;https://github.com/Tuinslak/GFW-URL-checker/tree/master/testResults/cn&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;disconnected&lt;/a&gt; in China (not because I was probing websites, but because the building the Guruplug was in got closed) I&amp;rsquo;m &lt;a href=&#34;https://yeri.be/great-firewall-checker&#34;&gt;looking for shells&lt;/a&gt;. Linux or Unix. With Git installed. I&amp;rsquo;ll barely use any disk space and it will probe the websites at most once/day (at night, when you won&amp;rsquo;t notice it).&lt;/p&gt;&#xA;&lt;p&gt;And not just China, but any country where they tend to censor certain websites.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>As my last shell has been <a href="https://github.com/Tuinslak/GFW-URL-checker/tree/master/testResults/cn" target="_blank" rel="noopener noreferrer">disconnected</a> in China (not because I was probing websites, but because the building the Guruplug was in got closed) I&rsquo;m <a href="https://yeri.be/great-firewall-checker">looking for shells</a>. Linux or Unix. With Git installed. I&rsquo;ll barely use any disk space and it will probe the websites at most once/day (at night, when you won&rsquo;t notice it).</p>
<p>And not just China, but any country where they tend to censor certain websites.</p>
<p>Greatly appreciated. :)</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>china</category><category>firewall</category><category>gfw</category>
    </item>
    
    <item>
      <title>Stuxnet: Anatomy of a Computer Virus</title>
      <link>https://yeri.be/stuxnet-anatomy-of-a-computer-virus/</link>
      <pubDate>Sat, 18 Jun 2011 15:18:34 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/stuxnet-anatomy-of-a-computer-virus/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe src=&#34;https://player.vimeo.com/video/25118844?title=0&amp;amp;byline=0&amp;amp;portrait=0&amp;amp;color=ff0179&#34; width=&#34;601&#34; height=&#34;338&#34; frameborder=&#34;0&#34;&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe src="https://player.vimeo.com/video/25118844?title=0&amp;byline=0&amp;portrait=0&amp;color=ff0179" width="601" height="338" frameborder="0"></iframe></p>
]]></content:encoded>
      <category>software</category>
      <category>vimeo</category><category>virus</category>
    </item>
    
    <item>
      <title>iPhone could not be restored</title>
      <link>https://yeri.be/iphone-could-not-be-restored/</link>
      <pubDate>Mon, 13 Jun 2011 04:07:11 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/iphone-could-not-be-restored/</guid>
      <description>&lt;p&gt;Jailbreaking my old iPhone 2G (Edge version).&lt;/p&gt;&#xA;&lt;p&gt;It was a bit hard to find software that would still allow me to jailbreak this 2G.&lt;/p&gt;&#xA;&lt;p&gt;Soooow, I mirrored all I used.&lt;/p&gt;&#xA;&lt;p&gt;Bootloader: &lt;a href=&#34;https://static.yeri.be/2011/06/iphoneBootloader.zip&#34;&gt;3.9 or 4.6&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;PwnageTool: &lt;a href=&#34;https://static.yeri.be/2011/06/PwnageTool_3.1.5.dmg_.zip&#34;&gt;3.1.5&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Be aware: you will need iTunes 9 (or 8, I guess) &amp;ndash; iTunes 10 gives &lt;a href=&#34;http://twitpic.com/5ala18&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;an error&lt;/a&gt;: &amp;ldquo;iPhone could not be restored. An unknown error occurred (1600).&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Follow basic instructions on the PwnageTool (export mode &amp;gt; you need to select the default IPSW) and you&amp;rsquo;ll get there.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Jailbreaking my old iPhone 2G (Edge version).</p>
<p>It was a bit hard to find software that would still allow me to jailbreak this 2G.</p>
<p>Soooow, I mirrored all I used.</p>
<p>Bootloader: <a href="https://static.yeri.be/2011/06/iphoneBootloader.zip">3.9 or 4.6</a></p>
<p>PwnageTool: <a href="https://static.yeri.be/2011/06/PwnageTool_3.1.5.dmg_.zip">3.1.5</a></p>
<p>Be aware: you will need iTunes 9 (or 8, I guess) &ndash; iTunes 10 gives <a href="http://twitpic.com/5ala18" target="_blank" rel="noopener noreferrer">an error</a>: &ldquo;iPhone could not be restored. An unknown error occurred (1600).&rdquo;</p>
<p>Follow basic instructions on the PwnageTool (export mode &gt; you need to select the default IPSW) and you&rsquo;ll get there.</p>
<p>As IPSW you can use the default IPSW iTunes downloads upon restoring. You&rsquo;ll find the IPSW in ~/Library/iTunes/iPhone Software Updates/ (iTunes 10).</p>
<p>I still had iTunes 9 on my old PowerBook, but I guess you can find the installer on the net somewhere and use a virtual machine or something.</p>
<p>When booting the iPhone in DFU mode, iTunes will find the iPhone in recovery mode. Left click + ALT on the restore button and browse to the custom IPSW.</p>
<p> </p>
<p>And, yes, this iPhone 2G is for sale :) Contact me if interested ;)</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>iphone</category><category>jailbreak</category>
    </item>
    
    <item>
      <title>Data roaming</title>
      <link>https://yeri.be/data-roaming/</link>
      <pubDate>Wed, 18 May 2011 07:50:26 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/data-roaming/</guid>
      <description>&lt;p&gt;I bricked my Nexus S yesterday, while trying to root it (with an howto for an old Android version). As usual I was trying to do too much stuff with too little time (as I had to catch my plane later that evening).&lt;/p&gt;&#xA;&lt;p&gt;I had to root it to get OpenVPN, ssh tunnel, or system wide proxies up and running. Things I needed to by-pass the Great Firewall in China on my mobile.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I bricked my Nexus S yesterday, while trying to root it (with an howto for an old Android version). As usual I was trying to do too much stuff with too little time (as I had to catch my plane later that evening).</p>
<p>I had to root it to get OpenVPN, ssh tunnel, or system wide proxies up and running. Things I needed to by-pass the Great Firewall in China on my mobile.</p>
<p>However, when landing in Beijing, and connecting to Twitter, Facebook, and all that <a href="https://github.com/Tuinslak/GFW-URL-checker/blob/master/testResults/cn/results_nok.csv" target="_blank">other shizzle</a> on my &ldquo;backup&rdquo; Nexus S; I noticed all sites were working just fine. Just a tad slow&hellip;</p>
<p>I was amazed. As if someone turned off the Great Firewall&hellip; ;)</p>
<p>But apparently, when checking what public IP my phone had, it was a Belgian IP address. So basically it seems when <a href="http://business.proximus.be/en/Surf_Mobile_Abroad/SMA_Rates.html" target="_blank">roaming</a>, all traffic is rerouted from, say, China Mobile to Proximus (through a VPN?), and routed to the internet, in my case, from Belgium. Which is pretty cool here in China. Means I can access everything as if I were in Belgium.</p>
<p>Anyway, something I didn&rsquo;t know. Learned something new today. ;)</p>
]]></content:encoded>
      <category>google</category><category>networking</category><category>software</category><category>travel</category>
      <category>china</category><category>mobile</category>
    </item>
    
    <item>
      <title>Chromebook</title>
      <link>https://yeri.be/chromebook/</link>
      <pubDate>Wed, 11 May 2011 23:35:22 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/chromebook/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;iframe width=&#34;100%&#34; height=&#34;390&#34; src=&#34;https://www.youtube.com/embed/TVqe8ieqz10?rel=0&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;Damn, Google is starting to make nifty movies about their products. Actually got me excited. Even though I know it&#39;ll be nothing for me -.-&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><iframe width="100%" height="390" src="https://www.youtube.com/embed/TVqe8ieqz10?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p style="text-align: left;">Damn, Google is starting to make nifty movies about their products. Actually got me excited. Even though I know it'll be nothing for me -.-</p>
]]></content:encoded>
      <category>google</category><category>software</category>
      <category>youtube</category>
    </item>
    
    <item>
      <title>The Datatank</title>
      <link>https://yeri.be/the-datatank/</link>
      <pubDate>Sun, 01 May 2011 15:34:42 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/the-datatank/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&amp;nbsp;&lt;/p&gt;&#xA;&lt;a href=&#34;https://static.yeri.be/2011/04/Poster.png&#34;&gt;&lt;img class=&#34;alignleft size-large wp-image-2972&#34; title=&#34;Poster&#34; src=&#34;https://static.yeri.be/2011/04/Poster-724x1024.png&#34; alt=&#34;&#34; width=&#34;724&#34; height=&#34;1024&#34; /&gt;&lt;/a&gt;&#xA;&lt;p&gt; &lt;/p&gt;&#xA;&lt;p&gt;Via &lt;a href=&#34;http://pieter.thedatatank.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Pieter Colpaert&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: center;">&nbsp;</p>
<a href="https://static.yeri.be/2011/04/Poster.png"><img class="alignleft size-large wp-image-2972" title="Poster" src="https://static.yeri.be/2011/04/Poster-724x1024.png" alt="" width="724" height="1024" /></a>
<p> </p>
<p>Via <a href="http://pieter.thedatatank.com/" target="_blank" rel="noopener noreferrer">Pieter Colpaert</a>.</p>
]]></content:encoded>
      <category>software</category><category>irail</category><category>www</category>
      <category>opendata</category><category>thedatatank</category>
    </item>
    
    <item>
      <title>Productivity improvement</title>
      <link>https://yeri.be/productivity-improvement/</link>
      <pubDate>Sat, 09 Apr 2011 11:17:59 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/productivity-improvement/</guid>
      <description>&lt;p style=&#34;text-align: center;&#34;&gt;&lt;script src=&#34;https://gist.github.com/907373.js&#34;&gt; &lt;/script&gt;&lt;/p&gt;&#xA;&lt;em&gt;&lt;a href=&#34;https://twitter.com/#!/fs111/status/55919550704783360&#34; target=&#34;_blank&#34;&gt;Source&lt;/a&gt;&lt;/em&gt;.</description>
      <content:encoded><![CDATA[<p style="text-align: center;"><script src="https://gist.github.com/907373.js"> </script></p>
<em><a href="https://twitter.com/#!/fs111/status/55919550704783360" target="_blank">Source</a></em>.
]]></content:encoded>
      <category>linux</category><category>software</category>
      <category>git</category>
    </item>
    
    <item>
      <title>socket: Permission denied</title>
      <link>https://yeri.be/socket-permission-denied/</link>
      <pubDate>Wed, 06 Apr 2011 12:00:24 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/socket-permission-denied/</guid>
      <description>&lt;p&gt;After upgrading my &lt;a href=&#34;http://www.flickr.com/photos/tuinslak/5564073644/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Guruplug Display&lt;/a&gt; from Lenny to Squeeze I came along an odd error; every non-root user was unable to access anything related to the internet.&lt;/p&gt;&#xA;&lt;p&gt;NTP:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Mar 26 20:31:50 localhost ntpd[1055]: ./../lib/isc/unix/ifiter_ioctl.c:348:&#xA;unexpected error:&#xA;Mar 26 20:31:50 localhost ntpd[1055]: making interface scan socket:&#xA;Permission denied&#xA;Mar 26 20:35:09 localhost ntpd[1055]: ntpd exiting on signal 15&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Regular user:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;yeri@gplugD ~ $ ping google.be&#xA;ping: unknown host google.be&#xA;yeri@gplugD ~ $ ping 85.12.6.171&#xA;socket: Permission denied&#xA;yeri@gplugD ~ $ ssh localhost&#xA;socket: Permission denied&#xA;ssh: connect to host localhost port 22: Permission denied&lt;/code&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>After upgrading my <a href="http://www.flickr.com/photos/tuinslak/5564073644/" target="_blank" rel="noopener noreferrer">Guruplug Display</a> from Lenny to Squeeze I came along an odd error; every non-root user was unable to access anything related to the internet.</p>
<p>NTP:</p>
<p><code>Mar 26 20:31:50 localhost ntpd[1055]: ./../lib/isc/unix/ifiter_ioctl.c:348:
unexpected error:
Mar 26 20:31:50 localhost ntpd[1055]: making interface scan socket:
Permission denied
Mar 26 20:35:09 localhost ntpd[1055]: ntpd exiting on signal 15</code></p>
<p>Regular user:</p>
<p><code>yeri@gplugD ~ $ ping google.be
ping: unknown host google.be
yeri@gplugD ~ $ ping 85.12.6.171
socket: Permission denied
yeri@gplugD ~ $ ssh localhost
socket: Permission denied
ssh: connect to host localhost port 22: Permission denied</code></p>
<p>Root:</p>
<p><code>gplugD ~ # ping 85.12.6.171 -c 1
PING 85.12.6.171 (85.12.6.171) 56(84) bytes of data.
64 bytes from 85.12.6.171: icmp_req=1 ttl=58 time=37.1 ms
&mdash; 85.12.6.171 ping statistics &mdash;
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 37.145/37.145/37.145/0.000 ms</code></p>
<p>Solution? It&rsquo;s an issue (well, not really an issue, more working like intended) of this kernel flag</p>
<p><code>CONFIG_ANDROID_PARANOID_NETWORK</code></p>
<p>And you can fix it by adding the aid_inet group &ndash; and adding your user(s) too it. Don&rsquo;t forget to add NTP etc as well.</p>
<p><code>gplugD ~ # groupadd -g 3003 aid_inet
gplugD ~ # usermod -G -a aid_inet $YOUR-USER</code></p>
<p>Special thanks to Tim Besard!</p>
<p><em>(My <a href="http://serverfault.com/questions/252261/network-access-issues-after-upgrading-to-squeeze" target="_blank" rel="noopener noreferrer">Serverfault</a> link)</em></p>
<p>Edit, from the Serverfault page:</p>
<blockquote><em>On Android Jelly Bean (4.1) used on the Nexus 7, I had to use the group name <code>inet</code> instead of <code>aid_inet</code>, thus:</em>
<p><code>$ groupadd -g 3004 inet</p>
<h1 id="i-used-3004-instead-of-3003-because-3003-was-already-taken-by-aid_inet">I used 3004 instead of 3003 because 3003 was already taken by aid_inet</h1>
<p>$ usermod -G inet &lt;username&gt;
</code>
<em>Some code snippets from the Android Kernel related to this go here: <a href="https://web.archive.org/web/20120730083915/http://blog.appuarium.com/2011/06/23/how-android-enforces-android-permission-internet/" rel="nofollow"><a href="http://blog.appuarium.com/2011/06/23/how-android-enforces-android-permission-internet/" target="_blank" rel="noopener noreferrer">http://blog.appuarium.com/2011/06/23/how-android-enforces-android-permission-internet/</a></a></em></blockquote></p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>networking</category><category>software</category>
      <category>board</category>
    </item>
    
    <item>
      <title>sudo: must be setuid root</title>
      <link>https://yeri.be/sudo-must-be-setuid-root/</link>
      <pubDate>Tue, 05 Apr 2011 11:50:35 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/sudo-must-be-setuid-root/</guid>
      <description>&lt;p&gt;Got this error on my &lt;a href=&#34;http://www.flickr.com/photos/tuinslak/5564072568/in/set-72157612681729152&#34; target=&#34;_blank&#34;&gt;Guruplug Display&lt;/a&gt; after messing with it.&lt;/p&gt;&#xA;&lt;p&gt;Neither was I able to use su, or any other important command.&lt;/p&gt;&#xA;&lt;p&gt;After many chmods, chowns, and cursing &amp;ndash; check your mount (in /etc/fstab) options&amp;hellip; ;)&lt;/p&gt;&#xA;&lt;p&gt;Be sure / is not mounted with&lt;/p&gt;&#xA;&lt;pre&gt;nosetuid&lt;/pre&gt;&#xA;&lt;p&gt;Reboot and enjoy!&lt;/p&gt;&#xA;&lt;p&gt; &lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Got this error on my <a href="http://www.flickr.com/photos/tuinslak/5564072568/in/set-72157612681729152" target="_blank">Guruplug Display</a> after messing with it.</p>
<p>Neither was I able to use su, or any other important command.</p>
<p>After many chmods, chowns, and cursing &ndash; check your mount (in /etc/fstab) options&hellip; ;)</p>
<p>Be sure / is not mounted with</p>
<pre>nosetuid</pre>
<p>Reboot and enjoy!</p>
<p> </p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>board</category>
    </item>
    
    <item>
      <title>Fixing GrowlMail with Mac OS X 10.6.7 and Mail 4.5</title>
      <link>https://yeri.be/fixing-growlmail-with-mac-os-x-10-6-7-and-mail-4-5/</link>
      <pubDate>Tue, 22 Mar 2011 00:04:15 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/fixing-growlmail-with-mac-os-x-10-6-7-and-mail-4-5/</guid>
      <description>&lt;p&gt;Add following two lines to Info.plist:&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;&#34;&gt;&amp;lt;string&amp;gt;9049EF7D-5873-4F54-A447-51D722009310&amp;lt;/string&amp;gt;&#xA;&amp;lt;string&amp;gt;1C58722D-AFBD-464E-81BB-0E05C108BE06&amp;lt;/string&amp;gt;&lt;/pre&gt;&#xA;&lt;p&gt;Between&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;&#34;&gt;&amp;lt;key&amp;gt;SupportedPluginCompatibilityUUIDs&amp;lt;/key&amp;gt;&#xA;&amp;lt;array&amp;gt;&lt;/pre&gt;&#xA;&lt;p&gt;And&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;&#34;&gt;&amp;lt;/array&amp;gt;&lt;/pre&gt;&#xA;&lt;p&gt;You can find the Info.plist in:&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;&#34;&gt;~/Library/Mail/Bundles/&lt;span style=&#34;color: #ff0000;&#34;&gt;GrowlMail.mailbundle&lt;/span&gt;/Contents/&lt;/pre&gt;&#xA;&lt;p&gt;Or&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Add following two lines to Info.plist:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">&lt;string&gt;9049EF7D-5873-4F54-A447-51D722009310&lt;/string&gt;
&lt;string&gt;1C58722D-AFBD-464E-81BB-0E05C108BE06&lt;/string&gt;</pre>
<p>Between</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">&lt;key&gt;SupportedPluginCompatibilityUUIDs&lt;/key&gt;
&lt;array&gt;</pre>
<p>And</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">&lt;/array&gt;</pre>
<p>You can find the Info.plist in:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">~/Library/Mail/Bundles/<span style="color: #ff0000;">GrowlMail.mailbundle</span>/Contents/</pre>
<p>Or</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">/Library/Mail/Bundles/<span style="color: #ff0000;">GrowlMail.mailbundle</span>/Contents/</pre>
<p>If you already opened Mail (and received the disable warning), it&rsquo;s probably in a folder named &ldquo;Bundles (Disabled)&rdquo;; just move the content to Bundles again.</p>
<p>You can do the same &lsquo;hack&rsquo; with GPGMail; it&rsquo;s located at</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">(~ <em>or</em> /)Library/Mail/Bundles/<span style="color: #ff0000;">GPGMail.mailbundle</span>/Contents/</pre>
<p>These UUIDs can be found in these two files (they get updated every Mac OS X update, and thus break plugins each time):</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">/Applications/Mail.app/Contents/Info.plist
/System/Library/Frameworks/Message.framework/Resources/Info.plist</pre>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>growl</category><category>mail</category>
    </item>
    
    <item>
      <title>Great Firewall checker</title>
      <link>https://yeri.be/great-firewall-checker/</link>
      <pubDate>Sat, 12 Mar 2011 16:37:59 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/great-firewall-checker/</guid>
      <description>&lt;p&gt;An attempt to create a list of major blocked sites in China (or any other country/ISP). It&amp;rsquo;s written entirely in Bash.&lt;/p&gt;&#xA;&lt;p&gt;Github repo &lt;a href=&#34;https://github.com/Tuinslak/GFW-URL-checker&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;riiiiiiight here&lt;/a&gt;. It&amp;rsquo;s used by my &lt;a href=&#34;https://yeri.be/proxy-pac-generator/&#34;&gt;PAC-generator&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The Github page is updated once a day by three hosts. One in &lt;a href=&#34;https://github.com/Tuinslak/GFW-URL-checker/tree/master/testResults/be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Belgium&lt;/a&gt;, one in The &lt;a href=&#34;https://github.com/Tuinslak/GFW-URL-checker/tree/master/testResults/nl&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Netherlands&lt;/a&gt;, and a &lt;a href=&#34;http://www.flickr.com/photos/tuinslak/5412529505/in/set-72157612681729152/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Guruplug&lt;/a&gt; in &lt;a href=&#34;https://github.com/Tuinslak/GFW-URL-checker/tree/master/testResults/cn&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;China&lt;/a&gt;. This way you can compare the results (in case some are down or replying slowly).&lt;/p&gt;&#xA;&lt;p&gt;As it&amp;rsquo;s impossible to test every possible site, I just check popular sites (and a bunch of sites from &lt;a href=&#34;http://www.alexa.com/topsites&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Alexa&lt;/a&gt;). But if you know blocked sites not in the list, please &lt;a href=&#34;mailto:gfw@tuinslak.be&#34;&gt;submit&lt;/a&gt; them &amp;ndash; thanks!&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>An attempt to create a list of major blocked sites in China (or any other country/ISP). It&rsquo;s written entirely in Bash.</p>
<p>Github repo <a href="https://github.com/Tuinslak/GFW-URL-checker" target="_blank" rel="noopener noreferrer">riiiiiiight here</a>. It&rsquo;s used by my <a href="https://yeri.be/proxy-pac-generator/">PAC-generator</a>.</p>
<p>The Github page is updated once a day by three hosts. One in <a href="https://github.com/Tuinslak/GFW-URL-checker/tree/master/testResults/be" target="_blank" rel="noopener noreferrer">Belgium</a>, one in The <a href="https://github.com/Tuinslak/GFW-URL-checker/tree/master/testResults/nl" target="_blank" rel="noopener noreferrer">Netherlands</a>, and a <a href="http://www.flickr.com/photos/tuinslak/5412529505/in/set-72157612681729152/" target="_blank" rel="noopener noreferrer">Guruplug</a> in <a href="https://github.com/Tuinslak/GFW-URL-checker/tree/master/testResults/cn" target="_blank" rel="noopener noreferrer">China</a>. This way you can compare the results (in case some are down or replying slowly).</p>
<p>As it&rsquo;s impossible to test every possible site, I just check popular sites (and a bunch of sites from <a href="http://www.alexa.com/topsites" target="_blank" rel="noopener noreferrer">Alexa</a>). But if you know blocked sites not in the list, please <a href="mailto:gfw@tuinslak.be">submit</a> them &ndash; thanks!</p>
<p>At the moment I recheck every site once a day. However I might change this to once/week or something if the list of sites/URLs gets too big.</p>
<p>More shells are welcome, especially in countries such as Libya, Egypt, Tunis, etc ;)</p>
<p>But also additional shells in China are welcome, to prevent the government from blocking my current machine. All I need is a bit of CPU power once/day, 100Mb quota (at most), and Git installed.</p>
<p>Test results are written to three files; a file with sites that work, a file with sites that didn&rsquo;t get a HTTP 200 reply, and a file with both. You can directly use the file in your application from Github (for <a href="https://github.com/Tuinslak/GFW-URL-checker/blob/master/testResults/cn/results_nok.csv" target="_blank" rel="noopener noreferrer">example</a> the list of blocked sites in China).</p>
<p style="text-align: left;">The files are written as CSV-file; "url,check-date,check-time,{ok|nok}". Ok means the url/site got downloaded, nok means something went wrong (connection reset, time out, etc).</p>
<p style="text-align: left;">It does NOT check the content of the website (in case a ISP redirects to a different website instead).</p>
<p style="text-align: left;">This is work in progress though. So it's likely to change and, hopefully, improve in the future.</p>
<p style="text-align: left;">Feedback is also greatly appreciated.</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>china</category><category>firewall</category><category>gfw</category>
    </item>
    
    <item>
      <title>Proxy.pac generator</title>
      <link>https://yeri.be/proxy-pac-generator/</link>
      <pubDate>Thu, 10 Mar 2011 23:48:54 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/proxy-pac-generator/</guid>
      <description>&lt;p&gt;I made a simple bash script that generates a proxy auto configuration file.&lt;/p&gt;&#xA;&lt;p&gt;The PAC file generated redirects all matching rules through the proxy.&lt;/p&gt;&#xA;&lt;p&gt;The only issue at the moment, is that, once the list gets big, it&amp;rsquo;s not very performance-friendly. Something I&amp;rsquo;ll try to fix in the coming days.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m using this script to generate a proxy.pac file at work to &lt;a href=&#34;https://github.com/Tuinslak/GFW-URL-checker&#34; target=&#34;_blank&#34;&gt;redirect blocked content&lt;/a&gt; in China through the proxy for our employees currently in China.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I made a simple bash script that generates a proxy auto configuration file.</p>
<p>The PAC file generated redirects all matching rules through the proxy.</p>
<p>The only issue at the moment, is that, once the list gets big, it&rsquo;s not very performance-friendly. Something I&rsquo;ll try to fix in the coming days.</p>
<p>I&rsquo;m using this script to generate a proxy.pac file at work to <a href="https://github.com/Tuinslak/GFW-URL-checker" target="_blank">redirect blocked content</a> in China through the proxy for our employees currently in China.</p>
<p>You can find the Github repo <a href="https://github.com/Tuinslak/PAC-Generator" target="_blank">here</a>. Keep in mind it&rsquo;s work in progress.</p>
<p> </p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>china</category><category>proxy</category>
    </item>
    
    <item>
      <title>Compile wget on Mac OS X</title>
      <link>https://yeri.be/compile-wget-on-mac-os-x/</link>
      <pubDate>Fri, 04 Mar 2011 08:08:03 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/compile-wget-on-mac-os-x/</guid>
      <description>&lt;p&gt;There&#39;s a &lt;a href=&#34;https://yeri.be/wget-for-mac-os-x/&#34;&gt;precompiled&lt;/a&gt; wget available on the net, but it&#39;s not automatically accepting &lt;a href=&#34;https://yeri.be/blog-over-ssl/&#34;&gt;StartSSL&#39;s&lt;/a&gt; certificates. And as it seems, there&#39;s a wget update available that did.&lt;/p&gt;&#xA;&lt;p&gt;This is what I had to do to compile it on my Macbook Pro;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Install &lt;a href=&#34;https://developer.apple.com/xcode/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Xcode&lt;/a&gt;, if you haven&#39;t, and be sure to select UNIX Dev Support.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;figure class=&#34;wp-block-image&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2011/03/Screen-shot-2011-02-18-at-12.14.18.png&#34;&gt;&lt;img src=&#34;https://static.yeri.be/2011/03/Screen-shot-2011-02-18-at-12.14.18.png&#34; alt=&#34;&#34; class=&#34;wp-image-2610&#34; title=&#34;Screen shot 2011-02-18 at 12.14.18&#34;/&gt;&lt;/a&gt;&lt;/figure&gt;&#xA;&lt;p class=&#34;has-text-align-center&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Or you&#39;ll get this error:&lt;/p&gt;&#xA;&lt;pre class=&#34;wp-block-preformatted&#34;&gt;configure: error: C compiler cannot create executables&lt;/pre&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Export Xcode&#39;s gcc PATH:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre class=&#34;wp-block-preformatted&#34;&gt;PATH=/Developer/usr/bin/:$PATH&lt;/pre&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Download &lt;a href=&#34;ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;wget&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;In Terminal: untar it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre class=&#34;wp-block-preformatted&#34;&gt;tar xvzf wget-latest.*&lt;/pre&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;And compile it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre class=&#34;wp-block-preformatted&#34;&gt;cd wget directory&#xA;./configure&#xA;make&#xA;sudo make install&lt;/pre&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In case you had an old (precompiled) wget installed;&lt;br /&gt;remove that version first (/usr/bin/wget probably).&lt;br /&gt;By default, this one will install itself in /usr/local/bin/wget which should be in your $PATH as well (in case it&#39;s not, make a symlink from the old /usr/bin/wget to /usr/local/bin/wget, or recompile with other installation directories).&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      <content:encoded><![CDATA[<p>There's a <a href="https://yeri.be/wget-for-mac-os-x/">precompiled</a> wget available on the net, but it's not automatically accepting <a href="https://yeri.be/blog-over-ssl/">StartSSL's</a> certificates. And as it seems, there's a wget update available that did.</p>
<p>This is what I had to do to compile it on my Macbook Pro;</p>
<ul>
<li>Install <a href="https://developer.apple.com/xcode/" target="_blank" rel="noopener noreferrer">Xcode</a>, if you haven't, and be sure to select UNIX Dev Support.</li>
</ul>
<figure class="wp-block-image"><a href="https://static.yeri.be/2011/03/Screen-shot-2011-02-18-at-12.14.18.png"><img src="https://static.yeri.be/2011/03/Screen-shot-2011-02-18-at-12.14.18.png" alt="" class="wp-image-2610" title="Screen shot 2011-02-18 at 12.14.18"/></a></figure>
<p class="has-text-align-center"></p>
<p>Or you'll get this error:</p>
<pre class="wp-block-preformatted">configure: error: C compiler cannot create executables</pre>
<ul>
<li>Export Xcode's gcc PATH:</li>
</ul>
<pre class="wp-block-preformatted">PATH=/Developer/usr/bin/:$PATH</pre>
<ul>
<li>Download <a href="ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz" target="_blank" rel="noopener noreferrer">wget</a></li>
<li>In Terminal: untar it</li>
</ul>
<pre class="wp-block-preformatted">tar xvzf wget-latest.*</pre>
<ul>
<li>And compile it</li>
</ul>
<pre class="wp-block-preformatted">cd wget directory
./configure
make
sudo make install</pre>
<ul>
<li>In case you had an old (precompiled) wget installed;<br />remove that version first (/usr/bin/wget probably).<br />By default, this one will install itself in /usr/local/bin/wget which should be in your $PATH as well (in case it's not, make a symlink from the old /usr/bin/wget to /usr/local/bin/wget, or recompile with other installation directories).</li>
</ul>
]]></content:encoded>
      <category>apple</category><category>software</category><category>www</category>
      <category>489e06</category><category>apple</category><category>ffffff</category><category>mac os x</category><category>wget</category>
    </item>
    
    <item>
      <title>Dropbox &amp; Debian</title>
      <link>https://yeri.be/dropbox-debian/</link>
      <pubDate>Mon, 21 Feb 2011 20:32:10 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/dropbox-debian/</guid>
      <description>&lt;p&gt;&lt;a title=&#34;shameless attempt to get more free space ;)&#34; href=&#34;http://db.tt/IbzOp9G&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Dropbox&lt;/a&gt; has been removed from the Debian package list due to licensing issues.&lt;/p&gt;&#xA;&lt;p&gt;However, there&amp;rsquo;s still a way to download and install Dropbox on your Debian box without attempting to compile the source code.&lt;/p&gt;&#xA;&lt;p&gt;Head over to &lt;a href=&#34;http://packages.linuxmint.com/list.php?release=Debian&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Linux Mint&lt;/a&gt; and download both Dropbox (version &lt;a href=&#34;https://web.archive.org/web/20120229212650/http://packages.linuxmint.com/pool/main/d/dropbox/dropbox_1.0.1_all.deb&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;1.0.1&lt;/a&gt;) and Nautilus-Dropbox (version 0.6.7-lmde &amp;gt; &lt;a href=&#34;http://packages.linuxmint.com/pool/import/n/nautilus-dropbox/nautilus-dropbox_0.6.7-lmde_i386.deb&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;i386&lt;/a&gt; or &lt;a href=&#34;http://packages.linuxmint.com/pool/import/n/nautilus-dropbox/nautilus-dropbox_0.6.7-lmde_amd64.deb&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;amd64&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;run:&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;&#34;&gt;dpkg -i nautilus-dropbox*&#xA;dpkg -i dropbox.*&lt;/pre&gt;&#xA;&lt;p&gt;as root. Then return to your regular user and start dropbox&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a title="shameless attempt to get more free space ;)" href="http://db.tt/IbzOp9G" target="_blank" rel="noopener noreferrer">Dropbox</a> has been removed from the Debian package list due to licensing issues.</p>
<p>However, there&rsquo;s still a way to download and install Dropbox on your Debian box without attempting to compile the source code.</p>
<p>Head over to <a href="http://packages.linuxmint.com/list.php?release=Debian" target="_blank" rel="noopener noreferrer">Linux Mint</a> and download both Dropbox (version <a href="https://web.archive.org/web/20120229212650/http://packages.linuxmint.com/pool/main/d/dropbox/dropbox_1.0.1_all.deb" target="_blank" rel="noopener noreferrer">1.0.1</a>) and Nautilus-Dropbox (version 0.6.7-lmde &gt; <a href="http://packages.linuxmint.com/pool/import/n/nautilus-dropbox/nautilus-dropbox_0.6.7-lmde_i386.deb" target="_blank" rel="noopener noreferrer">i386</a> or <a href="http://packages.linuxmint.com/pool/import/n/nautilus-dropbox/nautilus-dropbox_0.6.7-lmde_amd64.deb" target="_blank" rel="noopener noreferrer">amd64</a>).</p>
<p>run:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">dpkg -i nautilus-dropbox*
dpkg -i dropbox.*</pre>
<p>as root. Then return to your regular user and start dropbox</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">dropbox start -i</pre>
<p>This will ask you to download closed source software, click yes.</p>
<p>Follow the instructions on the screen&hellip; Dropbox should be running now.</p>
<p>It appears Dropbox will auto update (it&rsquo;s running version 10.0.20 at the moment).</p>
<p>I mirrored the files, just in case:</p>
<ul>
    <li style="text-align: left;">Dropbox <a href="https://static.yeri.be/2011/02/dropbox_1.0.1_all.deb_.tar.gz" target="_blank" rel="noopener noreferrer">1.0.1</a></li>
    <li>Nautilus-Dropbox 0.6.7-lmde
<ul>
    <li><a href="https://static.yeri.be/2011/02/nautilus-dropbox_0.6.7-lmde_i386.deb_.tar.gz" target="_blank" rel="noopener noreferrer">i386</a></li>
    <li><a href="https://static.yeri.be/2011/02/nautilus-dropbox_0.6.7-lmde_amd64.deb_.tar.gz" target="_blank" rel="noopener noreferrer">amd64</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
      <category>linux</category><category>software</category>
      <category>dropbox</category>
    </item>
    
    <item>
      <title>PGP public key</title>
      <link>https://yeri.be/pgp-public-key/</link>
      <pubDate>Tue, 15 Feb 2011 15:41:08 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/pgp-public-key/</guid>
      <description>&lt;center&gt;&lt;iframe src=&#34;https://static.yeri.be/yeri.key.txt&#34; width=&#34;545&#34; height=&#34;771&#34;&gt;&#xA;  &lt;p&gt;Your browser does not support iframes.&lt;/p&gt;&#xA;&lt;/iframe&gt;&lt;/center&gt;</description>
      <content:encoded><![CDATA[<center><iframe src="https://static.yeri.be/yeri.key.txt" width="545" height="771">
  <p>Your browser does not support iframes.</p>
</iframe></center>
]]></content:encoded>
      <category>apple</category><category>linux</category><category>software</category>
      <category>tuinslak</category><category>security</category><category>yeri</category><category>yeri tiete</category>
    </item>
    
    <item>
      <title>Bind mrtg stats</title>
      <link>https://yeri.be/bind-mrtg-stats/</link>
      <pubDate>Sun, 13 Feb 2011 14:53:04 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/bind-mrtg-stats/</guid>
      <description>&lt;p&gt;Because I couldn&amp;rsquo;t find any that worked.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;img class=&#34;alignnone size-full wp-image-2551&#34; title=&#34;bind-day&#34; src=&#34;https://static.yeri.be/2011/02/bind-day.png&#34; alt=&#34;&#34; width=&#34;500&#34; height=&#34;135&#34; /&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;em&gt;(Dark blue: incoming queries, light blue: outgoing/recursive lookups)&lt;/em&gt;&lt;/p&gt;&#xA;mrtg.cfg sample:&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;&#34;&gt;# Bind&#xA;Title[bind]: Bind Queries&#xA;Target[bind]: `/etc/mrtg/bind-stats.sh`&#xA;PageTop[bind]: &amp;lt;H1&amp;gt; Bind queries per minute on vm1 &amp;lt;/H1&amp;gt;&#xA;Options[bind]: growright,pngdate,nobanner,gauge,nopercent,noinfo&#xA;MaxBytes[bind]: 50000&#xA;Ylegend[bind]: Queries/min&#xA;ShortLegend[bind]:  queries/min&#xA;LegendO[bind]: Incoming Bind queries per minute&#xA;LegendI[bind]: Outcoing Bind queries per minute&#xA;Legend2[bind]: Incoming Bind queries per minute&#xA;Legend1[bind]: Outcoing Bind queries per minute&lt;/pre&gt;&#xA;bind-stats.sh:&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;&#34;&gt;#!/bin/bash&#xA;# Bind MRTG stats&#xA;# by Yeri Tiete (Tuinslak) - 10/02/2011&#xA;# https://yeri.be&#xA;#&#xA;# mrtg.cfg sample:&#xA;################################################################################&#xA;#&#x9;#&#xA;#&#x9;# Bind&#xA;#&#x9;#&#xA;#&#x9;Title[bind]: Bind Queries&#xA;#&#x9;Target[bind]: `/etc/mrtg/bind-stats.sh`&#xA;#&#x9;PageTop[bind]: &amp;lt;H1&amp;gt; Bind queries per minute on vm1 &amp;lt;/H1&amp;gt;&#xA;#&#x9;Options[bind]: growright,pngdate,nobanner,gauge,nopercent,noinfo&#xA;#&#x9;MaxBytes[bind]: 50000&#xA;#&#x9;Ylegend[bind]: Queries/min&#xA;#&#x9;ShortLegend[bind]:  queries/min&#xA;#&#x9;LegendO[bind]: Incoming Bind queries per minute&#xA;#&#x9;LegendI[bind]: Outcoing Bind queries per minute&#xA;#&#x9;Legend2[bind]: Incoming Bind queries per minute&#xA;#&#x9;Legend1[bind]: Outcoing Bind queries per minute&#xA;################################################################################&#xA;&lt;h1 id=&#34;file-path-of-namedstats&#34;&gt;file path of named.stats&lt;/h1&gt;&#xA;&lt;p&gt;FILE=/var/log/named.stats&#xA;TMPFILE=/tmp/__dnsstats.txt&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Because I couldn&rsquo;t find any that worked.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-2551" title="bind-day" src="https://static.yeri.be/2011/02/bind-day.png" alt="" width="500" height="135" /></p>
<p style="text-align: center;"><em>(Dark blue: incoming queries, light blue: outgoing/recursive lookups)</em></p>
mrtg.cfg sample:
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;"># Bind
Title[bind]: Bind Queries
Target[bind]: `/etc/mrtg/bind-stats.sh`
PageTop[bind]: &lt;H1&gt; Bind queries per minute on vm1 &lt;/H1&gt;
Options[bind]: growright,pngdate,nobanner,gauge,nopercent,noinfo
MaxBytes[bind]: 50000
Ylegend[bind]: Queries/min
ShortLegend[bind]:  queries/min
LegendO[bind]: Incoming Bind queries per minute
LegendI[bind]: Outcoing Bind queries per minute
Legend2[bind]: Incoming Bind queries per minute
Legend1[bind]: Outcoing Bind queries per minute</pre>
bind-stats.sh:
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">#!/bin/bash
# Bind MRTG stats
# by Yeri Tiete (Tuinslak) - 10/02/2011
# https://yeri.be
#
# mrtg.cfg sample:
################################################################################
#	#
#	# Bind
#	#
#	Title[bind]: Bind Queries
#	Target[bind]: `/etc/mrtg/bind-stats.sh`
#	PageTop[bind]: &lt;H1&gt; Bind queries per minute on vm1 &lt;/H1&gt;
#	Options[bind]: growright,pngdate,nobanner,gauge,nopercent,noinfo
#	MaxBytes[bind]: 50000
#	Ylegend[bind]: Queries/min
#	ShortLegend[bind]:  queries/min
#	LegendO[bind]: Incoming Bind queries per minute
#	LegendI[bind]: Outcoing Bind queries per minute
#	Legend2[bind]: Incoming Bind queries per minute
#	Legend1[bind]: Outcoing Bind queries per minute
################################################################################
<h1 id="file-path-of-namedstats">file path of named.stats</h1>
<p>FILE=/var/log/named.stats
TMPFILE=/tmp/__dnsstats.txt</p>
<h1 id="how-often-does-mrtg-run-for-me-its-every-10-mins">how often does mrtg run? for me it&rsquo;s every 10 mins</h1>
<p>TIME=10</p>
<h1 id="make-file-empty">make file empty</h1>
<p>echo /dev/null &gt; /var/log/named.stats</p>
<h1 id="generate-file">generate file</h1>
<p>/usr/sbin/rndc stats</p>
<h1 id="save-number-of-queries">save number of queries</h1>
<p>INNOW=<code>egrep &quot;[^I]QUERY&quot; $FILE | awk '{print $1 }'</code>
OUTNOW=<code>grep Outgoing $FILE -A 9 | sed '1,2d' | awk '{ SUM += $1} END { print SUM }'</code></p>
<h1 id="check-if-tmp-file-exists-and-insert-data-in-it-if-it-doesnt">check if tmp file exists and insert data in it if it doesnt</h1>
<h1 id="this-prevents-a-peak">this prevents a peak</h1>
<p>[ ! -e $TMPFILE ] &amp;&amp; echo $INNOW &gt; $TMPFILE &amp;&amp; echo $OUTNOW &gt;&gt; $TMPFILE</p>
<h1 id="get-old-data">get old data</h1>
<p>INOLD=<code>cat $TMPFILE | sed -n 1p</code>
OUTOLD=<code>cat $TMPFILE | sed -n 2p</code></p>
<h1 id="overwrite-old">overwrite old</h1>
<p>echo $INNOW &gt; $TMPFILE
echo $OUTNOW &gt;&gt; $TMPFILE</p>
<h1 id="calculate-to-get-difference">calculate (to get difference)</h1>
<p>INDIFF=$[ $INNOW-$INOLD ]
OUTDIFF=$[ $OUTNOW-$OUTOLD ]</p>
<h1 id="as-mrtg-runs-10--divide-by-10-to-get-per-minute">as mrtg runs */10 &gt; divide by 10 to get per minute</h1>
<p>INPERMIN=$[ $INDIFF/$TIME ]
OUTPERMIN=$[ $OUTDIFF/$TIME ]</p>
<h1 id="print-">print !</h1>
<p>echo $OUTPERMIN
echo $INPERMIN
echo
echo</pre>
Or download the file <a href="https://static.yeri.be/2011/02/bind-stats.sh.txt" target="_blank" rel="noopener noreferrer">riiiiiight here</a>.</p>
<p>Be sure the named.stats file gives this kind of output:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;"># grep Outgoing /var/log/named.stats -A 9
++ Outgoing Queries ++
[View: default]
               64316 A
                   2 NS
                  22 SOA
                6945 PTR
                 892 MX
                1104 TXT
                3117 AAAA
                  22 SRV</pre>
<p>&hellip; for the outgoing queries, and &hellip;</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;"># grep QUERY /var/log/named.stats | awk '{print $1 }'
163143</pre>
<p>for the incoming queries.</p>
<p>Don&rsquo;t forget to</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">chmod +x bind-stats.sh</pre>
<p>Live sample: <a href="http://vm1.rootspirit.com/mrtg/bind.html" target="_blank" rel="noopener noreferrer">vm1.rootspirit.com/mrtg/bind.html</a></p>
]]></content:encoded>
      <category>linux</category><category>software</category><category>www</category>
      <category>bind</category><category>dns</category><category>mrtg</category>
    </item>
    
    <item>
      <title>Call to undefined function http_post_data()</title>
      <link>https://yeri.be/call-to-undefined-function-http_post_data/</link>
      <pubDate>Wed, 09 Feb 2011 09:55:45 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/call-to-undefined-function-http_post_data/</guid>
      <description>&lt;p&gt;After updating &lt;a href=&#34;https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;my server&lt;/a&gt; from testing to Squeeze it suddenly crashed after running a high CPU % perl script.&lt;/p&gt;&#xA;&lt;p&gt;Being unresponsive I reset the machine to reboot it.&lt;/p&gt;&#xA;&lt;p&gt;After booting up and testing websites running on it I came along an odd PHP error;&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;&#34;&gt;Call to undefined function http_post_data()&lt;/pre&gt;&#xA;&lt;p&gt;Probably due to PHP updates from Lenny/testing to Squeeze.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>After updating <a href="https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/" target="_blank" rel="noopener">my server</a> from testing to Squeeze it suddenly crashed after running a high CPU % perl script.</p>
<p>Being unresponsive I reset the machine to reboot it.</p>
<p>After booting up and testing websites running on it I came along an odd PHP error;</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;">Call to undefined function http_post_data()</pre>
<p>Probably due to PHP updates from Lenny/testing to Squeeze.</p>
<p>This error is caused by not having installed PECL-HTTP (and <span style="font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; line-height: normal;">php-pear php5-dev libcurl3-openssl-dev)</span></p>
<p><span style="font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; line-height: normal;">However, PECL-HTTP had been installed for ages and running the pecl install command resulted in this:</span></p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;"># pecl install pecl_http
pecl/pecl_http is already installed and is the same as the released version 1.7.0
install failed</pre>
<p>Some quick Googling didn&rsquo;t come up with a simple fix.</p>
<p>I then tried to reinstall PECL-HTTP (by uninstalling and reinstalling it)</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 35px; border: 1px dashed #489e06;"># pecl uninstall pecl_http
Unable to remove "extension=http.so" from php.ini
uninstall ok: channel://pecl.php.net/pecl_http-1.7.0
# pecl install pecl_http
downloading pecl_http-1.7.0.tgz ...
Starting to download pecl_http-1.7.0.tgz (173,979 bytes)
[...]</pre>
<p>Which luckily did solve my issue&hellip;</p>
<p>So reinstalling does actually solve stuff on Linux :x</p>
<p>Be sure to have extension=http.so in your php.ini and to restart php if it&rsquo;s running with fastcgi or restarting Apache after making the changes.</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category><category>www</category>
      <category>nginx</category><category>php</category>
    </item>
    
    <item>
      <title>Squid MRTG stats</title>
      <link>https://yeri.be/squid-mrtg-stats/</link>
      <pubDate>Sat, 05 Feb 2011 00:20:03 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/squid-mrtg-stats/</guid>
      <description>&lt;p&gt;I talked about &lt;a href=&#34;https://yeri.be/mrtg/&#34;&gt;MRTG stats for Squid&lt;/a&gt; in the past but apparently forgot to include the .mib file.&lt;/p&gt;&#xA;&lt;p&gt;So, here it is.  Download &lt;a href=&#34;https://static.yeri.be/2011/01/squid.mib_.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;this file&lt;/a&gt; and put it in /usr/share/squid/mib.txt.&lt;/p&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t quite remember where I found that mib file. Probably included with Squid on Gentoo or the world wide web&amp;hellip; But I couldn&amp;rsquo;t find it on Debian, so here it is.  And be sure to add these lines to your Squid config:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I talked about <a href="https://yeri.be/mrtg/">MRTG stats for Squid</a> in the past but apparently forgot to include the .mib file.</p>
<p>So, here it is.  Download <a href="https://static.yeri.be/2011/01/squid.mib_.txt" target="_blank" rel="noopener noreferrer">this file</a> and put it in /usr/share/squid/mib.txt.</p>
<p>I don&rsquo;t quite remember where I found that mib file. Probably included with Squid on Gentoo or the world wide web&hellip; But I couldn&rsquo;t find it on Debian, so here it is.  And be sure to add these lines to your Squid config:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">acl snmppublic snmp_community public
snmp_port 3401
snmp_access allow snmppublic all</pre>
<p>This is what it should look like (low usage Squid):</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2011/02/mrtg.proxy-hit-day.png"><img class="alignnone size-full wp-image-2447" title="mrtg.proxy-hit-day" src="https://static.yeri.be/2011/02/mrtg.proxy-hit-day.png" alt="" width="500" height="135" /></a></p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>misc</category><category>networking</category><category>software</category><category>www</category>
      <category>mrtg</category><category>snmp</category><category>squid</category><category>stats</category>
    </item>
    
    <item>
      <title>Debian MySQL Gem file error</title>
      <link>https://yeri.be/debian-mysql-gem-file-error/</link>
      <pubDate>Mon, 24 Jan 2011 06:19:57 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/debian-mysql-gem-file-error/</guid>
      <description>&lt;p&gt;When installing the MySQL Gem, I had this error:&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;Building native extensions.  This could take a while...&#xA;ERROR:  Error installing mysql:&#xA;ERROR: Failed to build gem native extension.&#xA;/usr/bin/ruby1.8 extconf.rb --with-mysql-dir=/usr/include/mysql&#xA;checking for mysql_query() in -lmysqlclient... no&#xA;checking for main() in -lm... yes&#xA;checking for mysql_query() in -lmysqlclient... no&#xA;checking for main() in -lz... yes&#xA;checking for mysql_query() in -lmysqlclient... no&#xA;checking for main() in -lsocket... no&#xA;checking for mysql_query() in -lmysqlclient... no&#xA;checking for main() in -lnsl... yes&#xA;checking for mysql_query() in -lmysqlclient... no&#xA;checking for main() in -lmygcc... no&#xA;checking for mysql_query() in -lmysqlclient... no&#xA;*** extconf.rb failed ***&#xA;Could not create Makefile due to some reason, probably lack of&#xA;necessary libraries and/or headers.  Check the mkmf.log file for more&#xA;details.  You may need configuration options.&#xA;Provided configuration options:&#xA;--with-opt-dir&#xA;--without-opt-dir&#xA;--with-opt-include&#xA;--without-opt-include=${opt-dir}/include&#xA;--with-opt-lib&#xA;--without-opt-lib=${opt-dir}/lib&#xA;--with-make-prog&#xA;--without-make-prog&#xA;--srcdir=.&#xA;--curdir&#xA;--ruby=/usr/bin/ruby1.8&#xA;--with-mysql-config&#xA;--without-mysql-config&#xA;--with-mysql-dir&#xA;--with-mysql-include&#xA;--without-mysql-include=${mysql-dir}/include&#xA;--with-mysql-lib&#xA;--without-mysql-lib=${mysql-dir}/lib&#xA;--with-mysqlclientlib&#xA;--without-mysqlclientlib&#xA;--with-mlib&#xA;--without-mlib&#xA;--with-mysqlclientlib&#xA;--without-mysqlclientlib&#xA;--with-zlib&#xA;--without-zlib&#xA;--with-mysqlclientlib&#xA;--without-mysqlclientlib&#xA;--with-socketlib&#xA;--without-socketlib&#xA;--with-mysqlclientlib&#xA;--without-mysqlclientlib&#xA;--with-nsllib&#xA;--without-nsllib&#xA;--with-mysqlclientlib&#xA;--without-mysqlclientlib&#xA;--with-mygcclib&#xA;--without-mygcclib&#xA;--with-mysqlclientlib&#xA;--without-mysqlclientlib&#xA;Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.&#xA;Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out&lt;/pre&gt;&#xA;&lt;p&gt;Can be solved by installing libmysqlclient15-dev&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>When installing the MySQL Gem, I had this error:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb --with-mysql-dir=/usr/include/mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby1.8
--with-mysql-config
--without-mysql-config
--with-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/lib
--with-mysqlclientlib
--without-mysqlclientlib
--with-mlib
--without-mlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-zlib
--without-zlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-socketlib
--without-socketlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-nsllib
--without-nsllib
--with-mysqlclientlib
--without-mysqlclientlib
--with-mygcclib
--without-mygcclib
--with-mysqlclientlib
--without-mysqlclientlib
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out</pre>
<p>Can be solved by installing libmysqlclient15-dev</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;"># apt-get install libmysqlclient15-dev</pre>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>debian</category><category>gem</category>
    </item>
    
    <item>
      <title>Squid: readable time format in log</title>
      <link>https://yeri.be/squid-readable-time-format-in-log/</link>
      <pubDate>Sun, 23 Jan 2011 00:55:30 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/squid-readable-time-format-in-log/</guid>
      <description>&lt;p&gt;Change the time &amp;amp; date log format For Squid.&lt;/p&gt;&#xA;&lt;p&gt;From: &lt;em&gt;&lt;span style=&#34;color: #ff0000;&#34;&gt;1295723692.628&lt;/span&gt; 24 192.168.200.6 TCP_MISS/200 3505 GET &lt;a href=&#34;https://web.archive.org/web/20130823023017/http://i3.ytimg.com/vi/ru8ddkzOFUI/default.jpg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://web.archive.org/web/20130823023017/http://i3.ytimg.com/vi/ru8ddkzOFUI/default.jpg&lt;/a&gt; - DIRECT/74.125.79.101 image/jpeg&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;To: &lt;em&gt;&lt;span style=&#34;color: #ff0000;&#34;&gt;2&lt;span style=&#34;color: #ff0000;&#34;&gt;2/Jan/2011:20:48:17 +0100.079&lt;/span&gt;&lt;/span&gt; 40 192.168.200.6 TCP_MISS/304 353 GET &lt;a href=&#34;https://web.archive.org/web/20110124082452/http://s.ytimg.com/yt/cssbin/www-embed-vfl0GVaH1.css&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://web.archive.org/web/20110124082452/http://s.ytimg.com/yt/cssbin/www-embed-vfl0GVaH1.css&lt;/a&gt; - DIRECT/74.125.79.101 -&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In the Squid config comment all &amp;ldquo;logformat&amp;rdquo; lines, and add:&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;logformat squid %tl.%03tu %6tr %&amp;gt;a %Ss/%03Hs %&amp;lt;st %rm %ru %un %Sh/%&amp;lt;A %mt&lt;/pre&gt;&#xA;&lt;p&gt;FYI; Default is:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Change the time &amp; date log format For Squid.</p>
<p>From: <em><span style="color: #ff0000;">1295723692.628</span> 24 192.168.200.6 TCP_MISS/200 3505 GET <a href="https://web.archive.org/web/20130823023017/http://i3.ytimg.com/vi/ru8ddkzOFUI/default.jpg" target="_blank" rel="noopener noreferrer">https://web.archive.org/web/20130823023017/http://i3.ytimg.com/vi/ru8ddkzOFUI/default.jpg</a> - DIRECT/74.125.79.101 image/jpeg</em></p>
<p>To: <em><span style="color: #ff0000;">2<span style="color: #ff0000;">2/Jan/2011:20:48:17 +0100.079</span></span> 40 192.168.200.6 TCP_MISS/304 353 GET <a href="https://web.archive.org/web/20110124082452/http://s.ytimg.com/yt/cssbin/www-embed-vfl0GVaH1.css" target="_blank" rel="noopener noreferrer">https://web.archive.org/web/20110124082452/http://s.ytimg.com/yt/cssbin/www-embed-vfl0GVaH1.css</a> - DIRECT/74.125.79.101 -</em></p>
<p>In the Squid config comment all &ldquo;logformat&rdquo; lines, and add:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">logformat squid %tl.%03tu %6tr %&gt;a %Ss/%03Hs %&lt;st %rm %ru %un %Sh/%&lt;A %mt</pre>
<p>FYI; Default is:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">logformat squid %ts.%03tu %6tr %&gt;a %Ss/%03Hs %&lt;st %rm %ru %un %Sh/%&lt;A %mt</pre>
]]></content:encoded>
      <category>linux</category><category>software</category>
      <category>squid</category>
    </item>
    
    <item>
      <title>MRTG and network interfaces</title>
      <link>https://yeri.be/mrtg-and-network-interfaces/</link>
      <pubDate>Mon, 17 Jan 2011 15:09:54 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mrtg-and-network-interfaces/</guid>
      <description>&lt;p&gt;I tend to restart OpenVPN a lot due to config changes. As a result, this brings quite some issues to &lt;a href=&#34;https://yeri.be/mrtg/&#34;&gt;MRTG&lt;/a&gt; (or more precisely, SNMP), due to the fact tun devices change of ID.&lt;/p&gt;&#xA;&lt;p&gt;A while back, I found a quick fix for this; rename the interface targets from their respective ID to their name:&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;Target[eth0]: &lt;span style=&#34;color: #ff0000;&#34;&gt;2&lt;/span&gt;:public@localhost&lt;/pre&gt;&#xA;&lt;p&gt;becomes&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;Target[eth0]: &lt;span style=&#34;color: #ff0000;&#34;&gt;#eth0&lt;/span&gt;:public@localhost&lt;/pre&gt;&#xA;&lt;div&gt;&lt;/div&gt;&#xA;&lt;div&gt;For example:&lt;/div&gt;&#xA;&lt;div&gt;&lt;/div&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;&#xA;#&#xA;# Eth0 stats&#xA;#&#xA;Options[eth0]: growright, nobanner, pngdate, nopercent, noinfo&#xA;Target[eth0]: #eth0:public@localhost:&#xA;SetEnv[eth0]: MRTG_INT_DESCR=&#34;eth0&#34;&#xA;MaxBytes[eth0]: 1250000&#xA;Title[eth0]: Traffic Analysis for deng&#xA;PageTop[eth0]: &amp;#060;H1&gt;Traffic Analysis for deng (eth0)&amp;#060;/H1&gt;&#xA;#&#xA;# Eth1 stats&#xA;#&#xA;Options[eth1]: growright, nobanner, pngdate, nopercent, noinfo&#xA;Target[eth1]: #eth1:public@localhost:&#xA;SetEnv[eth1]: MRTG_INT_DESCR=&#34;eth1&#34;&#xA;MaxBytes[eth1]: 1250000&#xA;Title[eth1]: Traffic Analysis for deng&#xA;PageTop[eth1]: &amp;#060;H1&gt;Traffic Analysis for deng (eth1)&amp;#060;/H1&gt;&#xA;#&#xA;# tun0 stats&#xA;#&#xA;Options[tun0]: growright, nobanner, pngdate, nopercent, noinfo&#xA;Target[tun0]: #tun0:public@localhost:&#xA;SetEnv[tun0]: MRTG_INT_DESCR=&#34;tun0&#34;&#xA;MaxBytes[tun0]: 1250000&#xA;Title[tun0]: Traffic Analysis for deng&#xA;PageTop[tun0]: &amp;#060;H1&gt;Traffic Analysis for deng (tun0)&amp;#060;/H1&gt;&#xA;&lt;/pre&gt;</description>
      <content:encoded><![CDATA[<p>I tend to restart OpenVPN a lot due to config changes. As a result, this brings quite some issues to <a href="https://yeri.be/mrtg/">MRTG</a> (or more precisely, SNMP), due to the fact tun devices change of ID.</p>
<p>A while back, I found a quick fix for this; rename the interface targets from their respective ID to their name:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">Target[eth0]: <span style="color: #ff0000;">2</span>:public@localhost</pre>
<p>becomes</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">Target[eth0]: <span style="color: #ff0000;">#eth0</span>:public@localhost</pre>
<div></div>
<div>For example:</div>
<div></div>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">
#
# Eth0 stats
#
Options[eth0]: growright, nobanner, pngdate, nopercent, noinfo
Target[eth0]: #eth0:public@localhost:
SetEnv[eth0]: MRTG_INT_DESCR="eth0"
MaxBytes[eth0]: 1250000
Title[eth0]: Traffic Analysis for deng
PageTop[eth0]: &#060;H1>Traffic Analysis for deng (eth0)&#060;/H1>
#
# Eth1 stats
#
Options[eth1]: growright, nobanner, pngdate, nopercent, noinfo
Target[eth1]: #eth1:public@localhost:
SetEnv[eth1]: MRTG_INT_DESCR="eth1"
MaxBytes[eth1]: 1250000
Title[eth1]: Traffic Analysis for deng
PageTop[eth1]: &#060;H1>Traffic Analysis for deng (eth1)&#060;/H1>
#
# tun0 stats
#
Options[tun0]: growright, nobanner, pngdate, nopercent, noinfo
Target[tun0]: #tun0:public@localhost:
SetEnv[tun0]: MRTG_INT_DESCR="tun0"
MaxBytes[tun0]: 1250000
Title[tun0]: Traffic Analysis for deng
PageTop[tun0]: &#060;H1>Traffic Analysis for deng (tun0)&#060;/H1>
</pre>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>misc</category><category>networking</category><category>software</category><category>www</category>
      <category>mrtg</category><category>snmp</category><category>stats</category>
    </item>
    
    <item>
      <title>Theme, blog, and stuff</title>
      <link>https://yeri.be/theme-blog-and-stuff/</link>
      <pubDate>Sun, 16 Jan 2011 00:12:45 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/theme-blog-and-stuff/</guid>
      <description>&lt;p&gt;As you noticed&amp;hellip; Or perhaps didn&amp;rsquo;t notice, I&amp;rsquo;ve started using a new, simplistic theme a couple of days ago.&lt;/p&gt;&#xA;&lt;p&gt;Kinda thought it might be too simplistic (I&amp;rsquo;ve hidden the sidebar, there&amp;rsquo;s no search or archive, etc), but I started to, you know, get attached to it.&lt;/p&gt;&#xA;&lt;p&gt;So it&amp;rsquo;s here to stay, for &lt;a href=&#34;https://yeri.be/new-theme/&#34;&gt;a year&lt;/a&gt; or something. I guess.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve also noticed that the long load times on my blog were &lt;a href=&#34;https://web.archive.org/web/20120830072143/http://code.google.com:80/p/wpbuzzcomments/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;WP_Buzz&lt;/a&gt;&amp;rsquo;s fault. Nice plugin, but 15 to 45 seconds of load time per uncached page wasn&amp;rsquo;t really worth it. Hope it &lt;a href=&#34;http://code.google.com/p/wpbuzzcomments/issues/detail?id=17&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;can be fixed&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>As you noticed&hellip; Or perhaps didn&rsquo;t notice, I&rsquo;ve started using a new, simplistic theme a couple of days ago.</p>
<p>Kinda thought it might be too simplistic (I&rsquo;ve hidden the sidebar, there&rsquo;s no search or archive, etc), but I started to, you know, get attached to it.</p>
<p>So it&rsquo;s here to stay, for <a href="https://yeri.be/new-theme/">a year</a> or something. I guess.</p>
<p>I&rsquo;ve also noticed that the long load times on my blog were <a href="https://web.archive.org/web/20120830072143/http://code.google.com:80/p/wpbuzzcomments/" target="_blank" rel="noopener noreferrer">WP_Buzz</a>&rsquo;s fault. Nice plugin, but 15 to 45 seconds of load time per uncached page wasn&rsquo;t really worth it. Hope it <a href="http://code.google.com/p/wpbuzzcomments/issues/detail?id=17" target="_blank" rel="noopener noreferrer">can be fixed</a>.</p>
<p>I&rsquo;ve always thought it was <a href="https://yeri.be/one/">One</a> that <a href="https://yeri.be/blog-changes/">wasn&rsquo;t keeping up</a> with the SQL queries, and as refreshing the page always fixed my problem, I thought it just was bad luck and/or my dodgy connection. Until I saw WordPress was doing half a minute for about 90ish SQL queries&hellip; Per page.</p>
<p>But on the other hand, seems like changing from <a href="http://one.rootspirit.com/" target="_blank" rel="noopener noreferrer">One</a> to <a href="https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/" target="_blank" rel="noopener noreferrer">vm1</a> was useful after all:</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2011/01/crawlspeed.png"><img class="alignnone size-full wp-image-2285" title="google crawl speed" src="https://static.yeri.be/2011/01/crawlspeed.png" alt="" width="735" height="168" /></a></p>
<p>Anyway, to search on this blog use <a href="http://www.google.be/search?sourceid=chrome&amp;ie=UTF-8&amp;q=site:blog.tuinslak.org" target="_blank" rel="noopener noreferrer">Google</a> or, if you have Chrome, type in blog.tuinslak&lt;tab&gt; and add your search query. Kinda rocks feature!</p>
<p>Been on posting spree lately. Not all post quite as useful, but hey. Let&rsquo;s see how long I keep up! ;)</p>
]]></content:encoded>
      <category>google</category><category>hardware</category><category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>tuinslak</category><category>blog</category><category>rootspirit</category>
    </item>
    
    <item>
      <title>Exchange error 0x6d9</title>
      <link>https://yeri.be/exchange-error-0x6d9/</link>
      <pubDate>Sat, 08 Jan 2011 17:02:38 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/exchange-error-0x6d9/</guid>
      <description>&lt;p&gt;I noticed my &amp;ldquo;Offline Address Book&amp;rdquo; was no longer automatically updating.&lt;/p&gt;&#xA;&lt;p&gt;Running &amp;ldquo;get-offlineaddressbook |fl&amp;rdquo; in the EMS showed it last updated somewhere 16th November 2010.&lt;/p&gt;&#xA;&lt;p&gt;Trying to manually update it through EMC (&amp;ldquo;Organizational Configuration &amp;gt; Mailbox &amp;gt; Offline Address Book &amp;gt; right click Default Offline Address Book &amp;gt; click update&amp;rdquo;) it gave me this error:&lt;/p&gt;&#xA;&lt;pre&gt; --------------------------------------------------------&#xA; Microsoft Exchange Error&#xA; --------------------------------------------------------&#xA; Action &#39;Update&#39; could not be performed on object &#39;Default Offline Address Book&#39;.&#xA; Default Offline Address Book&#xA; Failed&#xA; Error:&#xA; Failed to generate the content of the offline address book&#xA; &#39;\Default Offline Address Book&#39;.&#xA; Two possible reasons for the failure are that the System Attendant Service is not running or&#xA; you do not have permission to perform this operation. Error message :&#xA; &#39;Error 0x6d9 (There are no more endpoints available from the endpoint mapper) from RpcEpResolveBinding&#39;.&#xA; Error 0x6d9 (There are no more endpoints available from the endpoint mapper) from RpcEpResolveBinding&#xA; --------------------------------------------------------&#xA; OK&#xA; --------------------------------------------------------&#xA; --------------------------------------------------------&#xA; Microsoft Exchange Error&#xA; --------------------------------------------------------&#xA; Action &#39;Update&#39; could not be performed on object&#xA; &#39;Default Offline Address Book&#39;.&#xA; Default Offline Address BookFailedError:Failed to generate the content of the&#xA; offline address book &#39;\Default Offline Address Book&#39;. Two possible reasons for&#xA; the failure are that the System Attendant Service is not running or you do not&#xA; have permission to perform this operation. Error message :&#xA; &#39;Error 0x6d9 (There are no more endpoints available from the endpoint mapper) from RpcEpResolveBinding&#39;.&#xA; Error 0x6d9 (There are no more endpoints available from the endpoint mapper) from RpcEpResolveBinding&#xA; --------------------------------------------------------&#xA; OK&#xA; --------------------------------------------------------&lt;/pre&gt;&#xA;&lt;p&gt;I googled for quite a while trying to find a fix, but nothing useful could be found.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I noticed my &ldquo;Offline Address Book&rdquo; was no longer automatically updating.</p>
<p>Running &ldquo;get-offlineaddressbook |fl&rdquo; in the EMS showed it last updated somewhere 16th November 2010.</p>
<p>Trying to manually update it through EMC (&ldquo;Organizational Configuration &gt; Mailbox &gt; Offline Address Book &gt; right click Default Offline Address Book &gt; click update&rdquo;) it gave me this error:</p>
<pre> --------------------------------------------------------
 Microsoft Exchange Error
 --------------------------------------------------------
 Action 'Update' could not be performed on object 'Default Offline Address Book'.
 Default Offline Address Book
 Failed
 Error:
 Failed to generate the content of the offline address book
 '\Default Offline Address Book'.
 Two possible reasons for the failure are that the System Attendant Service is not running or
 you do not have permission to perform this operation. Error message :
 'Error 0x6d9 (There are no more endpoints available from the endpoint mapper) from RpcEpResolveBinding'.
 Error 0x6d9 (There are no more endpoints available from the endpoint mapper) from RpcEpResolveBinding
 --------------------------------------------------------
 OK
 --------------------------------------------------------
 --------------------------------------------------------
 Microsoft Exchange Error
 --------------------------------------------------------
 Action 'Update' could not be performed on object
 'Default Offline Address Book'.
 Default Offline Address BookFailedError:Failed to generate the content of the
 offline address book '\Default Offline Address Book'. Two possible reasons for
 the failure are that the System Attendant Service is not running or you do not
 have permission to perform this operation. Error message :
 'Error 0x6d9 (There are no more endpoints available from the endpoint mapper) from RpcEpResolveBinding'.
 Error 0x6d9 (There are no more endpoints available from the endpoint mapper) from RpcEpResolveBinding
 --------------------------------------------------------
 OK
 --------------------------------------------------------</pre>
<p>I googled for quite a while trying to find a fix, but nothing useful could be found.</p>
<p>I then checked the &ldquo;Microsoft Exchange System Attendant&rdquo; (yes, something I probably should have done first), to find it was stopped even though its startup type is set to Automatic.</p>
<p>Starting this service fixed the issue, and I could now update the Address Book again.</p>
<p>But rebooting the server, caused the service to not start again (and I couldn&rsquo;t find anything in event logs).</p>
<p>Solution: change it to delayed start and set the first and 2nd failure to &ldquo;restart the service&rdquo; and change &ldquo;restart the service after&rdquo; to 5 minutes.</p>
<p>Yes, a dirty work around but this solved it. As this service only takes care of address book generation and legacy support, it&rsquo;s not critical to start at boot.</p>
]]></content:encoded>
      <category>errors</category><category>software</category><category>windows</category>
      <category>exchange</category><category>windows 2008</category>
    </item>
    
    <item>
      <title>Blog changes</title>
      <link>https://yeri.be/blog-changes/</link>
      <pubDate>Thu, 09 Dec 2010 00:47:31 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/blog-changes/</guid>
      <description>&lt;p&gt;Right, playing around with my blog again. Wasn&amp;rsquo;t really that happy anymore with my nginx rproxy caching. Especially that for some reason, lately, every (php) request got at least one hit to the backend Apache server, while it used to cache the generated html for 30 mins.&lt;/p&gt;&#xA;&lt;p&gt;And well, performance just wasn&amp;rsquo;t good enough. So I said bye to &lt;a href=&#34;http://one.rootspirit.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;one.rootspirit.com&lt;/a&gt;, and hi to &lt;a href=&#34;https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;vm1.rootspirit.com&lt;/a&gt; a couple of days ago. Vm1 is no longer the nginx proxy, but is hosting my whole blog now. No more Apache for me.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Right, playing around with my blog again. Wasn&rsquo;t really that happy anymore with my nginx rproxy caching. Especially that for some reason, lately, every (php) request got at least one hit to the backend Apache server, while it used to cache the generated html for 30 mins.</p>
<p>And well, performance just wasn&rsquo;t good enough. So I said bye to <a href="http://one.rootspirit.com" target="_blank" rel="noopener">one.rootspirit.com</a>, and hi to <a href="https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/" target="_blank" rel="noopener">vm1.rootspirit.com</a> a couple of days ago. Vm1 is no longer the nginx proxy, but is hosting my whole blog now. No more Apache for me.</p>
<p>Now to see if performance increases and if it was any point in changing.</p>
<p>Oh, and all static/upload/image requests are now rewritten to a new domain (static.0x04.com). Gives me to option to move static pages to a different webserver/host in the future. And why 0x04.com and not static.yeri.be or static.tuinslak.org ? Well, don&rsquo;t know. Just like my &ldquo;0x04&rdquo; domain name! :D</p>
<p>Oh well&hellip; Just playing around&hellip;</p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>www</category>
      <category>tuinslak</category><category>blog</category><category>nginx</category>
    </item>
    
    <item>
      <title>IE9 is the IE6 of CSS3</title>
      <link>https://yeri.be/ie9-is-the-ie6-of-css3/</link>
      <pubDate>Sun, 24 Oct 2010 11:08:52 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/ie9-is-the-ie6-of-css3/</guid>
      <description>&lt;p&gt;I giggled. And &lt;a href=&#34;https://web.archive.org/web/20101024192006/http://css3wizardry.com/2010/08/14/ie9-is-the-ie6-of-css3/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;then cried a little bit&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I giggled. And <a href="https://web.archive.org/web/20101024192006/http://css3wizardry.com/2010/08/14/ie9-is-the-ie6-of-css3/" target="_blank" rel="noopener noreferrer">then cried a little bit</a>.</p>
]]></content:encoded>
      <category>software</category><category>windows</category><category>www</category>
      <category>ie</category><category>windows</category>
    </item>
    
    <item>
      <title>Xen: iptables issue</title>
      <link>https://yeri.be/xen-iptables-issue/</link>
      <pubDate>Sat, 23 Oct 2010 02:06:36 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/xen-iptables-issue/</guid>
      <description>&lt;pre&gt;vm3:/# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 85.12.6.173:8180&#xA;WARNING: Could not open &#39;kernel/net/netfilter/x_tables.ko&#39;: No such file or directory&#xA;FATAL: Could not open &#39;kernel/net/ipv4/netfilter/ip_tables.ko&#39;: No such file or directory&#xA;iptables v1.4.2: can&#39;t initialize iptables table `filter&#39;: iptables who? (do you need to insmod?)&#xA;Perhaps iptables or your kernel needs to be upgraded.&lt;/pre&gt;&#xA;&lt;p&gt;Solution:&lt;/p&gt;&#xA;&lt;pre&gt;vm3:/# depmod&#xA;vm3:/# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 85.12.6.173:8180&lt;/pre&gt;&#xA;&lt;p&gt;All ok :)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<pre>vm3:/# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 85.12.6.173:8180
WARNING: Could not open 'kernel/net/netfilter/x_tables.ko': No such file or directory
FATAL: Could not open 'kernel/net/ipv4/netfilter/ip_tables.ko': No such file or directory
iptables v1.4.2: can't initialize iptables table `filter': iptables who? (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.</pre>
<p>Solution:</p>
<pre>vm3:/# depmod
vm3:/# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 85.12.6.173:8180</pre>
<p>All ok :)</p>
]]></content:encoded>
      <category>linux</category><category>software</category><category>virtualisation</category>
      <category>xen</category>
    </item>
    
    <item>
      <title>Tomcat: javax.servlet.ServletException issues</title>
      <link>https://yeri.be/javax-servlet-servletexception/</link>
      <pubDate>Fri, 22 Oct 2010 10:41:54 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/javax-servlet-servletexception/</guid>
      <description>&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;javax.servlet.ServletException&#xA;org.apache.catalina.security.SecurityUtil.execute&#xA;(SecurityUtil.java:294)&lt;/pre&gt;&#xA;&lt;p&gt;Solution:&lt;/p&gt;&#xA;&lt;p&gt;Create 20servlets.policy:&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;nano -w /etc/tomcat5.5/policy.d/20servlets.policy&lt;/pre&gt;&#xA;&lt;p&gt;And add:&lt;/p&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;grant codeBase &#34;file:${catalina.base}/webapps/-&#34; {&#xA;permission java.security.AllPermission;&#xA;};&lt;/pre&gt;&#xA;&lt;p&gt;And restart Tomcat&lt;/p&gt;&#xA;&lt;div&gt;&#xA;&lt;pre style=&#34;background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;&#34;&gt;/etc/init.d/tomcat5.5 restart&lt;/pre&gt;&#xA;&lt;/div&gt;</description>
      <content:encoded><![CDATA[<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">javax.servlet.ServletException
org.apache.catalina.security.SecurityUtil.execute
(SecurityUtil.java:294)</pre>
<p>Solution:</p>
<p>Create 20servlets.policy:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">nano -w /etc/tomcat5.5/policy.d/20servlets.policy</pre>
<p>And add:</p>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">grant codeBase "file:${catalina.base}/webapps/-" {
permission java.security.AllPermission;
};</pre>
<p>And restart Tomcat</p>
<div>
<pre style="background-color: #ffffff; line-height: 12pt; margin-right: 5px; padding: 5px; border: 1px dashed #489e06;">/etc/init.d/tomcat5.5 restart</pre>
</div>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category>
      <category>java</category><category>tomcat</category>
    </item>
    
    <item>
      <title>Xen: PTY allocation request failed</title>
      <link>https://yeri.be/xen-pty-allocation-request-failed/</link>
      <pubDate>Thu, 21 Oct 2010 01:37:21 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/xen-pty-allocation-request-failed/</guid>
      <description>&lt;pre&gt;$ ssh vm3.rootspirit.com -l root&#xA;root@vm3.rootspirit.com&#39;s password:&#xA;PTY allocation request failed on channel 0&#xA;stdin: is not a tty&lt;/pre&gt;&#xA;&lt;div&gt;Solution:&lt;/div&gt;&#xA;Kill the DomU (xm console *might* work, but somehow rarely works for me).&#xA;&lt;pre&gt;mkdir /tmp/disk&#xA;mount /path/to/disk.img /tmp/disk&#xA;chroot /tmp/disk /bin/bash&lt;/pre&gt;&#xA;=&amp;gt; in chroot env&#xA;&lt;pre&gt;nano -w /etc/fstab&lt;/pre&gt;&#xA;And add (though this is probably not needed):&#xA;&lt;pre&gt;none            /dev/pts      devpts    defaults        0   0&lt;/pre&gt;&#xA;And install udev:&#xA;&lt;pre&gt;apt-get install udev&lt;/pre&gt;&#xA;Clean up, and restart DomU&#xA;&lt;pre&gt;exit&#xA;umount /tmp/disk&#xA;xm create /path/to/xen/vm.cfg&lt;/pre&gt;&#xA;Should do the trick. :)</description>
      <content:encoded><![CDATA[<pre>$ ssh vm3.rootspirit.com -l root
root@vm3.rootspirit.com's password:
PTY allocation request failed on channel 0
stdin: is not a tty</pre>
<div>Solution:</div>
Kill the DomU (xm console *might* work, but somehow rarely works for me).
<pre>mkdir /tmp/disk
mount /path/to/disk.img /tmp/disk
chroot /tmp/disk /bin/bash</pre>
=&gt; in chroot env
<pre>nano -w /etc/fstab</pre>
And add (though this is probably not needed):
<pre>none            /dev/pts      devpts    defaults        0   0</pre>
And install udev:
<pre>apt-get install udev</pre>
Clean up, and restart DomU
<pre>exit
umount /tmp/disk
xm create /path/to/xen/vm.cfg</pre>
Should do the trick. :)
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category><category>virtualisation</category>
      <category>xen</category>
    </item>
    
    <item>
      <title>Xen: Failed to find an unused loop device</title>
      <link>https://yeri.be/xen-failed-to-find-an-unused-loop-device/</link>
      <pubDate>Wed, 20 Oct 2010 01:21:18 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/xen-failed-to-find-an-unused-loop-device/</guid>
      <description>&lt;p&gt;I had to start a new Xen domU this afternoon,&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;xm create vm#.domain&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;But this resulted in following error:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Error: Device 5632 (vbd) could not be connected.&#xA;Failed to find an unused loop device&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Solution:&lt;/p&gt;&#xA;&lt;p&gt;Create &lt;code&gt;/etc/modprobe.d/local-loop.conf&lt;/code&gt; with this content:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;options loop max_loop=64&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Turn off all DomUs, yes, bummer. You&amp;rsquo;ll need to reload the loop module which won&amp;rsquo;t work if Xen is still using them. &lt;code&gt;xm list&lt;/code&gt; should only display Domain-0.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I had to start a new Xen domU this afternoon,</p>
<p><code>xm create vm#.domain</code></p>
<p>But this resulted in following error:</p>
<p><code>Error: Device 5632 (vbd) could not be connected.
Failed to find an unused loop device</code></p>
<p>Solution:</p>
<p>Create <code>/etc/modprobe.d/local-loop.conf</code> with this content:</p>
<p><code>options loop max_loop=64</code></p>
<p>Turn off all DomUs, yes, bummer. You&rsquo;ll need to reload the loop module which won&rsquo;t work if Xen is still using them. <code>xm list</code> should only display Domain-0.</p>
<p><code>modprobe -r loop &amp;&amp; modprobe loop</code></p>
<p>And restart all DomUs. You can now create 32 (64/2 ~= # of DomUs; increase if you need more) DomUs.</p>
<p>You can check (before &amp; after) the difference in loop back devices: <code>ls -ls /dev | grep loop | wc -l</code></p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category><category>virtualisation</category>
      <category>xen</category>
    </item>
    
    <item>
      <title>SugarCRM: get rid of the ads</title>
      <link>https://yeri.be/sugarcrm-get-rid-of-the-ads/</link>
      <pubDate>Wed, 06 Oct 2010 02:35:26 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/sugarcrm-get-rid-of-the-ads/</guid>
      <description>&lt;p&gt;When logging in, you get a huge ad saying &amp;ldquo;Go Pro&amp;rdquo; or something similar, and some news feed about SugarCRM in SugarCRM: Community Edition. Fun fun, but I don&amp;rsquo;t quite need that.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, &amp;ldquo;fix&amp;rdquo;:&lt;/p&gt;&#xA;&lt;pre&gt;cd crm-path/modules/Home/Dashlets&#xA;mv iFrameDashlet/ /root/sCRM-dashlet/&#xA;mv SugarNewsDashlet/ /root/sCRM-dashlet/&lt;/pre&gt;&#xA;&lt;p&gt;Remove these two modules, refresh site, and you&amp;rsquo;d be fine.&lt;/p&gt;&#xA;&lt;p&gt;SugarCRM updates might put these modules back in place though.&lt;/p&gt;&#xA;&lt;p&gt;I moved them to /root/sCRM-dashlet in case you want a backup, else rm -rf. ;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>When logging in, you get a huge ad saying &ldquo;Go Pro&rdquo; or something similar, and some news feed about SugarCRM in SugarCRM: Community Edition. Fun fun, but I don&rsquo;t quite need that.</p>
<p>Anyway, &ldquo;fix&rdquo;:</p>
<pre>cd crm-path/modules/Home/Dashlets
mv iFrameDashlet/ /root/sCRM-dashlet/
mv SugarNewsDashlet/ /root/sCRM-dashlet/</pre>
<p>Remove these two modules, refresh site, and you&rsquo;d be fine.</p>
<p>SugarCRM updates might put these modules back in place though.</p>
<p>I moved them to /root/sCRM-dashlet in case you want a backup, else rm -rf. ;)</p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>sugarcrm</category>
    </item>
    
    <item>
      <title>Mac OS X lock screen</title>
      <link>https://yeri.be/mac-os-x-lock-screen/</link>
      <pubDate>Mon, 04 Oct 2010 15:52:53 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mac-os-x-lock-screen/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m now working at a company with somewhat sensitive data and I&amp;rsquo;m still using my Macbook Pro.&lt;/p&gt;&#xA;&lt;p&gt;However, as there is no handy way to lock a screen (like Windows+L on Wintendo machines)&amp;hellip; And when I&amp;rsquo;m at home, I don&amp;rsquo;t want to fill in my password each time the screensaver jumps on. So I created this AppleScript after some Googling.&lt;/p&gt;&#xA;&lt;p&gt;Sure, you can use Keychain Access, but that adds yet another icon to my menu bar.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;m now working at a company with somewhat sensitive data and I&rsquo;m still using my Macbook Pro.</p>
<p>However, as there is no handy way to lock a screen (like Windows+L on Wintendo machines)&hellip; And when I&rsquo;m at home, I don&rsquo;t want to fill in my password each time the screensaver jumps on. So I created this AppleScript after some Googling.</p>
<p>Sure, you can use Keychain Access, but that adds yet another icon to my menu bar.</p>
<p>Anyway, here is the simple AppleScript line (<span style="text-decoration: underline;">remove</span> the new line):</p>
<pre style="padding-left: 30px;">do shell script "/System/Library/CoreServices/Menu\\
Extras/User.menu/Contents/Resources/CGSession -suspend"</pre>
<p>And compiled as application <a href="https://static.yeri.be/2010/10/Lock-Screen.zip" target="_blank" rel="noopener noreferrer">downloadable here</a>.</p>
<p>Be sure to uncheck &ldquo;Disconnect when logging out&rdquo; from your Network properties in System Preferences.</p>
]]></content:encoded>
      <category>apple</category><category>software</category>
      <category>lock</category>
    </item>
    
    <item>
      <title>Mounting a RAMFS disk at boot in Mac OS X</title>
      <link>https://yeri.be/mounting-a-ramfs-disk-at-boot-in-mac-os-x/</link>
      <pubDate>Mon, 27 Sep 2010 10:01:27 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mounting-a-ramfs-disk-at-boot-in-mac-os-x/</guid>
      <description>&lt;p&gt;I received a question about &lt;a href=&#34;https://yeri.be/mac-os-x-ssd-tweaks/&#34;&gt;creating a RAMFS for Mac OS X&amp;rsquo; /tmp folder&lt;/a&gt;, so I&amp;rsquo;ll post my reply here as well.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s really simple;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;    &lt;li&gt;Open Terminal (Applications -&amp;gt; Utilities), type &#34;&lt;em&gt;sudo su&lt;/em&gt;&#34; and enter your user&#39;s password.&lt;/li&gt;&#xA;    &lt;li&gt;Create a new file in /Library/LaunchDaemons, like this: &#34;&lt;em&gt;nano -w /Library/LaunchDaemons/com.yeri.ramfs.plist&lt;/em&gt;&#34; (you can rename yeri to whatever you like)&lt;/li&gt;&#xA;    &lt;li&gt;And insert following content (ctrl+x to save - y - [enter]):&lt;/li&gt;&#xA;&lt;pre&gt;&amp;lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&amp;gt;&#xA;&amp;lt;!DOCTYPE plist PUBLIC &#34;-&amp;#47;&amp;#47;Apple&amp;#47;&amp;#47;DTD PLIST 1.0&amp;#47;&amp;#47;EN&#34; &#xA;&#34;http:&amp;#47;&amp;#47;www.apple.com&amp;#47;DTDs&amp;#47;PropertyList-1.0.dtd&#34;&amp;gt;&#xA;&amp;lt;plist version=&#34;1.0&#34;&amp;gt;&#xA;    &amp;lt;dict&amp;gt;&#xA;        &amp;lt;key&amp;gt;Label&amp;lt;&amp;#47;key&amp;gt;&#xA;        &amp;lt;string&amp;gt;com.yeri.ramfs&amp;lt;&amp;#47;string&amp;gt;&#xA;        &amp;lt;key&amp;gt;ProgramArguments&amp;lt;&amp;#47;key&amp;gt;&#xA;        &amp;lt;array&amp;gt;&#xA;            &amp;lt;string&amp;gt;&amp;#47;var&amp;#47;root&amp;#47;ramfs.sh&amp;lt;&amp;#47;string&amp;gt;&#xA;        &amp;lt;&amp;#47;array&amp;gt;&#xA;        &amp;lt;key&amp;gt;RunAtLoad&amp;lt;&amp;#47;key&amp;gt;&#xA;        &amp;lt;true&amp;#47;&amp;gt;&#xA;    &amp;lt;&amp;#47;dict&amp;gt;&#xA;&amp;lt;&amp;#47;plist&amp;gt;&lt;/pre&gt;&#xA;    &lt;li&gt;create a second file in /var/root/, like this: &#34;&lt;em&gt;nano -w /var/root/ramfs.sh&lt;/em&gt;&#34;&lt;/li&gt;&#xA;    &lt;li&gt;And insert following content:&lt;/li&gt;&#xA;&lt;pre&gt;#!/bin/bash&#xA;ramfs_size_mb=64&#xA;mount_point=/private/tmp&#xA;&lt;p&gt;ramfs_size_sectors=$((${ramfs_size_mb}&lt;em&gt;1024&lt;/em&gt;1024/512))&#xA;ramdisk_dev=&lt;code&gt;hdid -nomount ram://${ramfs_size_sectors}&lt;/code&gt;&#xA;newfs_hfs -v &amp;lsquo;Volatile HD&amp;rsquo; ${ramdisk_dev}&#xA;mkdir -p ${mount_point}&#xA;mount -o noatime -t hfs ${ramdisk_dev} ${mount_point}&#xA;chown root:wheel ${mount_point}&#xA;chmod 1777 ${mount_point}&lt;/pre&gt;&#xA;&lt;li&gt;chmod +x ramfs.sh and reboot. Check in Terminal with &amp;ldquo;mount&amp;rdquo; or &amp;ldquo;df -h&amp;rdquo; is everything is fine. To hide the disk icon on your desktop, check my &lt;a href=&#34;https://yeri.be/mac-os-x-ssd-tweaks/&#34;&gt;old blog post&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;In case Mac didn&amp;rsquo;t do so already, you might want to link /tmp to /private/tmp: &amp;ldquo;&lt;em&gt;rm -r /tmp &amp;amp;&amp;amp; ln -s /private/tmp /tmp&lt;/em&gt;&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;Should be it !&lt;/li&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I received a question about <a href="https://yeri.be/mac-os-x-ssd-tweaks/">creating a RAMFS for Mac OS X&rsquo; /tmp folder</a>, so I&rsquo;ll post my reply here as well.</p>
<p>It&rsquo;s really simple;</p>
<ol>
    <li>Open Terminal (Applications -&gt; Utilities), type "<em>sudo su</em>" and enter your user's password.</li>
    <li>Create a new file in /Library/LaunchDaemons, like this: "<em>nano -w /Library/LaunchDaemons/com.yeri.ramfs.plist</em>" (you can rename yeri to whatever you like)</li>
    <li>And insert following content (ctrl+x to save - y - [enter]):</li>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-&#47;&#47;Apple&#47;&#47;DTD PLIST 1.0&#47;&#47;EN" 
"http:&#47;&#47;www.apple.com&#47;DTDs&#47;PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
    &lt;dict&gt;
        &lt;key&gt;Label&lt;&#47;key&gt;
        &lt;string&gt;com.yeri.ramfs&lt;&#47;string&gt;
        &lt;key&gt;ProgramArguments&lt;&#47;key&gt;
        &lt;array&gt;
            &lt;string&gt;&#47;var&#47;root&#47;ramfs.sh&lt;&#47;string&gt;
        &lt;&#47;array&gt;
        &lt;key&gt;RunAtLoad&lt;&#47;key&gt;
        &lt;true&#47;&gt;
    &lt;&#47;dict&gt;
&lt;&#47;plist&gt;</pre>
    <li>create a second file in /var/root/, like this: "<em>nano -w /var/root/ramfs.sh</em>"</li>
    <li>And insert following content:</li>
<pre>#!/bin/bash
ramfs_size_mb=64
mount_point=/private/tmp
<p>ramfs_size_sectors=$((${ramfs_size_mb}<em>1024</em>1024/512))
ramdisk_dev=<code>hdid -nomount ram://${ramfs_size_sectors}</code>
newfs_hfs -v &lsquo;Volatile HD&rsquo; ${ramdisk_dev}
mkdir -p ${mount_point}
mount -o noatime -t hfs ${ramdisk_dev} ${mount_point}
chown root:wheel ${mount_point}
chmod 1777 ${mount_point}</pre>
<li>chmod +x ramfs.sh and reboot. Check in Terminal with &ldquo;mount&rdquo; or &ldquo;df -h&rdquo; is everything is fine. To hide the disk icon on your desktop, check my <a href="https://yeri.be/mac-os-x-ssd-tweaks/">old blog post</a>.</li>
<li>In case Mac didn&rsquo;t do so already, you might want to link /tmp to /private/tmp: &ldquo;<em>rm -r /tmp &amp;&amp; ln -s /private/tmp /tmp</em>&rdquo;.</li>
<li>Should be it !</li></p>
</ol>
]]></content:encoded>
      <category>apple</category><category>hardware</category><category>software</category>
      <category>ssd</category>
    </item>
    
    <item>
      <title>iRail news</title>
      <link>https://yeri.be/irail-news/</link>
      <pubDate>Sun, 26 Sep 2010 03:06:23 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-news/</guid>
      <description>&lt;ul&gt;&#xA;    &lt;li&gt;Been playing around with &lt;a href=&#34;https://static.yeri.be/2010/09/irail_nginxVsApache.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;nginx vs Apache&lt;/a&gt; for &lt;a href=&#34;http://irail.be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;iRail&lt;/a&gt;. The bottle neck still is the NMBS site (and I&#39;m truly sorry for DoSing you, dearest NMBS. I had to benchmark), but nginx seems to win just slightly over Apache. Maybe it&#39;s worth moving irail.be to my nginx webserver. &amp;lt;3 nginx.&lt;/li&gt;&#xA;    &lt;li&gt;The iRail (national) mobile website is getting its final touches and should go live tomorrow night.&lt;/li&gt;&#xA;    &lt;li&gt;The iRail &lt;a href=&#34;http://api.irail.be/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;API&lt;/a&gt; seems stable. Special thanks to Pieter.&lt;/li&gt;&#xA;    &lt;li&gt;iRail is currently developing a native Qt (Symbian, Maemo and MeeGo) application.&lt;/li&gt;&#xA;    &lt;li&gt;There will most likely be a &lt;a href=&#34;https://web.archive.org/web/20211106125618/https://www.bada.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Bada&lt;/a&gt; (Samsung) native application as well.&lt;/li&gt;&#xA;    &lt;li&gt;Same for the iPhone, native app should be here soonish.&lt;/li&gt;&#xA;    &lt;li&gt;If you&#39;d like to help, one way or another, two addresses, &lt;a href=&#34;http://project.irail.be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Project iRail&lt;/a&gt; and &lt;a href=&#34;https://lists-archive.okfn.org/pipermail/irail/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;mailing list&lt;/a&gt;. :)&lt;/li&gt;&#xA;    &lt;li&gt;iRail team will attend &lt;a href=&#34;http://project.irail.be/cgi-bin/trac.fcgi/wiki/Events/AppsMarathon&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Apps Marathon&lt;/a&gt; on Monday.&lt;/li&gt;&#xA;    &lt;li&gt;iRail @ &lt;a href=&#34;https://web.archive.org/web/20130922154100/http://www.openbelgium.be:80/data/nmbs-sncb-api-irail&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenBelgium&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      <content:encoded><![CDATA[<ul>
    <li>Been playing around with <a href="https://static.yeri.be/2010/09/irail_nginxVsApache.txt" target="_blank" rel="noopener noreferrer">nginx vs Apache</a> for <a href="http://irail.be" target="_blank" rel="noopener noreferrer">iRail</a>. The bottle neck still is the NMBS site (and I'm truly sorry for DoSing you, dearest NMBS. I had to benchmark), but nginx seems to win just slightly over Apache. Maybe it's worth moving irail.be to my nginx webserver. &lt;3 nginx.</li>
    <li>The iRail (national) mobile website is getting its final touches and should go live tomorrow night.</li>
    <li>The iRail <a href="http://api.irail.be/" target="_blank" rel="noopener noreferrer">API</a> seems stable. Special thanks to Pieter.</li>
    <li>iRail is currently developing a native Qt (Symbian, Maemo and MeeGo) application.</li>
    <li>There will most likely be a <a href="https://web.archive.org/web/20211106125618/https://www.bada.com/" target="_blank" rel="noopener noreferrer">Bada</a> (Samsung) native application as well.</li>
    <li>Same for the iPhone, native app should be here soonish.</li>
    <li>If you'd like to help, one way or another, two addresses, <a href="http://project.irail.be" target="_blank" rel="noopener noreferrer">Project iRail</a> and <a href="https://lists-archive.okfn.org/pipermail/irail/" target="_blank" rel="noopener noreferrer">mailing list</a>. :)</li>
    <li>iRail team will attend <a href="http://project.irail.be/cgi-bin/trac.fcgi/wiki/Events/AppsMarathon" target="_blank" rel="noopener noreferrer">Apps Marathon</a> on Monday.</li>
    <li>iRail @ <a href="https://web.archive.org/web/20130922154100/http://www.openbelgium.be:80/data/nmbs-sncb-api-irail" target="_blank" rel="noopener noreferrer">OpenBelgium</a></li>
</ul>
]]></content:encoded>
      <category>linux</category><category>software</category><category>irail</category><category>www</category>
      <category>appsmarathon</category><category>bada</category><category>iphone</category><category>nginx</category><category>nmbs</category><category>nokia</category><category>sncb</category>
    </item>
    
    <item>
      <title>SugarCRM: issue saving locales</title>
      <link>https://yeri.be/sugarcrm-issue-saving-locales/</link>
      <pubDate>Thu, 23 Sep 2010 01:51:11 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/sugarcrm-issue-saving-locales/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.sugarcrm.com/crm/download/sugar-suite.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;SugarCRM&lt;/a&gt; (community edition; version 6.0.2) has been giving me a bunch of issues like being unable to change the locale settings (&amp;ldquo;Locales&amp;rdquo; under &amp;ldquo;Administration&amp;rdquo;) as well as &amp;ldquo;Display module icon as favicon&amp;rdquo; (&amp;ldquo;System Settings&amp;rdquo;).&lt;/p&gt;&#xA;&lt;p&gt;Changing the US format (yyyy/mm/dd) to EU (dd/mm/yyyy) and every other setting on that page wasn&amp;rsquo;t actually saved/remembered upon hitting save.&lt;/p&gt;&#xA;&lt;p&gt;Editing it manually in config.php wasn&amp;rsquo;t an option either, as it got overwritten every single time. I could of course change permission, and make it unwritable by the webserver, but that would make the rest of the admin panel useless (everything else isn&amp;rsquo;t configurable anymore).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="http://www.sugarcrm.com/crm/download/sugar-suite.html" target="_blank" rel="noopener noreferrer">SugarCRM</a> (community edition; version 6.0.2) has been giving me a bunch of issues like being unable to change the locale settings (&ldquo;Locales&rdquo; under &ldquo;Administration&rdquo;) as well as &ldquo;Display module icon as favicon&rdquo; (&ldquo;System Settings&rdquo;).</p>
<p>Changing the US format (yyyy/mm/dd) to EU (dd/mm/yyyy) and every other setting on that page wasn&rsquo;t actually saved/remembered upon hitting save.</p>
<p>Editing it manually in config.php wasn&rsquo;t an option either, as it got overwritten every single time. I could of course change permission, and make it unwritable by the webserver, but that would make the rest of the admin panel useless (everything else isn&rsquo;t configurable anymore).</p>
<p>My workaround:</p>
<p>Install the outdated <a href="https://web.archive.org/web/20140911091535/http://www.sugarforge.org/frs/?group_id=78" target="_blank" rel="noopener noreferrer">EN_GB locale from SugarForge</a>. It won&rsquo;t complain that the versions do not match (unlike the two Dutch locales), but it <em>will</em> break your GUI.</p>
<p>However, this gives you time to edit all the settings, save, and put it back to English (US). And this time, it gets remembered (idem dito for the favicon).</p>
<p>I however kept the EN_GB locale module installed, just in case, and thus didn&rsquo;t test whether it broke again when the EN_GB mod is removed.</p>
<p>Buggy CRM is buggy. :(</p>
<p>Also, the fact I cannot delete users/employees directly is bugging me. Doubt this CRM will make it into production fase&hellip; -.-</p>
]]></content:encoded>
      <category>errors</category><category>software</category><category>www</category>
      <category>sugarcrm</category>
    </item>
    
    <item>
      <title>iRail presentations #BCA4</title>
      <link>https://yeri.be/irail-presentations-bca4/</link>
      <pubDate>Sat, 11 Sep 2010 19:00:16 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-presentations-bca4/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://yeri.be/irail-bca4/&#34;&gt;BCA4&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20120211172830/http://project.irail.be:80/wiki/Events&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;presentations&lt;/a&gt; are online.&lt;/p&gt;&#xA;&lt;p&gt;Pieter&amp;rsquo;s:&lt;/p&gt;&#xA;&lt;p style=&#34;padding-left: 60px;&#34;&gt;- &lt;a href=&#34;http://webs.hogent.be/pieterc/bca4/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Yeri&amp;rsquo;s:&lt;/p&gt;&#xA;&lt;p style=&#34;padding-left: 60px;&#34;&gt;- &lt;a href=&#34;https://static.yeri.be/2010/09/iRailBCA.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;pdf&lt;/a&gt;&#xA;- &lt;a href=&#34;http://www.slideshare.net/Tuinslak/irail-5175339&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;slideshare&lt;/a&gt;&#xA;- &lt;a href=&#34;https://static.yeri.be/2010/09/iRailBCA.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;html&lt;/a&gt;&#xA;- &lt;a href=&#34;https://static.yeri.be/2010/09/iRailBCA.zip&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Keynote&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;padding-left: 60px;&#34;&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;object id=&#34;__sse5175339&#34; classid=&#34;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&#34; width=&#34;425&#34; height=&#34;355&#34; codebase=&#34;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&#34;&gt;&lt;param name=&#34;allowFullScreen&#34; value=&#34;true&#34; /&gt;&lt;param name=&#34;allowScriptAccess&#34; value=&#34;always&#34; /&gt;&lt;param name=&#34;src&#34; value=&#34;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=irailbca-100910142528-phpapp02&amp;amp;stripped_title=irail-5175339&#34; /&gt;&lt;param name=&#34;name&#34; value=&#34;__sse5175339&#34; /&gt;&lt;param name=&#34;allowfullscreen&#34; value=&#34;true&#34; /&gt;&lt;embed id=&#34;__sse5175339&#34; type=&#34;application/x-shockwave-flash&#34; width=&#34;425&#34; height=&#34;355&#34; src=&#34;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=irailbca-100910142528-phpapp02&amp;amp;stripped_title=irail-5175339&#34; name=&#34;__sse5175339&#34; allowscriptaccess=&#34;always&#34; allowfullscreen=&#34;true&#34;/&gt;&lt;/object&gt;&#xA;&lt;center&gt;&lt;iframe src=&#34;http://webs.hogent.be/pieterc/bca4/index.html&#34; width=&#34;400&#34; height=&#34;300&#34;&gt;&lt;/iframe&gt;&#xA;&lt;/center&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://yeri.be/irail-bca4/">BCA4</a> <a href="https://web.archive.org/web/20120211172830/http://project.irail.be:80/wiki/Events" target="_blank" rel="noopener noreferrer">presentations</a> are online.</p>
<p>Pieter&rsquo;s:</p>
<p style="padding-left: 60px;">- <a href="http://webs.hogent.be/pieterc/bca4/" target="_blank" rel="noopener noreferrer">html</a></p>
<p>Yeri&rsquo;s:</p>
<p style="padding-left: 60px;">- <a href="https://static.yeri.be/2010/09/iRailBCA.pdf" target="_blank" rel="noopener noreferrer">pdf</a>
- <a href="http://www.slideshare.net/Tuinslak/irail-5175339" target="_blank" rel="noopener noreferrer">slideshare</a>
- <a href="https://static.yeri.be/2010/09/iRailBCA.html" target="_blank" rel="noopener noreferrer">html</a>
- <a href="https://static.yeri.be/2010/09/iRailBCA.zip" target="_blank" rel="noopener noreferrer">Keynote</a></p>
<p style="padding-left: 60px;"></p>
<p style="text-align: center;"><object id="__sse5175339" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=irailbca-100910142528-phpapp02&amp;stripped_title=irail-5175339" /><param name="name" value="__sse5175339" /><param name="allowfullscreen" value="true" /><embed id="__sse5175339" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=irailbca-100910142528-phpapp02&amp;stripped_title=irail-5175339" name="__sse5175339" allowscriptaccess="always" allowfullscreen="true"/></object>
<center><iframe src="http://webs.hogent.be/pieterc/bca4/index.html" width="400" height="300"></iframe>
</center></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category>
      <category>antwerp</category><category>barcamp</category><category>iphone</category>
    </item>
    
    <item>
      <title>iRail hacking event @ Hackerspace Ghent</title>
      <link>https://yeri.be/irail-hacking-event-hackerspace-ghent/</link>
      <pubDate>Sat, 11 Sep 2010 08:34:01 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-hacking-event-hackerspace-ghent/</guid>
      <description>&lt;p&gt;&lt;span style=&#34;font-weight: normal;&#34;&gt;17 Sept 2010, Ghent.&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;All information &lt;a href=&#34;https://web.archive.org/web/20100921001401/http://project.irail.be:80/cgi-bin/trac.fcgi/wiki/Events/0x20&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;https://web.archive.org/web/20150906172939/http://0x20.be/Project_iRail&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Be sure to come and help around ! Fun guaranteed! ;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><span style="font-weight: normal;">17 Sept 2010, Ghent.</span></p>
<p>All information <a href="https://web.archive.org/web/20100921001401/http://project.irail.be:80/cgi-bin/trac.fcgi/wiki/Events/0x20" target="_blank" rel="noopener noreferrer">here</a> and <a href="https://web.archive.org/web/20150906172939/http://0x20.be/Project_iRail" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>Be sure to come and help around ! Fun guaranteed! ;)</p>
]]></content:encoded>
      <category>software</category><category>irail</category><category>www</category>
      <category>ghent</category><category>hackerspace</category><category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>iRail @ #BCA4</title>
      <link>https://yeri.be/irail-bca4/</link>
      <pubDate>Fri, 10 Sep 2010 11:25:18 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-bca4/</guid>
      <description>&lt;p&gt;Both &lt;a href=&#34;http://bonsansnom.wordpress.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Pieter Colpaert&lt;/a&gt; and myself will hold an &lt;a href=&#34;https://web.archive.org/web/20120211172830/http://project.irail.be:80/wiki/Events&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;iRail&lt;/a&gt; presentation at &lt;a href=&#34;http://barcamp.be/bca4/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Barcamp Antwerp&lt;/a&gt; tomorrow.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll be discussing general things about iRail (history, future, vision), and Pieter will discuss everything related to our &lt;a href=&#34;http://api.irail.be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;API&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Presentations will be put online tomorrow evening.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Both <a href="http://bonsansnom.wordpress.com/" target="_blank" rel="noopener noreferrer">Pieter Colpaert</a> and myself will hold an <a href="https://web.archive.org/web/20120211172830/http://project.irail.be:80/wiki/Events" target="_blank" rel="noopener noreferrer">iRail</a> presentation at <a href="http://barcamp.be/bca4/" target="_blank" rel="noopener noreferrer">Barcamp Antwerp</a> tomorrow.</p>
<p>I&rsquo;ll be discussing general things about iRail (history, future, vision), and Pieter will discuss everything related to our <a href="http://api.irail.be" target="_blank" rel="noopener noreferrer">API</a>.</p>
<p>Presentations will be put online tomorrow evening.</p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>antwerp</category><category>barcamp</category><category>iphone</category>
    </item>
    
    <item>
      <title>iRail.git</title>
      <link>https://yeri.be/irail-git/</link>
      <pubDate>Wed, 28 Jul 2010 12:25:57 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-git/</guid>
      <description>&lt;p&gt;iRail source is on &lt;a href=&#34;https://yeri.be/git&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Github&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To access the &lt;a href=&#34;http://irail.be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;iRail&lt;/a&gt; source code;&lt;/p&gt;&#xA;&lt;p&gt;Be aware you need to be added as contributor before being able to commit changes.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;http://help.github.com/git-installation-redirect&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;get&lt;/a&gt; Git&lt;/li&gt;&#xA;    &lt;li&gt;[browse to some folder] mkdir git&lt;/li&gt;&#xA;    &lt;li&gt;cd git&lt;/li&gt;&#xA;    &lt;li&gt;git clone git@github.com:Tuinslak/iRail.git&lt;/li&gt;&#xA;    &lt;li&gt;cd iRail&lt;/li&gt;&#xA;    &lt;li&gt;git fetch&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;To edit &amp;amp; commit changes:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;    &lt;li&gt;git add [file]&lt;/li&gt;&#xA;    &lt;li&gt;git commit -m &#39;edited [file], added this and that&#39;&lt;/li&gt;&#xA;    &lt;li&gt;git push&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;To update repo&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;    &lt;li&gt;git fetch&lt;/li&gt;&#xA;    &lt;li&gt;git merge origin/master&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;To check log&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>iRail source is on <a href="https://yeri.be/git" target="_blank" rel="noopener noreferrer">Github</a>.</p>
<p>To access the <a href="http://irail.be" target="_blank" rel="noopener noreferrer">iRail</a> source code;</p>
<p>Be aware you need to be added as contributor before being able to commit changes.</p>
<ol>
    <li><a href="http://help.github.com/git-installation-redirect" target="_blank" rel="noopener noreferrer">get</a> Git</li>
    <li>[browse to some folder] mkdir git</li>
    <li>cd git</li>
    <li>git clone git@github.com:Tuinslak/iRail.git</li>
    <li>cd iRail</li>
    <li>git fetch</li>
</ol>
<p>To edit &amp; commit changes:</p>
<ol>
    <li>git add [file]</li>
    <li>git commit -m 'edited [file], added this and that'</li>
    <li>git push</li>
</ol>
<p>To update repo</p>
<ol>
    <li>git fetch</li>
    <li>git merge origin/master</li>
</ol>
<p>To check log</p>
<ol>
    <li>git log</li>
</ol>
<p>Info <a href="http://progit.org/book/" target="_blank" rel="noopener noreferrer">here</a> and <a href="http://help.github.com/" target="_blank" rel="noopener noreferrer">here</a>, oh and <a href="http://git-scm.com/documentation" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>Nightly built accessible <a rel="nofollow noopener noreferrer" href="https://web.archive.org/web/20110304221756/http://dev.irail.be:80/" target="_blank">here</a>. Git gets updated every night around 4h00. <em>(see the <a href="https://github.com/iRail/iRail" target="_blank" rel="noopener noreferrer">index.php</a>; set $dev to 1)</em></p>
<p>Feel free to commit [working and useful] updates. Decent updates will make the <a href="http://irail.be" target="_blank" rel="noopener noreferrer">iRail.be</a> website. Contact me if you have any questions or remarks. Most important bug is <a href="https://yeri.be/irail-station-bugs/">the station issue</a> and my todo list can be found <a href="http://wiki.github.com/Tuinslak/iRail/todo" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>I&rsquo;m fairly new to all this Git-stuff, so I might have done some stuff wrong, or not optimised, or whatever. Contact me if so.</p>
]]></content:encoded>
      <category>apple</category><category>linux</category><category>software</category><category>irail</category><category>www</category>
      <category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>US government legalizes iPhone ‘jailbreaking,’ unlocking</title>
      <link>https://yeri.be/us-government-legalizes-iphone-jailbreaking-unlocking/</link>
      <pubDate>Tue, 27 Jul 2010 00:50:14 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/us-government-legalizes-iphone-jailbreaking-unlocking/</guid>
      <description>&lt;p style=&#34;text-align: left;&#34;&gt;And I quote from &lt;a href=&#34;https://yeri.be/cq&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;AppleInsider&lt;/a&gt;;&lt;/p&gt;&#xA;&lt;p style=&#34;padding-left: 30px;&#34;&gt;&lt;strong&gt;The U.S. government on Monday announced new rules that make it officially legal for iPhone owners to &#34;jailbreak&#34; their device and run unauthorized third-party applications. In addition, it is now acceptable to unlock any cell phone for use on multiple carriers.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;padding-left: 30px;&#34;&gt;According to &lt;em&gt;The Associated Press&lt;/em&gt;, the government approved a &lt;a href=&#34;https://web.archive.org/web/20100805152347/http://news.yahoo.com:80/s/ap/20100726/ap_on_hi_te/us_tec_digital_copyright&#34;&gt;handful of new exemptions&lt;/a&gt; to a federal law that prevents the circumvention of technical measure that prevent users from accessing and modifying copyrighted works. The report noted that every three years, the Library of Congress&#39; Copyright Office authorizes exemptions to ensure existing law does not prevent non-infringing use of copyrighted material.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align: left;">And I quote from <a href="https://yeri.be/cq" target="_blank" rel="noopener noreferrer">AppleInsider</a>;</p>
<p style="padding-left: 30px;"><strong>The U.S. government on Monday announced new rules that make it officially legal for iPhone owners to "jailbreak" their device and run unauthorized third-party applications. In addition, it is now acceptable to unlock any cell phone for use on multiple carriers.</strong></p>
<p style="padding-left: 30px;">According to <em>The Associated Press</em>, the government approved a <a href="https://web.archive.org/web/20100805152347/http://news.yahoo.com:80/s/ap/20100726/ap_on_hi_te/us_tec_digital_copyright">handful of new exemptions</a> to a federal law that prevents the circumvention of technical measure that prevent users from accessing and modifying copyrighted works. The report noted that every three years, the Library of Congress' Copyright Office authorizes exemptions to ensure existing law does not prevent non-infringing use of copyrighted material.</p>
<p style="padding-left: 30px;">In addition, another exemption was approved that would allow all cell phone users to unlock their device for use on an unapproved carrier. Currently, Apple's iPhone is available exclusively through AT&amp;T, but unlocking it can allow for voice calls and EDGE data speeds on rival carrier T-Mobile.</p>
<p>Purely awesome.</p>
]]></content:encoded>
      <category>misc</category><category>software</category>
      <category>iphone</category><category>jailbreak</category>
    </item>
    
    <item>
      <title>nginx configs</title>
      <link>https://yeri.be/nginx-configs/</link>
      <pubDate>Wed, 30 Jun 2010 02:19:42 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nginx-configs/</guid>
      <description>&lt;p&gt;Been slacking a bit lately, but here &lt;a href=&#34;https://yeri.be/tag/nginx/&#34;&gt;they&lt;/a&gt; are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;/etc/nginx/&lt;a href=&#34;https://static.yeri.be/2010/06/nginx.conf_.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;nginx.conf&lt;/a&gt; // general nginx config&lt;/li&gt;&#xA;    &lt;li&gt;/etc/nginx/sites-available/&lt;a href=&#34;https://static.yeri.be/2010/06/blog.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;blog&lt;/a&gt; // my current (as of posting this) rproxy settings for this blog&lt;/li&gt;&#xA;    &lt;li&gt;/etc/nginx/conf.d/&lt;a href=&#34;https://static.yeri.be/2010/06/proxy.conf_.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;proxy.conf&lt;/a&gt; // reverse proxy related config&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      <content:encoded><![CDATA[<p>Been slacking a bit lately, but here <a href="https://yeri.be/tag/nginx/">they</a> are:</p>
<ul>
    <li>/etc/nginx/<a href="https://static.yeri.be/2010/06/nginx.conf_.txt" target="_blank" rel="noopener noreferrer">nginx.conf</a> // general nginx config</li>
    <li>/etc/nginx/sites-available/<a href="https://static.yeri.be/2010/06/blog.txt" target="_blank" rel="noopener noreferrer">blog</a> // my current (as of posting this) rproxy settings for this blog</li>
    <li>/etc/nginx/conf.d/<a href="https://static.yeri.be/2010/06/proxy.conf_.txt" target="_blank" rel="noopener noreferrer">proxy.conf</a> // reverse proxy related config</li>
</ul>
]]></content:encoded>
      <category>linux</category><category>software</category><category>www</category>
      <category>nginx</category>
    </item>
    
    <item>
      <title>iRail slashdot effect</title>
      <link>https://yeri.be/irail-slashdot-effect/</link>
      <pubDate>Sun, 20 Jun 2010 00:15:18 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-slashdot-effect/</guid>
      <description>&lt;p&gt;Only because stats are pretty awesome. The effects of &lt;a href=&#34;https://yeri.be/stopping-irail-be/&#34;&gt;my media attention&lt;/a&gt; a few days ago. I&amp;rsquo;ll give some more info than what &lt;a href=&#34;http://bvlg.blogspot.com/2010/06/nmbs-haalt-irailbe-offline.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;can be seen here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;And pretty happy I set up my &lt;a href=&#34;https://yeri.be/tag/nginx/&#34;&gt;nginx caching&lt;/a&gt; up a few weeks ago.&lt;/p&gt;&#xA;&lt;p&gt;MRTG traffic stats on &lt;a href=&#34;https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;vm1&lt;/a&gt;, my nginx caching server, of the first 2 days (only major traffic source is this blog):&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2010/06/vm1_eth0_1.png&#34;&gt;&lt;img class=&#34;size-full wp-image-1565 aligncenter&#34; title=&#34;vm1 mrtg traffic stats&#34; src=&#34;https://static.yeri.be/2010/06/vm1_eth0_1.png&#34; alt=&#34;&#34; width=&#34;500&#34; height=&#34;135&#34;/&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Top referrers (though not 100% accurate):&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Only because stats are pretty awesome. The effects of <a href="https://yeri.be/stopping-irail-be/">my media attention</a> a few days ago. I&rsquo;ll give some more info than what <a href="http://bvlg.blogspot.com/2010/06/nmbs-haalt-irailbe-offline.html" target="_blank" rel="noopener noreferrer">can be seen here</a>.</p>
<p>And pretty happy I set up my <a href="https://yeri.be/tag/nginx/">nginx caching</a> up a few weeks ago.</p>
<p>MRTG traffic stats on <a href="https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/" target="_blank" rel="noopener noreferrer">vm1</a>, my nginx caching server, of the first 2 days (only major traffic source is this blog):</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/06/vm1_eth0_1.png"><img class="size-full wp-image-1565 aligncenter" title="vm1 mrtg traffic stats" src="https://static.yeri.be/2010/06/vm1_eth0_1.png" alt="" width="500" height="135"/></a></p>
<p>Top referrers (though not 100% accurate):</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/06/referrers.png"><img class="size-full wp-image-1566 aligncenter" title="referrers" src="https://static.yeri.be/2010/06/referrers.png" alt="" width="585" height="139"/></a></p>
<p>Website hits:</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/06/peak_visitors.png"><img class="size-full wp-image-1570 aligncenter" title="peak visitors" src="https://static.yeri.be/2010/06/peak_visitors.png" alt="" width="489" height="188"/></a></p>
<p>Top posts last few days:</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/06/top_posts.png"><img class="size-full wp-image-1572 aligncenter" title="top posts" src="https://static.yeri.be/2010/06/top_posts.png" alt="" width="571" height="155"/></a></p>
<p style="text-align: left;">Flickr hits last few days:</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/06/flickr_hits.png"><img class="size-full wp-image-1577 aligncenter" title="flickr hits" src="https://static.yeri.be/2010/06/flickr_hits.png" alt="" width="585" height="210"/></a></p>
<p style="text-align: left;">Screenshots are all a few days old by the way.</p>
<p style="text-align: left;">This, and a bunch of other cool stats from Google Analytics. :)</p>
<p style="text-align: left;">Oh, and also, visits on iRail.be from the NMBS/SNCB network starting Sept 1 2008:</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/06/irail_NMBS.png"><img class="alignnone size-large wp-image-1586" title="NMBS / SNCB visits for iRail" src="https://static.yeri.be/2010/06/irail_NMBS-1024x438.png" alt="" width="560" height="239"/></a></p>
<p style="text-align: left;"></p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>irail</category><category>www</category>
      <category>media</category><category>mrtg</category><category>nmbs</category><category>slashdot</category><category>sncb</category>
    </item>
    
    <item>
      <title>nginx cache in tmpfs</title>
      <link>https://yeri.be/nginx-cache-in-tmpfs/</link>
      <pubDate>Wed, 09 Jun 2010 18:10:31 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nginx-cache-in-tmpfs/</guid>
      <description>&lt;p&gt;Probably won&amp;rsquo;t change a lot to my performance, but I&amp;rsquo;ve mounted the nginx reverse proxy cache in a &lt;a href=&#34;http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/&#34; target=&#34;_blank&#34;&gt;tmpfs mount&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;pre style=&#34;padding-left: 30px;&#34;&gt;none on /var/cache/nginx/blog type tmpfs (rw,size=512m)&lt;/pre&gt;&#xA;&lt;pre style=&#34;padding-left: 30px;&#34;&gt;none  512M   47M  466M   4% /var/cache/nginx/blog&lt;/pre&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s see what performance boosts this will give. :P&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Probably won&rsquo;t change a lot to my performance, but I&rsquo;ve mounted the nginx reverse proxy cache in a <a href="http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/" target="_blank">tmpfs mount</a>.</p>
<pre style="padding-left: 30px;">none on /var/cache/nginx/blog type tmpfs (rw,size=512m)</pre>
<pre style="padding-left: 30px;">none  512M   47M  466M   4% /var/cache/nginx/blog</pre>
<p>Let&rsquo;s see what performance boosts this will give. :P</p>
]]></content:encoded>
      <category>linux</category><category>software</category><category>www</category>
      <category>nginx</category>
    </item>
    
    <item>
      <title>Mac OS X &#43; SSD tweaks</title>
      <link>https://yeri.be/mac-os-x-ssd-tweaks/</link>
      <pubDate>Tue, 08 Jun 2010 15:17:59 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mac-os-x-ssd-tweaks/</guid>
      <description>&lt;p&gt;Came across a &lt;a href=&#34;https://web.archive.org/web/20180124175530/http://blogs.nullvision.com:80/?p=275&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;pretty cool howto&lt;/a&gt; to tweak &lt;a href=&#34;http://www.flickr.com/photos/tuinslak/4663129200/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;your&lt;/a&gt; &lt;a href=&#34;http://www.flickr.com/photos/tuinslak/4662482847/sizes/l/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;SSD on a Mac&lt;/a&gt;.  Only thing I noticed is setting the hibernate mode to 0 made my mac randomly wake up a few seconds after it went to sleep (and happened most often when closing the lid, less often when clicking the sleep button; randomly closing apps seemed to sometimes fix this problem; usually closing Skype and VLC solved this&amp;hellip;)  Set it the &lt;a href=&#34;https://web.archive.org/web/20120226054447/http://www.macworld.com:80/article/53471/2006/10/sleepmode.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;hibernate mode&lt;/a&gt; 7 now (which was the default I think)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Came across a <a href="https://web.archive.org/web/20180124175530/http://blogs.nullvision.com:80/?p=275" target="_blank" rel="noopener noreferrer">pretty cool howto</a> to tweak <a href="http://www.flickr.com/photos/tuinslak/4663129200/" target="_blank" rel="noopener noreferrer">your</a> <a href="http://www.flickr.com/photos/tuinslak/4662482847/sizes/l/" target="_blank" rel="noopener noreferrer">SSD on a Mac</a>.  Only thing I noticed is setting the hibernate mode to 0 made my mac randomly wake up a few seconds after it went to sleep (and happened most often when closing the lid, less often when clicking the sleep button; randomly closing apps seemed to sometimes fix this problem; usually closing Skype and VLC solved this&hellip;)  Set it the <a href="https://web.archive.org/web/20120226054447/http://www.macworld.com:80/article/53471/2006/10/sleepmode.html" target="_blank" rel="noopener noreferrer">hibernate mode</a> 7 now (which was the default I think)</p>
<pre style="padding-left: 30px;">yeri$ sudo pmset -g | grep hibernatemode
hibernatemode   7</pre>
<pre style="padding-left: 30px;">yeri$ mount
/dev/disk0s2 on / (hfs, local, journaled, <strong>noatime</strong>)
...
/dev/disk2     256Mi  6.0Mi  250Mi     3%    /private/tmp</pre>
<p>I did indeed, as noted in the above howto/blog post, that shutting down is slower. Not that much, just a bit. As I usually don&rsquo;t shut down, I guess this isn&rsquo;t much of a problem.  However, this additional mount point creates a disk on my desktop (or in finder), which is annoying.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/06/Screen-shot-2010-06-08-at-14.40.23.png"><img class="size-full wp-image-1482 aligncenter" title="ramfs disk mac os x" src="https://static.yeri.be/2010/06/Screen-shot-2010-06-08-at-14.40.23.png" alt="" width="133" height="117" /></a></p>
<p>However, this <a href="https://web.archive.org/web/20110918163656/http://blog.julipedia.org:80/2007/01/hide-volume-in-mac-os-x.html" target="_blank" rel="noopener noreferrer">seems fixable</a> with</p>
<pre style="padding-left: 30px;">/Developer/Tools/SetFile -a V /private/tmp/</pre>
<p>But, this option seems forgotten after a reboot and has to be started over. Crappy.</p>
<p>So, tried with <a href="http://www.macworld.com/article/132782/2008/04/finderhidetm.html" target="_blank" rel="noopener noreferrer">AppleScript</a> then, created a new script with following content:</p>
<pre style="padding-left: 30px;">quit application "Finder"
tell application "System Events" to ¬
set visible of disk "Volatile HD" to false
delay 0.1
launch application "Finder"</pre>
<p>And saved it as &ldquo;File Format: Application&rdquo; and &ldquo;Options: Run Only&rdquo;. The delay line is needed, as without it, finder doesn&rsquo;t seem to start/reopen its folders/show desktop icons until  you click its icon again in the Dock. You can change the delay to 1, but that was a bit slow for me; tried a delay of 0.0001 too, but that gave the same issue as not putting in a delay line in at all.</p>
<p>You can just download the script/application <a href="https://static.yeri.be/2010/06/hideVolatileDisk.zip" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>Drag the application to the Application folder, and add a start up item for it (System Preferences -&gt; Accounts -&gt; YOU -&gt; Login Items; click the +-button and browse till you find your application). Should do the trick.</p>
<p>I also changed the ramfs disk size to 128Mb instead of 256Mb, as 256Mb seemed a lot for a disk that was using ~10Mb.</p>
]]></content:encoded>
      <category>apple</category><category>hardware</category><category>software</category>
      <category>ssd</category>
    </item>
    
    <item>
      <title>nginx reverse proxy with caching</title>
      <link>https://yeri.be/nginx-reverse-proxy-with-caching/</link>
      <pubDate>Sun, 23 May 2010 00:10:06 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nginx-reverse-proxy-with-caching/</guid>
      <description>&lt;p&gt;Playing around and searching the &lt;a href=&#34;http://serverfault.com/questions/30705/how-to-set-up-nginx-as-a-caching-reverse-proxy&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;web&lt;/a&gt; I enabled some decent caching now.&lt;/p&gt;&#xA;&lt;p&gt;Here are some stats: &lt;a href=&#34;https://static.yeri.be/2010/05/nginx_rproxy_cache.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;image+html&lt;/a&gt; and &lt;a href=&#34;https://static.yeri.be/2010/05/nginx_rproxy_cache2.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;php&lt;/a&gt;. Note that the php on apache (recompiled each request, about 1.5-2sec between every request) versus the cached output has a huge difference. Difference between images and static text files aren&amp;rsquo;t that huge. Also note that nginx has gzip enabled. The downside is that nginx caches all pages (HTTP code 200) for one hour and isn&amp;rsquo;t notified when pages are modified (yet).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Playing around and searching the <a href="http://serverfault.com/questions/30705/how-to-set-up-nginx-as-a-caching-reverse-proxy" target="_blank" rel="noopener noreferrer">web</a> I enabled some decent caching now.</p>
<p>Here are some stats: <a href="https://static.yeri.be/2010/05/nginx_rproxy_cache.txt" target="_blank" rel="noopener noreferrer">image+html</a> and <a href="https://static.yeri.be/2010/05/nginx_rproxy_cache2.txt" target="_blank" rel="noopener noreferrer">php</a>. Note that the php on apache (recompiled each request, about 1.5-2sec between every request) versus the cached output has a huge difference. Difference between images and static text files aren&rsquo;t that huge. Also note that nginx has gzip enabled. The downside is that nginx caches all pages (HTTP code 200) for one hour and isn&rsquo;t notified when pages are modified (yet).</p>
<p>My &ldquo;live&rdquo; blog is also accessible using <a href="https://yeri.be">blog.yeri.be</a> as blog.tuinslak.org will now <a href="http://uptime.netcraft.com/up/graph?site=blog.tuinslak.org&amp;probe=1" target="_blank" rel="noopener noreferrer">point to the nginx</a> reverse proxy.</p>
<p>I&rsquo;ve come across a few issues though, pages such as <a href="https://static.yeri.be/2010/05/ip.php" target="_blank" rel="noopener noreferrer">this</a> (shows your current IP address) and <a href="https://static.yeri.be/2010/05/date.php" target="_blank" rel="noopener noreferrer">this</a> (compare to <a href="https://static.yeri.be/2010/05/date.php" target="_blank" rel="noopener noreferrer">this</a> and refresh a few times) are cached as well, and actually show the previous visitor (if any) their output and the pages aren&rsquo;t updated when a new visitor visits them. <em>Edit: fixed, correctly refreshes; </em><em>.php under wp-</em> isn&rsquo;t cached.</p>
<p>Same goes for layout (I use <a href="https://yeri.be/wptouch/" target="_blank" rel="noopener noreferrer">WPtouch</a> for mobile devices). <a href="https://static.yeri.be/2010/05/Screen-shot-2010-05-22-at-21.26.53-2.png" target="_blank" rel="noopener noreferrer">A page</a> that got visited on the iPhone and then on a desktop as well as <a href="https://static.yeri.be/2010/05/photo.jpg" target="_blank" rel="noopener noreferrer">a page</a> that got first cached using a desktop browser and then an iPhone. I&rsquo;ve disabled WPtouch for now.</p>
<p>And a 3rd issue is that the Wordpress stats image (<img class="alignnone" title=":)" src="http://stats.wordpress.com/g.gif" alt="" width="6" height="5" />) is cached as well. So if a regular visitor visits the site before a a registered user (admin), the stats image will still be present (and generate incorrect stats). This doesn&rsquo;t happen the other way around, as no pages are cached for a registered user (unless they are already in its cache)&hellip; Weird. <em>Edit: fixed by watching the http cookie and this <a href="http://wordpress.org/extend/plugins/nginx-proxy-cache-integrator/" target="_blank" rel="noopener noreferrer">plugin</a>. Admin pages are never cached now but at least stats are correct again.</em></p>
<p>Speed gain is insane though.</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>nginx</category>
    </item>
    
    <item>
      <title>nginx reverse proxy IP</title>
      <link>https://yeri.be/nginx-reverse-proxy-ip/</link>
      <pubDate>Sat, 22 May 2010 17:32:59 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nginx-reverse-proxy-ip/</guid>
      <description>&lt;p&gt;The issue with the wrong IP address being shown when using nginx &lt;a href=&#34;https://yeri.be/nginx-reverse-proxy/&#34;&gt;as reverse proxy&lt;/a&gt; can easily be solved with mod_rpaf.&lt;/p&gt;&#xA;&lt;div id=&#34;_mcePaste&#34;&gt;cache.blog.tuinslak.org &lt;strong&gt;&lt;a href=&#34;http://home.tiete.be&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;85.234.196.237&lt;/a&gt;&lt;/strong&gt; - - [22/May/2010:16:33:46 +0200] &#34;GET /2010/05/nginx-reverse-proxy/ HTTP/1.0&#34; 200 6184 &#34;-&#34; &#34;Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.53 Safari/533.4&#34; 1766 6503&lt;/div&gt;&#xA;&lt;p&gt;vs&lt;/p&gt;&#xA;&lt;p&gt;cache.blog.tuinslak.org &lt;strong&gt;&lt;a href=&#34;https://web.archive.org/web/20130702144129/http://85.12.6.171&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;85.12.6.171&lt;/a&gt;&lt;/strong&gt; - - [22/May/2010:16:27:40 +0200] &amp;ldquo;GET /2010/05/nginx-reverse-proxy/ HTTP/1.0&amp;rdquo; 200 22639 &amp;ldquo;-&amp;rdquo; &amp;ldquo;Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.53 Safari/533.4&amp;rdquo; 1771 23031&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>The issue with the wrong IP address being shown when using nginx <a href="https://yeri.be/nginx-reverse-proxy/">as reverse proxy</a> can easily be solved with mod_rpaf.</p>
<div id="_mcePaste">cache.blog.tuinslak.org <strong><a href="http://home.tiete.be" target="_blank" rel="noopener noreferrer">85.234.196.237</a></strong> - - [22/May/2010:16:33:46 +0200] "GET /2010/05/nginx-reverse-proxy/ HTTP/1.0" 200 6184 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.53 Safari/533.4" 1766 6503</div>
<p>vs</p>
<p>cache.blog.tuinslak.org <strong><a href="https://web.archive.org/web/20130702144129/http://85.12.6.171" target="_blank" rel="noopener noreferrer">85.12.6.171</a></strong> - - [22/May/2010:16:27:40 +0200] &ldquo;GET /2010/05/nginx-reverse-proxy/ HTTP/1.0&rdquo; 200 22639 &ldquo;-&rdquo; &ldquo;Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.53 Safari/533.4&rdquo; 1771 23031</p>
<p>First one being my current home IP address, the second one being the nginx server IP address. The idea is to have the first line to show up in the logs.</p>
<p>On Gentoo (and I guess it&rsquo;s fairly similar on other distributions);</p>
<pre>*  www-apache/mod_rpaf
      Latest version available: 0.6
      Latest version installed: 0.6
      Size of files: 7 kB
      Homepage:      http://stderr.net/apache/rpaf/
      Description:   Reverse proxy add forward module
      License:       Apache-2.0</pre>
<p><span style="font-style: normal;">Emerge it, add &ldquo;-D RPAF&rdquo; to /etc/conf.d/apache2 and add the following the the correct vhost (e.g. /etc/apache2/vhosts.d/your_vhost.conf):</span></p>
<pre>&lt;IfModule mod_rpaf.c&gt;
      RPAFenable On
      RPAFsethostname On
      RPAFproxy_ips <strong>85.12.6.171</strong>
&lt;/IfModule&gt;</pre>
<p><span style="font-style: normal;">Change the bold IP address to your nginx rproxy IP address</span></p>
<p><span style="font-style: normal;">Might be safe to run &ldquo;apache2ctl configtest&rdquo; to make sure you don&rsquo;t have any errors in your config file(s).</span></p>
<p><span style="font-style: normal;">And restart Apache. This makes it show the correct IP address in its log files.</span></p>
<p><span style="font-style: normal;">Next on my to do list, getting it to actually cache something. </span></p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>nginx</category>
    </item>
    
    <item>
      <title>nginx reverse proxy</title>
      <link>https://yeri.be/nginx-reverse-proxy/</link>
      <pubDate>Sat, 22 May 2010 15:35:08 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nginx-reverse-proxy/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been &lt;a href=&#34;http://uptime.netcraft.com/up/graph?site=vm1.rootspirit.com&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;playing around&lt;/a&gt; a bit with &lt;a href=&#34;http://nginx.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;nginx&lt;/a&gt; and its reverse proxy module. The &amp;ldquo;real&amp;rdquo; website is accessible &lt;a href=&#34;https://yeri.be/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;here&lt;/a&gt;, whereas the cached version is &lt;a href=&#34;https://yeri.be/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;I&amp;rsquo;m deliberately making a difference between cache.* and live.* as blog.tuinslak.* might move to the cached version lateron. &lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The question, is it useful to reverse proxy this blog? No, probably not. But meh&amp;hellip; It&amp;rsquo;s fun. :)&lt;/p&gt;&#xA;&lt;p&gt;IP differences between both versions: &lt;a href=&#34;https://static.yeri.be/2010/05/ip.php&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;live&lt;/a&gt; vs &lt;a href=&#34;https://static.yeri.be/2010/05/ip.php&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;cache&lt;/a&gt;°. I&amp;rsquo;m guessing as most of the stats (Google Analytics and WP Stats) are JavaScript based, all stats should still be correctly generated. Only the Apache logs show the nginx proxy &lt;a href=&#34;https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;IP&lt;/a&gt; address. Which is normal, I guess.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve been <a href="http://uptime.netcraft.com/up/graph?site=vm1.rootspirit.com" target="_blank" rel="noopener noreferrer">playing around</a> a bit with <a href="http://nginx.org/" target="_blank" rel="noopener noreferrer">nginx</a> and its reverse proxy module. The &ldquo;real&rdquo; website is accessible <a href="https://yeri.be/" target="_blank" rel="noopener noreferrer">here</a>, whereas the cached version is <a href="https://yeri.be/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p><em>I&rsquo;m deliberately making a difference between cache.* and live.* as blog.tuinslak.* might move to the cached version lateron. </em></p>
<p>The question, is it useful to reverse proxy this blog? No, probably not. But meh&hellip; It&rsquo;s fun. :)</p>
<p>IP differences between both versions: <a href="https://static.yeri.be/2010/05/ip.php" target="_blank" rel="noopener noreferrer">live</a> vs <a href="https://static.yeri.be/2010/05/ip.php" target="_blank" rel="noopener noreferrer">cache</a>°. I&rsquo;m guessing as most of the stats (Google Analytics and WP Stats) are JavaScript based, all stats should still be correctly generated. Only the Apache logs show the nginx proxy <a href="https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/" target="_blank" rel="noopener noreferrer">IP</a> address. Which is normal, I guess.</p>
<p>First small test doesn&rsquo;t seem too good. Apparently not a lot of caching is going on. Though most of this site&rsquo;s content is HTML (using WPSuperCache).</p>
<ul>
    <li>Live, on One, using Apache: <a href="https://static.yeri.be/2010/05/one_apache.txt" target="_blank" rel="noopener noreferrer">here</a> &amp; <a href="https://static.yeri.be/2010/05/one_apache_img.txt" target="_blank" rel="noopener noreferrer">here</a></li>
    <li>Proxy, on VM1, using nginx: <a href="https://static.yeri.be/2010/05/vm1_nginx.txt" target="_blank" rel="noopener noreferrer">here</a> &amp; <a href="https://static.yeri.be/2010/05/vm1_nginx_img.txt" target="_blank" rel="noopener noreferrer">here</a></li>
</ul>
<p>More tests &amp; fine tuning later!</p>
<p>(°): Due to a <a href="https://yeri.be/nginx-reverse-proxy-ip/">minor edit</a>, the live and cached version both show the <span style="text-decoration: line-through;"><a href="https://yeri.be/nginx-reverse-proxy-with-caching">correct</a></span> IP address (yours) instead of the nginx proxy IP address.</p>
]]></content:encoded>
      <category>linux</category><category>networking</category><category>software</category><category>www</category>
      <category>nginx</category>
    </item>
    
    <item>
      <title>nginx &#43; fastcgi PHP</title>
      <link>https://yeri.be/nginx-fastcgi-php/</link>
      <pubDate>Sun, 21 Mar 2010 01:32:21 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nginx-fastcgi-php/</guid>
      <description>&lt;p&gt;I recently migrated &lt;a href=&#34;https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;vm1&lt;/a&gt; to &lt;a href=&#34;http://nginx.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;nginx&lt;/a&gt; instead of lighttpd. Just for the sake of playing and testing around.&lt;/p&gt;&#xA;&lt;p&gt;As there&amp;rsquo;s a PHP page as well, I had to set up fastcgi with PHP. I mainly followed &lt;a href=&#34;https://web.archive.org/web/20160310072932/http://tomasz.sterna.tv:80/2009/04/php-fastcgi-with-nginx-on-ubuntu&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;this tutorial&lt;/a&gt; to try to get PHP working.&lt;/p&gt;&#xA;&lt;p&gt;However, every PHP page I visited returned following error:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;No input file specified.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;As I was fairly sure it was path (or variable) related, I played around with:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I recently migrated <a href="https://web.archive.org/web/20110213161611/http://vm1.rootspirit.com:80/" target="_blank" rel="noopener noreferrer">vm1</a> to <a href="http://nginx.org/" target="_blank" rel="noopener noreferrer">nginx</a> instead of lighttpd. Just for the sake of playing and testing around.</p>
<p>As there&rsquo;s a PHP page as well, I had to set up fastcgi with PHP. I mainly followed <a href="https://web.archive.org/web/20160310072932/http://tomasz.sterna.tv:80/2009/04/php-fastcgi-with-nginx-on-ubuntu" target="_blank" rel="noopener noreferrer">this tutorial</a> to try to get PHP working.</p>
<p>However, every PHP page I visited returned following error:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">No input file specified.
</span></span></code></pre></div><p>As I was fairly sure it was path (or variable) related, I played around with:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">fastcgi_param   SCRIPT_FILENAME  <span class="nv">$document_root$fastcgi_script_name</span><span class="p">;</span>
</span></span></code></pre></div><p>Changing $document_root to the full path, etc, without success.</p>
<p>However, as I used the init script in the tutorial, and <a href="https://web.archive.org/web/20120225104936/http://forum.slicehost.com:80/comments.php?DiscussionID=1259" target="_blank" rel="noopener noreferrer">read a few posts</a> about possible permission errors, I tried adding the group to the fastcgi daemon starter as well.</p>
<p>Change this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">start-stop-daemon --quiet --start --background --chuid <span class="s2">&#34;</span><span class="nv">$USER</span><span class="s2">&#34;</span> --exec /usr/bin/env -- <span class="nv">$PHP_CGI_ARGS</span>
</span></span></code></pre></div><p>to:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">start-stop-daemon --quiet --start --background --chuid <span class="s2">&#34;</span><span class="nv">$USER</span><span class="s2">&#34;</span> -g www-data --exec /usr/bin/env -- <span class="nv">$PHP_CGI_ARGS</span>
</span></span></code></pre></div><p>Notice the &ldquo;-g www-data&rdquo; part.</p>
<p>You can always make a variable in case you ever want to edit it.</p>
<p>Restart php_fastcgi and try again. Should work fine now.</p>
<p>Some fast stats: <a href="https://static.yeri.be/2010/03/nginx.vm1_.txt" target="_blank" rel="noopener noreferrer">vm1 + nginx</a>, <a href="https://static.yeri.be/2010/03/lighttpd.vm1_.txt" target="_blank" rel="noopener noreferrer">vm1 + lighttpd</a>, <a href="https://static.yeri.be/2010/03/IIS7.vm0_.txt" target="_blank" rel="noopener noreferrer">vm0 + IIS7</a>, <a href="https://static.yeri.be/2010/03/apache.one_.txt" target="_blank" rel="noopener noreferrer">one + Apache</a>, vm1 + nginx + PHP and <a href="https://static.yeri.be/2010/03/apache.one_.php_.txt" target="_blank" rel="noopener noreferrer">one + Apache + PHP</a>.</p>
<p>These stats should only give a quick overview. To get correct results it should be ran on the same hardware, at the same moment with the same load, and 100% the same pages.</p>
<p>&ldquo;One&rdquo; is a Gentoo dual Pentium III with 1.2Gb ram, &ldquo;vm0&rdquo; is a Windows 2008 Xen Virtual machine with 1 Gb ram, and has access to two vCPUs (Xeon), &ldquo;vm1&rdquo; is a Debian with 128Mb ram, and also access to two vCPUs (Xeon). Nginx wins on static content (followed by Lighttpd). Apache wins by a little over nginx on PHP content in these tests.</p>
<p><a href="https://web.archive.org/web/20120703003237/http://blog.webfaction.com:80/a-little-holiday-present" target="_blank" rel="noopener noreferrer">Here</a>&rsquo;s another site with some stats.</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>software</category><category>www</category>
      <category>nginx</category><category>php</category>
    </item>
    
    <item>
      <title>OpenVPN packet drops</title>
      <link>https://yeri.be/openvpn-packet-drops/</link>
      <pubDate>Mon, 08 Mar 2010 17:22:35 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/openvpn-packet-drops/</guid>
      <description>&lt;p&gt;I recently started to notice following error messages on my openVPN server.&lt;/p&gt;&#xA;&lt;address&gt;ovpn-server[6306]: vpn.rootspirit.com/85.234.x.y:62068 MULTI: packet dropped due to output saturation (multi_process_incoming_tun)&lt;/address&gt;This basically means that the TUN or TAP interface is making more packets than the real (TCP) interface can handle.&#xA;&lt;p&gt;As I need to run OpenVPN using the TCP protocol (instead of the faster UDP protocol; as UDP is often blocked in networks I use my VPN in) I experimented by increasing the tcp-queue-limit. The default is 64, and I&amp;rsquo;ve set it to 256. So far, everything still seems to be working fine (but more packets will be queued before being dropped by OpenVPN, requiring less retransmissions).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I recently started to notice following error messages on my openVPN server.</p>
<address>ovpn-server[6306]: vpn.rootspirit.com/85.234.x.y:62068 MULTI: packet dropped due to output saturation (multi_process_incoming_tun)</address>This basically means that the TUN or TAP interface is making more packets than the real (TCP) interface can handle.
<p>As I need to run OpenVPN using the TCP protocol (instead of the faster UDP protocol; as UDP is often blocked in networks I use my VPN in) I experimented by increasing the tcp-queue-limit. The default is 64, and I&rsquo;ve set it to 256. So far, everything still seems to be working fine (but more packets will be queued before being dropped by OpenVPN, requiring less retransmissions).</p>
<p>Add this to the OpenVPN server config:</p>
<address>tcp-queue-limit 256</address>And restart the daemon.
]]></content:encoded>
      <category>errors</category><category>linux</category><category>networking</category><category>software</category>
      <category>openvpn</category><category>vpn</category>
    </item>
    
    <item>
      <title>OpenVPN &amp; Windows 7</title>
      <link>https://yeri.be/openvpn-windows-7/</link>
      <pubDate>Sun, 14 Feb 2010 17:10:11 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/openvpn-windows-7/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a great GUI out for OpenVPN &amp;amp; Windows, located &lt;a href=&#34;http://openvpn.se/download.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;However, this GUI includes an old OpenVPN, that is no longer compatible with Windows 7 and Windows Vista.&lt;/p&gt;&#xA;&lt;p&gt;The TUN/TAP driver will be blocked due to compatibility issues, and when trying to connect to a VPN, you&amp;rsquo;ll get an error along the lines of:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;All TAP-Win32 adapters on this system are currently in use&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;The simplest fix, is to install the GUI package (including the old OpenVPN binaries), and reinstall OpenVPN afterwards.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>There&rsquo;s a great GUI out for OpenVPN &amp; Windows, located <a href="http://openvpn.se/download.html" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>However, this GUI includes an old OpenVPN, that is no longer compatible with Windows 7 and Windows Vista.</p>
<p>The TUN/TAP driver will be blocked due to compatibility issues, and when trying to connect to a VPN, you&rsquo;ll get an error along the lines of:</p>
<p><code>All TAP-Win32 adapters on this system are currently in use</code></p>
<p>The simplest fix, is to install the GUI package (including the old OpenVPN binaries), and reinstall OpenVPN afterwards.</p>
<p>You can find the latest OpenVPN binaries <a href="https://web.archive.org/web/20170607163358/https://openvpn.net/release/" target="_blank" rel="noopener noreferrer">here</a> and the latest version, when writing this post <a href="https://web.archive.org/web/20170607163358/https://openvpn.net/release/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>This will overwrite the old files and update the driver with a Windows 7 compatible driver.</p>
<p>Try to connect now, everything should work like a charm. :)</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">http://openvpn.se/download.html</div>
]]></content:encoded>
      <category>errors</category><category>networking</category><category>software</category><category>windows</category>
      <category>openvpn</category><category>vpn</category><category>windows 7</category>
    </item>
    
    <item>
      <title>Turning off Driver Signing in Windows 7</title>
      <link>https://yeri.be/turning-off-driver-signing-in-windows-7/</link>
      <pubDate>Fri, 12 Feb 2010 16:46:37 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/turning-off-driver-signing-in-windows-7/</guid>
      <description>&lt;p&gt;To disable it, as administrator, open cmd.exe (win button + R -&amp;gt; cmd -&amp;gt; [enter]), and copy paste the following 2 lines:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS&#xA;bcdedit.exe -set TESTSIGNING ON&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Reboot, enjoy. No more annoying messages. :)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>To disable it, as administrator, open cmd.exe (win button + R -&gt; cmd -&gt; [enter]), and copy paste the following 2 lines:</p>
<p><code>bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON</code></p>
<p>Reboot, enjoy. No more annoying messages. :)</p>
]]></content:encoded>
      <category>errors</category><category>software</category>
      <category>drivers</category><category>windows 7</category>
    </item>
    
    <item>
      <title>uptimed php file</title>
      <link>https://yeri.be/uptimed-php-file/</link>
      <pubDate>Wed, 10 Feb 2010 17:08:58 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/uptimed-php-file/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re running &lt;a href=&#34;https://web.archive.org/web/20150328234734/http://podgorny.cz:80/moin/Uptimed&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;uptimed&lt;/a&gt; (or uprecords) and what to display it in a simple php page, you&amp;rsquo;ll notice the bold text makes the page somewhat ugly.&lt;/p&gt;&#xA;&lt;p&gt;Use &lt;a href=&#34;https://static.yeri.be/2010/02/uptime.php_.tar&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;this&lt;/a&gt; file to remove the bold chars and make it readable.&lt;/p&gt;&#xA;&lt;p&gt;Examples: &lt;a href=&#34;http://uptime.rootspirit.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;zero&lt;/a&gt;, &lt;a href=&#34;https://web.archive.org/web/20070330014525/http://uptime1.rootspirit.com:80/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;one&lt;/a&gt;, &lt;a href=&#34;http://four.rootspirit.com/up/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;four&lt;/a&gt;, &lt;a href=&#34;http://vm1.rootspirit.com/uptime.php&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;vm1&lt;/a&gt;, &lt;a href=&#34;https://web.archive.org/web/20090914050359/http://home.tiete.be:80/uptime/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Sauron&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>If you&rsquo;re running <a href="https://web.archive.org/web/20150328234734/http://podgorny.cz:80/moin/Uptimed" target="_blank" rel="noopener noreferrer">uptimed</a> (or uprecords) and what to display it in a simple php page, you&rsquo;ll notice the bold text makes the page somewhat ugly.</p>
<p>Use <a href="https://static.yeri.be/2010/02/uptime.php_.tar" target="_blank" rel="noopener noreferrer">this</a> file to remove the bold chars and make it readable.</p>
<p>Examples: <a href="http://uptime.rootspirit.com/" target="_blank" rel="noopener noreferrer">zero</a>, <a href="https://web.archive.org/web/20070330014525/http://uptime1.rootspirit.com:80/" target="_blank" rel="noopener noreferrer">one</a>, <a href="http://four.rootspirit.com/up/" target="_blank" rel="noopener noreferrer">four</a>, <a href="http://vm1.rootspirit.com/uptime.php" target="_blank" rel="noopener noreferrer">vm1</a>, <a href="https://web.archive.org/web/20090914050359/http://home.tiete.be:80/uptime/" target="_blank" rel="noopener noreferrer">Sauron</a></p>
]]></content:encoded>
      <category>hardware</category><category>linux</category><category>software</category><category>www</category>
      <category>php</category><category>uprecords</category><category>uptimed</category>
    </item>
    
    <item>
      <title>Fraps to iMovie</title>
      <link>https://yeri.be/fraps-to-imovie/</link>
      <pubDate>Fri, 29 Jan 2010 11:48:54 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/fraps-to-imovie/</guid>
      <description>&lt;p&gt;How to successfully import a movie recorded using Fraps into iMovie;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&#x9;&lt;li&gt;Get Fraps, record whatever you want&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Get &lt;a href=&#34;http://www.videohelp.com/tools/XviD4PSP&#34; target=&#34;_blank&#34;&gt;XviD4PSP&lt;/a&gt; (freeware) &amp;amp; install&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Import your avi files recorded using Fraps into XviD4PSP (drag &amp;amp; drop)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Pick the encoding you want on the left. x264 q21 DXVA-SD-Insane seemed to be an acceptable quality.&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Click enqueue (and repeat 3-&amp;gt;5 for multiple files)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Click encode&lt;/li&gt;&#xA;&#x9;&lt;li&gt;... wait ...&lt;/li&gt;&#xA;&#x9;&lt;li&gt;This will create .mp4 files; transfer those to your Mac&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Open iMovie, File -&amp;gt; Import -&amp;gt; Movies -&amp;gt; select the mp4 files&lt;/li&gt;&#xA;&#x9;&lt;li&gt;... wait ... A couple of hours&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Your movie should now be in iMovie, and you should be able to edit it&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Edit whatever you want to edit, share and export and have fun.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;A little hint, if your video is cropped (parts cut off), click your movie sequence -&amp;gt; on the left corner of your sequence a little &#34;gear&#34; will appear -&amp;gt; Cropping &amp;amp; Rotation -&amp;gt; in your right display window click &#34;fit&#34; to make it full size.&#xA;&lt;p&gt;Took me quite some time before I managed to do it, but hey, now I know&amp;hellip; ;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>How to successfully import a movie recorded using Fraps into iMovie;</p>
<ol>
	<li>Get Fraps, record whatever you want</li>
	<li>Get <a href="http://www.videohelp.com/tools/XviD4PSP" target="_blank">XviD4PSP</a> (freeware) &amp; install</li>
	<li>Import your avi files recorded using Fraps into XviD4PSP (drag &amp; drop)</li>
	<li>Pick the encoding you want on the left. x264 q21 DXVA-SD-Insane seemed to be an acceptable quality.</li>
	<li>Click enqueue (and repeat 3-&gt;5 for multiple files)</li>
	<li>Click encode</li>
	<li>... wait ...</li>
	<li>This will create .mp4 files; transfer those to your Mac</li>
	<li>Open iMovie, File -&gt; Import -&gt; Movies -&gt; select the mp4 files</li>
	<li>... wait ... A couple of hours</li>
	<li>Your movie should now be in iMovie, and you should be able to edit it</li>
	<li>Edit whatever you want to edit, share and export and have fun.</li>
</ol>
A little hint, if your video is cropped (parts cut off), click your movie sequence -&gt; on the left corner of your sequence a little "gear" will appear -&gt; Cropping &amp; Rotation -&gt; in your right display window click "fit" to make it full size.
<p>Took me quite some time before I managed to do it, but hey, now I know&hellip; ;)</p>
]]></content:encoded>
      <category>apple</category><category>software</category><category>windows</category>
      <category>apple</category><category>codec</category><category>fraps</category><category>imovie</category>
    </item>
    
    <item>
      <title>iTunes 9 and iPhone OS 3</title>
      <link>https://yeri.be/itunes-9-and-iphone-os-3/</link>
      <pubDate>Thu, 28 Jan 2010 10:14:55 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/itunes-9-and-iphone-os-3/</guid>
      <description>&lt;p&gt;And the smart playlist syncing issue.&lt;/p&gt;&#xA;&lt;p&gt;Syncing smart playlists, with &amp;ldquo;live updating&amp;rdquo; checked, bugged the playlists on the iPhone (there were songs in the playlist that didn&amp;rsquo;t belong there). Hoping this bug would be fixed ASAP I tried to ignore it as long as possible&amp;hellip; However, it so far hasn&amp;rsquo;t been fixed.&lt;/p&gt;&#xA;&lt;p&gt;As I was pretty fed up with unchecking &amp;ldquo;live updating&amp;rdquo; for 6 playlists eachtime I synced my iPhone, I tried to play around and find a fix.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>And the smart playlist syncing issue.</p>
<p>Syncing smart playlists, with &ldquo;live updating&rdquo; checked, bugged the playlists on the iPhone (there were songs in the playlist that didn&rsquo;t belong there). Hoping this bug would be fixed ASAP I tried to ignore it as long as possible&hellip; However, it so far hasn&rsquo;t been fixed.</p>
<p>As I was pretty fed up with unchecking &ldquo;live updating&rdquo; for 6 playlists eachtime I synced my iPhone, I tried to play around and find a fix.</p>
<p>Apparently, adding the following rule, solves the issue (don&rsquo;t ask me why though):</p>
<p>&ldquo;<strong>Playlist </strong>-<strong> is </strong>-<strong> Music</strong>.&rdquo;</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/01/itunes.png" target="_blank" rel="noopener noreferrer"><img class="size-medium wp-image-920 aligncenter" title="iTunes smart playlist" src="https://static.yeri.be/2010/01/itunes-300x124.png" alt="" width="300" height="124" /></a></p>
<p>Add this to all your smart playlists, resync, and your issue should be solved. Don&rsquo;t forget to check on &ldquo;live updating&rdquo; again. ;)</p>
<p>Media kind is music didn&rsquo;t affect the issue, however, this was an old rule that was already added to avoid getting podcasts into my smart playlists.</p>
<p>Also, if anyone can tell me how to reduce the memory usage of iTunes 9 (using 900+ Mb, coverflow enabled). The only useful work around is either disable cover flow or to put iTunes into Mini Player (shift+Apple+M)&hellip;</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2010/01/itunes_low_mem.png" target="_blank" rel="noopener noreferrer"><img class="size-medium wp-image-941 aligncenter" title="iTunes error: low memory" src="https://static.yeri.be/2010/01/itunes_low_mem-300x123.png" alt="" width="300" height="123" /></a></p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>apple</category><category>iphone</category><category>itunes</category>
    </item>
    
    <item>
      <title>MRTG</title>
      <link>https://yeri.be/mrtg/</link>
      <pubDate>Wed, 18 Nov 2009 17:14:57 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mrtg/</guid>
      <description>&lt;p&gt;As I often have people asking for the files I use to make my pretty MRTG graphs; I&amp;rsquo;ll publish them here.&lt;/p&gt;&#xA;&lt;p&gt;Here are some examples:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://web.archive.org/web/20100712200524/http://mrtg.rootspirit.com:80/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Zero&lt;/a&gt; - &lt;a href=&#34;http://one.rootspirit.com/mrtg/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;One&lt;/a&gt; - &lt;a href=&#34;http://four.rootspirit.com/mrtg/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Four&lt;/a&gt; - &lt;a href=&#34;http://vm1.rootspirit.com/mrtg/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;vm1&lt;/a&gt; - &lt;a href=&#34;http://home.tiete.be/mrtg/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Sauron&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The config files:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.yeri.be/2009/11/sauron.tar&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Sauron&lt;/a&gt; (including Squid stats),&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.yeri.be/2009/11/zero.tar&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Zero&lt;/a&gt; (including fan stats).&lt;/p&gt;&#xA;&lt;p&gt;List of files included:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;indexmaker; simple script (included with MRTG) to generate a simple index file with all the graphs&lt;/li&gt;&#xA;&lt;li&gt;snmp-if.sh; will show you the IDs of the interfaces on the server/pc. These IDs have to be edited in the mrtg.cfg file; e.g.:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Target[eth0]: &lt;span style=&#34;color: #ff0000;&#34;&gt;2&lt;/span&gt;:public@localhost:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>As I often have people asking for the files I use to make my pretty MRTG graphs; I&rsquo;ll publish them here.</p>
<p>Here are some examples:</p>
<p><a href="https://web.archive.org/web/20100712200524/http://mrtg.rootspirit.com:80/" target="_blank" rel="noopener noreferrer">Zero</a> - <a href="http://one.rootspirit.com/mrtg/" target="_blank" rel="noopener noreferrer">One</a> - <a href="http://four.rootspirit.com/mrtg/" target="_blank" rel="noopener noreferrer">Four</a> - <a href="http://vm1.rootspirit.com/mrtg/" target="_blank" rel="noopener noreferrer">vm1</a> - <a href="http://home.tiete.be/mrtg/" target="_blank" rel="noopener noreferrer">Sauron</a></p>
<p>The config files:</p>
<p><a href="https://static.yeri.be/2009/11/sauron.tar" target="_blank" rel="noopener noreferrer">Sauron</a> (including Squid stats),</p>
<p><a href="https://static.yeri.be/2009/11/zero.tar" target="_blank" rel="noopener noreferrer">Zero</a> (including fan stats).</p>
<p>List of files included:</p>
<ul>
<li>indexmaker; simple script (included with MRTG) to generate a simple index file with all the graphs</li>
<li>snmp-if.sh; will show you the IDs of the interfaces on the server/pc. These IDs have to be edited in the mrtg.cfg file; e.g.:</li>
</ul>
<p>Target[eth0]: <span style="color: #ff0000;">2</span>:public@localhost:</p>
<p>Make sure 2 is indeed the ID of eth0. Be aware that virtual interfaces, like the TUN/TAP interfaces (using by openVPN for example), can change ID each time they are restarted/rebooted.</p>
<ul>
<li>mrtg.cfg; check the config file as an example.</li></ul>
<li>mrtg-&lt;xyz&gt;.sh; bunch of files to generate some data. Not all of  those still work, but I haven't deleted them yet in case. See the config to check those I'm using.
</li>
<li>
<p>mrtg._1 and mrtg.ok can be deleted/ignores. Those files are generated by MRTG and I was to lazy to remove them. :(</p>
</li>
<p>Some day, I&rsquo;ll write a decent howto, but for now, you&rsquo;ll have to do with this.</p>
<p>If there&rsquo;s any question, just leave a comment.</p>
]]></content:encoded>
      <category>hardware</category><category>misc</category><category>networking</category><category>software</category><category>www</category>
      <category>linux</category><category>ubuntu</category><category>debian</category><category>gentoo</category><category>mrtg</category><category>stats</category>
    </item>
    
    <item>
      <title>Hamachi: Failed to connect to the engine</title>
      <link>https://yeri.be/hamachi-failed-to-connect-to-the-engine/</link>
      <pubDate>Wed, 04 Nov 2009 16:35:49 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/hamachi-failed-to-connect-to-the-engine/</guid>
      <description>&lt;p&gt;After getting the Hamachi 2 update (without a prior notice, nicely done&amp;hellip; No more auto update if they continue to break stuff) I started to notice a bunch of XPs receiving this error after a reboot: &lt;a href=&#34;http://community.logmein.com/logmein/board/message?board.id=11&amp;amp;thread.id=1417&amp;amp;view=by_date_ascending&amp;amp;page=1&#34; target=&#34;_blank&#34;&gt;Failed to connect to the engine&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Hamachi is auto started, at boot, because we have a shortcut in the startup folder. No other way to auto start the free version (as far as I know).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>After getting the Hamachi 2 update (without a prior notice, nicely done&hellip; No more auto update if they continue to break stuff) I started to notice a bunch of XPs receiving this error after a reboot: <a href="http://community.logmein.com/logmein/board/message?board.id=11&amp;thread.id=1417&amp;view=by_date_ascending&amp;page=1" target="_blank">Failed to connect to the engine</a>.</p>
<p>Hamachi is auto started, at boot, because we have a shortcut in the startup folder. No other way to auto start the free version (as far as I know).</p>
<p>Yet, when starting Hamachi manually after the PC had booted, there were no more errors. So it&rsquo;s clear Hamachi tried to start before the engine (see services.msc -&gt; LogMeIn Hamachi Engine or something) was started.</p>
<p>And reinstalling Hamachi only seemed to work on one of the XPs.</p>
<p>As there&rsquo;s no easy way to delay the starting up of a program, I used some dirty vbs and batch&hellip; Kinda.</p>
<p>Here&rsquo;s my solution:</p>
<p>Place both scripts in the Hamachi directory (c:\program files\logmein hamachi)</p>
<p>hamachiStart.vbs:</p>
<pre>Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & ".\hamachi.bat" & Chr(34), 0
Set WshShell = Nothing</pre>
<p>hamachi.bat:</p>
<pre>@echo off
ping -n 30 127.0.0.1 >NUL
"C:\Program Files\LogMeIn Hamachi\hamachi-2-ui.exe"
exit</pre>
<p>Hamachi.vbs will start the bat file. This seems to be the only way to prevent a command prompt from opening (and staying open all the time).</p>
<p>Hamachi.bat will ping itself for 30ish seconds (don&rsquo;t think there&rsquo;s a cleaner way to do this&hellip;) and then start the Hamachi GUI.</p>
<p>If you&rsquo;re still having problems, increase 30 to something like 60 or even more.</p>
<p>Anyway, last thing you&rsquo;ll need to do is to make a shortcut of hamachi.vbs, and drag it into the startup folder.</p>
<p>Reboot, wait a bit, and enjoy.</p>
]]></content:encoded>
      <category>errors</category><category>software</category><category>windows</category>
      <category>hamachi</category><category>logmein</category>
    </item>
    
    <item>
      <title>HP ProtectTools and Windows 7</title>
      <link>https://yeri.be/hp-protecttools-and-windows-7/</link>
      <pubDate>Fri, 30 Oct 2009 00:23:24 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/hp-protecttools-and-windows-7/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re having troubles using HP ProtectTools and Windows 7, you&amp;rsquo;ll probably using an outdated version of ProtectTools. Eventhough HP tells you this is the latest version for your notebook.&lt;/p&gt;&#xA;&lt;p&gt;A simple fix, is to &lt;a href=&#34;http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;amp;cc=us&amp;amp;prodTypeId=321957&amp;amp;prodSeriesId=1849082&amp;amp;swItem=ob-75523-1&amp;amp;mode=3&#34; target=&#34;_blank&#34;&gt;download the latest version&lt;/a&gt;, which is model independent.&lt;/p&gt;&#xA;&lt;p&gt;Be sure to completely uninstall the previous version, reboot, and reinstall the latest version. I can now successfully login using the biometric fingerprint device.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>If you&rsquo;re having troubles using HP ProtectTools and Windows 7, you&rsquo;ll probably using an outdated version of ProtectTools. Eventhough HP tells you this is the latest version for your notebook.</p>
<p>A simple fix, is to <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;prodTypeId=321957&amp;prodSeriesId=1849082&amp;swItem=ob-75523-1&amp;mode=3" target="_blank">download the latest version</a>, which is model independent.</p>
<p>Be sure to completely uninstall the previous version, reboot, and reinstall the latest version. I can now successfully login using the biometric fingerprint device.</p>
]]></content:encoded>
      <category>errors</category><category>hardware</category><category>software</category><category>windows</category>
      <category>hp</category><category>windows 7</category>
    </item>
    
    <item>
      <title>Gmail spam &#34;mark-as-read&#34;</title>
      <link>https://yeri.be/gmail-spam-mark-as-read/</link>
      <pubDate>Mon, 21 Sep 2009 22:49:33 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/gmail-spam-mark-as-read/</guid>
      <description>&lt;p&gt;Google changed their Mailbox names (from Google Mail, to Gmail) so &lt;a href=&#34;https://static.yeri.be/2009/09/gmail_spamreader_v0.03.phps&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; is the update from my previous &lt;a href=&#34;https://yeri.be/imapgmail-mark-as-read/&#34;&gt;php script I made a few years ago&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Edit:&lt;/em&gt; Gmail reverted back to the previous version (imap folders were &amp;ldquo;Google Mail&amp;rdquo;, changed to &amp;ldquo;Gmail&amp;rdquo; yesterday and today). To version v0.03 won&amp;rsquo;t work anymore. I&amp;rsquo;m guessing this was a temporary change to implement their exchange/push-support.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Google changed their Mailbox names (from Google Mail, to Gmail) so <a href="https://static.yeri.be/2009/09/gmail_spamreader_v0.03.phps" target="_blank" rel="noopener">here</a> is the update from my previous <a href="https://yeri.be/imapgmail-mark-as-read/">php script I made a few years ago</a>.</p>
<p><em>Edit:</em> Gmail reverted back to the previous version (imap folders were &ldquo;Google Mail&rdquo;, changed to &ldquo;Gmail&rdquo; yesterday and today). To version v0.03 won&rsquo;t work anymore. I&rsquo;m guessing this was a temporary change to implement their exchange/push-support.</p>
]]></content:encoded>
      <category>software</category>
      <category>gmail</category><category>imap</category><category>spam</category>
    </item>
    
    <item>
      <title>Prowl: check server status (using ping)</title>
      <link>https://yeri.be/prowl-check-server-status-using-ping/</link>
      <pubDate>Sun, 30 Aug 2009 11:35:57 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/prowl-check-server-status-using-ping/</guid>
      <description>&lt;p&gt;Yesterday I&amp;rsquo;ve start using &lt;a href=&#34;http://prowl.weks.net/&#34; target=&#34;_blank&#34;&gt;Prowl&lt;/a&gt;, as I heard good comments about it.  And one of the things I want it to check, are my server statuses.  I made a quick script using bash and crontab to check every 10 min if it replies on ping.  Per server, I created &amp;ldquo;host.domain.tld.sh&amp;rdquo; (e.g. zero.rootspirit.com.sh), and added this in the file:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-BASH&#34; data-lang=&#34;BASH&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;YourApiKey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HOST&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zero.rootspirit.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ping -c &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$HOST&lt;/span&gt;   &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$?&lt;/span&gt; -ne &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -k -s &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://prowl.weks.net/publicapi/add?apikey=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$KEY&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;amp;application=Server%20Connectivity%20Failure&amp;amp;event=&amp;amp;description=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$HOST&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;amp;priority=2&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Of course, change KEY to &lt;a href=&#34;https://prowl.weks.net/settings.php&#34; target=&#34;_blank&#34;&gt;your API&lt;/a&gt; key, HOST to the IP or DNS of the server it should ping.  Also, make sure, that when pinging on your host where you&amp;rsquo;ll run the bash script on, a non-existing domain actually returns:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Yesterday I&rsquo;ve start using <a href="http://prowl.weks.net/" target="_blank">Prowl</a>, as I heard good comments about it.  And one of the things I want it to check, are my server statuses.  I made a quick script using bash and crontab to check every 10 min if it replies on ping.  Per server, I created &ldquo;host.domain.tld.sh&rdquo; (e.g. zero.rootspirit.com.sh), and added this in the file:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nv">KEY</span><span class="o">=</span>YourApiKey
</span></span><span class="line"><span class="cl"><span class="nv">HOST</span><span class="o">=</span>zero.rootspirit.com
</span></span><span class="line"><span class="cl">ping -c <span class="m">1</span> <span class="nv">$HOST</span>   <span class="p">&amp;</span>&gt;/dev/null
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="nv">$?</span> -ne <span class="m">0</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl">curl -k -s <span class="s2">&#34;https://prowl.weks.net/publicapi/add?apikey=</span><span class="nv">$KEY</span><span class="s2">&amp;application=Server%20Connectivity%20Failure&amp;event=&amp;description=</span><span class="nv">$HOST</span><span class="s2">&amp;priority=2&#34;</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span></code></pre></div><p>Of course, change KEY to <a href="https://prowl.weks.net/settings.php" target="_blank">your API</a> key, HOST to the IP or DNS of the server it should ping.  Also, make sure, that when pinging on your host where you&rsquo;ll run the bash script on, a non-existing domain actually returns:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl">ping: unknown host ezfzigjagaqg.reg
</span></span></code></pre></div><p>instead of</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl">PING ezfzigjagaqg.reg.rootspirit.com <span class="o">(</span>85.12.6.130<span class="o">)</span> 56<span class="o">(</span>84<span class="o">)</span> bytes of data.
</span></span></code></pre></div><p>(Should depend on the search line in /etc/resolv.conf)  As I&rsquo;m pinging about 6 servers I created the file &ldquo;checkServers.sh&rdquo; with this content:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="cl"><span class="cp"></span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/zero.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/one.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/two.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/four.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/vm0.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="sb">`</span>/home/yeri/prowl/vm1.rootspirit.com.sh <span class="p">&amp;</span>&gt;/dev/null<span class="sb">`</span>
</span></span></code></pre></div><p>Make sure to chmod +x *.sh, to make it executable, and edit crontab and add something like that:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-BASH" data-lang="BASH"><span class="line"><span class="cl">*/10	*	*	*	*	/home/yeri/prowl/checkServers.sh <span class="p">&amp;</span>&gt;/dev/null
</span></span></code></pre></div><p>Don&rsquo;t forget to test it whether it works or not (try non-existing domain(s), and run the script again).</p>
]]></content:encoded>
      <category>apple</category><category>linux</category><category>networking</category><category>software</category>
      <category>bash</category><category>cron</category><category>crontab</category><category>iphone</category><category>prowl</category><category>server status</category>
    </item>
    
    <item>
      <title>Display iPhone battery status in percent</title>
      <link>https://yeri.be/display-iphone-battery-status-in-procent/</link>
      <pubDate>Fri, 31 Jul 2009 01:55:18 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/display-iphone-battery-status-in-procent/</guid>
      <description>&lt;p&gt;With the new firmware, you can now display your battery status in percent (%).&lt;/p&gt;&#xA;&lt;p&gt;For my iPhone 3G this came, out of the box, right after the update to 3.0. I could clearly see the 100% next to my battery icon.&lt;/p&gt;&#xA;&lt;p&gt;But yes, I did have my iPhone jailbroken before I upgraded.&lt;/p&gt;&#xA;&lt;p&gt;Now, appearantly, this feature is only available for iPhone 3GS, and not iPhone 3G and iPhone 2G, though, it is possible using e.g. Bossprefs. Lame from Apple !&lt;/p&gt;&#xA;&lt;p&gt;Anyhow, after some Googling, I came to the conclusion:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;iPhones that used to be jailbroken will have the % displayed next to the battery icon.&lt;/li&gt;&#xA;&lt;li&gt;Regular iPhone 2G and 3G will not have the switch in &#34;Settings &amp;gt; General &amp;gt; Usage&#34;, whereas 3GS will.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2009/07/IMG_0003.PNG&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-782&#34; title=&#34;iPhone battery % status&#34; src=&#34;https://static.yeri.be/2009/07/IMG_0003-200x300.PNG&#34; alt=&#34;iPhone battery % status&#34; width=&#34;200&#34; height=&#34;300&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I found a &lt;a href=&#34;http://iphone-oman.blogspot.com/2009/06/enable-battery-percentage-indicator-in.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;cool workaround&lt;/a&gt; right here, although it requires you to jailbreak your iPhone.&lt;/p&gt;&#xA;&lt;p&gt;Don&amp;rsquo;t forget to install &amp;ldquo;openssh&amp;rdquo;  and &amp;ldquo;wget&amp;rdquo; or &amp;ldquo;lynx&amp;rdquo; (makes it a lot easier) using the Cydia package manager.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve hosted the plist file &lt;a href=&#34;https://static.yeri.be/2009/07/M68AP.plist&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;right here&lt;/a&gt;, just in case it would go offline.&lt;/p&gt;&#xA;&lt;p&gt;Basicly, you have to add these 2 lines to the .plist:&lt;/p&gt;&#xA;&lt;pre&gt;   &amp;lt;key&amp;gt;gas-gauge-battery&amp;lt;/key&amp;gt;&#xA;   &amp;lt;true/&amp;gt;&lt;/pre&gt;&#xA;&lt;p&gt;This works with the current iPhone version (3.0).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>With the new firmware, you can now display your battery status in percent (%).</p>
<p>For my iPhone 3G this came, out of the box, right after the update to 3.0. I could clearly see the 100% next to my battery icon.</p>
<p>But yes, I did have my iPhone jailbroken before I upgraded.</p>
<p>Now, appearantly, this feature is only available for iPhone 3GS, and not iPhone 3G and iPhone 2G, though, it is possible using e.g. Bossprefs. Lame from Apple !</p>
<p>Anyhow, after some Googling, I came to the conclusion:</p>
<ul>
<li>iPhones that used to be jailbroken will have the % displayed next to the battery icon.</li>
<li>Regular iPhone 2G and 3G will not have the switch in "Settings &gt; General &gt; Usage", whereas 3GS will.</li>
</ul>
<p style="text-align: center;"><a href="https://static.yeri.be/2009/07/IMG_0003.PNG" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-782" title="iPhone battery % status" src="https://static.yeri.be/2009/07/IMG_0003-200x300.PNG" alt="iPhone battery % status" width="200" height="300" /></a></p>
<p>I found a <a href="http://iphone-oman.blogspot.com/2009/06/enable-battery-percentage-indicator-in.html" target="_blank" rel="noopener">cool workaround</a> right here, although it requires you to jailbreak your iPhone.</p>
<p>Don&rsquo;t forget to install &ldquo;openssh&rdquo;  and &ldquo;wget&rdquo; or &ldquo;lynx&rdquo; (makes it a lot easier) using the Cydia package manager.</p>
<p>I&rsquo;ve hosted the plist file <a href="https://static.yeri.be/2009/07/M68AP.plist" target="_blank" rel="noopener">right here</a>, just in case it would go offline.</p>
<p>Basicly, you have to add these 2 lines to the .plist:</p>
<pre>   &lt;key&gt;gas-gauge-battery&lt;/key&gt;
   &lt;true/&gt;</pre>
<p>This works with the current iPhone version (3.0).</p>
<p>I&rsquo;ve copy pasted the howto, just in case. All credits go to the original poster.</p>
<ol>
    <li>First you need to Jailbreak your iPhone, use PwnageTool or Redsnow check the dev team blog.
<em>-&gt; and install openSSH, wget, lynx, and restart your iPhone to be sure.</em></li>
    <li> Download the M68AP.plist file from the link: <a href="http://www.4shared.com/file/113188452/9434236e/M68AP.html">http://www.4shared.com/file/113188452/9434236e/M68AP.html</a> <em>or from the link I've posted above</em>. <em>This is optional, see #5</em></li>
    <li>SSH into your iPhone. (Or use iPhoneBrowser 'look it up in google its right there!)
<em>-&gt; if this is first time you SSH to your iPhone it might take hell of a long time and even time out a few times. Due to the keys being generated. Use PuTTY or Terminal to ssh; command: ssh -l root &lt;iPhone IP&gt;</em>.<em> The default password is "alpine" (don't forget to change that with "passwd").</em></li>
    <li> Go to /System/Library/CoreServices/Springboard.app/</li>
    <li> Replace the M68AP.plist in the directory with the one you downloaded
<em>-&gt; you might aswell "mv M68AP.plist M68AP.plist.backup &amp;&amp; wget https://static.yeri.be/2009/07/M68AP.plist</em></li>
    <li> Restart you iphone.</li>
    <li> Now go to the application Settings -&gt; General -&gt; Usage and there will be a Battery Percentage toggle and you can use it to enable battery percentage next to battery icon in top-right corner.</li>
</ol>
<p>And that works !</p>]]></content:encoded>
      <category>software</category>
      <category>battery</category><category>iphone</category>
    </item>
    
    <item>
      <title>Vodafone Mobile Connect - Incorrect Pin code</title>
      <link>https://yeri.be/vodafone-mobile-connect-incorrect-pin-code/</link>
      <pubDate>Fri, 10 Jul 2009 22:25:49 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/vodafone-mobile-connect-incorrect-pin-code/</guid>
      <description>&lt;p&gt;As I usually use my SIM card in my iPhone, I booted my PC, plugged in the Vodafone USB Mobile Connect modem (HAUWEI 220 or something). I then inserted, with the USB device plugged in, my SIM card, and booted up the Mac (and later on Windows) Vodafone application, to connect my PC to the Proximus 3G network.&lt;/p&gt;&#xA;&lt;p&gt;This resulted in a constant error; &amp;ldquo;&lt;strong&gt;The pin code was not accepted by the mobile device&lt;/strong&gt;&amp;rdquo;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>As I usually use my SIM card in my iPhone, I booted my PC, plugged in the Vodafone USB Mobile Connect modem (HAUWEI 220 or something). I then inserted, with the USB device plugged in, my SIM card, and booted up the Mac (and later on Windows) Vodafone application, to connect my PC to the Proximus 3G network.</p>
<p>This resulted in a constant error; &ldquo;<strong>The pin code was not accepted by the mobile device</strong>&rdquo;.</p>
<p>I of course removed the SIM card each time, and inserted it back in my iPhone, and unlocked it by inserting my code. I didn&rsquo;t want to lock my SIM card, and made sure I had at least 2 good tries left each time.</p>
<p>As you can let the application remember the pin code, I was 100% sure it were wrong settings. The worst part, was that the application quits after prompting  that message. I reinstalled, searching in the config files, removed all <em>vodafone</em> files, tried in Windows, changed my pin code a couple of times (the default 0000 one too), updated the HAUWEI firmware, updated the Mobile Connect client software, rebooted, and when I was about to give up, it hit me like a truck. I&rsquo;m from the bloody &ldquo;hotswap generation&rdquo;. And Vodafone sucks. Seriously. Wasted 2 hours on that. Such a waste of time, such a simple solution.</p>
<p>When inserting the SIM card into the device. UNPLUG THE USB MODEM. INSERT SIM. THEN, NOT BEFORE, INSERT IT IN THE DAMN PC. Start the application. Enjoy. No more dodgy error messages, the application works, and you can connect to the bloody internet.</p>
<p>GG Vodafone. GG hotswap.</p>
]]></content:encoded>
      <category>errors</category><category>hardware</category><category>networking</category><category>software</category>
      <category>hotswap</category><category>iphone</category><category>usb</category><category>vodafone</category>
    </item>
    
    <item>
      <title>Railtime</title>
      <link>https://yeri.be/railtime/</link>
      <pubDate>Wed, 28 Jan 2009 11:49:48 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/railtime/</guid>
      <description>&lt;p&gt;Finally, NMBS/Infrabel does something customer minded.&lt;/p&gt;&#xA;&lt;p&gt;Today (after canceling every train passing through Antwerp-Berchem, due to light problems), they launched &lt;a href=&#34;https://web.archive.org/web/20150411072835/http://railtime.be:80/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Railtime.be&lt;/a&gt;. I must say I&amp;rsquo;m surprised in a positive way.&lt;/p&gt;&#xA;&lt;p&gt;Ok, it has a simple (ugly?) layout, it uses asp and .htm extentions&amp;hellip; But hey, we got a site, that isn&amp;rsquo;t too slow, and seems to provide correct information for now&amp;hellip; :P&lt;/p&gt;&#xA;&lt;p&gt;Too bad there&amp;rsquo;s no mobile version available.&lt;/p&gt;&#xA;&lt;p&gt;Guess it&amp;rsquo;s one of those things to add to iRail&amp;hellip; ;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Finally, NMBS/Infrabel does something customer minded.</p>
<p>Today (after canceling every train passing through Antwerp-Berchem, due to light problems), they launched <a href="https://web.archive.org/web/20150411072835/http://railtime.be:80/" target="_blank" rel="noopener">Railtime.be</a>. I must say I&rsquo;m surprised in a positive way.</p>
<p>Ok, it has a simple (ugly?) layout, it uses asp and .htm extentions&hellip; But hey, we got a site, that isn&rsquo;t too slow, and seems to provide correct information for now&hellip; :P</p>
<p>Too bad there&rsquo;s no mobile version available.</p>
<p>Guess it&rsquo;s one of those things to add to iRail&hellip; ;)</p>
<p>Over &amp; out, going back to study!</p>
<p><em><strong>Edit: </strong></em>Website: no delays, all ok; station: &ldquo;unknown delay&rdquo; (= 30+ mins)&hellip; SEEMS TO BE WORKING GREAT. REALLY.</p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>nmbs</category><category>railtime</category><category>sncb</category>
    </item>
    
    <item>
      <title>Java &#43; Angry IP Scanner error</title>
      <link>https://yeri.be/java-angry-ip-scanner-error/</link>
      <pubDate>Thu, 06 Nov 2008 12:00:43 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/java-angry-ip-scanner-error/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.angryziber.com&#34; target=&#34;_blank&#34;&gt;Angry IP scanner&lt;/a&gt; was quitting each time I started the application, and looking at Console I saw these errors:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;JavaAppLauncher Error&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; CFBundleCopyResourceURL&lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; failed loading MRJApp.properties file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;JavaAppLauncher Error&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; CFBundleCopyResourceURL&lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; failed &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; getting Resource/Java directory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;LaunchRunner Error&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; No main class specified&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;JavaAppLauncher Error&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; CallStaticVoidMethod&lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; threw an exception&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; Exception in thread &lt;span class=&#34;s2&#34;&gt;&amp;#34;main&amp;#34;&lt;/span&gt; java.lang.NullPointerException&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;  at apple.launcher.LaunchRunner.run&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;LaunchRunner.java:112&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;  at apple.launcher.LaunchRunner.callMain&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;LaunchRunner.java:50&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;  at apple.launcher.JavaApplicationLauncher.main&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;JavaApplicationLauncher.java:61&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06/11/08 11:34:15 com.apple.launchd&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;97&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;([&lt;/span&gt;0x0-0x1f01f&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;.net.azib.ipscan&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;190&lt;span class=&#34;o&#34;&gt;])&lt;/span&gt; Exited with &lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt; code: &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After some googling I came upon &lt;a href=&#34;http://renderfast.com/2008/09/26/java-for-mac-update-2-leaves-some-java-apps-broken/&#34; target=&#34;_blank&#34;&gt;this website&lt;/a&gt;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="http://www.angryziber.com" target="_blank">Angry IP scanner</a> was quitting each time I started the application, and looking at Console I saw these errors:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">06/11/08 11:34:15 <span class="o">[</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">]</span> <span class="o">[</span>JavaAppLauncher Error<span class="o">]</span> CFBundleCopyResourceURL<span class="o">()</span> failed loading MRJApp.properties file
</span></span><span class="line"><span class="cl">06/11/08 11:34:15 <span class="o">[</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">]</span> <span class="o">[</span>JavaAppLauncher Error<span class="o">]</span> CFBundleCopyResourceURL<span class="o">()</span> failed <span class="k">while</span> getting Resource/Java directory
</span></span><span class="line"><span class="cl">06/11/08 11:34:15 <span class="o">[</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">]</span> <span class="o">[</span>LaunchRunner Error<span class="o">]</span> No main class specified
</span></span><span class="line"><span class="cl">06/11/08 11:34:15 <span class="o">[</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">]</span> <span class="o">[</span>JavaAppLauncher Error<span class="o">]</span> CallStaticVoidMethod<span class="o">()</span> threw an exception
</span></span><span class="line"><span class="cl">06/11/08 11:34:15 <span class="o">[</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">]</span> Exception in thread <span class="s2">&#34;main&#34;</span> java.lang.NullPointerException
</span></span><span class="line"><span class="cl">06/11/08 11:34:15 <span class="o">[</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">]</span>  at apple.launcher.LaunchRunner.run<span class="o">(</span>LaunchRunner.java:112<span class="o">)</span>
</span></span><span class="line"><span class="cl">06/11/08 11:34:15 <span class="o">[</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">]</span>  at apple.launcher.LaunchRunner.callMain<span class="o">(</span>LaunchRunner.java:50<span class="o">)</span>
</span></span><span class="line"><span class="cl">06/11/08 11:34:15 <span class="o">[</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">]</span>  at apple.launcher.JavaApplicationLauncher.main<span class="o">(</span>JavaApplicationLauncher.java:61<span class="o">)</span>
</span></span><span class="line"><span class="cl">06/11/08 11:34:15 com.apple.launchd<span class="o">[</span>97<span class="o">]</span> <span class="o">([</span>0x0-0x1f01f<span class="o">]</span>.net.azib.ipscan<span class="o">[</span>190<span class="o">])</span> Exited with <span class="nb">exit</span> code: <span class="m">1</span>
</span></span></code></pre></div><p>After some googling I came upon <a href="http://renderfast.com/2008/09/26/java-for-mac-update-2-leaves-some-java-apps-broken/" target="_blank">this website</a>.</p>
<p>Following the (long/first) instructions did solve the problem, and I can now run the application.</p>
<p>Only skipping #9, as I could not find the &ldquo;CFBundleExecutable&rdquo;, and simply renaming the old <em>ipscan</em> to <em>ipscan.bak</em>, and renaming <em>JavaApplicationStub</em> to <em>ipscan</em>.</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>angry ip scanner</category><category>java</category><category>mac os x</category>
    </item>
    
    <item>
      <title>Bad virus scanner! Bad!</title>
      <link>https://yeri.be/bad-virus-scanner-bad/</link>
      <pubDate>Thu, 06 Nov 2008 00:52:44 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/bad-virus-scanner-bad/</guid>
      <description>&lt;p&gt;Some antivirus software vendors (McAfee, Symantec, and some others) have started recently identifying Angry IP Scanner as &amp;lsquo;potentially unwanted program&amp;rsquo; or risky &amp;lsquo;hacktool&amp;rsquo;. Now, their programs often delete Angry IP Scanner from the disk during virus scanning.&lt;/p&gt;&#xA;&lt;p&gt;The reason behind this is the will to bloat &amp;lsquo;virus databases&amp;rsquo; and show unreal high number of detected &amp;lsquo;viruses&amp;rsquo; in order to impress their customers. So they include everything they can find on the Internet, including many security tools, such as Angry IP Scanner.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Some antivirus software vendors (McAfee, Symantec, and some others) have started recently identifying Angry IP Scanner as &lsquo;potentially unwanted program&rsquo; or risky &lsquo;hacktool&rsquo;. Now, their programs often delete Angry IP Scanner from the disk during virus scanning.</p>
<p>The reason behind this is the will to bloat &lsquo;virus databases&rsquo; and show unreal high number of detected &lsquo;viruses&rsquo; in order to impress their customers. So they include everything they can find on the Internet, including many security tools, such as Angry IP Scanner.</p>
<p>Note that the cross-platform incarnation of Angry IP Scanner (version <strong>3.x</strong>) is not being detected.</p>
<p>There is a <strong>petition</strong> to antivirus software vendors, please <a title="http://www.petitiononline.com/angryip/petition.html" rel="nofollow noopener noreferrer" href="http://www.petitiononline.com/angryip/petition.html" target="_blank">sign it</a>.</p>
<p><em>From <a href="https://web.archive.org/web/20090201174753/http://www.angryziber.com:80/w/FAQ:_Virus" target="_blank" rel="noopener noreferrer">Angry Ip Scanner</a>.</em></p>
]]></content:encoded>
      <category>errors</category><category>software</category>
      <category>antivirus</category><category>virus</category>
    </item>
    
    <item>
      <title>Imap/Gmail mark as read</title>
      <link>https://yeri.be/imapgmail-mark-as-read/</link>
      <pubDate>Fri, 31 Oct 2008 02:38:51 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/imapgmail-mark-as-read/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve &amp;ldquo;updated&amp;rdquo; my &lt;a href=&#34;https://yeri.be/gmail-automatic-mark-spam-as-read/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;previous php&lt;/a&gt;-app.&lt;/p&gt;&#xA;&lt;p&gt;Since today I ended up getting this error:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Warning: imap_open&lt;span class=&#34;o&#34;&gt;()&lt;/span&gt;: Couldn&lt;span class=&#34;err&#34;&gt;&amp;#39;&lt;/span&gt;t open stream &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;imap.gmail.com:993/imap/ssl&lt;span class=&#34;o&#34;&gt;}[&lt;/span&gt;Google Mail&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;/Spam in /home/yeri/.gmail.php on line &lt;span class=&#34;m&#34;&gt;30&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Certificate failure &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; imap.gmail.com: unable to get &lt;span class=&#34;nb&#34;&gt;local&lt;/span&gt; issuer certificate: /C&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;US/ST&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;California/L&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;Mountain View/O&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;Google Inc/CN&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;imap.gmail.com - Connection failed.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Simply searching this line:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$open&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;imap_open&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{imap.gmail.com:993/imap/ssl/}&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;$path&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And editing it to:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$open&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;imap_open&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{imap.gmail.com:993/imap/ssl/novalidate-cert}&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;$path&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Solves the problem.&lt;/p&gt;&#xA;&lt;p&gt;This will ignore the Google certificate. Please do double check that imap.google.com really points to Google, and it&amp;rsquo;s not some kind of DNS issue.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve &ldquo;updated&rdquo; my <a href="https://yeri.be/gmail-automatic-mark-spam-as-read/" target="_blank" rel="noopener">previous php</a>-app.</p>
<p>Since today I ended up getting this error:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">Warning: imap_open<span class="o">()</span>: Couldn<span class="err">&#39;</span>t open stream <span class="o">{</span>imap.gmail.com:993/imap/ssl<span class="o">}[</span>Google Mail<span class="o">]</span>/Spam in /home/yeri/.gmail.php on line <span class="m">30</span>
</span></span><span class="line"><span class="cl">Certificate failure <span class="k">for</span> imap.gmail.com: unable to get <span class="nb">local</span> issuer certificate: /C<span class="o">=</span>US/ST<span class="o">=</span>California/L<span class="o">=</span>Mountain View/O<span class="o">=</span>Google Inc/CN<span class="o">=</span>imap.gmail.com - Connection failed.
</span></span></code></pre></div><p>Simply searching this line:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-php" data-lang="php"><span class="line"><span class="cl"><span class="nv">$open</span> <span class="o">=</span> <span class="nx">imap_open</span> <span class="p">(</span><span class="s2">&#34;{imap.gmail.com:993/imap/ssl/}</span><span class="si">$path</span><span class="s2">&#34;</span>
</span></span></code></pre></div><p>And editing it to:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-php" data-lang="php"><span class="line"><span class="cl"><span class="nv">$open</span> <span class="o">=</span> <span class="nx">imap_open</span> <span class="p">(</span><span class="s2">&#34;{imap.gmail.com:993/imap/ssl/novalidate-cert}</span><span class="si">$path</span><span class="s2">&#34;</span>
</span></span></code></pre></div><p>Solves the problem.</p>
<p>This will ignore the Google certificate. Please do double check that imap.google.com really points to Google, and it&rsquo;s not some kind of DNS issue.</p>
<p>I&rsquo;ve <a href="https://static.yeri.be/2008/10/gmail_spamreader_v002.phps" target="_blank" rel="noopener">updated</a> the 1st version, that ignores the certificate.</p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>misc</category><category>networking</category><category>software</category>
      <category>gmail</category><category>imap</category><category>spam</category>
    </item>
    
    <item>
      <title>And a quick switch !</title>
      <link>https://yeri.be/and-a-quick-switch/</link>
      <pubDate>Sat, 04 Oct 2008 15:22:41 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/and-a-quick-switch/</guid>
      <description>&lt;p&gt;For the lazy people, like me!&lt;/p&gt;&#xA;&lt;p&gt;If, for some reason, the buttons have two different sizes or you see some weird stuff, try to refresh the page. You should get the new &amp;amp; updated .css file.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2008/10/switch.jpg&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-594&#34; title=&#34;iRail switch stations&#34; src=&#34;https://static.yeri.be/2008/10/switch-200x300.jpg&#34; alt=&#34;&#34; width=&#34;200&#34; height=&#34;300&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>For the lazy people, like me!</p>
<p>If, for some reason, the buttons have two different sizes or you see some weird stuff, try to refresh the page. You should get the new &amp; updated .css file.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/10/switch.jpg"><img class="alignnone size-medium wp-image-594" title="iRail switch stations" src="https://static.yeri.be/2008/10/switch-200x300.jpg" alt="" width="200" height="300" /></a></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>Quick reset!</title>
      <link>https://yeri.be/quick-reset/</link>
      <pubDate>Sat, 04 Oct 2008 01:33:03 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/quick-reset/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve added some &amp;ldquo;quick reset&amp;rdquo; javascript to the from and to fields. Should be easier to use, if you want to change stations. Hope the link isn&amp;rsquo;t too small for the iPhone-finger. :) &amp;ndash; This is a request for comments !&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2008/10/photo1.jpg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-589&#34; title=&#34;iRail station reset&#34; src=&#34;https://static.yeri.be/2008/10/photo1-200x300.jpg&#34; alt=&#34;&#34; width=&#34;200&#34; height=&#34;300&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;There also were a little over 1000 visitors yesterday (Thursday) on the website. Not bad! :)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve added some &ldquo;quick reset&rdquo; javascript to the from and to fields. Should be easier to use, if you want to change stations. Hope the link isn&rsquo;t too small for the iPhone-finger. :) &ndash; This is a request for comments !</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/10/photo1.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-589" title="iRail station reset" src="https://static.yeri.be/2008/10/photo1-200x300.jpg" alt="" width="200" height="300" /></a></p>
<p style="text-align: left;">There also were a little over 1000 visitors yesterday (Thursday) on the website. Not bad! :)</p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>iphone</category><category>javascript</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>Touch icon</title>
      <link>https://yeri.be/touch-icon/</link>
      <pubDate>Wed, 01 Oct 2008 12:30:37 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/touch-icon/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://twitter.com/anner&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Anner&lt;/a&gt; has designed me a very first version of the iRail icon. He&amp;rsquo;ll keep on working on it, when he has some more time.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2008/10/irailv1.png&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-575&#34; title=&#34;iRail&#34; src=&#34;https://static.yeri.be/2008/10/irailv1.png&#34; alt=&#34;&#34; width=&#34;57&#34; height=&#34;57&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;As for the *@irail.be e-mail addresses, they seem to be down due to bad DNS/MX records. It&amp;rsquo;s being solved as we speak, but might take a few hours to update.&lt;/p&gt;&#xA;&lt;p&gt;Please use tuinslak [at] gmail [dot] com if you have anything to e-mail me.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="http://twitter.com/anner" target="_blank" rel="noopener">Anner</a> has designed me a very first version of the iRail icon. He&rsquo;ll keep on working on it, when he has some more time.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/10/irailv1.png" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-575" title="iRail" src="https://static.yeri.be/2008/10/irailv1.png" alt="" width="57" height="57" /></a></p>
<p>As for the *@irail.be e-mail addresses, they seem to be down due to bad DNS/MX records. It&rsquo;s being solved as we speak, but might take a few hours to update.</p>
<p>Please use tuinslak [at] gmail [dot] com if you have anything to e-mail me.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/10/photo.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-576" title="iRail on an iPhone" src="https://static.yeri.be/2008/10/photo-200x300.jpg" alt="" width="200" height="300" /></a></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>iphone</category><category>icon</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>iRail reviews</title>
      <link>https://yeri.be/irail-reviews/</link>
      <pubDate>Wed, 01 Oct 2008 11:49:15 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-reviews/</guid>
      <description>&lt;p&gt;So far, two iPhone sites have written something about iRail; and here are the links.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;http://web.archive.org/web/20221126095958/http://www.myiphone.be/content/view/373/38/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;MYiPhone.be&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;http://www.iphon.fr/post/2008/09/30/Les-horaires-de-train-belge-sur-iPhone-/-iPod-Touch&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;iPhon.fr&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;http://www.iphoneclub.nl/16405/treinreizen-plannen-met-irailbe/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;iPhoneclub&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://web.archive.org/web/20090730001002/http://www.belgium-iphone.com:80/2008/10/02/les-horaires-de-la-sncb-en-format-iphone/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Belgium-iPhone&lt;/a&gt; (&lt;a href=&#34;https://web.archive.org/web/20090730002648/http://www.belgium-iphone.com:80/forum/viewtopic.php?f=2&amp;amp;t=16532&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;forum&lt;/a&gt;)&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://web.archive.org/web/20081011030421/http://www.iphonic.be:80/profiles/blog/show?id=2298486%3ABlogPost%3A1084&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;iPhonic&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Special thanks to these website, they have greatly improved the number of visitors so far.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>So far, two iPhone sites have written something about iRail; and here are the links.</p>
<ul>
    <li><a href="http://web.archive.org/web/20221126095958/http://www.myiphone.be/content/view/373/38/" target="_blank" rel="noopener noreferrer">MYiPhone.be</a></li>
    <li><a href="http://www.iphon.fr/post/2008/09/30/Les-horaires-de-train-belge-sur-iPhone-/-iPod-Touch" target="_blank" rel="noopener noreferrer">iPhon.fr</a></li>
    <li><a href="http://www.iphoneclub.nl/16405/treinreizen-plannen-met-irailbe/" target="_blank" rel="noopener noreferrer">iPhoneclub</a></li>
    <li><a href="https://web.archive.org/web/20090730001002/http://www.belgium-iphone.com:80/2008/10/02/les-horaires-de-la-sncb-en-format-iphone/" target="_blank" rel="noopener noreferrer">Belgium-iPhone</a> (<a href="https://web.archive.org/web/20090730002648/http://www.belgium-iphone.com:80/forum/viewtopic.php?f=2&amp;t=16532" target="_blank" rel="noopener noreferrer">forum</a>)</li>
    <li><a href="https://web.archive.org/web/20081011030421/http://www.iphonic.be:80/profiles/blog/show?id=2298486%3ABlogPost%3A1084" target="_blank" rel="noopener noreferrer">iPhonic</a></li>
</ul>
<p>Special thanks to these website, they have greatly improved the number of visitors so far.</p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>iRail maps</title>
      <link>https://yeri.be/irail-maps/</link>
      <pubDate>Mon, 29 Sep 2008 01:32:06 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-maps/</guid>
      <description>&lt;p&gt;When &lt;a href=&#34;https://static.yeri.be/2008/09/nmbs-maps.png&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;submitting information&lt;/a&gt; on the B-rail site, you get some kind of &amp;ldquo;&lt;a href=&#34;https://static.yeri.be/2008/09/nmbs-maps2.png&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;map info&lt;/a&gt;&amp;rdquo; with the train station.&lt;/p&gt;&#xA;&lt;p&gt;Now, when submitting the same information through the &lt;a href=&#34;http://irail.be&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;iRail&lt;/a&gt; website, the same link was added to the results. Yet, these links were broken/unavailable, because the session with the NMBS/SNCB site was no longer valid.&lt;/p&gt;&#xA;&lt;p&gt;I have now replaced these links with &lt;a href=&#34;http://maps.google.be&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Google Maps&lt;/a&gt; links. They are not only displaying the station&amp;rsquo;s location, but also the directions (by car, that is. I guess Google won&amp;rsquo;t be adding &amp;ldquo;train directions&amp;rdquo; anywhere soon) to eachother.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>When <a href="https://static.yeri.be/2008/09/nmbs-maps.png" target="_blank" rel="noopener">submitting information</a> on the B-rail site, you get some kind of &ldquo;<a href="https://static.yeri.be/2008/09/nmbs-maps2.png" target="_blank" rel="noopener">map info</a>&rdquo; with the train station.</p>
<p>Now, when submitting the same information through the <a href="http://irail.be" target="_blank" rel="noopener">iRail</a> website, the same link was added to the results. Yet, these links were broken/unavailable, because the session with the NMBS/SNCB site was no longer valid.</p>
<p>I have now replaced these links with <a href="http://maps.google.be" target="_blank" rel="noopener">Google Maps</a> links. They are not only displaying the station&rsquo;s location, but also the directions (by car, that is. I guess Google won&rsquo;t be adding &ldquo;train directions&rdquo; anywhere soon) to eachother.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/09/irail-query.jpg" target="_blank" rel="noopener"><img class="size-medium wp-image-556 aligncenter" title="iRail query/results" src="https://static.yeri.be/2008/09/irail-query-300x200.jpg" alt="" width="300" height="200" /></a></p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/09/irail-maps.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-555" title="irail-maps" src="https://static.yeri.be/2008/09/irail-maps-200x300.jpg" alt="" width="200" height="300" /></a></p>
<p style="text-align: left;">This will open the native Maps app on the iPhone.</p>
<p style="text-align: left;">Special thanks to <a href="https://web.archive.org/web/20101125085638/http://onewheeledbicycle.com:80/2008/09/25/please-google-can-we-have-google-maps-api-for-iphone/" target="_blank" rel="noopener">alastair</a> for helping out on this one.</p>
]]></content:encoded>
      <category>google</category><category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>iRail updates</title>
      <link>https://yeri.be/irail-updates/</link>
      <pubDate>Fri, 26 Sep 2008 19:11:01 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail-updates/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve made some more changes to &lt;a href=&#34;http://irail.be&#34; target=&#34;_blank&#34;&gt;iRail&lt;/a&gt;;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&#x9;&lt;li&gt;small link (top, left corner) to refresh/go to the main page&lt;/li&gt;&#xA;&#x9;&lt;li&gt;fixed an issue where the dropdown menus would display HH:MM when it should be HH+1:MM - e.g. if the time was 17h55, it would display 17h00 instead of 18h00&lt;/li&gt;&#xA;&#x9;&lt;li&gt;added a return/back button to the results page&lt;/li&gt;&#xA;&#x9;&lt;li&gt;changed (shortened) the Dutch text of &#34;noresults/&#34; page, to fit the text on one line (on the iPhone)&lt;/li&gt;&#xA;&#x9;&lt;li&gt;changed the settings icon to something more... &#34;settings&#34; and less &#34;info&#34;&lt;/li&gt;&#xA;&#x9;&lt;li&gt;Removed the link from iRail.be to m.iRail.be. iRail.be will now be the main site&lt;/li&gt;&#xA;&#x9;&lt;li&gt;added &#34;arrival&#34; and &#34;departure&#34; options, to specify whether you want to arrive or depart at that time&lt;/li&gt;&#xA;&#x9;&lt;li&gt;created a bugs and feedback email address - bugs[@]irail[.]be and feedback[@]irail[.]be&lt;/li&gt;&#xA;&#x9;&lt;li&gt;the &lt;a href=&#34;http://allinthehead.com/retro/319/how-to-set-an-apple-touch-icon-for-any-site&#34; target=&#34;_blank&#34;&gt;touch-icon&lt;/a&gt; should be here soon&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve made some more changes to <a href="http://irail.be" target="_blank">iRail</a>;</p>
<ul>
	<li>small link (top, left corner) to refresh/go to the main page</li>
	<li>fixed an issue where the dropdown menus would display HH:MM when it should be HH+1:MM - e.g. if the time was 17h55, it would display 17h00 instead of 18h00</li>
	<li>added a return/back button to the results page</li>
	<li>changed (shortened) the Dutch text of "noresults/" page, to fit the text on one line (on the iPhone)</li>
	<li>changed the settings icon to something more... "settings" and less "info"</li>
	<li>Removed the link from iRail.be to m.iRail.be. iRail.be will now be the main site</li>
	<li>added "arrival" and "departure" options, to specify whether you want to arrive or depart at that time</li>
	<li>created a bugs and feedback email address - bugs[@]irail[.]be and feedback[@]irail[.]be</li>
	<li>the <a href="http://allinthehead.com/retro/319/how-to-set-an-apple-touch-icon-for-any-site" target="_blank">touch-icon</a> should be here soon</li>
</ul>
]]></content:encoded>
      <category>errors</category><category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>iRail</title>
      <link>https://yeri.be/irail/</link>
      <pubDate>Tue, 23 Sep 2008 18:50:22 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/irail/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://irail.be&#34; target=&#34;_blank&#34;&gt;iRail.be&lt;/a&gt; will be the new domain for my NMBS/SNCB iPhone Route Planner. &lt;/p&gt;&#xA;&lt;p&gt;And expect some more updates by the end of the week. :)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="http://irail.be" target="_blank">iRail.be</a> will be the new domain for my NMBS/SNCB iPhone Route Planner. </p>
<p>And expect some more updates by the end of the week. :)</p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>hafas</category><category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>Route Planner translation</title>
      <link>https://yeri.be/route-planner-translation/</link>
      <pubDate>Sat, 20 Sep 2008 23:34:44 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/route-planner-translation/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve started translating little bits of &lt;a href=&#34;https://yeri.be/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the website&lt;/a&gt;, into French, Dutch and German (though some of it is still in English). I&amp;rsquo;ll be translating more the coming days (if it&amp;rsquo;s needed). Please report all typo&amp;rsquo;s you should encounter. &lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2008/09/photo-3.jpg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-525&#34; title=&#34;iPhone NMBS/SNCB Route Planner Dutch&#34; src=&#34;https://static.yeri.be/2008/09/photo-3-200x300.jpg&#34; alt=&#34;&#34; width=&#34;200&#34; height=&#34;300&#34; /&gt;&lt;/a&gt; &lt;a href=&#34;https://static.yeri.be/2008/09/photo-11.jpg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-523&#34; title=&#34;iPhone NMBS/SNCB Route Planner French&#34; src=&#34;https://static.yeri.be/2008/09/photo-11-200x300.jpg&#34; alt=&#34;&#34; width=&#34;200&#34; height=&#34;300&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2008/09/photo-2.jpg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-524&#34; title=&#34;iPhone NMBS/SNCB Route Planner English&#34; src=&#34;https://static.yeri.be/2008/09/photo-2-200x300.jpg&#34; alt=&#34;&#34; width=&#34;200&#34; height=&#34;300&#34; /&gt;&lt;/a&gt; &lt;a href=&#34;https://static.yeri.be/2008/09/photo2.jpg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img class=&#34;alignnone size-medium wp-image-522&#34; title=&#34;iPhone NMBS/SNCB Route Planner German&#34; src=&#34;https://static.yeri.be/2008/09/photo2-200x300.jpg&#34; alt=&#34;&#34; width=&#34;200&#34; height=&#34;300&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: left;&#34;&gt;You can change the language options on the settings page.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve started translating little bits of <a href="https://yeri.be/" target="_blank" rel="noopener">the website</a>, into French, Dutch and German (though some of it is still in English). I&rsquo;ll be translating more the coming days (if it&rsquo;s needed). Please report all typo&rsquo;s you should encounter. </p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/09/photo-3.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-525" title="iPhone NMBS/SNCB Route Planner Dutch" src="https://static.yeri.be/2008/09/photo-3-200x300.jpg" alt="" width="200" height="300" /></a> <a href="https://static.yeri.be/2008/09/photo-11.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-523" title="iPhone NMBS/SNCB Route Planner French" src="https://static.yeri.be/2008/09/photo-11-200x300.jpg" alt="" width="200" height="300" /></a></p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/09/photo-2.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-524" title="iPhone NMBS/SNCB Route Planner English" src="https://static.yeri.be/2008/09/photo-2-200x300.jpg" alt="" width="200" height="300" /></a> <a href="https://static.yeri.be/2008/09/photo2.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-522" title="iPhone NMBS/SNCB Route Planner German" src="https://static.yeri.be/2008/09/photo2-200x300.jpg" alt="" width="200" height="300" /></a></p>
<p style="text-align: left;">You can change the language options on the settings page.</p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>hafas</category><category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>Route Planner station auto-complete</title>
      <link>https://yeri.be/route-planner-station-auto-complete/</link>
      <pubDate>Thu, 18 Sep 2008 17:27:40 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/route-planner-station-auto-complete/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve built-in &lt;a href=&#34;https://yeri.be/nmbssncb-for-iphone/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;a new function&lt;/a&gt;; the station name &amp;ldquo;&lt;a href=&#34;https://yeri.be/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;auto-complete&lt;/a&gt;&amp;quot;. &lt;/p&gt;&#xA;&lt;p&gt;When starting to type in a station name (starting at the 3rd char), it will suggest station names, and you can just tab them to select. &lt;/p&gt;&#xA;&lt;p&gt;I made &lt;a href=&#34;https://static.yeri.be/2008/09/stations.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;a txt file&lt;/a&gt; with all station names I found on the NMBS website. I hope it&amp;rsquo;s up to date, and if there are any stations missing, please report. :)&lt;/p&gt;&#xA;&lt;p&gt;The station names depend on their location within Belgium. Flemish stations are Dutch only, Walloon stations French only. Everything inbetween (e.g. Brussels) is in both languages.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve built-in <a href="https://yeri.be/nmbssncb-for-iphone/" target="_blank" rel="noopener">a new function</a>; the station name &ldquo;<a href="https://yeri.be/" target="_blank" rel="noopener">auto-complete</a>&quot;. </p>
<p>When starting to type in a station name (starting at the 3rd char), it will suggest station names, and you can just tab them to select. </p>
<p>I made <a href="https://static.yeri.be/2008/09/stations.txt" target="_blank" rel="noopener">a txt file</a> with all station names I found on the NMBS website. I hope it&rsquo;s up to date, and if there are any stations missing, please report. :)</p>
<p>The station names depend on their location within Belgium. Flemish stations are Dutch only, Walloon stations French only. Everything inbetween (e.g. Brussels) is in both languages.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/09/photo-1.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-514" title="photo-1" src="https://static.yeri.be/2008/09/photo-1-200x300.jpg" alt="" width="200" height="300" /></a> <a href="https://static.yeri.be/2008/09/photo1.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-513" title="photo1" src="https://static.yeri.be/2008/09/photo1-200x300.jpg" alt="" width="200" height="300" /></a></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>Route Planner bug fix</title>
      <link>https://yeri.be/route-planner-bug-fix/</link>
      <pubDate>Wed, 17 Sep 2008 11:55:11 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/route-planner-bug-fix/</guid>
      <description>&lt;p&gt;I just fixed a bug where he wouldn&amp;rsquo;t query the NMBS website if you hadn&amp;rsquo;t picked your language yet. Default language has been set to English.&lt;/p&gt;&#xA;&lt;p&gt;Thanks to Helene.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I just fixed a bug where he wouldn&rsquo;t query the NMBS website if you hadn&rsquo;t picked your language yet. Default language has been set to English.</p>
<p>Thanks to Helene.</p>
]]></content:encoded>
      <category>errors</category><category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>hafas</category><category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>Route Planner updates</title>
      <link>https://yeri.be/route-planner-updates/</link>
      <pubDate>Wed, 17 Sep 2008 01:53:48 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/route-planner-updates/</guid>
      <description>&lt;p&gt;These are the things &lt;a href=&#34;https://yeri.be/nmbssncb-for-iphone/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;I&amp;rsquo;ve worked on&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;changed color to dark blue&lt;/li&gt;&#xA;    &lt;li&gt;added a seperate settings page (you can only change the results page language at the moment (the content downloaded from the NMBS website))&lt;/li&gt;&#xA;    &lt;li&gt;language settings is saved in a cookie&lt;/li&gt;&#xA;    &lt;li&gt;station info is saved in a cookie too, instead of a session&lt;/li&gt;&#xA;    &lt;li&gt;changed date and time to use a dropdown menu and the menu should be updated to &#34;now&#34;&lt;/li&gt;&#xA;    &lt;li&gt;and many more small changes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Website is accessible through this link: &lt;a href=&#34;https://yeri.be/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;a href=&#34;https://yeri.be&#34;&gt;https://yeri.be&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>These are the things <a href="https://yeri.be/nmbssncb-for-iphone/" target="_blank" rel="noopener">I&rsquo;ve worked on</a>:</p>
<ul>
    <li>changed color to dark blue</li>
    <li>added a seperate settings page (you can only change the results page language at the moment (the content downloaded from the NMBS website))</li>
    <li>language settings is saved in a cookie</li>
    <li>station info is saved in a cookie too, instead of a session</li>
    <li>changed date and time to use a dropdown menu and the menu should be updated to "now"</li>
    <li>and many more small changes</li>
</ul>
<p>Website is accessible through this link: <a href="https://yeri.be/" target="_blank" rel="noopener"><a href="https://yeri.be">https://yeri.be</a></a></p>
<p>Thanks to <a href="http://twitter.com/anner" target="_blank" rel="noopener">Anner</a> for the great feedback.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/09/routeplanner.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-495" title="iPhone NMBS/SNCB route planner" src="https://static.yeri.be/2008/09/routeplanner-300x200.jpg" alt="" width="300" height="200" /></a></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>hafas</category><category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>NMBS/SNCB for iPhone</title>
      <link>https://yeri.be/nmbssncb-for-iphone/</link>
      <pubDate>Tue, 16 Sep 2008 12:28:45 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/nmbssncb-for-iphone/</guid>
      <description>&lt;p&gt;As there is &lt;a href=&#34;https://yeri.be/nmbs-api/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;no iPhone compatible website or application&lt;/a&gt;, I created my own NMBS &amp;ldquo;route planner&amp;rdquo; for the iPhone. This is no app though, this is just an iPhone website.&lt;/p&gt;&#xA;&lt;p&gt;Basicly, this is what you can do:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;fill in departure station&lt;/li&gt;&#xA;    &lt;li&gt;fill in arrival station&lt;/li&gt;&#xA;    &lt;li&gt;fill in time and date (of departure)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;At this stage of the project, only the basic train details are shown (departure time, arrival time) and up to 3 or 4 different possibilities (depending what the NMBS website replies).&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>As there is <a href="https://yeri.be/nmbs-api/" target="_blank" rel="noopener">no iPhone compatible website or application</a>, I created my own NMBS &ldquo;route planner&rdquo; for the iPhone. This is no app though, this is just an iPhone website.</p>
<p>Basicly, this is what you can do:</p>
<ul>
    <li>fill in departure station</li>
    <li>fill in arrival station</li>
    <li>fill in time and date (of departure)</li>
</ul>
<p>At this stage of the project, only the basic train details are shown (departure time, arrival time) and up to 3 or 4 different possibilities (depending what the NMBS website replies).</p>
<p>There is no option (and I&rsquo;m unsure whether there will be in the future) to see details about a selected trip (like stops and station changes).</p>
<p>The site is made in English, but you can choose in what language you want the results, the only problem I&rsquo;ve seen so far is that for DE and EN all train station names are in French (Antwerp becomes Anvers), but this &ldquo;bug&rdquo; lies out of my hands, as all train information is received from the NMBS websites, including station names.</p>
<p>Basicly this is what it does: it opens a HTTP socket to the NMBS site, filling in your details (like date and stations), and gets the reply back (if the NMBS site replies in time, I&rsquo;ve seen a few time outs).</p>
<p>All unrequired information is cut off, and you remain with just the trip details. Which should just fit your iPhone in landscape mode.</p>
<p>When filling in your station details, please use existing stations names (language shouldn&rsquo;t matter), including Central, North, South, etc if needed. Requesting the station &ldquo;Brussels&rdquo; won&rsquo;t work and will just display an empty page for now.</p>
<p>Things I&rsquo;ll be working on:</p>
<ul>
    <li>layout and design of the trip detail page</li>
    <li>I've seen that my Sessions do some weird stuff from time to time (refresh the main page 2x and all sessions are destroyed); but that's something I'll have to look in</li>
    <li>Well, I guess most users want more information, so I'll have to try to get trip details</li>
    <li>and better data handling. Still too much unrequired information.</li>
    <li>Error handling, if e.g. the station doesn't exist or the date/time is incorrect</li>
</ul>
<p>Please leave your feedback/bug reports in a comment or per e-mail.</p>
<p>Also, if visiting the website with <a href="https://static.yeri.be/2008/09/firefox.png" target="_blank" rel="noopener">Firefox</a>, <a href="https://static.yeri.be/2008/09/ie2.png" target="_blank" rel="noopener">I</a><a href="https://static.yeri.be/2008/09/ie1.png" target="_blank" rel="noopener">E</a> or even <a href="https://static.yeri.be/2008/09/chrome.png" target="_blank" rel="noopener">Chrome</a>&hellip; Yes, it&rsquo;s not compatible to any of them. My website looks dodgy in those browsers; I&rsquo;ve only focussed on the iPhone browser.</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/09/nmbsmobile1.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-478" title="NMBS/SNCB for the iPhone" src="https://static.yeri.be/2008/09/nmbsmobile1-200x300.jpg" alt="" width="200" height="300" /></a><a href="https://static.yeri.be/2008/09/nmbsmobile2.jpg" target="_blank" rel="noopener"> </a></p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/09/nmbsmobile2.jpg" target="_blank" rel="noopener"><img class="alignnone size-medium wp-image-480" title="NMBS/SNCB for the iPhone" src="https://static.yeri.be/2008/09/nmbsmobile2-300x200.jpg" alt="" width="300" height="200" /></a></p>
]]></content:encoded>
      <category>misc</category><category>software</category><category>irail</category><category>www</category>
      <category>hafas</category><category>iphone</category><category>nmbs</category><category>sncb</category>
    </item>
    
    <item>
      <title>wget for Mac OS X</title>
      <link>https://yeri.be/wget-for-mac-os-x/</link>
      <pubDate>Fri, 05 Sep 2008 02:28:29 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/wget-for-mac-os-x/</guid>
      <description>&lt;p&gt;The missing tool in Mac OS X is most likely wget. &lt;a href=&#34;http://www.statusq.org/archives/2008/07/30/1954/&#34; target=&#34;_blank&#34;&gt;Here&amp;rsquo;s a (universal) port&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Read the readme for installation howto. :)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>The missing tool in Mac OS X is most likely wget. <a href="http://www.statusq.org/archives/2008/07/30/1954/" target="_blank">Here&rsquo;s a (universal) port</a>.</p>
<p>Read the readme for installation howto. :)</p>
]]></content:encoded>
      <category>apple</category><category>software</category><category>www</category>
      <category>apple</category><category>mac os x</category><category>wget</category>
    </item>
    
    <item>
      <title>Wordpress iPhone plugin</title>
      <link>https://yeri.be/wordpress-iphone-plugin/</link>
      <pubDate>Fri, 29 Aug 2008 01:25:10 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/wordpress-iphone-plugin/</guid>
      <description>&lt;p&gt;For those using the &lt;a href=&#34;http://wordpress.org/extend/plugins/wp-pda/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PDA &amp;amp; iPhone wordpress plugin&lt;/a&gt;, which turns your blog into something more readable on a mobile device, don&amp;rsquo;t forget to add the Google analytics script to your footer.php (in both iphone-theme and pda-theme directory). As other plugins seem to be disabled.&lt;/p&gt;&#xA;&lt;p&gt;This is actually also meant for me, as a reminder, for when I update the plugin. ;)&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2008/08/photo.jpg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img class=&#34;size-full wp-image-401 aligncenter&#34; title=&#34;iPhone&#39;s Safari with Tuinslak&#39;s blog&#34; src=&#34;https://static.yeri.be/2008/08/photo.jpg&#34; alt=&#34;&#34; width=&#34;320&#34; height=&#34;480&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>For those using the <a href="http://wordpress.org/extend/plugins/wp-pda/" target="_blank" rel="noopener noreferrer">PDA &amp; iPhone wordpress plugin</a>, which turns your blog into something more readable on a mobile device, don&rsquo;t forget to add the Google analytics script to your footer.php (in both iphone-theme and pda-theme directory). As other plugins seem to be disabled.</p>
<p>This is actually also meant for me, as a reminder, for when I update the plugin. ;)</p>
<p style="text-align: center;"><a href="https://static.yeri.be/2008/08/photo.jpg" target="_blank" rel="noopener noreferrer"><img class="size-full wp-image-401 aligncenter" title="iPhone's Safari with Tuinslak's blog" src="https://static.yeri.be/2008/08/photo.jpg" alt="" width="320" height="480" /></a></p>
<p style="text-align: center;"></p>
<p style="text-align: left;"><span style="color: #888888;"><em>(Howto <a href="https://web.archive.org/web/20090608030254/http://www.iphonealley.com:80/tips-and-tricks/take-screenshots-iphone-20-software" target="_blank" rel="noopener noreferrer">make a screenshot</a> on the iPhone)</em></span></p>
]]></content:encoded>
      <category>software</category><category>www</category>
      <category>iphone</category><category>pda</category><category>plugin</category><category>wordpress</category>
    </item>
    
    <item>
      <title>Gmail automatic &#34;mark (spam) as read&#34;</title>
      <link>https://yeri.be/gmail-automatic-mark-spam-as-read/</link>
      <pubDate>Wed, 27 Aug 2008 01:07:28 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/gmail-automatic-mark-spam-as-read/</guid>
      <description>&lt;p&gt;I hate having unread mail. I hate having spam. And most of all, I hate spam that asks for attention.&lt;/p&gt;&#xA;&lt;p&gt;When receiving spam in Gmail, you get the annoying bold &lt;strong&gt;&lt;a href=&#34;https://static.yeri.be/2008/08/spam.png&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Spam (12353434)&lt;/a&gt; &lt;/strong&gt;with &amp;lsquo;12353434&amp;rsquo; being the number of unread spam messages.&lt;/p&gt;&#xA;&lt;p&gt;With the introduction of Gmail Labs I&amp;rsquo;d hope to see an &amp;ldquo;automaticly mark spam message as seen&amp;rdquo; feature, which, well, I haven&amp;rsquo;t found yet.&lt;/p&gt;&#xA;&lt;p&gt;Being tired of all these increasing spam numbers, and my daily efforts to &amp;ldquo;select all unread + mark as read&amp;rdquo;, I ended up writing a small PHP file which connects to the Gmail (using IMAP, so I asume you&amp;rsquo;ll need IMAP enabled in your settings..) and marks all spam messages as read. Running this script locally with a curl or cron every X time will solve most of your problems, I hope.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I hate having unread mail. I hate having spam. And most of all, I hate spam that asks for attention.</p>
<p>When receiving spam in Gmail, you get the annoying bold <strong><a href="https://static.yeri.be/2008/08/spam.png" target="_blank" rel="noopener">Spam (12353434)</a> </strong>with &lsquo;12353434&rsquo; being the number of unread spam messages.</p>
<p>With the introduction of Gmail Labs I&rsquo;d hope to see an &ldquo;automaticly mark spam message as seen&rdquo; feature, which, well, I haven&rsquo;t found yet.</p>
<p>Being tired of all these increasing spam numbers, and my daily efforts to &ldquo;select all unread + mark as read&rdquo;, I ended up writing a small PHP file which connects to the Gmail (using IMAP, so I asume you&rsquo;ll need IMAP enabled in your settings..) and marks all spam messages as read. Running this script locally with a curl or cron every X time will solve most of your problems, I hope.</p>
<p>Download the file <a href="https://static.yeri.be/2008/08/gmail_spamreader.phps" target="_blank" rel="noopener">here</a> (phps) or <a href="https://static.yeri.be/2008/08/gmail_spamreader.txt" target="_blank" rel="noopener">here</a> (txt).</p>
<p>Or just copy paste it!</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-PHP" data-lang="PHP"><span class="line"><span class="cl"><span class="o">&lt;</span> <span class="o">?</span><span class="nx">php</span>
</span></span><span class="line"><span class="cl"><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm">Gmail &#34;spam mark-as-read&#34;
</span></span></span><span class="line"><span class="cl"><span class="cm">
</span></span></span><span class="line"><span class="cl"><span class="cm">by Tuinslak
</span></span></span><span class="line"><span class="cl"><span class="cm">www.tuinslak.be
</span></span></span><span class="line"><span class="cl"><span class="cm">
</span></span></span><span class="line"><span class="cl"><span class="cm">v0.01 :: 26/08/2008 . init php codez
</span></span></span><span class="line"><span class="cl"><span class="cm">*/</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Config starts here
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl"><span class="c1">// Gmail user &amp; pass
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nv">$user</span> <span class="o">=</span> <span class="s2">&#34;YOU&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nv">$pass</span> <span class="o">=</span> <span class="s2">&#34;hiddensecretz&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Debugging - Outputs a list of mailboxes and status on the imap server (1/0)
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nv">$listmailbox</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Advanced config :o
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl"><span class="c1">// &#34;Path&#34; of the (spam) mailbox and/or its name.
</span></span></span><span class="line"><span class="cl"><span class="c1">// default should be ok with Gmail.
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nv">$path</span> <span class="o">=</span> <span class="s2">&#34;[Google Mail]/Spam&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// End of config
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl"><span class="nv">$open</span> <span class="o">=</span> <span class="nx">imap_open</span> <span class="p">(</span><span class="s2">&#34;{imap.gmail.com:993/imap/ssl}</span><span class="si">$path</span><span class="s2">&#34;</span><span class="p">,</span> <span class="nv">$user</span><span class="p">,</span> <span class="nv">$pass</span><span class="p">,</span> <span class="s2">&#34;&#34;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="k">or</span> <span class="k">die</span><span class="p">(</span><span class="nx">imap_last_error</span><span class="p">()</span> <span class="o">.</span> <span class="s2">&#34;
</span></span></span><span class="line"><span class="cl"><span class="s2">
</span></span></span><span class="line"><span class="cl"><span class="s2">Connection failed.&#34;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// debug
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="k">if</span><span class="p">(</span><span class="nv">$listmailbox</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="k">echo</span> <span class="s2">&#34;&lt;strong&gt;Mailboxes:&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="nv">$folders</span> <span class="o">=</span> <span class="nx">imap_listmailbox</span><span class="p">(</span><span class="nv">$open</span><span class="p">,</span>  <span class="s2">&#34;{  Gmail  }&#34;</span><span class="p">,</span> <span class="s2">&#34;*&#34;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="p">(</span><span class="nv">$folders</span> <span class="o">==</span> <span class="k">false</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">                <span class="k">echo</span> <span class="s2">&#34;Call failed</span><span class="se">\n</span><span class="s2">&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">                <span class="k">foreach</span> <span class="p">(</span><span class="nv">$folders</span> <span class="k">as</span> <span class="nv">$val</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">                        <span class="k">echo</span> <span class="nv">$val</span> <span class="o">.</span> <span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">                <span class="p">}</span>
</span></span><span class="line"><span class="cl">        <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">        <span class="k">echo</span> <span class="s2">&#34;&lt;/strong&gt;&lt;strong&gt;Status&lt;/strong&gt;:&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="nv">$status</span> <span class="o">=</span> <span class="nx">imap_status</span><span class="p">(</span><span class="nv">$open</span><span class="p">,</span> <span class="s2">&#34;{imap.gmail.com}</span><span class="si">$path</span><span class="s2">&#34;</span><span class="p">,</span> <span class="nx">SA_ALL</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="p">(</span><span class="nv">$status</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">                <span class="k">echo</span> <span class="s2">&#34;Messages:   &#34;</span> <span class="o">.</span> <span class="nv">$status</span><span class="o">-&gt;</span><span class="na">messages</span>    <span class="o">.</span> <span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">                <span class="k">echo</span> <span class="s2">&#34;Recent:     &#34;</span> <span class="o">.</span> <span class="nv">$status</span><span class="o">-&gt;</span><span class="na">recent</span>      <span class="o">.</span> <span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">                <span class="k">echo</span> <span class="s2">&#34;Unseen:     &#34;</span> <span class="o">.</span> <span class="nv">$status</span><span class="o">-&gt;</span><span class="na">unseen</span>      <span class="o">.</span> <span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">                <span class="k">echo</span> <span class="s2">&#34;UIDnext:    &#34;</span> <span class="o">.</span> <span class="nv">$status</span><span class="o">-&gt;</span><span class="na">uidnext</span>     <span class="o">.</span> <span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">                <span class="k">echo</span> <span class="s2">&#34;UIDvalidity:&#34;</span> <span class="o">.</span> <span class="nv">$status</span><span class="o">-&gt;</span><span class="na">uidvalidity</span> <span class="o">.</span> <span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">                <span class="k">echo</span> <span class="s2">&#34;imap_status failed: &#34;</span> <span class="o">.</span> <span class="nx">imap_last_error</span><span class="p">()</span> <span class="o">.</span> <span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Mark as read
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nv">$search</span> <span class="o">=</span> <span class="nx">imap_search</span><span class="p">(</span><span class="nv">$open</span><span class="p">,</span> <span class="s1">&#39;UNSEEN&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="c1">// print out the array containing $search info
</span></span></span><span class="line"><span class="cl"><span class="c1">//print_r($search);
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="p">(</span><span class="nv">$i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nv">$i</span> <span class="o">&lt;</span> <span class="nx">sizeof</span><span class="p">(</span><span class="nv">$search</span><span class="p">);</span> <span class="nv">$i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="nv">$read</span> <span class="o">=</span> <span class="nx">imap_setflag_full</span><span class="p">(</span><span class="nv">$open</span><span class="p">,</span> <span class="nv">$search</span><span class="p">[</span><span class="nv">$i</span><span class="p">],</span> <span class="s1">&#39;\\Seen&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// and close it down !
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nx">imap_close</span><span class="p">(</span><span class="nv">$open</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// EOF
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="cp">?&gt;</span><span class="err">
</span></span></span></code></pre></div><p>If you plan to execute it from shell, don&rsquo;t forget to add a <a href="http://en.wikipedia.org/wiki/Shebang_(Unix)" target="_blank" rel="noopener">shebang</a> &ldquo;#!/usr/bin/php&rdquo; on line 1 and chmod +x gmail_spamreader.php.</p>
<p><span style="color: #888888;"><em>Edit:</em> Please add a comment if you&rsquo;re using it, just for statistics. :)</span></p>
]]></content:encoded>
      <category>errors</category><category>linux</category><category>misc</category><category>networking</category><category>software</category>
      <category>gmail</category><category>imap</category><category>spam</category>
    </item>
    
    <item>
      <title>Wordpress stats</title>
      <link>https://yeri.be/wordpress-stats/</link>
      <pubDate>Sat, 23 Aug 2008 17:25:42 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/wordpress-stats/</guid>
      <description>&lt;p&gt;Took me a while to figure out what went wrong.&lt;/p&gt;&#xA;&lt;p&gt;With the new Firefox (v3) and the wordpress update, I was no longer able to see my &lt;a href=&#34;http://wordpress.org/extend/plugins/stats/&#34; target=&#34;_blank&#34;&gt;Wordpress stats&lt;/a&gt; on my dashboard.&lt;/p&gt;&#xA;&lt;p&gt;Every (Wordpress) login attempt, to see the stats, resulted in&amp;hellip; Well nothing. I just kept getting back to the login page. No error.&lt;/p&gt;&#xA;&lt;p&gt;Actually, I have &amp;ldquo;third-party cookies disabled&amp;rdquo; on all my browsers; I don&amp;rsquo;t like to have cookies from sites I do not visit. And this was the cause of the problem.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Took me a while to figure out what went wrong.</p>
<p>With the new Firefox (v3) and the wordpress update, I was no longer able to see my <a href="http://wordpress.org/extend/plugins/stats/" target="_blank">Wordpress stats</a> on my dashboard.</p>
<p>Every (Wordpress) login attempt, to see the stats, resulted in&hellip; Well nothing. I just kept getting back to the login page. No error.</p>
<p>Actually, I have &ldquo;third-party cookies disabled&rdquo; on all my browsers; I don&rsquo;t like to have cookies from sites I do not visit. And this was the cause of the problem.</p>
<p>Simply add an exception for &ldquo;*.wordpress.com&rdquo; and you&rsquo;ll be able to view all your stats again. :)</p>
]]></content:encoded>
      <category>errors</category><category>software</category><category>www</category>
      <category>stats</category><category>wordpress</category>
    </item>
    
    <item>
      <title>Create Bootcamp partition</title>
      <link>https://yeri.be/create-bootcamp-partition/</link>
      <pubDate>Sat, 23 Aug 2008 01:23:18 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/create-bootcamp-partition/</guid>
      <description>&lt;p&gt;Today I had to reinstall Bootcamp, and thus create a new Windows partition.&lt;/p&gt;&#xA;&lt;p&gt;Trying the Bootcamp setup wizard, I got the &lt;a href=&#34;https://yeri.be/bootcamp/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;same error as I had before&lt;/a&gt; - “Your disk cannot be partitioned because some files cannot be moved”.&lt;/p&gt;&#xA;&lt;p&gt;I tried to Zero-Out-Data, overwriting all deleted data on the disk with 0&amp;rsquo;s. Yet this did not seem to solve the problem.&lt;/p&gt;&#xA;&lt;p&gt;After deleting some big files, like my heroes &amp;amp; 24 episodes, I tried again. Still nothing.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Today I had to reinstall Bootcamp, and thus create a new Windows partition.</p>
<p>Trying the Bootcamp setup wizard, I got the <a href="https://yeri.be/bootcamp/" target="_blank" rel="noopener">same error as I had before</a> - “Your disk cannot be partitioned because some files cannot be moved”.</p>
<p>I tried to Zero-Out-Data, overwriting all deleted data on the disk with 0&rsquo;s. Yet this did not seem to solve the problem.</p>
<p>After deleting some big files, like my heroes &amp; 24 episodes, I tried again. Still nothing.</p>
<p>I then remembered I had WoW Wrath of the Lich King installed (7ish Gb). Deleting the WoW folder and trying again, did solve the problem. I didn&rsquo;t even have to zero-out-data again.</p>
<p>So, basicly, deleting big files (folders?!) seems to solve the problem too.</p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>software</category>
      <category>bootcamp</category><category>wow</category><category>wotlk</category><category>wrath of the lich king</category>
    </item>
    
    <item>
      <title>WoW:WotLK 3.0.1 installers</title>
      <link>https://yeri.be/wowwotlk-301-installers/</link>
      <pubDate>Wed, 23 Jul 2008 02:51:10 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/wowwotlk-301-installers/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s a list of all World of Warcraft: Wrath of the Lich King installers:&lt;/p&gt;&#xA;&lt;p&gt;English: &lt;a href=&#34;https://static.yeri.be/2008/07/wotlk-beta-301-engb-downloader.exe&#34;&gt;Win&lt;/a&gt; - &lt;a href=&#34;https://static.yeri.be/2008/07/wotlk-beta-301-engb-downloader.dmg&#34;&gt;Mac&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;French: &lt;a href=&#34;https://static.yeri.be/2008/07/wotlk-beta-301-frfr-downloader.exe&#34;&gt;Win&lt;/a&gt; - &lt;a href=&#34;https://static.yeri.be/2008/07/wotlk-beta-301-frfr-downloader.dmg&#34;&gt;Mac&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;German: &lt;a href=&#34;https://static.yeri.be/2008/07/wotlk-beta-301-dede-downloader.exe&#34;&gt;Win&lt;/a&gt; - &lt;a href=&#34;https://static.yeri.be/2008/07/wotlk-beta-301-dede-downloader.dmg&#34;&gt;Mac&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Spanish: &lt;a href=&#34;https://static.yeri.be/2008/07/wotlk-beta-301-eses-downloader.exe&#34;&gt;Win&lt;/a&gt; - &lt;a href=&#34;https://static.yeri.be/2008/07/wotlk-beta-301-eses-downloader.dmg&#34;&gt;Mac&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The download is 2.04Gb (on a Mac), I haven&amp;rsquo;t started the download on a Windows yet.&lt;/p&gt;&#xA;&lt;p&gt;And yes, you will still need a beta invitation before being able to login!&lt;/p&gt;&#xA;&lt;p&gt;You&amp;rsquo;ll find me under &lt;a href=&#34;http://eu.wowarmory.com/character-sheet.xml?r=Executus&amp;amp;n=Tuinslak&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tuinslak&lt;/a&gt; or &lt;a href=&#34;http://eu.wowarmory.com/character-sheet.xml?r=Executus&amp;amp;n=Isazi&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Isazi&lt;/a&gt; on the EU beta realm.&lt;/p&gt;&#xA;&lt;p&gt;As for the character copy, it was done within 10 minutes. Just 5 hours left on the download. :(&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Here&rsquo;s a list of all World of Warcraft: Wrath of the Lich King installers:</p>
<p>English: <a href="https://static.yeri.be/2008/07/wotlk-beta-301-engb-downloader.exe">Win</a> - <a href="https://static.yeri.be/2008/07/wotlk-beta-301-engb-downloader.dmg">Mac</a></p>
<p>French: <a href="https://static.yeri.be/2008/07/wotlk-beta-301-frfr-downloader.exe">Win</a> - <a href="https://static.yeri.be/2008/07/wotlk-beta-301-frfr-downloader.dmg">Mac</a></p>
<p>German: <a href="https://static.yeri.be/2008/07/wotlk-beta-301-dede-downloader.exe">Win</a> - <a href="https://static.yeri.be/2008/07/wotlk-beta-301-dede-downloader.dmg">Mac</a></p>
<p>Spanish: <a href="https://static.yeri.be/2008/07/wotlk-beta-301-eses-downloader.exe">Win</a> - <a href="https://static.yeri.be/2008/07/wotlk-beta-301-eses-downloader.dmg">Mac</a></p>
<p>The download is 2.04Gb (on a Mac), I haven&rsquo;t started the download on a Windows yet.</p>
<p>And yes, you will still need a beta invitation before being able to login!</p>
<p>You&rsquo;ll find me under <a href="http://eu.wowarmory.com/character-sheet.xml?r=Executus&amp;n=Tuinslak" target="_blank" rel="noopener">Tuinslak</a> or <a href="http://eu.wowarmory.com/character-sheet.xml?r=Executus&amp;n=Isazi" target="_blank" rel="noopener">Isazi</a> on the EU beta realm.</p>
<p>As for the character copy, it was done within 10 minutes. Just 5 hours left on the download. :(</p>
<p><em>Edit:</em> same size on a Windows - 2.04Gb. The download contains the setup.exe and the installer.app, so you should be able to copy it to any OS.</p>
]]></content:encoded>
      <category>apple</category><category>games</category><category>software</category><category>windows</category>
      <category>apple</category><category>windows</category><category>wow</category><category>beta</category><category>world of warcraft</category><category>wotlk</category><category>wrath of the lich king</category>
    </item>
    
    <item>
      <title>del.icio.us</title>
      <link>https://yeri.be/delicious/</link>
      <pubDate>Thu, 03 Jul 2008 00:38:40 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/delicious/</guid>
      <description>&lt;p&gt;I never really used bookmarks, but a few days ago, I decided it was time for me, to organise myself a bit more, and get some bookmark application. I decided to give &lt;a title=&#34;Tuinslak @ del.icio.us&#34; href=&#34;http://del.icio.us/Tuinslak&#34; target=&#34;_blank&#34;&gt;del.icio.us&lt;/a&gt; a try.&lt;/p&gt;&#xA;&lt;script type=&#34;text/javascript&#34; src=&#34;http://del.icio.us/feeds/js/Tuinslak?tags;title=my%20del.icio.us;bullet=%E2%80%A2;icon=s;name&#34;&gt;&lt;/script&gt;&#xA;&lt;p&gt;&lt;noscript&gt;&lt;a href=&#34;http://del.icio.us/Tuinslak&#34;&gt;my del.icio.us&lt;/a&gt;&lt;/noscript&gt;&lt;/p&gt;&#xA;&lt;p&gt;While surfing delicious, I came upon Wordle, a site that generates a tag/word cloud. Here is what my delicious tags look like at the moment.&lt;/p&gt;&#xA;&lt;p style=&#34;text-align: center;&#34;&gt;&lt;a title=&#34;Wordle: Tuinslak&#34; href=&#34;http://wordle.net/gallery/wrdl/48378/Tuinslak&#34; target=&#34;_blank&#34;&gt;&lt;img class=&#34;aligncenter&#34; style=&#34;border: 1px solid #dddddd; padding: 4px;&#34; src=&#34;http://wordle.net/thumb/wrdl/48378/Tuinslak&#34; alt=&#34;&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I never really used bookmarks, but a few days ago, I decided it was time for me, to organise myself a bit more, and get some bookmark application. I decided to give <a title="Tuinslak @ del.icio.us" href="http://del.icio.us/Tuinslak" target="_blank">del.icio.us</a> a try.</p>
<script type="text/javascript" src="http://del.icio.us/feeds/js/Tuinslak?tags;title=my%20del.icio.us;bullet=%E2%80%A2;icon=s;name"></script>
<p><noscript><a href="http://del.icio.us/Tuinslak">my del.icio.us</a></noscript></p>
<p>While surfing delicious, I came upon Wordle, a site that generates a tag/word cloud. Here is what my delicious tags look like at the moment.</p>
<p style="text-align: center;"><a title="Wordle: Tuinslak" href="http://wordle.net/gallery/wrdl/48378/Tuinslak" target="_blank"><img class="aligncenter" style="border: 1px solid #dddddd; padding: 4px;" src="http://wordle.net/thumb/wrdl/48378/Tuinslak" alt="" /></a></p>
<p style="text-align: left;">Too bad I doesn't auto generate every X time. But... Seems cool to play with.</p>
]]></content:encoded>
      <category>misc</category><category>software</category>
      <category>delicious</category>
    </item>
    
    <item>
      <title>Vista pointing out the obvious</title>
      <link>https://yeri.be/vista-pointing-out-the-obvious/</link>
      <pubDate>Mon, 19 May 2008 18:40:52 +0200</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/vista-pointing-out-the-obvious/</guid>
      <description>&lt;p style=&#34;text-align:center;&#34;&gt;&lt;a href=&#34;https://static.yeri.be/2008/05/vistasp1.png&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img class=&#34;size-thumbnail wp-image-85&#34; style=&#34;vertical-align: middle;&#34; title=&#34;Vista&#34; src=&#34;https://static.yeri.be/2008/05/vistasp1-150x150.png&#34; alt=&#34;Vista pointing something out&#34; width=&#34;150&#34; height=&#34;150&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p style="text-align:center;"><a href="https://static.yeri.be/2008/05/vistasp1.png" target="_blank" rel="noopener"><img class="size-thumbnail wp-image-85" style="vertical-align: middle;" title="Vista" src="https://static.yeri.be/2008/05/vistasp1-150x150.png" alt="Vista pointing something out" width="150" height="150" /></a></p>
]]></content:encoded>
      <category>software</category><category>windows</category>
      <category>windows</category><category>vista</category>
    </item>
    
    <item>
      <title>Ventrilo 2.1, Vista, and Surround 5.1</title>
      <link>https://yeri.be/ventrilo-21-vista-and-surround-51/</link>
      <pubDate>Sat, 01 Mar 2008 13:45:29 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/ventrilo-21-vista-and-surround-51/</guid>
      <description>&lt;p&gt;Helene&amp;rsquo;s new Vista pc seemed to be working fine, except for Ventrilo 2.1 (the free and, well, illegal version).&lt;/p&gt;&#xA;&lt;p&gt;It managed to connect, but no sound was coming out of it. Not when someone was talking, and not when there was a status message (like a join/connect/&amp;hellip;).&lt;/p&gt;&#xA;&lt;p&gt;I tried every out- and input device in &amp;ldquo;Setup&amp;rdquo;. I deleted the config, reinstalled, &amp;hellip;  Nothing seemed to work. I even checked if Vista wasn&amp;rsquo;t muting it, and it wasn&amp;rsquo;t. ;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Helene&rsquo;s new Vista pc seemed to be working fine, except for Ventrilo 2.1 (the free and, well, illegal version).</p>
<p>It managed to connect, but no sound was coming out of it. Not when someone was talking, and not when there was a status message (like a join/connect/&hellip;).</p>
<p>I tried every out- and input device in &ldquo;Setup&rdquo;. I deleted the config, reinstalled, &hellip;  Nothing seemed to work. I even checked if Vista wasn&rsquo;t muting it, and it wasn&rsquo;t. ;)</p>
<p>Yet, when plugging in her (USB) headset, it worked fine&hellip; So it had to be a Vista/sound config problem.</p>
<p>My Vista, at home, and the one om my Macbook could run Vent just fine&hellip;?!</p>
<p>That&rsquo;s when I went to her sound settings (config panel -&gt; sound). Selected the speakers, and clicked on Configure.</p>
<p>They were set to 5.1 Surround, which is what she&rsquo;s using.</p>
<p>I tried to use some other audio option, like stereo (or quadrophonic), and restarted Vent&hellip; And guess what! Yep, it worked.</p>
<p style="text-align: center"><a href="https://static.yeri.be/2008/03/vista_soundsettings.png" target="_blank" title="Vista sound settings" rel="noopener"><img src="https://static.yeri.be/2008/03/vista_soundsettings.thumbnail.png" alt="Vista sound settings" /></a></p>
<p>So I assume  Ventrilo 2.1 does not have surround/5.1 (and greater) support.</p>
<p>Some ugly workaround, to change that each time, but at least it works now.</p>
]]></content:encoded>
      <category>errors</category><category>software</category><category>windows</category>
      <category>vista</category>
    </item>
    
    <item>
      <title>Rsync backups</title>
      <link>https://yeri.be/rsync-backups/</link>
      <pubDate>Mon, 25 Feb 2008 21:14:37 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/rsync-backups/</guid>
      <description>&lt;p&gt;My own simple rsync backup &amp;lsquo;script&amp;rsquo;.&lt;/p&gt;&#xA;&lt;p&gt;You&amp;rsquo;ll need a rsync server, something to backup, and ssh-agent running to ease the process (or, fill in your password each time).&lt;/p&gt;&#xA;&lt;p&gt;Add the following lines (using a terminal text editor) to a text file (&amp;quot;.rsync&amp;quot; for example, hidden files under Unix-like systems), and chmod +x $file.&lt;/p&gt;&#xA;&lt;pre line=&#34;1&#34; lang=&#34;bash&#34;&gt;rsync --archive -uv --exclude-from=/home/you/.rsync_exclude \&#xA;--rsh=&#34;ssh -p 222&#34; --delete --stats --progress /Users/you/Documents/ \&#xA;you@remost.host.com:/home/you/remote-backup-directory&lt;/pre&gt;&#xA;&lt;p&gt;This will upload any files in /Users/you/Documents to /home/you/remote-backup-directory.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>My own simple rsync backup &lsquo;script&rsquo;.</p>
<p>You&rsquo;ll need a rsync server, something to backup, and ssh-agent running to ease the process (or, fill in your password each time).</p>
<p>Add the following lines (using a terminal text editor) to a text file (&quot;.rsync&quot; for example, hidden files under Unix-like systems), and chmod +x $file.</p>
<pre line="1" lang="bash">rsync --archive -uv --exclude-from=/home/you/.rsync_exclude \
--rsh="ssh -p 222" --delete --stats --progress /Users/you/Documents/ \
you@remost.host.com:/home/you/remote-backup-directory</pre>
<p>This will upload any files in /Users/you/Documents to /home/you/remote-backup-directory.</p>
<p>It will use ssh on port 222 to transfer the files.</p>
<p>Just execute ./.rsync (if that&rsquo;s the name of your file) to run it.</p>
<p>If you make any  changes (locally), and run this, the changes will be applied on the remote server (e.g. file changes, renames, deletes, &hellip;) &ndash; this will delete files on the remote server if you&rsquo;ve deleted them locally!</p>
<p>The file .rsync_exclude is optional, it includes all files or directories that should NOT be uploaded</p>
<p>This is what I have in my .rsync_exclude:</p>
<pre line="1" lang="bash">Nazgul:~ yeri$ cat .rsync_exclude
Parallels/*</pre>
<p>Simple as hell, and yet so handy!</p>
]]></content:encoded>
      <category>apple</category><category>linux</category><category>software</category>
      <category>backup</category><category>rsync</category><category>ssh</category>
    </item>
    
    <item>
      <title>Hamachi(X) on Leopard</title>
      <link>https://yeri.be/hamachi-on-leopard/</link>
      <pubDate>Sun, 17 Feb 2008 22:30:00 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/hamachi-on-leopard/</guid>
      <description>&lt;p&gt;When playing with &lt;a href=&#34;http://kismac.macpirate.ch/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;KisMAC&lt;/a&gt;, I noticed something weird in my /var/log/system.log;&lt;/p&gt;&#xA;&lt;pre line=&#34;1&#34; lang=&#34;bash&#34;&gt;$date com.apple.launchd[1] (tuncfgd$pid) posix_spawnp(&#34;/usr/sbin/tuncfg&#34;, ...):&#xA;No such file or directory&#xA;$date com.apple.launchd[1] (tuncfgd$pid) Exited with exit code: 1&#xA;$date com.apple.launchd[1] (tuncfgd) Throttling respawn: Will start in 10 seconds&lt;/pre&gt;&#xA;&lt;p&gt;tun is (trying) to restart every 10 (!) seconds.&#xA;I tried updating &lt;a href=&#34;https://secure.logmein.com/products/hamachi/vpn.asp&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Hamachi&lt;/a&gt;&amp;rsquo;s &lt;a href=&#34;https://web.archive.org/web/20081015080644/http://www-user.rhrk.uni-kl.de:80/~nissler/tuntap/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;tun/tap drivers&lt;/a&gt;, without any success. It kept restarting the process every 10 seconds.&lt;/p&gt;&#xA;&lt;p&gt;After a bit of Googling, it seemed to be a &lt;a href=&#34;https://web.archive.org/web/20080311120033/http://discussions.apple.com:80/thread.jspa?messageID=6571462&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;known problem&lt;/a&gt;. So I decided to uninstall Hamachi &amp;amp; the tun/tap drivers.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>When playing with <a href="http://kismac.macpirate.ch/" target="_blank" rel="noopener noreferrer">KisMAC</a>, I noticed something weird in my /var/log/system.log;</p>
<pre line="1" lang="bash">$date com.apple.launchd[1] (tuncfgd$pid) posix_spawnp("/usr/sbin/tuncfg", ...):
No such file or directory
$date com.apple.launchd[1] (tuncfgd$pid) Exited with exit code: 1
$date com.apple.launchd[1] (tuncfgd) Throttling respawn: Will start in 10 seconds</pre>
<p>tun is (trying) to restart every 10 (!) seconds.
I tried updating <a href="https://secure.logmein.com/products/hamachi/vpn.asp" target="_blank" rel="noopener noreferrer">Hamachi</a>&rsquo;s <a href="https://web.archive.org/web/20081015080644/http://www-user.rhrk.uni-kl.de:80/~nissler/tuntap/" target="_blank" rel="noopener noreferrer">tun/tap drivers</a>, without any success. It kept restarting the process every 10 seconds.</p>
<p>After a bit of Googling, it seemed to be a <a href="https://web.archive.org/web/20080311120033/http://discussions.apple.com:80/thread.jspa?messageID=6571462" target="_blank" rel="noopener noreferrer">known problem</a>. So I decided to uninstall Hamachi &amp; the tun/tap drivers.</p>
<pre line="1" lang="bash">sudo rm -r /usr/bin/hamachi
sudo rm -r  /usr/bin/hamachi-init
sudo rm -r  /usr/sbin/tuncfg
sudo launchctl unload /System/Library/LaunchDaemons/tuncfgd.plist
sudo rm -r /System/Library/LaunchDaemons/tuncfgd.plist
sudo rm -r /Applications/HamachiX</pre>
<p>This should solve the restarting problem. You might want to reboot to be sure.</p>
<p>When uninstalling the drivers, <a href="https://web.archive.org/web/20190808101001/http://hamachix.spaceants.net/" target="_blank" rel="noopener noreferrer">HamachiX</a> will be gone; there will be no way to use it. You can decide to ignore the spawning-processes, and keep using Hamachi as-is, but the spawning processes might slow down your computer. But HamachiX should work (although it often crashed here).</p>
<p>I tried reinstalling the tun/tap drivers, but the same happens. I guess I&rsquo;ll have to wait for a fix. :(</p>
<p>On the other side, I&rsquo;ve tried the <a href="https://web.archive.org/web/20120515123758/http://files.hamachi.cc/osx/README" target="_blank" rel="noopener noreferrer">console version</a> of Hamachi (so no HamachiX) which seems to be working fine (so far). Just missing out on the handy GUI. <em><a href="https://yeri.be/console-hamachi/" target="_blank" rel="noopener noreferrer">Edit</a></em></p>
]]></content:encoded>
      <category>apple</category><category>errors</category><category>networking</category><category>software</category>
      <category>apple</category><category>hamachi</category><category>hamachix</category><category>mac os x</category><category>tun/tap</category>
    </item>
    
    <item>
      <title>Mac OS X.5.2</title>
      <link>https://yeri.be/mac-os-x152/</link>
      <pubDate>Thu, 14 Feb 2008 00:45:05 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/mac-os-x152/</guid>
      <description>&lt;p&gt;Yes, &lt;a href=&#34;https://web.archive.org/web/20080315182840/http://docs.info.apple.com:80/article.html?artnum=307109&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;it&amp;rsquo;s here&lt;/a&gt;, finally!&lt;/p&gt;&#xA;&lt;p&gt;A 355 Mb patch, downloaded over &lt;a href=&#34;https://web.archive.org/web/20070911190337/http://www.vinddelaptop.be:80/?&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;poor UMTS/3G&lt;/a&gt; at school and in the train&amp;hellip; Took a while, but it&amp;rsquo;s finally installed.&lt;/p&gt;&#xA;&lt;p&gt;Some nice few features, like the fact you can now remove the semi-transparent effect on the menu bar (makes it nicer). They also added some nice stacks enhancements.&lt;/p&gt;&#xA;&lt;p&gt;A Time Machine icon is added in the menu bar too, just too bad you can&amp;rsquo;t make it just pop-up when it is actually backing up. I like keeping my menu bar clean. ;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Yes, <a href="https://web.archive.org/web/20080315182840/http://docs.info.apple.com:80/article.html?artnum=307109" target="_blank" rel="noopener noreferrer">it&rsquo;s here</a>, finally!</p>
<p>A 355 Mb patch, downloaded over <a href="https://web.archive.org/web/20070911190337/http://www.vinddelaptop.be:80/?" target="_blank" rel="noopener noreferrer">poor UMTS/3G</a> at school and in the train&hellip; Took a while, but it&rsquo;s finally installed.</p>
<p>Some nice few features, like the fact you can now remove the semi-transparent effect on the menu bar (makes it nicer). They also added some nice stacks enhancements.</p>
<p>A Time Machine icon is added in the menu bar too, just too bad you can&rsquo;t make it just pop-up when it is actually backing up. I like keeping my menu bar clean. ;)</p>
<p>And well, a lot more bug fixes, but haven&rsquo;t noticed any of them, besides perhaps iCal that for some reason hides appointments, as if they were deleted. After changing weeks/refreshing the page, if reappears&hellip; (most iCal bugs were fixed in patch 15.1 for me)</p>
<p>The only thing they haven&rsquo;t fixed is the Workgroup problem&hellip; Still can&rsquo;t join one. If forgets the name of the workgroup I&rsquo;ve entered when I close the window&hellip; Yes, there are some workarounds, like copying the network-location and so on, but I haven&rsquo;t tried yet.</p>
<p>But hey, I&rsquo;m glad with this. :)</p>
<p>No big changes, but I hope Leopard&rsquo;s bugs are fixed now</p>
]]></content:encoded>
      <category>apple</category><category>software</category>
      <category>leopard</category><category>mac os x</category>
    </item>
    
    <item>
      <title>EyeTV &#43; ffmpegX = iMovie</title>
      <link>https://yeri.be/eyetv-ffmpegx-imovie/</link>
      <pubDate>Fri, 01 Feb 2008 15:53:50 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/eyetv-ffmpegx-imovie/</guid>
      <description>&lt;p&gt;EyeTV is a cool application that let&amp;rsquo;s you watch TV on your Mac. I happen to have the &amp;ldquo;lite&amp;rdquo; version, because it was significantly cheaper than the other version.&lt;/p&gt;&#xA;&lt;p&gt;The cool thing is, you can easily record films or TV episodes with it, but with this version, there is no way to export it to a iMovie project, or to play the recording in a QuickTime based application.&lt;/p&gt;&#xA;&lt;p&gt;When recording, it creates a folder &amp;ldquo;Live Recording - $date $time.eyetv&amp;rdquo;. And when double clicking it, it will open EyeTV.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>EyeTV is a cool application that let&rsquo;s you watch TV on your Mac. I happen to have the &ldquo;lite&rdquo; version, because it was significantly cheaper than the other version.</p>
<p>The cool thing is, you can easily record films or TV episodes with it, but with this version, there is no way to export it to a iMovie project, or to play the recording in a QuickTime based application.</p>
<p>When recording, it creates a folder &ldquo;Live Recording - $date $time.eyetv&rdquo;. And when double clicking it, it will open EyeTV.</p>
<p>Now if you would go into that folder (rather than opening it), for example with Terminal, you would see four files.</p>
<pre line="1" lang="Bash">Nazgul:Desktop yeri$ cd Live\ Recording\ -\ 31-01-2008\ 21_54.eyetv/
Nazgul:Live Recording - 31-01-2008 21_54.eyetv yeri$ ls -ls
total 1515968173
6 -rw-r--r--  1 yeri  yeri     886080 Jan 31 22:08 000000000d526cf1.eyetvi
8 -rw-r--r--  1 yeri  yeri       1137 Jan 31 22:08 000000000d526cf1.eyetvp
8 -rw-r--r--  1 yeri  yeri       1950 Jan 31 23:48 000000000d526cf1.eyetvr
1514216 -rw-r--r--  1 yeri  yeri  775275716 Jan 31 22:08 000000000d526cf1.mpg</pre>
<p>The only important file is the .mpg file. You can open it with QuickTime, but you won&rsquo;t have any sound.</p>
<p>To move your .mpg file to, e.g., your Movies directory, use (change $You with your username):</p>
<pre line="1" lang="Bash">Nazgul:Live Recording - 21_54.eyetv yeri$ mv *.mpg /Users/$You/Movies/</pre>
<p>The only player that plays the file correctly is <a href="http://www.videolan.org/vlc/" target="_blank" rel="noopener noreferrer">VLC</a>. No way to import it in iMovie, edit it, or share it. But, have no fear, there&rsquo;s a workaround using <a href="http://ffmpegx.com/" target="_blank" rel="noopener noreferrer">ffmpegX</a>. Download and install it (follow the instructions on the website, you&rsquo;ll need to install 3 extra binaries too).</p>
<p>When installed, open the program, import the .mpg file, and export it to, for example, a .mov (-mpeg4) file.</p>
<p style="text-align: center" align="left"><a href="https://static.yeri.be/2008/02/ffmpeg1.png" title="ffmpegX"><img src="https://static.yeri.be/2008/02/ffmpeg1.png" alt="ffmpegX"/></a></p>
<p style="text-align: left" align="left">Converting might take a while.</p>
<p style="text-align: left" align="left">All you then have to do, is to import it in iMovie.</p>
<p style="text-align: center"><a href="https://static.yeri.be/2008/02/imovie1.png" title="iMovie"><img src="https://static.yeri.be/2008/02/imovie1.png" alt="iMovie"/></a></p>
<p>Follow the steps on the screen. iMovie will ask you a few things, and then you&rsquo;ll be ready to edit your recording!</p>
<p>With iMovie &lsquo;08, you can even directly share your records on YouTube, cool stuff!</p>
<p style="text-align: center"><a href="https://static.yeri.be/2008/02/imovie2.png" title="iMovie"><img src="https://static.yeri.be/2008/02/imovie2.png" alt="iMovie"/></a></p>
]]></content:encoded>
      <category>apple</category><category>software</category>
      <category>eyetv</category><category>ffmpegx</category><category>imovie</category><category>youtube</category>
    </item>
    
    <item>
      <title>IP calc</title>
      <link>https://yeri.be/ip-calc/</link>
      <pubDate>Sun, 13 Jan 2008 10:28:13 +0100</pubDate>
      <author>Yeri Tiete</author>
      <guid isPermaLink="true">https://yeri.be/ip-calc/</guid>
      <description>&lt;p&gt;For those who have to work with IP&amp;rsquo;s and subnets, I have only one word; &lt;a href=&#34;http://www.bitcricket.com/ip-subnet-calculator.html&#34; target=&#34;_blank&#34;&gt;Bitcricket IP Calculator&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It converts decimal IP&amp;rsquo;s into binary or hexadecimal IP&amp;rsquo;s (and, the other way around too); it gives you the IP class; it calculates subnets, with the number of hosts/subnet, and gives you the number of host bits; and many more!&lt;/p&gt;&#xA;&lt;p&gt;Shiny tool to quickly do subnet calculations. Has proven it&amp;rsquo;s use when doing the Cisco CCNA tests. ;)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>For those who have to work with IP&rsquo;s and subnets, I have only one word; <a href="http://www.bitcricket.com/ip-subnet-calculator.html" target="_blank">Bitcricket IP Calculator</a>.</p>
<p>It converts decimal IP&rsquo;s into binary or hexadecimal IP&rsquo;s (and, the other way around too); it gives you the IP class; it calculates subnets, with the number of hosts/subnet, and gives you the number of host bits; and many more!</p>
<p>Shiny tool to quickly do subnet calculations. Has proven it&rsquo;s use when doing the Cisco CCNA tests. ;)</p>
]]></content:encoded>
      <category>apple</category><category>software</category>
      <category>bitcricket</category><category>mac os x</category>
    </item>
    
  </channel>
</rss>
