<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="joebutton.co.uk/feed.xml" rel="self" type="application/atom+xml" /><link href="joebutton.co.uk/" rel="alternate" type="text/html" /><updated>2025-07-26T18:09:22+00:00</updated><id>joebutton.co.uk/feed.xml</id><title type="html">joebutton.co.uk</title><subtitle>Website of Joe Button</subtitle><entry><title type="html">Filmhose - Listings for London’s independent and arts cinemas</title><link href="joebutton.co.uk/blog/2025/07/26/filmhose-launch.html" rel="alternate" type="text/html" title="Filmhose - Listings for London’s independent and arts cinemas" /><published>2025-07-26T12:30:17+00:00</published><updated>2025-07-26T12:30:17+00:00</updated><id>joebutton.co.uk/blog/2025/07/26/filmhose-launch</id><content type="html" xml:base="joebutton.co.uk/blog/2025/07/26/filmhose-launch.html"><![CDATA[<h2 id="the-problem">The problem</h2>

<p>London is very well served for independent cinemas, often showing classics, obscura and independent films that mainstream cinemas don’t have.</p>

<p>But, it’s not trivial to find or keep track of the films you’re interested in. There’s no way to search for a film across all the cinemas, or even to see what’s on today, without painstakingly checking all the individual cinema sites. It’s very easy to miss a rare theatrical showing of a beloved film.</p>

<h2 id="filmhoseuk">filmhose.uk</h2>

<p>So, I made <a href="https://filmhose.uk">filmhose.uk</a>.</p>

<p><a href="https://filmhose.uk">FilmHose</a> lets you browse each day’s listings for the next couple of months. You can choose between the <a href="https://filmhose.uk/hosepipe">full listings</a> or the <a href="https://filmhose.uk/distilled">“distilled”</a> listings, which have less noise from the big current releases that you can see “anywhere”. You can also select only the cinemas you’re interested in, if you don’t think you’ll ever make it to Romford or whatever (although the <a href="https://www.lumiereromford.com/">Lumiere Romford</a> is cool, you should make the effort). You can also <a href="https://filmhose.uk/titles">search by title</a> if you want to know where and when a specific film will be showing.</p>

<h2 id="a-few-wrinkles">A few wrinkles</h2>

<p>A more commercially focused post would probably skip this section, but I’m not that so I’ll share some caveats:</p>

<ul>
  <li>Some cinemas’ websites are not easy to scrape. In fact broadly speaking I’d say, the cooler the cinema, the more likely it is they do their website in some ad-hoc way that’s difficult to scrape automatically. At the moment I don’t have these, which is a pity:
    <ul>
      <li><a href="https://thenickel.co.uk">The Nickel</a></li>
      <li><a href="https://www.davidleancinema.org.uk">David Lean Cinema</a></li>
      <li><a href="http://www.cinemamuseum.org.uk">Cinema Museum, Kennington</a></li>
      <li><a href="https://www.theatreship.co.uk">Theatreship, Canary Wharf</a></li>
      <li><a href="https://www.sandsfilms.co.uk">Sands Films</a></li>
    </ul>

    <p>At some point maybe I’ll just ask them if I can have their listings, like it’s the twentieth century or something. Or some of them have few enough that I could enter them manually. But for now I’m just doing the lazy thing and omitting them.</p>
  </li>
  <li>There’s a quite narrow focus on independent / arts cinemas. I’m not necessarily against adding the big chains (Odeon, Vue etc), but for nerds like me the indies’ listings will be more interesting. Maybe one day.</li>
  <li>I’m relying on the scraped titles, which aren’t necessarily very consistent. Eg. some cinemas will have “Lilo and Stitch”, others will have “Lilo &amp; Stitch”. There’s a lot of titles like “Amadeus [40th Anniversary]”. I’ve tried to <a href="https://github.com/Joeboy/cinescrapers/blob/main/src/cinescrapers/title_normalization.py">normalize these a bit</a> for sorting and matching purposes, but it’s far from perfect. This means 1) the stats above are a bit unreliable, because they’re based on the scraped titles 2) It’s not easy to do things like automatically get interesting data like directors, release years etc. Although I might still see if I can figure out a way that mostly works well enough.</li>
  <li>I’m automatically generating the film thumbnails from images found on the cinemas’ websites. Because these could have any dimensions, I’m cropping them to be square. I’m trying to be <a href="https://github.com/Joeboy/cinescrapers/blob/581a66cd654055b4150e6244e42d2ee616221253/src/cinescrapers/utils.py#L77">slightly clever</a> when doing the cropping, but sometimes it makes suboptimal choices. I think it’s mostly good enough. Originally I was quite hesitant to have the thumbnails at all, but people told me the site looked too boring.</li>
