<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>IRL.XYZ</title>
    <link>https://irl.xyz/</link>
    <description>Recent content on IRL.XYZ</description>
    <generator>Hugo</generator>
    <language>en-GB</language>
    <lastBuildDate>Sun, 18 Aug 2024 12:19:00 +0100</lastBuildDate>
    <atom:link href="https://irl.xyz/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>campGND 2024</title>
      <link>https://irl.xyz/blog/2024/2024w337/</link>
      <pubDate>Sun, 18 Aug 2024 12:19:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2024/2024w337/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://campgnd.com/&#34;&gt;campGND&lt;/a&gt; took place this year from the 9th to the 11th August at&#xA;its usual location. I wasn&amp;rsquo;t able to make it to &lt;a href=&#34;https://www.emfcamp.org/&#34;&gt;EMF&lt;/a&gt; in June&#xA;so I was happy to have the opportunity for some camping.&lt;/p&gt;&#xA;&lt;p&gt;This year there was a conscious effort to change things up compared to previous years.&#xA;The biggest difference was that we would not be attempting to run a generator for&#xA;power, but also we would be watching the noise levels and not having a central sound&#xA;system for music.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Amateur Radio Emoji</title>
      <link>https://irl.xyz/blog/2021/2021w127/</link>
      <pubDate>Sun, 28 Mar 2021 08:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2021/2021w127/</guid>
      <description>&lt;p&gt;Many activities, sports, food, and animals all have emojis present in the&#xA;Unicode standard, but if you want to express amateur radio ideas in the form of&#xA;an ideogram you will have difficulty.&lt;/p&gt;&#xA;&lt;p&gt;There is the 📻 emoji which represents a broadcast radio receiver, a&#xA;🎙️emoji which represents a studio microphone, and a 📡 emoji which&#xA;&lt;a href=&#34;https://emojipedia.org/satellite-antenna/&#34;&gt;Emojipedia&lt;/a&gt; suggests could be used&#xA;to represent a satellite dish used to communicate with 👽.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mobile Operating System Consent &#43; F-Droid</title>
      <link>https://irl.xyz/blog/2021/2021w067/</link>
      <pubDate>Sun, 14 Feb 2021 15:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2021/2021w067/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://lineageos.org/&#34;&gt;LineageOS&lt;/a&gt; installation on my &lt;a href=&#34;https://www.fairphone.com/en/2019/03/22/proving-our-case-fairphone-2-is-sold-out/&#34;&gt;Fairphone&#xA;2&lt;/a&gt;&#xA;was getting really old and the updater wasn&amp;rsquo;t functioning, so I decided to&#xA;switch back to the Fairphone operating system.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m really starting to develop some significant aversions to applications&#xA;collecting consent for things. The &amp;ldquo;consent overload&amp;rdquo; on the web triggered by&#xA;GDPR has certainly affected me. I can entirely see the appeal of a coping&#xA;strategy of ignoring the text of those boxes and choosing the fastest way to&#xA;dismiss them but that would slowly eat away at me in the longer term.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Password Manager &#43; TOTP</title>
      <link>https://irl.xyz/blog/2021/2021w014/</link>
      <pubDate>Thu, 07 Jan 2021 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2021/2021w014/</guid>
      <description>&lt;p&gt;I&amp;rsquo;d like to have a backup method for TOTP. For this, I&amp;rsquo;m looking at using the&#xA;&lt;a href=&#34;https://github.com/tadfisher/pass-otp&#34;&gt;pass-otp extension&lt;/a&gt; which is available&#xA;both in OpenBSD packages and Debian.&lt;/p&gt;&#xA;&lt;p&gt;There appears to be some way of scanning QR codes with your webcam in order&#xA;to extract the URIs, but I can skip this because I have a &lt;a href=&#34;https://www.thebarcodewarehouse.co.uk/Assets/Documents/Honeywell/Honeywell-Voyager-1450g-Datasheet.pdf&#34;&gt;Honeywell&#xA;Voyager 1450g&lt;/a&gt; handheld 2D barcode scanner (it is very fancy).&lt;/p&gt;&#xA;&lt;p&gt;Basic operation looks like:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Adding TOTP seed to an existing password:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ksh&#34; data-lang=&#34;ksh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pass otp append path/to/password&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Getting a TOTP code:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ksh&#34; data-lang=&#34;ksh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pass otp path/to/password&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Displaying a QR code to add a backup device (tested with Authy on iOS):&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ksh&#34; data-lang=&#34;ksh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pass otp uri -q path/to/password&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Gopher Card Catalogue</title>
      <link>https://irl.xyz/blog/2021/2021w013/</link>
      <pubDate>Wed, 06 Jan 2021 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2021/2021w013/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve recently started organising my &amp;ldquo;library&amp;rdquo;. This includes physical&#xA;books, electronic books, posters, QSL cards, challenge coins and other&#xA;interesting artifacts. The process of documentation has helped to&#xA;remove some of the feeling of clutter, and turned it into something&#xA;more valuable. In particular, manuals and leaflets that came with&#xA;appliances and electronics that would usually be thrown in a box and&#xA;forgotten about can now be found easily by simply searching a list to&#xA;see if I have it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Toy Finger Daemon</title>
      <link>https://irl.xyz/blog/2021/2021w012/</link>
      <pubDate>Tue, 05 Jan 2021 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2021/2021w012/</guid>
      <description>&lt;p&gt;The finger protocol is defined in RFC742. It&amp;rsquo;s a pretty simple protocol.&#xA;I&amp;rsquo;d like to have a more useful output at some point, perhaps including&#xA;status updates from Mastodon or APRS, but for now I&amp;rsquo;ve got the hang of&#xA;reading the request and sending some output with some simple C program.&lt;/p&gt;&#xA;&lt;p&gt;It uses inetd just like the Gopher server.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-C&#34; data-lang=&#34;C&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;static&lt;/span&gt; __dead &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;handle_query&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;input, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; len)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (len &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Summary:&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;-USER-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;irl&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;} &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (len &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;memcmp&lt;/span&gt;(input, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;irl&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;+-----+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;| irl |&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;+-----+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;  gopher://irl.xyz/1/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;  sip:1388@sip.sdf.org&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;  https://iain.learmonth.me/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;  https://hackers.town/@irl/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;  mailto:iain@learmonth.me&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;} &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Unknown input of %d bytes&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;, len);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;exit&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; argc, &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;**&lt;/span&gt;argv)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; input[&lt;span style=&#34;color:#ae81ff&#34;&gt;256&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i, pos &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (pos &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;256&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;pos &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;read&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;input[pos], &lt;span style=&#34;color:#ae81ff&#34;&gt;256&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; pos);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; pos; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&#x9;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (input[i] &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;\r&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; input[i] &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&#x9;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;handle_query&lt;/span&gt;(input, i);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Invalid&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Installing Gophernicus on OpenBSD</title>
      <link>https://irl.xyz/blog/2021/2021w011/</link>
      <pubDate>Mon, 04 Jan 2021 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2021/2021w011/</guid>
      <description>&lt;p&gt;Installing Gophernicus on OpenBSD was actually rather simple. It is&#xA;packaged so a simple:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ksh&#34; data-lang=&#34;ksh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas pkg_add gophernicus&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;will install the necessary files. According to the &lt;em&gt;pkg-readme&lt;/em&gt; the&#xA;preferred way to run it is through inetd so that&amp;rsquo;s what I set up.&#xA;The exact line I added to /etc/inetd.conf was:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gopher stream tcp nowait _gophernicus /usr/local/libexec/in.gophernicus in.gophernicus -h irl.xyz&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In the example, the hostname is in double quotes but the quotes&#xA;ended up appearing in gophermap outputs so I removed them and testing&#xA;with lynx everything is working now.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenBSD Worrying RAID</title>
      <link>https://irl.xyz/blog/2020/2020w412/</link>
      <pubDate>Tue, 06 Oct 2020 11:50:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w412/</guid>
      <description>&lt;p&gt;I wanted to move a couple of USB hard drives from one OpenBSD machine to&#xA;another. They are configured with&#xA;&lt;a href=&#34;http://man.openbsd.org/softraid.4&#34;&gt;softraid&lt;/a&gt;(4) as RAID 1 (mirrored). When I&#xA;plugged the drives into the new machine though, nothing happened with softraid.&#xA;This was pretty worrying.&lt;/p&gt;&#xA;&lt;p&gt;Both the drives showed in dmesg output so the issue was specifically to do with&#xA;softraid. The man page for &lt;a href=&#34;http://man.openbsd.org/bioctl.8&#34;&gt;bioctl&lt;/a&gt;(8) talks about -c creating a &amp;ldquo;new&amp;rdquo; RAID&#xA;device which sounded a little too destructive. I asked for help in&#xA;&lt;a href=&#34;#ZgotmplZ&#34;&gt;#openbsd&lt;/a&gt; and apparently the language in the&#xA;man page is misleading. The -d flag has recently &lt;a href=&#34;https://github.com/openbsd/src/commit/f574692f694a5152f0e02f3cbe3acac0d5b94a93&#34;&gt;been&#xA;updated&lt;/a&gt;&#xA;to say &amp;ldquo;detach&amp;rdquo; rather than &amp;ldquo;delete&amp;rdquo; to try to address this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Multicast IPTV</title>
      <link>https://irl.xyz/blog/2020/2020w397/</link>
      <pubDate>Sun, 27 Sep 2020 21:35:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w397/</guid>
      <description>&lt;p&gt;For almost a decade, I&amp;rsquo;ve been very slowly making progress on a multicast IPTV&#xA;system. Recently I&amp;rsquo;ve made a significant leap forward in this project, and I&#xA;wanted to write a little on the topic so I&amp;rsquo;ll have something to look at when I&#xA;pick this up next. I was aspiring to have a useable system by the end of today,&#xA;but for a couple of reasons, it wasn&amp;rsquo;t possible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Matrix Synapse Certificates</title>
      <link>https://irl.xyz/blog/2020/2020w391/</link>
      <pubDate>Mon, 21 Sep 2020 09:32:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w391/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve had a need to set up and run a &lt;a href=&#34;https://matrix.org/&#34;&gt;Matrix&lt;/a&gt; homeserver&#xA;and I wanted to try to set it up for general use as well as just for this&#xA;project.&lt;/p&gt;&#xA;&lt;p&gt;The one thing I wanted to do that is a little non-standard is to use the&#xA;&amp;ldquo;plain&amp;rdquo; domain for my user ID while hosting the homeserver on a subdomain. In&#xA;this case I wanted to use &amp;ldquo;irl.xyz&amp;rdquo; as the user ID domain, and &amp;ldquo;syn.irl.xyz&amp;rdquo; to&#xA;host the &lt;a href=&#34;https://matrix.org/docs/projects/server/synapse/&#34;&gt;Synapse&#xA;homeserver&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Portable Radio Setup</title>
      <link>https://irl.xyz/blog/2020/2020w361/</link>
      <pubDate>Mon, 31 Aug 2020 16:15:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w361/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been wanting to document my portable radio setup for a while, so finally&#xA;here is that blog post. This is a QRP setup, intended primarily for digimodes&#xA;on HF.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://irl.xyz/content/images/2020/sotabeams-mast.jpg&#34;&#xA;    alt=&#34;HF antenna set up on Elrick Hill, Aberdeen&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;p&gt;HF antenna set up on Elrick Hill, Aberdeen&lt;/p&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;First I want to talk about the antenna setup. Pictured above is the antenna&#xA;set up on &lt;a href=&#34;https://www.openstreetmap.org/node/2743153263&#34;&gt;Elrick Hill&lt;/a&gt; in&#xA;Aberdeen. I walked straight up the hill last weekend with the kit and had the&#xA;antenna up in under 10 minutes. The lower guy ropes can be put in without&#xA;assistance as they are short enough to be able to hold the mast while you push&#xA;the pegs in. If it had been windier I&amp;rsquo;d have done those and then I have a&#xA;second set of guy ropes that go half way between those and the top.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Light OpenStreetMapping with GPS</title>
      <link>https://irl.xyz/blog/2020/2020w285/</link>
      <pubDate>Fri, 10 Jul 2020 14:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w285/</guid>
      <description>&lt;p&gt;Now that lockdown is lifting a bit in Scotland, I&amp;rsquo;ve been going a bit further&#xA;for exercise. One location I&amp;rsquo;ve been to a few times is &lt;a href=&#34;https://forestryandland.gov.scot/visit/tyrebagger&#34;&gt;Tyrebagger&#xA;Woods&lt;/a&gt;. In theory, I can walk&#xA;here from my house via &lt;a href=&#34;https://www.walkhighlands.co.uk/aberdeenshire/brimmond-hill.shtml&#34;&gt;Brimmond&#xA;Hill&lt;/a&gt;&#xA;although I&amp;rsquo;m not yet fit enough to do that in one go.&lt;/p&gt;&#xA;&lt;p&gt;Instead of following the main path, I took a detour along some route that looked&#xA;like it wanted to be a path but it hadn&amp;rsquo;t been maintained for a while. When&#xA;I decided I&amp;rsquo;d had enough of this, I looked for a way back to the main path but&#xA;OpenStreetMap didn&amp;rsquo;t seem to have the footpaths mapped out here yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HamBSD Development Log 2020-05-08</title>
      <link>https://irl.xyz/blog/2020/2020w195/</link>
      <pubDate>Fri, 08 May 2020 16:44:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w195/</guid>
      <description>&lt;p&gt;I worked on &lt;a href=&#34;https://hambsd.org/&#34;&gt;HamBSD&lt;/a&gt; today, still looking at improvements&#xA;to &lt;a href=&#34;https://man.hambsd.org/aprsisd.8&#34;&gt;aprsisd&lt;/a&gt;(8). My focus today was on&#xA;documentation, tests and tidying up. It&amp;rsquo;s good to keep technical debt in check&#xA;and while no new big exciting features got made today on anything, lots of hard&#xA;work was done.&lt;/p&gt;&#xA;&lt;p&gt;I started the day on documentation, adding details on the new -b flag for&#xA;aprsisd and details on which packets will be sent to APRS-IS. I also added a&#xA;reference to the APRS-IS specifications to both the&#xA;&lt;a href=&#34;https://man.hambsd.org/aprsisd.8&#34;&gt;aprsisd&lt;/a&gt;(8) and the&#xA;&lt;a href=&#34;https://man.hambsd.org/aprsis-filter.7&#34;&gt;aprsis-filter&lt;/a&gt;(7) man pages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HamBSD Development Log 2020-05-07</title>
      <link>https://irl.xyz/blog/2020/2020w194/</link>
      <pubDate>Thu, 07 May 2020 20:58:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w194/</guid>
      <description>&lt;p&gt;I worked on &lt;a href=&#34;https://hambsd.org/&#34;&gt;HamBSD&lt;/a&gt; today, still looking at improvements&#xA;to &lt;a href=&#34;https://man.hambsd.org/aprsisd.8&#34;&gt;aprsisd&lt;/a&gt;(8). My focus today was on&#xA;writing unit tests for aprsisd.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve added a few &lt;a href=&#34;https://github.com/HamBSD/src/blob/26dde21ad202513dcb4a0a19bff2726ea7aa758c/regress/usr.sbin/aprsisd/unittests/ax25_to_tnc2_test.c&#34;&gt;unit&#xA;tests&lt;/a&gt;&#xA;to test the generation of the TNC2 format packets from AX.25 packets to upload&#xA;to APRS-IS. There&amp;rsquo;s still some todo entries there as I&amp;rsquo;ve not made up packets&#xA;for all the cases I wanted to check yet.&lt;/p&gt;&#xA;&lt;p&gt;These are the first unit tests I&amp;rsquo;ve written for HamBSD and it&amp;rsquo;s definitely a&#xA;different experience compared to writing Python unit tests for example. The&#xA;framework for the tests uses&#xA;&lt;a href=&#34;https://man.openbsd.org/bsd.regress.mk.5&#34;&gt;bsd.regress.mk&lt;/a&gt;(5). The tests&#xA;are C programs that include functions from aprsisd.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HamBSD Development Log 2020-05-06</title>
      <link>https://irl.xyz/blog/2020/2020w193/</link>
      <pubDate>Wed, 06 May 2020 20:30:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w193/</guid>
      <description>&lt;p&gt;I worked on &lt;a href=&#34;https://hambsd.org/&#34;&gt;HamBSD&lt;/a&gt; today, still looking at improvements&#xA;to &lt;a href=&#34;https://man.hambsd.org/aprsisd.8&#34;&gt;aprsisd&lt;/a&gt;(8). My focus today was on&#xA;gating from the Internet to RF.&lt;/p&gt;&#xA;&lt;p&gt;In the morning I cleaned up the mess I made yesterday with escaping the&#xA;non-printable characters in packets before uploading them. I ran some test&#xA;packets through and both Xastir and aprs.fi could decode them so that must&#xA;be the correct way to do it.&lt;/p&gt;&#xA;&lt;p&gt;I also added filtering of generic station queries (?APRS?) and IGate queries&#xA;(?IGATE?). When an IGate query is seen, aprsisd will now respond with a&#xA;station capabilities packet. The packet is not very exciting as it only&#xA;contains the &amp;ldquo;IGATE&amp;rdquo; capability right now, but at least it does that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HamBSD Development Log 2020-05-05</title>
      <link>https://irl.xyz/blog/2020/2020w192/</link>
      <pubDate>Tue, 05 May 2020 19:55:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w192/</guid>
      <description>&lt;p&gt;I worked on &lt;a href=&#34;https://hambsd.org/&#34;&gt;HamBSD&lt;/a&gt; today, still looking at improvements&#xA;to &lt;a href=&#34;https://man.hambsd.org/aprsisd.8&#34;&gt;aprsisd&lt;/a&gt;(8). My focus today was on&#xA;converting AX.25 packets to the TNC2 format used by APRS-IS.&lt;/p&gt;&#xA;&lt;p&gt;I fixed the path formatting to include the asterisks for used path entries.&#xA;Before packets would always appear to APRS-IS to have been heard directly, which&#xA;gave some impressive range statistics for packets that had in fact been through&#xA;one or two digipeaters.&lt;/p&gt;&#xA;&lt;p&gt;A little more filtering is now implemented for packets. The control field and&#xA;PID are verified to ensure the packets are APRS packets.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hetzner Dedicated Server Reverse DNS &#43; Ansible</title>
      <link>https://irl.xyz/blog/2020/2020w187/</link>
      <pubDate>Sun, 03 May 2020 09:55:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w187/</guid>
      <description>&lt;p&gt;Continuing on the path towards &lt;a href=&#34;https://irl.xyz/blog/2020/2020w154/&#34;&gt;all my stuff being managed by&#xA;Ansible&lt;/a&gt;, I&amp;rsquo;ve figured out a method of managing the reverse&#xA;DNS entries for subnets on the Hetzner Dedicated Server.&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a bunch of Ansible modules for handling Hetzner Cloud, but these servers&#xA;are managed in Robot which the Cloud API doesn&amp;rsquo;t cover. Instead, you need to&#xA;use the &lt;a href=&#34;https://robot.your-server.de/doc/webservice/en.html&#34;&gt;Robot Webservice&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Ansible does have a &lt;a href=&#34;https://docs.ansible.com/ansible/latest/modules/uri_module.html&#34;&gt;module for doing pretty arbitrary things with web&#xA;APIs&lt;/a&gt; though,&#xA;so using that I&amp;rsquo;ve got the following playbook figured out to keep the reverse&#xA;DNS entries in sync:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Consolidation and simplification</title>
      <link>https://irl.xyz/blog/2020/2020w154/</link>
      <pubDate>Thu, 09 Apr 2020 18:23:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w154/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been doing a lot of consolidation and simplification in an effort to&#xA;reduce the amount of brain I have to expend on various tasks and&#xA;responsibilities. I think it&amp;rsquo;s working.&lt;/p&gt;&#xA;&lt;p&gt;Last week &lt;a href=&#34;https://irl.xyz/blog/2020/2020w143/&#34;&gt;I wrote about Ansible for Tor Metrics&lt;/a&gt;. I&amp;rsquo;ve&#xA;also been working on Ansible for my own stuff. Some of the things I&amp;rsquo;ve been&#xA;working on include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;consistent user account setup and synchronised SSH public keys&lt;/li&gt;&#xA;&lt;li&gt;consistent privilege escalation (doas on OpenBSD, sudo on Debian)&lt;/li&gt;&#xA;&lt;li&gt;all hosts are backed up via BackupPC&lt;/li&gt;&#xA;&lt;li&gt;all hosts are monitored in Nagios&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If you want to check out this stuff as it evolves, I&amp;rsquo;ve &lt;a href=&#34;https://git.sr.ht/~irl/infra/tree/master/ansible&#34;&gt;pushed it to&#xA;git.sr.ht&lt;/a&gt; (this link might&#xA;break, I make no promises).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Continue as normal</title>
      <link>https://irl.xyz/blog/2020/2020w143/</link>
      <pubDate>Wed, 01 Apr 2020 17:48:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w143/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m thinking to experiment with a loosely organised but perhaps more regular&#xA;posting style. I&amp;rsquo;m going to post these under the tag &amp;ldquo;journal&amp;rdquo; because I think&#xA;that will fit these quite well. We&amp;rsquo;ll see if I keep these up, or if this one&#xA;ends up standing alone.&lt;/p&gt;&#xA;&lt;p&gt;For many people right now is a time of uncertainty, anxiety, fear and loss. For&#xA;me though today was pretty much a normal day. I work from home anyway so I&amp;rsquo;m&#xA;doing what I do every week day. Today felt a little more normal than other days&#xA;as I was attempting to work exlusively on a new laptop.&lt;/p&gt;</description>
    </item>
    <item>
      <title>From socket(2) to .onion with pf(4)</title>
      <link>https://irl.xyz/blog/2020/2020w066/</link>
      <pubDate>Sat, 08 Feb 2020 19:35:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2020/2020w066/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been rebuilding my IRC bouncer setup and as part of this process I&amp;rsquo;ve&#xA;decided to connect to IRC via onion services where possible. This setup isn&amp;rsquo;t&#xA;intended to provide anonymity as once I&amp;rsquo;m connected I&amp;rsquo;m going to identify to&#xA;&lt;code&gt;NickServ&lt;/code&gt; anyway. I guess it provides a little protection in that my IP&#xA;address shouldn&amp;rsquo;t be visible in that gap between connection and a cloak&#xA;activating, but there&amp;rsquo;s so many other ways that my identity could leak.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Spoofing commits to repositories on GitHub</title>
      <link>https://irl.xyz/blog/2019/2019w371/</link>
      <pubDate>Mon, 09 Sep 2019 21:17:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w371/</guid>
      <description>&lt;p&gt;&lt;em&gt;The following has already been reported to GitHub via HackerOne. Someone from&#xA;GitHub has closed the report as &amp;ldquo;informative&amp;rdquo; but told me that it&amp;rsquo;s a known&#xA;low-risk issue. As such, while they haven&amp;rsquo;t explicitly said so, I figure they&#xA;don&amp;rsquo;t mind me blogging about it.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Check out &lt;a href=&#34;https://github.com/torvalds/linux/commit/0f988f9f6ae0a4f068818027326aea07154dea65&#34;&gt;this&#xA;commit&lt;/a&gt;&#xA;in torvalds&amp;rsquo; linux.git on GitHub. In case this is fixed, here&amp;rsquo;s a screenshot&#xA;of what I see when I look at this link:&lt;/p&gt;</description>
    </item>
    <item>
      <title>An OpenBSD Mail Server on Digital Ocean</title>
      <link>https://irl.xyz/blog/2019/2019w194/</link>
      <pubDate>Wed, 08 May 2019 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w194/</guid>
      <description>&lt;div class=&#34;alert alert-secondary&#34;&gt;&#xA;I never finished this blog post, but I&#39;m hitting publish anyway, maybe&#xA;something in here is useful. If you were looking for a complete guide then this&#xA;isn&#39;t going to be what you wanted.&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I am one person, but I have many roles. I&amp;rsquo;m starting to find that I&amp;rsquo;m getting&#xA;too much information from too many directions. I&amp;rsquo;m also finding that I don&amp;rsquo;t&#xA;have access to certain information when I need it due to operational security&#xA;issues.  The biggest problem that I&amp;rsquo;m having with email right now is that 99.9%&#xA;of my email is going into a single inbox.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exploring Tor Exit Lists and ECC Signatures</title>
      <link>https://irl.xyz/blog/2019/2019w151/</link>
      <pubDate>Mon, 08 Apr 2019 16:34:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w151/</guid>
      <description>&lt;p&gt;At some point, I might write up a series of articles on the Tor Directory&#xA;Protocol and how it is all working, but first there are some things I&amp;rsquo;m trying&#xA;to get my head around in order to finish off &lt;a href=&#34;https://bugs.torproject.org/29624&#34;&gt;a new&#xA;specification&lt;/a&gt; for Tor Exit Lists that will&#xA;include signatures. Tor Exit Lists are produced by an &amp;ldquo;exit scanner&amp;rdquo;. We&#xA;&lt;a href=&#34;https://metrics.torproject.org/collector.html#exit-lists&#34;&gt;archive exit lists&lt;/a&gt;&#xA;and use them to provide data for&#xA;&lt;a href=&#34;https://metrics.torproject.org/exonerator.html&#34;&gt;ExoneraTor&lt;/a&gt; and&#xA;&lt;a href=&#34;https://metrics.torproject.org/onionoo.html&#34;&gt;Onionoo&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Functional Cryptography</title>
      <link>https://irl.xyz/blog/2019/2019w147/</link>
      <pubDate>Sun, 07 Apr 2019 17:07:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w147/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pretty good at buying books and not finding the time to read them. I did&#xA;manage to finish &lt;a href=&#34;https://nostarch.com/mangacrypto&#34;&gt;The Manga Guide to&#xA;Cryptography&lt;/a&gt; and have now started on&#xA;&lt;a href=&#34;http://shop.oreilly.com/product/0636920030584.do&#34;&gt;Introducing Elixir&lt;/a&gt;. In&#xA;order to make sure I&amp;rsquo;m understanding these topics, I&amp;rsquo;ve decided to implement&#xA;the algorithms I&amp;rsquo;ve read about in the former, using the programming language&#xA;I&amp;rsquo;m reading about in the latter.&lt;/p&gt;&#xA;&lt;p&gt;I was pleased to find that installing Elixir on Debian is really easy:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hard drive failure in my zpool 😞</title>
      <link>https://irl.xyz/blog/2019/2019w145.2/</link>
      <pubDate>Fri, 05 Apr 2019 20:13:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w145.2/</guid>
      <description>&lt;p&gt;I have a storage box in my house that stores important documents, backups, VM&#xA;disk images, photos, a copy of the &lt;a href=&#34;https://metrics.torproject.org/collector.html&#34;&gt;Tor Metrics&#xA;archive&lt;/a&gt; and other odd things.&#xA;I&amp;rsquo;ve put a lot of effort into making sure that it is both reliable and&#xA;performant. When I was working on a &lt;a href=&#34;https://irl.xyz/stuff/pubs/modern-collector-2018-12-19.pdf&#34;&gt;modern CollecTor for Tor&#xA;Metrics&lt;/a&gt; recently, I used this to&#xA;be able to run the entire history of the Tor network through the prototype&#xA;replacement to see if I could catch any bugs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IETF 104 in Prague</title>
      <link>https://irl.xyz/blog/2019/2019w145/</link>
      <pubDate>Fri, 05 Apr 2019 14:48:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w145/</guid>
      <description>&lt;p&gt;Thanks to support from &lt;a href=&#34;https://www.article19.org/&#34;&gt;Article 19&lt;/a&gt;, I was able to&#xA;attend &lt;a href=&#34;https://www.ietf.org/how/meetings/104/&#34;&gt;IETF 104&lt;/a&gt; in &lt;a href=&#34;https://www.openstreetmap.org/relation/435541&#34;&gt;Prague, Czech&#xA;Republic&lt;/a&gt; this week. Primarily&#xA;this was to present &lt;a href=&#34;https://tools.ietf.org/html/draft-learmonth-pearg-safe-internet-measurement-01&#34;&gt;my Internet&#xA;Draft&lt;/a&gt;&#xA;which takes safe measurement principles from &lt;a href=&#34;https://metrics.torproject.org/&#34;&gt;Tor&#xA;Metrics&lt;/a&gt; work and the &lt;a href=&#34;https://research.torproject.org/safetyboard.html&#34;&gt;Research Safety&#xA;Board&lt;/a&gt; and applies them to&#xA;Internet Measurement in general.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://irl.xyz/content/images/2019/ietf104-badge.png&#34;&#xA;    alt=&#34;My IETF badge, complete with additional tag for my nick&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;p&gt;My IETF badge, complete with additional tag for my nick&lt;/p&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;I attended with a free one-day pass for the IETF and free hackathon&#xA;registration, so more than just the draft presentation happened. During&#xA;the hackathon I sat at the &lt;a href=&#34;https://irtf.org/maprg&#34;&gt;MAPRG&lt;/a&gt; table and worked on &lt;a href=&#34;https://pathspider.net/&#34;&gt;PATHspider&lt;/a&gt;&#xA;with Mirja Kühlewind from ETH Zurich. We have the code running again&#xA;with the latest libraries available in Debian testing and this may&#xA;become the basis of a future Tor exit scanner (for generating exit lists,&#xA;and possibly also some bad exit detection). We ran a quick measurement&#xA;campaign that was &lt;a href=&#34;https://github.com/IETF-Hackathon/ietf104-project-presentations/blob/master/2019-03-24-ietf104-hackathon-map.pdf&#34;&gt;reported&lt;/a&gt; in the hackathon presentations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Privacy-preserving monitoring of an anonymity network (FOSDEM 2019)</title>
      <link>https://irl.xyz/blog/2019/2019w064/</link>
      <pubDate>Thu, 07 Feb 2019 14:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w064/</guid>
      <description>&lt;p&gt;This is a transcript of &lt;a href=&#34;https://fosdem.org/2019/schedule/event/monitoring_anon/&#34;&gt;a talk I gave at FOSDEM&#xA;2019&lt;/a&gt; in the&#xA;Monitoring and Observability devroom about the work of &lt;a href=&#34;https://metrics.torproject.org/&#34;&gt;Tor&#xA;Metrics&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Direct links:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://irl.xyz/content/talks/2019/2019-02-fosdem.pdf&#34;&gt;Slides&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://video.fosdem.org/2019/UB2.252A/monitoring_anon.webm&#34;&gt;Video recording (WebM/VP9)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://video.fosdem.org/2019/UB2.252A/monitoring_anon.mp4&#34;&gt;Video recording (mp4)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Producing this transcript was more work than I had anticipated it would be, and&#xA;I&amp;rsquo;ve done this in my free time, so if you find it useful then please do let me&#xA;know otherwise I probably won&amp;rsquo;t be doing this again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cryptonoise: January 2019</title>
      <link>https://irl.xyz/blog/2019/2019w041/</link>
      <pubDate>Tue, 05 Feb 2019 16:30:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w041/</guid>
      <description>&lt;p&gt;On Thursday 17th January, we held the &lt;a href=&#34;http://lists.57north.co/pipermail/57north-discuss/2019-January/003070.html&#34;&gt;first Cryptonoise event of 2019&lt;/a&gt;. We had a&#xA;good turn out and kicked off the discussion with a quick browse through&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_data_breaches&#34;&gt;Wikipedia&amp;rsquo;s list of data breaches&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Our first topic of discussion was relating to how we all used passwords and&#xA;how password reuse can very quickly become problematic if it happens that your&#xA;password is leaked.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Over time, the probability that any entity holding a large store of sensitive&#xA;private data will remain both competent enough to protect it adequately and honest&#xA;enough to want to goes to zero. &amp;ndash;&lt;a href=&#34;https://twitter.com/mattblaze/status/1076178655917809664&#34;&gt;@mattblaze&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Solution for Authoritative DNS</title>
      <link>https://irl.xyz/blog/2019/2019w033/</link>
      <pubDate>Wed, 16 Jan 2019 16:30:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2019/2019w033/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been thinking about improving my DNS setup. So many things will use e-mail&#xA;verification as a backup authentication measure that it is starting to show as&#xA;a real weak point. An &lt;a href=&#34;https://arstechnica.com/information-technology/2019/01/a-dns-hijacking-wave-is-targeting-companies-at-an-almost-unprecedented-scale/&#34;&gt;Ars Technica&#xA;article&lt;/a&gt;&#xA;earlier this year talked about how &amp;ldquo;[f]ederal authorities and private&#xA;researchers are alerting companies to a wave of domain hijacking attacks that&#xA;use relatively novel techniques to compromise targets at an almost&#xA;unprecedented scale.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;The two attacks that are mentioned in that article, changing the nameserver and&#xA;changing records, are something that &lt;a href=&#34;https://www.dnssec.net/&#34;&gt;DNSSEC&lt;/a&gt; could&#xA;protect against. Records wouldn&amp;rsquo;t have to be changed on my chosen nameservers, a&#xA;&lt;a href=&#34;https://www.bishopfox.com/blog/2015/08/an-overview-of-bgp-hijacking/&#34;&gt;BGP-hijacking&lt;/a&gt;&#xA;could just give another server the queries for records on my domain instead and&#xA;then reply with whatever it chooses.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenBSD with GPS synchronised NTP</title>
      <link>https://irl.xyz/blog/2018/2018w437/</link>
      <pubDate>Sun, 28 Oct 2018 17:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w437/</guid>
      <description>&lt;p&gt;I &lt;a href=&#34;https://irl.xyz/blog/2018/2018w431/&#34;&gt;wrote on Monday&lt;/a&gt; about how I&amp;rsquo;ve swapped my home router&#xA;for an OpenBSD box. One of the fun things I&amp;rsquo;ve done with this box is configure&#xA;it as a network time server using &lt;a href=&#34;https://man.openbsd.org/ntpd.8&#34;&gt;ntpd(8)&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Synchronising time with servers on the Internet isn&amp;rsquo;t that exciting, but I&amp;rsquo;ve&#xA;had a USB GPS dongle sitting doing nothing for a while. I originally purchased&#xA;it to use with amateur radio projects but I haven&amp;rsquo;t done much radio recently.&#xA;It looks like you can pick these up &lt;a href=&#34;https://www.ebay.co.uk/itm/192584020277&#34;&gt;on&#xA;eBay&lt;/a&gt; for around £11.00 and the newer&#xA;ones also support GLONASS (mine only does GPS as far as I can tell).&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenBSD with PlusNet VDSL</title>
      <link>https://irl.xyz/blog/2018/2018w431/</link>
      <pubDate>Mon, 22 Oct 2018 21:30:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w431/</guid>
      <description>&lt;p&gt;For a long time we&amp;rsquo;ve had a &lt;a href=&#34;https://www.cisco.com/c/en/us/support/routers/887va-integrated-services-router-isr/model.html&#34;&gt;Cisco 887VA&lt;/a&gt;&#xA;acting as our VDSL modem and gateway. We got this for the old flat when we&#xA;moved in there in 2016 and took it with us to where we live now. It&amp;rsquo;s been&#xA;quite reliable but the Ethernet interfaces are only 10/100Mbps and there are&#xA;some limitations to the software where either features are hidden behind&#xA;additional licenses or they are missing altogether. The software was last&#xA;updated in 2016 and there&amp;rsquo;s no easy way to get hold of later firmware.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MB7VX Shutdown</title>
      <link>https://irl.xyz/blog/2018/2018w346/</link>
      <pubDate>Sat, 25 Aug 2018 14:20:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w346/</guid>
      <description>&lt;p&gt;The APRS digipeater&#xA;&lt;a href=&#34;https://wiki.57north.org.uk/index.php/Projects:MB7VX&#34;&gt;MB7VX&lt;/a&gt; has been offline&#xA;for quite a while now. I&amp;rsquo;m not going to bring it back any time soon and I have&#xA;applied for a second NoV to release the frequency and callsign.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://irl.xyz/content/images/2018/MB7VX-radio-tait.jpg&#34;&#xA;    alt=&#34;The original MB7VX setup using a donated Tait 2 meter radio and a 13.8 volt power supply from the local club junk sale&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;p&gt;The original MB7VX setup using a donated Tait 2 meter radio and a 13.8 volt power supply from the local club junk sale&lt;/p&gt;</description>
    </item>
    <item>
      <title>Body Scanners at BUD</title>
      <link>https://irl.xyz/blog/2018/2018w345/</link>
      <pubDate>Fri, 24 Aug 2018 11:10:00 +0200</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w345/</guid>
      <description>&lt;hr&gt;&#xA;&lt;p&gt;&lt;em&gt;Note: I wrote this post in the departures lounge at BUD, but it was not posted&#xA;online until the 25th when I was back home.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I&amp;rsquo;m really not liking air travel. It makes me ridiculously uncomfortable.&#xA;Really only one part of it though: security.&lt;/p&gt;&#xA;&lt;p&gt;Since the introduction of the body scanners in airports, as I have something of&#xA;an understanding of how they operate, going through security is a pretty&#xA;terrifying prospect for me. I think that over time it&amp;rsquo;s got worse too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2018W33)</title>
      <link>https://irl.xyz/blog/2018/2018w33/</link>
      <pubDate>Sat, 18 Aug 2018 13:30:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w33/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m writing this weekly report early this week as I won&amp;rsquo;t be around tomorrow to&#xA;post it. I will be mostly offline next week as I will be at &lt;a href=&#34;http://conferences.sigcomm.org/sigcomm/2018/&#34;&gt;ACM SIGCOMM&#xA;2018&lt;/a&gt; in Budapest, Hungary.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s what I&amp;rsquo;ve been up to:&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;p&gt;Lots of Onionoo and Debian packaging this week.&lt;/p&gt;&#xA;&lt;h3 id=&#34;onionoo-graph-history-documents&#34;&gt;Onionoo Graph History Documents&lt;/h3&gt;&#xA;&lt;p&gt;On Monday, we&#xA;&lt;a href=&#34;https://lists.torproject.org/pipermail/tor-dev/2018-August/013390.html&#34;&gt;released&lt;/a&gt;&#xA;Onionoo 1.16.1 and deployed this to the official Onionoo instances. This fixed&#xA;the issue with the serialization of Graph History documents that was breaking&#xA;history graphs on Relay Search.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2018W32)</title>
      <link>https://irl.xyz/blog/2018/2018w32/</link>
      <pubDate>Sun, 12 Aug 2018 18:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w32/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s what I&amp;rsquo;ve been up to:&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;p&gt;Lots of Relay Search and Onionoo this week.&lt;/p&gt;&#xA;&lt;h3 id=&#34;relay-search&#34;&gt;Relay Search&lt;/h3&gt;&#xA;&lt;p&gt;Fixes to the &lt;a href=&#34;https://metrics.torproject.org/rs.html#map&#34;&gt;aggregated map&lt;/a&gt; and&#xA;&lt;a href=&#34;https://metrics.torproject.org/rs.html#toprelays&#34;&gt;top relays&lt;/a&gt; views were made&#xA;to complete changes that had happened elsewhere in the codebase but not been&#xA;kept in sync here. Unfortunately there is a little too much logic in Relay&#xA;Search that really should be handled by the backend which has lead to code&#xA;duplication in places.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Netlify Mixed Content Warnings</title>
      <link>https://irl.xyz/blog/2018/2018w327/</link>
      <pubDate>Sun, 12 Aug 2018 17:40:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w327/</guid>
      <description>&lt;p&gt;Looking at my blog today, I noticed that Netlify now warns you if you link to&#xA;non-HTTPS URLs in your site:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;2:37:56 PM: Starting post processing&#xA;2:37:56 PM: Mixed content detected in: /blog/index.html&#xA;2:37:56 PM: --&amp;gt; insecure link urls:&#xA;2:37:56 PM:   - http://w6d6vblb6vhuqxt6.onion/blog/&#xA;2:37:56 PM:   - http://tvin5bvfwew3ldttg5t6ynlif4t53y3mbmb7sgbyud7h5q6gblrpsnyd.onion/blog/&#xA;2:37:56 PM:   - http://creativecommons.org/licenses/by-nd/4.0/&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is really handy in catching those URLs you&amp;rsquo;ve forgotten to make into HTTPS&#xA;URLs, but Tor Project exempts .onion hostnames from mixed content warnings (see&#xA;&lt;a href=&#34;https://bugs.torproject.org/23439&#34;&gt;Tor ticket #23439&lt;/a&gt;) and this is even&#xA;applied upstream by Mozilla in Firefox (see &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=1382359&#34;&gt;Mozilla ticket&#xA;#1382359&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2018W31)</title>
      <link>https://irl.xyz/blog/2018/2018w31/</link>
      <pubDate>Sun, 05 Aug 2018 18:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w31/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s what I&amp;rsquo;ve been up to:&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;p&gt;This week has been more reviews than writing code.&lt;/p&gt;&#xA;&lt;h3 id=&#34;onionoo-history-periods-change&#34;&gt;Onionoo history periods change&lt;/h3&gt;&#xA;&lt;p&gt;To simplify the Onionoo codebase and remove redundant data from the documents,&#xA;the 3-month graphs will now become 6-month graphs and the 1-month graphs will&#xA;be dropped. I have been reviewing changes for this in Onionoo and ensuring that&#xA;Relay Search is prepared for the changes.&lt;/p&gt;&#xA;&lt;h3 id=&#34;tor-metrics-news-via-twitter&#34;&gt;Tor Metrics News via Twitter&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been exploring syndicating the &lt;a href=&#34;https://metrics.torproject.org/news.html&#34;&gt;Tor Metrics news&#xA;feed&lt;/a&gt; via Twitter using&#xA;&lt;a href=&#34;https://github.com/huginn/huginn&#34;&gt;Huginn&lt;/a&gt;. It&amp;rsquo;s not ready for use yet but it&amp;rsquo;s&#xA;not far off either.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2018W30)</title>
      <link>https://irl.xyz/blog/2018/2018w30/</link>
      <pubDate>Sun, 29 Jul 2018 18:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w30/</guid>
      <description>&lt;p&gt;Last week was my fourth week working full time in the &lt;a href=&#34;https://metrics.torproject.org/&#34;&gt;Metrics&#xA;team&lt;/a&gt; at &lt;a href=&#34;https://www.torproject.org/&#34;&gt;Tor&#xA;Project&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s what I&amp;rsquo;ve been up to:&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;p&gt;This week has been more reviews than writing code.&lt;/p&gt;&#xA;&lt;h3 id=&#34;ooni-vanilla-tor-data&#34;&gt;OONI Vanilla Tor Data&lt;/h3&gt;&#xA;&lt;p&gt;The plan for implementation of this has now been solidified following&#xA;discussion at the Metrics team meeting.&lt;/p&gt;&#xA;&lt;h3 id=&#34;vanguards-packaging-for-debian&#34;&gt;vanguards Packaging for Debian&lt;/h3&gt;&#xA;&lt;p&gt;I have begun working on packaging&#xA;&lt;a href=&#34;https://github.com/mikeperry-tor/vanguards&#34;&gt;vanguards&lt;/a&gt; for Debian, including&#xA;looking at issues in its dependencies in Debian.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2018W29)</title>
      <link>https://irl.xyz/blog/2018/2018w29/</link>
      <pubDate>Sun, 22 Jul 2018 18:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w29/</guid>
      <description>&lt;p&gt;Last week was my third week working full time in the &lt;a href=&#34;https://metrics.torproject.org/&#34;&gt;Metrics&#xA;team&lt;/a&gt; at &lt;a href=&#34;https://www.torproject.org/&#34;&gt;Tor&#xA;Project&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s what I&amp;rsquo;ve been up to:&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;h3 id=&#34;metrics-bot-javadoc&#34;&gt;metrics-bot JavaDoc&lt;/h3&gt;&#xA;&lt;p&gt;In order to ensure metrics-bot remains maintainable, I have now increased the&#xA;JavaDoc coverage for metrics-bot to 100% of the non-trivial public interfaces.&lt;/p&gt;&#xA;&lt;h3 id=&#34;onionoo-release&#34;&gt;Onionoo Release&lt;/h3&gt;&#xA;&lt;p&gt;On Monday 16th, the Metrics Team &lt;a href=&#34;https://lists.torproject.org/pipermail/tor-dev/2018-July/013324.html&#34;&gt;released Onionoo&#xA;1.15.0&lt;/a&gt;&#xA;which implements Onionoo protocol version 6.1 (a minor bump from the previous&#xA;release).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2018W28)</title>
      <link>https://irl.xyz/blog/2018/2018w28/</link>
      <pubDate>Sun, 15 Jul 2018 18:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w28/</guid>
      <description>&lt;p&gt;Last week was my second week working full time in the &lt;a href=&#34;https://metrics.torproject.org/&#34;&gt;Metrics&#xA;team&lt;/a&gt; at &lt;a href=&#34;https://www.torproject.org/&#34;&gt;Tor&#xA;Project&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s what I&amp;rsquo;ve been up to:&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;h3 id=&#34;relay-search-fixes&#34;&gt;Relay Search Fixes&lt;/h3&gt;&#xA;&lt;p&gt;A few fixes for &lt;a href=&#34;https://metrics.torproject.org/rs.html&#34;&gt;Relay Search&lt;/a&gt;. These&#xA;were all small fixes but hopefully should also be quite high impact for&#xA;usability.&lt;/p&gt;&#xA;&lt;h3 id=&#34;onionoo-enhancements&#34;&gt;Onionoo Enhancements&lt;/h3&gt;&#xA;&lt;p&gt;The improvements to Onionoo&amp;rsquo;s reverse DNS resolver have &lt;a href=&#34;https://gitweb.torproject.org/onionoo.git/commit/?id=48e5ff84d067254339d2e303547a48cc7ef00183&#34;&gt;now been&#xA;finalised&lt;/a&gt;&#xA;and merged. The plan is that this will be deployed next week.&lt;/p&gt;&#xA;&lt;p&gt;I have &lt;a href=&#34;https://gitweb.torproject.org/onionoo.git/commit/?id=e95b88f0c344546df2e23262e13e3714040c36ad&#34;&gt;added&#xA;support&lt;/a&gt;&#xA;to Onionoo to filter relays by operating system. This was the &lt;a href=&#34;https://bugs.torproject.org/6946&#34;&gt;oldest open&#xA;Onionoo ticket&lt;/a&gt; until it was fixed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Overblocking</title>
      <link>https://irl.xyz/blog/2018/2018w281/</link>
      <pubDate>Mon, 09 Jul 2018 17:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w281/</guid>
      <description>&lt;p&gt;Last week when I found myself with my Internet connection down, I tried to use&#xA;my &lt;a href=&#34;https://ee.co.uk/&#34;&gt;EE&lt;/a&gt; LTE connection to work instead. This plan fell apart&#xA;quite quickly when I discovered that &lt;code&gt;*.torproject.org&lt;/code&gt; was blocked as 18+&#xA;content.&lt;/p&gt;&#xA;&lt;p&gt;I found using the &lt;a href=&#34;https://www.openrightsgroup.org/&#34;&gt;Open Rights Group&lt;/a&gt;&amp;rsquo;s tool,&#xA;&lt;a href=&#34;https://www.blocked.org.uk/&#34;&gt;blocked.org.uk&lt;/a&gt;, that in fact a large number of&#xA;UK ISPs have these wildcard blocks in place. This tool also provides a means&#xA;to report misclassification and so I submitted requests to unblock the following&#xA;domains:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Summer School on Internet Path Transparency Measurements</title>
      <link>https://irl.xyz/blog/2018/2018w277/</link>
      <pubDate>Sun, 08 Jul 2018 14:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w277/</guid>
      <description>&lt;hr&gt;&#xA;&lt;p&gt;&lt;em&gt;This post was originally published &lt;a href=&#34;https://mami-project.eu/index.php/2018/07/08/summer-school-on-internet-path-transparency-measurements/&#34;&gt;at the MAMI Project&#xA;blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;On June the 11th the &lt;a href=&#34;https://erg.abdn.ac.uk/&#34;&gt;Electronics Research Group&lt;/a&gt;&#xA;hosted the MAMI Summer School on Internet Path Transparency Measurements in&#xA;Aberdeen, Scotland.  This consisted of a few hands-on workshops, with&#xA;participation both on-site and remote via video conference.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://irl.xyz/content/images/2018/mami-summer-school.jpg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;The summer school started with Korian and Justin demonstrating&#xA;&lt;a href=&#34;https://github.com/mami-project/tracebox&#34;&gt;Tracebox&lt;/a&gt; through a variety of&#xA;topologies. The participants then worked on their own trying to uncover&#xA;middleboxes and hidden topologies using a variety of tools, including tracebox&#xA;and paris-traceroute.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2018W27)</title>
      <link>https://irl.xyz/blog/2018/2018w27/</link>
      <pubDate>Sat, 07 Jul 2018 13:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w27/</guid>
      <description>&lt;p&gt;Last week was my first week working full time in the &lt;a href=&#34;https://metrics.torproject.org/&#34;&gt;Metrics&#xA;team&lt;/a&gt; at &lt;a href=&#34;https://www.torproject.org/&#34;&gt;Tor&#xA;Project&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;On Tuesday, my Internet connection was interrupted for the entire workday&#xA;which did make it a little more difficult to work. I was able to use my 4G&#xA;connection but, unfortunately, access to the &lt;a href=&#34;https://trac.torproject.org/&#34;&gt;Tor bug&#xA;tracker&lt;/a&gt; and&#xA;&lt;a href=&#34;https://collector.torproject.org/&#34;&gt;all&lt;/a&gt;&#xA;&lt;a href=&#34;https://collector2.torproject.org/&#34;&gt;of&lt;/a&gt; &lt;a href=&#34;https://onionoo.torproject.org/&#34;&gt;the&lt;/a&gt;&#xA;&lt;a href=&#34;https://metrics.torproject.org/&#34;&gt;Metrics&lt;/a&gt; websites were blocked requiring me&#xA;to verify I was over the age of 18 to access. Tor Browser was quite happy to go&#xA;around the censorship so it was not impossible to work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Virtual Machine Host</title>
      <link>https://irl.xyz/blog/2018/2018w091/</link>
      <pubDate>Mon, 26 Feb 2018 18:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2018/2018w091/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s very easy to set up libvirt with QEMU/KVM on a Linux box and have it work&#xA;for a while. It&amp;rsquo;s more difficult to have a system set up that&amp;rsquo;s going to be&#xA;somewhat robust and maintainable over a longer period of time.&lt;/p&gt;&#xA;&lt;p&gt;I am using a dedicated server from &lt;a href=&#34;https://www.hetzner.com/&#34;&gt;Hetzner&lt;/a&gt;. I have&#xA;not personally had any serious problems with Hetzner, and price is the main&#xA;reason that I&amp;rsquo;ve chosen them over other providers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mastodon &#43; XMPP &#43; SIP</title>
      <link>https://irl.xyz/blog/2017/2017w452/</link>
      <pubDate>Tue, 07 Nov 2017 15:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w452/</guid>
      <description>&lt;p&gt;This is an idea. I haven&amp;rsquo;t looked at actually doing it yet, but I might.&lt;/p&gt;&#xA;&lt;p&gt;Mastodon needs complimentary instant messaging and I&amp;rsquo;ve been thinking about how&#xA;this might be achieved. XMPP and SIP are great federated protocols and it&amp;rsquo;s&#xA;possible to use the same domain used for Mastodon for these through SRV&#xA;records.&lt;/p&gt;&#xA;&lt;p&gt;Authentication for XMPP and SIP is based on passwords. Mastodon could be&#xA;extended to write out password hashes to a database to have one password for&#xA;each service per device. You could then have those servers query the database&#xA;and check password hashes. I&amp;rsquo;m not sure what the security properties of this&#xA;would be compared to OAuth, but I think it&amp;rsquo;s similar just without the in-band&#xA;setup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Talking to Hackers</title>
      <link>https://irl.xyz/blog/2017/2017w451/</link>
      <pubDate>Mon, 06 Nov 2017 23:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w451/</guid>
      <description>&lt;p&gt;Yesterday Ana finished setting up FreePBX for our house, and revived the Cisco&#xA;SIP phones to make them useful again. &lt;a href=&#34;https://eventphone.de/&#34;&gt;Eventphone&lt;/a&gt;&#xA;provides SIP, DECT, GSM and other telephony technologies at hacker events like&#xA;&lt;a href=&#34;https://events.ccc.de/2017/09/19/34c3-call-for-participation-and-submission-guidelines/&#34;&gt;CCC&lt;/a&gt;&#xA;and also runs a long-running SIP service, known as&#xA;&lt;a href=&#34;https://eventphone.de/wiki/index.php/EPVPN&#34;&gt;EPVPN&lt;/a&gt; to connect hackerspaces and&#xA;hackers between events.&lt;/p&gt;&#xA;&lt;p&gt;We set up our extension as a trunk in FreePBX and could easily test outbound&#xA;calls, but it was a little more difficult to test inbound calls. There was no&#xA;system to queue up a test call (at least that I could find) so we needed to&#xA;find someone to call back manually.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2017W44)</title>
      <link>https://irl.xyz/blog/2017/2017w44/</link>
      <pubDate>Fri, 03 Nov 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w44/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s my weekly report for week 44 of 2017. This has been a quiet week.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;p&gt;In this week I have looked at&#xA;&lt;a href=&#34;https://people.torproject.org/~irl/metrics-bot/&#34;&gt;metrics-bot&lt;/a&gt; being compliant&#xA;with the Tor metrics team&amp;rsquo;s &lt;a href=&#34;https://trac.torproject.org/projects/tor/wiki/org/teams/MetricsTeam/MetricsJavaStyleGuide&#34;&gt;Java style&#xA;guide&lt;/a&gt;&#xA;(&lt;a href=&#34;https://bugs.torproject.org/24080&#34;&gt;#24080&lt;/a&gt;&#xA;) and integrating it into a unified package naming&#xA;scheme (&lt;a href=&#34;https://bugs.torproject.org/24036&#34;&gt;#24036&lt;/a&gt;&#xA;).&lt;/p&gt;&#xA;&lt;p&gt;There has been a lot of refactoring in metrics-bot this week as components are&#xA;starting to mature. I have started work on using&#xA;&lt;a href=&#34;https://gitweb.torproject.org/metrics-base.git/tree/&#34;&gt;metrics-base&lt;/a&gt;, the&#xA;metrics team directory structure for Java projects and also formatting, but&#xA;this still needs more work before it is completed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2017W43)</title>
      <link>https://irl.xyz/blog/2017/2017w43/</link>
      <pubDate>Sun, 29 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w43/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s my weekly report for week 43 of 2017. This has been a quiet week.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;p&gt;In this week &lt;a href=&#34;https://people.torproject.org/~irl/metrics-bot/&#34;&gt;metrics-bot&lt;/a&gt; has&#xA;had some issues where Onionoo was disappearing (&lt;a href=&#34;https://bugs.torproject.org/23928&#34;&gt;#23928&lt;/a&gt;&#xA;). I&#xA;have been building in better error handling for requests to external services.&#xA;I&amp;rsquo;ve also started to investigate other templates for status updates that might&#xA;be useful (&lt;a href=&#34;https://bugs.torproject.org/23937&#34;&gt;#23937&lt;/a&gt;&#xA;), and have added a configuration framework&#xA;to allow for credentials for services to be externally provided (&lt;a href=&#34;https://bugs.torproject.org/23933&#34;&gt;#23933&lt;/a&gt;&#xA;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mastodon</title>
      <link>https://irl.xyz/blog/2017/2017w434/</link>
      <pubDate>Thu, 26 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w434/</guid>
      <description>&lt;p&gt;I &lt;a href=&#34;https://mastodon.technology/@irl&#34;&gt;joined&lt;/a&gt;&#xA;&lt;a href=&#34;https://joinmastodon.org/&#34;&gt;Mastodon&lt;/a&gt; today. So did&#xA;&lt;a href=&#34;https://people.torproject.org/~irl/metrics-bot/&#34;&gt;metrics-bot&lt;/a&gt; who is now&#xA;&lt;a href=&#34;https://botsin.space/@metricsbot&#34;&gt;simultooting&lt;/a&gt; to the&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Fediverse&#34;&gt;fediverse&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://irl.xyz/content/images/2017/10/metrics-bot-mastodon.jpg&#34;&#xA;    alt=&#34;metrics-bot on Mastodon&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;p&gt;metrics-bot on Mastodon&lt;/p&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Annoyingly, the API for Mastodon is different enough from the API for Twitter&#xA;that I&amp;rsquo;ve needed to use a new library in metrics-bot. I&amp;rsquo;m using the&#xA;&lt;a href=&#34;https://github.com/sys1yagi/mastodon4j&#34;&gt;mastodon4j&lt;/a&gt; library for now, but I&amp;rsquo;m&#xA;really using so little of the API I do wonder if it would be easier to just&#xA;reimplement the parts that are needed and drop the rest. The only part I&amp;rsquo;m&#xA;really worried about is the &lt;a href=&#34;https://oauth.net/&#34;&gt;OAuth&lt;/a&gt; authentication and I&amp;rsquo;m&#xA;sure that won&amp;rsquo;t be anywhere near as bad as I think it will be.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Behringer Xenyx 302USB</title>
      <link>https://irl.xyz/blog/2017/2017w433/</link>
      <pubDate>Wed, 25 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w433/</guid>
      <description>&lt;p&gt;I have decided to invest in a USB audio interface. My primary motivation for&#xA;this is that I might like to produce some screencasts in the near future. My&#xA;secondary motivation was being able to have a headphone socket on my desk to&#xA;give me more freedom of movement than I would have plugged into the front of&#xA;the workstation under my desk.&lt;/p&gt;&#xA;&lt;p&gt;I went with a &lt;a href=&#34;https://www.amazon.co.uk/dp/B005EHILV4&#34;&gt;Behringer Xenyx 302USB&lt;/a&gt;&#xA;and I&amp;rsquo;ve been quite happy with it so far.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Security by Obscurity</title>
      <link>https://irl.xyz/blog/2017/2017w432/</link>
      <pubDate>Tue, 24 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w432/</guid>
      <description>&lt;p&gt;Today &lt;a href=&#34;https://danielmiessler.com/study/security-by-obscurity/&#34;&gt;this blog post&lt;/a&gt;&#xA;turned up on &lt;a href=&#34;https://news.ycombinator.com/&#34;&gt;Hacker News&lt;/a&gt;, titled &amp;ldquo;Obscurity is&#xA;a Valid Security Layer&amp;rdquo;. It makes some excellent points on the distinction&#xA;between good and bad obscurity and it gives an example of good obscurity with&#xA;SSH.&lt;/p&gt;&#xA;&lt;p&gt;From the post:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I configured my SSH daemon to listen on port 24 in addition to its regular&#xA;port of 22 so I could see the difference in attempts to connect to each (the&#xA;connections are usually password guessing attempts). My expected result is&#xA;far fewer attempts to access SSH on port 24 than port 22, which I equate to&#xA;less risk to my, or any, SSH daemon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bugs in websites</title>
      <link>https://irl.xyz/blog/2017/2017w431/</link>
      <pubDate>Mon, 23 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w431/</guid>
      <description>&lt;p&gt;Reporting a bug in free software is easy. It turns out that everything I&#xA;thought I knew about bug reporting was turned on its head when I tried to&#xA;report a bug in the &lt;a href=&#34;https://www.tesco.com/groceries/&#34;&gt;Tesco groceries&lt;/a&gt;&#xA;website.&lt;/p&gt;&#xA;&lt;p&gt;I was finding some sort of JavaScript problems in that my CPU was held at 100%&#xA;and the page wasn&amp;rsquo;t really usable.&lt;/p&gt;&#xA;&lt;p&gt;As with bug reports, I was expecting to at least have some technical&#xA;information logged along with my email address so someone can contact me if&#xA;they want me to try some things out. What I actually got:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2017W42)</title>
      <link>https://irl.xyz/blog/2017/2017w42/</link>
      <pubDate>Sun, 22 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w42/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s my weekly report for week 42 of 2017. In this week I have &lt;a href=&#34;https://irl.xyz/blog/2017/2017w423/&#34;&gt;replaced my&#xA;spacebar&lt;/a&gt;, &lt;a href=&#34;https://irl.xyz/blog/2017/2017w424/&#34;&gt;failed to replace a&#xA;HDD&lt;/a&gt; and begun the process to &lt;a href=&#34;https://irl.xyz/blog/2017/2017w425/&#34;&gt;replace my&#xA;YubiKey&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;debian&#34;&gt;Debian&lt;/h2&gt;&#xA;&lt;p&gt;Eariler in the week I &lt;a href=&#34;https://irl.xyz/blog/2017/2017w422/&#34;&gt;blogged about&lt;/a&gt; &#xA;&lt;a href=&#34;https://packages.debian.org/source/sid/powerline-taskwarrior&#34;&gt;powerline-taskwarrior&lt;/a&gt;&#xA;&#xA;. There is a new upstream version available that&#xA;includes the patches I had produced for Python 2 support and I have filed &lt;a href=&#34;https://bugs.debian.org/879225&#34;&gt;#879225&lt;/a&gt;&#xA;&#xA;&#xA; to remind me to package this.&lt;/p&gt;&#xA;&lt;p&gt;The state of &#xA;&lt;a href=&#34;https://packages.debian.org/source/sid/emscripten&#34;&gt;emscripten&lt;/a&gt;&#xA;&#xA; is still not great, and as I don&amp;rsquo;t&#xA;have the time to chase this up and I certainly don&amp;rsquo;t have the time to fix it&#xA;myself, I&amp;rsquo;ve converted the &lt;a href=&#34;https://bugs.debian.org/821115&#34;&gt;ITP for csdr&lt;/a&gt; to an&#xA;RFP.&lt;/p&gt;</description>
    </item>
    <item>
      <title>map.debian.net</title>
      <link>https://irl.xyz/blog/2017/2017w427/</link>
      <pubDate>Sun, 22 Oct 2017 12:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w427/</guid>
      <description>&lt;p&gt;I operated map.debian.net to provide a map of Debian contributors and mirrors.&#xA;There were plans to add in Debian events/sprints but I just did not have the&#xA;time. The service broke one day, and I didn&amp;rsquo;t find the time to fix it.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve now uploaded the sources of this very simple application &lt;a href=&#34;https://github.com/irl/debian-map&#34;&gt;to&#xA;GitHub&lt;/a&gt; and perhaps someone else will pick&#xA;it up. Having given the code a go today, I&amp;rsquo;ve not managed to persuade it to&#xA;load any objects onto the map.&lt;/p&gt;</description>
    </item>
    <item>
      <title>metrics-bot</title>
      <link>https://irl.xyz/blog/2017/2017w426/</link>
      <pubDate>Sat, 21 Oct 2017 12:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w426/</guid>
      <description>&lt;p&gt;On Thursday &lt;a href=&#34;http://meetbot.debian.net/tor-meeting/2017/tor-meeting.2017-10-20-14.29.log.html#l-47&#34;&gt;during the metrics team&#xA;meeting&lt;/a&gt;&#xA;we decided to rename AtlasBot to metrics-bot to better fit the naming scheme of&#xA;the team&amp;rsquo;s other projects.&lt;/p&gt;&#xA;&lt;p&gt;It would appear that there has been interest in the bot and that it&amp;rsquo;s something&#xA;that people want.&lt;/p&gt;&#xA;&lt;p&gt;The JavaDoc has now &lt;a href=&#34;https://people.torproject.org/~irl/metrics-bot/&#34;&gt;moved to a new&#xA;location&lt;/a&gt;, a &lt;a href=&#34;https://gitweb.torproject.org/user/irl/metrics-bot.git/&#34;&gt;git&#xA;repository&lt;/a&gt; has been&#xA;created and there is a new &lt;a href=&#34;https://trac.torproject.org/projects/tor/query?status=!closed&amp;amp;component=Metrics%2FBot&#34;&gt;Trac&#xA;component&lt;/a&gt;&#xA;to organise the metrics-bot todo list.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve planning to be able to push the sources for metrics-bot to the git&#xA;repository early next week. I just need to do one more pass to make sure&#xA;there&amp;rsquo;s no Twitter credentials left in it, and then I&amp;rsquo;ll be able to close &lt;a href=&#34;https://bugs.torproject.org/23933&#34;&gt;#23933&lt;/a&gt;&#xA; too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Yubikey 4</title>
      <link>https://irl.xyz/blog/2017/2017w425/</link>
      <pubDate>Fri, 20 Oct 2017 12:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w425/</guid>
      <description>&lt;p&gt;Today my new Yubikey arrived, a &lt;a href=&#34;https://www.yubico.com/product/yubikey-4-series/&#34;&gt;Yubikey&#xA;4&lt;/a&gt;. There&amp;rsquo;s a whole load of&#xA;features packed into the YubiKey, but the only feature I really use is the&#xA;&lt;a href=&#34;https://developers.yubico.com/ykneo-openpgp/&#34;&gt;OpenPGP applet&lt;/a&gt; which emulates&#xA;an &lt;a href=&#34;https://en.wikipedia.org/wiki/OpenPGP_card&#34;&gt;OpenPGP smartcard&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is the only device that is trusted to see my private GnuPG keys at the&#xA;points where I use them. It helps to keep track of where my keys are, as they&#xA;can only be in a single place.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Replacing a hard drive</title>
      <link>https://irl.xyz/blog/2017/2017w424/</link>
      <pubDate>Thu, 19 Oct 2017 12:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w424/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve got a hard drive in a&#xA;&lt;a href=&#34;https://www.freebsd.org/cgi/man.cgi?zpool%288%29&#34;&gt;zpool&lt;/a&gt; that is starting to show&#xA;some SMART errors.  I&amp;rsquo;d really like to replace it, but unfortunately it&amp;rsquo;s in a&#xA;zpool that is configured to stripe and not mirror. I do not have enough SATA&#xA;ports or disks to convert it to stripe+mirror.&lt;/p&gt;&#xA;&lt;p&gt;Currently, it&amp;rsquo;s not possible to remove a drive from a striped zpool. You have&#xA;to destroy the pool and start again. This is really annoying.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Outer Spacebar</title>
      <link>https://irl.xyz/blog/2017/2017w423/</link>
      <pubDate>Wed, 18 Oct 2017 12:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w423/</guid>
      <description>&lt;p&gt;I use a mechicanical keyboard. This is more a matter of necessity than a matter&#xA;of preference as I was really starting to get pain in my fingers using the old&#xA;rubber dome keyboard. I absolutely cannot stand the keyboard on my MacBook Pro&#xA;but I usually am either using this with an external keyboard or only when&#xA;travelling, so this is bearable.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re going to have a mechanical keyboard, you have to have fun with it. My&#xA;keyboard has red/blue backlighting and I&amp;rsquo;ve replaced my function keys with&#xA;cats.&lt;/p&gt;</description>
    </item>
    <item>
      <title>powerline-taskwarrior</title>
      <link>https://irl.xyz/blog/2017/2017w422/</link>
      <pubDate>Tue, 17 Oct 2017 12:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w422/</guid>
      <description>&lt;p&gt;Basically all of my work time, both paid and volunteer, is organised by my&#xA;&lt;a href=&#34;http://taskwarrior.org/&#34;&gt;taskwarrior&lt;/a&gt; database.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes it can be hard to keep focus, and in times where you find yourself&#xA;forgetting what you were doing, a handy reminder can get you back on track&#xA;quickly.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re a &lt;a href=&#34;https://github.com/powerline/powerline&#34;&gt;powerline&lt;/a&gt; user then&#xA;here&amp;rsquo;s something to keep you on track:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt install python-powerline-taskwarrior python3-powerline-taskwarrior&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can configure powerline to then show you your context, active task or next&#xA;task with:&lt;/p&gt;</description>
    </item>
    <item>
      <title>No more no surprises</title>
      <link>https://irl.xyz/blog/2017/2017w421/</link>
      <pubDate>Mon, 16 Oct 2017 09:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w421/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.debian.org/&#34;&gt;Debian&lt;/a&gt; has generally always had, as a rule, &amp;ldquo;sane&#xA;defaults&amp;rdquo; and &amp;ldquo;no surprises&amp;rdquo;.  This was completely shattered for me when&#xA;&lt;a href=&#34;http://www.vim.org/&#34;&gt;Vim&lt;/a&gt; decided to hijack the mouse from my terminal and&#xA;break all copy/paste functionality. This has occured since the release of&#xA;Debian 9.&lt;/p&gt;&#xA;&lt;p&gt;I expect for my terminal to behave consistently, and this is broken every time&#xA;I log in to a Debian 9 system where I have not configured Vim to disable this&#xA;functionality. I also see I&amp;rsquo;m &lt;a href=&#34;https://www.preining.info/blog/2017/10/fixing-vim-in-debian/?utm_source=dlvr.it&amp;amp;utm_medium=twitter&#34;&gt;not&lt;/a&gt; &lt;a href=&#34;https://unix.stackexchange.com/questions/318824/vim-cutpaste-not-working-in-stretch-debian-9&#34;&gt;alone&lt;/a&gt; &lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839112&#34;&gt;in&lt;/a&gt; &lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074&#34;&gt;this&lt;/a&gt; &lt;a href=&#34;https://unix.stackexchange.com/questions/187695/how-to-disable-mouse-support-in-terminal&#34;&gt;frustration&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2017W41)</title>
      <link>https://irl.xyz/blog/2017/2017w41/</link>
      <pubDate>Sun, 15 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w41/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s my weekly report for week 41 of 2017. In this week I have explored some&#xA;&lt;a href=&#34;https://irl.xyz/blog/2017/2017w413/&#34;&gt;Java 8&lt;/a&gt;&#xA;&lt;a href=&#34;http://localhost:1313/blog/2017/2017w414/&#34;&gt;features&lt;/a&gt;, looked at &lt;a href=&#34;https://irl.xyz/blog/2017/2017w412/&#34;&gt;automatic&#xA;updates in a few Linux distributions&lt;/a&gt; and decided that&#xA;actually &lt;a href=&#34;https://irl.xyz/blog/2017/2017w415/&#34;&gt;I don&amp;rsquo;t need swap anymore&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;debian&#34;&gt;Debian&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;http://savannah.gnu.org/support/?109385&#34;&gt;issue that was preventing the&#xA;migration&lt;/a&gt; of the &lt;a href=&#34;https://qa.debian.org/developer.php?login=pkg-tasktools-discuss@lists.alioth.debian.org&#34;&gt;Tasktools Packaging&#xA;Team&lt;/a&gt;&amp;rsquo;s&#xA;mailing list &lt;a href=&#34;https://lists.alioth.debian.org/mailman/listinfo/pkg-tasktools-discuss&#34;&gt;from&#xA;Alioth&lt;/a&gt;&#xA;&lt;a href=&#34;https://lists.nongnu.org/mailman/listinfo/taskdeb-discuss&#34;&gt;to Savannah&lt;/a&gt; has&#xA;now been resolved.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://a.custura.eu/&#34;&gt;Ana&lt;/a&gt;&amp;rsquo;s &#xA;&lt;a href=&#34;https://packages.debian.org/source/sid/chkservice&#34;&gt;chkservice&lt;/a&gt;&#xA;&#xA; package that I&#xA;sponsored last week has been &lt;a href=&#34;https://tracker.debian.org/news/878064&#34;&gt;ACCEPTED&lt;/a&gt;&#xA;into unstable and since &lt;a href=&#34;https://tracker.debian.org/news/879426&#34;&gt;MIGRATED&lt;/a&gt; to&#xA;testing.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tor-project&#34;&gt;Tor Project&lt;/h2&gt;&#xA;&lt;p&gt;I have produced a patch for the Tor Project website to update links to the&#xA;Onionoo documentation now this has moved (&lt;a href=&#34;https://bugs.torproject.org/23802&#34;&gt;#23802&lt;/a&gt;&#xA;). I&amp;rsquo;ve&#xA;updated the &lt;a href=&#34;https://www.torproject.org/docs/tor-relay-debian.html.en&#34;&gt;Debian and Ubuntu relay configuration&#xA;instructions&lt;/a&gt; to use&#xA;&lt;code&gt;systemctl&lt;/code&gt; instead of &lt;code&gt;service&lt;/code&gt; where appropriate (&lt;a href=&#34;https://bugs.torproject.org/23048&#34;&gt;#23048&lt;/a&gt;&#xA;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shortcodes for my Weekly Reports</title>
      <link>https://irl.xyz/blog/2017/2017w417/</link>
      <pubDate>Sun, 15 Oct 2017 12:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w417/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been writing &lt;a href=&#34;https://irl.xyz/tags/weekly/&#34;&gt;weekly reports on my free software&#xA;activities&lt;/a&gt; for over a month now, so I&amp;rsquo;m looking at ways of&#xA;making these easier to write. Each review takes about an hour to write up, and&#xA;I&amp;rsquo;m spending enough time formatting links to packages and bug reports that I&amp;rsquo;ve&#xA;written some &lt;a href=&#34;https://gohugo.io/content-management/shortcodes/&#34;&gt;Hugo&#xA;shortcodes&lt;/a&gt; to help.&lt;/p&gt;&#xA;&lt;p&gt;For Debian:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ with ( .Get &amp;#34;bug&amp;#34; ) }}{{ range ( first 1 ( split . &amp;#34;,&amp;#34; ) ) }}&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://bugs.debian.org/{{ . }}&amp;#34;&lt;/span&gt;&amp;gt;#{{ . }}&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt;&amp;gt;{{ end }}{{ if ( ( gt ( len ( split . &amp;#34;,&amp;#34; ) )  1 ) ) }}{{ range ( after 1 ( split . &amp;#34;,&amp;#34; ) ) }}, &amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://bugs.debian.org/{{ . }}&amp;#34;&lt;/span&gt;&amp;gt;#{{ . }}&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt;&amp;gt;{{ end }}{{ end }}{{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ with ( .Get &amp;#34;src&amp;#34; ) }}{{ range ( first 1 ( split . &amp;#34;,&amp;#34; ) ) }}&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://packages.debian.org/source/sid/{{ . }}&amp;#34;&lt;/span&gt;&amp;gt;{{ . }}&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt;&amp;gt;{{ end }}{{ if ( ( gt ( len ( split . &amp;#34;,&amp;#34; ) )  1 ) ) }}{{ range ( after 1 ( split . &amp;#34;,&amp;#34; )) }}, &amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://packages.debian.org/source/sid/{{ . }}&amp;#34;&lt;/span&gt;&amp;gt;{{ . }}&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt;&amp;gt;{{ end }}{{ end }}{{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ with ( .Get &amp;#34;pkg&amp;#34; ) }}{{ range ( first 1 ( split . &amp;#34;,&amp;#34; ) ) }}&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://packages.debian.org/sid/{{ . }}&amp;#34;&lt;/span&gt;&amp;gt;{{ . }}&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt;&amp;gt;{{ end }}{{ if ( ( gt ( len ( split . &amp;#34;,&amp;#34; ) )  1 ) ) }}{{ range ( after 1 ( split . &amp;#34;,&amp;#34; )) }}, &amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://packages.debian.org/sid/{{ . }}&amp;#34;&lt;/span&gt;&amp;gt;{{ . }}&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt;&amp;gt;{{ end }}{{ end }}{{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For Tor Project:&lt;/p&gt;</description>
    </item>
    <item>
      <title>vimdiff</title>
      <link>https://irl.xyz/blog/2017/2017w416/</link>
      <pubDate>Sat, 14 Oct 2017 08:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w416/</guid>
      <description>&lt;p&gt;Yesterday I was looking at merging review edits in a LaTeX document. I decided&#xA;that I would use &lt;code&gt;vimdiff&lt;/code&gt;, which meant learning the keybindings (again, for&#xA;maybe the fifth or sixth time).&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s pretty easy to use &lt;code&gt;vimdiff&lt;/code&gt; once you get the hang of it. Open two files&#xA;like:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vimdiff file1.tex file2.tex&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You navigate between the two windows just like any other split in vim: Ctrl-w followed by h or l (to move left or right). Then you can navigate the documents and merge things:&lt;/p&gt;</description>
    </item>
    <item>
      <title>swapoff</title>
      <link>https://irl.xyz/blog/2017/2017w415/</link>
      <pubDate>Fri, 13 Oct 2017 09:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w415/</guid>
      <description>&lt;p&gt;When working with datasets from &lt;a href=&#34;https://pathspider.net/&#34;&gt;PATHspider&lt;/a&gt; it&amp;rsquo;s very&#xA;easy to max out your memory. When running an analysis recently, I found my&#xA;computer locking up and generally being unresponsive. This new machine should&#xA;be able to cope so this was odd, and then I realised that I was running two&#xA;jupyter notebooks and the other had previously loaded all the data into memory,&#xA;so this second one pushed me into swap. 6GB of memory got swapped and then the&#xA;machine was near useless almost instantly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>List Comprehension</title>
      <link>https://irl.xyz/blog/2017/2017w414/</link>
      <pubDate>Thu, 12 Oct 2017 09:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w414/</guid>
      <description>&lt;p&gt;Still in the process or tidying up the bot behind the&#xA;&lt;a href=&#34;https://twitter.com/TorAtlas&#34;&gt;@TorAtlas&lt;/a&gt; Twitter account, which means I&amp;rsquo;m still&#xA;writing&#xA;&lt;a href=&#34;http://www.oracle.com/technetwork/java/javase/overview/java8-2100321.html&#34;&gt;Java&lt;/a&gt;.&#xA;I&amp;rsquo;ve now been exploring &amp;ldquo;&lt;a href=&#34;https://en.wikipedia.org/wiki/List_comprehension&#34;&gt;list&#xA;comprehension&lt;/a&gt;&amp;quot;-like&#xA;techniques using another new Java 8 feature,&#xA;&lt;a href=&#34;https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html&#34;&gt;Streams&lt;/a&gt;.&#xA;Essentially this involves creating lists from lists in an elegant way.&lt;/p&gt;&#xA;&lt;p&gt;In Python, I would do something like:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;runningRelays &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [relay &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; relay &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; relays &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; relay[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;is_running&amp;#39;&lt;/span&gt;]]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(I know something is happening because writing that example line I had an&#xA;incredible urge to terminate the line with a semicolon.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Duration and Period</title>
      <link>https://irl.xyz/blog/2017/2017w413/</link>
      <pubDate>Wed, 11 Oct 2017 21:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w413/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m in the process or tidying up the bot behind&#xA;&lt;a href=&#34;https://twitter.com/TorAtlas&#34;&gt;TorAtlas&lt;/a&gt; and I&amp;rsquo;ve chosen to write it in Java.&#xA;My undergraduate degree had a lot of Java in it, but that was while ago now,&#xA;and there are some cool new features I&amp;rsquo;ve learnt about including &lt;a href=&#34;https://docs.oracle.com/javase/tutorial/datetime/iso/period.html&#34;&gt;&lt;code&gt;Period&lt;/code&gt; and&#xA;&lt;code&gt;Duration&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Some of the tweets coming from the bot talk about how long a relay has been&#xA;contributing to the Tor network. When fetching the &lt;a href=&#34;https://metrics.torproject.org/onionoo.html#details&#34;&gt;details&#xA;document&lt;/a&gt; I look at the&#xA;&lt;code&gt;first_seen&lt;/code&gt; field and get this as a&#xA;&lt;a href=&#34;https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html&#34;&gt;&lt;code&gt;ZonedDateTime&lt;/code&gt;&lt;/a&gt;&#xA;to make sure I&amp;rsquo;m doing all my calculations in UTC. I then use the &lt;code&gt;between()&lt;/code&gt;&#xA;method on various &lt;code&gt;ChronoUnit&lt;/code&gt;s to work out how long between the first time the&#xA;relay was seen and now, and then I produced something human readable from this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatic Updates</title>
      <link>https://irl.xyz/blog/2017/2017w412/</link>
      <pubDate>Tue, 10 Oct 2017 19:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w412/</guid>
      <description>&lt;p&gt;We have instructions for &lt;a href=&#34;https://www.torproject.org/docs/tor-relay-debian.html.en&#34;&gt;setting up new Tor relays on&#xA;Debian&lt;/a&gt;. The only&#xA;time the word &amp;ldquo;upgrade&amp;rdquo; is mentioned here is:&lt;/p&gt;&#xA;&lt;blockquote class=&#34;blockquote&#34; style=&#34;padding-left: 10px; border-left: solid 3px;&#34;&gt;Be sure to set your ContactInfo line so we can contact you if you need to upgrade or something goes wrong.&lt;/blockquote&gt;&#xA;&lt;p&gt;This isn&amp;rsquo;t great. We should have some decent instructions for keeping your&#xA;relay up to date too. I&amp;rsquo;ve been compiling a set of documentation for enabling&#xA;automatic updates on various Linux distributions, here&amp;rsquo;s a taste of what I have&#xA;so far:&lt;/p&gt;</description>
    </item>
    <item>
      <title>My IRC Setup</title>
      <link>https://irl.xyz/blog/2017/2017w411/</link>
      <pubDate>Mon, 09 Oct 2017 08:30:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w411/</guid>
      <description>&lt;p&gt;I use &lt;a href=&#34;https://en.wikipedia.org/wiki/Internet_Relay_Chat&#34;&gt;IRC&lt;/a&gt; every day. I use&#xA;it to speak to people at my &lt;a href=&#34;https://www.57north.org.uk/&#34;&gt;local hackerspace&lt;/a&gt;&#xA;and to fellow &lt;a href=&#34;https://www.debian.org/&#34;&gt;Debian&lt;/a&gt; or &lt;a href=&#34;https://www.torproject.org/&#34;&gt;Tor&#xA;Project&lt;/a&gt; developers. My set up is a little complex&#xA;but every part serves a purpose.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://irl.xyz/content/images/2017/10/ircsetup.png&#34;&#xA;    alt=&#34;Connection diagram for my IRC setup&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;p&gt;Connection diagram for my IRC setup&lt;/p&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;The service that actually performs the connections to IRC servers is&#xA;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt;, an &lt;a href=&#34;https://en.wikipedia.org/wiki/BNC_%28software%29#IRC&#34;&gt;IRC&#xA;bouncer&lt;/a&gt;. The main&#xA;features this provides are aggressively remaining connected to ensure that I&amp;rsquo;m&#xA;not missing anything and also to &lt;a href=&#34;https://wiki.znc.in/Nickserv&#34;&gt;authenticate to&#xA;NickServ&lt;/a&gt; automatically in the case of a&#xA;disconnect. Other features from ZNC I use are the&#xA;&lt;a href=&#34;https://wiki.znc.in/Keepnick&#34;&gt;keepnick&lt;/a&gt; plugin (to keep trying for my&#xA;primary nick) and the&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/BNC_%28software%29#IRC&#34;&gt;chansaver&lt;/a&gt; plugin to&#xA;keep track of which channels I&amp;rsquo;m in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2017W40)</title>
      <link>https://irl.xyz/blog/2017/2017w40/</link>
      <pubDate>Sun, 08 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w40/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s my weekly report for week 40 of 2017. In this week I have &lt;a href=&#34;https://irl.xyz/blog/2017/2017w401/&#34;&gt;looked at&#xA;censorship in Catalonia&lt;/a&gt; and&#xA;&lt;a href=&#34;https://irl.xyz/blog/2017/2017w402/&#34;&gt;had my &amp;ldquo;deleted&amp;rdquo; Facebook account&#xA;hacked&lt;/a&gt; (&lt;a href=&#34;https://news.ycombinator.com/item?id=15391933&#34;&gt;which made HN front&#xA;page&lt;/a&gt;). I&amp;rsquo;ve also &lt;a href=&#34;https://irl.xyz/blog/2017/2017w405/&#34;&gt;been thinking&#xA;about DRM on the web&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;debian&#34;&gt;Debian&lt;/h2&gt;&#xA;&lt;p&gt;I have prepared and uploaded fixes for the&#xA;&lt;a href=&#34;https://packages.debian.org/source/sid/measurement-kit&#34;&gt;measurement-kit&lt;/a&gt; and&#xA;&lt;a href=&#34;https://packages.debian.org/source/sid/hamradio-maintguide&#34;&gt;hamradio-maintguide&lt;/a&gt;&#xA;packages.&lt;/p&gt;&#xA;&lt;p&gt;I have also sponsored uploads for&#xA;&lt;a href=&#34;https://packages.debian.org/source/sid/gnustep-base&#34;&gt;gnustep-base&lt;/a&gt; (to&#xA;experimental) and&#xA;&lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=875895&#34;&gt;chkservice&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I have given DM upload privileges to &lt;a href=&#34;https://qa.debian.org/developer.php?email=Heintzmann.Eric%40free.fr&#34;&gt;Eric&#xA;Heintzmann&lt;/a&gt;&#xA;for the gnustep-base package as he has shown to care for the GNUstep packages&#xA;well. In the near future, I think we&amp;rsquo;re looking at a transition for&#xA;gnustep-{base,back,gui} as these packages all have updates.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tor Relays on Twitter</title>
      <link>https://irl.xyz/blog/2017/2017w407/</link>
      <pubDate>Sun, 08 Oct 2017 15:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w407/</guid>
      <description>&lt;p&gt;A while ago I played with &lt;a href=&#34;https://twitter.com/hamlocator&#34;&gt;a Twitter bot&lt;/a&gt; that&#xA;would track &lt;a href=&#34;https://en.wikipedia.org/wiki/Amateur_radio&#34;&gt;radio amateurs&lt;/a&gt; using&#xA;a &lt;a href=&#34;http://www.aprs-is.net/&#34;&gt;packet radio position reporting system&lt;/a&gt;, tweet&#xA;their location and a picture from Flickr that was taken near to their location&#xA;and a link to their packet radio activity on &lt;a href=&#34;http://aprs.fi/&#34;&gt;aprs.fi&lt;/a&gt;. It&amp;rsquo;s&#xA;really not that hard to put these things together and they can be a lot of fun.&#xA;The tweets looked like this:&lt;/p&gt;&#xA;&lt;p&gt;[tweet missing]&lt;/p&gt;&#xA;&lt;p&gt;This isn&amp;rsquo;t about building a system that serves any critical purpose, it&amp;rsquo;s about&#xA;fun. As the radio stations were chosen essentially at random, there could be&#xA;some cool things showing up that you wouldn&amp;rsquo;t otherwise have seen. Maybe you&amp;rsquo;d&#xA;spot a callsign of a station you&amp;rsquo;ve spoken to before on HF or perhaps you&amp;rsquo;d see&#xA;stations in areas near you or in cool places.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Twitter for Websites</title>
      <link>https://irl.xyz/blog/2017/2017w406/</link>
      <pubDate>Sat, 07 Oct 2017 15:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w406/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;https://irl.xyz/blog/2017/2017w405/&#34;&gt;yesterday&amp;rsquo;s post&lt;/a&gt;, I tried out the&#xA;&lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;&#xA;&lt;a href=&#34;https://gohugo.io/content-management/shortcodes/&#34;&gt;shortcode&lt;/a&gt; for &lt;a href=&#34;https://gohugo.io/content-management/shortcodes/#tweet&#34;&gt;embedding&#xA;tweets&lt;/a&gt; from&#xA;&lt;a href=&#34;https://twitter.com&#34;&gt;Twitter&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;After having gone to some effort to remove external assets from my website,&#xA;it&amp;rsquo;s not great that this shortcode will automatically include JavaScript from&#xA;the Twitter website. The way that &lt;a href=&#34;https://dev.twitter.com/web/overview&#34;&gt;Twitter for&#xA;Websites&lt;/a&gt; seems to work is that the&#xA;JavaScript provides enhancement but the JavaScript is &lt;em&gt;not&lt;/em&gt; required for the&#xA;content to work. This is great, as it means that content still works when&#xA;syndicated on planets or viewed in an RSS reader or through a text-only&#xA;browser.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Atari ST Terminfo</title>
      <link>https://irl.xyz/blog/2017/2017w405.2/</link>
      <pubDate>Fri, 06 Oct 2017 16:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w405.2/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://invisible-island.net/ncurses/terminfo.src.html#tic-atari_st-color&#34;&gt;Terminfo configuration for the Atari ST&lt;/a&gt; does exist.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Encrypted Media Extensions</title>
      <link>https://irl.xyz/blog/2017/2017w405/</link>
      <pubDate>Fri, 06 Oct 2017 16:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w405/</guid>
      <description>&lt;p&gt;Now that Season 3 of &lt;a href=&#34;http://www.adultswim.com/videos/rick-and-morty/&#34;&gt;Rick and&#xA;Morty&lt;/a&gt; has been completely&#xA;aired, it&amp;rsquo;s time to start watching. I&amp;rsquo;m not a big fan of waiting a week between&#xA;episodes, especially when the episodes are only 20 minutes long.&lt;/p&gt;&#xA;&lt;p&gt;As of last night, all but the final episode of the season was available on&#xA;&lt;a href=&#34;https://www.netflix.com/&#34;&gt;Netflix&lt;/a&gt; and &lt;a href=&#34;https://a.custura.me/&#34;&gt;Ana&lt;/a&gt; has a&#xA;subscription for this. This is the first time I&amp;rsquo;ve seen Netflix being used, so&#xA;I didn&amp;rsquo;t know that the &lt;a href=&#34;https://www.w3.org/TR/2017/REC-encrypted-media-20170918/&#34;&gt;W3C Recommendedation &amp;ldquo;Encrypted Media&#xA;Extensions&amp;rdquo;&lt;/a&gt; that&#xA;upset the EFF enough &lt;a href=&#34;https://www.eff.org/deeplinks/2017/09/open-letter-w3c-director-ceo-team-and-membership&#34;&gt;for them to resign from the&#xA;W3C&lt;/a&gt;&#xA;has actually been &lt;a href=&#34;https://en.wikipedia.org/wiki/Encrypted_Media_Extensions#Support&#34;&gt;in use by Netflix since April&#xA;2013&lt;/a&gt;&#xA;(growing platform support over time, not supporting all platforms immediately).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hugo Syntax Highlighting</title>
      <link>https://irl.xyz/blog/2017/2017w404/</link>
      <pubDate>Thu, 05 Oct 2017 20:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w404/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been tidying up my Hugo theme in an effort to make it reusable by others.&#xA;In doing so, I&amp;rsquo;ve learnt about a lot of Hugo features that I didn&amp;rsquo;t know&#xA;existed, like &lt;a href=&#34;https://gohugo.io/content-management/shortcodes/&#34;&gt;shortcodes&lt;/a&gt;. I&#xA;remembered this concept from long ago in&#xA;&lt;a href=&#34;https://codex.wordpress.org/Shortcode_API&#34;&gt;Wordpress&lt;/a&gt; and I had even written&#xA;&lt;a href=&#34;https://irl.xyz/blog/2010/2010w496/&#34;&gt;a plugin&lt;/a&gt; that took advantage of them.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been manually writing out HTML for&#xA;&lt;a href=&#34;http://html5doctor.com/the-figure-figcaption-elements/&#34;&gt;figures&lt;/a&gt;, instead of&#xA;using the &lt;a href=&#34;https://gohugo.io/content-management/shortcodes/#figure&#34;&gt;figure&#xA;shortcode&lt;/a&gt;. I haven&amp;rsquo;t&#xA;started to fix these up yet, but I have made some changes for syntax&#xA;highlighting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MAC Catching</title>
      <link>https://irl.xyz/blog/2017/2017w403/</link>
      <pubDate>Wed, 04 Oct 2017 09:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w403/</guid>
      <description>&lt;p&gt;As we walk around with mobile phones in our pockets, there are multiple radios&#xA;each with identifiers that can be captured and recorded just through their&#xA;normal operation. Bluetooth and Wifi devices have &lt;a href=&#34;https://en.wikipedia.org/wiki/MAC_address&#34;&gt;MAC&#xA;addresses&lt;/a&gt; and can advertise their&#xA;presence to other devices merely by sending traffic, or by probing for devices&#xA;to connect to if they&amp;rsquo;re not connected.&lt;/p&gt;&#xA;&lt;p&gt;I found a simple tool, &lt;a href=&#34;https://github.com/nikharris0/probemon&#34;&gt;probemon&lt;/a&gt; that&#xA;allows for anyone with a wifi card to track who is at which location at any&#xA;given time. You could deploy a few of these with &lt;a href=&#34;https://www.raspberrypi.org/&#34;&gt;Raspberry&#xA;Pis&lt;/a&gt; or even go even cheaper with a number of&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/ESP8266&#34;&gt;ESP8266&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Facebook Lies</title>
      <link>https://irl.xyz/blog/2017/2017w402/</link>
      <pubDate>Tue, 03 Oct 2017 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w402/</guid>
      <description>&lt;p&gt;In the past, I had a Facebook account. Long ago I &amp;ldquo;deleted&amp;rdquo; this account&#xA;through the procedure outlined &lt;a href=&#34;https://en-gb.facebook.com/help/250563911970368&#34;&gt;on their help&#xA;pages&lt;/a&gt;. In theory, 14 days&#xA;after I used this process my account would be irrevocably gone. This was all&#xA;lies.&lt;/p&gt;&#xA;&lt;p&gt;My account was not deleted and yesterday I received an email:&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://irl.xyz/content/images/2017/10/facebookemail.png&#34;&#xA;    alt=&#34;Screenshot of the email I received from Facebook&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;p&gt;Screenshot of the email I received from Facebook&lt;/p&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;It took me a moment to figure it out, but what had happened here is someone had&#xA;logged into my Facebook account using my email address and password. Facebook&#xA;simply reactivated the account, which had not had its data deleted, as if I had&#xA;logged in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Censorship Resistance in Cyberspace</title>
      <link>https://irl.xyz/blog/2017/2017w401/</link>
      <pubDate>Mon, 02 Oct 2017 09:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w401/</guid>
      <description>&lt;p&gt;Yesterday, &lt;a href=&#34;https://www.theguardian.com/world/live/2017/oct/01/catalan-independence-referendum-spain-catalonia-vote-live&#34;&gt;Catalonia held a referendum on independence from&#xA;Spain&lt;/a&gt;.&#xA;There are arguments to be made that Spain has acted in a way incompatible with&#xA;&lt;a href=&#34;http://www.lisbon-treaty.org/wcm/the-lisbon-treaty/treaty-on-european-union-and-comments/title-1-common-provisions/2-article-2.html&#34;&gt;Article 2 of the Lisbon&#xA;Treaty&lt;/a&gt;&#xA;in their violent reactions to this. Watching videos of the &lt;a href=&#34;https://en.wikipedia.org/wiki/Civil_Guard_%28Spain%29&#34;&gt;Guardia&#xA;Civil&lt;/a&gt; (organised as a&#xA;military force charged with police duties) was pretty horrifying, I would&#xA;imagine being there was many times worse.&lt;/p&gt;&#xA;&lt;p&gt;There has been plenty of coverage of the referendum but I wanted to talk about&#xA;four things that maybe haven&amp;rsquo;t been covered so much, from cyberspace:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2017W39)</title>
      <link>https://irl.xyz/blog/2017/2017w39/</link>
      <pubDate>Sun, 01 Oct 2017 23:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w39/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s my weekly report for week 39 of 2017. In this week I have &lt;a href=&#34;https://irl.xyz/blog/2017/2017w395/&#34;&gt;travelled to&#xA;Berlin&lt;/a&gt; and &lt;a href=&#34;https://irl.xyz/blog/2017/2017w394/&#34;&gt;caught up on some&#xA;podcasts&lt;/a&gt; in doing so. I&amp;rsquo;ve also had some &lt;a href=&#34;https://irl.xyz/blog/2017/2017w396/&#34;&gt;trouble with&#xA;the RSS feeds on my blog&lt;/a&gt; but hopefully this is all fixed&#xA;now.&lt;/p&gt;&#xA;&lt;p&gt;Thanks to Martin Milbret I now have a replacement for my &lt;a href=&#34;https://irl.xyz/blog/2017/2017w384/&#34;&gt;dead&#xA;workstation&lt;/a&gt;, an HP Z600, and there will be a blog post&#xA;about this new set up to come next week. Thanks also to Sýlvan and a number of&#xA;others that made donations towards getting me up and running again. A breakdown&#xA;of the donations and expenses can be found at the end of this post.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Microblogging clients</title>
      <link>https://irl.xyz/blog/2017/2017w397/</link>
      <pubDate>Sun, 01 Oct 2017 22:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w397/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.twitter.com/iainlearmonth&#34;&gt;My Twitter activity&lt;/a&gt; has really picked&#xA;up in the last couple of months. I&amp;rsquo;d love to have something more integrated&#xA;with my desktop but so far the best Twitter client I&amp;rsquo;ve found is the &lt;a href=&#34;https://www.twitter.com/&#34;&gt;Twitter&#xA;website&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I sponsored the &lt;a href=&#34;https://tracker.debian.org/news/737500&#34;&gt;original inclusion&lt;/a&gt; of&#xA;&lt;a href=&#34;https://corebird.baedert.org/&#34;&gt;corebird&lt;/a&gt; into&#xA;&lt;a href=&#34;https://www.debian.org/&#34;&gt;Debian&lt;/a&gt;&amp;rsquo;s package repsoitories. This is a great&#xA;native client and Phillip Rinn does a great job maintaining it (I gave him&#xA;Debian Maintainer privileges now to do uploads without my picking apart every&#xA;upload). He&amp;rsquo;s also added a backport of the latest version so it can be installed&#xA;on the current Debian stable release. My problem with corebird however is that&#xA;it doesn&amp;rsquo;t support &amp;ldquo;free&amp;rdquo; networks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Breaking RSS Change in Hugo</title>
      <link>https://irl.xyz/blog/2017/2017w396/</link>
      <pubDate>Sat, 30 Sep 2017 13:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w396/</guid>
      <description>&lt;p&gt;My website and blog are managed by the static site generator&#xA;&lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;. I&amp;rsquo;ve found this to be a stable and flexible system,&#xA;but at the last upgrade a breaking change has occurred that broken the&#xA;syndication of my blog on various planets.&lt;/p&gt;&#xA;&lt;p&gt;At first I thought perhaps with my increased posting rate the planets were&#xA;truncating my posts but this was not the case. The problem was in &lt;a href=&#34;https://github.com/gohugoio/hugo/pull/3219/commits/e4c7d572b7b14250c05d5109ca6d2fd67a542e28&#34;&gt;Hugo pull&#xA;request #3129&lt;/a&gt;&#xA;where for some reason they have changed the RSS feed to contain only a &amp;ldquo;lead&amp;rdquo;&#xA;instead of the full article.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tor Metrics Team Meeting in Berlin</title>
      <link>https://irl.xyz/blog/2017/2017w395/</link>
      <pubDate>Fri, 29 Sep 2017 15:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w395/</guid>
      <description>&lt;p&gt;We had a meeting of the &lt;a href=&#34;https://trac.torproject.org/projects/tor/wiki/org/teams/MetricsTeam&#34;&gt;Metrics&#xA;Team&lt;/a&gt; in&#xA;Berlin yesterday to organise a roadmap for the next 12 months. This roadmap&#xA;isn&amp;rsquo;t yet finalised as it will now be taken to the main Tor developers meeting&#xA;in Montreal where perhaps there are things we thought were needed but aren&amp;rsquo;t,&#xA;or things that we had forgotten.  Still we have a pretty good draft and we were&#xA;all quite happy with it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Podcasts</title>
      <link>https://irl.xyz/blog/2017/2017w394/</link>
      <pubDate>Thu, 28 Sep 2017 15:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w394/</guid>
      <description>&lt;p&gt;When I&amp;rsquo;m travelling, I take the opportunity to catch up on podcasts. I always&#xA;enjoy discovering a new podcast that is interesting for me, so I thought I&amp;rsquo;d&#xA;share the current set of podcasts I&amp;rsquo;m subscribing to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://twit.tv/shows/security-now&#34;&gt;Security Now&lt;/a&gt; - Probably my longest&#xA;running subscription, but I don&amp;rsquo;t listen to every episode (they&amp;rsquo;re 2 hours&#xA;long which is quite an investment to make). Covers a wide range of security&#xA;related topics.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.2600.com/node/17585&#34;&gt;Off The Hook&lt;/a&gt; - This is a recent addition&#xA;to my podcast listening, from the 2600 people, and covers topics including&#xA;hacking, phone systems, Internet protocols and security.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://theintercept.com/podcasts/&#34;&gt;Intercepted&lt;/a&gt; - A newish podcast covering&#xA;political events with a slant towards human rights issues.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://getcrookedmedia.com/pod-save-the-world-7cc67d64dd56&#34;&gt;Pod Save The&#xA;World&lt;/a&gt; - Again,&#xA;another political podcast.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://djcotts.net/podcast/&#34;&gt;DJ Cotts - The Aussie Hardcore Podcast&lt;/a&gt; - Music for working.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tunein.com/radio/Keeping-the-Rave-Alive-p426159/&#34;&gt;Keeping The Rave Alive&lt;/a&gt; - More music for working.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Maybe you&amp;rsquo;ll enjoy discovering some of these too. If you know of a podcast you think I&amp;rsquo;d enjoy, you can send me an email or tweet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>&#34;Security Scanners&#34; Again</title>
      <link>https://irl.xyz/blog/2017/2017w393/</link>
      <pubDate>Wed, 27 Sep 2017 15:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w393/</guid>
      <description>&lt;p&gt;Early this morning I was flying from &lt;a href=&#34;https://www.aberdeenairport.com/&#34;&gt;Aberdeen&#xA;Airport&lt;/a&gt; to Berlin for the Tor Metrics Team&#xA;meeting. I noticed that they have finally put up some signage before the&#xA;security area and writing this blog post I really wish I&amp;rsquo;d taken a picture of&#xA;it just to show how ridiculous it was.&lt;/p&gt;&#xA;&lt;p&gt;It didn&amp;rsquo;t have much information on it, but the information it had was almost&#xA;laughable. For example: &amp;ldquo;The scanner is lower than a mobile phone&amp;rdquo;. As someone&#xA;who understands radio, I assume they mean &lt;a href=&#34;https://en.wikipedia.org/wiki/Field_strength&#34;&gt;field&#xA;strength&lt;/a&gt;, but they don&amp;rsquo;t specify&#xA;this so they could mean height or long distance call prices.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SMS Verification</title>
      <link>https://irl.xyz/blog/2017/2017w392/</link>
      <pubDate>Tue, 26 Sep 2017 15:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w392/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve received an email today from &lt;a&#xA;href=&#34;http://barclaycard.co.uk/&#34;&gt;Barclaycard&lt;/a&gt; with the following:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;From time to time, to make sure it&amp;rsquo;s you who&amp;rsquo;s using your Barclaycard online,&#xA;we&amp;rsquo;ll send you a text with a verification code for you to use on the Verified&#xA;by Visa screen that&amp;rsquo;ll pop up on your payment page.&amp;rdquo;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The proprietary nature of mobile phones with the hardware specifications and&#xA;the software being closed off from inspection or audit and considered to be&#xA;trade secrets make my phone and my tablet the least trusted devices I own and&#xA;use.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updated Blog Theme</title>
      <link>https://irl.xyz/blog/2017/2017w391/</link>
      <pubDate>Mon, 25 Sep 2017 10:45:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w391/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve taken a go at updating the theme for my blog. Previously I&amp;rsquo;d been using a&#xA;theme that was a hacked up version of a theme from the &lt;a href=&#34;https://themes.gohugo.io/&#34;&gt;Hugo themes&#xA;directory&lt;/a&gt;. I tried to look just now for the theme&#xA;I&amp;rsquo;d based it on, but can&amp;rsquo;t seem to find it.&lt;/p&gt;&#xA;&lt;p&gt;In the new theme I&amp;rsquo;m aiming for accessibility and some machine readableness.&#xA;Accessibility really comes down to making sure you&amp;rsquo;ve separated content from&#xA;presentation so that it can be easily converted into other mediums&#xA;automatically. For machine readableness, I&amp;rsquo;ve been exploring&#xA;&lt;a href=&#34;http://gmpg.org/xfn/&#34;&gt;XFN&lt;/a&gt;, &lt;a href=&#34;https://www.w3.org/2001/sw/wiki/RDF&#34;&gt;RDF&lt;/a&gt;&#xA;(&lt;a href=&#34;http://dublincore.org/&#34;&gt;Dublin Core&lt;/a&gt;, &lt;a href=&#34;http://www.foaf-project.org/&#34;&gt;FOAF&lt;/a&gt;,&#xA;&lt;a href=&#34;http://ogp.me/&#34;&gt;Open Graph&lt;/a&gt;) and, of course,&#xA;&lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc4287.txt&#34;&gt;Atom&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2017W38)</title>
      <link>https://irl.xyz/blog/2017/2017w38/</link>
      <pubDate>Sun, 24 Sep 2017 12:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w38/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s my weekly report for week 38 of 2017. This week has not been a great&#xA;week as I saw my primary development machine &lt;a href=&#34;https://irl.xyz/post/2017/2017w384/&#34;&gt;die in a spectacular reboot&#xA;loop&lt;/a&gt;. Thanks to the wonderful&#xA;community around Debian and free software (that if you&amp;rsquo;re reading this, you&amp;rsquo;re&#xA;probably part of), I should be back up to speed soon. A replacement workstation&#xA;is currently moving towards me and I&amp;rsquo;ve received a number of smaller donations&#xA;that will go towards video converters and upgrades to get me back to full&#xA;productivity.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Onion Services</title>
      <link>https://irl.xyz/blog/2017/2017w387/</link>
      <pubDate>Sun, 24 Sep 2017 10:45:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w387/</guid>
      <description>&lt;p&gt;In the summer 2017 edition of &lt;a href=&#34;https://www.2600.com/&#34;&gt;2600 magazine&lt;/a&gt; there is a&#xA;brilliant article on running &lt;a href=&#34;https://www.torproject.org/docs/hidden-services.html.en&#34;&gt;onion&#xA;services&lt;/a&gt; as part of a&#xA;series on censorship resistant services. Onion services provide privacy and&#xA;security for readers above that which is possible through the use of HTTPS.&lt;/p&gt;&#xA;&lt;p&gt;Since moving my website to &lt;a href=&#34;https://www.netlify.com/&#34;&gt;Netlify&lt;/a&gt;, my onion&#xA;service died as Netlify doesn&amp;rsquo;t provide automatic onion services (although they&#xA;do offer automated Let&amp;rsquo;s Encrypt certificate provisioning). If anyone from&#xA;Netlify is reading this, please consider adding a one-click onion service&#xA;button next to the Let&amp;rsquo;s Encrypt button.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VM on bhyve not booting</title>
      <link>https://irl.xyz/blog/2017/2017w386/</link>
      <pubDate>Sat, 23 Sep 2017 10:45:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w386/</guid>
      <description>&lt;p&gt;Last night I installed updates on my &lt;a href=&#34;http://www.freenas.org/&#34;&gt;FreeNAS&lt;/a&gt; box and&#xA;rebooted it. As expected my network died, but then it never came back, which I&#xA;hadn&amp;rsquo;t expected.&lt;/p&gt;&#xA;&lt;p&gt;My FreeNAS box provides backup storage space, a local Debian mirror and a&#xA;mirror of talks from recent conferences. It also runs a couple of &lt;a href=&#34;http://doc.freenas.org/11/vms.html&#34;&gt;virtual&#xA;machines&lt;/a&gt; and one of these provides my&#xA;local DNS resolver.&lt;/p&gt;&#xA;&lt;p&gt;I hooked up the VNC console to the virtual machine and the problem looked to&#xA;be that it was booting from the Debian installer CD. I removed the CD from the&#xA;VM and rebooted, thinking that would be the end of it, but nope:&lt;/p&gt;</description>
    </item>
    <item>
      <title>It Died: An Update</title>
      <link>https://irl.xyz/blog/2017/2017w385/</link>
      <pubDate>Fri, 22 Sep 2017 08:30:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w385/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;em&gt;I&amp;rsquo;ve had an offer of a used workstation that I&amp;rsquo;m following up. I&#xA;would still appreciate any donations to go towards costs for&#xA;cables/converters/upgrades needed with the new system but the hard part should&#xA;hopefully be out the way now. (:&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Thanks for all the responses I&amp;rsquo;ve received about the death of my desktop PC.&#xA;As I updated in &lt;a href=&#34;https://irl.xyz/post/2017/2017w384/&#34;&gt;my previous&#xA;post&lt;/a&gt;, I find it unlikely that&#xA;I will have to orphan any of my packages as I believe that I should be able&#xA;to get a new workstation soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>It Died</title>
      <link>https://irl.xyz/blog/2017/2017w384/</link>
      <pubDate>Thu, 21 Sep 2017 10:10:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w384/</guid>
      <description>&lt;p&gt;On Sunday, in my &lt;a href=&#34;https://irl.xyz/post/2017/2017w37/&#34;&gt;weekly report on my free software&#xA;activities&lt;/a&gt;, I wrote about how&#xA;sustainable my current level of activites are. I had identified the risk that&#xA;the computer that I use for almost all of my free software work was slowly&#xA;dying. Last night it entered an endless reboot loop and subsequent efforts to&#xA;save it have failed.&lt;/p&gt;&#xA;&lt;p&gt;I cannot afford to replace this machine and my next best machine has half the&#xA;cores, half the RAM and less than half of the screen real estate. As this is&#xA;going to be a serious hit to my productivity, I need to seriously consider if I&#xA;am able to continue to maintain the number of packages I currently do in&#xA;Debian.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Easy APT Repository</title>
      <link>https://irl.xyz/blog/2017/2017w383/</link>
      <pubDate>Wed, 20 Sep 2017 08:30:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w383/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://pathspider.net&#34;&gt;PATHspider&lt;/a&gt; software I maintain as part of my work&#xA;depends on some features in &lt;a href=&#34;http://curl.haxx.se/&#34;&gt;cURL&lt;/a&gt; and in&#xA;&lt;a href=&#34;http://pycurl.io/&#34;&gt;PycURL&lt;/a&gt; that have&#xA;&lt;a href=&#34;https://github.com/pycurl/pycurl/pull/456&#34;&gt;only&lt;/a&gt;&#xA;&lt;a href=&#34;https://github.com/pycurl/pycurl/pull/458&#34;&gt;just&lt;/a&gt; been mereged or are still&#xA;&lt;a href=&#34;https://github.com/curl/curl/pull/1847&#34;&gt;awaiting&lt;/a&gt; merge. I need to build a&#xA;docker container that includes these as Debian packages, so I need to quickly&#xA;build an APT repository.&lt;/p&gt;&#xA;&lt;p&gt;A Debian repository can essentially be seen as a static website and the&#xA;contents are GPG signed so it doesn&amp;rsquo;t necessarily need to be hosted somewhere&#xA;trusted (unless availability is critical for your application). I host my blog&#xA;with &lt;a href=&#34;http://netlify.com/&#34;&gt;Netlify&lt;/a&gt;, a static website host, and I figured they&#xA;would be perfect for this use case. They also &lt;a href=&#34;https://www.netlify.com/open-source/&#34;&gt;support open source&#xA;projects&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Small Glowing Thing</title>
      <link>https://irl.xyz/blog/2017/2017w382/</link>
      <pubDate>Tue, 19 Sep 2017 08:30:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w382/</guid>
      <description>&lt;p&gt;Quite a while ago I obtained an &lt;a href=&#34;https://www.adafruit.com/product/1426&#34;&gt;Adafruit NeoPixel&#xA;Stick&lt;/a&gt;. It was cheap enough to be an&#xA;impulse buy but it took me some time to get around to actually doing something&#xA;with it.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been wanting to play a little more with the ATtiny range of&#xA;microcontrollers so these things seemed to go together nicely. It turns out&#xA;that getting an ATtiny programmed is actually rather simple using an Arduino as&#xA;an ISP programmer. I&amp;rsquo;ve written up some &lt;a href=&#34;https://wiki.57north.org.uk/index.php/ATtiny85&#34;&gt;notes on the&#xA;procedure&lt;/a&gt; at the 57North&#xA;Hacklab wiki.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Final Click</title>
      <link>https://irl.xyz/blog/2017/2017w381/</link>
      <pubDate>Mon, 18 Sep 2017 07:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w381/</guid>
      <description>&lt;p&gt;On my desktop, I had been using a Logitech G500 mouse. This was a really nice mouse that had the perfect feature set for me but it had a problem. Single clicks would turn into double clicks and it was nearly impossible to click and drag.&lt;/p&gt;&#xA;&lt;p&gt;Some consequences of this include tweets being unliked instantly after liking them, ordering twice as many apples as necessary from Tesco and pasting my entire Twitter timeline into an IRC buffer instead of the two lines of log file. If there&amp;rsquo;s going to be an electromechanical component of your computer go wrong, the left mouse button is not a great choice.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2017W37)</title>
      <link>https://irl.xyz/blog/2017/2017w37/</link>
      <pubDate>Sun, 17 Sep 2017 18:00:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w37/</guid>
      <description>&lt;p&gt;I&amp;rsquo;d like to start making weekly reports again on my free software efforts. Part of the reason for these reports is for me to see how much time I&amp;rsquo;m putting into free software. Hopefully I can keep these reports up.&lt;/p&gt;&#xA;&lt;h2 id=&#34;debian&#34;&gt;Debian&lt;/h2&gt;&#xA;&lt;p&gt;I have updated &lt;a href=&#34;https://packages.debian.org/source/sid/txtorcon&#34;&gt;txtorcon&lt;/a&gt; (a Twisted-based asynchronous Tor control protocol implementation used by &lt;a href=&#34;https://packages.debian.org/source/sid/ooniprobe&#34;&gt;ooniprobe&lt;/a&gt;, &lt;a href=&#34;https://packages.debian.org/source/sid/magic-wormhole&#34;&gt;magic-wormhole&lt;/a&gt; and &lt;a href=&#34;https://packages.debian.org/source/sid/tahoe-lafs&#34;&gt;tahoe-lafs&lt;/a&gt;) to its latest upstream version. I&amp;rsquo;ve also added two new binary packages that are built by the txtorcon source package: python3-txtorcon and python-txtorcon-doc for Python 3 support and generated HTML documentation respectively.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recent Atlas Improvements</title>
      <link>https://irl.xyz/blog/2017/2017w097/</link>
      <pubDate>Mon, 06 Mar 2017 15:22:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2017/2017w097/</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;This post was originally &lt;a href=&#34;https://blog.torproject.org/blog/atlas-recent-improvements&#34;&gt;posted to the Tor Project&#xA;blog&lt;/a&gt;. If you would&#xA;like to comment on this post, please do so there.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://atlas.torproject.org&#34;&gt;Atlas&lt;/a&gt; is a web application to learn about&#xA;currently running Tor relays and bridges. You can search by fingerprint,&#xA;nickname, country, flags and contact information and be returned information&#xA;about its advertised bandwidth, uptime, exit policies and more.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://irl.xyz/content/images/2017/03/Atlas-irlUoaRelay.png&#34;&#xA;    alt=&#34;Screenshot of Atlas&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;p&gt;Screenshot of Atlas&lt;/p&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;I&amp;rsquo;m taking this opportunity to introduce myself. I&amp;rsquo;m &lt;a href=&#34;https://twitter.com/iainlearmonth&#34;&gt;Iain R.&#xA;Learmonth&lt;/a&gt;, or just irl on IRC. I began&#xA;contributing to Atlas in June last year, and I&amp;rsquo;m currently serving as the&#xA;maintainer for Atlas. We have made some usability improvements to Atlas&#xA;recently that we are happy to share with you today.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Internet of Dangerous Auction Sites</title>
      <link>https://irl.xyz/blog/2016/2016w496/</link>
      <pubDate>Sat, 10 Dec 2016 22:25:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w496/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;It might be that the internet era of fun and games is over, because the&#xA;internet is now dangerous.  &amp;ndash; &lt;a href=&#34;http://www.dailydot.com/layer8/bruce-schneier-internet-of-things/&#34;&gt;Bruce&#xA;Schneier&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Ok, I know this is kind of old news now, but Bruce Schneier gave testimony to&#xA;the House of Representatives’ Energy &amp;amp; Commerce Committee about computer&#xA;security after the &lt;a href=&#34;https://irl.xyz/post/2016/dns/&#34;&gt;Dyn attack&lt;/a&gt;. I&amp;rsquo;m including this quote&#xA;because I feel it sets the scene nicely for what follows here.&lt;/p&gt;&#xA;&lt;p&gt;Last week, I was browsing the popular online auction site eBay and I noticed&#xA;that there was no TLS. For a moment, I considered that maybe my traffic was&#xA;being intercepted deliberately, there&amp;rsquo;s no way that eBay as a global company&#xA;would be deliberately risking users in this way. I was wrong. There is not and&#xA;has never been TLS for large swathes of the eBay site. In fact, the only point&#xA;at which I&amp;rsquo;ve found TLS is in their help pages and when it comes to entering&#xA;card details (although it&amp;rsquo;ll give you back the last 4 digits of your card over&#xA;a plaintext channel).&lt;/p&gt;</description>
    </item>
    <item>
      <title>vmdebootstrap Sprint Report</title>
      <link>https://irl.xyz/blog/2016/2016w475/</link>
      <pubDate>Fri, 25 Nov 2016 13:06:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w475/</guid>
      <description>&lt;p&gt;This is now a little overdue, but here it is. On the 10th and 11th of November,&#xA;the &lt;a href=&#34;https://wiki.debian.org/Sprints/2016/vmdebootstrap&#34;&gt;second&#xA;vmdebootstrap sprint&lt;/a&gt; took place. &lt;a&#xA;href=&#34;https://qa.debian.org/developer.php?login=lars&#34;&gt;Lars Wirzenius&lt;/a&gt; (liw),&#xA;&lt;a href=&#34;https://qa.debian.org/developer.php?login=ana@netstat.org.uk&#34;&gt;Ana&#xA;Custura&lt;/a&gt; (ana_c) and myself were present. liw focussed on the core of&#xA;vmdebootstrap, where he sketched out what the future of vmdebootstrap may look&#xA;like. He documented this in a &lt;a&#xA;href=&#34;https://lists.debian.org/debian-cloud/2016/11/msg00050.html&#34;&gt;mailing list&#xA;post&lt;/a&gt; and also presented (&lt;a&#xA;href=&#34;http://meetings-archive.debian.net/pub/debian-meetings/2016/miniconf_cambridge16/vmdebootstrap.webm&#34;&gt;video&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Ana and myself worked on live-wrapper, which uses vmdebootstrap internally for&#xA;the squashfs generation. I worked on improving logging, using a better method&#xA;for getting paths within the image, enabling generation of Packages and Release&#xA;files for the image archive and also made the images installable (live-wrapper&#xA;0.5 onwards will include an installer by default).&lt;/p&gt;</description>
    </item>
    <item>
      <title>PATHspider Plugins</title>
      <link>https://irl.xyz/blog/2016/2016w445/</link>
      <pubDate>Fri, 04 Nov 2016 00:46:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w445/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is cross-posted on the MAMI Project blog&#xA;&lt;a href=&#34;https://mami-project.eu/index.php/2016/11/04/pathspider-plugins/&#34;&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In today&amp;rsquo;s Internet we see an increasing deployment of middleboxes. While&#xA;middleboxes provide in-network functionality that is necessary to keep networks&#xA;manageable and economically viable, any packet mangling — whether essential for&#xA;the needed functionality or accidental as an unwanted side effect — makes it&#xA;more and more difficult to deploy new protocols or extensions of existing&#xA;protocols.&lt;/p&gt;&#xA;&lt;p&gt;For the evolution of the protocol stack, it is important to know which network&#xA;impairments exist and potentially need to be worked around. While classical&#xA;network measurement tools are often focused on absolute performance values,&#xA;PATHspider performs A/B testing between two different protocols or different&#xA;protocol extensions to perform controlled experiments of protocol-dependent&#xA;connectivity problems as well as differential treatment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Powers to Investigate</title>
      <link>https://irl.xyz/blog/2016/2016w437/</link>
      <pubDate>Sun, 30 Oct 2016 01:17:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w437/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://wiki.openrightsgroup.org/wiki/Communications_Data_Bill&#34;&gt;Communication Data&#xA;Bill&lt;/a&gt; was draft&#xA;legislation introduced first in May 2012.  It sought to compel ISPs to store&#xA;details of communications usage so that it can later be used for law&#xA;enforcement purposes. In 2013 the passage of this bill into law had been&#xA;blocked and the bill was dead.&lt;/p&gt;&#xA;&lt;p&gt;In 2014 we saw the &lt;a href=&#34;https://wiki.openrightsgroup.org/wiki/Data_Retention_and_Investigatory_Powers_Act_2014&#34;&gt;Data Retention and Investigatory Powers Act&#xA;2014&lt;/a&gt;&#xA;appear. This seemed to be in response to the &lt;a href=&#34;https://wiki.openrightsgroup.org/wiki/Data_Retention_Directive&#34;&gt;Data Retention&#xA;Directive&lt;/a&gt;&#xA;being successfully challenged at the European Court of Justice by Digital&#xA;Rights Ireland on human rights grounds, with a judgment given in 2014. It&#xA;essentially reimplemented the Data Retention Directive along with a whole load&#xA;of other nasty things.&lt;/p&gt;</description>
    </item>
    <item>
      <title>live-wrapper 0.4 released!</title>
      <link>https://irl.xyz/blog/2016/2016w436/</link>
      <pubDate>Sat, 29 Oct 2016 04:21:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w436/</guid>
      <description>&lt;p&gt;Last week saw the quiet upload of live-wrapper 0.4 to unstable. I would have&#xA;blogged at the time, but there is another announcement coming later in this&#xA;blog post that I wanted to make at the same time.&lt;/p&gt;&#xA;&lt;p&gt;live-wrapper is a wrapper around vmdebootstrap for producing bootable live&#xA;images using Debian GNU/Linux. Accompanied by the live-tasks package in Debian,&#xA;this provides the toolchain and configuration necessary for building live&#xA;images using Cinnamon, GNOME, KDE, LXDE, MATE and XFCE. There is also work&#xA;ongoing to add a GNUstep image to this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Domain Name System</title>
      <link>https://irl.xyz/blog/2016/2016w426.1/</link>
      <pubDate>Sat, 22 Oct 2016 19:15:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w426.1/</guid>
      <description>&lt;p&gt;As I &lt;a href=&#34;https://irl.xyz/post/2016/pathspider-stable/&#34;&gt;posted yesterday&lt;/a&gt;,&#xA;we released PATHspider 1.0.0. What I didn&amp;rsquo;t talk about in that post was an&#xA;event that occured only a few hours before the release.&lt;/p&gt;&#xA;&lt;p&gt;Everything was going fine, proofreading of the documentation was in progress,&#xA;a quick &lt;code&gt;git push&lt;/code&gt; with the documentation updates and&amp;hellip; CI FAILED!?! Our&#xA;CI doesn&amp;rsquo;t build the documentation, only tests the core code. I&amp;rsquo;m planning to&#xA;release real soon and something has broken.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PATHspider 1.0.0 released!</title>
      <link>https://irl.xyz/blog/2016/2016w426.2/</link>
      <pubDate>Sat, 22 Oct 2016 00:46:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w426.2/</guid>
      <description>&lt;p&gt;In today&amp;rsquo;s Internet we see an increasing deployment of middleboxes. While&#xA;middleboxes provide in-network functionality that is necessary to keep networks&#xA;manageable and economically viable, any packet mangling — whether essential for&#xA;the needed functionality or accidental as an unwanted side effect — makes it&#xA;more and more difficult to deploy new protocols or extensions of existing&#xA;protocols.&lt;/p&gt;&#xA;&lt;p&gt;For the evolution of the protocol stack, it is important to know which network&#xA;impairments exist and potentially need to be worked around. While classical&#xA;network measurement tools are often focused on absolute performance values,&#xA;&lt;a href=&#34;https://pathspider.net/&#34;&gt;PATHspider&lt;/a&gt; performs A/B testing between two&#xA;different protocols or different protocol extensions to perform controlled&#xA;experiments of protocol-dependent connectivity problems as well as differential&#xA;treatment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Decentralise (in a kind of centralised way)</title>
      <link>https://irl.xyz/blog/2016/2016w402/</link>
      <pubDate>Tue, 04 Oct 2016 17:30:00 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w402/</guid>
      <description>&lt;p&gt;Once a month I am involved in running an informal session, loosely affiliated&#xA;with &lt;a href=&#34;https://www.openrightsgroup.org/&#34;&gt;Open Rights Group&lt;/a&gt; and&#xA;&lt;a href=&#34;http://fsfe.org/&#34;&gt;FSFE&lt;/a&gt;, called &lt;a href=&#34;https://cryptonoise.org/&#34;&gt;Cryptonoise&lt;/a&gt;.&#xA;Cryptonoise explores methods for protecting your digital rights, with a leaning&#xA;towards focusing on privacy, and provides a venue for like minded people to&#xA;meet up and discuss the state of the digital landscape and those that may try&#xA;to infringe on the rights of digital citizens.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve all made it easy for large enterprises and governments to collect masses&#xA;of data about our online activities because we perform most of those activities&#xA;in the same place. Facebook, Google and Twitter spring to mind as examples of&#xA;companies that have grown to dangerous sizes with little competition. This is&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/PRISM_%28surveillance_program%29&#34;&gt;not&lt;/a&gt; paranoia.&#xA;This is&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/MUSCULAR_%28surveillance_program%29&#34;&gt;real&lt;/a&gt;.  We&#xA;make it a lot more difficult when we spread out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Azure from Debian</title>
      <link>https://irl.xyz/blog/2016/2016w386/</link>
      <pubDate>Sat, 24 Sep 2016 23:03:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w386/</guid>
      <description>&lt;p&gt;Around a week ago, I started to play with programmatically controlling Azure. I&#xA;needed to create and destroy a bunch of VMs over and over again, and this&#xA;seemed like something I would want to automate once instead of doing manually&#xA;and repeatedly.  I started to look into the&#xA;&lt;a href=&#34;https://github.com/Azure/azure-sdk-for-python&#34;&gt;azure-sdk-for-python&lt;/a&gt;&#xA;and mentioned that I wanted to look into this in &lt;code&gt;#debian-python&lt;/code&gt;.&#xA;&lt;a href=&#34;http://ardumont.github.io/&#34;&gt;ardumont&lt;/a&gt; from &lt;a href=&#34;https://www.softwareheritage.org/&#34;&gt;Software&#xA;Heritage&lt;/a&gt; noticed me, and was planning to&#xA;package &lt;a href=&#34;https://github.com/Azure/azure-storage-python&#34;&gt;azure-storage-python&lt;/a&gt;.&#xA;We joined forces and started a &lt;a href=&#34;https://qa.debian.org/developer.php?login=pkg-azure-team@lists.alioth.debian.org&#34;&gt;packaging team for Azure-related&#xA;software&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Burgers 2016</title>
      <link>https://irl.xyz/blog/2016/2016w355/</link>
      <pubDate>Fri, 02 Sep 2016 11:20:13 +0100</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w355/</guid>
      <description>&lt;p&gt;Me and Ana travelled to Cambridge last weekend for the Debian UK BBQ. We&#xA;travelled by train and it was a rather scenic journey. In the past, on long&#xA;journeys, I&amp;rsquo;ve used APRS-IS to beacon my location and plot my route but I have&#xA;recently obtained the GPS module for my Yaesu VX-8DE and I thought I&amp;rsquo;d give&#xA;some real RF APRS a go this time.&lt;/p&gt;&#xA;&lt;p&gt;While the APRS IGate coverage in the UK is a little disappointing, as is&#xA;evidenced by the map, a few cool things did happen. I recieved a simplex APRS&#xA;message from a radio amateur 2M0RRT with the text &amp;ldquo;test test IO86ML&amp;rdquo; (but&#xA;unfortunately didn&amp;rsquo;t notice until we&amp;rsquo;d long passed by, sorry for not&#xA;replying!) and quite a few of my packets, sent from a 5 watt handheld in&#xA;Cambridge, were heard by the station M0BPQ-1 in North London (digipeated by&#xA;MB7UM).&lt;/p&gt;</description>
    </item>
    <item>
      <title>MiniDebCamp Vienna 2016</title>
      <link>https://irl.xyz/blog/2016/2016w175/</link>
      <pubDate>Fri, 29 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w175/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m currently in Vienna for &lt;a href=&#34;http://linuxwochen.at/&#34;&gt;MiniDebCamp and MiniDebConf&lt;/a&gt; at FH Technikum Wien, hosted as a part of &lt;a href=&#34;http://linuxwochen.at/&#34;&gt;Linuxwochen Wien&lt;/a&gt;. Today and yesterday have been spent hacking on Debian, and I&amp;rsquo;ve produced a few package updates and closed a few bugs.&lt;/p&gt;&#xA;&lt;h3 id=&#34;scapy&#34;&gt;Scapy&lt;/h3&gt;&#xA;&lt;p&gt;The last update to Scapy in Debian was in August 2011. Bug &lt;a href=&#34;http://bugs.debian.org/773554&#34;&gt;# 773554&lt;/a&gt; was filed in 2014 to request a new upstream version be packaged and in a few days this bug should be closed. As this package is maintained by someone else and I&amp;rsquo;m performing a non-maintainer upload, the upload will sit in the delayed queue for 3 days.&lt;/p&gt;</description>
    </item>
    <item>
      <title>After FOSDEM 2016</title>
      <link>https://irl.xyz/blog/2016/2016w052/</link>
      <pubDate>Sun, 07 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w052/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://fosdem.org/2016/&#34;&gt;FOSDEM&lt;/a&gt; was fun. It was great to see all these open source projects coming together in one place and it was really good to talk to people that were just as enthusiastic about the FOSS activities they do as I am about mine.&lt;/p&gt;&#xA;&lt;p&gt;Thanks go to Saúl Corretgé who looked after the &lt;a href=&#34;https://fosdem.org/2016/schedule/track/real_time/&#34;&gt;real-time communications dev room&lt;/a&gt; and made sure everything ran smoothly. I was very pleased to find that I had to stand for a couple of talks as the room was full with people eager to learn more about the world of RTC.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FOSDEM 2016</title>
      <link>https://irl.xyz/blog/2016/2016w045/</link>
      <pubDate>Fri, 29 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w045/</guid>
      <description>&lt;p&gt;FOSDEM 2016 starts tomorrow and I will be attending. I&amp;rsquo;ve not got off to a brilliant start with my flight being cancelled, though SAS have now rebooked me onto a later flight and I&amp;rsquo;m going to arrive in time for the start tomorrow morning. Unfortunately, I am going to miss the Friday beer event.&lt;/p&gt;&#xA;&lt;p&gt;On the Saturday, the &lt;a href=&#34;https://fosdem.org/2016/schedule/track/real_time/&#34;&gt;real-time communications devroom&lt;/a&gt; will be happening, and I am one of the devroom admins that helped to organise this. There will be a full day of talks and demonstrations about real-time communications using open standards and free software. I&amp;rsquo;m rather excited about this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trust</title>
      <link>https://irl.xyz/blog/2016/2016w016/</link>
      <pubDate>Sat, 09 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2016/2016w016/</guid>
      <description>&lt;p&gt;This is not a new world, this is simply an extension of the old one. I&amp;rsquo;m not&#xA;going to write here about sweeping changes that are happening now, but changes&#xA;that have been taking place in plain sight for many decades. No one has flipped&#xA;a switch, only tweaked and tuned variables here and there to lead us down this&#xA;path. I&amp;rsquo;d like to reflect on where we are now but there is no way I could&#xA;describe how it is we got here, the journey was far too complex and filled with&#xA;ommissions, half-truths and outright lies. It&amp;rsquo;s likely we will never know what&#xA;has brought us here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adventures at London Luton</title>
      <link>https://irl.xyz/blog/2015/2015w536.2/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w536.2/</guid>
      <description>&lt;p&gt;Continuing on my journey home, once again I was asked to step into the&#xA;full-body scanner. This time I was certain that I didn&amp;rsquo;t want to use it, I was&#xA;so angry last time that I had been forced into it that I actually threw up.&lt;/p&gt;&#xA;&lt;p&gt;It wasn&amp;rsquo;t until I was in tears and asking them to take my bags off the plane,&#xA;planning to take the train instead, that they gave me the manual pat-down.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fun in Hamburg Airport</title>
      <link>https://irl.xyz/blog/2015/2015w536.1/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w536.1/</guid>
      <description>&lt;p&gt;Today I&amp;rsquo;m travelling home from 32c3, back to Aberdeen via London from Hamburg Airport. My experience passing through security to get to the gates this morning has angered me to the point that I had to vent.&lt;/p&gt;&#xA;&lt;p&gt;They have full-body scanners installed, which in my opinion are a massive invasion of my personal privacy. As I approached the security checkpoint, I noticed a sign where it stated that use of the scanner was not mandatory and that a manual screening process was available.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Detail on OpenStreetMap</title>
      <link>https://irl.xyz/blog/2015/2015w521/</link>
      <pubDate>Mon, 21 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w521/</guid>
      <description>&lt;p&gt;The OpenStreetMap data model allows for far more detail than would ever be useful to be recorded. For different people, different levels of detail are going to be useful and sometimes it can be hard to decide how much detail to record when out surveying.&lt;/p&gt;&#xA;&lt;p&gt;Obviously, the less detail you record the wider the area you can cover, so there&amp;rsquo;s one trade-off you can consider straight away. In more densely populated areas, you&amp;rsquo;re likely not to be the only person mapping and so you can distribute the workload and tackle higher detail in smaller areas.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Software Efforts (2015W51)</title>
      <link>https://irl.xyz/blog/2015/2015w51/</link>
      <pubDate>Sun, 20 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w51/</guid>
      <description>&lt;p&gt;For the last week I have been stuck in England. For the vast majority of that time, I&amp;rsquo;ve had nothing to do except work on Debian and this blog post documents some of the things I worked on.&lt;/p&gt;&#xA;&lt;p&gt;Obviously spending a whole week on Debian, there&amp;rsquo;s going to be some packaging involved. The following packages got new versions in unstable this last week:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;cowdancer&lt;/li&gt;&#xA;&lt;li&gt;debian-installer-launcher&lt;/li&gt;&#xA;&lt;li&gt;chirp&lt;/li&gt;&#xA;&lt;li&gt;python-flask-rdf&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Packaging updates were one of the simpler tasks tackled this week though. I spent a lot of time this week on Debian Live along with others in the &lt;code&gt;# debian-live&lt;/code&gt; IRC channel. Over the last week we achieved a number of things, possibly the most important being that all the generic live support packages (i.e. &lt;code&gt;live-boot&lt;/code&gt;, &lt;code&gt;live-config&lt;/code&gt; and &lt;code&gt;live-tools&lt;/code&gt;) have now been converted into native packages, have their VCS repositories hosted on Alioth and have seen a good number of patches merged from the BTS and from the old patch system. All future patches will be managed via the BTS for Debian Live, as with other Debian projects.&lt;/p&gt;</description>
    </item>
    <item>
      <title>YubiKey &#43; udev follow-ups</title>
      <link>https://irl.xyz/blog/2015/2015w517/</link>
      <pubDate>Sun, 20 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w517/</guid>
      <description>&lt;p&gt;In my previous post, I talked about the udev hack I had used with the YubiKey and how it was not the correct way to do things. I recieved a lot of feedback on this post, and here I&amp;rsquo;m hoping to summarise what the correct way to do it is.&lt;/p&gt;&#xA;&lt;p&gt;The rule I was originally using was:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SUBSYSTEMS==&amp;#34;usb&amp;#34;, ATTRS{idVendor}==&amp;#34;1050&amp;#34;,ATTRS{idProduct}==&amp;#34;0111&amp;#34;, OWNER=&amp;#34;irl&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The problem with this rule was that it always made my own username the owner of the YubiKey. For my use on my laptop, this was fine, as I&amp;rsquo;m the only user ever logged into my laptop, &lt;strong&gt;but this is not the right way to do this&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>YubiKey NEO as an OpenPGP token</title>
      <link>https://irl.xyz/blog/2015/2015w514/</link>
      <pubDate>Thu, 17 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w514/</guid>
      <description>&lt;p&gt;I was first interested in the idea of using a smartcard to store OpenPGP&#xA;subkeys when I joined the &lt;a href=&#34;http://fsfe.org&#34;&gt;Free Software Foundation Europe&lt;/a&gt; as&#xA;a &lt;a href=&#34;http://fsfe.org/fellowship&#34;&gt;Fellow&lt;/a&gt; and recieved my &lt;a href=&#34;https://fsfe.org/fellowship/card.en.html&#34;&gt;FSFE Fellowship&#xA;Card&lt;/a&gt;. By performing all&#xA;cryptographic operations on the smartcard it would remove almost all the routes&#xA;by which the secret key material could be compromised as the host operating&#xA;system never has access to that secret material.&lt;/p&gt;&#xA;&lt;p&gt;I decided that this was something I wanted to try out and I purchased two&#xA;&lt;a href=&#34;http://cherrycorp.com/product/g83-6644-smart-card-keyboards/&#34;&gt;Cherry G83-6644&#xA;keyboards&lt;/a&gt;. One&#xA;of the nice things I noticed about this product was that it was both FIPS 201&#xA;approved and GOST R approved. If both the Americans and the Russians could&#xA;agree it was a good keyboard, it had a good chance of being a good keyboard.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Amateur Radio and the Internet</title>
      <link>https://irl.xyz/blog/2015/2015w444/</link>
      <pubDate>Thu, 29 Oct 2015 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w444/</guid>
      <description>&lt;p&gt;The Internet is starting to catch on. In a few years time, we may have Internet&#xA;connections in nearly every major city across the UK. The real issue that needs&#xA;to be looked at here is how does this new-fangled technology fit in with&#xA;Amateur Radio?&lt;/p&gt;&#xA;&lt;p&gt;I assist with the running of &lt;a href=&#34;http://radio.57north.org.uk/mb7vx&#34;&gt;MB7VX&lt;/a&gt;, an&#xA;APRS digipeater hosted at the University of Aberdeen. This station is run under&#xA;a NoV issued by Ofcom that states that it can be configured only as an &amp;ldquo;APRS&#xA;Digipeater&amp;rdquo;. The recieved packets from this station are copied to a software&#xA;component that injects the packets into the &lt;a href=&#34;http://aprs-is.net/&#34;&gt;APRS-IS&lt;/a&gt;&#xA;service, which is Internet based.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Donmouth Local Nature Reserve</title>
      <link>https://irl.xyz/blog/2015/2015w117.1/</link>
      <pubDate>Sun, 15 Mar 2015 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w117.1/</guid>
      <description>&lt;p&gt;Yesterday, when I went for the &lt;a href=&#34;https://irl.xyz/aprs-on-hf/&#34;&gt;radio adventure day&lt;/a&gt;, I took my&#xA;camera and took some lovely photos around the beach. The weather was good again&#xA;today and I know I haven&amp;rsquo;t done much photography in a while so I thought I&amp;rsquo;d&#xA;get some more practice in by taking the camera out again.&lt;/p&gt;&#xA;&lt;p&gt;I visited the &lt;a href=&#34;http://www.aberdeencity.gov.uk/community_life_leisure/parks_open_spaces/ranger_service/pos_donmouth.asp&#34;&gt;Donmouth Local Nature&#xA;Reserve&lt;/a&gt;&#xA;which is approximately half a mile from my home on a bearing of 350° from my&#xA;home in Aberdeen. Sorry there&amp;rsquo;s no APRS trace for this adventure, my phone&#xA;still hadn&amp;rsquo;t been charged from yesterday&amp;rsquo;s adventure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Webpage Load Times</title>
      <link>https://irl.xyz/blog/2015/2015w117.2/</link>
      <pubDate>Sun, 15 Mar 2015 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w117.2/</guid>
      <description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gordonjcp ╡ irl: jesus christ, scale your fucking images&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;My &lt;a href=&#34;https://irl.xyz/donmouth/&#34;&gt;last post&lt;/a&gt; about the adventure to the Donmouth Local Nature&#xA;Reserve turned out to have a total page size of 69.2MB. &lt;em&gt;Oops&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m new to using Ghost as a blogging platform, and in the past blogging&#xA;platforms have scaled images for me. It turns out that Ghost does not do this.&#xA;There is currently &lt;a href=&#34;https://github.com/TryGhost/Ghost/issues/4453&#34;&gt;an open issue on GitHub discussing&#xA;this&lt;/a&gt; but I don&amp;rsquo;t think this&#xA;feature will be appearing at any point soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>APRS on HF</title>
      <link>https://irl.xyz/blog/2015/2015w116/</link>
      <pubDate>Sat, 14 Mar 2015 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2015/2015w116/</guid>
      <description>&lt;p&gt;On Thursday, &lt;a href=&#34;http://lists.57north.co/pipermail/57north-discuss/2015-March/001692.html&#34;&gt;an&#xA;email&lt;/a&gt;&#xA;appeared on &lt;a href=&#34;http://57north.co/&#34;&gt;the hackerspace&lt;/a&gt; mailing list proposing an&#xA;adventure to a distant land where we would operate portable amateur radio&#xA;stations. Today I went on an adventure to Burghead, a place by the sea&#xA;approximately 64 miles on a bearing of 305° from my home in Aberdeen. The group&#xA;embarking on this adventure included &lt;a href=&#34;http://hibby.info/&#34;&gt;Hibby&lt;/a&gt; MM3ZRZ,&#xA;&lt;a href=&#34;http://adventurist.me/&#34;&gt;Tom&lt;/a&gt; MM6IRQ, &lt;a href=&#34;http://adventurist.me/&#34;&gt;Ed&lt;/a&gt; MM6MVP and&#xA;Derecho PA1XOR. We travelled by car and beaconed our journey with APRS-IS on&#xA;the way.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing MediaGoblin on FreeBSD</title>
      <link>https://irl.xyz/blog/2014/2014w257/</link>
      <pubDate>Sun, 13 Jul 2014 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2014/2014w257/</guid>
      <description>&lt;p&gt;GNU MediaGoblin is a web application for hosting and sharing media. At 57North Hacklab, we currently have a Flickr group but to post to Flickr it is necessary to have a Yahoo! account and this seems like an unreasonable requirement to impose on members that want to share photos. This led to me setting up MediaGoblin. Hopefully it will also be useful for sharing other forms of media beyond photos too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Streaming APRS data over XMPP</title>
      <link>https://irl.xyz/blog/2014/2014w286/</link>
      <pubDate>Sat, 12 Jul 2014 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2014/2014w286/</guid>
      <description>&lt;p&gt;I’ve recently started playing with radios again and I’ve been looking mainly at&#xA;packet radio. APRS is a system which uses amateur radio to transmit position&#xA;reports, weather reports, and messages between users. There is an Internet&#xA;backbone for APRS called APRS-IS that can be used to access a filtered feed of&#xA;APRS broadcasts. I thought it would be nice if such a feed were also available&#xA;via XMPP so set about building a gateway.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Code The City - Day One</title>
      <link>https://irl.xyz/blog/2014/2014w256/</link>
      <pubDate>Sat, 21 Jun 2014 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2014/2014w256/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://codethecity.org/&#34;&gt;CodeTheCity&lt;/a&gt; is an event that I was loosely involved in organising that we’re now half way through. It’s all about rapid prototyping of services for the community. While the event is structured as a hackathon, many of those invited were not coders at all and a few times I heard mix ups like confusing Windows with Office and anti-virus software with a firewall. You would think that at an event where the aim is to produce a prototype these people might hold hacks back but it became apparent quickly that the domain knowledge they had could help jumpstart a project. The developers in the teams seemed to code with more confidence knowing they’d got the requirements directly from the person that would be using the system.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debian Med Sprint 2014</title>
      <link>https://irl.xyz/blog/2014/2014w064/</link>
      <pubDate>Thu, 06 Feb 2014 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2014/2014w064/</guid>
      <description>&lt;p&gt;Last weekend, I attended the &lt;a&#xA;href=&#34;http://https://wiki.debian.org/DebianMed/Meeting/Aberdeen2014&#34;&#xA;target=&#34;_blank&#34;&gt;Debian Med Sprint for 2014&lt;/a&gt; in Stonehaven, Aberdeen. The&#xA;event was essentially an unconference hackathon with a few untalks.&lt;/p&gt;&#xA;&lt;p&gt;On the Saturday, I participated in &lt;a href=&#34;http://people.debian.org/~tille/&#34;&#xA;target=&#34;_blank&#34;&gt;Andreas&lt;/a&gt;‘ live packaging session where we packaged &lt;a&#xA;href=&#34;https://github.com/lh3/seqtk&#34; target=&#34;_blank&#34;&gt;seqtk&lt;/a&gt; and &lt;a&#xA;href=&#34;http://http://dnaclust.sourceforge.net/&#34; target=&#34;_blank&#34;&gt;dnaclust&lt;/a&gt;. I&#xA;found the documentation for dnaclust and produced a man page for inclusion in&#xA;the package.&lt;/p&gt;&#xA;&lt;p&gt;With my new Debian packaging knowledge, I packaged a personal project &lt;a&#xA;href=&#34;http://github.com/irl/python-fitbitscraper&#34;&#xA;target=&#34;_blank&#34;&gt;python-fitbitscraper&lt;/a&gt; as &lt;a&#xA;href=&#34;http://http://anonscm.debian.org/gitweb/?p=debian-med/python3-fitbitscraper.git&#34;&#xA;target=&#34;_blank&#34;&gt;python3-fitbitscraper&lt;/a&gt; in Debian. This effort ran to the end&#xA;of the sprint.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dreaming of a secure browser</title>
      <link>https://irl.xyz/blog/2013/2013w323/</link>
      <pubDate>Wed, 07 Aug 2013 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2013/2013w323/</guid>
      <description>&lt;p&gt;The web used to be simple. It used to be a place where you could go and find&#xA;reference materials, news and discussions about just about anything. All this&#xA;content was wrapped up in HTML, maybe with some CSS to give it a tidier look,&#xA;and served over HTTP. Unfortunately this is no longer the case. You can no&#xA;longer survive on the web with cookies or JavaScript disabled as websites have&#xA;been designed expecting that people will have those features available in their&#xA;browser. On top of that, not satisfied with HTML, CSS and JavaScript (which, by&#xA;the way, is &lt;a href=&#34;http://en.wikipedia.org/wiki/Turing_completeness&#34;&#xA;target=&#34;_blank&#34;&gt;Turing-compatible&lt;/a&gt; – there is not really a need for anything&#xA;beyond JavaScript for client side scripting in the browser) we’ve got &lt;a&#xA;href=&#34;http://get.adobe.com/flashplayer/?&amp;amp;utsm=0350cae61f6576b&#34;&#xA;target=&#34;_blank&#34;&gt;Adobe Flash&lt;/a&gt;, &lt;a&#xA;href=&#34;http://www.microsoft.com/silverlight/&#34; target=&#34;_blank&#34;&gt;Microsoft&#xA;Silverlight&lt;/a&gt; and &lt;a href=&#34;http://www.java.com/en/&#34; target=&#34;_blank&#34;&gt;Java&#xA;applets&lt;/a&gt; too. Because these technologies exist, they are used, and anyone&#xA;attempting to visit a site using them will have a pretty difficult time in&#xA;navigating it without allowing the code, that you’ve likely never seen the&#xA;source to and have no reason to trust, to run on &lt;em&gt;your&lt;/em&gt; computer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Full disk encryption on OpenBSD 5.3</title>
      <link>https://irl.xyz/blog/2013/2013322/</link>
      <pubDate>Tue, 06 Aug 2013 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2013/2013322/</guid>
      <description>&lt;p&gt;Full disk encryption is becoming (it should always have been) more popular. When your laptop gets stolen, a login password is only a minor inconvenience to a hacker trying to steal your identity. Pop in a live CD or USB stick with Knoppix or Backtrack (or in fact basically any Linux distribution) and all your information is there for the attacker to use to steal your identity, impersonate you online and perhaps even empty your bank accounts. By booting not into the installed operating system, but into their own, the computer obeys the attacker and any protection your login password could have offered is irrelevant as the installed operating system isn’t running. If an attacker has physical access to a machine and enough time, it becomes the attacker’s machine, but the data doesn’t have to become that attacker’s data. This is where full disk encryption comes in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ludum Dare 24: Update 3</title>
      <link>https://irl.xyz/blog/2012/2012w347.2/</link>
      <pubDate>Sun, 26 Aug 2012 12:00:03 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w347.2/</guid>
      <description>&lt;p&gt;I have loaded my game into a git repository now and uploaded it to&#xA;GitHub. You can find the repository at:&#xA;&lt;a href=&#34;https://github.com/irl/la-cucina&#34;&gt;https://github.com/irl/la-cucina&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I have also uploaded some instructions and a base64 encoded archive for&#xA;JS/Linux and you can find them &lt;a href=&#34;https://gist.github.com/3474363&#34;&gt;in a&#xA;gist&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Only a short update this time but this is a milestone for me as whatever&#xA;happens now, I have a playable game I can submit.&lt;/p&gt;&#xA;&lt;p&gt;Tom has now come back into the room and has started working on his entry&#xA;again. Let&amp;rsquo;s hope today was as interesting, exciting and educational as&#xA;yesterday.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ludum Dare 24: Update 2</title>
      <link>https://irl.xyz/blog/2012/2012w347.1/</link>
      <pubDate>Sun, 26 Aug 2012 12:00:02 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w347.1/</guid>
      <description>&lt;p&gt;I seem to be the only one still going in Room 205 at the moment.&#xA;Everyone else has gone home for some sleep before continuing. I may have&#xA;made an error in marching on, but only time will tell. There&amp;rsquo;s now about&#xA;18 hours to go and I have a playable game.&lt;/p&gt;&#xA;&lt;p&gt;As I&amp;rsquo;ve mentioned in my previous posts during this Ludum Dare &amp;ldquo;compo&amp;rdquo;,&#xA;my game is written in pure C using ncurses. You play the role of a pizza&#xA;chef that has to make pizzas. I intended to have a steep learning curve&#xA;to the game and I believe I have achieved that. This forces the player&#xA;to evolve, a twist on the theme where I imaging most games will have&#xA;either the character in the game or game elements doing the evolving.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ludum Dare 24: Update 1</title>
      <link>https://irl.xyz/blog/2012/2012w346.2/</link>
      <pubDate>Sat, 25 Aug 2012 12:00:01 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w346.2/</guid>
      <description>&lt;p&gt;The AUCS meetup is continuing and everyone is making progress. When I&#xA;arrived at 12pm, everyone was already in Room 205 and busy working on&#xA;their games.&lt;/p&gt;&#xA;&lt;p&gt;Progress seems to have stalled at the moment as people are hitting&#xA;blocks and tricky to solve problems now their basics are in. &lt;a href=&#34;http://adventurist.me/&#34;&gt;Tom&#xA;Jones&lt;/a&gt; was having touble with &amp;ldquo;font rondering&amp;rdquo; (sic) but has now fixed&#xA;this by not rendering fonts.&lt;/p&gt;&#xA;&lt;p&gt;I have made good progress with my Pizza game&amp;rsquo;s UI and basic logic,&#xA;although the bulk of the logic is yet to be written.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ludum Dare 24</title>
      <link>https://irl.xyz/blog/2012/2012w346.1/</link>
      <pubDate>Sat, 25 Aug 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w346.1/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.ludumdare.com/&#34;&gt;Ludum Dare&lt;/a&gt; is a world renowned rapid game development&#xA;competition which started in 2002 and has since increased in&#xA;popularity due to the participation of professionals such as&#xA;&lt;a href=&#34;http://www.twitter.com/notch&#34;&gt;Notch&lt;/a&gt;, the creator of &lt;a href=&#34;http://www.minecraft.net/&#34;&gt;Minecraft&lt;/a&gt;. Since Ludum Dare 22, the&#xA;&lt;a href=&#34;http://www.aucs.co/&#34;&gt;Aberdeen University Computing Science Society&lt;/a&gt; has hosted&#xA;meetups in &lt;a href=&#34;http://www.room205.org/&#34;&gt;Room 205&lt;/a&gt;, Meston Building at the University of&#xA;Aberdeen.&lt;/p&gt;&#xA;&lt;p&gt;Our meetup started at 6pm on the 24th of August, which as I write this&#xA;was now yesterday. We ate calzones from a local takeaway and then&#xA;watched Blade Runner on the Room 205 television. After the film, we all&#xA;began to brush up on our programming skills whilst waiting for the&#xA;theme announcement. The Ludum Dare IRC channel was shown on the&#xA;television while we waited.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mosh in a lift</title>
      <link>https://irl.xyz/blog/2012/2012w343/</link>
      <pubDate>Wed, 22 Aug 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w343/</guid>
      <description>&lt;p&gt;Every quater, me and my flatmate pay about £80 to the Aberdeen City&#xA;Council for maintainence of the lifts in our building. As I write this, I&#xA;am trapped in one of these lifts. It appears that none of the buttons&#xA;work except for the alarm button. You&amp;rsquo;d think this would connect you to&#xA;an operator somewhere who would dispatch a repair team, but no. This&#xA;sounds a loud alarm and nothing else.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debian installer, non-free firmware, one USB stick</title>
      <link>https://irl.xyz/blog/2012/2012w341.1/</link>
      <pubDate>Mon, 20 Aug 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w341.1/</guid>
      <description>&lt;p&gt;As part of my job, I&amp;rsquo;ve had to re-install Linux on one of our Dell&#xA;Poweredge servers. This is something I can do in my sleep, so this didn&amp;rsquo;t&#xA;bother me, until the installer asked for some non-free firmware. This is&#xA;quite common with Dell PowerEdge servers I&amp;rsquo;ve found. The same thing&#xA;occured when I was setting up the Computing Society&amp;rsquo;s server. The files I&#xA;needed were the same both times:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Streaming video over Gopher</title>
      <link>https://irl.xyz/blog/2012/2012w341.2/</link>
      <pubDate>Mon, 20 Aug 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w341.2/</guid>
      <description>&lt;p&gt;Yesterday on the &lt;a href=&#34;http://lists.alioth.debian.org/mailman/listinfo/gopher-project&#34;&gt;gopher-project&lt;/a&gt; mailing list, Wolfgang Faust gave a&#xA;Gopher link to a streaming text file showing the current server time.&#xA;Today, with his help, I have got video streaming over Gopher. In webcam&#xA;streaming, Motion JPEG over HTTP is the defacto standard. The problem&#xA;with Motion JPEG is that it is not actually a file format but a method&#xA;of sending single JPEG frames over HTTP, one after another, as a MIME&#xA;multipart document.&lt;/p&gt;</description>
    </item>
    <item>
      <title>last.fm is back in my life</title>
      <link>https://irl.xyz/blog/2012/2012w337/</link>
      <pubDate>Sun, 19 Aug 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w337/</guid>
      <description>&lt;p&gt;It seems &lt;a href=&#34;http://last.fm/&#34;&gt;last.fm&lt;/a&gt; is making a reappearance in my life once again. It&#xA;seems to fade in and out, but one of my long-term projects is to record&#xA;data about myself, produce some graphs and see   if I can learn a bit&#xA;more about myself.&lt;/p&gt;&#xA;&lt;p&gt;One of the biggest problems I face with last.fm, that I&amp;rsquo;m sure others&#xA;also face, is making sure the data gets there. I cannot fault last.fm for&#xA;the audioscrobbler API as it&amp;rsquo;s well documented   and anyone can implement&#xA;a client but I found a couple of instances where no one has.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Security. When is it overkill?</title>
      <link>https://irl.xyz/blog/2012/2012w335/</link>
      <pubDate>Fri, 17 Aug 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w335/</guid>
      <description>&lt;p&gt;My answer to this question is usually never for anything I&amp;rsquo;m setting up&#xA;for myself, as long as it&amp;rsquo;s economically viable and allows me timely&#xA;access to any data, process or network I need to access. I haven&amp;rsquo;t, for&#xA;example, decided to live in a fallout shelter with a huge bulkhead door&#xA;as the only entrance to keep anyone from gaining physical access to my&#xA;computer. If it was economically viable though, I would. There is always&#xA;a trade-off with security against convienience but&#xA;deliberately introducing flaws in the security of a system purely for&#xA;convinience doesn&amp;rsquo;t seem like a good idea to me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Days 4 and 5 - Thursday and Friday</title>
      <link>https://irl.xyz/blog/2012/2012w125/</link>
      <pubDate>Fri, 23 Mar 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w125/</guid>
      <description>&lt;p&gt;My only scheduled session on Thursday started at 2pm, so I didn&amp;rsquo;t go into&#xA;Uni until I&amp;rsquo;d made sure that I had a good lunch. The session was a&#xA;practical for Distributed Systems, although no task was set, only to work&#xA;on the assessment due the next day. Some had nearly finished, some had&#xA;finished and some had hardly started.&lt;/p&gt;&#xA;&lt;p&gt;Our group project normally meets on a Friday morning, but we had already&#xA;agreed that this would be moved to Monday due to the deadline.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Day 3 - Wednesday</title>
      <link>https://irl.xyz/blog/2012/2012w123/</link>
      <pubDate>Wed, 21 Mar 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w123/</guid>
      <description>&lt;p&gt;My first timetabled session on a Wednesday is a lecture for Distributed&#xA;Systems. I overslept and had missed the first half hour of this lecture&#xA;by the time I got into Uni. Rather than turn up to the lecture late, I&#xA;went straight to &lt;a href=&#34;http://www.room205.org/&#34;&gt;Room 205&lt;/a&gt; to look at the&#xA;lecture slides online.&lt;/p&gt;&#xA;&lt;p&gt;I then started on the Enterprise Computing practical. This is scheduled&#xA;at 12pm and runs until 2pm but I run the &lt;a href=&#34;http://www.aucs.co/&#34;&gt;Computing Science&#xA;Society&lt;/a&gt; helpdesk in &lt;a href=&#34;http://www.room205.org/&#34;&gt;Room&#xA;205&lt;/a&gt; every Wednesday from 1pm and so I never&#xA;make it to this practical. If I have any problems during the practical, I&#xA;speak to Bruce, the lecturer, after the next Enterprise Computing lecture.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Day 2 - Tuesday</title>
      <link>https://irl.xyz/blog/2012/2012w122/</link>
      <pubDate>Tue, 20 Mar 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w122/</guid>
      <description>&lt;p&gt;Tuesday is my busiest timetabled day. The first lecture is at 10am, for&#xA;Distributed Systems. The topic of the lecture was network security. This&#xA;is an area I am interested in and have done a lot of reading about before&#xA;the lecture but there were still new concepts being introduced and others&#xA;that I didn&amp;rsquo;t understand fully being better explained.&lt;/p&gt;&#xA;&lt;p&gt;Directly after this was another lecture, this time for CS3518. This&#xA;lecture continued on yesterday&amp;rsquo;s lecture talking about Computability and&#xA;Complexity.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Day 1 - Monday</title>
      <link>https://irl.xyz/blog/2012/2012w121.2/</link>
      <pubDate>Mon, 19 Mar 2012 12:00:01 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w121.2/</guid>
      <description>&lt;p&gt;On a Monday, I do not have any timetabled classes until 1pm. Typically&#xA;though, I will get in earlier than this to deal with any emails or small&#xA;jobs that may have appeared over the weekend. Before my first lecture, at&#xA;around 11:30am, I go to Subway for lunch. There is a group of us that go&#xA;for this and the reason we aim for half past is because at 12pm, everyone&#xA;that has left a lecture and is looking for lunch will join the queue at&#xA;Subway meaning a massive wait.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A week in the life</title>
      <link>https://irl.xyz/blog/2012/2012w121.1/</link>
      <pubDate>Mon, 19 Mar 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w121.1/</guid>
      <description>&lt;p&gt;Every day this week I will be posting here to this blog to try to&#xA;communicate to you, the reader of this blog, whoever you may be, what the&#xA;average week in the life of a Computing Science student is all about.&lt;/p&gt;&#xA;&lt;p&gt;I study at the University of Aberdeen where my course lasts for four&#xA;years. I&amp;rsquo;m currently about half way through the second half of my third&#xA;year at the moment. I&amp;rsquo;m studying five courses in this semester.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Leaving the bubble</title>
      <link>https://irl.xyz/blog/2012/2012w011/</link>
      <pubDate>Mon, 02 Jan 2012 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2012/2012w011/</guid>
      <description>&lt;p&gt;Christmas and the New Year are now behind us, and for many a welcome&#xA;break from reality. For me, it&amp;rsquo;s quite the opposite. I leave the nice&#xA;friendly bubble that the University life creates and re-enter the real&#xA;world. At University, I am funded by both my student loan and occasional&#xA;work for the University. Money troubles rarely occur and thus I can spend&#xA;my time learning by either reading fascinating articles (or slightly less&#xA;fascinating lecture slides) and implementing really cool things like&#xA;those I have created in &lt;a href=&#34;http://www.room205.org/&#34;&gt;Room 205&lt;/a&gt;. It is odd,&#xA;and exciting, to think that one day I will be plunged into this &amp;ldquo;real&amp;rdquo;&#xA;world where a lot of my friends from college already are.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ludum Dare 22</title>
      <link>https://irl.xyz/blog/2011/2011w507/</link>
      <pubDate>Sun, 18 Dec 2011 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2011/2011w507/</guid>
      <description>&lt;p&gt;Whilst not participating in the actual event, I have been learning about&#xA;Python and PyGame this weekend. Initially, me and two others were going&#xA;to work as a group, but later it became apparent that our sleep patterns&#xA;were not syncing up at all which made this all but impossible. As a&#xA;result, a playable, actually quite fun, game has risen from my &amp;ldquo;messing&#xA;about to get some ideas&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Titled &amp;ldquo;Kitten&amp;rsquo;s Missions&amp;rdquo;, the player takes the role of a cat that must&#xA;go on missions and then return to it&amp;rsquo;s friends. There are currently two&#xA;missions; the first begins where the kitten is lost, but on it&amp;rsquo;s way to a&#xA;party. On the way, the kitten must collect enough beer for itself and the&#xA;three kitten friends.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Windows 3.11 in DosBox</title>
      <link>https://irl.xyz/blog/2011/2011w316/</link>
      <pubDate>Sat, 06 Aug 2011 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2011/2011w316/</guid>
      <description>&lt;p&gt;This is my first ever attempt at a video howto guide. By the end of this&#xA;video, you will have installed Windows 3.11 and all the important drivers&#xA;into a DOSBox system that you can start from your desktop, taskbar or&#xA;start menu.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.youtube.com/watch?v=Z8t5yYpC4eA&#34;&gt;Part 1&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.youtube.com/watch?v=ZPfO2eFKJhw&#34;&gt;Part 2&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;ingredients&#34;&gt;Ingredients&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Windows 3.11 installation media (don&amp;rsquo;t ask me for this, try eBay or a&#xA;local charity shop)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://dl.dropbox.com/u/7801769/s3drivers.zip&#34;&gt;Video Driver&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://dl.dropbox.com/u/7801769/SB16W3x.zip&#34;&gt;Sound Card Driver&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://dl.dropbox.com/u/7801769/IBMJOY.zip&#34;&gt;Joystick Driver&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;credit&#34;&gt;Credit&lt;/h3&gt;&#xA;&lt;p&gt;A forum post by Dominus at vogons.zetafleet.com was an invaluable&#xA;resource in compiling this video. Thanks. (:&lt;/p&gt;</description>
    </item>
    <item>
      <title>High-latency messaging via lego robot courier</title>
      <link>https://irl.xyz/blog/2011/2011w191/</link>
      <pubDate>Mon, 09 May 2011 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2011/2011w191/</guid>
      <description>&lt;p&gt;Wireless doesn&amp;rsquo;t necessarily have to mean radio waves. If you&amp;rsquo;re worried&#xA;about people listening in on your conversations, why not use a courier&#xA;instead?&lt;/p&gt;&#xA;&lt;p&gt;This is a solution I developed as part of my degree programme at the&#xA;University of Aberdeen. At each end are two VT100 terminals, these&#xA;connect to the robot through tin foil contacts at each end of the board.&#xA;A switch on the robot lets it know that it&amp;rsquo;s hit the wall and (hopefully)&#xA;docked with the contacts. The robot then spits out any message it was&#xA;carrying and asks for another message by displaying a prompt on the&#xA;terminal and then storing the input. Once the Enter key has been&#xA;hit, it travels back again to the other terminal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Starting with Python</title>
      <link>https://irl.xyz/blog/2010/2010w501.2/</link>
      <pubDate>Mon, 13 Dec 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w501.2/</guid>
      <description>&lt;p&gt;For absolutely ages I’ve been wanting to start to learn Python, but I always&#xA;find it hard to think of a system to try and implement that will test me and&#xA;force me to learn things I don’t already know. Luckily, where I’m learning Java&#xA;as part of my University degree, there’s a whole load of problems to solve and&#xA;all I have to do is translate them into Python.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WordPress Projects</title>
      <link>https://irl.xyz/blog/2010/2010w501/</link>
      <pubDate>Mon, 13 Dec 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w501/</guid>
      <description>&lt;p&gt;So, I’ve been working on the Last.FM plugin, which got slightly out of hand&#xA;when I tried to add a new post type to WordPress for music reviews and then&#xA;integrate it with Last.FM. It might be an interesting project to work on, but&#xA;not at the moment. I have too much else going on including SpaceBarPlus stuff.&lt;/p&gt;&#xA;&lt;p&gt;I’m going to focus my time for the next few weeks on:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adapa’s Last.FM plugin for WordPress</title>
      <link>https://irl.xyz/blog/2010/2010w496/</link>
      <pubDate>Sat, 11 Dec 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w496/</guid>
      <description>&lt;p&gt;Over the last few days, you may have noticed the “Music” link appear on my&#xA;navigation bar. Music, and the pages under Music, are generated by a new plugin&#xA;I’ve written to allow the inclusion of Last.FM information on WordPress pages.&lt;/p&gt;&#xA;&lt;p&gt;I’ve used other Last.FM plugins for WordPress before, but never found one that&#xA;had everything I wanted. For this reason, I’m in the process of creating the&#xA;most comprehensive Last.FM plugin to ever have existed. If you have any feature&#xA;requests, you can leave a comment on this post and I’ll implement it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>All aboard for the Imagine Cup</title>
      <link>https://irl.xyz/blog/2010/2010w494/</link>
      <pubDate>Thu, 09 Dec 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w494/</guid>
      <description>&lt;p&gt;The Imagine Cup is about saving the world through technology. It’s about&#xA;showcasing what you can do by building a solution on a Microsoft platform. It’s&#xA;about securing the next generation of talented software developers, and your&#xA;last chance to enter is now. You can solve problems, give your career options a&#xA;boost, and have fun while doing so.&lt;/p&gt;&#xA;&lt;p&gt;At 23:59 on Friday 10th December (that’s tomorrow night) the first round of the&#xA;Imagine Cup closes for the UK – this means that, after that point, you won’t be&#xA;able to enter the Software Design and Embedded Development sections of the&#xA;Imagine Cup for this year.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Display driver updates on the Li3710</title>
      <link>https://irl.xyz/blog/2010/2010w491.1/</link>
      <pubDate>Mon, 06 Dec 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w491.1/</guid>
      <description>&lt;p&gt;As you’ll see in a previous post, I reverted to Windows on my Amilo, in order&#xA;to play Steam games. I was very disappointed to discover that on running L4D2,&#xA;my system blue screened and then rebooted. After some Google-ing, I discovered&#xA;that there are a lot of idiots in the world. From Yahoo! Canada Answers:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;There are 3 step to repair blue screen crash error&lt;/p&gt;&#xA;&lt;p&gt;If you got blue screen crash error then there is a 94% chance that your computer has registry problems. To repair blue screen crash error you need to follow the steps below:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows XP PowerToys</title>
      <link>https://irl.xyz/blog/2010/2010w491.2/</link>
      <pubDate>Mon, 06 Dec 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w491.2/</guid>
      <description>&lt;p&gt;I always found that the Microsoft PowerToys to be very useful, but you never really hear about them. Hence, here is my review of the Microsoft PowerToys for Windows XP.&lt;/p&gt;&#xA;&lt;p&gt;Microsoft PowerToys is a set of programs provided by Microsoft for the Windows operating system. PowerToys are not integrated into Windows since they are released after the public release of a Windows operating system. They are also not under technical support because they do not undergo the same rigorous testing that the operating system components do.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Windows XP on the Fujitsu Amilo Li3710</title>
      <link>https://irl.xyz/blog/2010/2010w486/</link>
      <pubDate>Sat, 04 Dec 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w486/</guid>
      <description>&lt;p&gt;My Amilo originally came with Windows Vista installed, which in my opinion was a terrible operating system, and Windows 7 is no better. I want to use applications, not the OS, and Microsoft increasingly does not understand this concept. I was happy with Ubuntu as the sole OS running on the machine for a time, but later found that I did actually need to run some Windows specific applications that did not run well in Wine (i.e. Steam).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snow, snow and more snow</title>
      <link>https://irl.xyz/blog/2010/2010w477/</link>
      <pubDate>Sun, 28 Nov 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w477/</guid>
      <description>&lt;p&gt;People back home are telling me that I’m lucky to have snow, but I’m not really&#xA;seeing it that way. You may remember my post from last year (which appears to&#xA;have been lost somewhere) in which I commented on how much I hate snow.&lt;/p&gt;&#xA;&lt;p&gt;Well, here’s pretty much the same thing all over again:&lt;/p&gt;&#xA;&lt;p&gt;I just went to the shops, a trip that should only have taken around 20 minutes&#xA;to get there and back, but it took me nearly an hour. During this trip:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Plans for SpaceBarOS</title>
      <link>https://irl.xyz/blog/2010/2010w474/</link>
      <pubDate>Thu, 25 Nov 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w474/</guid>
      <description>&lt;p&gt;I am planning to branch SpaceBarOS to form SpaceBarPlus. Whilst all the core&#xA;functionality will be retained, there will be changes. The biggest of these&#xA;changes will be that the space bar monitoring will be performed by an&#xA;application that will be loaded by the kernel. A full API will be documented&#xA;and others can choose to use the SpaceBarPlus platform in order to develop&#xA;their applications.&lt;/p&gt;&#xA;&lt;p&gt;New features in the kernel will include:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Phone 7</title>
      <link>https://irl.xyz/blog/2010/2010w434/</link>
      <pubDate>Thu, 28 Oct 2010 12:00:00 +0000</pubDate>
      <guid>https://irl.xyz/blog/2010/2010w434/</guid>
      <description>&lt;p&gt;Windows Phone 7. It’s a new operating system for phones.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“Windows Phone 7 is easily the most unique UI in the smartphone race right&#xA;now, and the real perk here is that it doesn’t just seem like an arbitrary&#xA;decision to make things look different than other OSs — there is real purpose&#xA;and utility to a lot of what Microsoft has come up with.” – Engadget&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;My last Windows phone was a while ago, when I was still in secondary school. It&#xA;was the HTC Typhoon (Orange C500), and I absolutely loved it. Outlook is&#xA;without a doubt one of the best applications ever produced by Microsoft in my&#xA;opinion, and I used it to organise my whole life. Email, calendar, contacts and&#xA;todo lists were all organised in Outlook, and with the C500, I could take them&#xA;all with me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SpaceBarOS</title>
      <link>https://irl.xyz/wiki/sbos/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://irl.xyz/wiki/sbos/</guid>
      <description>&lt;p&gt;SpaceBarOS is a lightweight spacebar-oriented operating system for the x86&#xA;platform.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../../stuff/sbos/screenshot.png&#34; alt=&#34;SpaceBarOS Screenshot&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To get started with SpaceBarOS, using a Debian-like system:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo apt install build-essential nasm qemu-system-x86&#xA;git clone https://github.com/irl/SpaceBarOS.git&#xA;cd SpaceBarOS&#xA;make run&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;SpaceBarOS will then launch in QEMU.&lt;/p&gt;&#xA;&lt;p&gt;A &lt;a href=&#34;../../stuff/sbos/sim.html&#34;&gt;JavaScript based simulator of SpaceBarOS&lt;/a&gt; is&#xA;available for those that would like to have the experience of running it&#xA;without having to set up a VM or finding a PC to run it on.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
