<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Rem.co: Remco Overdijk</title>
    <link>https://rem.co/</link>
    <description>Recent content on Rem.co: Remco Overdijk</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>Copyright © 2013–2024, Remco Overdijk; all rights reserved.</copyright>
    <lastBuildDate>Mon, 18 Feb 2019 16:56:55 +0100</lastBuildDate>
    <atom:link href="https://rem.co/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Git: Automatically moving a tag using a custom command</title>
      <link>https://rem.co/blog/2019/02/18/git-automatically-moving-a-tag/</link>
      <pubDate>Mon, 18 Feb 2019 16:56:55 +0100</pubDate>
      <guid>https://rem.co/blog/2019/02/18/git-automatically-moving-a-tag/</guid>
      <description>&lt;p&gt;Ever find yourself moving a git tag to a new commit? You&amp;rsquo;ll probably know this procedure consists out of three steps;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Removing the existing tag from your &lt;code&gt;origin&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Manually moving the tag (using &lt;code&gt;-f&lt;/code&gt; to allow moving)&lt;/li&gt;&#xA;&lt;li&gt;Pushing the tag back your &lt;code&gt;origin&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Since this procedure is more cumbersome that it could be, behold, a quick and easy life hack to automate this process into a single custom command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Puppet: Calculating average catalog compilation times</title>
      <link>https://rem.co/blog/2015/03/09/puppet-calculating-average-catalog-compilation-times/</link>
      <pubDate>Mon, 09 Mar 2015 18:25:18 +0100</pubDate>
      <guid>https://rem.co/blog/2015/03/09/puppet-calculating-average-catalog-compilation-times/</guid>
      <description>&lt;p&gt;&lt;em&gt;Just a quick post with the oneliner of the day.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;When you are debugging catalog compilation issues or other puppet performance issues in general, it is good to know exactly which catalogs are slow to compile. Knowing which catalogs are substantially slower than others allows you to focus on those catalogs and the modules they contain.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git: The difference between lightweight and annotated tags</title>
      <link>https://rem.co/blog/2015/02/12/git-the-difference-between-lightweight-and-annotated-tags/</link>
      <pubDate>Thu, 12 Feb 2015 14:05:50 +0100</pubDate>
      <guid>https://rem.co/blog/2015/02/12/git-the-difference-between-lightweight-and-annotated-tags/</guid>
      <description>&lt;p&gt;I was reviewing some pull requests at work today. One of the PR&amp;rsquo;s had an updated &lt;code&gt;composer.lock&lt;/code&gt; file. We usually check if the &lt;code&gt;reference&lt;/code&gt; matches the &lt;code&gt;version&lt;/code&gt; for this update, to see if that commit is actually released on the module&amp;rsquo;s &lt;code&gt;master&lt;/code&gt; branch:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-1&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-1&#34;&gt; 1&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-2&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-2&#34;&gt; 2&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-3&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-3&#34;&gt; 3&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-4&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-4&#34;&gt; 4&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-5&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-5&#34;&gt; 5&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-6&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-6&#34;&gt; 6&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-7&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-7&#34;&gt; 7&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-8&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-8&#34;&gt; 8&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-9&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-9&#34;&gt; 9&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-10&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-10&#34;&gt;10&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-11&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-11&#34;&gt;11&lt;/a&gt;&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-diff&#34; data-lang=&#34;diff&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;name&amp;#34;: &amp;#34;company/module_name&amp;#34;,&#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;gd&#34;&gt;- &amp;#34;version&amp;#34;: &amp;#34;0.11.0&amp;#34;,&#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;gd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;gi&#34;&gt;+ &amp;#34;version&amp;#34;: &amp;#34;0.12.0&amp;#34;,&#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;gi&#34;&gt;&lt;/span&gt;&amp;#34;source&amp;#34;: {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#x9;&amp;#34;type&amp;#34;: &amp;#34;git&amp;#34;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#x9;&amp;#34;url&amp;#34;: &amp;#34;ssh://git@stash.company.net/packages/module_name.git&amp;#34;,&#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;gd&#34;&gt;-&#x9;&amp;#34;reference&amp;#34;: &amp;#34;19ecfcb286052457697caad3359d7817e2dfa2f5&amp;#34;&#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;gd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;gi&#34;&gt;+&#x9;&amp;#34;reference&amp;#34;: &amp;#34;2c539864d72baede7f169f15eec8c3317e26c1bc&amp;#34;&#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;gi&#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;&lt;span class=&#34;gd&#34;&gt;- &amp;#34;time&amp;#34;: &amp;#34;2014-10-08 11:12:23&amp;#34;&#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;gd&#34;&gt;&lt;/span&gt;&lt;span class=&#34;gi&#34;&gt;+ &amp;#34;time&amp;#34;: &amp;#34;2014-11-18 16:47:02&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Usually, this &lt;code&gt;reference&lt;/code&gt; matches the hash of the commit we&amp;rsquo;ve tagged as this &lt;code&gt;version&lt;/code&gt;. In this particular case however, the hash mentioned in &lt;code&gt;reference&lt;/code&gt; was nowhere to be found in the commit log. So what&amp;rsquo;s going on here?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bacula: Cancelling all jobs that are currently writing</title>
      <link>https://rem.co/blog/2015/02/09/bacula-cancelling-all-jobs-that-are-currently-writing/</link>
      <pubDate>Mon, 09 Feb 2015 14:08:07 +0100</pubDate>
      <guid>https://rem.co/blog/2015/02/09/bacula-cancelling-all-jobs-that-are-currently-writing/</guid>
      <description>&lt;p&gt;&lt;em&gt;Just a quick post with the oneliner of the day.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Scenario&lt;/strong&gt;: after a bacula director restart a couple of jobs were stuck on the FD with message:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-1&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-1&#34;&gt;1&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-2&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-2&#34;&gt;2&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-3&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-3&#34;&gt;3&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-4&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-4&#34;&gt;4&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-5&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-5&#34;&gt;5&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-6&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-6&#34;&gt;6&lt;/a&gt;&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&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;Running Jobs:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Writing: Incremental Backup job node.cluster.company.com &lt;span class=&#34;nv&#34;&gt;JobId&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8702&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;Volume&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&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;nv&#34;&gt;pool&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;bacula.director.company.com:pool:default.incremental&amp;#34;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;DefaultFileStorage&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;/mnt/bacula/default&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;    &lt;span class=&#34;nv&#34;&gt;spooling&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;despooling&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;despool_wait&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&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;nv&#34;&gt;Files&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;Bytes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; AveBytes/sec&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; LastBytes/sec&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FDSocket closed&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;There were a couple of these jobs that were stuck, preventing all other jobs from running, because those were waiting for a free slot on the FD.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bacula: Purging and deleting old volumes</title>
      <link>https://rem.co/blog/2015/01/15/bacula-purging-and-deleting-old-volumes/</link>
      <pubDate>Thu, 15 Jan 2015 14:08:02 +0100</pubDate>
      <guid>https://rem.co/blog/2015/01/15/bacula-purging-and-deleting-old-volumes/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using bacula for a couple of months now in conjunction with puppet to&#xA;make automated backups of all servers that are managed by puppet.&#xA;My bacula setup labels a volume for every job it runs with a unique name:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-1&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-1&#34;&gt;1&lt;/a&gt;&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Label Format&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;${Job}.${Year}${Month:p/2/0/r}${Day:p/2/0/r}.${Hour:p/2/0/r}${Minute:p/2/0/r}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;These volumes are automatically purged once the retention of all files contained on the volume expires (which is&#xA;configured per-pool). Due to the unique names however, the volumes cannot&#xA;be recycled. The result of this is that the volumes that have been marked as&#xA;purged in the catalog remain as-is on the disk. After some time this ultimately&#xA;resulted in a full disk, thus halting all backups performed on that pool. Not&#xA;good. Not good at all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Music: End Of The Year Mix 2014</title>
      <link>https://rem.co/blog/2015/01/14/music-end-of-the-year-mix-2014/</link>
      <pubDate>Wed, 14 Jan 2015 16:55:06 +0100</pubDate>
      <guid>https://rem.co/blog/2015/01/14/music-end-of-the-year-mix-2014/</guid>
      <description>&lt;p&gt;Need some fresh tunes? Enjoy my End Of The Year Mix for 2014.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gentoo: Running a Minecraft 1.8 server</title>
      <link>https://rem.co/blog/2014/11/28/gentoo-running-a-minecraft-1-dot-8-server/</link>
      <pubDate>Fri, 28 Nov 2014 13:36:57 +0100</pubDate>
      <guid>https://rem.co/blog/2014/11/28/gentoo-running-a-minecraft-1-dot-8-server/</guid>
      <description>&lt;p&gt;Running a dedicated Minecraft server can be a challenging job. You have to find a balance between performance and usability using &amp;ldquo;server software&amp;rdquo; that doesn&amp;rsquo;t seem to be designed to provide for long running, resilient services.&lt;/p&gt;&#xA;&lt;p&gt;Being a first-time Minecraft server operator I had to tackle various challenges in order to come up with a way to provide a stable and reliable service to my players. The following article is a recollection of the things I implemented and scripts I wrote in order to run a Minecraft 1.8 server. The scripts mentioned are specific to Gentoo Linux, but could also be used on most other Linux flavours, albeit with some modifications to match that platform&amp;rsquo;s &lt;code&gt;init.d&lt;/code&gt; scripts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Diceware Password Generator</title>
      <link>https://rem.co/dice/</link>
      <pubDate>Sat, 14 Jun 2014 20:59:51 +0200</pubDate>
      <guid>https://rem.co/dice/</guid>
      <description>Select a language: English Dutch Japanese Polish Swedish Rolls: Add number Clear Words: What is this? This is a diceware password generator. Read about diceware&#xA;here here and here Is this safe? Probably not, but I&amp;rsquo;ve taken some precautions to make sure this is as safe as a browser-based generator can be:&#xA;This generator is implemented in javascript. It runs in your browser, and doesn&amp;rsquo;t send your rolls and/or words to me or anyone else.</description>
    </item>
    <item>
      <title>Git: Moving a repository to a new server</title>
      <link>https://rem.co/blog/2014/06/10/git-moving-a-repository-to-a-new-server/</link>
      <pubDate>Tue, 10 Jun 2014 16:59:56 +0200</pubDate>
      <guid>https://rem.co/blog/2014/06/10/git-moving-a-repository-to-a-new-server/</guid>
      <description>&lt;p&gt;The quick, easy and complete way:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing &#39;Error opening terminal: screen-256color.&#39;</title>
      <link>https://rem.co/blog/2013/06/06/fixing-error-opening-terminal-screen-256color-dot/</link>
      <pubDate>Thu, 06 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://rem.co/blog/2013/06/06/fixing-error-opening-terminal-screen-256color-dot/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re using &lt;code&gt;tmux &lt;/code&gt; or &lt;code&gt;screen&lt;/code&gt; as a wrapper for your terminal sessions (such as when using the &lt;a href=&#34;http://www.drbunsen.org/the-text-triumvirate/&#34;&gt;Text Triumvirate&lt;/a&gt;), chances are that you are presented with the following error when you invoke a command that uses 256 color mode (such as &lt;code&gt;multitail&lt;/code&gt; or &lt;code&gt;htop&lt;/code&gt;):&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Error opening terminal: screen-256color.&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>OnApp: Using PHP to launch a VNC connection</title>
      <link>https://rem.co/blog/2013/03/01/onapp-using-php-to-launch-a-vnc-connection/</link>
      <pubDate>Fri, 01 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://rem.co/blog/2013/03/01/onapp-using-php-to-launch-a-vnc-connection/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re an &lt;a href=&#34;http://onapp.com/&#34;&gt;OnApp&lt;/a&gt; user you probably know you can make a VNC connection to your VM&amp;rsquo;s using the Control Panel.&#xA;This uses a java applet in your browser as the VNC client.&lt;/p&gt;&#xA;&lt;p&gt;Wouldn&amp;rsquo;t it be nice to use your own VNC client (like &lt;a href=&#34;http://www.nulana.com/remotix-mac&#34;&gt;Remotix&lt;/a&gt;) instead?&lt;/p&gt;&#xA;&lt;p&gt;In fact, you can, but OnApp spawns a VNC server on a (somewhat) random port and a new random VNC password for each sessions which you&amp;rsquo;ll have to figure out before setting up your connection.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SELinux: Allowing SSH public key authentication</title>
      <link>https://rem.co/blog/2013/02/19/selinux-allowing-ssh-public-key-authentication/</link>
      <pubDate>Tue, 19 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://rem.co/blog/2013/02/19/selinux-allowing-ssh-public-key-authentication/</guid>
      <description>&lt;h3 id=&#34;the-issue&#34;&gt;The issue&lt;/h3&gt;&#xA;&lt;p&gt;I experienced a seemingly weird issue with a freshly installed CentOS server today.&lt;/p&gt;&#xA;&lt;p&gt;SSH Public key authentication was correctly set up; The &lt;code&gt;sshd_config&lt;/code&gt; was properly configured and a &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt; was present with the correct rights and verified correct contents (as the file was yanked from another, working, server with &lt;code&gt;scp&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;All attempts to connect to the machine using key authentication silently failed however.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu: Automatically selecting a fast mirror</title>
      <link>https://rem.co/blog/2013/01/22/ubuntu-automatically-selecting-a-fast-mirror/</link>
      <pubDate>Tue, 22 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://rem.co/blog/2013/01/22/ubuntu-automatically-selecting-a-fast-mirror/</guid>
      <description>&lt;p&gt;Letting Ubuntu pick the &lt;code&gt;apt-get&lt;/code&gt; mirror closest to you is pretty easy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Munin: failing with Storable error</title>
      <link>https://rem.co/blog/2013/01/21/munin-failing-with-storable-error/</link>
      <pubDate>Mon, 21 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://rem.co/blog/2013/01/21/munin-failing-with-storable-error/</guid>
      <description>&lt;p&gt;I suffered from a Munin version 2.0.10 installation that refused to update the majority of the graphs. Only the first two of a long list were being updated, the rest all &amp;lsquo;hung&amp;rsquo; at the same moment.&lt;/p&gt;&#xA;&lt;p&gt;After a little investigating, the problem surfaced:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-1&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-1&#34;&gt;1&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-2&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-2&#34;&gt;2&lt;/a&gt;&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-3&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-3&#34;&gt;3&lt;/a&gt;&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&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;$ su - munin --shell&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/bin/bash munin-cron&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;File is not a perl storable at blib/lib/Storable.pm &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;autosplit into blib/lib/auto/Storable/fd_retrieve.al&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; line 398, at /usr/lib64/perl5/vendor_perl/5.12.4/Munin/Master/Utils.pm line &lt;span class=&#34;m&#34;&gt;362&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;File is not a perl storable at blib/lib/Storable.pm &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;autosplit into blib/lib/auto/Storable/fd_retrieve.al&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; line 398, at /usr/lib64/perl5/vendor_perl/5.12.4/Munin/Master/Utils.pm line &lt;span class=&#34;m&#34;&gt;362&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;I started out by fixing all items the &lt;code&gt;munin-check&lt;/code&gt; script suggested, which is always a good starting point.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Accelerating TYPO3 with Nginx &amp; Varnish</title>
      <link>https://rem.co/blog/2013/01/17/accelerating-typo3-with-nginx-and-varnish/</link>
      <pubDate>Thu, 17 Jan 2013 18:16:04 +0200</pubDate>
      <guid>https://rem.co/blog/2013/01/17/accelerating-typo3-with-nginx-and-varnish/</guid>
      <description>&lt;p&gt;So, you have a TYPO3 website and despite all your best efforts, it&amp;rsquo;s still too slow in your opinion.&lt;/p&gt;&#xA;&lt;p&gt;Maybe it&amp;rsquo;s time to start using Varnish as a caching reverse proxy to help speed things along. It&amp;rsquo;s fairly easy to set up, but there are some caveats when it comes to TYPO3. I&amp;rsquo;ll try to outline a fairly basic scenario below that should fit a number of TYPO3 installations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gentoo: Updating and Cleaning</title>
      <link>https://rem.co/blog/2013/01/16/updating-and-cleaning-your-gentoo-linux-server/</link>
      <pubDate>Wed, 16 Jan 2013 23:40:44 +0200</pubDate>
      <guid>https://rem.co/blog/2013/01/16/updating-and-cleaning-your-gentoo-linux-server/</guid>
      <description>&lt;p&gt;Keeping your Gentoo Linux server up to date isn&amp;rsquo;t as straightforward as let&amp;rsquo;s say an Ubuntu box, where you would just run &lt;code&gt; $ apt-get update &amp;amp;&amp;amp; apt-get upgrade &amp;amp;&amp;amp; apt-get clean&lt;/code&gt; for example.&lt;/p&gt;&#xA;&lt;p&gt;Gentoo is far too flexible for a &lt;em&gt;one size fits all&lt;/em&gt; approach. The commands outlined below come pretty close for daily use though:&lt;/p&gt;</description>
    </item>
    <item>
      <title>2013: Blogging with Octopress</title>
      <link>https://rem.co/blog/2013/01/16/blogging-with-octopress/</link>
      <pubDate>Wed, 16 Jan 2013 19:06:33 +0200</pubDate>
      <guid>https://rem.co/blog/2013/01/16/blogging-with-octopress/</guid>
      <description>&lt;p&gt;Well. Here we are!&lt;/p&gt;&#xA;&lt;p&gt;New year, new approach to blogging.&lt;/p&gt;&#xA;&lt;p&gt;In the past year I haven&amp;rsquo;t managed to push out a lot of blog articles though I&amp;rsquo;ve been working with loads of new, interesting technologies and approaches.&lt;/p&gt;&#xA;&lt;p&gt;Being a programmer, I blame the software I use to blog. In my case that&amp;rsquo;s the &lt;a href=&#34;http://www.typo3.org&#34;&gt;TYPO3&lt;/a&gt; installation at &lt;a href=&#34;https://rem.co&#34;&gt;rem.co&lt;/a&gt;. It&amp;rsquo;s recently been updated to TYPO3 6.0, and I haven&amp;rsquo;t gotten around to fixing all the bugs that appeared after such a major upgrade.&lt;/p&gt;&#xA;&lt;p&gt;Moreover, that site uses the ancient tt_news plugin as a blog substitute, which makes blogging a bit… troublesome to put it mildly. Especially &amp;ldquo;&lt;em&gt;advanced&lt;/em&gt;&amp;rdquo; stuff like including code snippets and multiple layouts in one article.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fail2Ban PhpMyAdmin script</title>
      <link>https://rem.co/blog/2009/12/09/fail2ban-phpmyadmin-script/</link>
      <pubDate>Wed, 09 Dec 2009 16:44:27 +0200</pubDate>
      <guid>https://rem.co/blog/2009/12/09/fail2ban-phpmyadmin-script/</guid>
      <description>&lt;p&gt;While examining my webserver statistics, I noticed that quite a lot 404&amp;rsquo;s are being served on most of my domains to scan bots that are trying to find exploits in possible running PHPMyAdmin configurations.&#xA;Though harmless if you keep a clean ship with a decently configured PHPMyAdmin and the latest updates like I do, I still decided I couldn&amp;rsquo;t let this behaviour unanswered. So I took action, and wrote a small fail2ban filter that permanently drops all traffic from the IP addresses these scans originate from, like I do with every address that misbehaves in any way.&lt;/p&gt;&#xA;&lt;p&gt;The regex used won&amp;rsquo;t capture all attempts, but with my configuration only 1 hit is enough to get you banned (the scripts these scans call are &lt;code&gt;main.php&lt;/code&gt; and &lt;code&gt;config.inc.php&lt;/code&gt;, which aren&amp;rsquo;t to be called directly, especially not when they fail with a 404 like these), and all scanning attempts I&amp;rsquo;ve seen so far cycle through at least 20 different combinations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IPMI graphs in Munin</title>
      <link>https://rem.co/blog/2009/09/20/impi-graphs-in-munin/</link>
      <pubDate>Sun, 20 Sep 2009 17:22:59 +0200</pubDate>
      <guid>https://rem.co/blog/2009/09/20/impi-graphs-in-munin/</guid>
      <description>&lt;p&gt;It is possible to monitor fan speeds and temperatures on Dell Poweredge servers under Linux. You can achieve this by reading out the IPMI data that is available on the system.&lt;/p&gt;&#xA;&lt;p&gt;I used the steps on &lt;a href=&#34;https://hep.pa.msu.edu/twiki/bin/view/AGLT2/DellCactiSetup&#34;&gt;this website&lt;/a&gt; to buffer the data gathered by IPMI to use in Cacti.&lt;/p&gt;&#xA;&lt;p&gt;However, in addition to Cacti I also use Munin to monitor various system parameters. Wouldn&amp;rsquo;t it be nice to incorporate graphs for fan speeds and temperatures in Munin? I thought so, so I developed a way to do this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cisco VoIP oplossing voor Ziggo telefonie</title>
      <link>https://rem.co/blog/2009/09/04/cisco-voip-oplossing-voor-ziggo-telefonie/</link>
      <pubDate>Fri, 04 Sep 2009 11:39:48 +0200</pubDate>
      <guid>https://rem.co/blog/2009/09/04/cisco-voip-oplossing-voor-ziggo-telefonie/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This article is only available in Dutch.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Sinds een recente verhuizing beschik ik thuis over een Ziggo Alles-in-1 Plus pakket, met internet, tv, én telefonie.&lt;/p&gt;&#xA;&lt;p&gt;Daarvoor maakte ik gebruik van een Cisco VoIP netwerk op basis van een externe SIP provider. Natuurlijk wilde ik mijn Cisco netwerk blijven gebruiken, maar dan wel op basis van de Ziggo telefonie aansluiting.&lt;/p&gt;&#xA;&lt;p&gt;Helaas maakt Ziggo gebruik van het &lt;a href=&#34;http://en.wikipedia.org/wiki/PacketCable&#34;&gt;PacketCable&lt;/a&gt; protocol over &lt;a href=&#34;http://en.wikipedia.org/wiki/DOCSIS&#34;&gt;EuroDocsis&lt;/a&gt;, in plaats van &lt;a href=&#34;http://en.wikipedia.org/wiki/Session_Initiation_Protocol&#34;&gt;SIP&lt;/a&gt;.&#xA;Daarnaast heeft het Motorola SurfBoard modem dat bij het Ziggo abonnement geleverd wordt geen SIP interface voor het LAN, maar beschikt over 2 &lt;a href=&#34;http://en.wikipedia.org/wiki/Plain_old_telephone_service&#34;&gt;POTS&lt;/a&gt; poorten op &lt;a href=&#34;http://en.wikipedia.org/wiki/RJ11,_RJ14,_RJ25&#34;&gt;RJ11&lt;/a&gt; connectoren.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Iptables: Creating persistent bans from Fail2Ban</title>
      <link>https://rem.co/blog/2009/08/18/iptables-creating-persistent-bans-from-fail2ban/</link>
      <pubDate>Tue, 18 Aug 2009 15:53:10 +0200</pubDate>
      <guid>https://rem.co/blog/2009/08/18/iptables-creating-persistent-bans-from-fail2ban/</guid>
      <description>&lt;p&gt;On my servers I use the nifty program &lt;a href=&#34;http://www.fail2ban.org/wiki/index.php/Main_Page&#34;&gt;Fail2Ban&lt;/a&gt; to perform logbased automatic firewalling of &amp;lsquo;bad&amp;rsquo; ip&amp;rsquo;s.&lt;/p&gt;&#xA;&lt;p&gt;The idea behind this is easy: Some IP performs an action I don&amp;rsquo;t approve of. This can be any number of things, e.g. requesting pages in Apache that are commonly accessed by bots and/or scanners, or trying to log in to SSH with accounts that do not exist on the system. This bad behavior gets logged, and Fail2Ban keeps tabs on those logs, and using a number of rules it determines if a host is &amp;lsquo;bad&amp;rsquo; enough to temporarily or permanently ban all access to the server. It does so by adding a few chains to Iptables (one for each thing it checks for), and dynamically adding/removing IP&amp;rsquo;s to/from these chains.&lt;/p&gt;&#xA;&lt;p&gt;This all works perfectly. However, there&amp;rsquo;s one issue; When Iptables gets reloaded, it restores its default rules, removing the Fail2Ban chains and all the rules they contain, even if the ip&amp;rsquo;s in the chain were marked as permanent.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CSS: Overlapping Flash content with CSS</title>
      <link>https://rem.co/blog/2009/05/29/css-overlapping-flash-content-with-css/</link>
      <pubDate>Fri, 29 May 2009 19:06:33 +0200</pubDate>
      <guid>https://rem.co/blog/2009/05/29/css-overlapping-flash-content-with-css/</guid>
      <description>&lt;p&gt;By default, flash movies are always shown on the top-level of a display tree.&lt;/p&gt;&#xA;&lt;p&gt;However, it can be very useful to be able to move the flash content to the background, and having it overlapped by other content;&#xA;e.g. You have a flash movie in the header of your website, but there&amp;rsquo;s a sidebar menu which should be displayed over the header.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHP: Testing the Pseudo Random Number Generator</title>
      <link>https://rem.co/blog/2009/05/26/php-testing-the-pseudo-random-number-generator/</link>
      <pubDate>Tue, 26 May 2009 18:44:44 +0200</pubDate>
      <guid>https://rem.co/blog/2009/05/26/php-testing-the-pseudo-random-number-generator/</guid>
      <description>&lt;p&gt;Every programmer uses them.. &lt;code&gt;PRNG&lt;/code&gt;&amp;rsquo;s, better known as &lt;em&gt;Pseudo-Random Number Generators&lt;/em&gt;; in PHP represented by the &lt;a href=&#34;http://nl1.php.net/manual/en/function.rand.php&#34;&gt;&lt;code&gt;rand(min,max)&lt;/code&gt;&lt;/a&gt; function.&lt;/p&gt;&#xA;&lt;p&gt;Unlike &lt;em&gt;True Random Number Generators&lt;/em&gt; (&lt;code&gt;TRNG&lt;/code&gt;&amp;rsquo;s) that use true random data like atmospheric noise to create their numbers, &lt;code&gt;PRNG&lt;/code&gt;&amp;rsquo;s rely on software algorithms to come up with seemingly random numbers.. &lt;em&gt;but are they&lt;/em&gt;?&lt;/p&gt;&#xA;&lt;p&gt;And is there a difference between Linux and Windows &lt;code&gt;PRNG&lt;/code&gt; results?&lt;/p&gt;</description>
    </item>
    <item>
      <title>MySQL: The complete FULLTEXT checklist</title>
      <link>https://rem.co/blog/2009/05/14/mysql-the-complete-fulltext-checklist/</link>
      <pubDate>Thu, 14 May 2009 18:16:04 +0200</pubDate>
      <guid>https://rem.co/blog/2009/05/14/mysql-the-complete-fulltext-checklist/</guid>
      <description>&lt;p&gt;In an effort to help a colleague with &lt;code&gt;FULLTEXT&lt;/code&gt; search troubles today, I tried to find out everything that could go wrong with setting up this search method on a table.&#xA;My short research resulted in this checklist. Failure to comply with these checks will result in &lt;em&gt;catastrophic&lt;/em&gt; failure :P&lt;/p&gt;</description>
    </item>
    <item>
      <title>MySQL: Boolean substitution</title>
      <link>https://rem.co/blog/2009/04/27/mysql-boolean-substitution/</link>
      <pubDate>Mon, 27 Apr 2009 00:00:00 +0000</pubDate>
      <guid>https://rem.co/blog/2009/04/27/mysql-boolean-substitution/</guid>
      <description>&lt;p&gt;Today I faced a quite interesting problem, that originated from pure laziness.&#xA;I&amp;rsquo;m developing a backend system for a quite complex database structure. Within this backend, an almost limitless amount of table views have to be created for the end user. Because I&amp;rsquo;m extremely lazy, and didn&amp;rsquo;t want to develop the html view code for each table view, I created a PHP html-table-generator-class, which takes a &lt;code&gt;mysql_result_set&lt;/code&gt; as parameter, and outputs the html table in string format.&lt;/p&gt;&#xA;&lt;p&gt;This method works great, unless for some cases, where a value in the query has to be substituted by a user readable value. A boolean is a good example of such a value.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