</ul>

<h2 id="but-overall">But overall</h2>

<p>So far it seems to be working out pretty well. I’m able to get data for <a href="https://filmhose.uk/cinemas">27 cinemas</a>, currently covering <a href="https://filmhose.uk/titles">about 700 separate films</a>, <a href="https://filmhose.uk/hosepipe">2500 showtimes</a>, with an average of 36 film options and 67 showtimes per day. Film lovers in London are pretty blessed, especially when you consider that’s not including the big chains.</p>

<p>The site loads very quickly and has very little extraneous nonsense, for me it’s easily the best way to see what’s on that’s interesting. I hope other people will find that too.</p>

<h2 id="where-do-i-sign-up">Where do I sign up?</h2>

<p>You can’t, it’s a free website with no login. Just go to <a href="https://filmhose.uk">filmhose.uk</a>.</p>

<p>But if you really want to sign up for something you can follow on <a href="https://x.com/FilmHose">X / Twitter</a> or <a href="https://bsky.app/profile/filmhose.bsky.social">Bluesky</a>.</p>]]></content><author><name></name></author><category term="blog" /><category term="movies" /><category term="films" /><category term="cinema" /><category term="classic" /><category term="london" /><category term="aggregated" /><category term="listings" /><category term="repertory" /><summary type="html"><![CDATA[The problem]]></summary></entry><entry><title type="html">I own too many lenses</title><link href="joebutton.co.uk/blog/2022/05/20/too-many-lenses.html" rel="alternate" type="text/html" title="I own too many lenses" /><published>2022-05-20T12:30:17+00:00</published><updated>2022-05-20T12:30:17+00:00</updated><id>joebutton.co.uk/blog/2022/05/20/too-many-lenses</id><content type="html" xml:base="joebutton.co.uk/blog/2022/05/20/too-many-lenses.html"><![CDATA[<p>I acquired some of these through local collection bargains, plus a few of them were abandoned in my old flat. I probably need to acknowledge that I have a problem and work towards getting rid of some. I don’t think any of them are worth much, though.</p>

<table>
  <thead>
    <tr>
      <th>Manufacturer</th>
      <th>Focal length</th>
      <th>Zoom?</th>
      <th>F-stop</th>
      <th>Front thread</th>
      <th>Mount</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Meike</td>
      <td>12mm</td>
      <td>N</td>
      <td>F2.8</td>
      <td>72mm</td>
      <td>M43</td>
    </tr>
    <tr>
      <td>Meike</td>
      <td>25mm</td>
      <td>N</td>
      <td>F1.8</td>
      <td>49mm</td>
      <td>M43</td>
    </tr>
    <tr>
      <td>Meike</td>
      <td>35mm</td>
      <td>N</td>
      <td>F1.7</td>
      <td>49mm</td>
      <td>M43</td>
    </tr>
    <tr>
      <td>Panasonic</td>
      <td>12-60mm</td>
      <td>Y</td>
      <td>F3.5-5.6</td>
      <td>58mm</td>
      <td>M43</td>
    </tr>
    <tr>
      <td>Zuiko</td>
      <td>50mm</td>
      <td>N</td>
      <td>F1.8</td>
      <td> </td>
      <td>OM</td>
    </tr>
    <tr>
      <td>Tokina</td>
      <td>100-300mm</td>
      <td>Y</td>
      <td>F5.6</td>
      <td>55mm</td>
      <td>OM</td>
    </tr>
    <tr>
      <td>Miranda</td>
      <td>28mm</td>
      <td>N</td>
      <td>F2.8</td>
      <td>49mm</td>
      <td>M42</td>
    </tr>
    <tr>
      <td>Meyer-Optik</td>
      <td>50mm</td>
      <td>N</td>
      <td>F1.8</td>
      <td>49mm</td>
      <td>M42</td>
    </tr>
    <tr>
      <td>Prinzflex</td>
      <td>135mm</td>
      <td>N</td>
      <td>F2.8</td>
      <td>58mm</td>
      <td>M42</td>
    </tr>
    <tr>
      <td>Pentax</td>
      <td>50mm</td>
      <td>N</td>
      <td>F1.7</td>
      <td> </td>
      <td>PK</td>
    </tr>
    <tr>
      <td>Carl Zeiss Jena / Prakticar</td>
      <td>50mm</td>
      <td>N</td>
      <td>F1.4</td>
      <td> </td>
      <td>Praktica B</td>
    </tr>
    <tr>
      <td>Canon</td>
      <td>24mm</td>
      <td>N</td>
      <td>F2.8</td>
      <td>52mm</td>
      <td>EF-S</td>
    </tr>
    <tr>
      <td>Canon</td>
      <td>50mm</td>
      <td>N</td>
      <td>F1.8 (no manual aperture ring)</td>
      <td>52mm</td>
      <td>EF</td>
    </tr>
    <tr>
      <td>Tamron</td>
      <td>70-300mm</td>
      <td>Y</td>
      <td>F4-4.5</td>
      <td>62mm</td>
      <td>EF</td>
    </tr>
    <tr>
      <td>Sun</td>
      <td>28mm</td>
      <td>N</td>
      <td>F2.5</td>
      <td>55mm</td>
      <td>FD</td>
    </tr>
    <tr>
      <td>Canon</td>
      <td>50mm</td>
      <td>N</td>
      <td>F1.8</td>
      <td>52mm</td>
      <td>FD</td>
    </tr>
    <tr>
      <td>Kiron</td>
      <td>28-85mm</td>
      <td>Y</td>
      <td>F2.8-3.8</td>
      <td>67mm</td>
      <td>FD</td>
    </tr>
    <tr>
      <td>Vivitar</td>
      <td>28-200mm</td>
      <td>Y</td>
      <td>F3.5-5.3</td>
      <td>72mm</td>
      <td>FD</td>
    </tr>
    <tr>
      <td>Super Ozeck</td>
      <td>80-205mm</td>
      <td>Y</td>
      <td>F???</td>
      <td>52mm</td>
      <td>FD</td>
    </tr>
    <tr>
      <td>Tamron</td>
      <td>80-210mm</td>
      <td>Y</td>
      <td>F3.8-4</td>
      <td>58mm</td>
      <td>FD</td>
    </tr>
  </tbody>
</table>]]></content><author><name></name></author><category term="blog" /><category term="kit" /><summary type="html"><![CDATA[I acquired some of these through local collection bargains, plus a few of them were abandoned in my old flat. I probably need to acknowledge that I have a problem and work towards getting rid of some. I don’t think any of them are worth much, though.]]></summary></entry><entry><title type="html">Roland Go Bluetooth Woe</title><link href="joebutton.co.uk/blog/2022/02/21/roland-go-piano.html" rel="alternate" type="text/html" title="Roland Go Bluetooth Woe" /><published>2022-02-21T18:30:17+00:00</published><updated>2022-02-21T18:30:17+00:00</updated><id>joebutton.co.uk/blog/2022/02/21/roland-go-piano</id><content type="html" xml:base="joebutton.co.uk/blog/2022/02/21/roland-go-piano.html"><![CDATA[<p>Since I bought my new flat and I have a bit more space, I’ve been coveting a digital piano. I’m a fairly terrible piano player, but we had a piano when I was a kid and I miss being able to wander over to it and inexpertly thump the keys. A digital piano means I get to do that, but with headphones so I don’t make so many enemies in my neighbourhood.</p>

<p>So, I bought a £200 used <a href="https://www.roland.com/uk/products/gopiano_go-61p/">Roland Go Piano</a>. I expect proper pianists would be sniffy about its keys being unweighted and a couple of octaves worth of them being absent, but I enjoy playing it. It feels adequately piano-like, to me. Can’t compare it with any other digital piano because I’ve almost never played another one. A possibly unreasonable whinge I have is that it takes a few seconds to boot up - not long but instant-on would make it slightly more tempting to fondle the keys whenever I walk past it, like with a real piano.</p>

<p>It doesn’t have many sounds but I mostly just play the default piano, and there are decent Rhodes and Hammond-ish sounds a keypress away. Also a flute sound that makes it impossible to resist playing the intro to Strawberry Fields Forever. It’d be nice to connect it up to more sounds via the advertised bluetooth midi, and herein lies my greatest frustration.</p>

<p>All the instructions I can find for the bluetooth seem to be about connecting to Android or iOS devices. I can’t find any reports of anybody successfully using bluetooth to connect to a PC. On Ubuntu, pairing seems to go fine, and after rebuilding bluez with <code class="language-plaintext highlighter-rouge">--enable-midi</code> it shows up in the list of alsa midi devices:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ aseqdump -l
 Port    Client name                      Port name
  0:0    System                           Timer
  0:1    System                           Announce
 14:0    Midi Through                     Midi Through Port-0
 24:0    Virtual Raw MIDI 2-0             VirMIDI 2-0
 25:0    Virtual Raw MIDI 2-1             VirMIDI 2-1
 26:0    Virtual Raw MIDI 2-2             VirMIDI 2-2
 27:0    Virtual Raw MIDI 2-3             VirMIDI 2-3
128:0    GO:PIANO MIDI                    GO:PIANO MIDI Bluetooth
</code></pre></div></div>

<p>But, I can’t seem to get any event data from it. If I do <code class="language-plaintext highlighter-rouge">aseqdump -p 128:0</code> and hit the keys, I see nothing. I also tried on Windows with loopmidi and midiberry (which seems to be what everybody suggests), and had similarly disappointing results. At which point, I’m thinking I’ll take the cowards way out and buy a long USB cable instead. Do please email me if you’ve managed to get this device working with bluetooth midi on either Linux or Windows.</p>]]></content><author><name></name></author><category term="blog" /><category term="music" /><category term="hardware" /><summary type="html"><![CDATA[Since I bought my new flat and I have a bit more space, I’ve been coveting a digital piano. I’m a fairly terrible piano player, but we had a piano when I was a kid and I miss being able to wander over to it and inexpertly thump the keys. A digital piano means I get to do that, but with headphones so I don’t make so many enemies in my neighbourhood.]]></summary></entry><entry><title type="html">Russian Whispers (short film)</title><link href="joebutton.co.uk/blog/2021/06/29/russian-whispers.html" rel="alternate" type="text/html" title="Russian Whispers (short film)" /><published>2021-06-29T18:30:17+00:00</published><updated>2021-06-29T18:30:17+00:00</updated><id>joebutton.co.uk/blog/2021/06/29/russian-whispers</id><content type="html" xml:base="joebutton.co.uk/blog/2021/06/29/russian-whispers.html"><![CDATA[<p>Ages ago I did some sound recording for this short film by Keif Gwinn, which is about to finally see the light of day on Youtube. It has Russians, Jews, gangsters, a wedding, and a joke about a mosquito.</p>

<div class="embed-container">
    <iframe src="https://www.youtube.com/embed/l9SI7xx0Dd0" width="700" height="480" frameborder="0" allowfullscreen="">
    </iframe>
</div>]]></content><author><name></name></author><category term="blog" /><category term="making-movies" /><summary type="html"><![CDATA[Ages ago I did some sound recording for this short film by Keif Gwinn, which is about to finally see the light of day on Youtube. It has Russians, Jews, gangsters, a wedding, and a joke about a mosquito.]]></summary></entry><entry><title type="html">Getting a self-contained python 3.5 environment in Ubuntu Hirsute</title><link href="joebutton.co.uk/blog/2021/05/21/python-35-in-ubuntu-hirsute.html" rel="alternate" type="text/html" title="Getting a self-contained python 3.5 environment in Ubuntu Hirsute" /><published>2021-05-21T12:30:17+00:00</published><updated>2021-05-21T12:30:17+00:00</updated><id>joebutton.co.uk/blog/2021/05/21/python-35-in-ubuntu-hirsute</id><content type="html" xml:base="joebutton.co.uk/blog/2021/05/21/python-35-in-ubuntu-hirsute.html"><![CDATA[<p>Today I found myself needing to work on an old Python 3.5 codebase, which
refused to install its requirements in any later Python version. My first
idea was to install the Python 3.5 package from the <a href="https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa">deadsnakes</a> repos, but
they’re only available for LTS releases, which my currently installed OS - Ubuntu 21.04, aka Hirsute Hippo - is not one of.</p>

<p>Here’s (approximately) what I did to get a usable and fairly self-contained python 3.5 environment.</p>

<p>Build python 3.5:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd
git clone git@github.com:python/cpython.git
cd cpython
git checkout 3.5
./configure --prefix=$HOME/python35 --with-ssl  # you probably want ssl so you can download packages
make
make install
</code></pre></div></div>

<p>Create a python 3.5 virtualenv within my project. I initially tried this with the virtualenv package
and had some minor issues that didn’t occur when using the venv module instead:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cd ~/my_crufty_old_project
~/python35/bin/python3.5 -m venv venv
. venv/bin/activate
</code></pre></div></div>

<p>Upgrade pip and install my project’s requirements:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip install -U pip
pip install -r requirements.pip
</code></pre></div></div>]]></content><author><name></name></author><category term="blog" /><category term="python" /><category term="python35" /><category term="ubuntu" /><summary type="html"><![CDATA[Today I found myself needing to work on an old Python 3.5 codebase, which refused to install its requirements in any later Python version. My first idea was to install the Python 3.5 package from the deadsnakes repos, but they’re only available for LTS releases, which my currently installed OS - Ubuntu 21.04, aka Hirsute Hippo - is not one of.]]></summary></entry><entry><title type="html">Music for Podcasts</title><link href="joebutton.co.uk/blog/2021/04/29/podcast-music.html" rel="alternate" type="text/html" title="Music for Podcasts" /><published>2021-04-29T12:30:17+00:00</published><updated>2021-04-29T12:30:17+00:00</updated><id>joebutton.co.uk/blog/2021/04/29/podcast-music</id><content type="html" xml:base="joebutton.co.uk/blog/2021/04/29/podcast-music.html"><![CDATA[<p>Ages ago a mate asked me if I could do some intro / outro music for his new podcast, <a href="https://audioboom.com/channels/4958359">Polling Politics</a>. I just noticed they dropped their first new episode since 2019, which you can listen to <a href="https://audioboom.com/posts/7854634-wales-watching-with-roger-awan-scully-and-lauren-mcevatt">here</a> if you want to listen to people talk about Welsh politics, bookended by a few seconds of music by me.</p>

<p>Around the same time I also did some bits of ’80s pastiche music for a podcast called <a href="https://soundcloud.com/michael-hall-964148813/the-bell-ghosts-on-the-dance-floor">Ghosts on the Dance Floor</a>, about The Bell, “an iconic lesbian and gay pub of the 80s and 90s”. It was great to have the freedom to be cheesy and derivative.</p>]]></content><author><name></name></author><category term="blog" /><category term="music" /><category term="podcasts" /><summary type="html"><![CDATA[Ages ago a mate asked me if I could do some intro / outro music for his new podcast, Polling Politics. I just noticed they dropped their first new episode since 2019, which you can listen to here if you want to listen to people talk about Welsh politics, bookended by a few seconds of music by me.]]></summary></entry><entry><title type="html">Roll model</title><link href="joebutton.co.uk/blog/2021/04/23/t-roll.html" rel="alternate" type="text/html" title="Roll model" /><published>2021-04-23T07:30:17+00:00</published><updated>2021-04-23T07:30:17+00:00</updated><id>joebutton.co.uk/blog/2021/04/23/t-roll</id><content type="html" xml:base="joebutton.co.uk/blog/2021/04/23/t-roll.html"><![CDATA[<p>A couple of weeks ago somebody asked on Facebook:</p>

<blockquote>
  <p>Does the diameter of a toilet roll or kitchen paper roll decrease exponentially?</p>
</blockquote>

<p>There were a few answers, including “It’s a logarithmic spiral”, “It’s hyperbolic” and “It’s linear”. There were some complicated equations for Archimedean spirals. Here’s what I think.</p>

<p>We can reasonably say that the area of the <em>edge</em> of the paper is the same if it’s laid out flat, or if it’s rolled up in a spiral. Near enough, anyway. So:</p>

<p><code class="language-plaintext highlighter-rouge">wnl = πr²</code></p>

<p>Where <code class="language-plaintext highlighter-rouge">w</code> is the width of the paper, <code class="language-plaintext highlighter-rouge">n</code> is the number of sheets, <code class="language-plaintext highlighter-rouge">l</code> is the length of a sheet, and <code class="language-plaintext highlighter-rouge">r</code> is the radius of the roll.</p>

<p>We can solve that to get <code class="language-plaintext highlighter-rouge">r = sqrt(wnl/π)</code>.</p>

<p>and thence</p>

<p><code class="language-plaintext highlighter-rouge">diameter = 2 * sqrt(wnl/π)</code></p>

<p>No, I am not going to implement proper maths notation in this blog. Not without a better reason than this.</p>

<p>Anyway the point is, I reckon the diameter is roughly double the square root of some constant times the number of sheets. I did a model in Blender to illustrate:</p>

<div class="embed-container">
    <iframe src="https://player.vimeo.com/video/533592711" width="700" height="480" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="">
    </iframe>
  </div>

<p>Near enough, considering it’s only supposed to be an approximation? Of course if we’re talking about the decrease of the diameter of a toilet roll, that graph will be flipped on the x axis and will stop when it hits the diameter of the cardboard tube.</p>

<p>All of this assumes that paper usage is linear over time, which is probably true-ish although in real life it’ll be subject to biological and behavioural noise that isn’t really any of my business.</p>]]></content><author><name></name></author><category term="blog" /><category term="blender" /><summary type="html"><![CDATA[A couple of weeks ago somebody asked on Facebook:]]></summary></entry><entry><title type="html">Bodies in the Road teaser</title><link href="joebutton.co.uk/blog/2021/04/22/bodies-teaser.html" rel="alternate" type="text/html" title="Bodies in the Road teaser" /><published>2021-04-22T10:30:17+00:00</published><updated>2021-04-22T10:30:17+00:00</updated><id>joebutton.co.uk/blog/2021/04/22/bodies-teaser</id><content type="html" xml:base="joebutton.co.uk/blog/2021/04/22/bodies-teaser.html"><![CDATA[<p>A long time ago, before COVID, <a href="https://callycollective.uk/">The Cally Collective</a> shot a 40ish minute film called Bodies in the Road, written and directed by Kev Rainey. I did some sound recording and assistant directing, and also cobbled together this teaser. Maybe the actual film will be finished one day (Kev?)</p>

<div class="embed-container">
    <iframe src="https://player.vimeo.com/video/493513851" width="700" height="480" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="">
    </iframe>
  </div>]]></content><author><name></name></author><category term="blog" /><category term="making-movies" /><summary type="html"><![CDATA[A long time ago, before COVID, The Cally Collective shot a 40ish minute film called Bodies in the Road, written and directed by Kev Rainey. I did some sound recording and assistant directing, and also cobbled together this teaser. Maybe the actual film will be finished one day (Kev?)]]></summary></entry><entry><title type="html">Line of Duty</title><link href="joebutton.co.uk/blog/2021/04/21/line-of-duty.html" rel="alternate" type="text/html" title="Line of Duty" /><published>2021-04-21T12:30:17+00:00</published><updated>2021-04-21T12:30:17+00:00</updated><id>joebutton.co.uk/blog/2021/04/21/line-of-duty</id><content type="html" xml:base="joebutton.co.uk/blog/2021/04/21/line-of-duty.html"><![CDATA[<p>Apparently everybody is watching <a href="https://www.youtube.com/watch?v=Fqf9wd08n94">Line of Duty</a>, so in an effort to keep up I just watched season one. It was first broadcast in 2012 so this review is a bit behind the times. I’m going with it as I have an empty blog that needs content.</p>

<p>The writing feels brutally minimal, the dialogue is no more ornate than it needs to be to serve the preposterous but undeniably engaging plot. I am hooked, which means the series has done exactly what it was supposed to. Full marks for that.</p>

<p>My reservation is that a programme about police corruption could maybe take itself a bit more seriously. The people don’t talk or behave like people, and the plots only make sense if you make a special effort to not think too hard. It’s funny that the first episode debuted a couple of months before Charlie Brooker’s brilliant police procedural parody <a href="https://www.youtube.com/watch?v=yrOnQG-ZYyM">A Touch of Cloth</a>. It reminded me of it a lot.</p>

<p>For a more grounded experience you could try following the ongoing <a href="https://www.ucpi.org.uk/">Undercover Policing Inquiry</a>, which is livestreaming some of its <a href="https://www.ucpi.org.uk/evidence-hearings/">evidence hearings</a>.</p>

<p>You’ll hear about an ever increasing number undercover officers using their cover identities to have sexual relationships, often with people completely unconnected with the political movements they were infiltrating. They were given large budgets to maintain these covers.</p>

<p>You’ll hear that at least four undercover police officers fathered children with unsuspecting women. These men feined commitment, then later engineered disappearances with the police force’s assistance and resources, leaving their supposed partners to pick up the pieces.</p>

<p>This morning you would have heard about a woman being contacted only six years into the inquiry, as the officer involved had forgotten her name.</p>

<p>After Mark Kennedy was outed as a cop in 2010 there was a flurry of media excitement, with at least one movie and one TV series announced based on his story. Neither of them has materialized, which I suspect is because the realities are sordid and uncinematic.</p>]]></content><author><name></name></author><category term="blog" /><category term="entertainment" /><category term="current-affairs" /><summary type="html"><![CDATA[Apparently everybody is watching Line of Duty, so in an effort to keep up I just watched season one. It was first broadcast in 2012 so this review is a bit behind the times. I’m going with it as I have an empty blog that needs content.]]></summary></entry><entry><title type="html">Boring life updates</title><link href="joebutton.co.uk/blog/2021/04/14/boring-life-updates.html" rel="alternate" type="text/html" title="Boring life updates" /><published>2021-04-14T10:30:17+00:00</published><updated>2021-04-14T10:30:17+00:00</updated><id>joebutton.co.uk/blog/2021/04/14/boring-life-updates</id><content type="html" xml:base="joebutton.co.uk/blog/2021/04/14/boring-life-updates.html"><![CDATA[<p>Until recently I was developing software for The World Food Programme, the world’s largest humanitarian organisation and the winner of the 2020 Nobel Peace Prize. The work I was doing there is currently suspended due to COVID-19 issues, so I’m potentially available for work. I’m based in London, open to remote or office-based (a combination would be nice), not looking for full-time permanent but interested in part time or temporary contracts. Ideally nothing too evil.</p>

<p>Aside from that, I’m trying to buy a flat, eating too much, going on long walks in an effort to counter that, and generally keeping busy. I just watched WandaVision, which I thought was great for the first few episodes but turned into boring flyey shootey MCU mush towards the end.</p>]]></content><author><name></name></author><category term="blog" /><category term="life" /><category term="work" /><category term="jobs" /><summary type="html"><![CDATA[Until recently I was developing software for The World Food Programme, the world’s largest humanitarian organisation and the winner of the 2020 Nobel Peace Prize. The work I was doing there is currently suspended due to COVID-19 issues, so I’m potentially available for work. I’m based in London, open to remote or office-based (a combination would be nice), not looking for full-time permanent but interested in part time or temporary contracts. Ideally nothing too evil.]]></summary></entry></feed>