<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Paul Fawkesley: Engineer, founder, maker 🛠</title>
    <link>https://paul.fawkesley.com/</link>
    <description>Blog posts and interesting things I read recently.</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Fri, 16 Jan 2026 00:00:00 +0000</lastBuildDate>
    
        <atom:link href="https://paul.fawkesley.com/index.xml" rel="self" type="application/rss+xml" />
    

    
    
    
    
	
      
    <item>
      <title>Children and Social Media (the letter I wrote to my MP)</title>
      <link>https://paul.fawkesley.com/2026-01-16-children-and-social-media/</link>
      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2026-01-16-children-and-social-media/</guid>
      <description>&lt;p&gt;Smartphone Free Childhood are running &lt;a href=&#34;https://smartphonefreechildhood.eaction.org.uk/raise-the-age&#34;&gt;a campaign to write to your MP.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I hand-wrote the following letter to mine.&lt;/p&gt;
&lt;p&gt;Dear [name of my MP],&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m writing to you mostly as a Dad of a curious five year old, but also as a
technologist and concerned citizen. I believe that some forms of social media
(algorithmically curated and in particular short-form video) are harmful to
children and adults alike. I urge you to support parliamentary action to limit
access to these forms of social media for under 16s.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t urge this lightly as a generally pro freedom of speech and
anti-censorship kind of person, so let me explain my position and specific
concern.&lt;/p&gt;
&lt;p&gt;In the early days of social media, platforms like Facebook and Twitter were not
algorithmically curated: they were genuinely social in that you chose who to
follow and you saw updates from those people&amp;rsquo;s activity, nothing else.&lt;/p&gt;
&lt;p&gt;Soon, the platforms realised this would be limited in how long people would use
the platform for, as there&amp;rsquo;s only so much activity your friends could create.
This was bad for profits as time-on-platform meant longer to show ads, and more
revenue.&lt;/p&gt;
&lt;p&gt;At this point they created the monster.&lt;/p&gt;
&lt;p&gt;They built models/algorithms with the specific singular goal of maximising time
on platform. These algorithms discovered - without human intervention - that
content which provokes anger, frustration and outrage was the most compelling.
The algorithms literally picked the most triggering things to show you and keep
you on the platform.&lt;/p&gt;
&lt;p&gt;Social media was no longer social at all, simply ads and outrage. When people
of any age spend four hours per day watching content selected to provoke anger,
it changes their mind in exactly the same way CBT changes our thinking through
repetition of positive thoughts.&lt;/p&gt;
&lt;p&gt;The algorithms have hacked our basic vulnerability that we&amp;rsquo;re attuned to risk,
danger and outrage.&lt;/p&gt;
&lt;p&gt;Then came TikTok, an &amp;lsquo;innovation&amp;rsquo; that discovered that short-form videos were
even more addictive than simple outrage. New algorithms but a similar end
result: minds that grew accustomed to very fast paced, high-dopamine content.
Minds that can no longer focus for two minutes to read a book.&lt;/p&gt;
&lt;p&gt;I am not anti technology. Applied by communities, with community interests and
values, I believe it can be extremely positive.&lt;/p&gt;
&lt;p&gt;But big tech has a single focus to maximise profits. Consistently they have
shown that profits outweigh any concerns about mental health, polarisation,
misinformation, attention deficit, etc.&lt;/p&gt;
&lt;p&gt;As a parent, I need your help. I can&amp;rsquo;t make my daughter the only one who
doesn&amp;rsquo;t have X, Y or Z. I would be preventing harm in one way while exposing
her to ridicule and bullying at the same time. I need the law to help.&lt;/p&gt;
&lt;p&gt;There is actual harm being done to the minds of our society at an industrial
scale and we need the Government to step in.&lt;/p&gt;
&lt;p&gt;Yours sincerely,&lt;/p&gt;
&lt;p&gt;Paul Fawkesley&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Blogs</title>
      <link>https://paul.fawkesley.com/blog/</link>
      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/blog/</guid>
      <description></description>
    </item>
      
    
      
    
      
    <item>
      <title>Six Months Sober</title>
      <link>https://paul.fawkesley.com/six-months-sober/</link>
      <pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/six-months-sober/</guid>
      <description>&lt;p&gt;A year ago I started counting how many alcohol
units I was drinking.&lt;/p&gt;
&lt;p&gt;I was sure I didn&amp;rsquo;t drink &amp;ldquo;too much&amp;rdquo; but had never tracked it before.&lt;/p&gt;
&lt;p&gt;But I was consistently drinking more than 14 units a week. One or two
glasses of wine a day didn&amp;rsquo;t seem much, but it added added up.&lt;/p&gt;
&lt;p&gt;When I tried to bring it under 14 units per week, I found myself craving and
bargaining. Looking for excuses to &amp;ldquo;let myself off&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Drinking wasn&amp;rsquo;t exactly a &lt;em&gt;problem&lt;/em&gt; and I wasn&amp;rsquo;t a &lt;em&gt;dependent&lt;/em&gt; drinker.
But the numbers showed I was drinking an unhealthy amount and was
finding it hard to moderate.&lt;/p&gt;
&lt;p&gt;I needed to prove to myself that I was in charge.&lt;/p&gt;
&lt;h2 id=&#34;one-month-wasnt-enough&#34;&gt;One month wasn&amp;rsquo;t enough&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;d done Dry January before no problem. I&amp;rsquo;d spent most of the time counting
down to the end. Thinking about when I could drink again.&lt;/p&gt;
&lt;p&gt;One month is too short to break a habit.&lt;/p&gt;
&lt;p&gt;Six months is effectively &amp;ldquo;forever&amp;rdquo;. It&amp;rsquo;s long enough to fully incorporate into
my life rather than see as something that would be over soon.&lt;/p&gt;
&lt;p&gt;So when the clocks changed in March, I committed to six months sober.&lt;/p&gt;
&lt;p&gt;The clocks changed back today, the end of six months.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how it went.&lt;/p&gt;
&lt;h2 id=&#34;difficulty-mode-hard&#34;&gt;Difficulty mode: hard&lt;/h2&gt;
&lt;p&gt;This particular six months included a lot of typically boozey things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A stag do with 14 blokes I didn&amp;rsquo;t know (who love drinking),&lt;/li&gt;
&lt;li&gt;A wedding,&lt;/li&gt;
&lt;li&gt;Two festivals.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The idea of a stag do sober with boozey blokes I don&amp;rsquo;t know filled me with
dread.&lt;/p&gt;
&lt;p&gt;But I wanted to prove to myself that I don&amp;rsquo;t need alcohol. And I don&amp;rsquo;t do
things by halves.&lt;/p&gt;
&lt;h2 id=&#34;i-dont-need-alcohol-to-meet-new-people&#34;&gt;I don&amp;rsquo;t need alcohol to meet new people&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s the &lt;em&gt;thought&lt;/em&gt; of meeting new people that was scary. The first five minutes,
making small talk, feeling awkward.&lt;/p&gt;
&lt;p&gt;At the stag, walking to the bar on Friday evening, I felt strong anxiety.&lt;/p&gt;
&lt;p&gt;I reminded myself that I love chatting and I get along with people.&lt;/p&gt;
&lt;p&gt;Five minutes in, I&amp;rsquo;d met some great guys and the rest was easy.&lt;/p&gt;
&lt;h2 id=&#34;having-a-plan-helps&#34;&gt;Having a plan helps&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;d read a few books about being sober around others who aren&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;Three things that helped be sober on the stag:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Knowing what to drink&lt;/em&gt; - thank goodness for Guinness 0% which is nice, widely available, and looks normal in a glass.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Having an escape plan&lt;/em&gt; - having a key, knowing how I&amp;rsquo;ll say bye and sneak home. Not worrying I&amp;rsquo;ll be stuck out until 4am.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Being proudly myself&lt;/em&gt; - no-one knew me, I could project anything I wanted. I
decided to embrace being &amp;ldquo;the chatty eccentric guy&amp;rdquo;. Wasn&amp;rsquo;t hard.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sober-night-clubs-are-fine&#34;&gt;Sober night clubs are fine&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;d never been to a night club sober.&lt;/p&gt;
&lt;p&gt;Looking around at people was fun. Dancing to cheesey 70s music was fun, for a while.&lt;/p&gt;
&lt;p&gt;Being silly with the stags was fun.&lt;/p&gt;
&lt;p&gt;Being the &amp;ldquo;guy who enjoys himself sober&amp;rdquo; was empowering.&lt;/p&gt;
&lt;p&gt;Leaving after an hour was perfect.&lt;/p&gt;
&lt;h2 id=&#34;i-love-mornings&#34;&gt;I love mornings&lt;/h2&gt;
&lt;p&gt;I tend to wake around 7am feeling energetic and enthusiastic.&lt;/p&gt;
&lt;p&gt;I love sneaking downstairs, making some coffee and tapping out some code.
This time alone with my mind and my code helps me re-charge and calm
the flurry of thoughts and ideas that swirl around my head.&lt;/p&gt;
&lt;p&gt;Alcohol robs this time.&lt;/p&gt;
&lt;h2 id=&#34;i-like-having-a-consistent-bed-time&#34;&gt;I like having a consistent bed time&lt;/h2&gt;
&lt;p&gt;Especially with a daughter who wakes up like clockwork. Having a consistent
bed-time improves my sleep quality. It eliminates that dreadful feeling
of &amp;ldquo;argh, it&amp;rsquo;s 1am, how am I going to get 8 hours?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Alcohol makes me more likely to stay up late, even after the party&amp;rsquo;s over.&lt;/p&gt;
&lt;h2 id=&#34;im-better-chat-without-booze&#34;&gt;I&amp;rsquo;m better chat without booze&lt;/h2&gt;
&lt;p&gt;It always &lt;em&gt;felt&lt;/em&gt; like I was funnier, easier after a couple of beers. Maybe
I was, but two soon became three or four. And I&amp;rsquo;d get a little &lt;em&gt;too&lt;/em&gt; loud
or a little over the top.&lt;/p&gt;
&lt;p&gt;Without booze I don&amp;rsquo;t re-tell the same stories (as much). I don&amp;rsquo;t forget
conversations I&amp;rsquo;ve had.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t wake up with a cringe, wondering what I said. The &amp;ldquo;loser blues&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;i-love-chatting-and-eating-not-boozing&#34;&gt;I love chatting and eating, not boozing&lt;/h2&gt;
&lt;p&gt;Thinking back on stags, parties, nights out and festivals I&amp;rsquo;ve enjoyed, the best
parts are always chatting and eating.&lt;/p&gt;
&lt;p&gt;Connecting with people, having a good natter, eating delicious food.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t need booze for those.&lt;/p&gt;
&lt;h2 id=&#34;im-more-patient-and-less-irritable&#34;&gt;I&amp;rsquo;m more patient and less irritable&lt;/h2&gt;
&lt;p&gt;Any parent will tell you, children constantly push boundaries, take forever,
make a mess and frankly, do annoying things.&lt;/p&gt;
&lt;p&gt;Without alcohol I&amp;rsquo;m more patient and less snappy. Things that would have wound
me up don&amp;rsquo;t any more. I can stay calm but firm.&lt;/p&gt;
&lt;h2 id=&#34;alcohol-affected-me-days-afterwards&#34;&gt;Alcohol affected me days afterwards&lt;/h2&gt;
&lt;p&gt;The biggest surprise was how alcohol affects me throughout the week.&lt;/p&gt;
&lt;p&gt;Of course it affected me the day I drank and the day after.
I had no idea that regular drinking affected me &lt;em&gt;all the time&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&#34;alcohol-messes-with-my-sleep&#34;&gt;Alcohol messes with my sleep&lt;/h2&gt;
&lt;p&gt;Something to do with REM sleep, apparently.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d go to sleep easily but wake up feeling tired.&lt;/p&gt;
&lt;h2 id=&#34;i-was-using-other-things-as-an-excuse-to-drink&#34;&gt;I was using other things as an excuse to drink&lt;/h2&gt;
&lt;p&gt;I love going to the cinema. But every time I went I&amp;rsquo;d buy a couple beers
beforehand.&lt;/p&gt;
&lt;p&gt;Did I really love watching films, or just getting drunk at the cinema?&lt;/p&gt;
&lt;h2 id=&#34;alcohol-is-really-bad-for-the-body&#34;&gt;Alcohol is really bad for the body&lt;/h2&gt;
&lt;p&gt;During the six months, &lt;a href=&#34;https://www.youtube.com/watch?v=aOwmt39L2IQ&#34;&gt;Kurzgesagt released this excellent video.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a fascinating but uncomfortable watch.&lt;/p&gt;
&lt;h2 id=&#34;0-sparkling-wine-is-lovely&#34;&gt;0% Sparkling Wine is lovely&lt;/h2&gt;
&lt;p&gt;I love a glass of Prosecco. I &lt;em&gt;really&lt;/em&gt; like the 0% versions.&lt;/p&gt;
&lt;p&gt;Particularly sparkling rosé, which I&amp;rsquo;d never had before.&lt;/p&gt;
&lt;p&gt;The bitterness and the bubbles feel really luxurious. And it&amp;rsquo;s cheap!&lt;/p&gt;
&lt;p&gt;Substituting is much easier than stopping.&lt;/p&gt;
&lt;h2 id=&#34;im-bad-at-moderation&#34;&gt;I&amp;rsquo;m bad at moderation&lt;/h2&gt;
&lt;p&gt;I struggle with moderation.&lt;/p&gt;
&lt;p&gt;Once I get started, I&amp;rsquo;m bad at stopping.&lt;/p&gt;
&lt;p&gt;I need hard, simple rules to follow.&lt;/p&gt;
&lt;p&gt;With sugar, I just have a blanket ban on &lt;a href=&#34;https://www.nhs.uk/live-well/eat-well/food-types/how-does-sugar-in-our-diet-affect-our-health/&#34;&gt;&amp;ldquo;high sugar foods&amp;rdquo;&lt;/a&gt; This works for me.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I don&amp;rsquo;t drink&amp;rdquo; is so much easier than &amp;ldquo;Should I drink? Shall I have another one? Should I stop there?&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;i-dont-miss-alcohol&#34;&gt;I don&amp;rsquo;t miss alcohol&lt;/h2&gt;
&lt;p&gt;The biggest surprise: I don&amp;rsquo;t miss it.&lt;/p&gt;
&lt;p&gt;Around three months in, I realised my life&amp;rsquo;s better without booze.&lt;/p&gt;
&lt;p&gt;I questioned why I drank in the first place. Was I really &lt;em&gt;choosing&lt;/em&gt; to drink? Not really.&lt;/p&gt;
&lt;p&gt;Maybe I&amp;rsquo;ll drink again, but not before I&amp;rsquo;ve written some rules.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Wilderness 2025</title>
      <link>https://paul.fawkesley.com/wilderness-2025/</link>
      <pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/wilderness-2025/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2025-08-04-wilderness-2025/image-600w-400h.jpg&#34; alt=&#34;An outdoor stage with an orchestra, viewed from the back out to the audience&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;&lt;em&gt;Original image: Andrew Whitton, Wilderness Festival&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Notes-to-self and links from a wonderful weekend in Cornbury Park.&lt;/p&gt;
&lt;h2 id=&#34;thursday&#34;&gt;Thursday&lt;/h2&gt;
&lt;h3 id=&#34;moths-by-moonlight&#34;&gt;Moths by Moonlight&lt;/h3&gt;
&lt;p&gt;Highlight! Strolled into the woods, led by lovely folks at &lt;a href=&#34;https://butterfly-conservation.org/&#34;&gt;Butterfly Conservation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;They&amp;rsquo;d put out moth traps the night before then cooled the moths so they relaxed.&lt;/p&gt;
&lt;p&gt;As we handled them in bottles, they warmed up and started to vibrate, then flew away.&lt;/p&gt;
&lt;p&gt;Examined plants and undergrowth with an Ultraviolet torch. Stunning all the
secret detail that&amp;rsquo;s not visible to us normally.&lt;/p&gt;
&lt;p&gt;Links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://observation.org/apps/obsidentify/&#34;&gt;ObsIdentify&lt;/a&gt; for identifying moths and other things&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.nhbs.com/en/&#34;&gt;NHBS - Wildlife, Ecology &amp;amp; Conservation shop&lt;/a&gt; online store selling bat detectors&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://butterfly-conservation.org/uv&#34;&gt;Butterfly Conservation on UV surveys&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ebay.co.uk/itm/256994643278&#34;&gt;Alonefire X901UV UV torch 365nm 10W&lt;/a&gt; - UV torch&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Programme hack:&lt;/p&gt;
&lt;p&gt;Free activity but it showed up as Sold Out. We chanced it and turned up to see
if there were any no-shows. Only 3 of 15 booked people came, so we made up half
the group. Glad we did!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;friday&#34;&gt;Friday&lt;/h2&gt;
&lt;h3 id=&#34;swim-in-the-lake&#34;&gt;Swim in the lake&lt;/h3&gt;
&lt;p&gt;Dreamy.&lt;/p&gt;
&lt;h3 id=&#34;creative-quests&#34;&gt;Creative Quests&lt;/h3&gt;
&lt;p&gt;Lovely talk. Started with doing one creative thing per month for a year.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;CREATIVE QUESTS is a global community and playground for people fuelled by curiosity.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.creativequests.world/&#34;&gt;creativequests.world&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;police-cops-badass-be-thy-name&#34;&gt;Police Cops: Badass Be Thy Name&lt;/h3&gt;
&lt;p&gt;Very silly, funny, set to 90s rave music.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.policecops.co.uk/show/badass-be-thy-name&#34;&gt;policecops.co.uk&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;is-this-working-or-is-work-bullsht&#34;&gt;Is this working? Or is work bullsh*t?&lt;/h3&gt;
&lt;p&gt;The very charming Charlie Colenutt has interviewed 100 people around the UK about their
work lives. Lovely talk.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/228999528-is-this-working&#34;&gt;Book: Is this working? Goodreads&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;love-lies-and-affairs-with-juliet-rosenfeld&#34;&gt;Love, Lies and Affairs with Juliet Rosenfeld&lt;/h3&gt;
&lt;p&gt;Six stories of real life affairs, written by a psycholanalyst.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.goodreads.com/book/show/219222886-affairs&#34;&gt;book&lt;/a&gt; sounds great but the interview assumed we&amp;rsquo;d all read it, poor promo!&lt;/p&gt;
&lt;h3 id=&#34;mushroom-coffee&#34;&gt;Mushroom coffee&lt;/h3&gt;
&lt;p&gt;Spotted an intriguing stall selling coffee including various mushrooms.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m off booze this summer, thought this could be interesting.&lt;/p&gt;
&lt;p&gt;Tried cordyceps for &amp;ldquo;energy&amp;rdquo;. Zero observable effect.&lt;/p&gt;
&lt;h3 id=&#34;boat-in-the-lake&#34;&gt;Boat in the lake&lt;/h3&gt;
&lt;p&gt;Took a rowing boat on the lake. No queue, nothing to pay. Funny dad &amp;amp; son due were trying (failing)
to ram other boats, Lisa rowed us to safety!&lt;/p&gt;
&lt;h3 id=&#34;air&#34;&gt;Air&lt;/h3&gt;
&lt;p&gt;Cool, dreamy, they did &amp;ldquo;sexy boy&amp;rdquo; which I knew but didn&amp;rsquo;t know the band.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;saturday&#34;&gt;Saturday&lt;/h2&gt;
&lt;h3 id=&#34;wilderness-behind-the-scenes&#34;&gt;Wilderness Behind The Scenes&lt;/h3&gt;
&lt;p&gt;Brilliant as always to meet the organisers. I was worried about visitor numbers being down but was reassured that&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ticket sales were up on last year&lt;/li&gt;
&lt;li&gt;despite it being difficult post-Brexit and post-COVID, Wilderness&#39; future is secure&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;cricket&#34;&gt;Cricket&lt;/h3&gt;
&lt;p&gt;First time watching it properly! Some actually great cricket and some hilarious streaking. Great commentary.&lt;/p&gt;
&lt;h3 id=&#34;showhawk-duo&#34;&gt;Showhawk Duo&lt;/h3&gt;
&lt;p&gt;Love these guys: lots of nostalgic 90 / 2000s dance music performed on guitars. Saw a few years
ago in the Jumpyard. I think they suit a smaller, darker venue, but it was fab nonetheless.&lt;/p&gt;
&lt;h3 id=&#34;swim-in-the-lake-1&#34;&gt;Swim in the lake&lt;/h3&gt;
&lt;p&gt;Lovely to swim in the afternoon with fewer people.&lt;/p&gt;
&lt;h3 id=&#34;nap--campsite&#34;&gt;Nap &amp;amp; campsite&lt;/h3&gt;
&lt;p&gt;One of the highlights, recharging and hanging out with the gang at the tents.&lt;/p&gt;
&lt;h3 id=&#34;yuck-circus&#34;&gt;Yuck Circus&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ll just say I didn&amp;rsquo;t get it and wouldn&amp;rsquo;t go again.&lt;/p&gt;
&lt;h3 id=&#34;ibiza-brass-at-the-club-house&#34;&gt;Ibiza Brass at the Club House&lt;/h3&gt;
&lt;p&gt;Lovely hour dancing with Lisa to DJ Max Galactic and the Brass Funkeys.&lt;/p&gt;
&lt;p&gt;A couple got married at Wilderness today and had their first dance in the Club House. Very sweet.&lt;/p&gt;
&lt;h3 id=&#34;ashes-to-ashes-cabaret&#34;&gt;Ashes to Ashes (Cabaret)&lt;/h3&gt;
&lt;p&gt;Organised by &lt;a href=&#34;https://www.cabaretvscancer.co.uk/&#34;&gt;Cabaret vs Cancer&lt;/a&gt; this year, different from last year&amp;rsquo;s scary/awesome show.&lt;/p&gt;
&lt;p&gt;This was David-Bowie themed and had fantastic perfomers.&lt;/p&gt;
&lt;p&gt;Highlight was singer &lt;a href=&#34;https://www.mulanrouge.co.uk/ruby-wednesday&#34;&gt;Ruby Wednesday&lt;/a&gt;. Their stage presence
was gripping and their voice was the most powerful I&amp;rsquo;ve ever heard live. The whole audience was
hanging on their every movement.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ashes To Ashes is a show by Cabaret vs Cancer, a London-based charity providing aid to those impacted by cancer and child bereavement teams.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;jo-whileys-90s-anthems&#34;&gt;Jo Whiley’s 90s Anthems&lt;/h3&gt;
&lt;p&gt;Great bangers, just had to overlook that it felt like we were pilgrims at the &amp;ldquo;Temple of Audi&amp;rdquo; (as coined by the cricket commentator).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;sunday&#34;&gt;Sunday&lt;/h2&gt;
&lt;h3 id=&#34;coffee-with-lorna-w&#34;&gt;Coffee with Lorna W&lt;/h3&gt;
&lt;p&gt;Lovely catch-up. Talked about Stoics.&lt;/p&gt;
&lt;h3 id=&#34;all-that-glitters-a-story-of-friendship-fraud-and-fine-art&#34;&gt;All That Glitters: A Story of Friendship, Fraud and Fine Art&lt;/h3&gt;
&lt;p&gt;Riveting talk Orlando Whitfield about Inigo Philbrick, his art-school best
friend, who ultimately ripped him off.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/201751505-all-that-glitters&#34;&gt;Book: All That Glitters&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;does-nature-need-a-marketing-agency&#34;&gt;Does Nature Need a Marketing Agency?&lt;/h3&gt;
&lt;p&gt;Interview with Lisa Merrick-Lawless. Brilliant work:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Oil companies have ad agencies. Nature doesn’t even have a spokesperson.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.agencyfornature.com&#34;&gt;Agency for Nature&lt;/a&gt; is a creative initiative
by Purpose Disruptors and Glimpse, where leading UK ad agencies seconded
emerging talent to work on a unique brief: treat Nature as the client.&lt;/p&gt;
&lt;p&gt;Through bold campaigns, cultural experiences, and open-source tools, they
reconnect young, urban audiences with nature—using the language of fashion,
music, gaming, and humor.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;chat-with-morgan--india&#34;&gt;Chat with Morgan &amp;amp; India&lt;/h3&gt;
&lt;p&gt;So nice to chat to our friends that we spot every year at this and other festivals.&lt;/p&gt;
&lt;p&gt;Next year&amp;rsquo;s How The Light Gets In we&amp;rsquo;re doing a long table banquet together!&lt;/p&gt;
&lt;h3 id=&#34;bread-and-war-a-ukrainian-story-of-food-bravery-and-hope&#34;&gt;Bread and War: A Ukrainian Story of Food, Bravery and Hope&lt;/h3&gt;
&lt;p&gt;Lovely talk by Felicity Spector.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In Bread and War, Channel 4 News journalist and food writer Felicity Spector
travels through Ukraine’s war-torn kitchens, cafes and bakeries, meeting the
cooks, soldiers and volunteers using food as a lifeline and a symbol of
resistance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/222105535-bread-and-war&#34;&gt;Book: Bread and War: A Ukrainian Story of Food, Bravery and Hope&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;devil-in-the-stack-a-coding-odyssey&#34;&gt;Devil in the Stack: A Coding Odyssey&lt;/h3&gt;
&lt;p&gt;Andrew Smith talking very humanly about code, and his experience as a journalist learning to
code in his 50s.&lt;/p&gt;
&lt;p&gt;Andrew has a charming manner and the book sounds great, so I bought it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Acclaimed journalist and bestselling author Andrew Smith explores the hidden
world of code—the algorithms silently shaping our lives. In Devil in the
Stack, Smith learns to code himself, tracing a path from Ada Lovelace and
Alan Turing to today’s AI pioneers.&lt;/p&gt;
&lt;p&gt;Both immersive and unsettling, his journey reveals code as a culture, a force,
and a looming question: who—or what—controls our future?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/128713647-devil-in-the-stack&#34;&gt;Book: Devil in the Stack: A Coding Odyssey&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;swim&#34;&gt;Swim&lt;/h3&gt;
&lt;p&gt;Lovely.&lt;/p&gt;
&lt;h3 id=&#34;gods-jukebox&#34;&gt;God&amp;rsquo;s Jukebox&lt;/h3&gt;
&lt;p&gt;Gorgeous, always. Wilderness Orchestra performs songs that people request with heart-felt dedications.&lt;/p&gt;
&lt;h3 id=&#34;afriquoi&#34;&gt;Afriquoi&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Live African dance music, fusing Congolese guitar + Gambian kora virtuosity
with UK electronic sensibilities to create uplifting, dancefloor- friendly
new music for a new generation of music fans.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Great, high energy, loved it.&lt;/p&gt;
&lt;h3 id=&#34;basement-jaxx&#34;&gt;Basement Jaxx&lt;/h3&gt;
&lt;p&gt;Nostalgic, amazing set on the main stage, huge ramp with a hole in the middle for the DJs.&lt;/p&gt;
&lt;h3 id=&#34;comedy-scott-bennett&#34;&gt;Comedy: Scott Bennett&lt;/h3&gt;
&lt;p&gt;I cried laughing at this. Very sharp observations about mundane things made funny, like the oppression of zip sounds while camping,
and gleeful primary teachers sending home piles of &amp;ldquo;art&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Very funny, good-hearted. Loved it.&lt;/p&gt;
&lt;h1 id=&#34;favourite-food&#34;&gt;Favourite food&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Pizzeria - gorgeous Neopolitan bases, great toppings (brie, goats cheese etc)&lt;/li&gt;
&lt;li&gt;Pasta Bowl - fiery mac n cheese (all GF as standard)&lt;/li&gt;
&lt;li&gt;Sushi wrap - &amp;ldquo;fully loaded&amp;rdquo; with avocado, peppers, thai sweet potato&lt;/li&gt;
&lt;li&gt;Guasa Arepas - breakfast bowl with black beans&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting-reads</title>
      <link>https://paul.fawkesley.com/interesting-reads/</link>
      <pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/</guid>
      <description></description>
    </item>
      
    
      
    <item>
      <title>Interesting things I read in July 2025</title>
      <link>https://paul.fawkesley.com/interesting-reads/2025-07-31/</link>
      <pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2025-07-31/</guid>
      <description>&lt;p&gt;&lt;em&gt;Sunshine, strawberries and stupid AI&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;46-billion-years-on-the-sun-is-having-a-momenthttpswwwnewyorkercomnewsannals-of-a-warming-planet46-billion-years-on-the-sun-is-having-a-moment&#34;&gt;&lt;a href=&#34;https://www.newyorker.com/news/annals-of-a-warming-planet/46-billion-years-on-the-sun-is-having-a-moment&#34;&gt;4.6 Billion Years On, the Sun Is Having a Moment&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Last year, ninety-six per cent of the global demand for new electricity was
met by renewables&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Poland—long a leading coal-mining nation—saw renewable power outstrip coal
for electric generation in May, thanks to a remarkable surge in solar
construction. In 2021, the country set a goal for photovoltaic power usage by
2030; it has already tripled that goal.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes, yes, yes. Exponential growth curves are powerful. Solar is &lt;em&gt;cheap&lt;/em&gt; everywhere.*&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;in-a-first-solar-was-europes-biggest-source-of-power-last-monthhttpse360yaleedudigestsolar-biggest-power-source-europe-june-2025&#34;&gt;&lt;a href=&#34;https://e360.yale.edu/digest/solar-biggest-power-source-europe-june-2025&#34;&gt;In a First, Solar Was Europe&amp;rsquo;s Biggest Source of Power Last Month&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;At least 13 countries saw solar output hit a new monthly high in June,
according to an analysis from energy think tank Ember. Solar amounted to more
than 40 percent of generation in the Netherlands and 35 percent in Greece.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In no small part due to the heat-wave we&amp;rsquo;ve been experiencing.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;staying-cool-without-refrigerants-how-samsung-is-pioneering-next-generation-peltier-coolinghttpsnewssamsungcomglobalinterview-staying-cool-without-refrigerants-how-samsung-is-pioneering-next-generation-peltier-cooling&#34;&gt;&lt;a href=&#34;https://news.samsung.com/global/interview-staying-cool-without-refrigerants-how-samsung-is-pioneering-next-generation-peltier-cooling&#34;&gt;Staying Cool Without Refrigerants: How Samsung Is Pioneering Next-Generation Peltier Cooling&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;The team successfully developed a high-efficiency thin-film semiconductor
Peltier device  using nano-engineering technology and demonstrated
refrigerant-free cooling, highlighting the potential to deliver outstanding
performance without conventional refrigerants.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Important: today&amp;rsquo;s fridges use compressors to squish gas, move it, and
uncompress it. It&amp;rsquo;s inefficient and many refrigerant gases are extremely harmful when
leaked.&lt;/p&gt;
&lt;p&gt;With Peltier effect devices, you apply electricity to a semiconductor and one side
gets hot, the other gets cool. No gases or moving parts.&lt;/p&gt;
&lt;p&gt;This feels equivalent to replacing coal-powered steam turbines to generate
electricity with photovoltaic solar panels.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;on-dyson-techno-centric-design-and-social-consumptionhttps2earthgithubiowebsite20250707html&#34;&gt;&lt;a href=&#34;https://2earth.github.io/website/20250707.html&#34;&gt;On Dyson, techno-centric design and social consumption&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Dyson puts an emphasis on design and technology in their products and
marketing. It’s undeniable that the company has brought transformative new
technologies into homes and changed the expectations for whole markets.
&amp;hellip;
But as time goes on, that position becomes unsustainable and Dyson are forced
to differentiate themselves not just through genuine back-of-house innovation
but by simply shouting “TECH!” as loud as possible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Great read.&lt;/em&gt; I&amp;rsquo;ve felt that &lt;em&gt;something&amp;rsquo;s off&lt;/em&gt;
about Dyson products before (why is my hand vacuum so uncomfortable?) but
couldn&amp;rsquo;t pinpoint it. This post broke the Dyson illusion for me.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;strawberries--dyson-farminghttpsdysonfarmingcomstrawberries&#34;&gt;&lt;a href=&#34;https://dysonfarming.com/strawberries/&#34;&gt;Strawberries – Dyson Farming&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Growing quality strawberries at scale, in a sustainable way, out of season,
draws on the expertise and experience of the Dyson Farming team.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cool&amp;hellip; weird? Dyson is building robotic strawberry farm polytunnels in
the UK. Cool tech, but wrong solution to a stupid problem (Brits simply
&lt;em&gt;must have strawberries&lt;/em&gt; all year round).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;londons-low-traffic-zones-cut-deaths-and-injuries-by-more-than-a-thirdhttpswwwtheguardiancomworld2025jul07londons-low-traffic-zones-cut-deaths-and-injuries-by-more-than-a-third&#34;&gt;&lt;a href=&#34;https://www.theguardian.com/world/2025/jul/07/londons-low-traffic-zones-cut-deaths-and-injuries-by-more-than-a-third&#34;&gt;London&amp;rsquo;s low-traffic zones &amp;lsquo;cut deaths and injuries by more than a third&amp;rsquo;&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Dr Jamie Furlong from Westminster University’s Active Travel Academy, who led
the new study, said its findings should reassure policymakers about the
schemes. He said: “LTNs have led to considerable reductions in road traffic
injuries inside their boundaries for all road users – from pedestrians and
cyclists to drivers. At the same time, concerns about nearby main roads
becoming more dangerous aren’t supported by the evidence.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These often work by blocking the &lt;em&gt;middle&lt;/em&gt; of a stretch of road, preventing
through-traffic. Houses, shops etc are still accessible by car, but other
cars can&amp;rsquo;t use the street as a cut-through.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Political aside:&lt;/em&gt; Rishi Sunak tried to politicise London&amp;rsquo;s ULEZ scheme
by commissioning a report on LTNs, presumably hoping it would find that
they didn&amp;rsquo;t work. When it &lt;a href=&#34;https://www.theguardian.com/uk-news/2024/mar/08/low-traffic-neighbourhoods-generally-popular-report-ordered-by-sunak-finds&#34;&gt;found the opposite,&lt;/a&gt;
he tried to suppress it. There&amp;rsquo;s a guy who puts consituents first.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;adding-a-feature-because-chatgpt-incorrectly-thinks-it-existshttpswwwholovatycomwritingchatgpt-fake-feature&#34;&gt;&lt;a href=&#34;https://www.holovaty.com/writing/chatgpt-fake-feature/&#34;&gt;Adding a feature because ChatGPT incorrectly thinks it exists&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Turns out ChatGPT is telling people to go to Soundslice, create an account
and import ASCII tab in order to hear the audio playback. Problem is, we
didn’t actually have that feature. We’ve never supported ASCII tab; ChatGPT
was outright lying to people. So that raised an interesting product question.
What should we do?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Funny: Soundslice added a product feature because ChatGPT consistently hallucinated
that they already had it.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;your-brain-on-chatgpt-accumulation-of-cognitive-debt-when-using-an-ai-assistant-for-essay-writing-taskhttpswwwmediamitedupublicationsyour-brain-on-chatgpt&#34;&gt;&lt;a href=&#34;https://www.media.mit.edu/publications/your-brain-on-chatgpt/&#34;&gt;Your Brain on ChatGPT: Accumulation of Cognitive Debt when Using an AI Assistant for Essay Writing Task&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Self-reported ownership of essays was the lowest in the LLM group and the
highest in the Brain-only group.
LLM users also struggled to accurately quote their own work.
While LLMs offer immediate convenience, our findings
highlight potential cognitive costs. Over four months, LLM users consistently
underperformed at neural, linguistic, and behavioral levels.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The sat-nav effect: super helpful, but you&amp;rsquo;ll forget how to navigate.&lt;/p&gt;
&lt;p&gt;With that in mind it isn&amp;rsquo;t surprising that LLMs make us forget how to write essays.&lt;/p&gt;
&lt;p&gt;What other skills do we want to lose? Beware!&lt;/p&gt;
&lt;p&gt;Discovered via &lt;a href=&#34;https://www.thedeeplife.com/podcasts/episodes/ep-359-should-we-fear-cognitive-debt/&#34;&gt;Deep Questions with Cal Newport&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;not-so-fast-ai-coding-tools-can-actually-reduce-productivityhttpssecondthoughtsaipai-coding-slowdown&#34;&gt;&lt;a href=&#34;https://secondthoughts.ai/p/ai-coding-slowdown&#34;&gt;Not So Fast: AI Coding Tools Can Actually Reduce Productivity&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Study Shows That Even Experienced Developers Dramatically Overestimate Gains&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Developers are particularly excited about AI coding tools, but tend to be wrong about
&lt;em&gt;actual productivity&lt;/em&gt;. Using AI tools can just &lt;em&gt;feel nicer&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Good news for devs, not so good for the bosses who already laid off a third of their workforces.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;stop-building-ai-agentshttpsdecodingmlsubstackcompstop-building-ai-agents&#34;&gt;&lt;a href=&#34;https://decodingml.substack.com/p/stop-building-ai-agents&#34;&gt;Stop Building AI Agents&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s what you should build instead&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Practical. It&amp;rsquo;s easy to get excited about running LLMs as &amp;ldquo;agents&amp;rdquo; (as I did
&lt;a href=&#34;https://paul.fawkesley.com/interesting-reads/2025-06-30/&#34;&gt;last month&lt;/a&gt;). This post describes other ways
of linking prompts together like &lt;em&gt;chaining&lt;/em&gt; and &lt;em&gt;routing&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;fast---catherinejuecomhttpswwwcatherinejuecomfast&#34;&gt;&lt;a href=&#34;https://www.catherinejue.com/fast&#34;&gt;fast - catherinejue.com&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Rarely in software does anyone ask for “fast.” We ask for features, we ask
for volume discounts, we ask for the next data integration. We never think to
ask for fast.
But software that&amp;rsquo;s fast changes behavior.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;100%. I love making things fast. Slow software is frustrating in a way that&amp;rsquo;s
hard to notice at the time, but takes a toll. I&amp;rsquo;m thinking of you, Monzo, taking
15 full seconds to open from a &amp;ldquo;payment approval&amp;rdquo; notification.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;shoggoth-minihttpswwwmatthieulccompostsshoggoth-mini&#34;&gt;&lt;a href=&#34;https://www.matthieulc.com/posts/shoggoth-mini&#34;&gt;Shoggoth Mini&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;For these future robots to live with us, they must be expressive.
Expressiveness communicates internal state such as intent, attention, and
confidence. Beyond its functional utility as a communication channel,
expressiveness makes interactions feel natural.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Very cute: making an &lt;em&gt;expressive&lt;/em&gt; robot. Despite looking totally alien,
it &lt;em&gt;feels&lt;/em&gt; very relatable.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;subscribe-to-updates&#34;&gt;Subscribe to updates&amp;hellip;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://paul.fawkesley.com/interesting-reads/index.xml&#34;&gt;RSS feed for interesting reads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://paul.fawkesley.com/index.xml&#34;&gt;RSS feed for everything&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Or, &lt;a href=&#34;https://paul.fawkesley.com/contact/&#34;&gt;email me how you&amp;rsquo;d like to subscribe&lt;/a&gt; and I&amp;rsquo;ll make it happen.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting things I read in June 2025</title>
      <link>https://paul.fawkesley.com/interesting-reads/2025-06-30/</link>
      <pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2025-06-30/</guid>
      <description>&lt;p&gt;&lt;em&gt;Electrifying everything, AI agents and internet resiliency.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;first-electric-aircraft-lands-at-jfk--general-aviation-newshttpsgeneralaviationnewscom20250605first-electric-aircraft-lands-at-jfk&#34;&gt;&lt;a href=&#34;https://generalaviationnews.com/2025/06/05/first-electric-aircraft-lands-at-jfk/&#34;&gt;First electric aircraft lands at JFK — General Aviation News&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;According to Beta Technology officials, the ALIA can fly 250 nautical miles on
a single charge. He told reporters from Reuters that it cost just $8 to power
the 45-minute flight.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Important because flying isn&amp;rsquo;t going away and jet fuel isn&amp;rsquo;t going green.
Growing it as biofuel is an extremely bad use of land that we need for other
things. Batteries are getting better, lighter, cheaper, &lt;em&gt;very&lt;/em&gt; quickly.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://beta.team/&#34;&gt;Beta Technologies&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Discovered via the highly-recommended newsletter, &lt;a href=&#34;https://billmckibben.substack.com/&#34;&gt;The Crucial Years, by Bill McKibben&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;terraform-industries-is-scaling-technology-to-produce-cheap-natural-gas-with-sunlight-and-airhttpsterraformindustriescom&#34;&gt;&lt;a href=&#34;https://terraformindustries.com/&#34;&gt;Terraform Industries is scaling technology to produce cheap natural gas with sunlight and air.&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;We are committed to cutting the net CO2 flux from crust to atmosphere as
quickly as possible. As solar power gets cheaper, there will come a time when
it is cheaper to get carbon from the atmosphere than an oil well. That time is
now.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve been watching these ambitious people for a while. It seems they&amp;rsquo;ve just
raised a chunk of cash and are forging ahead.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;byd-is-testing-solid-state-ev-batteries-with-nearly-1200-miles-of-rangehttpselectrekco20250620byd-tests-solid-state-batteries-seal-ev-with-1000-miles-range&#34;&gt;&lt;a href=&#34;https://electrek.co/2025/06/20/byd-tests-solid-state-batteries-seal-ev-with-1000-miles-range/&#34;&gt;BYD is testing solid-state EV batteries with nearly 1,200 miles of range&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;BYD has now begun testing solid-state EV batteries in its Tesla Model
3-rivalling Seal. Initial tests suggest that the total driving range could
reach nearly 1,200 miles (1,875 km).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;m playing catch-up here: I didn&amp;rsquo;t realise solid state batteries were a thing.
Today&amp;rsquo;s lithium ion batteries have a &lt;em&gt;liquid&lt;/em&gt; electrolyte. In contrast,
solid state batteries have a solid electrolyte and a whole raft of advantages,
apparently:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;twice the energy density (stored energy per weight)&lt;/li&gt;
&lt;li&gt;much faster to charge&lt;/li&gt;
&lt;li&gt;less flammable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Assuming these advantages can be had for a similar price, that&amp;rsquo;s a big deal.
Reducing the need for mid-trip chargers can only be a good thing for reducing
range anxiety and increasing uptake.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;how-to-build-an-agenthttpsampcodecomhow-to-build-an-agent&#34;&gt;&lt;a href=&#34;https://ampcode.com/how-to-build-an-agent&#34;&gt;How to Build an Agent&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Building a fully functional, code-editing agent in less than 400 lines.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;An &amp;ldquo;Agent&amp;rdquo; is an LLM equipped with tools. A tool is some custom code you
write that takes input from the LLM and returns it output to the LLM.&lt;/p&gt;
&lt;p&gt;The first tool I wrote was &lt;code&gt;roll_dice()&lt;/code&gt;. Under the hood, the tool picks
a random number 1—6 and outputs the words &amp;ldquo;the dice roll was X&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;I told the LLM it has a tool called &lt;code&gt;roll_dice()&lt;/code&gt; in a special type of
chat message that comes before the main chat.&lt;/p&gt;
&lt;p&gt;Then, when I asked it to roll a dice, it called the tool, rather than
just hallucinating a (non-random) number.&lt;/p&gt;
&lt;p&gt;I followed along this article for a few hours and built several tools
that allowed the LLM to find and read documents relating to how we
run our business. The difference in usefulness was &lt;strong&gt;profound&lt;/strong&gt; and deserves
its own write-up.&lt;/p&gt;
&lt;p&gt;The take-away here is that LLMs with tools are &lt;em&gt;unbelievably&lt;/em&gt; more useful
when they have domain-specific tools. They seem to know what they don&amp;rsquo;t know
and switch to using tools rather than hallucinating a people-pleasing response.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;start-your-own-internet-resiliency-clubhttpsbowshocknlirc&#34;&gt;&lt;a href=&#34;https://bowshock.nl/irc/&#34;&gt;Start your own Internet Resiliency Club&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This appealled because I&amp;rsquo;m increasingly thinking about preparing for difficult
times and the importance of:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;planning ahead, and&lt;/li&gt;
&lt;li&gt;trusted in-person local communities&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I mentioned this in a group and &lt;a href=&#34;https://mcqn.com/&#34;&gt;Adrian&lt;/a&gt; unearthed his
&lt;a href=&#34;https://www.seeedstudio.com/SenseCAP-Card-Tracker-T1000-E-for-Meshtastic-p-5913.html&#34;&gt;T1000-E device that supports Meshtastic.&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;a-receipt-printer-cured-my-procrastination-adhdhttpswwwlaurieheraultcomarticlesa-thermal-receipt-printer-cured-my-procrastination&#34;&gt;&lt;a href=&#34;https://www.laurieherault.com/articles/a-thermal-receipt-printer-cured-my-procrastination&#34;&gt;A receipt printer cured my procrastination [ADHD]&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Why can I focus for hours on a game but procrastinate on simple tasks? I finally cracked the code using thermal receipt printer and game design.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Fun: I like the way the author uses ideas from game design to create dopamine rewards when he completes tasks&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>How to keep Heroku CLI logged in</title>
      <link>https://paul.fawkesley.com/2025-01-23-how-to-keep-heroku-cli-logged-in/</link>
      <pubDate>Thu, 23 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2025-01-23-how-to-keep-heroku-cli-logged-in/</guid>
      <description>&lt;p&gt;I use the heroku command-line most days. It frequently logs out, giving this message:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;▸    Invalid credentials provided.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s how to keep the heroku CLI logged in for a year.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Log in to Heroku&amp;rsquo;s dashboard and &lt;a href=&#34;https://dashboard.heroku.com/account/applications&#34;&gt;create a new &lt;strong&gt;Authorization&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Call it something useful e.g. &lt;code&gt;2025-01-23 heroku cli desktop&lt;/code&gt; to remind you next time.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Expires after&lt;/strong&gt; to &lt;code&gt;31536000&lt;/code&gt; (1 year)&lt;/li&gt;
&lt;li&gt;Copy that new token into your &lt;code&gt;~/.netrc&lt;/code&gt; file&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;# ~/.netrc
# Regenerate Heroku Authorization annually with a 1-year expiry (31536000 seconds). See:
# * https://dashboard.heroku.com/account/applications
# * https://paul.fawkesley.com/blog/2025-01-23-how-to-keep-heroku-cli-logged-in/

machine api.heroku.com
  login your.heroku.login@example.com
  password HRKU-YOUR-NEW-TOKEN
machine git.heroku.com
  login your.heroku.login@example.com
  password HRKU-YOUR-NEW-TOKEN
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That&amp;rsquo;s it. Test it by running &lt;code&gt;heroku whoami&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I tried logging in with &lt;code&gt;heroku login -i&lt;/code&gt; using the new token as the password.
This appeared to work but created &lt;em&gt;another&lt;/em&gt; short-lived Authorization in Heroku. Thanks to
&lt;a href=&#34;https://stackoverflow.com/a/67522810&#34;&gt;this Stackoverflow answer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t make a token that never expires. I don&amp;rsquo;t want a backup I create now to be able to
compromise my account 10 years from now. Forever tokens are bad.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Automating my dishwasher for fun and profit</title>
      <link>https://paul.fawkesley.com/2024-08-30-automating-my-dishwasher-for-fun-and-profit/</link>
      <pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2024-08-30-automating-my-dishwasher-for-fun-and-profit/</guid>
      <description>&lt;p&gt;In June we switched to a fully variable electricity tariff, &lt;a href=&#34;https://octopus.energy/smart/agile/&#34;&gt;Octopus Agile.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Every half-hour we have a different price per kilowatt-hour. This varies wildly throughout the day:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-08-30-automating-my-dishwasher-for-fun-and-profit/agile-dashboard-graph-2002w-940h.png&#34; alt=&#34;A bar chart showing 24 hours on the x-axis. On the y-axis is price and the bars range from around 35 pence at 17:00 to 3 pence at 13:00&#34; loading=&#34;lazy&#34; width=&#34;2002&#34; height=&#34;940&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;&lt;em&gt;Image from &lt;a href=&#34;https://www.agiledashboard.co.uk/&#34;&gt;Agile dashboard&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We run a dishwasher every day.&lt;/p&gt;
&lt;p&gt;I wondered if I could automate it to optimise the cost and carbon emissions.&lt;/p&gt;
&lt;h2 id=&#34;controlling-the-dishwasher&#34;&gt;Controlling the dishwasher&lt;/h2&gt;
&lt;p&gt;Fortunately we have a “dumb” dishwasher with manual controls and no timers or internet connection.&lt;/p&gt;
&lt;p&gt;Even more fortunately, if you switch the power off while it’s running and switch it on again later, it continues where it left off.&lt;/p&gt;
&lt;p&gt;This meant it would be possible to hack together a solution using a smart plug.&lt;/p&gt;
&lt;h2 id=&#34;using-the-shelly-plus-plug-uk&#34;&gt;Using the Shelly Plus Plug UK&lt;/h2&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-08-30-automating-my-dishwasher-for-fun-and-profit/shelly-plus-plug-uk-600w-600h.jpg&#34; alt=&#34;A cylindrical smart-plug with a colourful LED ring and female UK socket on the front.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;600&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;The &lt;a href=&#34;https://www.shelly.com/en-gb/products/product-overview/shelly-plus-plug-uk&#34;&gt;Shelly Plus Plug UK&lt;/a&gt; is a super little smart plug.&lt;/p&gt;
&lt;p&gt;It plugs into the socket, then you plug an appliance into it.&lt;/p&gt;
&lt;p&gt;It can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;measure instantaneous power consumption&lt;/li&gt;
&lt;li&gt;switch the appliance on and off&lt;/li&gt;
&lt;li&gt;display different colours on its LED ring&lt;/li&gt;
&lt;li&gt;connect to a Wifi network&lt;/li&gt;
&lt;li&gt;run Javascript!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’ve been using a few Shellys around the house with simple schedules.&lt;/p&gt;
&lt;p&gt;I only recently discovered they can run Javascript with full access to everything the plug can do.&lt;/p&gt;
&lt;h2 id=&#34;holding-off-the-dishwasher&#34;&gt;Holding off the dishwasher&lt;/h2&gt;
&lt;p&gt;Surely I could write a script that detects when the dishwasher is turned on and switches it
off until the next cheapest period?&lt;/p&gt;
&lt;p&gt;That would offer a simple user experience: load the dishwasher and turn it on as normal. Let
the plug do the work. No faffing around with timed starts or annoying apps.&lt;/p&gt;
&lt;h2 id=&#34;getting-agile-prices-with-the-octopus-api&#34;&gt;Getting Agile prices with the Octopus API&lt;/h2&gt;
&lt;p&gt;Since the plug can talk to the internet, it just needs to access prices by
calling the Octopus API…&lt;/p&gt;
&lt;p&gt;Octopus publishes the half-hourly prices at around 4pm each day for the next day.&lt;/p&gt;
&lt;p&gt;They provide an API to get the prices. I used an excellent &lt;a href=&#34;https://www.guylipman.com/octopus/api_guide.html&#34;&gt;blog post from Guy Lipman&lt;/a&gt; to help me navigate the API.&lt;/p&gt;
&lt;p&gt;Once I had access to the prices, I needed to work out the best time to run the dishwasher.&lt;/p&gt;
&lt;h2 id=&#34;deciding-when-to-run-the-dishwasher&#34;&gt;Deciding when to run the dishwasher&lt;/h2&gt;
&lt;h3 id=&#34;version-1-fixed-time-1am&#34;&gt;version 1: fixed time (1am)&lt;/h3&gt;
&lt;p&gt;For the first iteration, I simply started it at 1am every morning. On average this massively beats starting at 8pm, when we normally load the dishwasher.&lt;/p&gt;
&lt;p&gt;Cut me some slack: I was doing this in random hours around childcare!&lt;/p&gt;
&lt;h3 id=&#34;version-2-dynamic-time-assuming-2-hours-flat-consumption&#34;&gt;version 2: dynamic time, assuming 2 hours flat consumption&lt;/h3&gt;
&lt;p&gt;I know the dishwasher takes about 2 hours to run.&lt;/p&gt;
&lt;p&gt;For the second iteration I simply looked for the cheapest consecutive two-hour period of Agile prices.&lt;/p&gt;
&lt;p&gt;This worked well. The start time varied between around 1am and 4am.&lt;/p&gt;
&lt;h3 id=&#34;version-3-dynamic-time-actual-consumption-profile&#34;&gt;version 3: dynamic time, actual consumption profile&lt;/h3&gt;
&lt;p&gt;I knew that the dishwasher doesn’t consume evenly across the four half-hourly periods.&lt;/p&gt;
&lt;p&gt;I added the Shelly as a device in Home Assistant and let the logging begin. The next day I saw a power profile like this:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-08-30-automating-my-dishwasher-for-fun-and-profit/consumption-profile-1600w-900h.png&#34; alt=&#34;A graph showing power consumption. There are two spikes about an hour apart.&#34; loading=&#34;lazy&#34; width=&#34;1600&#34; height=&#34;900&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Interestingly, most consumption is in the first and fourth half-hourly period.
That’s the heating and the drying cycle, when the powerful 2.2kW immersion
heater comes on. The rest of the time is just a little motor using barely any
power.&lt;/p&gt;
&lt;p&gt;HomeAssistant recorded a data point any time there was a change in power
(Watts). I needed to integrate that (area under the line) so I knocked up a
quick Go script to convert HA’s history.csv file into a half-hourly energy
profile (kilowatt-hours).&lt;/p&gt;
&lt;p&gt;The energy profile came out like this:  [0.350, 0.074,  0.014, 0.381]&lt;/p&gt;
&lt;p&gt;I updated the code to correlate the consumption profile along the next 12 hours
of Agile prices, rather than just looking for the cheapest two hours.&lt;/p&gt;
&lt;p&gt;This was a fun optimisation over v2 but probably didn’t gain much. (It would be more important for a 7-hour washer dryer cycle with energy-intensive tumble drying towards the end.)&lt;/p&gt;
&lt;h2 id=&#34;putting-it-all-together&#34;&gt;Putting it all together&lt;/h2&gt;
&lt;p&gt;The daily user experience looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pack the dishwasher, put the tablet in, select the program,&lt;/li&gt;
&lt;li&gt;Open the cupboard next to the dishwasher and check the Shelly plug is blue (“waiting for dishwasher”)&lt;/li&gt;
&lt;li&gt;Close the dishwasher to start it&lt;/li&gt;
&lt;li&gt;Listen for the dishwasher to start and stop&lt;/li&gt;
&lt;li&gt;Check the Shelly plug has gone red&lt;/li&gt;
&lt;li&gt;Enjoy a quiet evening knowing it will be done by morning&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Keep an eye on the LED colour ring of the Shelly plug in the cupboard:&lt;/p&gt;
&lt;video controls&gt;
  &lt;source src=&#34;https://paul.fawkesley.com/img/2024-08-30-automating-my-dishwasher-for-fun-and-profit/video.mp4&#34; type=&#34;video/mp4&#34; /&gt;
&lt;/video&gt;
&lt;p&gt;Behind the scenes, this is what happens:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When the Shelly plug boots, it runs the script. The script enters &lt;code&gt;waiting&lt;/code&gt; mode and configures
the LED settings so that on=blue.&lt;/li&gt;
&lt;li&gt;When the dishwasher gets turned on, the script detects that the dishwasher is
drawing over 5 Watts.&lt;/li&gt;
&lt;li&gt;It makes an API call to my website which returns a number of seconds to delay.&lt;/li&gt;
&lt;li&gt;It turns the switch off with the &lt;code&gt;toggle_at&lt;/code&gt; parameter set to the delay (this means the plug
will turn itself back on automatically.)&lt;/li&gt;
&lt;li&gt;The script flips into &lt;code&gt;holding&lt;/code&gt; mode. It configures the LED settings so that on=green.&lt;/li&gt;
&lt;li&gt;After the defined delay, the plug toggles itself back to on.&lt;/li&gt;
&lt;li&gt;The script flips into &lt;code&gt;running&lt;/code&gt; mode and starts to monitor power consumption.&lt;/li&gt;
&lt;li&gt;After 1 hour of no power consumption &amp;gt; 5 Watts, the script returns to &lt;code&gt;waiting&lt;/code&gt; mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;quiet-evenings-are-an-unexpected-benefit&#34;&gt;Quiet evenings are an unexpected benefit&lt;/h2&gt;
&lt;p&gt;As an unexpected benefit, it’s really nice being able to put the dishwasher on
straight after dinner and not have it running noisily in the open plan living
room.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s also nice to be able to add forgotten cups and plates without it complaining. Since it&amp;rsquo;s
powered off, it couldn&amp;rsquo;t care less if you open the door.&lt;/p&gt;
&lt;p&gt;So far it’s working well. I haven’t yet calculated the saving but it’s already
deeply satisfying knowing it’s always running on cheap, low carbon electricity.&lt;/p&gt;
&lt;p&gt;Win.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>I used AI to recommend talks at Wilderness festival</title>
      <link>https://paul.fawkesley.com/2024-07-31-i-used-ai-to-recommend-talks-at-wilderness-festival/</link>
      <pubDate>Wed, 31 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2024-07-31-i-used-ai-to-recommend-talks-at-wilderness-festival/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2024-07-31-i-used-ai-to-recommend-talks-at-wilderness-festival/claude-screenshot-600w-585h.png&#34; alt=&#34;A screenshot of a chat with Claude AI&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;585&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;If you don&amp;rsquo;t know it, &lt;a href=&#34;https://www.wildernessfestival.com&#34;&gt;Wilderness Festival&lt;/a&gt; is as much
about talks and debates as it is music (as well as arts, food, wellness and more&amp;hellip;)&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a packed programme with some really good stuff. But with 81 talks and debates this year,
there&amp;rsquo;s a lot to look through. Honestly, I was too lazy to click through 81 pages but didn&amp;rsquo;t
want to miss out on gems.&lt;/p&gt;
&lt;h2 id=&#34;could-ai-help&#34;&gt;Could AI help?&lt;/h2&gt;
&lt;p&gt;I wondered if AI could help. Perhaps I could tell it my interests, what kind of talks I&amp;rsquo;ve
attended before, and get it to look through the programme for me?&lt;/p&gt;
&lt;h2 id=&#34;using-claude-ai&#34;&gt;Using Claude AI&lt;/h2&gt;
&lt;p&gt;I love Claude AI&amp;rsquo;s &lt;a href=&#34;https://www.anthropic.com/news/projects&#34;&gt;projects&lt;/a&gt; feature. It allows you
to create a project - &amp;ldquo;Wilderness 2024&amp;rdquo; - with &amp;ldquo;permanent knowledge&amp;rdquo;. That just means you can
add a bunch of files, and this context is available every time you start a chat in that project.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a simple feature that I find incredibly valuable. I can upload relevant context &lt;strong&gt;once&lt;/strong&gt;
then mess around with fresh chats as much as I like.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-07-31-i-used-ai-to-recommend-talks-at-wilderness-festival/project-knowledge-600w-300h.png&#34; alt=&#34;A screenshot of 3 files in a Claude project&amp;#39;s permanent knowledge&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;300&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Hat tip to Tom Halloran for encouraging me to trial Claude AI and putting me on to Projects.&lt;/p&gt;
&lt;h2 id=&#34;dumping-the-programme&#34;&gt;Dumping the programme&lt;/h2&gt;
&lt;p&gt;Thank you Wilderness HQ for publishing your lineup on the web in a straightforward format.
Plain HTML, no Javascript required, one page per event. Nice job.&lt;/p&gt;
&lt;p&gt;It was fiddly but ultimately easy to dump the programme and convert it into text format:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;wget&lt;/code&gt; the lineup HTML&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grep&lt;/code&gt; all links from the HTML containing &lt;code&gt;/experiences/talks/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;tweak the links by hand with &lt;code&gt;vim&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;download each talk page: &lt;code&gt;wget -i talks_urls.txt --no-parent --no-directories --content-on-error&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;extract the title and body sections:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;for f in index.html*
do
  cat $f | htmlq &amp;quot;.SecondaryHeader-heading, .RichText&amp;quot; --text
  echo &amp;quot;----------&amp;quot;
  echo
done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I dumped that into a 72K file &lt;code&gt;wilderness-2024-talks-programme.txt&lt;/code&gt; and uploaded it
as permanent knowledge in to the Claude project.&lt;/p&gt;
&lt;h2 id=&#34;blog-posts-about-previous-festivals&#34;&gt;Blog posts about previous festivals&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;d written three blog posts about talks I attended at previous festivals. These aren&amp;rsquo;t
interesting: they&amp;rsquo;re basically an archive of the event description and
speakers&#39; names to aid my memory.&lt;/p&gt;
&lt;p&gt;But they gave me a short-cut for telling Claude what kind of talks I&amp;rsquo;d be interested in.&lt;/p&gt;
&lt;p&gt;I used Safari on iOS to make a whole page screenshot PDF and saved them as &lt;code&gt;What I went to at [festival]&lt;/code&gt;. I uploaded them to the project&amp;rsquo;s permanent knowledge.&lt;/p&gt;
&lt;h2 id=&#34;stating-my-interests&#34;&gt;Stating my interests&lt;/h2&gt;
&lt;p&gt;This was the hardest bit because it&amp;rsquo;s so open ended. I added a permanent knowledge
text note called &lt;code&gt;my areas of interest&lt;/code&gt; containing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;climate change solutions&lt;/li&gt;
&lt;li&gt;renewable energy&lt;/li&gt;
&lt;li&gt;co-operatives and practical alternatives to conventional business&lt;/li&gt;
&lt;li&gt;wilding and regenerative farming&lt;/li&gt;
&lt;li&gt;improving democracy&lt;/li&gt;
&lt;li&gt;tech for good&lt;/li&gt;
&lt;li&gt;effective altruism&lt;/li&gt;
&lt;li&gt;ethics&lt;/li&gt;
&lt;li&gt;artificial intelligence for good&lt;/li&gt;
&lt;li&gt;solving inequality&lt;/li&gt;
&lt;li&gt;redistributing wealth&lt;/li&gt;
&lt;li&gt;progressive politics&lt;/li&gt;
&lt;li&gt;climate activism and human rights&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;finally-the-prompt&#34;&gt;Finally, the prompt&lt;/h2&gt;
&lt;p&gt;The programme of talks, 3 blog posts and my interests used 15% of the available knowledge size.&lt;/p&gt;
&lt;p&gt;All that was left was to ask the question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Based on the blog posts I wrote about previous festivals I attended and the
interests I told you about, which talks do you think I should see at
Wilderness this year and why?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And Claude came back with 7 very good suggestions:&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Based on your previous festival experiences and stated interests, here are some talks I think you would enjoy at Wilderness this year:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;Material World: A Substantial History of Our World Past and Future&amp;rdquo; by Ed Conway
This aligns with your interests in climate change solutions and renewable energy. Conway explores how six key materials have shaped human development and will impact our future, which should provide interesting insights into sustainability challenges.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;Doughnut Economics&amp;rdquo; with Kate Raworth
Given your interest in co-operatives, practical alternatives to business, and solving inequality, Raworth&amp;rsquo;s discussion of her economic model that aims to meet people&amp;rsquo;s needs within planetary boundaries would likely be fascinating for you.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;The Future of Geography&amp;rdquo; with Tim Marshall
This talk about space exploration and its geopolitical implications touches on your interests in technology for good and artificial intelligence. It could provide interesting perspectives on how space development might impact global issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;A vision for a better future&amp;rdquo; with Kate Pickett and Danny Dorling
Their discussion of progressive policies aligns well with your interests in improving democracy, solving inequality, and redistributive politics.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;History For Tomorrow&amp;rdquo; by Roman Krznaric
This talk about learning from history to tackle current challenges like climate change and inequality fits perfectly with many of your stated interests.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;The Smartphone Free Childhood Movement&amp;rdquo; with Jamie Bartlett and Clare Fernyhough
While not directly mentioned in your interests, this topic relates to the social impacts of technology, which seems relevant to your tech for good interest.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;AI for Humans&amp;rdquo; with Madhumita Murgia
This exploration of AI&amp;rsquo;s impact on daily life connects to your interest in artificial intelligence for good.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These talks cover a range of your interests from climate change and renewable energy to progressive politics, inequality, and the societal impacts of technology. They should provide thought-provoking content similar to what you&amp;rsquo;ve enjoyed at previous festivals.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I&amp;rsquo;d already earmarked 4 out of those 7 from browsing the programme. I&amp;rsquo;d completely missed
the other 3 so it&amp;rsquo;s proven really helpful.&lt;/p&gt;
&lt;p&gt;Just to be sure, I asked:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Are there any other events I might like?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To which it politely came up with more suggestions&amp;hellip;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Certainly! Based on your interests and past festival experiences, here are some additional events you might enjoy at Wilderness this year:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;State of The Nation&amp;rdquo;
This debate-style event could appeal to your interest in democracy and progressive politics. It&amp;rsquo;s described as &amp;ldquo;Question Time with balls&amp;rdquo; and features an eclectic selection of minds, which might provide diverse perspectives on current issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;Sunday Papers Live&amp;rdquo;
This event brings the broadsheets to life section by section, which could cover a range of your interests from climate change to politics. It&amp;rsquo;s a unique way to engage with current affairs and might be reminiscent of the &amp;ldquo;Sunday Papers Live&amp;rdquo; events you enjoyed at How The Light Gets In.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;Reading Between the Wines&amp;rdquo;
While not directly related to your stated interests, you&amp;rsquo;ve mentioned enjoying literary events at previous festivals. This unique combination of books and wine tasting could be an interesting and fun experience.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;Letters Live&amp;rdquo;
You&amp;rsquo;ve highlighted this as a highlight in your previous Wilderness experiences, noting it as &amp;ldquo;one of the finest hours of entertainment you will ever experience.&amp;rdquo; Given your past enjoyment, you might want to attend again.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;How To Ask for What You Really Really Want&amp;rdquo; with Adam Taffler
This workshop on communication and relationships might offer insights into improving social dynamics, which could relate to your interest in improving democracy and social structures.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;Engl-ish&amp;rdquo; hosted by Heydon Prowse
This discussion about English national identity and its relationship to progressive politics could be interesting given your interest in progressive politics and improving democracy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;Philosophy Slam!&amp;rdquo;
Given your attendance at philosophy festivals in the past, this improvisational philosophy event might appeal to you. It could offer interesting perspectives on various topics related to your interests.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;PoliticsJOE Pubcast Live&amp;rdquo;
This live podcast focusing on British politics with a humorous twist could be enjoyable given your interest in progressive politics and improving democracy.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;I&amp;rsquo;m disappointed it missed &amp;ldquo;Letters Live&amp;rdquo; in the first attempt. It literally told me I&amp;rsquo;d called
it a past highlight!&lt;/p&gt;
&lt;p&gt;The wine one&amp;rsquo;s an oddball but I can see the link from How the Light Gets In.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Engl-ish&amp;rdquo; and &amp;ldquo;PoliticsJOE Pubcast Live&amp;rdquo; look great and I&amp;rsquo;m adding those to my list.&lt;/p&gt;
&lt;h2 id=&#34;this-was-fun-interesting-and-extremely-impressive&#34;&gt;This was fun, interesting and extremely impressive&lt;/h2&gt;
&lt;p&gt;OK, so I totally didn&amp;rsquo;t need to do this. But it was a fun and interesting and I&amp;rsquo;m really
impressed.&lt;/p&gt;
&lt;p&gt;For Claude to suck in that whole programme and &lt;em&gt;rapidly&lt;/em&gt; answer what is a pretty complex
question is &amp;hellip; mind blowing.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t like adding to the AI hype because much of it is bollocks. But increasingly I&amp;rsquo;m finding
that using AI as a &lt;em&gt;pairing buddy&lt;/em&gt; (rather than a subordinate) gives me superpowers.&lt;/p&gt;
&lt;p&gt;Cheers Claude!&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Review: Plug Me In (Heat) - Heat Pump Installer</title>
      <link>https://paul.fawkesley.com/2024-07-09-review-plug-me-in-heat/</link>
      <pubDate>Tue, 09 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2024-07-09-review-plug-me-in-heat/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2024-07-09-review-plug-me-in-heat/image-600w-240h.png&#34; alt=&#34;Plug Me In logo&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;240&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;In June 2024, Plug Me In (Heat) installed our Vaillant heat pump. Here&amp;rsquo;s how it
went from start to finish.&lt;/p&gt;
&lt;p&gt;We first found Plug Me In (Heat) from &lt;a href=&#34;https://www.vaillant-advance.co.uk/findaninstaller/search?RenewableProductType=air-source-heat-pump&amp;amp;ServiceType=installation&amp;amp;InstallerType=renewable&#34;&gt;Vaillant&amp;rsquo;s list of &amp;ldquo;master tech&amp;rdquo; certified installers.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We wanted a quote from three installers to compare their approach and prices.
There&amp;rsquo;s a lot of variety in customer experience between installers at the
moment so this was helpful.&lt;/p&gt;
&lt;p&gt;With Plug Me In, the start of the journey was completing a simple web form
which captured some info about the size and type of our house and my contact
details. I got a confirmation email saying someone would get in touch. That was
on Saturday then on the following Friday had a phone call from a very nice guy
Carson, their Customer Experience Manager. It was a good call, not at all
salesy, and I felt listened to and confident.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t mind that it took 6 days to follow up but I did wonder if their system
had lost my details. In the meantime, their close competitor had called on
Wednesday and arranged a home visit the next Monday.&lt;/p&gt;
&lt;p&gt;Next I received a link with another simple web form, this time asking to take
some photos of the house. This was slick and easy to complete.&lt;/p&gt;
&lt;h2 id=&#34;home-visit&#34;&gt;Home visit&lt;/h2&gt;
&lt;p&gt;After a gentle nudge, they arranged a home visit by Wayne. I really liked
Wayne. He&amp;rsquo;s a details guy and knows houses really well. He likes to do a job
properly and we was delighted that we&amp;rsquo;d been approaching our home retrofit in
the same way.&lt;/p&gt;
&lt;p&gt;The purpose of the visit was to capture as much information about the house as
possible. Floor plan, radiators, pipework, back garden layout and so on. He
took lots of measurements and photos. He also planned how the heat pump
pipework could enter the house and creep through the floor underneath the
bathroom.&lt;/p&gt;
&lt;h2 id=&#34;system-design&#34;&gt;System design&lt;/h2&gt;
&lt;p&gt;Soon, I heard from Rhys, their system designer. He had made a detailed software
model of the house. This showed the heat required in each room, the
corresponding radiator sizes, the recommended heat pump size (5kW), hot water
tank etc.&lt;/p&gt;
&lt;p&gt;They initially proposed a heating flow temperature of 45°C which would have
required 4 radiator upgrades I think. I wanted to aim for a 40°C flow
temperature as this is more efficent (but requires more radiator upgrades, so
more expensive). Rhys was happy to update the model, which now showed that all
8 radiators would need upgrading. It now showed that the bathroom would have
insufficient heat with only a towel rail. We agreed that I would separately
install electric underfloor heating. Rhys was extremely knowledgeable and
accommodating of my detailed questions at this stage.&lt;/p&gt;
&lt;h2 id=&#34;installation-plan&#34;&gt;Installation plan&lt;/h2&gt;
&lt;p&gt;I really appreciated their honesty and detail about potential issues they had
identified. One radiator was fed with plastic pipework and it wasn&amp;rsquo;t clear
if there was copper near by. They warned that if not, they&amp;rsquo;d need to bring a
new copper feed down from the ceiling. The other warning was that getting the
pipework under the bathroom floor might require a small section of kitchen
ceiling to come down. We were fine with all this and it was useful to know
because we held off on a few other plastering and decorating jobs to get it all
done later.&lt;/p&gt;
&lt;h2 id=&#34;quotation&#34;&gt;Quotation&lt;/h2&gt;
&lt;p&gt;The quote we received was good for two reasons. First, the price was great
(£5,150 after £7.5K grant) for a heat pump, 250L Vaillant tank, 8 radiator
upgrades and a week of install. This was about £1K cheaper than the
aforementioned competitor. Second, the level of detail was fantastic. All the
heat calculations and radiator sizes were included. I felt confident they had a
plan and could execute this install well.&lt;/p&gt;
&lt;p&gt;I accepted the quote, signed a contract and we scheduled a week for the
install. They expected it to take 4 or possibly 5 days.&lt;/p&gt;
&lt;h2 id=&#34;install-week&#34;&gt;Install week&lt;/h2&gt;
&lt;p&gt;Mark, Gregg and Luke turned up bright and early, in time for piles and piles of
boxes and pallets to arrive (heat pump, tank, 8 radiators). I really rate all
three. Mark and Gregg both transitioned from installing gas and have completely
embraced the change the mountains of learning that went with it. Their
knowledge and enthusiasm was seriously impressive. And the pipework in the
cupboard and up the wall is a work of art. Luke installed all the radiators and
also did a super neat job.&lt;/p&gt;
&lt;p&gt;As expected it was a noisy, messy, hot and dusty week. But the guys were in
good spirits and we had a laugh and they made amazing progress. They tolerated
me wanting to know everything they were doing and were pleased to teach me the
ins and outs of the highly detailed configuration screens (none of which is
required for &amp;ldquo;normal&amp;rdquo; people but as an engineer I wanted to know everything!)&lt;/p&gt;
&lt;p&gt;The job generated lot of rubbish, packaging and old radiators. I passed on a
few bits on freecycle and the rest got collected by a Liverpool based waste
removal company. That didn&amp;rsquo;t go smoothly but I had a good laugh with Louise in
operations about it, so all was well.&lt;/p&gt;
&lt;h2 id=&#34;follow-up-and-handover&#34;&gt;Follow-up and handover&lt;/h2&gt;
&lt;p&gt;Finally, various bits of paperwork have been trickling through. I got the MCS
certificate, Building Control approval, some insurance stuff and a Scottish
Power Networks are upgrading the cable to our house in the next few weeks.&lt;/p&gt;
&lt;p&gt;Within a week I received a full handover pack with a copy of everything
including Vaillant warranty confirmations and building regulations notifications.&lt;/p&gt;
&lt;h2 id=&#34;we-love-our-heat-pump&#34;&gt;We love our heat pump&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve been using the heat pump for a week now. I love it. It&amp;rsquo;s SO quiet
(quieter than the boiler!) but so powerful.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve tried my best to hear the heat pump from our bedroom but it&amp;rsquo;s quieter
than ambient.&lt;/p&gt;
&lt;p&gt;We heat the hot water overnight when &lt;a href=&#34;https://octopus.energy/smart/agile/&#34;&gt;Octopus Agile&amp;rsquo;s&lt;/a&gt;
prices are crazy cheap.&lt;/p&gt;
&lt;h2 id=&#34;would-recommend&#34;&gt;Would recommend&lt;/h2&gt;
&lt;p&gt;Based on my experience, Plug Me In have done an impressive job of hiring and
building a culture of quality. Everyone I dealt with was detail-oriented and
wanted to do the job right. It&amp;rsquo;s rare and refreshing when you find these
people. I recommend them completely.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.plugmein.com/heat-pumps&#34;&gt;https://www.plugmein.com/heat-pumps&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve stopped burning gas and I&amp;rsquo;m delighted 🍾&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>How The Light Gets In 2024</title>
      <link>https://paul.fawkesley.com/2024-05-27-how-the-light-gets-in-2024/</link>
      <pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2024-05-27-how-the-light-gets-in-2024/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2024-05-27-how-the-light-gets-in-2024/how-the-light-gets-in-hay-site-600w-450h.jpg&#34; alt=&#34;White tents and colourful flags in a green tree-lined valley of Hay-on-Wye&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;On 24-27th May 2024 we returned to Hay-on-Wye for one of our favourite festivals.&lt;/p&gt;
&lt;p&gt;This post is a reminder of which talks and debates we went to. It&amp;rsquo;s for me: probably not so
interesting for others.&lt;/p&gt;
&lt;h2 id=&#34;the-democracy-show&#34;&gt;The Democracy Show&lt;/h2&gt;
&lt;p&gt;Amy Chua, S Y Quraishi, Sophie Scott-Brown.&lt;/p&gt;
&lt;p&gt;There can be little doubt, judging from wall-to-wall media coverage, that we
assume elections profoundly affect our lives. But there&amp;rsquo;s a risk they have far
less impact than we imagine. A recent wide-ranging study of Western governments
over the last thirty years remarkably showed no relation between the
ideological outlook of citizens and actual social policy. Moreover critics from
right and left argue that it is unelected officials and corporations that
primarily determine policy. Meanwhile, long-standing political challenges like
social care and wealth inequality remain unaddressed for decades despite
changing governments.&lt;/p&gt;
&lt;p&gt;Should we conclude that leaders and governments rarely make a significant
difference to core policy? Are elections largely about a show of democracy
rather than the actuality? Could and should we change this state of affairs and
if so how? Or is the belief that elections are important essential to
democratic nation-states?&lt;/p&gt;
&lt;p&gt;Anarchist philosopher Sophie Scott-Brown, former Indian Election Commissioner
S.Y. Quraishi and author Amy Chua, lock horns over the effectiveness of
elections.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Amy Chua has very interesting theory that countries with &amp;ldquo;market dominant minority&amp;rdquo;
have electrions which cause instability. Example is 1% Chinese Indonesian
population control 70% (?) of economy.&lt;/li&gt;
&lt;li&gt;Minorities either get oppressed by populists or they capture the election.&lt;/li&gt;
&lt;li&gt;Today India is 5th largest economy but 850 million rely on 5kg / month rice
charity else they would starve.&lt;/li&gt;
&lt;li&gt;Sophie Scott-Brown made case for &lt;em&gt;better&lt;/em&gt; democracy than simple elections
but wouldn&amp;rsquo;t give specific examples.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-real-me&#34;&gt;The Real Me&lt;/h2&gt;
&lt;p&gt;Anneli Jefferson, Jack Symes, Frank Tallis, Steve Taylor. Joanna Kavenna hosts.&lt;/p&gt;
&lt;p&gt;Many identify themselves with their inner voice - the silent voice in our heads
we can use to think, plan and ponder. But from Lacan to Nietzsche many have
warned this inner voice is not ourselves, nor is it innocent or harmless.
Studies from Durham University and Trinity College Dublin link the inner voice
with increased anxiety. While others show those that take their own lives are
often tortured by a subliminal voice. Furthermore, research at Imperial, and
the University of Michigan found evidence that when our inner voice is reduced
mental health improves.&lt;/p&gt;
&lt;p&gt;Should we conclude the inner voice is not the &amp;ldquo;real me&amp;rdquo;, and its voice should
be treated with caution? Should we seek to quieten the inner voice using
techniques like psychotherapy, and meditation, and would doing so help combat
the mental health crisis? Or did we evolve an inner voice for a reason, and
should we see it as our conscience, a problem solving tool and as a guide in
our lives?&lt;/p&gt;
&lt;p&gt;Psychologist and author Steve Taylor, Anneli Jefferson, award-winning author
and psychologist Frank Tallis, and Durham philosopher Jack Symes, debate
whether the inner voice is the self.&lt;/p&gt;
&lt;h2 id=&#34;the-creativity-crisis&#34;&gt;The Creativity Crisis&lt;/h2&gt;
&lt;p&gt;Judith Donath, Martha Fiennes, John Ralston Saul.&lt;/p&gt;
&lt;p&gt;Creativity is often seen as a uniquely human quality. But with generative AI
competing with and rivalling human skills, is this core facet of humanity under
threat? As machines demonstrate an increasingly sophisticated ability to
generate art, music, and literature, the once-sacred notion of human
exclusivity in creativity is being questioned. 75% incorrectly identify AI
artworks as man-made, while creatives globally are fearful of cuts to earnings
and jobs as they face off with the new technology.&lt;/p&gt;
&lt;p&gt;Do we have to accept that there is nothing special about the originality of
humans, and creativity once so prized is a skill machines can also master? Do
we need to reassess what it means to be human and with it the future of
innovation, and invention? Or are the skills and qualities of generative AI
overhyped and in fact no more than the dumb and repetitive combination of
insights initiated by humans?&lt;/p&gt;
&lt;p&gt;Film director Martha Fiennes, computer scientist Judith Donath, and
award-winning essayist John Ralston Saul, explore how AI affects what it means
to be human.&lt;/p&gt;
&lt;p&gt;In association with [New Humanist.])https://newhumanist.org.uk/)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Follow John Ralston Saul, very humourous.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-indian-century&#34;&gt;The Indian Century&lt;/h2&gt;
&lt;p&gt;S Y Quraishi, Alpa Shah, Kate Sullivan de Estrada.&lt;/p&gt;
&lt;p&gt;The world&amp;rsquo;s largest democracy, India, is seen as the West&amp;rsquo;s obvious ally
against the growing might of China. But might there be a risk that India is not
the stalwart ally the West has assumed? Question marks have been raised about
India&amp;rsquo;s attachment to freedom and democracy. In the last 20 years they fell
from 27th to 108th in democracy rankings and to 161st out of 180 in press
freedom. In foreign policy India is at best ambiguous. Ignoring sanctions on
Russia, India is the third largest buyer of Russian oil. And in 2017 joined
Russia and China in the economic and defence group, SCO.&lt;/p&gt;
&lt;p&gt;Is it time to recognise that Modi&amp;rsquo;s India, with the largest population in the
world and the fastest growth, has its own agenda independent of the West? Will
India be central to a future world where the West and its values are a
sideshow? Or will history and culture bind India to Western values in the long
term?&lt;/p&gt;
&lt;p&gt;Former Chief Election Commissioner of India S.Y. Quraishi, Professor of
Anthropology at the LSE Alpa Shah, and Oxford Director of Contemporary South
Asian Studies Kate Sullivan de Estrada, debate India&amp;rsquo;s role in the future of
the world.&lt;/p&gt;
&lt;h2 id=&#34;something-for-nothing&#34;&gt;Something for Nothing&lt;/h2&gt;
&lt;p&gt;Dan Ariely, Paul Bloom, Nancy Sherman.&lt;/p&gt;
&lt;p&gt;Rewards are the means of all government&#39; proclaimed US President John Adams. A
principle we have adopted in many areas of our lives, from children&amp;rsquo;s gold
stars and prizes to incentives at work, and religious tales of paradise to
come. But evidence now suggests there are risks to this approach. Studies show
rewards can damage wellbeing fostering dependence and undermining our own sense
of control. And neuroscientists have shown those more prone to seeking reward
have a 70% higher risk of addiction, with addictive behaviour now present in
almost half of the U.S. population.&lt;/p&gt;
&lt;p&gt;Should we seek to wean ourselves off reward and instead learn to experience the
present for its own sake? Should we adopt a Stoic framework where action and
virtue are seen as their own ends? Or is the current culture of reward in
personal and professional life not only hugely beneficial but a much more
effective means of social intervention than the punishment regimes of the past?&lt;/p&gt;
&lt;p&gt;Best-selling psychologist Paul Bloom, world-leading behavioural economist Dan
Ariely, and Stoic expert Nancy Sherman debate the risks of rewards.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Follow Dan Ariely, very interesting.&lt;/li&gt;
&lt;li&gt;Hard to change people. Better to change the environment.&lt;/li&gt;
&lt;li&gt;Our minds are like a Swiss Army knife. Very versatile but not the tool you&amp;rsquo;d choose for
specific jobs. Also not equipped for modern world: anonymity, fake news etc.&lt;/li&gt;
&lt;li&gt;We shoud make tools more compatible with &lt;strong&gt;us&lt;/strong&gt; rather than try to change us. e.g. cars
beep when we forget to put a seatbelt on (accepting that we &lt;em&gt;do&lt;/em&gt; forget)&lt;/li&gt;
&lt;li&gt;Punishment has good short term result but bad long term. Leads to a culture of &lt;em&gt;doing nothing&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Academics are keeping quiet and not taking risks because of punishment (cancel culture)&lt;/li&gt;
&lt;li&gt;We want people in society to take risks and fail sometimes.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;re so &lt;em&gt;downside angry&lt;/em&gt; that we&amp;rsquo;ve ruined our upside potential.&lt;/li&gt;
&lt;li&gt;Offering financial reward OK for equals with respect. If you offer your
friend money for a favour it disrespects them.&lt;/li&gt;
&lt;li&gt;2 very underused incentives:
&lt;ol&gt;
&lt;li&gt;Compliments&lt;/li&gt;
&lt;li&gt;Gifts. Strengthens the relationship through throughtfulness.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Read Seneca&amp;rsquo;s &amp;ldquo;on benefits&amp;rdquo;&lt;/li&gt;
&lt;li&gt;The first time someone tries a new behaviour is a very big deal, for example someone
who drives to work every day trying the bus.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;navigating-the-new-world-order&#34;&gt;Navigating the New World Order&lt;/h1&gt;
&lt;p&gt;Christina Lamb, Bronwen Maddox, Armen Sarkissian.&lt;/p&gt;
&lt;p&gt;In the closing decades of the last century, many were critical of American
global dominance. But twenty years on America&amp;rsquo;s relative decline has ushered in
a new multipolar era that many contend is profoundly more dangerous. We have an
unpredictable conflict in Europe larger than anything since World War II and
international tension greater than at any point since the height of the Cold
War. Meanwhile from the Middle East to the South China Sea, a host of regional
conflicts have the potential to spiral out of control, and the new world order
looks increasingly precarious.&lt;/p&gt;
&lt;p&gt;Can we navigate to safety through international cooperation and treaties? Do we
need to align in power blocks to provide overall defence, or is it safer to
remain independent providing less of a threat to others? Or is the only
solution for one nation or alliance to once again become globally dominant?&lt;/p&gt;
&lt;p&gt;Former President of Armenia Armen Sarkissian, Chief Executive of Chatham House
Bronwen Maddox, and leading war correspondent Christina Lamb, debate whether
the global dominance of one geo-political bloc is safer for world order.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Armen&amp;rsquo;s idea of &amp;ldquo;small smart states&amp;rdquo; - the S20 - interesting. Predicts that they&amp;rsquo;ll
moderate the big powers in the future through advanced drone militaries.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;better-left-unsaid&#34;&gt;Better Left Unsaid&lt;/h2&gt;
&lt;p&gt;Theodore Dalrymple, Vanessa King, Simon Wessely.&lt;/p&gt;
&lt;p&gt;Unexpressed emotions never die&amp;hellip; but are buried alive and come forth later in
uglier ways&#39; claimed Sigmund Freud. Today we&amp;rsquo;ve gone a step further with the
assumption that expressing feelings is important for mental well-being. We
praise the sharing of mental health struggles, encourage men to express their
emotional troubles, and uphold journaling as a valuable daily routine. But
there&amp;rsquo;s a problem. A recent study by Cambridge scientists showed that people
trained to suppress negative thoughts, rather than unpack them, felt better and
improved their wellbeing. Those with mental health issues benefitted the most.
Meanwhile with millions seeking therapy, over half say they receive little or
no benefit.&lt;/p&gt;
&lt;p&gt;Might we all, and therapists in particular, be making a fundamental mistake in
thinking the expression of emotions is always beneficial? Can we improve
wellbeing and address the mental health crisis with the suppression of negative
thoughts and feelings? Or would this re-embed the stigma surrounding mental
health and reverse hard-won progress?&lt;/p&gt;
&lt;p&gt;Cultural critic Theodore Dalrymple, psychiatrist Simon Wessely, and positive
psychology specialist Vanessa King debate whether Freud was dangerously wrong.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Study mentioned was not an RCD, very low quality.&lt;/li&gt;
&lt;li&gt;Following immediate trauma e.g. car crash, it used to be common practice to
immediately give therapy on site. Finally this was tested with an RCT and found
to be harmful. Cemented the memory and gave impression the trauma was an &amp;ldquo;illness&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Another RCT found it more effective to give trauma victims tetris for 1 hour !&lt;/li&gt;
&lt;li&gt;Also practical help like how to navigate bureacracy of bereavement.&lt;/li&gt;
&lt;li&gt;CBT for phobias works.&lt;/li&gt;
&lt;li&gt;Wider vocabulary about emotions leads to higher wellbeing.&lt;/li&gt;
&lt;li&gt;Simon Wessely was very funny, light-hearted and interesting.&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t bother watching Theodore again.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;land-ownership-and-hypocrisy&#34;&gt;Land, Ownership and Hypocrisy&lt;/h2&gt;
&lt;p&gt;Tommy Curry, Peter Singer, Janne Teller, Dale Turner.&lt;/p&gt;
&lt;p&gt;Since Magna Carta, we assume individuals have a right to the property or land
that they own. If nations, like Ukraine, are invaded we champion their right to
retrieve their land. But there is a risk these principles which we think
universal are only applied to the strong. 95% of the native population in North
America was wiped out by European invasion. Just two hundred years ago the
first removal of Native Americans took place and since then 99% of their land
has been taken and is now deemed to be &amp;lsquo;owned&amp;rsquo; by others. The small number of
Native Americans remaining suffer severe inequalities in health, wealth and
education. Little has been done to redress the situation and almost no one is
proposing returning the land.&lt;/p&gt;
&lt;p&gt;Should we accept that principles of rights to ownership apply only to the
strong? Is the widely held belief in inalienable rights in fact hypocritical
and only applied when convenient or desirable? Or is our attachment to
universal rights genuine and should we be returning a major part of the land in
North America to its original inhabitants?&lt;/p&gt;
&lt;p&gt;Renowned philosopher Peter Singer, professor of indigenous political thought
Dale Turner, author Janne Teller, and professor of race Tommy Curry, debate
land and ownership.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tommy Curry made very clear argument that we frame debates in &lt;em&gt;today&amp;rsquo;s&lt;/em&gt; context
not that of the time when we wiped out indigenous people. Worth following.&lt;/li&gt;
&lt;li&gt;Read book &amp;ldquo;Trespass&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Read paper &amp;ldquo;This is mine, I believe&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;what-is-meaningful-work&#34;&gt;What Is Meaningful Work?&lt;/h2&gt;
&lt;p&gt;Nilufar Ahmed, Caleb Althorpe, Guy Standing, Isabel Berwick.
Avery Anapol&lt;/p&gt;
&lt;p&gt;People in the workforce want their jobs to give them purpose and meaning. But
in a world of remote working and disillusionment with capitalism, is there even
such a thing as &amp;lsquo;meaningful work&amp;rsquo;? And in the world of digital transformation,
can there be meaning in life without it? Join Avery Anapol from The
Conversation, FT podcaster Isabel Berwick, political philosopher Caleb
Althorpe, psychologist and psychotherapist Nilufar Ahmed, and
&lt;del&gt;commentator Aaron Bastani&lt;/del&gt; Guy Standing, as they try to discover what
meaningful work is, and debate whether it&amp;rsquo;s worth pursuing.&lt;/p&gt;
&lt;p&gt;In association with [The Conversation.](Caleb Althorpe)&lt;/p&gt;
&lt;h2 id=&#34;the-equality-dream&#34;&gt;The Equality Dream&lt;/h2&gt;
&lt;p&gt;John Bercow, Lisa Cameron, Tommy Curry, Vicky Pryce.&lt;/p&gt;
&lt;p&gt;Ever since the French Revolution, equality has been the battle cry of those who
think themselves progressive. Today on matters of gender and income most want a
more equal world and think more should be done to deliver it. But there is a
risk that no one really knows what kind of equal world they want, and some
critics argue focusing on equality is self-defeating. We don&amp;rsquo;t for example want
equality with the lives of others we see as undesirable. And since the 1970&amp;rsquo;s
while there have been significant advances in women&amp;rsquo;s rights studies show
women&amp;rsquo;s happiness to have decreased. While in the workforce despite the
widespread introduction of diversity initiatives, 62% of workers said the
programs aren&amp;rsquo;t effective and half say the programs failed them personally.&lt;/p&gt;
&lt;p&gt;Does the demand for equality risk forcing everyone to adopt the same life goals
as those driven by money and power? Instead of equality should we focus on the
rights and wellbeing of all individuals? Or is the call for equality a key and
essential political goal that we cannot afford to abandon or water down?&lt;/p&gt;
&lt;p&gt;Former Speaker of the House of Commons John Bercow, philosopher of race Tommy
Curry, economist Vicky Pryce, and Conservative MP Lisa Cameron, debate what we
want from equality.&lt;/p&gt;
&lt;h2 id=&#34;humanity-and-the-gods-of-nature&#34;&gt;Humanity and the Gods of Nature&lt;/h2&gt;
&lt;p&gt;Nancy Sherman, Peter Singer, Slavoj Žižek.&lt;/p&gt;
&lt;p&gt;From the time of Socrates we have seen morality as driven by human desires and
goals. But many now argue that this human focus is misguided and leaves the
natural world in peril. By prioritising human well-being they contend, we have
ransacked the earth, eradicated and misused other species, and taken
insufficient care of our home, the Earth. We are even planning to do the same
to other nearby planets. It is not sufficient for us to protect nature for our
benefit, instead they argue nature needs to be preserved for its own sake.&lt;/p&gt;
&lt;p&gt;Do we need to re-think morality to find a new framework that no longer places
humans at the centre? If so, how are we to assess the well-being of nature
independently of our human perspective? Or is the notion that we can escape
human goals and desires itself deluded, risking a return to an age where humans
are sacrificed to the gods of the natural world?&lt;/p&gt;
&lt;p&gt;Firebrand philosopher Slavoj Žižek, renowned ethicist Peter Singer, and
Georgetown professor of philosophy Nancy Sherman, question human centred
morality.&lt;/p&gt;
&lt;h2 id=&#34;the-life-and-philosophy-of-peter-singer&#34;&gt;The Life and Philosophy of Peter Singer&lt;/h2&gt;
&lt;p&gt;Peter Singer is one of the world&amp;rsquo;s leading philosophers, renowned for his
challenging and often controversial views. From animal ethics to effective
altruism, Singer has shaped the philosophical landscape. Join this event to
uncover the key events in his life that led to his ideas, and hear him answer
his critics and defend the convictions that have made him the force that he is
today.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&#34;dokbox-films&#34;&gt;DokBox films&lt;/h1&gt;
&lt;p&gt;These films were all in the cinema. We didn&amp;rsquo;t go but they it looked like a
great list to catch up with later.&lt;/p&gt;
&lt;h2 id=&#34;your-100-year-life&#34;&gt;Your 100 Year Life&lt;/h2&gt;
&lt;p&gt;All around the world people are living longer than ever before. But can we
afford it? In our wealthiest nations, old age homelessness is on the rise and
so is the number of pensioners using food banks. This documentary uncovers the
root of the problem and what we can do to solve it.&lt;/p&gt;
&lt;h2 id=&#34;in-search-of-frida-kahlo&#34;&gt;In Search of Frida Kahlo&lt;/h2&gt;
&lt;p&gt;Frida Kahlo is one of the most iconic artists of all time. This film follows
one of her biggest fans, international acclaimed musician Emeli Sandé, as she
retraces the life behind the legend. With rare archive footage and exclusive
access, this personal film is a unique look at the life of the artist.&lt;/p&gt;
&lt;h2 id=&#34;burnout-the-truth-about-work&#34;&gt;Burnout: The Truth About Work&lt;/h2&gt;
&lt;p&gt;We are busier than ever, working longer hours, with 24/7 communication access
and striving to meet increasing targets. This raises the fundamental question:
Why do we even work? This film delves into how excessive working is harming us
and destroying the planet, and reveals what we can do about it.&lt;/p&gt;
&lt;h2 id=&#34;indigiqueer&#34;&gt;Indigiqueer&lt;/h2&gt;
&lt;p&gt;Sarain Fox examines the past, present and future of queerness for the
indigenous LGBTQ+ community. Dive into the history of Canada&amp;rsquo;s queer indigenous
population and explore the nature of Two-Spirit identities with the help of
knowledge-keepers, community leaders, and even Drag Race&amp;rsquo;s Illona Verley.&lt;/p&gt;
&lt;h2 id=&#34;doing-it-in-public&#34;&gt;Doing it in Public&lt;/h2&gt;
&lt;p&gt;Challenging the notion that art is only for the elite, this film demonstrates
the importance of public art work in encouraging art for everyone to
experience, enjoy and learn from. Featuring the work of renowned international
artists Jeff Koons, Marina Abramovic, Gilbert &amp;amp; George and more.&lt;/p&gt;
&lt;h2 id=&#34;ai--you&#34;&gt;AI &amp;amp; You&lt;/h2&gt;
&lt;p&gt;Artificial intelligence is evolving at a staggering pace, but how much do we
actually understand it? This documentary reveals how AI is rapidly transforming
the human experience, exploring the positive developments in health, education
and climate action, as well as its dangers.&lt;/p&gt;
&lt;h2 id=&#34;the-pill-revolution&#34;&gt;The Pill Revolution&lt;/h2&gt;
&lt;p&gt;Why is there such limited research into the contraceptive pill? Why are women
offered so little choice? What can be done to improve women&amp;rsquo;s healthcare?
Davina McCall tackles the troubling truth behind the pill, busting myths,
taboos and fake news.&lt;/p&gt;
&lt;h2 id=&#34;hurdle&#34;&gt;Hurdle&lt;/h2&gt;
&lt;p&gt;This award-winning documentary reveals an inspiring and intimate story of
Palestinian youth living in the Occupied Territories. The new generation
practices parkour and photography as a means to resist and overcome personal
and political obstacles.&lt;/p&gt;
&lt;h2 id=&#34;conflict&#34;&gt;Conflict&lt;/h2&gt;
&lt;p&gt;This award-winning film takes the audience behind the lens of the world&amp;rsquo;s
leading conflict photographers. Across diverse, interwoven stories we follow
the photographers&#39; attempts to make the world a better place by bearing
witness.&lt;/p&gt;
&lt;h2 id=&#34;oman-from-above&#34;&gt;Oman from Above&lt;/h2&gt;
&lt;p&gt;Oman is the oldest independent state in the Arab world and has a rich and
unique history. Discover the beauty and culture of this fascinating country
with this stunning aerial journey that visits over 50 sites.&lt;/p&gt;
&lt;h2 id=&#34;keeping-music-alive&#34;&gt;Keeping Music Alive&lt;/h2&gt;
&lt;p&gt;Zohra&#39;, Afghanistan&amp;rsquo;s first, award-winning female orchestra, wowed audiences
across the world. Now, they face great danger as the Taliban returns. The girls
still in the country go into hiding, while those who fled are mounting an
international rescue campaign.&lt;/p&gt;
&lt;h2 id=&#34;living-for-art&#34;&gt;Living for Art&lt;/h2&gt;
&lt;p&gt;In this award-winning film, artist Sookoon Ang explores the real lives and
struggles of contemporary artists from Paris and Berlin to Japan and New York.
Featuring candid conversations and cutting-edge artworks, the film questions
the systems that govern artists&#39; careers and livelihoods.&lt;/p&gt;
&lt;h2 id=&#34;the-last-seed&#34;&gt;The Last Seed&lt;/h2&gt;
&lt;p&gt;Discover Africa&amp;rsquo;s fight for seed sovereignty and its ramifications for global
agriculture and nutrition.From farm to laboratory, this science-driven film
uncovers the stunning landscapes of Africa and thehidden history of industrial
farming.&lt;/p&gt;
&lt;h2 id=&#34;breaking-the-taboo&#34;&gt;Breaking the Taboo&lt;/h2&gt;
&lt;p&gt;Narrated by Morgan Freeman, this documentary uncovers the UN sanctioned war on
drugs, charting its origins and its devastating impact from the USA to Colombia
and Russia. Featuring presidents Clinton and Carter, the film exposes the
biggest failure of global policy in the last 50 years.&lt;/p&gt;
&lt;h2 id=&#34;when-titans-clash-de-risking-decoded&#34;&gt;When Titans Clash: De-Risking Decoded&lt;/h2&gt;
&lt;p&gt;The West is currently striving to de-risk its economies from exposure to China,
meaning China&amp;rsquo;s economy is losing billions in foreign investment. This award
winning series returns to investigate the shifting tides of this new economic
world order, with exclusive access inside the USA, India and China.&lt;/p&gt;
&lt;h2 id=&#34;ximei-fighting-chinas-aids-scandal&#34;&gt;Ximei: Fighting China&amp;rsquo;s AIDS Scandal&lt;/h2&gt;
&lt;p&gt;Discover the story of Ximei, a Chinese woman fighting for fellow AIDS patients
who became infected with HIV during China&amp;rsquo;s &amp;ldquo;Black Blood Economy&amp;rdquo;, when the
government encouraged millions of farmers to sell their blood.&lt;/p&gt;
&lt;h2 id=&#34;accidental-anarchist&#34;&gt;Accidental Anarchist&lt;/h2&gt;
&lt;p&gt;Executive produced by Alex Gibney, this is the remarkable story of how Carne
Ross, once a leading UK diplomat, became an anarchist. Rebelling against the
establishment, he discovers a new form of politics, so relevant for these
turbulent times.&lt;/p&gt;
&lt;h2 id=&#34;fck-berlin&#34;&gt;F*ck Berlin&lt;/h2&gt;
&lt;p&gt;This taboo-busting series throws open the doors of Berlin&amp;rsquo;s famously
progressive sex scene where everything is possible and no one is judged; so
long as the other person ‑ or people ‑ are into it. Discover the radical power
of self-acceptance.  Sign up to our newsletter&lt;/p&gt;
&lt;h2 id=&#34;ian-hislops-fake-news-film&#34;&gt;Ian Hislop&amp;rsquo;s Fake News (film)&lt;/h2&gt;
&lt;p&gt;Ian Hislop mines 200 years of history to identify what motivates fake news -
from profit, power and politics to prejudice, paranoia and propaganda ‑ as well
as to try to figure out what to do about it.&lt;/p&gt;
&lt;h2 id=&#34;wills-book&#34;&gt;Will&amp;rsquo;s Book&lt;/h2&gt;
&lt;p&gt;400 years ago, two actors preserved Shakespeare&amp;rsquo;s legacy by compiling his works
into the First Folio, saving plays like Macbeth and Twelfth Night from
obscurity. Led by scholars, this documentary explores the greatest rescue in
cultural history.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Calderstones Park, The Mersey Forest</title>
      <link>https://paul.fawkesley.com/calderstones-park/</link>
      <pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/calderstones-park/</guid>
      <description>&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.05.46%20IMG_1115.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.05.46%20IMG_1115-600w-450h.jpg&#34; alt=&#34;A view of the lake in Calderstones Park through some rrees&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;Today we visited &lt;a href=&#34;https://www.merseyforest.org.uk/things-to-do/walks-bike-rides-and-more/woodlands/calderstones-park/&#34;&gt;Calderstones Park&lt;/a&gt;,
part of the &lt;a href=&#34;https://www.merseyforest.org.uk/things-to-do/walks-bike-rides-and-more/&#34;&gt;Mersey Forest.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are some notes and photos as part of our wider &lt;a href=&#34;https://paul.fawkesley.com/mersey-forest/&#34;&gt;exploration of the whole forest.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We took the 75 bus from the city centre towards Halewood. It leaves every 20
minutes and takes about half an hour.&lt;/p&gt;
&lt;p&gt;It stopped at the wonderfully named &lt;a href=&#34;https://maps.app.goo.gl/82pwVCzJxG9Fz1s5A&#34;&gt;Druids Cross Lane,&lt;/a&gt;,
just across from the entrance to the park.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2012.53.30%20IMG_1071.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2012.53.30%20IMG_1071-600w-450h.jpg&#34; alt=&#34;A line of trees along the entrance path to Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2012.53.52%20IMG_1072.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2012.53.52%20IMG_1072-600w-450h.jpg&#34; alt=&#34;A line of trees along the entrance path to Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;It&amp;rsquo;s a park with lots and lots of trees. It doesn&amp;rsquo;t feel like a &lt;em&gt;forest&lt;/em&gt; exactly but there
are plenty of patches of thick trees.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2012.56.38%20IMG_1073.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2012.56.38%20IMG_1073-600w-450h.jpg&#34; alt=&#34;Trees in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.22.35%20IMG_1086.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.22.35%20IMG_1086-600w-450h.jpg&#34; alt=&#34;Trees in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.21.58%20IMG_1083.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.21.58%20IMG_1083-600w-450h.jpg&#34; alt=&#34;Trees in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;There&amp;rsquo;s a mansion in the middle of the park. Thankfully it&amp;rsquo;s now owned and run by
a literature charity, &lt;a href=&#34;https://www.thereader.org.uk&#34;&gt;The Reader.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here the sweet little bookshop in an outbuilding. To the left you can just see the Mansion Garden
where they hold free garden parties and private events.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2012.57.18%20IMG_1076.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2012.57.18%20IMG_1076-600w-450h.jpg&#34; alt=&#34;A brick outbuilding with a sign saying &amp;#39;The Reader shop&amp;#39;&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;The mansion has a nice cafe, reading rooms toilets and displays the
&lt;a href=&#34;https://historic-liverpool.co.uk/calderstones/&#34;&gt;Calder Stones&lt;/a&gt; themselves, remains of a Neolithic
burial chamber.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.28.34%20IMG_1121.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.28.34%20IMG_1121-600w-450h.jpg&#34; alt=&#34;The Calder Stones&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;The highlight for us were the spectacular walled gardens. It was a grey February day
but they lifted our spirits.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.01.01%20IMG_1077.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.01.01%20IMG_1077-600w-450h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.01.52%20IMG_1080.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.01.52%20IMG_1080-600w-450h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.02.50%20IMG_1081.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.02.50%20IMG_1081-600w-450h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.03.24%20IMG_1082.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.03.24%20IMG_1082-600w-450h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.37.56%20IMG_1087.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.37.56%20IMG_1087-600w-450h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.39.35%20IMG_1093.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.39.35%20IMG_1093-600w-450h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.42.12%20IMG_1096.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.42.12%20IMG_1096-600w-450h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.42.55%20IMG_1097.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.42.55%20IMG_1097-600w-800h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.49.10%20IMG_1100.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.49.10%20IMG_1100-600w-800h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.50.33%20IMG_1102.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.50.33%20IMG_1102-600w-800h.jpg&#34; alt=&#34;Plants and flowers in the walled gardens in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;We had the Japanese Garden to ourselves thanks to the enormous puddle.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.51.47%20IMG_1104.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.51.47%20IMG_1104-600w-800h.jpg&#34; alt=&#34;A red brick wall with an entrance signed &amp;#39;Japanese Garden&amp;#39;&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.54.57%20IMG_1105.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.54.57%20IMG_1105-600w-450h.jpg&#34; alt=&#34;In the Japanese Garden in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.55.03%20IMG_1106.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.55.03%20IMG_1106-600w-800h.jpg&#34; alt=&#34;In the Japanese Garden in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.56.46%20IMG_1107.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2013.56.46%20IMG_1107-600w-800h.jpg&#34; alt=&#34;A woman and girl standing in front of steppings stones looking at a tree&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;A leafy path leading from the cafe garden towards the lake.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.02.34%20IMG_1114.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.02.34%20IMG_1114-600w-450h.jpg&#34; alt=&#34;A path surrounded by trees&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;We had a nice muddy stomp around the lake. There are lots of woodland paths
leading off in different directions.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.05.46%20IMG_1115.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.05.46%20IMG_1115-600w-450h.jpg&#34; alt=&#34;A view of the lake in Calderstones Park through some rrees&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.11.11%20IMG_1116.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.11.11%20IMG_1116-600w-450h.jpg&#34; alt=&#34;Trees in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.14.26%20IMG_1117.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.14.26%20IMG_1117-600w-450h.jpg&#34; alt=&#34;Trees in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.18.30%20IMG_1118.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.18.30%20IMG_1118-600w-450h.jpg&#34; alt=&#34;Trees in Calderstones Park&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;After a bit of exploring, we found the 1,000 year old Allerton Oak. It&amp;rsquo;s hard to believe it&amp;rsquo;s
so old as it&amp;rsquo;s not so big. It&amp;rsquo;s going to look fantastic in the summer.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.18.59%20IMG_1119.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.18.59%20IMG_1119-600w-450h.jpg&#34; alt=&#34;Allerton oak propped up by steelwork&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.19.48%20IMG_1120.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-02-18-calderstones-park/2024-02-18%2015.19.48%20IMG_1120-600w-450h.jpg&#34; alt=&#34;Allerton oak propped up by steelwork&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;Calderstones Park was great for the soul. The trees, flowers, plants and leafy paths were
gorgeous even in February. We&amp;rsquo;ll definitely come back, especially on sunny weekdays.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Installing Syncthing on Synology with DSM 7</title>
      <link>https://paul.fawkesley.com/2024-01-29-installing-syncthing-on-synology-with-dsm-7/</link>
      <pubDate>Mon, 29 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2024-01-29-installing-syncthing-on-synology-with-dsm-7/</guid>
      <description>&lt;p&gt;Today I installed Syncthing on my Synology DS115 NAS running DSM 7.&lt;/p&gt;
&lt;p&gt;I wanted to use a normal Shared Folder called &lt;code&gt;syncthing&lt;/code&gt; which was not the default.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how to install Syncthing with a Shared Folder and fix its permissions.&lt;/p&gt;
&lt;h2 id=&#34;add-synocommunity-package-source&#34;&gt;Add SynoCommunity package source&lt;/h2&gt;
&lt;p&gt;There is a community Syncthing package for Synology made by &lt;a href=&#34;https://github.com/acolomb&#34;&gt;André Colomb&lt;/a&gt;
and published via &lt;a href=&#34;https://synocommunity.com/&#34;&gt;SynoCommunity&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My Synology didn&amp;rsquo;t know about SynoCommunity out of the box so I added it as a package source.&lt;/p&gt;
&lt;p&gt;As per &lt;a href=&#34;https://synocommunity.com/&#34;&gt;their instructions&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Go to Main Menu → Package Center → Settings&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In the Package Sources tab, click Add, type &lt;code&gt;SynoCommunity&lt;/code&gt; as Name and
&lt;code&gt;https://packages.synocommunity.com/&lt;/code&gt; as Location and then press OK to
validate.&lt;/p&gt;
&lt;/blockquote&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-29-installing-syncthing-on-synology-with-dsm-7/add-synocommunity-package-source-600w-498h.png&#34; alt=&#34;New package source dialog showing a name and location input field.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;498&#34; style=&#34;height: auto&#34;/&gt;



&lt;blockquote&gt;
&lt;p&gt;Go back to the Package Center and enjoy SynoCommunity&amp;rsquo;s packages in the Community tab.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Select the new Community tab and search for syncthing, then click Install.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-29-installing-syncthing-on-synology-with-dsm-7/package-center-community-tab-600w-518h.png&#34; alt=&#34;Package Center with a Community tab, a search input with Syncthing and the Syncthing icon&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;518&#34; style=&#34;height: auto&#34;/&gt;



&lt;h2 id=&#34;create-a-shared-folder-with-correct-permissions&#34;&gt;Create a Shared Folder with correct permissions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;In File Station, create new Shared Folder &lt;code&gt;syncthing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Right click on &lt;code&gt;syncthing&lt;/code&gt; folder, go to Properties, then Permission.&lt;/li&gt;
&lt;/ul&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-29-installing-syncthing-on-synology-with-dsm-7/file-station-properties-279w-310h.png&#34; alt=&#34;Screenshot of File Station right click Properties dialog&#34; loading=&#34;lazy&#34; width=&#34;279&#34; height=&#34;310&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Click Create then &amp;ldquo;User or Group&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Select the &lt;code&gt;sc-syncthing&lt;/code&gt; (I think Syncthing made this group):&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-29-installing-syncthing-on-synology-with-dsm-7/permission-editor-1-600w-580h.png&#34; alt=&#34;List of groups and users with sc-syncthing selected.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;580&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;In the Permission box, select all checkboxes under &amp;ldquo;Read&amp;rdquo; and &amp;ldquo;Write&amp;rdquo;:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-29-installing-syncthing-on-synology-with-dsm-7/permission-editor-2-600w-580h.png&#34; alt=&#34;List of checkboxes. The Read and Write checkboxes are checked.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;580&#34; style=&#34;height: auto&#34;/&gt;



&lt;h2 id=&#34;configure-syncthing-folders&#34;&gt;Configure Syncthing folders&lt;/h2&gt;
&lt;p&gt;In the Main Menu, there should now be a Syncthing icon. Click that, or open your NAS hostname
on port 8384.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Folders&lt;/strong&gt;, click &lt;strong&gt;Add Folder&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;⚠️ Update &lt;strong&gt;Folder Path&lt;/strong&gt; to start with &lt;code&gt;/volume1/syncthing/...&lt;/code&gt; if
you want this folder to exist inside your new Shared Folder.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-29-installing-syncthing-on-synology-with-dsm-7/syncthing-folder-config-600w-379h.png&#34; alt=&#34;Syncthing folder dialog box&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;379&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;h2 id=&#34;notes&#34;&gt;Notes&lt;/h2&gt;
&lt;p&gt;After I installed the Syncthing package it gave me two paragraphs of documentation. I haven&amp;rsquo;t
been able to find them ever again. I did take a note that defaults can be configured by editing
the file &lt;code&gt;/var/packages/syncthing/var/options.conf&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Otterspool Park, The Mersey Forest</title>
      <link>https://paul.fawkesley.com/otterspool-park/</link>
      <pubDate>Sat, 27 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/otterspool-park/</guid>
      <description>&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-01.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-01-600w-450h.jpg&#34; alt=&#34;A woman and a toddler walking towards a Victorian rail bridge.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;Today we visited &lt;a href=&#34;https://www.merseyforest.org.uk/things-to-do/walks-bike-rides-and-more/woodlands/otterspool-park/&#34;&gt;Otterspool Park&lt;/a&gt;,
part of the &lt;a href=&#34;https://www.merseyforest.org.uk/things-to-do/walks-bike-rides-and-more/&#34;&gt;Mersey Forest.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are some notes and photos as part of our wider &lt;a href=&#34;https://paul.fawkesley.com/mersey-forest&#34;&gt;exploration of the whole forest.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We cycled along the waterfront, turning inland at Jericho Lane. We locked the bikes to bike loops
&lt;a href=&#34;https://maps.app.goo.gl/EGqoUP3RQQurCtbS6&#34;&gt;opposite Otterspool Adventure&lt;/a&gt; and its nice cafe.&lt;/p&gt;
&lt;p&gt;A path led all the way to the &lt;a href=&#34;https://maps.app.goo.gl/Sz84QxRX65fLN6saA&#34;&gt;entrance to the forest and nature reserve.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a linear forest with a well-paved path that passes under a fabulous Victorian rail bridge.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-02.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-02-600w-450h.jpg&#34; alt=&#34;A paved footpath leading to a rail bridge with trees either side and steep banks.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;We scrambled up a &lt;em&gt;very&lt;/em&gt; steep bank to a high level path.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-03.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-03-600w-450h.jpg&#34; alt=&#34;A leaf-covered rough path at a high level.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;The photos don&amp;rsquo;t really do it justice: although small, we felt very immersed in a
beautiful forest.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-04.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-04-600w-450h.jpg&#34; alt=&#34;Various species of English tree.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;There was a cool tunnel that led through a steep part of the hill.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-05.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-05-600w-450h.jpg&#34; alt=&#34;A steep bank leading up to a tunnel.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;And some interesting rock formations next to the path.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-06.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-27-otterspool-park/2024-01-27-otterspool-park-06-600w-450h.jpg&#34; alt=&#34;A steep rock-face beside the path.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;It was a lovely patch of forest with a big variety of trees, some quite mature.
Being in a sort of valley made it very tranquil despite being close to civilisation.&lt;/p&gt;
&lt;p&gt;We loved it here and will definitely come back ❤️&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Back to Brick: Preparing for New Windows</title>
      <link>https://paul.fawkesley.com/2024-01-15-back-to-brick-preparing-for-new-windows/</link>
      <pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2024-01-15-back-to-brick-preparing-for-new-windows/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/hero-600w-450h.jpg&#34; alt=&#34;A window frame with exposed breeze block, a cold chisel and messy broken plaster&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;To prepare for the arrival of our new Viking triple glazed windows, we took the openings
back to brick. This was hard, messy work. But it paid off as we discovered some
horrors that needed fixing.&lt;/p&gt;
&lt;h2 id=&#34;why-back-to-brick&#34;&gt;Why back to brick?&lt;/h2&gt;
&lt;p&gt;Three reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make sure the window openings are in good condition (they weren&amp;rsquo;t).&lt;/li&gt;
&lt;li&gt;Allow for airight-tape between the window frame and the brick wall.&lt;/li&gt;
&lt;li&gt;Allow for insulated plasterboard in the reveals after install.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;2. and 3. were new to me when I started out. I&amp;rsquo;d never seen airtightness tape or heard of
insulating window reveals.&lt;/p&gt;
&lt;h3 id=&#34;installation-method-is-critical&#34;&gt;Installation method is critical&lt;/h3&gt;
&lt;p&gt;When you&amp;rsquo;re going for high performance windows, the installation method and workmanship is
essential.&lt;/p&gt;
&lt;p&gt;The method is very different from how bog standard uPVC windows are installed (screw
them in, spray foam round the side, cover with silicone and plastic trim). More
on uPVC at the end.&lt;/p&gt;
&lt;p&gt;To achieve all-round high performance, as well as the windows themselves, you
need to completely eliminate &lt;strong&gt;draughts&lt;/strong&gt; and minimise &lt;strong&gt;thermal bridging&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s where airtightness tape and insulated reveals comes in.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a rough sketch of the build-up with the airtightness tape shown in red:&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/window-cross-section.png&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/window-cross-section-600w-424h.png&#34; alt=&#34;A diagram showing the cross section of the window with insulated plasterboard and airtight tape&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;424&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;h2 id=&#34;checking-the-openings&#34;&gt;Checking the openings&lt;/h2&gt;
&lt;p&gt;The window frames need a good brick edge to sit against. This is non-negotiable for any windows
but especially for high performance where you&amp;rsquo;re aiming for air-tightness around the edge
of the window.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-04%20IMG_0738-cold-chisel-600w-800h.jpg&#34; alt=&#34;A window reveal with some of its plaster removed by a cold chisel&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;I used a multitool &amp;ldquo;wiggle saw&amp;rdquo; to cut a line through 20mm of plaster to the breeze block, then
a cold chisel and mallet to break the plaster off the wall.&lt;/p&gt;
&lt;p&gt;That got old quick and I borrowed a powerful SDS hammer drill with a chisel
attachment. That sped things up!&lt;/p&gt;
&lt;h3 id=&#34;french-doors-bricks-missing&#34;&gt;French doors: bricks missing&lt;/h3&gt;
&lt;p&gt;The first surprise was the kitchen French doors. As I was cutting down the
plaster and was bemused when my multitool disappeared into thin air&amp;hellip;&lt;/p&gt;
&lt;p&gt;To my amazement, there were bricks missing, replaced by cardboard and expanding foam.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-05%2021.10.32%20IMG_0750-french-doors.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-05%2021.10.32%20IMG_0750-french-doors-600w-450h.jpg&#34; alt=&#34;A reveal beside a french door. The bottom half of the reveal is missing bricks, revealing the wall cavity.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;Originally, the opening was L-shaped with a single door with a connected window. At some point
it was roughly converted into a double door by chiselling down the brick line.&lt;/p&gt;
&lt;!-- TODO: sketch of L-shaped door













&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/sketch-french-doors-l-shaped-600w-450h.jpg&#34; alt=&#34;TODO&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;




--&gt;
&lt;p&gt;In the process, they badly broke both skins of brick and didn&amp;rsquo;t repair them. The inner skin has
hollow blocks filled with polystyrene which is what you can see in the image. These have broken
awkwardly and not been repaired.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-05%2021.10.47%20IMG_0752-french-doors.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-05%2021.10.47%20IMG_0752-french-doors-600w-450h.jpg&#34; alt=&#34;A view into the wall cavity showing the polystyrene of the inside of a breezeblock and piece of cardboard.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;The outer skin was broken too: once the uPVC trim was removed, I could see that
the outer skin of red bricks had been broken and patched up with mortar:&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-06%2011.58.52%20IMG_0760-french-doors.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-06%2011.58.52%20IMG_0760-french-doors-600w-450h.jpg&#34; alt=&#34;Outside view of the french door with broken red bricks filled up with mortar.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;With the trim removed, I could poke my finger all the way round the door frame!&lt;/p&gt;
&lt;p&gt;Lisa&amp;rsquo;s Dad to the rescue! He took a sample of brick to the local brickyard and sourced some
new matching red &amp;ldquo;Trafford bricks&amp;rdquo; and a few engineering bricks to repair the inside.&lt;/p&gt;
&lt;p&gt;Repairing the wall was a big job. We took the door out and re-built the inner skin first.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2014.47.30%20IMG_0783-french-doors-repair-600w-450h.jpg&#34; alt=&#34;French door removed from its opening.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;













&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2014.51.14%20IMG_0785-french-doors-repair.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2014.51.14%20IMG_0785-french-doors-repair-600w-800h.jpg&#34; alt=&#34;A view into the wall cavity showing broken breeze blocks and red bricks&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2016.36.14%20IMG_0788-french-doors-repair.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2016.36.14%20IMG_0788-french-doors-repair-600w-800h.jpg&#34; alt=&#34;A pair of hands replacing bricks in the window reveal.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;We chiselled out the broken Trafford bricks and cut new ones to size.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2019.28.26%20IMG_0795-french-doors-repair.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2019.28.26%20IMG_0795-french-doors-repair-600w-450h.jpg&#34; alt=&#34;A man cutting bricks with a diamond cutter beside a wall with bricks missing.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2020.10.03%20IMG_0796-french-doors-repair.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2020.10.03%20IMG_0796-french-doors-repair-600w-800h.jpg&#34; alt=&#34;Side of the wall with new engineering bricks.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2022.21.03%20IMG_0798-french-doors-repair.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-08%2022.21.03%20IMG_0798-french-doors-repair-600w-800h.jpg&#34; alt=&#34;Window reveal with new bricks forming a neat surface and the uPVC door back in place.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-09%2012.37.47%20IMG_0801-french-doors-repair.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-09%2012.37.47%20IMG_0801-french-doors-repair-600w-800h.jpg&#34; alt=&#34;New red Trafford bricks installed into the wall to replace the broken ones.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;800&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;h2 id=&#34;master-bedroom-bricks-missing&#34;&gt;Master bedroom: bricks missing&lt;/h2&gt;
&lt;p&gt;I took up the window cills in every room. Easier said than done as most had been plastered over.&lt;/p&gt;
&lt;p&gt;The wall beneath the cill in the master bedroom was a mess:&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-10%20IMG_0811-master-bedroom-cill.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-10%20IMG_0811-master-bedroom-cill-600w-450h.jpg&#34; alt=&#34;Beneath a window cill, the left half of the wall has big holes and oddly shaped bricks.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;But it was easily repaired by stuffing it with mortar:&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0826-master-bedroom-cill.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0826-master-bedroom-cill-600w-450h.jpg&#34; alt=&#34;Beneath a window cill, the holes between bricks roughly filled with mortar.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;h2 id=&#34;spare-bedroom-bricks-missing&#34;&gt;Spare bedroom: bricks missing&lt;/h2&gt;
&lt;p&gt;WTF is with this house? Bricks actually just missing, with a piece of wood thrown in for good
measure&amp;hellip;&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0830-spare-bedroom-cill.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0830-spare-bedroom-cill-600w-450h.jpg&#34; alt=&#34;Beneath a window cill, three bricks are completely missing and replaced with a piece of wood.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0832-spare-bedroom-cill.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0832-spare-bedroom-cill-600w-450h.jpg&#34; alt=&#34;Beneath a window cill, three bricks missing.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;Repaired by adding 3½ bricks&amp;hellip;&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0833-spare-bedroom-cill.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0833-spare-bedroom-cill-600w-450h.jpg&#34; alt=&#34;Three engineering bricks loosely placed in place of the missing bricks beneath the window cill.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0838-spare-bedroom-cill.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-15%20IMG_0838-spare-bedroom-cill-600w-450h.jpg&#34; alt=&#34;Beneath the window cill, missing bricks have been replaced and mortared.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;h2 id=&#34;bathroom&#34;&gt;Bathroom&lt;/h2&gt;
&lt;p&gt;The bathroom was the most challenging. We wanted to take the reveals, cill and head back to
brick but keep the wall tiles.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-06%20IMG_0769-bathroom.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-06%20IMG_0769-bathroom-600w-450h.jpg&#34; alt=&#34;A bathroom window opening with cream porcelain tiles on the walls and reveals.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;It took a lot of &lt;em&gt;careful&lt;/em&gt; cutting of grout to isolate the wall tiles from the subsequent
bashing of the plaster.&lt;/p&gt;
&lt;p&gt;Turns out there were two layers of tiles then 20mm of plaster. That gives loads
of depth for adding insulated plasterboard.  Being the most humid room in the
house, this was the worst for condensation and black mould.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m glad I bothered with this tricky window as the air-tight tape and
insulation should massively improve the cold reveals and reduce condensation
risk.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-10%20IMG_0804-bathroom.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-10%20IMG_0804-bathroom-600w-450h.jpg&#34; alt=&#34;Plaster rubble all around the bathroom window. The reveals are back to brick while maintaining the wall tiles.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;











&lt;a href=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-10%20IMG_0805-bathroom.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-10%20IMG_0805-bathroom-600w-450h.jpg&#34; alt=&#34;The bathroom window with visible breeze block all around the reveals while maintaining the wall tiles.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;The only casualty was the sink. This happened at the end of an evening: the mallet slipped
out of my tired and dusty hand, straight through the sink&amp;rsquo;s porcelain.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2024-01-15-back-to-brick-preparing-for-new-windows/2024-01-10%20IMG_0818-sink-600w-450h.jpg&#34; alt=&#34;White bathroom sink with a mallet-shaped hole in the surface of the porcelain.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Then, as I cleared plaster out of the hole, I sliced my knuckle so deep I could
see yukky white &amp;hellip; &lt;em&gt;insides&lt;/em&gt;.  Ouch.&lt;/p&gt;
&lt;h2 id=&#34;was-it-worth-it&#34;&gt;Was it worth it?&lt;/h2&gt;
&lt;p&gt;You might think we&amp;rsquo;re crazy for going to these lengths (at times during the
demolition I did too.)&lt;/p&gt;
&lt;p&gt;These new windows should &lt;strong&gt;last a lifetime&lt;/strong&gt;. They&amp;rsquo;re not a throwaway item that
gets ripped out every 10 years. They&amp;rsquo;re central to the fabric of our house,
like the walls and roof. I don&amp;rsquo;t want to replace them again in my lifetime.&lt;/p&gt;
&lt;p&gt;And even if we sold the house, I reckon we could find a buyer who values our
retrofit work and will pay an appropriate premium.&lt;/p&gt;
&lt;p&gt;With that frame of mind, absolutely it was worth it.&lt;/p&gt;
&lt;p&gt;These windows should be the highest performing &lt;strong&gt;and&lt;/strong&gt; most climate-friendly
that we could have achieved.&lt;/p&gt;
&lt;p&gt;That make me happy ☺️&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Surprisingly high CO₂ levels in the house</title>
      <link>https://paul.fawkesley.com/2023-10-17-surprisingly-high-co2-in-the-house/</link>
      <pubDate>Tue, 17 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2023-10-17-surprisingly-high-co2-in-the-house/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2023-10-17-surprisingly-high-co2-in-the-house/flamefast-co2m-600w-450h.jpg&#34; alt=&#34;Flamefast CO2M carbon dioxide detector with a coloured backlit screen&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;450&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Our Retrofit Assessment identified high carbon dioxide (CO₂) levels all around the house.&lt;/p&gt;
&lt;p&gt;As four of us sat at the table in the open plan kitchen and living area, we measured
2000 parts per million (ppm).&lt;/p&gt;
&lt;p&gt;As a reminder, outdoor CO₂ is around 420ppm and 2000ppm is thought to make
us stupid and drowsy.&lt;/p&gt;
&lt;p&gt;The high reading seemed like an error so we purged the room (opened the doors
and windows) and the level quickly dropped to atmospheric.&lt;/p&gt;
&lt;p&gt;We closed the doors and windows and within 10 minutes the level had passed 1000ppm and was on its
way to 2000ppm again.&lt;/p&gt;
&lt;p&gt;Nothing was burning: this CO₂ build up was entirely caused by four adults breathing.&lt;/p&gt;
&lt;h2 id=&#34;no-ventilation&#34;&gt;No ventilation&lt;/h2&gt;
&lt;p&gt;This was a clear indication that our home&amp;rsquo;s ventilation was broken.&lt;/p&gt;
&lt;p&gt;This was the result of a series of mistakes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the kitchen extractor had been removed or was never installed,&lt;/li&gt;
&lt;li&gt;the windows had been replaced with no trickle vents&lt;/li&gt;
&lt;li&gt;&amp;hellip; which would be fine if alternative ventilation (air bricks) had been added, but they hadn&amp;rsquo;t.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The result is that there&amp;rsquo;s nothing pulling dirty air out and no way for fresh air to enter.&lt;/p&gt;
&lt;h2 id=&#34;bad-ventilation--bad-health&#34;&gt;Bad ventilation = bad health&lt;/h2&gt;
&lt;p&gt;Poor ventilation means poor indoor air quality which is a disaster for health.&lt;/p&gt;
&lt;p&gt;Some problems caused by poor ventilation are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Black mould caused by humidity having nowhere to go and condensing on cold
surfaces. (This was our initial trigger to do the retrofit assessment)&lt;/li&gt;
&lt;li&gt;Pollution from burning fossil gas in the cooking hob. The benign sounding &amp;ldquo;natural gas&amp;rdquo;
misleads from the fact that burning it &lt;a href=&#34;https://www.mdpi.com/1660-4601/20/1/75&#34;&gt;causes asthma in children.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Volatile organic compounds (VOCs) emitted from e.g. paints, varnishes,
aerosol sprays, cleaners, disinfectants, personal care products and so on.&lt;/li&gt;
&lt;li&gt;Carbon dioxide from breathing and burning things, making us stupid and sleep poorly.&lt;/li&gt;
&lt;li&gt;Easier transmission of airborne pathogens like flu, covid, cold etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CO₂ is a good proxy for other types of air pollution. If we have high CO₂ levels it&amp;rsquo;s
likely we have high levels of other air pollution too.&lt;/p&gt;
&lt;h2 id=&#34;measuring-co-in-the-bedroom&#34;&gt;Measuring CO₂ in the bedroom&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been working on a new ventilation strategy which incorporates a CO₂ monitor in the master
bedroom and the main living area. That&amp;rsquo;ll get its own write-up, but here are some early
discoveries about the bedroom CO₂ monitor.&lt;/p&gt;
&lt;p&gt;I installed a &lt;a href=&#34;https://www.abgo.co.uk/hvac-commercial-spares/air-quality-and-gas-detection/humidity-co2-temp-sensors/co2-temperature-sensors/flamefast-co2m&#34;&gt;Flamefast CO2M&lt;/a&gt; (pictured above) at a high level in the
bedroom.&lt;/p&gt;
&lt;p&gt;The sensor must be calibrated by being exposed to atmospheric CO₂ levels once a
week. This was easier said then done in such a poorly ventilated house. I
managed to achieve 425ppm by attaching a fan to the curtain rail and directing
outdoor air straight at the device.&lt;/p&gt;
&lt;p&gt;I wanted to test how quickly CO₂ buildup would occur in the bedroom so I ran this experiment:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;let the room get to atmospheric CO₂ level&lt;/li&gt;
&lt;li&gt;enter and close the doors and windows&lt;/li&gt;
&lt;li&gt;record a reading every minute for 20 minutes&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here are the results:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-10-17-surprisingly-high-co2-in-the-house/graph-600w-371h.png&#34; alt=&#34;Line graph showing CO₂ rising from 419ppm to 727ppm over 11 minutes&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;371&#34; style=&#34;height: auto&#34;/&gt;



&lt;details&gt;
&lt;summary style=&#34;cursor: pointer&#34;&gt;&lt;span style=&#34;text-decoration: underline&#34;&gt;Open raw measurements&lt;/span&gt;&lt;/summary&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Minute&lt;/th&gt;
&lt;th&gt;CO₂ reading (ppm)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;419&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;422&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;433&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;504&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;533&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;555&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;571&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;580&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;594&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;600&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;611&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;632&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;645&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;653&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;660&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;680&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;683&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;686&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;696&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;709&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;720&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;727&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/details&gt;
&lt;p&gt;I was surprised how quickly the CO₂ level rose from just me sitting still in a room. Unfortunately
I had to end the experiment at 21 minutes to answer the door.&lt;/p&gt;
&lt;h2 id=&#34;ad-hoc-observations&#34;&gt;Ad-hoc observations&lt;/h2&gt;
&lt;p&gt;On occasion I&amp;rsquo;ve woken in the night and taken a look at the CO₂ monitor. The green, amber, red
backlight is helpful for glancing to see the level.&lt;/p&gt;
&lt;p&gt;With both windows &amp;ldquo;on the crack&amp;rdquo; I&amp;rsquo;ve seen the level around 1500ppm and as high as 1800ppm in
the night.&lt;/p&gt;
&lt;p&gt;With one (small) window fully open I&amp;rsquo;ve seen the level hovering around 1000ppm.&lt;/p&gt;
&lt;h2 id=&#34;high-co--fan-boost&#34;&gt;High CO₂ → Fan boost&lt;/h2&gt;
&lt;p&gt;The CO2M has a built-in relay which can close at 800 or 1000ppm. Once I&amp;rsquo;ve sorted out the
continuous extractor fans I could use the CO₂ level to boost the fan.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;ll be interesting to see whether the additional extract rate can compensate
for the CO₂ buildup.&lt;/p&gt;</description>
    </item>
      
    
      
    
      
    <item>
      <title>Wilderness 2023</title>
      <link>https://paul.fawkesley.com/wilderness-2023/</link>
      <pubDate>Tue, 08 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/wilderness-2023/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2023-08-08-wilderness-2023/image-600w-400h.jpg&#34; alt=&#34;Wilderness text with blues, purples and a mirror-covered acrobat&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Notes and links from a wonderful weekend in Cornbury Park.&lt;/p&gt;
&lt;h2 id=&#34;friday&#34;&gt;Friday&lt;/h2&gt;
&lt;h3 id=&#34;swim&#34;&gt;Swim&lt;/h3&gt;
&lt;p&gt;Glorious. Poor weather meant it wasn&amp;rsquo;t packed which was nice.&lt;/p&gt;
&lt;h3 id=&#34;the-great-potential--risk-of-the-metaverse&#34;&gt;The Great Potential &amp;amp; Risk of the Metaverse&lt;/h3&gt;
&lt;p&gt;XR: Extended Reality.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alice Wroe, XR Lead at Atlantic Institute&lt;/li&gt;
&lt;li&gt;Catherine Allen,CEO of Limina Immersive&lt;/li&gt;
&lt;li&gt;Deepa Mann-Kler, CEO Neon &amp;amp; Director Belfast XR Festival&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;bass-bath&#34;&gt;Bass Bath&lt;/h3&gt;
&lt;p&gt;Bonkers. Huge bass speakers move through lots of low frequencies. Lying down makes it quite
a hypnotic experience.&lt;/p&gt;
&lt;h3 id=&#34;the-war-on-drugs-and-the-climate-crisis&#34;&gt;The War on Drugs and the Climate Crisis&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Clemmie James, Health Poverty Action, International colation for Drug Policy Reform &amp;amp; Environmental Justice.&lt;/li&gt;
&lt;li&gt;Neil Woods, former undercover police officer. Part of Law Enforcement Action Partnership. Books: Good Cop Bad War, Drug Wars.&lt;/li&gt;
&lt;li&gt;Kojo Karam, academic at the School of Law at Birkbeck College, University of London.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Premise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;because drug production is illegal, it has to be done secretly&lt;/li&gt;
&lt;li&gt;&amp;hellip; by deforesting deep into the rainforests&lt;/li&gt;
&lt;li&gt;and drug money has to be laundered. many billions a year.&lt;/li&gt;
&lt;li&gt;illegal logging is an easy &amp;ldquo;investment&amp;rdquo; for laundered money&lt;/li&gt;
&lt;li&gt;organised crime &lt;em&gt;always&lt;/em&gt; invests in corruption, highest ROI&lt;/li&gt;
&lt;li&gt;policing approach leads to concentration of power of smaller number of cartels&lt;/li&gt;
&lt;li&gt;cartels gain monopoly, get richer, more power, more corruption, more logging&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;chemical-brothers&#34;&gt;Chemical Brothers&lt;/h3&gt;
&lt;p&gt;Amazing, never seen the main stage so packed.&lt;/p&gt;
&lt;h3 id=&#34;wanton-string-band&#34;&gt;Wanton String Band&lt;/h3&gt;
&lt;p&gt;Cool folk bank. They had some quite heavy, grungey pieces which was cool.&lt;/p&gt;
&lt;h3 id=&#34;popola&#34;&gt;Popola&lt;/h3&gt;
&lt;p&gt;Amazing hardcore DJ set by 2 ladies.&lt;/p&gt;
&lt;h2 id=&#34;saturday&#34;&gt;Saturday&lt;/h2&gt;
&lt;h3 id=&#34;climate-panel&#34;&gt;Climate panel&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Andrew Bowring - Wind Empowerment&lt;/li&gt;
&lt;li&gt;Syed Ahmed, Community Energy London&lt;/li&gt;
&lt;li&gt;Adam Vaughan, environment editor at The Times&lt;/li&gt;
&lt;li&gt;Carla Denyer, Green Party co-leader&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;long-to-reign-over-us-is-the-monarchy-past-its-sell-by-date&#34;&gt;Long to reign over us&amp;hellip; Is the monarchy past its sell-by date?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Camilla Tominey&lt;/li&gt;
&lt;li&gt;Graham Smith&lt;/li&gt;
&lt;li&gt;Yasmin Alibahi-Brown&lt;/li&gt;
&lt;li&gt;Oli Dugmore&lt;/li&gt;
&lt;li&gt;chaired by Serena Kutchinsky&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;letters-live&#34;&gt;Letters Live&lt;/h3&gt;
&lt;p&gt;So funny, sad, poignant, moving.&lt;/p&gt;
&lt;p&gt;Favourites:&lt;/p&gt;
&lt;p&gt;
&lt;details&gt;
&lt;summary&gt;On the ending of Animorphs, by K.A. Applegate&lt;/summary&gt;
&lt;p&gt;Dear Animorphs Readers:&lt;/p&gt;
&lt;p&gt;Quite a number of people seem to be annoyed by the final chapter in the Animorphs story. There are a lot of complaints that I let Rachel die. That I let Visser Three/One live. That Cassie and Jake broke up. That Tobias seems to have been reduced to unexpressed grief. That there was no grand, final fight-to-end-all-fights. That there was no happy celebration. And everyone is mad about the cliffhanger ending.&lt;/p&gt;
&lt;p&gt;So I thought I&amp;rsquo;d respond.&lt;/p&gt;
&lt;p&gt;Animorphs was always a war story. Wars don&amp;rsquo;t end happily. Not ever. Often relationships that were central during war, dissolve during peace. Some people who were brave and fearless in war are unable to handle peace, feel disconnected and confused. Other times people in war make the move to peace very easily. Always people die in wars. And always people are left shattered by the loss of loved ones.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s what happens, so that&amp;rsquo;s what I wrote. Jake and Cassie were in love during the war, and end up going their seperate ways afterward. Jake, who was so brave and capable during the war is adrift during the peace. Marco and Ax, on the other hand, move easily past the war and even manage to use their experience to good effect. Rachel dies, and Tobias will never get over it. That doesn&amp;rsquo;t by any means cover everything that happens in a war, but it&amp;rsquo;s a start.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what doesn&amp;rsquo;t happen in war: there are no wondrous, climactic battles that leave the good guys standing tall and the bad guys lying in the dirt. Life isn&amp;rsquo;t a World Wrestling Federation Smackdown. Even the people who win a war, who survive and come out the other side with the conviction that they have done something brave and necessary, don&amp;rsquo;t do a lot of celebrating. There&amp;rsquo;s very little chanting of &amp;lsquo;we&amp;rsquo;re number one&amp;rsquo; among people who&amp;rsquo;ve personally experienced war.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m just a writer, and my main goal was always to entertain. But I&amp;rsquo;ve never let Animorphs turn into just another painless video game version of war, and I wasn&amp;rsquo;t going to do it at the end. I&amp;rsquo;ve spent 60 books telling a strange, fanciful war story, sometimes very seriously, sometimes more tongue-in-cheek. I&amp;rsquo;ve written a lot of action and a lot of humor and a lot of sheer nonsense. But I have also, again and again, challenged readers to think about what they were reading. To think about the right and wrong, not just the who-beat-who. And to tell you the truth I&amp;rsquo;m a little shocked that so many readers seemed to believe I&amp;rsquo;d wrap it all up with a lot of high-fiving and backslapping. Wars very often end, sad to say, just as ours did: with a nearly seamless transition to another war.&lt;/p&gt;
&lt;p&gt;So, you don&amp;rsquo;t like the way our little fictional war came out? You don&amp;rsquo;t like Rachel dead and Tobias shattered and Jake guilt-ridden? You don&amp;rsquo;t like that one war simply led to another? Fine. Pretty soon you&amp;rsquo;ll all be of voting age, and of draft age. So when someone proposes a war, remember that even the most necessary wars, even the rare wars where the lines of good and evil are clear and clean, end with a lot of people dead, a lot of people crippled, and a lot of orphans, widows and grieving parents.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re mad at me because that&amp;rsquo;s what you have to take away from Animorphs, too bad. I couldn&amp;rsquo;t have written it any other way and remained true to the respect I have always felt for Animorphs readers.&lt;/p&gt;
&lt;p&gt;K.A. Applegate&lt;/p&gt;
&lt;/details&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;details&gt;
&lt;summary&gt;Letter to the children, Sheriff Anwar&lt;/summary&gt;
&lt;p&gt;Dear Julie and Brian&lt;/p&gt;
&lt;p&gt;My name is Sheriff Anwar.&lt;/p&gt;
&lt;p&gt;Your mum and dad have asked me to make a decision on whether you should see your dad.&lt;/p&gt;
&lt;p&gt;I think that as my decision is all about you, it is only fair that I should write to you.&lt;/p&gt;
&lt;p&gt;I have not met you, but I have heard a lot about you. You mum has told me all about how you are
getting on at school and about your likes and dislikes. Your dad has told me about all the things you
used to do together.&lt;/p&gt;
&lt;p&gt;Your mum and dad have also told me about the problems they have had with each other after they
split up. Sometimes, when parents split up it is very hard for them to stay friends. Your mum and
dad have found it very hard to stay friends. Sometimes when people are no longer friends, they can
say some nasty things about each other. They forget what is good about each other. That is not
right and it is not nice. It shouldn’t happen. You should not have to hear any of that. That is for the
adults to sort out.&lt;/p&gt;
&lt;p&gt;I have listened carefully to what everyone has said. It’s my job to listen carefully and then decide
what is best for you.&lt;/p&gt;
&lt;p&gt;Your mum, dad, and other members of your family have all spoken to me. I have also listened to
what Dr Khan has said. I know, from what your mum and Dr Khan have told me, that you don’t want
to see your dad.&lt;/p&gt;
&lt;p&gt;I can understand that. Your dad’s job is to care for you, protect you, love you, help you, make good
plans for you and to know what is right for you. Sometimes, he has not been very good at that. He
has locked you in your rooms when you have been naughty and you haven’t liked that. He has
sworn at you sometimes and you haven’t liked that. When you were younger, he washed you and
he was a bit rough, and you didn’t like that. He asked Mrs McCormick to move in to his house and he
took her on holiday with you, without telling you first. He should not have done that. That was not
fair of him. He should have talked to you first so that you knew what was happening and why.
But I don’t believe that your dad meant to hurt you or to be mean to you in doing the things that he
has done. I believe that he did not really think about how you would feel. That does not make him a
bad dad. I know that there are lots of things that you did together that you really enjoyed, like
playing in the garden, skiing and going on holidays. I know that he used to help you with homework,
make your dinner and pick you up from school. I know that he has kept in touch with the school to
learn about your progress.&lt;/p&gt;
&lt;p&gt;There is a good side to your dad. He really wants to make things better with you. He wants to be
your dad. He wants to love and care for you. He wants to spend time with you. He has told me that
he will do anything he has to do to make things right.&lt;/p&gt;
&lt;p&gt;I think that your dad needs some help to understand how you are feeling and to understand how he
can be a better dad to you. I think that your dad needs some help to make sure he doesn’t make the
same mistakes. I have asked him to get that help and he has agreed. He might also, sometimes,
need some help from you to understand how you feel.&lt;/p&gt;
&lt;p&gt;I think your mum also needs some help to be better able to support you and to be more positive
about your dad. She has agreed. I hope that she will now focus on helping you to see the good in
your dad. She has told me that she will support you in getting to know your dad again, if that is what
I decide is the right thing for you.&lt;/p&gt;
&lt;p&gt;I have also asked your mum and dad to get some help so that they can talk to each other again, even
if they can’t be good friends.&lt;/p&gt;
&lt;p&gt;So, I have thought about all of this very carefully. I have especially thought about how you feel.
I don’t think that it is good for you to grow up thinking you have a bad dad. I don’t think that it is
good for you to forget all the good times. I don’t think that is it good for you to think that your dad
meant to hurt you, when he didn’t. I think that it is better for you to get to know your dad again and
to give him a chance to make things better.&lt;/p&gt;
&lt;p&gt;I have asked Dr Khan to meet with you and to help you to understand my decision. I have decided
that your dad should write to you once a month, so that you can start to get to know each other
again. I hope that you will feel able to write back to him.&lt;/p&gt;
&lt;p&gt;We all make mistakes. The important thing is that we learn from them. I think your dad has learned
from his mistakes.&lt;/p&gt;
&lt;p&gt;I hope that my letter explains to you why I have made this decision.&lt;/p&gt;
&lt;p&gt;Sheriff Anwar&lt;/p&gt;
&lt;/details&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mozart&amp;rsquo;s love letter&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.thetimes.co.uk/article/dear-dolly-my-friends-use-botox-and-its-making-me-feel-old-hszt99w97&#34;&gt;Dear Dolly: ‘My friends use Botox and it’s making me feel old’ (paywall)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;hip-hop-karaoke&#34;&gt;Hip Hop Karaoke&lt;/h3&gt;
&lt;p&gt;Amazing, always. Worth getting in at the front.&lt;/p&gt;
&lt;h3 id=&#34;brass-funkeys&#34;&gt;Brass Funkeys&lt;/h3&gt;
&lt;p&gt;Ditto.&lt;/p&gt;
&lt;h2 id=&#34;sunday&#34;&gt;Sunday&lt;/h2&gt;
&lt;h3 id=&#34;swim-1&#34;&gt;Swim&lt;/h3&gt;
&lt;p&gt;Note to future self: don&amp;rsquo;t skip a swim even if the weather&amp;rsquo;s bad. Great start to the day.&lt;/p&gt;
&lt;h3 id=&#34;wilderness-behind-the-scenes&#34;&gt;Wilderness Behind the Scenes&lt;/h3&gt;
&lt;p&gt;Always lovely to hear from the organisers. Asked how they make Wilderness run so well
with so few rules.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make it obviously they trust their customers. No surveillance, no heavy security presence.&lt;/li&gt;
&lt;li&gt;Make the site so beautiful people want to look after it. Hide all the metalwork. Litter picking.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;arts-tent&#34;&gt;Arts tent&lt;/h3&gt;
&lt;p&gt;Bumped into Lorna W and decorated a pineapple with her daughter in the Arts Tent!&lt;/p&gt;
&lt;h3 id=&#34;the-trawl-podcast-live&#34;&gt;The Trawl Podcast Live&lt;/h3&gt;
&lt;p&gt;Jemma Forte &amp;amp; Marina Purkiss.&lt;/p&gt;
&lt;p&gt;Learned about &lt;a href=&#34;https://themovementforward.com&#34;&gt;The Movement Forward&lt;/a&gt;, a tactical voting campaign to get the tories out.&lt;/p&gt;
&lt;h3 id=&#34;the-silk-road-mountain-race&#34;&gt;The Silk Road Mountain Race&lt;/h3&gt;
&lt;p&gt;Extremely badass adrenaline junkie &lt;a href=&#34;https://hollybudge.com/&#34;&gt;Holly Budge&lt;/a&gt;. She&amp;rsquo;s about to ride across Krygistan on
horseback for weeks.&lt;/p&gt;
&lt;h3 id=&#34;what-i-wish-id-known-about-becoming-a-detective&#34;&gt;What I Wish I&amp;rsquo;d Known About Becoming A Detective&lt;/h3&gt;
&lt;p&gt;Jess McDonald.&lt;/p&gt;
&lt;p&gt;Book: &lt;a href=&#34;https://www.goodreads.com/en/book/show/123504813&#34;&gt;No Comment: What I Wish I&amp;rsquo;d Known About Becoming A Detective&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;the-making-of-the-shamima-begum-story&#34;&gt;The Making of The Shamima Begum Story&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Josh Baker&lt;/li&gt;
&lt;li&gt;Hassan Akkad&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;letters-live-part-2&#34;&gt;Letters Live part 2&lt;/h3&gt;
&lt;p&gt;More great letters, can&amp;rsquo;t remember faves though.&lt;/p&gt;
&lt;h3 id=&#34;gods-jukebox&#34;&gt;God&amp;rsquo;s Jukebox&lt;/h3&gt;
&lt;p&gt;People write to Wilderness with a song request and a dedication. The letter is read out and
the Wilderness orchestra plays the song. It&amp;rsquo;s beautiful and a real highlight.&lt;/p&gt;
&lt;h3 id=&#34;sugababes&#34;&gt;Sugababes&lt;/h3&gt;
&lt;p&gt;Amazing throwback! Fab voices, fab performance. Great spot &lt;em&gt;behind&lt;/em&gt; the VIP / accessible stage
as it wasn&amp;rsquo;t crowded but you could see the screens.&lt;/p&gt;
&lt;h3 id=&#34;fatboy-slim&#34;&gt;Fatboy Slim&lt;/h3&gt;
&lt;p&gt;Absolutely awesome set.&lt;/p&gt;
&lt;h2 id=&#34;best-food&#34;&gt;Best food&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Persian Street Food: loaded fries (chicken and pork both amazing)&lt;/li&gt;
&lt;li&gt;Buddha Bowl (not that fussed about adding halloumi)&lt;/li&gt;
&lt;li&gt;Mama Thai: Chicken Penang&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;best-coffee&#34;&gt;Best Coffee&lt;/h2&gt;
&lt;p&gt;Waffles had cheapest black americano (£2.50 compared to average £3.30) and very nice staff.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Replacing our front door</title>
      <link>https://paul.fawkesley.com/2023-07-18-replacing-our-front-door/</link>
      <pubDate>Tue, 18 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2023-07-18-replacing-our-front-door/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/10-cutting-an-angle-on-the-old-door-600w-400h.jpg&#34; alt=&#34;An electric hand saw beside a door on concrete slabs&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;I finally got around to replacing our draughty, single glazed front door. It was a big job but
it was fun and satisfying to do myself.&lt;/p&gt;
&lt;h2 id=&#34;the-old-door&#34;&gt;The old door&lt;/h2&gt;
&lt;p&gt;It was full of holes, a horrif plastic letterbox and single glazed panels. Worst of all, the
glass had been carelessly painted without masking, making a total mess.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/00-front-door-before-600w-900h.jpg&#34; alt=&#34;White wooden door with vertical glass panels with paint splatters. Several messy holes in the door.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;900&#34; style=&#34;height: auto&#34;/&gt;



&lt;h2 id=&#34;picking-a-new-door&#34;&gt;Picking a new door&lt;/h2&gt;
&lt;p&gt;I wanted to keep the existing frame for two reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I felt confident that I could do it myself. I didn&amp;rsquo;t feel I could replace the whole thing.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve got an electric door strike (opener) and cabling built into the frame and plasterwork
that I didn&amp;rsquo;t want to disturb.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We wanted an oak door that&amp;rsquo;s both energy efficient and allows plenty of light.&lt;/p&gt;
&lt;h2 id=&#34;what-u-value&#34;&gt;What U-value?&lt;/h2&gt;
&lt;p&gt;I wasn&amp;rsquo;t sure what U-value we should be aiming for and most companies didn&amp;rsquo;t
quote a U-value for their doors.&lt;/p&gt;
&lt;p&gt;I got thoroughly confused by Building Regulations. I think I learned that they
currently dictate a maximum U value of &lt;strong&gt;1.8 W/m²K&lt;/strong&gt; for doors installed into
existing dewellings. But that &lt;em&gt;doesn&amp;rsquo;t apply&lt;/em&gt; to doors fitted into
existing frames. Consequently, most replacement doors available at standard
stores like B&amp;amp;Q don&amp;rsquo;t even quote a U-value and are presumably terribly inefficient.&lt;/p&gt;
&lt;p&gt;We ultimately settled on a door called &lt;a href=&#34;https://www.lpddoors.co.uk/winchester-glazed-1l/&#34;&gt;Winchester Glazed 1L&lt;/a&gt;
I &lt;em&gt;think&lt;/em&gt; we learned that it had a U-value of 1.8 W/m²K but I subsequently can&amp;rsquo;t find that
figure anywhere.&lt;/p&gt;
&lt;p&gt;Note: After installing the door we had a whole-house retrofit assessment that recommended
a performance target of &lt;strong&gt;0.9 W/m²K&lt;/strong&gt; for all doors and windows. It would have been very helpful to
have the assessment before picking a door!&lt;/p&gt;
&lt;h2 id=&#34;fixing-the-threshold&#34;&gt;Fixing the threshold&lt;/h2&gt;
&lt;p&gt;The existing door had a clear gap underneath and an unpleasant metal threshold.
I wanted a threshold that seal against the bottom of the new door.&lt;/p&gt;
&lt;p&gt;I removed the threshold and surveyed the layers of tiles, brick and concrete below.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/01-removed-front-door-threshold-600w-400h.jpg&#34; alt=&#34;Black carpet and vinyl floor with a messy hole and a discarded metal threshold&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;















&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/02-gap-at-front-door-threshold-600w-400h.jpg&#34; alt=&#34;A messy gap of cracked cement between the vincyl floor and porch carpet&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;















&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/03-removing-protruding-tiles-600w-400h.jpg&#34; alt=&#34;Carpet pulled back, removing some tiles to make the porch and house floor levels equal&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Fortunately the floor level inside the house and in the porch was exactly the same. I decided to
knock out a few tiles and make a smooth new surface with some cement.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/04-preparing-cement-600w-400h.jpg&#34; alt=&#34;A washing up bowl of wet cement with a wooden stick used for mixing&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;















&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/05-cementing-the-threshold-600w-400h.jpg&#34; alt=&#34;Wet cement bridging the gap between the inside vinyl floor and the porch carpet&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;I bought a &lt;a href=&#34;https://www.stormguard.co.uk/stormguard-products/cdx/&#34;&gt;Stormguard CDX Compression Draught Excluder&lt;/a&gt;.
It has rubber insert that slightly compresses against the bottom of the door.&lt;/p&gt;
&lt;p&gt;











&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/06-stormguard-cdx-compression-draught-excluder-600w-400h.jpg&#34; alt=&#34;3D render showing the bottom of a door slightly compressing the rubber seal part of a door threshold&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



Image from stormguard.co.uk&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the new threshold installed and looking much neater than the old one. A bonus is that
it&amp;rsquo;s much easier to drive the pushchair over!&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/07-rubber-seal-front-door-threshold-600w-400h.jpg&#34; alt=&#34;Stormguard threshold in place with the carpet and vinyl neatly meeting it&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;h2 id=&#34;cutting-the-door&#34;&gt;Cutting the door&lt;/h2&gt;
&lt;p&gt;To achieve a draught-proof seal, I had to cut the bottom of the door to an 8° angle:&lt;/p&gt;
&lt;p&gt;











&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/08-stormguard-cdx-compression-draught-excluder-schematic-600w-400h.png&#34; alt=&#34;Technical diagram showing side angle of the bottom of the door with an 8° angle&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



Image from stormguard.co.uk&lt;/p&gt;
&lt;p&gt;Cutting the door was a bit scary. If I&amp;rsquo;d cut it too short it wouldn&amp;rsquo;t reach the
threshold and would be ruined. Too long and it could be difficult to re-cut.&lt;/p&gt;
&lt;p&gt;So I used the old door to practise. I set up the saw with a roughly 8° angle
and cut the old door. I re-fitted the door onto the frame and, somehow, got a perfect fit first
time.&lt;/p&gt;
&lt;p&gt;Then I was able to use the old door as a template to cut the new door.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/10-cutting-an-angle-on-the-old-door-600w-400h.jpg&#34; alt=&#34;An electric hand saw beside a door on concrete slabs&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Marking out where to cut the new door:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/11-old-door-on-top-of-new-door-600w-400h.jpg&#34; alt=&#34;Old front door positioned on top of new front door as a marking template&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;h2 id=&#34;installing-hinges-and-locks&#34;&gt;Installing hinges and locks&lt;/h2&gt;
&lt;p&gt;I learned a lot about chiselling! Oak is lovely to work with, it cuts very smoothly.&lt;/p&gt;
&lt;p&gt;I spent many hours chiselling the cut outs for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 sets of hinges&lt;/li&gt;
&lt;li&gt;the main bolt&lt;/li&gt;
&lt;li&gt;the deadbolt&lt;/li&gt;
&lt;li&gt;two night latches&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Again, I used the old door as a template. Transferring the hinge positions:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/12-old-door-on-top-of-new-door-600w-400h.jpg&#34; alt=&#34;Transferring the hinge position from the old front door down to the new one&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Chiselling out the hinges:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/13-chiselling-door-for-hinges-600w-400h.jpg&#34; alt=&#34;Several chisel cuts in the shape of a hinge cut-out&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;















&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/14-chiselling-door-for-hinges-600w-400h.jpg&#34; alt=&#34;Shiny stainless steel hinge inserted into chiselled cut-out&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;New door strike fully installed:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/15-shiny-lock-600w-400h.jpg&#34; alt=&#34;Shiny stainless steel ERA lock fitted onto door&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;















&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/16-shiny-lock-600w-400h.jpg&#34; alt=&#34;Shiny stainless steel ERA lock fitted onto door&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Drilling and chiselling another hole for a deadbolt:&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/17-chiselling-for-deadbolt-600w-900h.jpg&#34; alt=&#34;Rectanglar cut-out in the side of the door to take a deadbolt&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;900&#34; style=&#34;height: auto&#34;/&gt;



&lt;h2 id=&#34;draught-proofing-the-frame&#34;&gt;Draught-proofing the frame&lt;/h2&gt;
&lt;p&gt;I carefully cut &lt;a href=&#34;https://www.toolstation.com/stormguard-door-window-strips/p19928&#34;&gt;Stormguard brush strips&lt;/a&gt;
and installed them around the sides and top of the door. The brushes just
touch the door when it&amp;rsquo;s shut, enough to prevent any wind.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/18-brush-strip-600w-400h.jpg&#34; alt=&#34;White brush strip in the top left corner of the door&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;















&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/19-brush-strip-600w-400h.jpg&#34; alt=&#34;White brush strip in the top right corner of the door&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;















&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/20-brush-strip-600w-900h.jpg&#34; alt=&#34;White brush strip running vertical beside the lock and deadbolt&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;900&#34; style=&#34;height: auto&#34;/&gt;



&lt;h2 id=&#34;applying-danish-oil&#34;&gt;Applying Danish oil&lt;/h2&gt;
&lt;p&gt;We like the look of oak so didn&amp;rsquo;t want to paint it. But it needs protecting, so we masked up
all the metalwork and applied Danish oil. It brought out the grain of the wood wonderfully.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/21-applying-danish-oil-600w-400h.jpg&#34; alt=&#34;My wife applying Danish oil to the door. The shiny metalwork is masking taped.&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;And here&amp;rsquo;s the end result!&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-07-18-replacing-our-front-door/22-new-front-door-600w-900h.jpg&#34; alt=&#34;Finished front door with oak grain and shiny stainless steel metalwork&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;900&#34; style=&#34;height: auto&#34;/&gt;</description>
    </item>
      
    
      
    <item>
      <title>Upgrading our Gas Hob to Induction</title>
      <link>https://paul.fawkesley.com/2023-06-08-upgrading-our-gas-hob-to-induction/</link>
      <pubDate>Thu, 08 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2023-06-08-upgrading-our-gas-hob-to-induction/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2023-06-08-upgrading-our-gas-hob-to-induction/ikea-matmassig-induction-hob-600w-400h.jpg&#34; alt=&#34;Slick black glass induction hob on a wood effect worktop&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;I&amp;rsquo;m on a mission to stop burning fossil fuels.&lt;/p&gt;
&lt;p&gt;As well as heating the atmosphere, burning fossil gas indoors &lt;a href=&#34;https://www.mdpi.com/1660-4601/20/1/75&#34;&gt;causes asthma in children.&lt;/a&gt; Cool.&lt;/p&gt;
&lt;p&gt;Shortly after that research was published, &lt;a href=&#34;https://substack.com/redirect/4b19492d-80fc-4edc-a7f3-b679891be717?j=eyJ1IjoiMWt2dGh0In0.nDBGlfVNXOIJBjLguMtu186miYr_Qhp0ujAVFChygV0&#34;&gt;fossil fuel companies funded an influencer campaign that &amp;ldquo;gas is best&amp;rdquo;.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That was the final kick up the arse that got me to say bye bye to our gas hob.&lt;/p&gt;
&lt;p&gt;Here are some notes and pointers for anyone doing the same.&lt;/p&gt;
&lt;h2 id=&#34;i-do-like-cooking-with-gas&#34;&gt;I do like cooking with gas&lt;/h2&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-06-08-upgrading-our-gas-hob-to-induction/lamona-gas-hob-600w-400h.jpg&#34; alt=&#34;4-ring gas hob on a wood effect work top&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;I must confess I like cooking with gas, in particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Power:&lt;/strong&gt; on maximum power you can heat things up really fast.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Responsiveness:&lt;/strong&gt; gas turns up and down quickly, which is important for cooking.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Controls:&lt;/strong&gt; physical knobs are great. I&amp;rsquo;ve used some terrible touch-screen hobs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I was sceptical that an induction hob could match the user experience of cooking with gas.&lt;/p&gt;
&lt;p&gt;Let me go through my objections one by one. I&amp;rsquo;m a convert and perhaps you will be too.&lt;/p&gt;
&lt;h2 id=&#34;power-arent-induction-hobs-really-slow&#34;&gt;Power: aren&amp;rsquo;t induction hobs really slow?&lt;/h2&gt;
&lt;p&gt;Some are: they come in two varieties: 13 Amp and 32 Amp.&lt;/p&gt;
&lt;p&gt;A 13 Amp hob is much simpler to install because it just needs a normal wall socket.&lt;/p&gt;
&lt;p&gt;I wanted the equivalent power of 4 gas rings. Turns out 4 gas rings is around
7.5kW of power. 7500W ÷ 240V = 31.25A.&lt;/p&gt;
&lt;p&gt;Simple then, if you want like-for-like power, &lt;strong&gt;you need a 32A induction hob.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;responsiveness-arent-induction-hobs-slow-to-turn-up-and-down&#34;&gt;Responsiveness: aren&amp;rsquo;t induction hobs slow to turn up and down?&lt;/h2&gt;
&lt;p&gt;I think this is a misconception that comes from normal (non-induction) electric
hobs.  They have a heating element inside a heavy metal casing and
they can take an age to turn up and down. I think this is because they
have a big lump of thermal mass (metal) that needs to heat up or cool down.&lt;/p&gt;
&lt;p&gt;Induction hobs work differently: they make the entire pan itself heat up or
cool down. There&amp;rsquo;s no very little thermal mass, so no lag, just like a gas flame.&lt;/p&gt;
&lt;h2 id=&#34;controls-dont-induction-hobs-all-have-fussy-touch-screens&#34;&gt;Controls: don&amp;rsquo;t induction hobs all have fussy touch screens?&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve used some really rubbish ones in Airbnbs, yes. Difficult to press, slow
repeat speed, water intolerant, etc.&lt;/p&gt;
&lt;p&gt;Fortunately, there&amp;rsquo;s at least one reasonably priced model with excellent touch controls.&lt;/p&gt;
&lt;h2 id=&#34;dont-you-need-special-pans&#34;&gt;Don&amp;rsquo;t you need special pans?&lt;/h2&gt;
&lt;p&gt;You do, but you may already have them. All but one of our pans turned out to be
&amp;ldquo;induction ready&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;planning-the-upgrade&#34;&gt;Planning the upgrade&lt;/h2&gt;
&lt;p&gt;There are a couple of steps involved in upgrading from gas to induction:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;choose a suitable hob&lt;/li&gt;
&lt;li&gt;plan the electrical connection&lt;/li&gt;
&lt;li&gt;remove the gas hob and cap off the gas&lt;/li&gt;
&lt;li&gt;install the induction hob&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;choose-an-induction-hob&#34;&gt;Choose an induction hob&lt;/h2&gt;
&lt;p&gt;I subscribed to &lt;a href=&#34;https://which.co.uk&#34;&gt;which.co.uk&lt;/a&gt; for a month and looked at their Best Buys.&lt;/p&gt;
&lt;p&gt;The top two were £700-800. The &lt;a href=&#34;https://www.ikea.com/gb/en/p/matmaessig-induction-hob-ikea-300-black-10467093/&#34;&gt;IKEA Matmässig&lt;/a&gt;
was a more reasonable £300. Its review score was almost as good as the most expensive ones.&lt;/p&gt;
&lt;h3 id=&#34;check-the-counter-top-hole-size&#34;&gt;Check the counter-top hole size&lt;/h3&gt;
&lt;p&gt;⚠️  Check the size of the existing hole in your counter. Ideally get a new hob that needs
the same size hole as the existing one.&lt;/p&gt;
&lt;p&gt;I tried to measure the hole but I couldn&amp;rsquo;t easily lift the gas hob without
breaking its putty seal.&lt;/p&gt;
&lt;p&gt;Instead, I found the model number of our gas hob from a Howdens invoice in my
email. I searched online and found an installation manual which specified the
hob needs a 56 x 49cm.&lt;/p&gt;
&lt;p&gt;IKEA&amp;rsquo;s helpful website confirmed that the Matmässig also needs 56 x 49cm.&lt;/p&gt;
&lt;h2 id=&#34;plan-the-electrical-connection&#34;&gt;Plan the electrical connection&lt;/h2&gt;
&lt;p&gt;In the UK, electric ovens typically have their own dedicated cable and MCB
switch at the consumer unit (in old parlance, a &amp;ldquo;fuse&amp;rdquo; in the &amp;ldquo;fuse box&amp;rdquo;).&lt;/p&gt;
&lt;p&gt;Traditionally these cables are 6mm² which has a maximum current carrying
capacity of 40 Amps (depending on where and how the cable is installed.)&lt;/p&gt;
&lt;p&gt;The MCB in the consumer unit is chosen to be lower than the maximum current
the cable can carry. Ours had a 30A MCB. So if something tries to draw more
than 30A, the MCB will trip (switch off) rather than allow too much current to
flow through the cable.&lt;/p&gt;
&lt;p&gt;Modern electric ovens are more efficient and only require 13A, so their 6mm²
cable has capacity for additional load.&lt;/p&gt;
&lt;p&gt;In our case, our setup was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;6mm² cable running from consumer unit&lt;/li&gt;
&lt;li&gt;30A MCB switch on the consumer unit&lt;/li&gt;
&lt;li&gt;13A oven, confirmed by looking at its instruction manual.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Adding a 32A induction hob to our 13A oven pushes the total maximum currently to 45A, well over
the 30A MCB.&lt;/p&gt;
&lt;p&gt;I hired and electrician and we talked through two options:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;stick with 30A and see if we ever actually exceed 30A (tripping the MCB)&lt;/li&gt;
&lt;li&gt;upgrade the MCB to 40A&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Option 1) is &lt;em&gt;safe&lt;/em&gt; but may be annoying if we keep tripping the MCB.&lt;/p&gt;
&lt;p&gt;Option 2) would have been ideal but the electrician didn&amp;rsquo;t have an old
fashioned 40A MCB with him at the time.&lt;/p&gt;
&lt;p&gt;The electrician advised that if we apply a &amp;ldquo;diversity&amp;rdquo; calculation it&amp;rsquo;s
unlikely we&amp;rsquo;ll trip the 30A MCB. If the oven is drawing full power, that leaves
(30-13 = 17A) for the induction hob. Assuming each hob uses (32 ÷ 4 = 8A),
we&amp;rsquo;d only hit 17A if we were using 2 hobs on maximum power and a third as well,
all while using the oven on full. It sounds possible, but not typical.&lt;/p&gt;
&lt;p&gt;We agreed to try out the 30A MCB. If we need to upgrade, it&amp;rsquo;ll be worth
replacing our customer unit with a modern, bigger one to accommodate a heat pump.&lt;/p&gt;
&lt;h2 id=&#34;remove-the-gas-hob&#34;&gt;Remove the gas hob&lt;/h2&gt;
&lt;p&gt;We needed a registered gas engineer to do this. The electrician recommended a
friend who came the next day.&lt;/p&gt;
&lt;p&gt;The engineer shut off the gas supply at the main meter where the gas enters the house.&lt;/p&gt;
&lt;p&gt;He unscrewed the oven from the carcass and slid it out. As a he did so there
was a &lt;strong&gt;pop&lt;/strong&gt; and the house&amp;rsquo;s RCD tripped, killing the power to everything in
the house.&lt;/p&gt;
&lt;p&gt;Clearly there was an electrical fault somewhere in the wiring of the oven. Not
good.&lt;/p&gt;










&lt;a href=&#34;https://paul.fawkesley.com/img/2023-06-08-upgrading-our-gas-hob-to-induction/wall-connection.jpg&#34;&gt;

&lt;img src=&#34;https://paul.fawkesley.com/img/2023-06-08-upgrading-our-gas-hob-to-induction/wall-connection-600w-400h.jpg&#34; alt=&#34;Electrical wall plate hanging off the wall&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;

&lt;/a&gt;

&lt;p&gt;&lt;em&gt;The kitchen fitters made a total mess of the oven install: the wall socket was
left hanging off!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We switched off the oven&amp;rsquo;s MCB before carrying on.&lt;/p&gt;
&lt;p&gt;Next he unscrewed the copper gas pipe and removed the hob from the counter.&lt;/p&gt;
&lt;p&gt;This left a short threaded pipe protruding from the wall.  He applied some
white gunk to the thread and screwed on a cap, sealing off the gas supply.&lt;/p&gt;
&lt;p&gt;He waited a while, turned the supply back on and did some testing with a gas
detecting device. Job done.&lt;/p&gt;
&lt;p&gt;Cost: £60&lt;/p&gt;
&lt;h2 id=&#34;seal-the-hole-in-the-counter&#34;&gt;Seal the hole in the counter&lt;/h2&gt;
&lt;p&gt;While you&amp;rsquo;ve got a big hole in your counter, it&amp;rsquo;s worth checking the kitchen fitters sealed
the edges of the chipboard. Ours didn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;This is to stop water getting in under the hob and swelling your chipboard. It doesn&amp;rsquo;t take
much to ruin it.&lt;/p&gt;
&lt;p&gt;Ideally, you should use epoxy for this. I didn&amp;rsquo;t have any so I applied a very
generous splodge of external wood glue.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-06-08-upgrading-our-gas-hob-to-induction/sealing-counter-chipboard-edges-600w-400h.jpg&#34; alt=&#34;Square hole in a kitchen counter with wood glue applied to the chipboard edges&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;h2 id=&#34;install-the-induction-hob&#34;&gt;Install the induction hob&lt;/h2&gt;
&lt;p&gt;The day after the gas hob was removed, the electrician came to wire in the induction hob.&lt;/p&gt;
&lt;p&gt;He slid the oven back out and discovered that the oven cable&amp;rsquo;s Earth wire had not been
connected and the insulating plastic box was left open, exposing live and neutral.&lt;/p&gt;












&lt;img src=&#34;https://paul.fawkesley.com/img/2023-06-08-upgrading-our-gas-hob-to-induction/oven-electrical-connection-no-earth-600w-400h.jpg&#34; alt=&#34;An electrical cable entering an open plastic box&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;Sadly the electrician said he sees this all the time: kitchen fitters that don&amp;rsquo;t
bother to subcontract the electrical work but are also clueless about doing it themselves.&lt;/p&gt;
&lt;p&gt;So beware: if you&amp;rsquo;re planning to DIY, turn everything off, check everything for live, and don&amp;rsquo;t
assumptions about the existing wiring.&lt;/p&gt;
&lt;p&gt;Cost: £70&lt;/p&gt;
&lt;h2 id=&#34;so-far-so-good&#34;&gt;So far so good&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;re two weeks in. The verdict?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bloody brilliant.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll start with my only gripe: it is fussy about water spillages. It does an
angry beep for about 5 seconds before turning off. I presume this is to protect
against things boiling over, but it&amp;rsquo;s annoying as switching off loses each
hob&amp;rsquo;s power setting and resets any timers. This isn&amp;rsquo;t a major gripe as I now
know to be careful about clearing up spills and it doesn&amp;rsquo;t catch me out any
more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Good points:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I love the &lt;strong&gt;power!&lt;/strong&gt; It can boil water quicker than the kettle! Makes sense as
pans have more heating surface area than the kettle heating element.&lt;/p&gt;
&lt;p&gt;I love how easy it is to clean, with a single glass surface that can be wiped.&lt;/p&gt;
&lt;p&gt;I love that I&amp;rsquo;m not thinking about toxic gas combustion fumes every time I
cook.&lt;/p&gt;
&lt;p&gt;I love that in these long sunny evenings, our south-west facing solar panels
can power the hob cleanly and cheaply.&lt;/p&gt;
&lt;p&gt;I love the timer. This was an unexpected bonus: the hob can turn itself off after a
number of minutes and make a chiming sound. That&amp;rsquo;s extremely useful! Many things
I cook have a cooking time, for example boiling eggs, poaching eggs, pre-boiling roast
potatoes and so on.&lt;/p&gt;
&lt;h3 id=&#34;cost&#34;&gt;Cost&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;IKEA Matmässig: £300&lt;/li&gt;
&lt;li&gt;Removing the gas hob, capping the pipe: £60&lt;/li&gt;
&lt;li&gt;Installing the new hob: £70&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total cost: £430&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not a cheap upgrade, but I&amp;rsquo;ve no regrets.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re tempted to switch, do it!&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;second&lt;/em&gt; best way you can say f**k you to the fossil fuel companies is to
stop buying their product 😉&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>The speech I gave at my Just Stop Oil trial</title>
      <link>https://paul.fawkesley.com/2023-02-17-the-speech-i-gave-at-my-just-stop-oil-trial/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2023-02-17-the-speech-i-gave-at-my-just-stop-oil-trial/</guid>
      <description>&lt;p&gt;Di, Oli, Alan, Paul, Harley, Jon and I gave testimonies at trial on Wednesday.&lt;/p&gt;
&lt;p&gt;Judge Wilkinson responded with an extraordinary speech that&amp;rsquo;s quoted towards the end of
&lt;a href=&#34;https://juststopoil.org/2023/02/16/you-should-feel-guilty-for-nothing-says-judge-as-he-finds-seven-guilty-and-aquits-two-for-disrupting-oil-supplies-at-esso-terminal-in-birmingham/&#34;&gt;this press release.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s why I disrupted an Esso oil terminal for 11 hours last April.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;my-daughter-robyn-will-turn-three-next-week&#34;&gt;My daughter Robyn will turn three next week.&lt;/h2&gt;
&lt;p&gt;But she very nearly didn&amp;rsquo;t exist.&lt;/p&gt;
&lt;p&gt;You might have heard that young people don&amp;rsquo;t want children because of the climate crisis.&lt;/p&gt;
&lt;p&gt;That was me. I agonised over whether it was fair to bring a child into this world.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Will I be able to &lt;strong&gt;protect them?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Will they grow up in an &lt;strong&gt;unstable, dangerous&lt;/strong&gt; world?&lt;/li&gt;
&lt;li&gt;Will they &lt;strong&gt;resent me&lt;/strong&gt; for having them, despite knowing what they&amp;rsquo;ll face?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eventually, and with some uncertainty, we decided to have just one child.&lt;/p&gt;
&lt;h2 id=&#34;since-robyn-was-born-weve-spent-every-thursday-together&#34;&gt;Since Robyn was born we&amp;rsquo;ve spent every Thursday together.&lt;/h2&gt;
&lt;p&gt;We spend most days outdoors, collecting leaves, talking to &amp;ldquo;woof woofs&amp;rdquo;, and discussing endlessly about &amp;ldquo;why&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Why are leaves green? Why does the moon come out at night?&lt;/p&gt;
&lt;p&gt;She is a perfect, tiny human.&lt;/p&gt;
&lt;p&gt;I love her so much.&lt;/p&gt;
&lt;h2 id=&#34;she-has-done-nothing-to-deserve-the-future-that-were-currently-all-facing-with-24-of-warming&#34;&gt;She has done nothing to deserve the future that we&amp;rsquo;re currently all facing with 2.4° of warming.&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;She does not deserve to live in fear of food shortages and rationing.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But by the time she&amp;rsquo;s 30, many countries we import food from will be too hot
for growing crops.  The Global Center for Adaptation forecasts a global yield
reduction of up to 30% by 2050. And that&amp;rsquo;s with a projected additional 2 billion mouths to feed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;She does not deserve to see her home, Liverpool, ruined by rising sea levels and worsening storm floods.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But by 30, the street where we live is predicted to be underwater once a year, according to the IPCC&amp;rsquo;s 2021 leading consensus model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Robyn doesn&amp;rsquo;t deserve a society that&amp;rsquo;s polarised&lt;/strong&gt; by the impossible stress of hundreds of millions of climate refugees.&lt;/p&gt;
&lt;p&gt;But by the time she&amp;rsquo;s 30, there will be between 25 million and one billion climate migrants, according to the UN&amp;rsquo;s International Organization for Migration.&lt;/p&gt;
&lt;h2 id=&#34;as-i-watch-her-little-mind-growing-i-think-about-her-grasping-the-climate-situation-like-i-did&#34;&gt;As I watch her little mind growing, I think about her grasping the climate situation like I did.&lt;/h2&gt;
&lt;p&gt;She&amp;rsquo;s going to say to me,&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Dad, you knew this would happen. What were you doing? Did you do everything you could?”&lt;/p&gt;
&lt;p&gt;I need a good answer.&lt;/p&gt;
&lt;h2 id=&#34;i-gave-up-my-car-and-spend-thousands-a-year-on-trains&#34;&gt;I gave up my car and spend thousands a year on trains.&lt;/h2&gt;
&lt;p&gt;I stopped eating beef and lamb, the highest emitting foods.&lt;/p&gt;
&lt;p&gt;I spent £1000s and hundreds of hours insulating our home.&lt;/p&gt;
&lt;p&gt;I invested my savings in renewable energy co-operatives.&lt;/p&gt;
&lt;p&gt;I stopped flying and faced the idea I may never leave Europe again.&lt;/p&gt;
&lt;p&gt;I joined the Green Party, I wrote to my MP, went on marches, and signed petitions.&lt;/p&gt;
&lt;h2 id=&#34;i-did-all-these-things-but-global-emissions-kept-going-up&#34;&gt;I did all these things, but global emissions kept going up.&lt;/h2&gt;
&lt;p&gt;The IPCC kept publishing reports, and they kept getting worse.&lt;/p&gt;
&lt;h2 id=&#34;and-our-government-kept-granting-new-fossil-fuels-licences&#34;&gt;And our Government kept granting new fossil fuels licences.&lt;/h2&gt;
&lt;p&gt;That means giving permission to dig up brand new oil and gas from the north sea.&lt;/p&gt;
&lt;p&gt;So what&amp;rsquo;s wrong with that?&lt;/p&gt;
&lt;p&gt;Remember how the Government declared a climate emergency in 2019?&lt;/p&gt;
&lt;p&gt;We committed, in law, to achieve Net Zero emissions by 2050.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But Net Zero by 2050 is not compatible with granting new fossil fuel licences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The IPCC and the International Energy Agency are the world&amp;rsquo;s independent experts. They say that to achieve Net Zero by 2050, there should be no new fossil fuel licences.&lt;/p&gt;
&lt;p&gt;So our Government set a goal in law, but is acting in a way that means &lt;strong&gt;we will not meet that goal.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At the start of 2022, the Government had approved 40 new fossil fuel projects.&lt;/p&gt;
&lt;p&gt;The emissions from those new fossil fuels will be equal to &lt;strong&gt;three times&lt;/strong&gt; that of the whole UK.&lt;/p&gt;
&lt;p&gt;As the metaphor goes, the house was on fire, but we just kept throwing on petrol.&lt;/p&gt;
&lt;h2 id=&#34;i-felt-guilty-for-being-part-of-the-problem&#34;&gt;I felt guilty for being part of the problem.&lt;/h2&gt;
&lt;p&gt;I felt bitter that people in our Government must know how urgent the situation is, but are too cowardly to upset the status quo.&lt;/p&gt;
&lt;p&gt;I felt anger that fossil fuel companies spend millions of dollars funding climate deniers. Corrupting our democratic process.&lt;/p&gt;
&lt;p&gt;But most of all I felt hopeless and I felt despair.&lt;/p&gt;
&lt;p&gt;I was watching us lurch towards the edge of the cliff, but was powerless to stop it.&lt;/p&gt;
&lt;h2 id=&#34;what-else-could-i-do&#34;&gt;What else could I do?&lt;/h2&gt;
&lt;p&gt;How could I look my daughter in the eye, and tell her I did what I could?&lt;/p&gt;
&lt;h2 id=&#34;i-heard-about-a-thing-called-just-stop-oil&#34;&gt;I heard about a thing called Just Stop Oil.&lt;/h2&gt;
&lt;p&gt;They had a simple demand of Government.&lt;/p&gt;
&lt;p&gt;Stop granting new fossil fuel licences.&lt;/p&gt;
&lt;p&gt;This wasn&amp;rsquo;t a radical or unreasonable demand.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s exactly what the IPCC and the International Energy Agency have said is necessary.&lt;/p&gt;
&lt;h2 id=&#34;so-that-was-just-stop-oils-demand&#34;&gt;So that was Just Stop Oil&amp;rsquo;s demand.&lt;/h2&gt;
&lt;p&gt;Their tactics were simple, and borrowed from history.&lt;/p&gt;
&lt;p&gt;The same tactics that got women the right to vote, and all races to be considered equal in the US.&lt;/p&gt;
&lt;p&gt;Protest in a way that the government can&amp;rsquo;t ignore.&lt;/p&gt;
&lt;p&gt;Force them to negotiate the demand.&lt;/p&gt;
&lt;h2 id=&#34;then-came-the-uncomfortable-bit&#34;&gt;Then came the uncomfortable bit&lt;/h2&gt;
&lt;p&gt;They were asking me to get arrested.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t much like the sound of that&amp;hellip;&lt;/p&gt;
&lt;p&gt;It didn&amp;rsquo;t sound like me!&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m an Engineering graduate, a business owner, a hands-on dad.&lt;/p&gt;
&lt;p&gt;The only brush I&amp;rsquo;d had with the law was a speeding ticket when I was 17.&lt;/p&gt;
&lt;p&gt;This all seemed very extreme.&lt;/p&gt;
&lt;p&gt;It wasn&amp;rsquo;t for me. I said I&amp;rsquo;d help out with leaflets and &amp;ldquo;think about it.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;but-over-time-i-met-a-few-more-people-involved-with-just-stop-oil&#34;&gt;But over time, I met a few more people involved with Just Stop Oil.&lt;/h2&gt;
&lt;p&gt;They weren&amp;rsquo;t what I was expecting. They were&amp;hellip; gentle, principled people.&lt;/p&gt;
&lt;p&gt;Vicars, teachers, nurses.&lt;/p&gt;
&lt;p&gt;Doing this because it&amp;rsquo;s necessary, not because they enjoy protesting.&lt;/p&gt;
&lt;h2 id=&#34;at-one-point-i-heard-someone-ask&#34;&gt;At one point, I heard someone ask:&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;What are you more afraid of, getting arrested or the climate emergency?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That was a hard thing to face up to.&lt;/p&gt;
&lt;p&gt;I was afraid of getting arrested, and the consequences, of course I was.&lt;/p&gt;
&lt;p&gt;But if I was honest with myself, there was no comparison.&lt;/p&gt;
&lt;p&gt;Of course it&amp;rsquo;s the climate emergency. It terrifies me.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s just &lt;strong&gt;easier to ignore&lt;/strong&gt; because it&amp;rsquo;s creeping up on us slowly.&lt;/p&gt;
&lt;p&gt;Getting arrested is an extreme thing to do.&lt;/p&gt;
&lt;p&gt;But we are in extreme danger.&lt;/p&gt;
&lt;h2 id=&#34;the-more-i-thought-about-it-the-more-reasonable-and-necessary-it-seemed&#34;&gt;The more I thought about it, the more reasonable and necessary it seemed.&lt;/h2&gt;
&lt;p&gt;Successive Governments had ignored the protests and the petitions.&lt;/p&gt;
&lt;p&gt;The normal democratic process had failed. The situation had become an emergency.&lt;/p&gt;
&lt;p&gt;I felt that I had no choice.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not the only one who thinks so. The day after my arrest, UN Secretary-General António Guterres said in a speeech:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;…most major emitters are not taking the steps needed to fulfil even these inadequate promises.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Climate activists are sometimes depicted as dangerous radicals.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;But, the truly dangerous radicals are the countries that are increasing the production of fossil fuels.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;we-rely-on-our-government-to-protect-us&#34;&gt;We rely on our Government to protect us.&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s their most important duty.&lt;/p&gt;
&lt;p&gt;But they aren&amp;rsquo;t doing that.&lt;/p&gt;
&lt;p&gt;They are contradicting the IPCC and the International Energy Agency.&lt;/p&gt;
&lt;p&gt;By granting new fossil fuel licences, &lt;strong&gt;they are destroying our future.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;i-didnt-want-to-sit-on-the-road-for-hours-in-minus-1-degrees&#34;&gt;I didn&amp;rsquo;t want to sit on the road for hours in minus 1 degrees&lt;/h2&gt;
&lt;p&gt;I didn&amp;rsquo;t want to get arrested.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t want to be here today.&lt;/p&gt;
&lt;p&gt;But &lt;strong&gt;I had to demand&lt;/strong&gt; that the government protects us.&lt;/p&gt;
&lt;p&gt;I had to tell them to listen to the desperate cries of their own scientists and experts.&lt;/p&gt;
&lt;p&gt;And I had to demand that they &lt;strong&gt;stop granting new fossil fuel licences.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Taking action with Just Stop Oil.&lt;/p&gt;
&lt;p&gt;This was something I could do.&lt;/p&gt;
&lt;p&gt;This is what I can say to Robyn.&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;My daughter&amp;rsquo;s name has been changed to protect her identity.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;other-esso9-speeches&#34;&gt;Other #Esso9 speeches&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://bloggingvolumes.blogspot.com/2023/02/my-defense-statement.html&#34;&gt;Jon Deery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://paul.fawkesley.com/2023-02-17-paul-barnes-speech-from-just-stop-oil-trial/&#34;&gt;Paul Barnes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Paul Barnes&#39; speech from Just Stop Oil trial</title>
      <link>https://paul.fawkesley.com/2023-02-17-paul-barnes-speech-from-just-stop-oil-trial/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2023-02-17-paul-barnes-speech-from-just-stop-oil-trial/</guid>
      <description>&lt;p&gt;Di, Oli, Paul F, Alan, Paul B, Harley and Jon gave testimonies at trial on Wednesday.&lt;/p&gt;
&lt;p&gt;Judge Wilkinson responded with an extraordinary speech that&amp;rsquo;s quoted towards the end of
&lt;a href=&#34;https://juststopoil.org/2023/02/16/you-should-feel-guilty-for-nothing-says-judge-as-he-finds-seven-guilty-and-aquits-two-for-disrupting-oil-supplies-at-esso-terminal-in-birmingham/&#34;&gt;this press release.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is the speech Paul Barnes&#39; gave.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I want you to all think of outer space.&lt;/p&gt;
&lt;p&gt;Think about the planets, the moons and all the stars floating in a vacuum of
nothingness.&lt;/p&gt;
&lt;p&gt;All made from the same gasses and elements that make our planet
possible too, but still… a lifeless void of nothing.&lt;/p&gt;
&lt;p&gt;What WE have here on OUR planet, OUR earth, is a miracle… Life is a miracle.&lt;/p&gt;
&lt;p&gt;The conditions for our very existence here on Earth have worked in perfect
balance with all life on our planet for millions of years&amp;hellip; and what we have
is incredibly precious.&lt;/p&gt;
&lt;p&gt;Devastatingly, species decline and extinction rates are accelerating and we
are no exception.&lt;/p&gt;
&lt;p&gt;We must protect what we have left.&lt;/p&gt;
&lt;p&gt;From an early age, around 7 years old, I’ve been scared of dying.&lt;/p&gt;
&lt;p&gt;I would routinely ask my parents about what happens when we die, what’s outside
the universe, when did it start, how did it start?&lt;/p&gt;
&lt;p&gt;At that time our atmosphere had a CO₂ concentration of 350 parts per million.
My parents couldn’t offer me any answers to my questions, they comforted me,
but ultimately couldn’t help me.&lt;/p&gt;
&lt;p&gt;Now I&amp;rsquo;m a parent and I’ve two young children of my own. Leo is 4 and our
eldest, Isaac is now 7 years old himself, and that CO₂ figure is now at 420
parts per million, the highest it’s been in modern human history.&lt;/p&gt;
&lt;p&gt;According to Nasa &lt;a href=&#34;https://climate.nasa.gov/climate_resources/24/graphic-the-relentless-rise-of-carbon-dioxide/&#34;&gt;the last time it was this high was around 400,000 years ago&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;8 billion people have never faced this before. I’m now scared for Isaac &amp;amp; Leo&amp;rsquo;s
lives and how the climate crisis will impact them.&lt;/p&gt;
&lt;p&gt;At this time in history, I have the chance to save my children from the worst
impacts of climate breakdown before it’s too late, and as a parent I will do
all I can whilst I am able, to protect them.&lt;/p&gt;
&lt;p&gt;Before I was a dad, I didn’t care for politics or had any idea there was a
looming climate disaster unfolding&amp;hellip;&lt;/p&gt;
&lt;p&gt;But since becoming a parent my levels of awareness about everything in life has
changed.&lt;/p&gt;
&lt;p&gt;I feel like I’m more aware than I’ve ever been. Naturally, when we worry about things we’re told to research
the facts, and this is what i’ve been doing since Isaac was born and even more
so after hearing more about the climate emergency, as highlighted by Extinction
Rebellion, the school strikers and many more, including those from the
scientific community.&lt;/p&gt;
&lt;p&gt;This came just after Leo was born in 2018, and to be honest knowing what we
know now, we wouldn’t have had Leo and Isaac wouldn’t have a little brother.&lt;/p&gt;
&lt;p&gt;But to think of our 4 year old bundle of joy not having ever existed is
heartbreaking. We cherish every second we have with them both.&lt;/p&gt;
&lt;p&gt;This is it, it’s all we get… one life….. ‘You only live once’ YOLO.&lt;/p&gt;
&lt;p&gt;Make the most of every day we’re gifted.&lt;/p&gt;
&lt;p&gt;Why would you not do anything?&lt;/p&gt;
&lt;p&gt;Why would you not do everything you could to save what we have? .. what you
have?  It’s not too late to make a change, to use the power you have to make a
difference.&lt;/p&gt;
&lt;p&gt;In the plea hearing, you asked us not to labour on the science, but as mentioned
that’s exactly what I’ve been doing for years and my conclusion is that we all
need to understand just how serious this situation is.&lt;/p&gt;
&lt;p&gt;After disinformation and denial campaigns that have lasted longer than I’ve
been alive, doubt and confusion is the result, which was and is the exact
intention of ExxonMobil and other fossil fuel companies.&lt;/p&gt;
&lt;p&gt;There is a stack of evidence proving this&amp;hellip; that for over 50 years,
ExxonMobil in particular have known the catastrophic risks to life and actively
tried to cover this up in a pursuit of profit over people.&lt;/p&gt;
&lt;p&gt;I acknowledge that fossil fuels have helped us in many many ways and we should
all be thankful for the privileged lives we all lead as a result of that.&lt;/p&gt;
&lt;p&gt;But I also understand the reasons why, now, we must rapidly move away from them.&lt;/p&gt;
&lt;p&gt;The bottom line is: If we don’t move in the time scale required, dictated to
us by the laws of physics, presented to us by the scientists, the
Intergovernmental panel on climate change, the UN, the international energy
agency and the UK&amp;rsquo;s own committee on climate, then we may never be able to
bring the global average temperature down to safe levels.&lt;/p&gt;
&lt;p&gt;We risk multiple climate and ecological tipping points falling like dominos,
and could be facing irreversible feedback loops out of human control, and face
no way back.&lt;/p&gt;
&lt;p&gt;Put bluntly, the effects of what we are currently risking will result in an
unlivable world for many many species including humans and could lead to our
extinction.&lt;/p&gt;
&lt;p&gt;This decade is make or break, we either create the will to save ourselves or we
don’t.&lt;/p&gt;
&lt;p&gt;When we hear the warnings and know the risks and have learned from history how
food and water scarcity result in conflict and war.&lt;/p&gt;
&lt;p&gt;It’s easy to see how scenarios could play out in the near future as our global
crisis worsens.&lt;/p&gt;
&lt;p&gt;I worry about all the obvious things: flooding, extreme heat, wildfires, crop
failure and food shortages leading to starvation and death.&lt;/p&gt;
&lt;p&gt;But I also worry about public order and societal collapse.&lt;/p&gt;
&lt;p&gt;Public order exists to prevent breach of the peace. it’s there to keep the
public safe from harm.&lt;/p&gt;
&lt;p&gt;It’s there to prevent chaos and danger appearing in our
organised societies.&lt;/p&gt;
&lt;p&gt;Who protects you when law and order breaks down? When most days are disrupted,
not by protests, but by violence as people fight for food, water and medical
supplies, and justice itself completely disappears.&lt;/p&gt;
&lt;p&gt;All my life I believed the law and justice system protects people from danger.&lt;/p&gt;
&lt;p&gt;I now know they are protecting the system.&lt;/p&gt;
&lt;p&gt;The system that is directly damaging the people it was supposed to protect and
is set to destroy the futures of billions.&lt;/p&gt;
&lt;p&gt;I’m protecting myself and my family but also you, everyone in this room and
their families….simply because our government, police and justice system is
favouring business as usual at all costs, even if that cost is life itself.&lt;/p&gt;
&lt;p&gt;And then I learn our own government is literally doing the ‘opposite of what is
recommended to keep us all safe’, by issuing consents for 40 new fossil fuel
projects&amp;hellip;&lt;/p&gt;
&lt;p&gt;That was then…now it’s looking like 130 plus..&lt;/p&gt;
&lt;p&gt;We all have a choice, either ignore it, bury it deep down and accept that we
have no way of changing anything and should then accept that our children face
a dystopian hell of a future.&lt;/p&gt;
&lt;p&gt;Or we try everything we can to fight to change the future.&lt;/p&gt;
&lt;p&gt;Once all lawful means have been exhausted the only thing left is
nonviolent direct action as a last and final option.&lt;/p&gt;
&lt;p&gt;And due to the unique time scale constraints of this insane situation it is the
only option left to those of us facing the truth head on, for those of us who
aren’t willing to bury it deep and hide away from the reality.&lt;/p&gt;
&lt;p&gt;We’re hoping to get guinea pigs soon.&lt;/p&gt;
&lt;p&gt;Isaac and Leo love nature and these will be their first pets.&lt;/p&gt;
&lt;p&gt;We’ll be in control of their living conditions and we’ll
make sure we look after them well. It’s conceivable and highly likely that our
new arrivals will live out their full happy lives with us.&lt;/p&gt;
&lt;p&gt;We &lt;em&gt;could&lt;/em&gt; choose to neglect our duty of care and subject the animals to certain
factors like leaving them with no water &amp;amp; food, or we could leave them outside
in the garden under various weather conditions and see what happens.&lt;/p&gt;
&lt;p&gt;But we won’t because we’re in control of the situation.&lt;/p&gt;
&lt;p&gt;I only hope that my children live a full happy life under the control of our
leaders who have the power to decide our fate.&lt;/p&gt;
&lt;p&gt;But just hoping isn&amp;rsquo;t enough.&lt;/p&gt;
&lt;p&gt;Those already dead, displaced and decimated by climate change also hoped, but
hoping didn’t change anything.&lt;/p&gt;
&lt;p&gt;We must all act together for the sake of all those less fortunate than us, for
those already in a dystopian hell.&lt;/p&gt;
&lt;p&gt;We don’t know how lucky we are to have this small window of opportunity to do
something.&lt;/p&gt;
&lt;p&gt;But our luck will run out too, and this is the future for my children and
yours,&lt;/p&gt;
&lt;p&gt;Thank you&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Paul&amp;rsquo;s children&amp;rsquo;s names have been changed to protect their identity.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Adding a minimal Go backend to my Hugo static site</title>
      <link>https://paul.fawkesley.com/2022-12-31-adding-a-minimal-go-backend-to-my-hugo-static-site/</link>
      <pubDate>Sat, 31 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2022-12-31-adding-a-minimal-go-backend-to-my-hugo-static-site/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2022-12-31-adding-a-minimal-go-backend-to-my-hugo-static-site/adding-golang-backend-to-hugo-static-site-600w-400h.png&#34; alt=&#34;Go code showing an HTTP handler returning the result of a function called random email&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;This site is built with &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo,&lt;/a&gt; a static site generator.
The site lives on a tiny VM as a bunch of HTML files. I use
&lt;a href=&#34;http://nginx.org/&#34;&gt;nginx&lt;/a&gt; with &lt;a href=&#34;https://letsencrypt.org/&#34;&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt; to
serve the directory of files.&lt;/p&gt;
&lt;p&gt;The site doesn&amp;rsquo;t have a backend: there&amp;rsquo;s no server-side rendering and no API
calls. Any dynamic functionality must be implemented with Javascript.&lt;/p&gt;
&lt;p&gt;This has served me well for a decade. But recently I&amp;rsquo;ve wanted to try out a few
ideas where a backend would be helpful.&lt;/p&gt;
&lt;p&gt;I had a spare hour and I wanted to throw up a minimal backend written in
Golang. Speed and simplicity were the most important thing.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how it works&lt;/p&gt;
&lt;h2 id=&#34;idea-randomly-generated-contact-email-address&#34;&gt;Idea: randomly generated contact email address&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m minorly tired of all the spam I get to the email address I used to publish on the
site&amp;rsquo;s contact page.&lt;/p&gt;
&lt;p&gt;I thought it would be fun to try two things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;hide the email address until the visitor clicks &amp;ldquo;reveal&amp;rdquo;&lt;/li&gt;
&lt;li&gt;generate a random email address for every site visitor (and log their IP and user agent)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I hope that 1. will thwart basic scrapers and bots. I&amp;rsquo;m assuming most bots won&amp;rsquo;t click &amp;ldquo;reveal&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;When I do get a spam email, I can look up the random email address in my logs
and find the IP address that scraped the page. Then I&amp;rsquo;ve got the option to send
an abuse report to the administrator of the IP address.&lt;/p&gt;
&lt;h2 id=&#34;frontend-code-to-reveal-the-email-address&#34;&gt;Frontend code to reveal the email address&lt;/h2&gt;
&lt;p&gt;This year I keep coming across &lt;a href=&#34;https://htmx.org&#34;&gt;HTMX&lt;/a&gt;. I love its simplicity and the
associated &lt;a href=&#34;https://hypermedia.systems/&#34;&gt;book, Hypermedia Systems&lt;/a&gt; is an
interesting technical read.&lt;/p&gt;
&lt;p&gt;With HTMX, the frontend code is extremely simple:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;a hx-get=&amp;quot;/email&amp;quot; hx-trigger=&amp;quot;click&amp;quot; hx-swap=&amp;quot;outerHTML&amp;quot;&amp;gt;
Click to reveal email address
&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Translated, that means, &amp;ldquo;when the &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag is clicked, fetch &lt;code&gt;/email&lt;/code&gt; and
replace the &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag with the result.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how that renders:&lt;/p&gt;
&lt;p&gt;
&lt;a hx-get=&#34;/email&#34; hx-trigger=&#34;click&#34; hx-swap=&#34;outerHTML&#34;&gt;
Click to reveal email address
&lt;/a&gt;
&lt;/p&gt;
&lt;script src=&#34;https://unpkg.com/htmx.org@1.8.4&#34;&gt;&lt;/script&gt;
&lt;h2 id=&#34;go-server-to-generate-email-addresses&#34;&gt;Go server to generate email addresses&lt;/h2&gt;
&lt;p&gt;I wanted the email address to be consistent for a given User Agent, IP Address
combination. This way, a user will normally see the same email address if they
reload the page.&lt;/p&gt;
&lt;p&gt;To achieve this, the codes takes the SHA256 hash of the User Agent and IP
Address. It uses the first 8 bytes as the seed to Go&amp;rsquo;s random function. It then
generates an email address with 10 randomly picked characters, e.g.
&lt;code&gt;hi.xgdjqkpxvr@example.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// main.go

package main

import (
	&amp;quot;crypto/sha256&amp;quot;
	&amp;quot;encoding/binary&amp;quot;
	&amp;quot;fmt&amp;quot;
	&amp;quot;log&amp;quot;
	&amp;quot;math/rand&amp;quot;
	&amp;quot;net/http&amp;quot;
	&amp;quot;strings&amp;quot;
	&amp;quot;time&amp;quot;
)

func main() {
	http.HandleFunc(&amp;quot;/email&amp;quot;, func(w http.ResponseWriter, r *http.Request) {
		ip := r.Header.Get(&amp;quot;x-forwarded-for&amp;quot;)
		ua := r.Header.Get(&amp;quot;user-agent&amp;quot;)
		eml := randomEmail(ip, ua)

		fmt.Printf(&amp;quot;%s|%s|%s|%q\n&amp;quot;, time.Now().Format(time.RFC3339), eml, ip, ua) // log to stdout
		fmt.Fprintf(w, &amp;quot;&amp;lt;a href=\&amp;quot;mailto:%s\&amp;quot;&amp;gt;%s&amp;lt;/a&amp;gt;&amp;quot;, eml, eml)
	})

	log.Fatal(http.ListenAndServe(&amp;quot;:8081&amp;quot;, nil))
}

func randomEmail(ip, userAgent string) string {
	hasher := sha256.New()
	hasher.Write([]byte(ip))
	hasher.Write([]byte(userAgent))

	sha := hasher.Sum(nil)

	fmt.Sprintf(&amp;quot;hash: %s\n&amp;quot;, string(sha))

	seed := int64(binary.BigEndian.Uint64(sha))
	rand.Seed(seed)

	chars := make([]string, 10)

	for i := 0; i &amp;lt; 10; i++ {
		randi := rand.Intn(len(letters))
		chars[i] = letters[randi : randi+1]
	}

	return fmt.Sprintf(&amp;quot;hi.%s@example.com&amp;quot;, strings.Join(chars, &amp;quot;&amp;quot;))
}

var letters = &amp;quot;abcdefghjkmnpqrstuvwxyz23456789&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;building-and-deploying-with-make-and-scp&#34;&gt;Building and deploying with &lt;code&gt;make&lt;/code&gt; and &lt;code&gt;scp&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;I used a simple &lt;code&gt;Makefile&lt;/code&gt; to build and deploy the Go code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Makefile

randomemail: main.go
	go build -o randomemail main.go

.PHONY: run
run: main.go
	go run main.go

.PHONY: deploy
deploy: deploy_binary deploy_supervisor_config

.PHONY: deploy_binary
deploy_binary: randomemail
	scp randomemail paul.fawkesley.com:/opt/randomemail/randomemail.new
	ssh paul.fawkesley.com &#39;mv /opt/randomemail/randomemail.new /opt/randomemail/randomemail &amp;amp;&amp;amp; sudo supervisorctl restart randomemail&#39;

.PHONY: deploy_supervisor_config
deploy_supervisor_config
	scp config/etc/supervisor/conf.d/randomemail.conf paul.fawkesley.com:/etc/supervisor/conf.d/randomemail.conf
	ssh paul.fawkesley.com &#39;sudo supervisorctl reload&#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;running-the-server-with-supervisor&#34;&gt;Running the server with Supervisor&lt;/h2&gt;
&lt;p&gt;I used &lt;a href=&#34;http://supervisord.org/&#34;&gt;supervisor&lt;/a&gt; to start the server and keep it
running if it crashes.&lt;/p&gt;
&lt;p&gt;This took a single config file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# /etc/supervisor/conf.d/randomemail

[program:randomemail]
directory=/usr/local
command=/opt/randomemail/randomemail
autostart=true
autorestart=true
stderr_logfile=/var/log/randomemail.err
stdout_logfile=/var/log/randomemail.log
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;reverse-proxying-the-server-from-nginx&#34;&gt;Reverse proxying the server from nginx&lt;/h2&gt;
&lt;p&gt;Requests to &lt;code&gt;/email&lt;/code&gt; need to be directed to the backend rather than from static files.&lt;/p&gt;
&lt;p&gt;I added a &lt;code&gt;location&lt;/code&gt; rule to the &lt;code&gt;server&lt;/code&gt; section of my nginx config:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# /etc/nginx/sites-available/paul.fawkesley.com_HTTPS

server {
    server_name paul.fawkesley.com;

    ...

    location /email {
        # forward to the `randomemail` service located at /opt/randomemail/randomemail
        proxy_pass http://localhost:8081;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And that&amp;rsquo;s it&amp;hellip; have a play and let me know what you think!&lt;/p&gt;
&lt;p&gt;
&lt;a hx-get=&#34;/email&#34; hx-trigger=&#34;click&#34; hx-swap=&#34;outerHTML&#34;&gt;
Click to reveal email address
&lt;/a&gt;
&lt;/p&gt;</description>
    </item>
      
    
      
    
      
    <item>
      <title>Reducing gas reliance with a solar diverter</title>
      <link>https://paul.fawkesley.com/2022-11-21-reducing-gas-reliance-with-a-solar-diverter/</link>
      <pubDate>Mon, 21 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/2022-11-21-reducing-gas-reliance-with-a-solar-diverter/</guid>
      <description>&lt;img src=&#34;https://paul.fawkesley.com/img/2022-11-21-reducing-gas-reliance-with-a-solar-diverter/iboost-solar-diverter-600w-400h.jpg&#34; alt=&#34;Image of a white plastic box with an electronic screen and a picture of solar panels in the background&#34; loading=&#34;lazy&#34; width=&#34;600&#34; height=&#34;400&#34; style=&#34;height: auto&#34;/&gt;



&lt;p&gt;In September 2021 we installed a solar diverter called iBoost as a measure to reduce our gas consumption.&lt;/p&gt;
&lt;p&gt;One year on I looked at the figures to review how effective this gadget has been.&lt;/p&gt;
&lt;p&gt;Spoiler: in 14 months it displaced 1.89kWh per day on average, around 18% of our total gas usage. We might be able to improve this with a new hot water tank.&lt;/p&gt;
&lt;h2 id=&#34;whats-a-solar-diverter&#34;&gt;What&amp;rsquo;s a solar diverter?&lt;/h2&gt;
&lt;p&gt;A solar diverter detects when our rooftop solar panels are generating more than we are using.&lt;/p&gt;
&lt;p&gt;Rather than sending that excess to the grid (called &amp;ldquo;exporting&amp;rdquo;), it &amp;ldquo;diverts&amp;rdquo; it to an immersion heater in our hot water tank.&lt;/p&gt;
&lt;p&gt;By heating the water in the tank, we don&amp;rsquo;t need to use gas to heat that water. The idea is that the excess solar &lt;em&gt;displaces&lt;/em&gt; some gas usage by pre-heating the water.&lt;/p&gt;
&lt;h2 id=&#34;gas-reduction-so-far&#34;&gt;Gas reduction so far&lt;/h2&gt;
&lt;p&gt;In the 422 days since installation (22/09/21 to 18/11/22), the unit has displaced 797 kWh of gas energy with solar electrical energy.&lt;/p&gt;
&lt;p&gt;Extrapolating gives a daily, yearly and lifetime estimate:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Period&lt;/th&gt;
&lt;th&gt;Gas reduction (kWh)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;22/09/21 to 18/11/22&lt;/td&gt;
&lt;td&gt;797&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;per day&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
&lt;td&gt;1.89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;per year&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
&lt;td&gt;689&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10 year lifetime&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
&lt;td&gt;6,893&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt;&lt;em&gt;Estimated based on 422 day period. It&amp;rsquo;s probably a bit better since that period contained two October and November months which are overcast.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;From smart meter readings, I estimate that the tank takes about 5 kWh per day to heat. We&amp;rsquo;ve therefore reduced the gas usage for water heating by a bit over a third.&lt;/p&gt;
&lt;h2 id=&#34;return-on-investment&#34;&gt;Return on investment&lt;/h2&gt;
&lt;p&gt;This project wasn&amp;rsquo;t about money, it was about reducing gas reliance. But it&amp;rsquo;s useful to understand the cost of different measures. Let&amp;rsquo;s take a look at the numbers and see how it works out.&lt;/p&gt;
&lt;p&gt;There are two costs to consider: the installation and the running cost.&lt;/p&gt;
&lt;h3 id=&#34;installation-cost&#34;&gt;Installation cost&lt;/h3&gt;
&lt;p&gt;It cost £450 to install the unit. That includes a morning&amp;rsquo;s work of an electrician.&lt;/p&gt;
&lt;h3 id=&#34;running-cost-or-income&#34;&gt;Running cost (or income)&lt;/h3&gt;
&lt;p&gt;When we export excess energy to the grid we get paid around £0.05 for every kWh (called a &amp;ldquo;unit&amp;rdquo;).&lt;/p&gt;
&lt;p&gt;At the time of installing, it cost £0.04 to buy gas from the grid.&lt;/p&gt;
&lt;p&gt;So back then it would effectively &lt;em&gt;cost&lt;/em&gt; us £0.01 per unit to heat the hot water using the excess solar rather than buying gas. (But don&amp;rsquo;t panic, that only works out £9 / year.)&lt;/p&gt;
&lt;p&gt;However, since installing, gas prices shot through the roof. At £0.07 per unit, we now &lt;em&gt;make&lt;/em&gt; £0.02 per unit for saving gas. Great!&lt;/p&gt;
&lt;h3 id=&#34;lifetime-cost&#34;&gt;Lifetime cost&lt;/h3&gt;
&lt;p&gt;Assuming the device works for 10 years and displaces 6,893 kWh over its lifetime.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scenario 1:&lt;/strong&gt; Gas prices stay high, averaging £0.07 over the 10 year lifetime. The saving of £0.02 becomes £0.038 per day, £13.79 per year, £138 over the lifetime. That subsidises the £450 installation cost to a lifetime cost of &lt;strong&gt;£312&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scenario 2:&lt;/strong&gt; Gas prices drop again. It seems unlikely they&amp;rsquo;ll drop &lt;em&gt;below&lt;/em&gt; their previous value, so let&amp;rsquo;s say an average of £0.05 over the 10 year lifetime. That means the gas unit rate versus export unit rate is neutral. The lifetime cost is therefore &lt;strong&gt;£450&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cost-per-tonne-of-carbon-saved&#34;&gt;Cost per tonne of carbon saved&lt;/h2&gt;
&lt;p&gt;Again, assuming a lifetime gas reduction of 6,893 kWh.&lt;/p&gt;
&lt;p&gt;According to &lt;a href=&#34;https://www.rensmart.com/Calculators/KWH-to-CO2&#34;&gt;this website,&lt;/a&gt;
the carbon intensity of burning domestic gas is 0.23314 kg CO&lt;sub&gt;2&lt;/sub&gt;e per
kWh.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s a carbon saving of &lt;strong&gt;1.60 tonnes&lt;/strong&gt; over the 10 years.&lt;/p&gt;
&lt;p&gt;That works out as &lt;strong&gt;£195 to £285 per tonne of carbon&lt;/strong&gt; for the two gas price scenarios.&lt;/p&gt;
&lt;p&gt;For comparison, it currently costs &lt;a href=&#34;https://climeworks.com&#34;&gt;Climeworks&lt;/a&gt; about
£900 to permanently remove a tonne of carbon from the atmosphere. So at today&amp;rsquo;s
prices, this measure is about 3-5x cheaper than burning gas then sucking back
up the carbon it releases into the atmosphere. (Lesson: don&amp;rsquo;t think carbon
capture gives us an excuse to carry on burning stuff.)&lt;/p&gt;
&lt;p&gt;Note that this doesn&amp;rsquo;t take into account the carbon cost of manufacturing the
iBoost device, solar panels, inverter and so on. I&amp;rsquo;ll try to improve this.&lt;/p&gt;
&lt;h2 id=&#34;possible-improvements&#34;&gt;Possible improvements&lt;/h2&gt;
&lt;h3 id=&#34;replace-the-hot-water-tank&#34;&gt;Replace the hot water tank?&lt;/h3&gt;
&lt;p&gt;Even on very sunny days, the iBoost never diverts more than 2.5 kWh. The gas kicks in to heat the water even after these days. I believe the water tank takes about 5 kWh to heat, so the iBoost is only heating about 50% of the water.&lt;/p&gt;
&lt;p&gt;My best theory is that the immersion heater is not long enough to heat the bottom of the tank. This is a bit strange as it&amp;rsquo;s a 32&amp;quot; immersion which matches the tank&amp;rsquo;s documented maximum. But perhaps the tank designers intended that an immersion is only a &lt;em&gt;backup&lt;/em&gt; so doesn&amp;rsquo;t need to heat the whole tank?&lt;/p&gt;
&lt;p&gt;More investigation required, but if that&amp;rsquo;s the case, we could upgrade to a tank with two immersion heater positions. The iBoost supports this configuration, heating one first then the next. The tank would also have to have a primary coil, so it would be quite cramped. Need to look into this.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Saving 0.16 tonnes of carbon per year is great and it&amp;rsquo;s nice to be moving towards full electrification.&lt;/p&gt;
&lt;p&gt;But how much of our &lt;em&gt;entire&lt;/em&gt; gas usage has that knocked out?&lt;/p&gt;
&lt;p&gt;In the same period (22/09/21 to 18/11/22) that we diverted 797 kWh, we still consumed 3,535 kWh of gas.&lt;/p&gt;
&lt;p&gt;Assuming the iBoost measured correctly, we would have consumed 3,535 + 797 = 4,332 kWh without it.&lt;/p&gt;
&lt;p&gt;(As a sanity check, this &lt;em&gt;roughly&lt;/em&gt; tallies with a comparable period, 22/09/2018 to 18/09/2019 in which we consumed 4,821 kWh of gas.)&lt;/p&gt;
&lt;h3 id=&#34;18-gas-reduction-so-far&#34;&gt;18% gas reduction so far&lt;/h3&gt;
&lt;p&gt;So the iBoost reduced our gas consumption by 797 / 4,322 = &lt;strong&gt;18%&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m pleasantly surprised how large that reduction was.&lt;/p&gt;
&lt;h3 id=&#34;insulate-first&#34;&gt;Insulate first&amp;hellip;&lt;/h3&gt;
&lt;p&gt;For the remaining gas usage, I&amp;rsquo;m going to take  &lt;em&gt;fabric first&lt;/em&gt; approach. That means improving the insulation of the building before installing renewables. Despite subscribing to this approach, I got distracted by cool shiny technology (solar, battery, iBoost) when I should&amp;rsquo;ve started with the building.&lt;/p&gt;
&lt;p&gt;In summary, if you already have solar PV, a hot tank with an immersion, and you&amp;rsquo;re exporting lots of electricity, a solar diverter is a good option (but sort out your draughts, loft, windows and doors first!)&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>A tweak to increase blood stocks &amp; improve donor experience</title>
      <link>https://paul.fawkesley.com/a-tweak-to-increase-blood-stocks-and-improve-donor-experience/</link>
      <pubDate>Wed, 20 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/a-tweak-to-increase-blood-stocks-and-improve-donor-experience/</guid>
      <description>&lt;p&gt;A suggestion to &lt;a href=&#34;https://www.nhsbt.nhs.uk/&#34;&gt;NHS Blood and Transplant&lt;/a&gt; management from a blood donor of 17 years, a hypothesis on increasing blood stocks, and an approach to start testing it right now.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id=&#34;who-the-heck-am-i&#34;&gt;Who the heck am I?&lt;/h2&gt;
&lt;p&gt;First off, I&amp;rsquo;m not a health professional and I have no experience running something as huge as the NHS Blood and Transfusion Service.&lt;/p&gt;
&lt;p&gt;However, I have been &lt;strong&gt;donating blood for 17 years,&lt;/strong&gt; recently hitting 50 donations, so I&amp;rsquo;m probably an &amp;ldquo;expert&amp;rdquo; when it comes to donating.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m an &lt;strong&gt;efficiency and user experience nerd,&lt;/strong&gt; having worked on digital transformations at NHS Alpha, GOV.UK, Co-op Digital and more.&lt;/p&gt;
&lt;h2 id=&#34;blood-stocks-are-low&#34;&gt;Blood stocks are low&lt;/h2&gt;
&lt;p&gt;I was told at my donation that stocks are extremely low. I see from the website that there currently are 4-5 days of stocks for certain blood groups, against a target of 6 days.&lt;/p&gt;
&lt;p&gt;I presume there are several levers for increasing stocks, such as:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;recruiting new donors&lt;/li&gt;
&lt;li&gt;encouraging &amp;ldquo;lapsed&amp;rdquo; donors to come back&lt;/li&gt;
&lt;li&gt;maximising / optimising the frequency that regular donors attend&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This suggestion is concerned with 3.&lt;/p&gt;
&lt;h2 id=&#34;how-booking-used-to-work&#34;&gt;How booking used to work&lt;/h2&gt;
&lt;p&gt;I give blood every 12 weeks. I donate at a dedicated donor centre. That&amp;rsquo;s a building that&amp;rsquo;s permanently set up for donation, rather than a van that sets up in church halls, schools and so on.&lt;/p&gt;
&lt;p&gt;I usually donate at the same time of the week, on the same day. That&amp;rsquo;s extremely easy to plan around as it&amp;rsquo;s a habit and there&amp;rsquo;s nothing to think about each time.&lt;/p&gt;
&lt;p&gt;Pre-COVID, I&amp;rsquo;d attend the session, do my donation, have a cup of tea and a biscuit, then get up to go.&lt;/p&gt;
&lt;p&gt;On the way out, I&amp;rsquo;d ask the front desk to book me in for next time. I&amp;rsquo;d open my calendar on my phone and we&amp;rsquo;d negotiate. It was extremely efficient because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;They already have my details: I&amp;rsquo;m &amp;ldquo;authenticated&amp;rdquo; already.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Everyone needs an appointment in either 12 or 16 weeks, so the reception person can keep the diary open on the right day (OK 2 days).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They can suggest the same time of day. They were fast at finding lunchtime appointments across different days, if exactly 12 weeks wasn&amp;rsquo;t available.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I estimate this occupied the staff for approximately 1 minute, possibly 2 as an absolute maximum.&lt;/p&gt;
&lt;p&gt;As a result, I used to donate &lt;strong&gt;every 12 weeks like clockwork.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;now-i-cant-book-at-the-front-desk&#34;&gt;Now I can&amp;rsquo;t book at the front desk&lt;/h2&gt;
&lt;p&gt;In recent years, I&amp;rsquo;ve tried to book as I&amp;rsquo;ve left and been told (apologetically) that I have to book online or on the phone.&lt;/p&gt;
&lt;p&gt;OK, that was slightly irritating because it disrupted something that was working well, but not a huge drama. I left and got on with my life&amp;hellip;&lt;/p&gt;
&lt;p&gt;And forgot all about it. The habit was broken. Two months later, I was wondering if a donation was coming up, and I realised I never booked one.&lt;/p&gt;
&lt;p&gt;By that time, the only slots available at the donor centre were &lt;strong&gt;sixteen weeks&lt;/strong&gt; from my previous donation. That&amp;rsquo;s four weeks where I was eligible but unable to donate.&lt;/p&gt;
&lt;h2 id=&#34;putting-the-burden-onto-the-user-also-puts-the-onus-on-them&#34;&gt;Putting the burden onto the user also puts the onus on them&lt;/h2&gt;
&lt;p&gt;By shifting the burden of remembering to book onto me, it also put the &lt;em&gt;responsibility&lt;/em&gt; on me.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m an organised person, but life&amp;rsquo;s full of competing demands. Remembering to book a blood appointment is not at the top of my list.&lt;/p&gt;
&lt;h2 id=&#34;booking-online-had-other-problems&#34;&gt;Booking online had other problems&lt;/h2&gt;
&lt;p&gt;The next time I donated, I tried to form a new habit.&lt;/p&gt;
&lt;p&gt;After donating, I was sitting in the recovery bit, sipping my squash (Aside: tea and coffee went away and still hasn&amp;rsquo;t come back &amp;ldquo;because COVID&amp;rdquo;. Seriously.)&lt;/p&gt;
&lt;p&gt;I thought, ah-ha, what a great time to book my next appointment! So I logged into the website on my phone, no bother.&lt;/p&gt;
&lt;p&gt;But alas, the website didn&amp;rsquo;t realise I&amp;rsquo;d already donated. It wouldn&amp;rsquo;t let me look for another appointment.&lt;/p&gt;
&lt;p&gt;So once again I failed to make an appointment at the desk, walked out, and forgot all about it.&lt;/p&gt;
&lt;p&gt;Once again, I couldn&amp;rsquo;t get an appointment at 12 weeks after my previous donation.&lt;/p&gt;
&lt;h2 id=&#34;sometimes-appointments-arent-created-in-time&#34;&gt;Sometimes appointments aren&amp;rsquo;t created in time&lt;/h2&gt;
&lt;p&gt;The next time - yesterday - I actually set myself an alarm for the next day. I logged in, and was told my blood donor centre was &amp;ldquo;fully booked&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;So I phoned the number, went through the whole security thing, and was told that the diary hadn&amp;rsquo;t been released yet for July (12 weeks away.)&lt;/p&gt;
&lt;p&gt;Oof.&lt;/p&gt;
&lt;h2 id=&#34;how-this-impacts-blood-stocks&#34;&gt;How this impacts blood stocks&lt;/h2&gt;
&lt;p&gt;I used to donate every 12 weeks, pretty much on the dot.&lt;/p&gt;
&lt;p&gt;Now, it seems if I don&amp;rsquo;t book a repeat appointment ASAP, I can&amp;rsquo;t get one at 12 weeks after the last one.&lt;/p&gt;
&lt;p&gt;The change in policy where I can&amp;rsquo;t book at the desk has led to my donation period increasing from 12 to probably 14 weeks.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s extrapolate a bit: let&amp;rsquo;s assume I&amp;rsquo;m not the only one.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s assume that this change of policy added 1 week on average to some chunk of regular donors&#39; period.&lt;/p&gt;
&lt;p&gt;If that could be reversed, Every donor that can be &amp;ldquo;optimised&amp;rdquo; from 13 weeks to  12 weeks equals 8% more blood donated. That&amp;rsquo;s a lot!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s kind of obvious: donate more often, give more blood.&lt;/p&gt;
&lt;p&gt;But perhaps less obvious is the effect of booking &lt;em&gt;user experience&lt;/em&gt; on a donor&amp;rsquo;s average donation frequency.&lt;/p&gt;
&lt;h2 id=&#34;hypothesis-and-what-i-propose&#34;&gt;Hypothesis, and what I propose&lt;/h2&gt;
&lt;p&gt;Hypothesis:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disallowing repeat bookings on the front desk at a donation centre leads to an measurable decrease in donation frequency.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And, secondarily:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The effect is significant enough to outweigh the additional time taken by front desk staff.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Disagree? Great! Let&amp;rsquo;s put our opinions aside and run an A/B test!&lt;/p&gt;
&lt;h2 id=&#34;a-simple-way-to-ab-test-the-hypothesis&#34;&gt;A simple way to A/B test the hypothesis&lt;/h2&gt;
&lt;p&gt;OK, &amp;ldquo;simple&amp;rdquo; insofar as anything is simple inside the NHS.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s an approach:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pick a bunch of donor centres and identify regular donors.&lt;/li&gt;
&lt;li&gt;Take a snapshot of the donation frequency for those donors.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tell half of the donor centres to allow / encourage booking a repeat appointment before donors leave.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;After 12 months, compare the donation frequencies in the A and B groups (doing some stats to adjust for any inherent differences visible in step 2.)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;user-experience-matters&#34;&gt;User experience matters&lt;/h2&gt;
&lt;p&gt;The overall experience at my local donor centre is excellent. This is due mostly to the warm, chatty and efficient staff.&lt;/p&gt;
&lt;p&gt;The user experience of booking an appointment is inconsistent. Sometimes it&amp;rsquo;s perfect, sometimes it&amp;rsquo;s just frustrating.&lt;/p&gt;
&lt;p&gt;That has knock-on effects too: I&amp;rsquo;m less able to recruit new donors as I know they&amp;rsquo;re going to have an awkward time. (Anecdata: two people I nearly recruited dropped off because they couldn&amp;rsquo;t find an appointment close to mine.)&lt;/p&gt;
&lt;p&gt;User experience matters! Reduce friction, make it simple, make it automatic.&lt;/p&gt;
&lt;h2 id=&#34;feedback-welcome&#34;&gt;Feedback welcome&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve made a few assumptions and I&amp;rsquo;m not privy to real data. If you&amp;rsquo;ve got some more insight, I&amp;rsquo;d love to hear from you.&lt;/p&gt;
&lt;p&gt;Also, I have an idea for a microservice to help recruit new donors. If you&amp;rsquo;re interested, let&amp;rsquo;s chat!&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Shutting down keyserver email address monitoring</title>
      <link>https://paul.fawkesley.com/shutting-down-keyserver-email-address-monitoring/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/shutting-down-keyserver-email-address-monitoring/</guid>
      <description>&lt;h2 id=&#34;short-version&#34;&gt;Short version&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/idrysdale&#34;&gt;Ian&lt;/a&gt; and I run two free services to help PGP users:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Expirybot&lt;/strong&gt; — sends emails 3 days before keys expire with simple instructions on how to extend the key.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitor&lt;/strong&gt; — realtime(ish) alerts when a new key is uploaded to the public keyservers with your email address.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Expirybot will continue and thrive!&lt;/p&gt;
&lt;p&gt;Monitor is shutting down. We currently monitor thousands of email addresses, but for lots of reasons it&amp;rsquo;s been difficult and stressful to run and maintain.&lt;/p&gt;
&lt;p&gt;Ian and I are now working full time on Fluidkeys, &lt;a href=&#34;https://www.fluidkeys.com/fluidkeys-v1-preview/&#34;&gt;making PGP simple for engineering teams.&lt;/a&gt; If you&amp;rsquo;d like to keep up with our work on Fluidkeys please either sign up to release announcements at &lt;a href=&#34;https://www.fluidkeys.com&#34;&gt;www.fluidkeys.com&lt;/a&gt; or &lt;a href=&#34;https://eepurl.com/gffcu9&#34;&gt;give us occasional feedback on our Fluidkeys work.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;Paul&lt;/p&gt;
&lt;h2 id=&#34;background-monitoring-the-keyserver-network-for-your-email-address&#34;&gt;Background: Monitoring the keyserver network for your email address&lt;/h2&gt;
&lt;p&gt;This was a side project I set up in 2018 based on feedback from people who had already received an expiry reminder from Expirybot.&lt;/p&gt;
&lt;p&gt;The idea was simple: you sign up your email address, I verify it, then I regularly search my keyserver for your email address. I record the key fingerprints I see each time, and email you if a new one appears.&lt;/p&gt;
&lt;h2 id=&#34;monitor-was-trickier-to-run-than-i-anticipated&#34;&gt;Monitor was trickier to run than I anticipated&lt;/h2&gt;
&lt;p&gt;In the year I&amp;rsquo;ve been running Monitor, it&amp;rsquo;s been quite tricky to keep running and I&amp;rsquo;ve had a number of outages. Some of these were my fault and others were issues with the keyserver network.&lt;/p&gt;
&lt;p&gt;Outages in this service aren&amp;rsquo;t the end of the world: you might get an alert a few days late, but I&amp;rsquo;ve hit increasingly awkward problems which prevent the service working reliably.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re curious, here&amp;rsquo;s a rough idea of some of the problems I&amp;rsquo;ve encountered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;In June 2018 a &lt;a href=&#34;https://bitbucket.org/skskeyserver/sks-keyserver/issues/60/denial-of-service-via-large-uid-packets&#34;&gt;researcher found and accidentally unleashed a denial of service&lt;/a&gt; on a number of keyservers. For many (including mine) this caused gigabytes of DB transaction logs to quickly fill the disk and corrupt SKS&#39; database.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After restoring SKS and improving its transaction log handling, the legacy of the malicious key lived on, causing my whole server to hang for around a minute several times an hour while trying and failing to reconcile with other servers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;These SKS hangs had a knock-on effect to my web app, causing it in turn to hang and return gateway timeout errors.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Several people who signed up have very short email addresses (fair!) which, when searched in SKS, would cause it to hang and timeout.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To try and support short email addresses, I switched from SKS to &lt;a href=&#34;https://hockeypuck.github.io/&#34;&gt;Hockeypuck.&lt;/a&gt; The documentation was lacking but I &lt;em&gt;did&lt;/em&gt; manage to get it syncing with the network (thanks &lt;a href=&#34;https://lists.nongnu.org/archive/html/sks-devel/2018-08/msg00024.html&#34;&gt;Fabian&lt;/a&gt;!) and working with short email addresses.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After a few months, Hockeypuck&amp;rsquo;s postgresql database unfortunatelly filled the disk again, bringing down Monitor with it. It seems I should&amp;rsquo;ve regularly been running VACCUUM&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After that, I gave up, deleted Hockeypuck and disabled Monitor :(&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s weighed on my mind that Monitor doesn&amp;rsquo;t run reliably and it&amp;rsquo;s distracted me from Fluidkeys.&lt;/p&gt;
&lt;h2 id=&#34;monitor-with-fluidkeys&#34;&gt;Monitor with Fluidkeys?&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re interested in monitoring your team&amp;rsquo;s email addresses in the keyservers as part of a Fluidkeys subscription, we&amp;rsquo;d be delighted to help: email &lt;a href=&#34;mailto:hello@fluidkeys.com&#34;&gt;hello@fluidkeys.com&lt;/a&gt; and we&amp;rsquo;ll work out how.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re just interested in what we&amp;rsquo;re doing with Fluidkeys, sign up to our release announcements at &lt;a href=&#34;https://www.fluidkeys.com&#34;&gt;www.fluidkeys.com&lt;/a&gt;. If you&amp;rsquo;d like to be more involved, we&amp;rsquo;d love if you could &lt;a href=&#34;https://eepurl.com/gffcu9&#34;&gt;give us occasional feedback.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;expirybot-will-live-on&#34;&gt;Expirybot will live on&lt;/h2&gt;
&lt;p&gt;Ian and I are going to continue to run and maintain Expirybot. It&amp;rsquo;s simpler than Monitor and it seems to be having a positive impact for lots of people too.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll follow up soon with a post about some nice changes we&amp;rsquo;re making there too.&lt;/p&gt;
&lt;h2 id=&#34;how-ill-handle-your-data&#34;&gt;How I&amp;rsquo;ll handle your data&lt;/h2&gt;
&lt;p&gt;If you signed up to monitor your email address, I&amp;rsquo;ll delete your email addresses from the monitoring service by the end of February 2019. I&amp;rsquo;ll also ensure email addresses are purged from log files and backups.&lt;/p&gt;
&lt;p&gt;If you signed up to monitor your email address &lt;em&gt;and consented for me to contact you for feedback&lt;/em&gt;, I will add your primary email address to a new Mailchimp list called &amp;ldquo;People willing to give feedback on Fluidkeys&amp;rdquo; which only Ian and I can access. I&amp;rsquo;ll send you an email via that list to confirm.&lt;/p&gt;
&lt;p&gt;If you signed up to monitor your email but &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; consent for me to ask you for feedback, I&amp;rsquo;ll simply delete all your monitored email addresses and you won&amp;rsquo;t hear from me again after February.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s &lt;em&gt;really&lt;/em&gt; helpful getting honest critique: if you want to help our mission to simplify strong encryption, &lt;a href=&#34;https://eepurl.com/gffcu9&#34;&gt;please let us occasionally ask you for feedback&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Paul&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 2 July 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-07-02/</link>
      <pubDate>Mon, 02 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-07-02/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.gnu.org/licenses/gpl-faq#DoesUsingTheGPLForAProgramMakeItGNUSoftware&#34;&gt;Frequently Asked Questions about the GNU Licenses&lt;/a&gt; — My favourite line: &lt;em&gt;&amp;ldquo;If you hope some day to look back on your career and feel that it has contributed to the growth of a good and free society, you need to make your software free.&lt;/em&gt;&amp;rdquo;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.troyhunt.com/were-baking-have-i-been-pwned-into-firefox-and-1password/&#34;&gt;We&amp;rsquo;re Baking Have I Been Pwned into Firefox and 1Password&lt;/a&gt; — Lovely to see Troy&amp;rsquo;s useful service reaching more people.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://mobile.nytimes.com/2018/06/23/technology/smart-home-devices-domestic-abuse.html&#34;&gt;Thermostats, Locks and Lights: Digital Tools of Domestic Abuse&lt;/a&gt; — Smart devices are starting to be used against victims of domestic abuse.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://thehustle.co/why-nobody-ever-wins-the-mall-car-giveaway&#34;&gt;Why nobody ever wins the car at the mall&lt;/a&gt; — Eye-opening dig into the personal data abuses of fake competitions. Glad we live in the GDPR-protected EU.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.danslimmon.com/2012/11/02/car-alarms-and-smoke-alarms-the-tradeoff-between-sensitivity-and-specificity/&#34;&gt;Car alarms and smoke alarms: the tradeoff between sensitivity and specificity&lt;/a&gt; — Interesting technical piece about false positives and negaives.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://ifixit.org/blog/10229/macbook-pro-keyboard/&#34;&gt;Apple Engineers Its Own Downfall With the Macbook Pro Keyboard&lt;/a&gt; — I hadn&amp;rsquo;t realised just how bad the manufacturing decisions are — they keyboard is glued to the battery, making it incredibly expensive to replace.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://ifixit.org/blog/9641/hp-elitebook-a-friend-to-the-user/&#34;&gt;HP EliteBook: A Friend to the User&lt;/a&gt; — In contrast, here&amp;rsquo;s a laptop that&amp;rsquo;s rated 10/10 for ease of repair.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.lowtechmagazine.com/2012/12/how-to-make-everything-ourselves-open-modular-hardware.html&#34;&gt;How to Make Everything Ourselves: Open Modular Hardware&lt;/a&gt; — I love the concept of open source, modular building systems.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.planetbiometrics.com/article-details/i/7252/desc/home-office-publishes-biometrics-strategy/&#34;&gt;Home Office publishes biometrics strategy 28 June 2018 20:36 GMT&lt;/a&gt; — &lt;em&gt;&amp;ldquo;Starting with fingerprints, the Home Office Biometrics programme is integrating various databases onto a single platform.&amp;quot;&lt;/em&gt; What we &lt;em&gt;do not want&lt;/em&gt; is a single megadatabase of biometrics, that&amp;rsquo;s terrifying.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://monzo.com/blog/2018/06/28/ticketmaster-breach/&#34;&gt;Protecting customers from the Ticketmaster breach: Monzo&amp;rsquo;s story&lt;/a&gt; This story makes Monzo look extremely look, and Ticketmaster extremely bad.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Smart TVs in the bedoom</title>
      <link>https://paul.fawkesley.com/smart-tvs-in-the-bedroom/</link>
      <pubDate>Mon, 02 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/smart-tvs-in-the-bedroom/</guid>
      <description>&lt;p&gt;&lt;em&gt;Here&amp;rsquo;s a follow-up of why putting camera-enabled smart TVs in the bedroom might be a bad idea&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;At &lt;a href=&#34;https://lpoolmakefest.org/portfolio/ignite/&#34;&gt;Liverpool Makefest&lt;/a&gt; on Saturday I gave a talk about keeping smart homes private. I talked about how we&amp;rsquo;re inviting smart devices into our homes. We&amp;rsquo;re giving them an intimate status, allowing smart TVs with cameras and microphones into our bedrooms.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/tv-built-into-bed.png&#34; alt=&#34;Television built into a bed frame&#34;&gt;&lt;/p&gt;
&lt;p&gt;In a follow up email, someone said they&amp;rsquo;d mentioned the issue of TV being able to access the living room or bedroom, but their friends didn&amp;rsquo;t believe them. So here&amp;rsquo;s a quick explainer on how smart TVs work and how things go wrong.&lt;/p&gt;
&lt;h2 id=&#34;smart-tvs-are-complex-computers&#34;&gt;Smart TVs are complex computers&lt;/h2&gt;
&lt;p&gt;Modern smart TVs are complex computers. Just like your computer or phone, they run a full operating system, often based on Android. We connect them to the internet and install applications like Netflix, iPlayer and Skype.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s great, but the complexity of being a full-blown computer means there are many ways for things to go wrong.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve all been drilled that keeping computers secure starts with regular security updates and being careful with what things we download and open. The same is exactly true for smart devices.&lt;/p&gt;
&lt;h2 id=&#34;manufacturers-dont-keep-devices-updated&#34;&gt;Manufacturers don&amp;rsquo;t keep devices updated&lt;/h2&gt;
&lt;p&gt;The trouble is that manufacturers don&amp;rsquo;t keep making security updates.&lt;/p&gt;
&lt;p&gt;You might expect your TV to last 10 years, but the manufacturer doesn&amp;rsquo;t. They&amp;rsquo;ll release updates for as little time as they can get away with, since it&amp;rsquo;s expensive to maintain &amp;ldquo;obsolete&amp;rdquo; devices. (There &lt;em&gt;are&lt;/em&gt; exceptions, and you should give those companies your money)&lt;/p&gt;
&lt;p&gt;Over time, researchers and hackers find issues in the software running on smart TVs. Sometimes they&amp;rsquo;re in the underlying Android operating system (affecting &lt;em&gt;all&lt;/em&gt; devices) and sometimes they&amp;rsquo;re in the manufacturer-specific code used to customize the TV.&lt;/p&gt;
&lt;p&gt;Occasionally these software bugs are so serious that they allow someone to take control of the TV — just like a computer virus — giving access to the camera, microphone and internet connection.&lt;/p&gt;
&lt;p&gt;This type of serious security bug is precisely why it&amp;rsquo;s important to install security updates — to fix the bug and prevent it from being exploited. When manufacturers stop supporting a device, they&amp;rsquo;re leaving your device vulnerable to the next big software bug.&lt;/p&gt;
&lt;h2 id=&#34;devices-are-often-poorly-designed&#34;&gt;Devices are often poorly designed&lt;/h2&gt;
&lt;p&gt;Another way smart TVs go wrong is when they&amp;rsquo;re just poorly engineered.&lt;/p&gt;
&lt;p&gt;In my talk I referred to a creepy &lt;a href=&#34;https://www.techrepublic.com/article/iot-connected-teddy-bear-leaks-millions-of-kids-conversations-exposed-database-to-blame/&#34;&gt;internet-connected teddy bear that leaked 2.2 million voice recordings&lt;/a&gt; between children and parents. This was due to a string of bewilderingly incompetent technical decisions.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/iot-teddy-bear-cloud-pets.jpg&#34; alt=&#34;CloudPets internet-connected teddy bears&#34;&gt;&lt;/p&gt;
&lt;p&gt;In 2016 &lt;a href=&#34;https://www.bbc.co.uk/news/technology-35642749&#34;&gt;Troy Hunt found a vulnerability in the Nissan LEAF car&lt;/a&gt; which allowed anyone on the internet to take over the air conditioning and heating systems of the vehicle.&lt;/p&gt;
&lt;p&gt;The point of these examples is to highlight that manufacturers are making &lt;em&gt;basic&lt;/em&gt; security mistakes — they simply aren&amp;rsquo;t prioritising security, and aren&amp;rsquo;t protecting your privacy.&lt;/p&gt;
&lt;h2 id=&#34;devices-dont-always-work-as-designed&#34;&gt;Devices don&amp;rsquo;t always work as designed&lt;/h2&gt;
&lt;p&gt;Finally, devices just don&amp;rsquo;t always do what we expect them to do.&lt;/p&gt;
&lt;p&gt;In May this year, a couple received a phone call from a colleague urging them to unplug their Amazon Alexa devices (always-on microphones which respond to voice-commands).&lt;/p&gt;
&lt;p&gt;Somehow, the colleague on the phone had just received a voice recording of the couple&amp;rsquo;s private conversation. It turned out the ever-present microphone &lt;a href=&#34;https://www.simplemost.com/amazons-alexa-accidentally-recorded-this-couples-private-conversation-and-sent-it-to-someone/&#34;&gt;had made a series of misinterpretations&lt;/a&gt; leading to the accidental exposure. According to Amazon:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Echo woke up due to a word in background conversation sounding like &amp;lsquo;Alexa.&amp;rsquo; Then, the subsequent conversation was heard as a &amp;lsquo;send message&amp;rsquo; request,
At which point, Alexa said out loud &amp;lsquo;To whom?&amp;rsquo; At which point, the background conversation was interpreted as a name in the customers contact list. Alexa then asked out loud, &amp;lsquo;[contact name], right?&amp;rsquo; Alexa then interpreted background conversation as &amp;lsquo;right&amp;rsquo;. As unlikely as this string of events is, we are evaluating options to make this case even less likely.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;smart-devices-are-a-perfect-storm&#34;&gt;Smart devices are a perfect storm&lt;/h2&gt;
&lt;p&gt;Smart TVs now have cameras and microphones, and we invite them into our personal spaces.&lt;/p&gt;
&lt;p&gt;But they&amp;rsquo;re just little computers. Computers have bugs, allowing them to be taken over by others.&lt;/p&gt;
&lt;p&gt;Many manufacturers put profit over safety, failing to build devices securely and failing to keep on top of bugs.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a perfect storm.&lt;/p&gt;
&lt;p&gt;Please think carefully whether you want these things in your bedroom.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 25 June 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-06-25/</link>
      <pubDate>Mon, 25 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-06-25/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/&#34;&gt;Face recognition with OpenCV, Python, and deep learning&lt;/a&gt; — It&amp;rsquo;s getting easier and easier.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://torrentfreak.com/youtubes-piracy-filter-blocks-mit-courses-blender-videos-and-more-180618/&#34;&gt;YouTube&amp;rsquo;s Blocks MIT Courses, Blender Videos, and More (Updated)&lt;/a&gt; — What happens when you automate censorship at scale.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.independent.co.uk/news/business/amazon-recognition-shareholders-jeff-bezos-letter-privacy-surveillance-facial-recognition-a8405221.html&#34;&gt;Amazon shareholders want Jeff Bezos to stop selling a controversial facial recognition tool&lt;/a&gt; — Go shareholders.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.bleepingcomputer.com/news/apple/macos-breaks-your-opsec-by-caching-data-from-encrypted-hard-drives/&#34;&gt;macOS Breaks Your OpSec by Caching Data From Encrypted Hard Drives&lt;/a&gt; — This is a horrible blunder, and apparently it&amp;rsquo;s been like this for years.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.npr.org/2018/06/22/605007387/supreme-court-rules-police-need-warrant-to-get-location-information-from-cell-to?t=1529684968994&#34;&gt;In Major Privacy Win, Supreme Court Rules Police Need Warrant To Track Your Cellphone&lt;/a&gt; — In the US: that&amp;rsquo;s right, they didn&amp;rsquo;t need one before&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://pspdfkit.com/blog/2018/how-to-use-slack-and-not-go-crazy/&#34;&gt;How to Use Slack and Not Go Crazy&lt;/a&gt; — These folks have developed some fantastic full-remote working practices.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://techcrunch.com/2018/06/21/twitter-smytes-customers/?guccounter=1&#34;&gt;Twitter ‘smytes’ customers&lt;/a&gt; — Appalling behaviour by Twitter: acquiring a business then shutting it down with zero notice, screwing all the customers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://irc.com/&#34;&gt;We grew up with IRC. Let&amp;rsquo;s take it further.&lt;/a&gt; — Curious, Andrew from London Trust Media Holdings (Private Interenet Access) has acquired another classic internet institution.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://auphonic.com/blog/2018/06/01/codec2-podcast-on-floppy-disk/&#34;&gt;Codec2: a whole Podcast on a Floppy Disk&lt;/a&gt; — Neat, a voice compression codec using the WaveNet neural network.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 18 June 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-06-18/</link>
      <pubDate>Mon, 18 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-06-18/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://shkspr.mobi/blog/2018/06/how-i-became-leonardo-da-vinci-on-the-blockchain/&#34;&gt;How I became Leonardo da Vinci on the Blockchain&lt;/a&gt; — Verisart are presumably better at raising venture capital than understanding the problem of art fraud.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://standardnotes.org/&#34;&gt;Standard Notes — A Simple And Private Notes App&lt;/a&gt; — I really like these folks, their philosophy and their business model. Thanks to &lt;a href=&#34;https://flourish.org&#34;&gt;Francis&lt;/a&gt; for the tip.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://medium.com/@wireapp/why-did-continental-order-its-mobile-workforce-to-stop-using-whatsapp-520981f36fc&#34;&gt;Why did Continental order its mobile workforce to stop using WhatsApp?&lt;/a&gt; — The answer: they don&amp;rsquo;t know how WhatsApp handles your contacts, which contain very personal information.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theverge.com/2018/6/12/17454736/apple-app-store-developers-contacts-list&#34;&gt;Apple quietly banned developers from selling and sharing users’ contacts&lt;/a&gt; — I really hope they&amp;rsquo;re working on some clever API changes too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://bitbucket.org/skskeyserver/sks-keyserver/issues/57/anyone-can-make-any-pgp-key-unimportable&#34;&gt;skskeyserver / sks-keyserver / issues / #57 : Anyone can make any PGP key unimportable — Bitbucket&lt;/a&gt; — A researcher crafted and pushed a seriously broken PGP key. It propagated and is still causing problems for keyservers, including my own. We need to figure out how to make &lt;a href=&#34;https://bitbucket.org/skskeyserver/sks-keyserver/wiki/Home&#34;&gt;sks&lt;/a&gt; more accessible to a wider developer community since it&amp;rsquo;s so widely depended upon. &lt;a href=&#34;https://hockeypuck.github.io/&#34;&gt;Hockeypuck&lt;/a&gt; looks good.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://paleotronic.com/2018/06/15/confessions-of-a-disk-cracker-the-secrets-of-4am/&#34;&gt;Confessions of a Disk Cracker: the secrets of 4am.&lt;/a&gt; — Cool, cracking old software for future preservation. &lt;em&gt;&amp;ldquo;I’ve had several authors find their own software and thank me for preserving it.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.bleepingcomputer.com/news/legal/dark-web-drug-vendor-pleads-guilty-after-feds-traced-his-bitcoin-transactions/&#34;&gt;Dark Web Drug Vendor Pleads Guilty After Feds Traced His Bitcoin Transactions&lt;/a&gt; — I somehow expected drug dealers to be less incompetent than this. Always great reading the official scoop of how folks like this get caught.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://probablydance.com/2018/06/16/fibonacci-hashing-the-optimization-that-the-world-forgot-or-a-better-alternative-to-integer-modulo/&#34;&gt;Fibonacci Hashing: The Optimization that the World Forgot (or: a Better Alternative to Integer Modulo)&lt;/a&gt; — This went a bit over my head, but was awesome nonetheless, especially Vi Hart&amp;rsquo;s explainer video.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 11 June 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-06-11/</link>
      <pubDate>Mon, 11 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-06-11/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://archive.is/pPWAE&#34;&gt;Behind the Messy, Expensive Split Between Facebook and WhatsApp’s Founders&lt;/a&gt; — Forsaking $1.3 billion by resigning from Facebook is what I&amp;rsquo;d call putting your money where your mouth is. Massive kudos to Brian Acton and Jan Koum for their principled resignations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://news.ycombinator.com/item?id=17235832&#34;&gt;Ask HN: Are you working on interesting technical problems?&lt;/a&gt; — Lots and lots of shared experience in this Hacker News thread.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.bbc.co.uk/news/technology-44368813&#34;&gt;Microsoft sinks data centre off Orkney&lt;/a&gt; — Cute, not just good for cooling but also corrosion: &lt;em&gt;&amp;ldquo;Additionally because there are no people, we can take all the oxygen and most of the water vapour out of the atmosphere which reduces corrosion, which is a significant problem in data centres.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 4 June 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-06-04/</link>
      <pubDate>Mon, 04 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-06-04/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.wi-fi.org/discover-wi-fi/wi-fi-easymesh&#34;&gt;Wi-Fi EasyMesh&lt;/a&gt; — Wi-Fi Alliance have released a specification for mesh networks. Mesh networks (where routers bounce traffic around themselves) are interesting because they&amp;rsquo;re tricky to censor and surveil since they can mix up people&amp;rsquo;s traffic and connect people directly to locally hosted services. In theory they can also be more efficient and resilient to failure too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://shkspr.mobi/blog/2018/05/things-for-which-cryptographic-signing-would-be-useful/&#34;&gt;Things For Which Cryptographic Signing Would Be Useful&lt;/a&gt; — You can often replace the word &amp;ldquo;blockchain&amp;rdquo; with &amp;ldquo;cryptography&amp;rdquo; (or even &amp;ldquo;public database&amp;rdquo;). Some nice examples of where old fashioned cryptographic signing would be useful.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.cityam.com/286321/snoopers-charter-puts-uk-firms-track-gdpr-headache-post&#34;&gt;The Snooper’s Charter puts UK firms on track for a GDPR headache post-Brexit&lt;/a&gt; — After Brexit, we&amp;rsquo;ll need to continually convince the EU that the UK is GDPR-compatible. Our privacy-trampling &lt;a href=&#34;https://en.wikipedia.org/wiki/Investigatory_Powers_Act_2016&#34;&gt;Investigatory Powers Act — the Snooper&amp;rsquo;s Charter&lt;/a&gt; — undermines our case, so something will have to give. Lol.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://adguard.com/en/blog/goodbye-amazon/&#34;&gt;Goodbye, Amazon&lt;/a&gt; — Amazon&amp;rsquo;s AppStore censors AdGuard for Android, a system-wide ad-blocker. I hadn&amp;rsquo;t realised Amazon was an advertising company, too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theatlantic.com/technology/archive/2018/05/electric-scooters-are-the-cargo-shorts-of-transportation/561440/?single_page=true&#34;&gt;Unfortunately, the Electric Scooters Are Fantastic&lt;/a&gt; — An electric scooter sceptic is converted after actually trying one. Oh my, I think I&amp;rsquo;m close to buying one.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://trac.torproject.org/projects/tor/wiki/org/meetings/2018Rome/Notes/FusionProject&#34;&gt;Fusion Project overview&lt;/a&gt; — The Tor browser is getting integrated into Firefox&amp;rsquo;s Private Browsing mode (more or less). I guess this will massively increase traffic to the Tor network. Incidentally, some friends and I operate &lt;a href=&#34;https://atlas.torproject.org/#search/165FEA8476A02296DD8C6281CD02AC80319F8ACA&#34;&gt;a tor relay&lt;/a&gt; which we &lt;a href=&#34;https://opencollective.com/trill&#34;&gt;fund through OpenCollective.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.economist.com/technology-quarterly/2018-05-02/justice&#34;&gt;I know what you’ll do next summer&lt;/a&gt; — A detailed Economist special report on the future of technology and law enforcement. The &lt;a href=&#34;http://infographics.economist.com/2018/TQ/Economist_TQ_Justice.pdf&#34;&gt;graphic novel&lt;/a&gt; is well worth a look. I&amp;rsquo;m more sceptical about predictive policing, but a good read nonetheless.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.kialo.com/&#34;&gt;Empowering Reason&lt;/a&gt; — Great concept, an online app designed to facilitate rational debate. I&amp;rsquo;m really happy to see people working on this sort of tool.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 28 May 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-05-28/</link>
      <pubDate>Mon, 28 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-05-28/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.reddit.com/r/tifu/comments/8kvias/tifu_by_getting_google_to_ban_our_entire_company/&#34;&gt;Getting Google to ban our entire company while on the toilet&lt;/a&gt; — If this is true, the activity of &lt;em&gt;one&lt;/em&gt; team member can bring down a whole organisation&amp;rsquo;s G-Suite account. That&amp;rsquo;s the terrifying thing about outsourcing your &amp;hellip; everything.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theatlantic.com/technology/archive/2018/05/charging-electric-scooters-is-a-cutthroat-business/560747/?single_page=true&#34;&gt;Electric Scooter Charger Culture Is Out of Control&lt;/a&gt; — Love the way Bird have gamified finding, charging and returning their rental scooters. Skipping the need for centralised infrastructure is smart.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://play.google.com/store/apps/details?id=co.siempo.phone&#34;&gt;Siempo Beta - The Phone for Humans&lt;/a&gt; — I&amp;rsquo;ve been trying out this custom Android home screen which aims to reduce distractions and simplify the phone. It has definitely reduced my compulsive checking of certain apps, so positive reviews so far.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.pathsensitive.com/2018/02/making-bugs-impossible-illustrating.html?m=1&#34;&gt;My favorite principle for code quality&lt;/a&gt; — I really like how James Koppel thinks so deeply about the design of software.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://ourdataourselves.tacticaltech.org/posts/40-applying-for-a-visa/&#34;&gt;Applying for a Visa&lt;/a&gt; — An eerie view into the unaccountable data-collecting-and-sharing mess that is applying for a foreign visa. If you haven&amp;rsquo;t encountered Tactical Tech before, take a look at their great work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.ccn.com/bitcoin-gold-hit-by-double-spend-attack-exchanges-lose-millions/&#34;&gt;Bitcoin Gold Hit by Double Spend Attack, Exchanges Lose Millions&lt;/a&gt; — This is the theoretical 51% attack put into practice. One organisation was able to get the majority of the mining power, and rewrite history.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.kiro7.com/www.kiro7.com/news/local/woman-says-her-amazon-device-recorded-private-conversation-sent-it-out-to-random-contact/755507974&#34;&gt;Woman says her Amazon device recorded private conversation, sent it out to random contact&lt;/a&gt; — Another great reason to put someone else&amp;rsquo;s internet-connected microphone in your home. You couldn&amp;rsquo;t make this up.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://azeria-labs.com/the-importance-of-deep-work-the-30-hour-method-for-learning-a-new-skill/&#34;&gt;The Importance of Deep Work &amp;amp; The 30-Hour Method for Learning a New Skill&lt;/a&gt; — Important thoughts about &lt;em&gt;how to think&lt;/em&gt;. This is striking in a distraction filled world: &lt;em&gt;&amp;ldquo;The rule of thumb is that it takes approximately 25 minutes of focus without distraction to reach a state of flow.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>How The Light Gets In 2018</title>
      <link>https://paul.fawkesley.com/how-the-light-gets-in-2018/</link>
      <pubDate>Mon, 28 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/how-the-light-gets-in-2018/</guid>
      <description>&lt;p&gt;&lt;em&gt;Notes on philosophy from a field in Hay on Wye&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We went to &lt;a href=&#34;https://howthelightgetsin.org/hay/&#34;&gt;How the Light Gets In&lt;/a&gt;, a lovely philosophy festival that co-locates with the Hay Literary Festival.&lt;/p&gt;
&lt;p&gt;Here are my notes-to-self.&lt;/p&gt;
&lt;h2 id=&#34;friday&#34;&gt;Friday&lt;/h2&gt;
&lt;h3 id=&#34;sarah-corbett-talks-to-jonathon-porritthttpswwwhayfestivalcomp-13719-sarah-corbett-talks-to-jonathon-porrittaspx&#34;&gt;&lt;a href=&#34;https://www.hayfestival.com/p-13719-sarah-corbett-talks-to-jonathon-porritt.aspx&#34;&gt;Sarah Corbett talks to Jonathon Porritt&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Sarah is a scouser from Everton!&lt;/li&gt;
&lt;li&gt;Because injustice makes us angry we direct that at people which is wrong&lt;/li&gt;
&lt;li&gt;Much more effective to treat people as humans and not enemies&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Crafter thought&amp;rdquo; questions&lt;/li&gt;
&lt;li&gt;With us or against us is unhelpful&lt;/li&gt;
&lt;li&gt;Women&amp;rsquo;s March: no call to action so trump had nothing to answer for&lt;/li&gt;
&lt;li&gt;Often protest is transactional: make this, it goes out, done. Better to make long general protest (slow protest)&lt;/li&gt;
&lt;li&gt;Starting with yourself is helpful. Here&amp;rsquo;s how I&amp;rsquo;m working on this change, how are you doing it?&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;m an angry person that knows I need to channel my anger.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;re feeling people that think (feeling leads everything)&lt;/li&gt;
&lt;li&gt;Yellow handwritten envelope very compelling to open!&lt;/li&gt;
&lt;li&gt;Small positive gifts from constituents very powerful to MPs!&lt;/li&gt;
&lt;li&gt;TEDx talk, activism needs introverts&lt;/li&gt;
&lt;li&gt;Politicians worry when theres solidarity from unaffected people, so use a mix&lt;/li&gt;
&lt;li&gt;Craftivism isn&amp;rsquo;t a movement, it&amp;rsquo;s a tool for change&lt;/li&gt;
&lt;li&gt;Audience member in evildoing company: it was much more effective and hearing from quiet, thoughtful, ethical people.&lt;/li&gt;
&lt;li&gt;Keep asking, how can &lt;em&gt;we&lt;/em&gt; make a world that looks like &lt;em&gt;this&lt;/em&gt;, it&amp;rsquo;s much easier for people to visualise a futures rather than look at negatives&lt;/li&gt;
&lt;li&gt;Learning a little bit about the other person and linking it to their circumstances&lt;/li&gt;
&lt;li&gt;Crafts can be very cathartic for people&lt;/li&gt;
&lt;li&gt;Anti war March: ok, that failed, but look at Syria, politicians were massively affected by it afterwards&lt;/li&gt;
&lt;li&gt;Focus on what&amp;rsquo;s realistic, your circle of influence, what you can get changed. Something accountable and specific&lt;/li&gt;
&lt;li&gt;We bought &lt;a href=&#34;https://www.goodreads.com/book/show/34211871-how-to-be-a-craftivist&#34;&gt;the book&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;roving-crowshttprovingcrowscom&#34;&gt;&lt;a href=&#34;http://rovingcrows.com/&#34;&gt;Roving crows&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Were awesome.&lt;/p&gt;
&lt;h3 id=&#34;the-correspondentshttpswwwthecorrespondentscouk&#34;&gt;&lt;a href=&#34;https://www.thecorrespondents.co.uk/&#34;&gt;The Correspondents&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Wow, wow, wow.&lt;/p&gt;
&lt;h2 id=&#34;saturday&#34;&gt;Saturday&lt;/h2&gt;
&lt;h3 id=&#34;capitalism-poverty-and-progresshttpshowthelightgetsinorghayeventscapitalism-poverty-and-progress-2050&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/capitalism-poverty-and-progress-2050&#34;&gt;Capitalism, poverty and progress&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Might unrestricted capitalism work better for the poor than any alternative? Author of Bourgeois Equality Deirdre McCloskey makes the case that from 1840s Manchester to modern India the market thrives when free.&lt;/p&gt;
&lt;h3 id=&#34;the-secrets-of-consciousnesshttpshowthelightgetsinorghayeventsthe-secrets-of-consciousness-2051&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/the-secrets-of-consciousness-2051&#34;&gt;The secrets of consciousness&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Susan Blackmore, Philip Goff, Nicholas Humphrey. Barry C. Smith hosts.&lt;/p&gt;
&lt;p&gt;Consciousness is a deep puzzle. There was hope that neuroscience might find some answers. But we still have no explanation for where brain activity ends and experience begins. Is it a mistake to think we can explain consciousness by examining the brain? Should we look elsewhere to our evolutionary roots perhaps? Or might neuroscience provide answers after all?&lt;/p&gt;
&lt;p&gt;Panpsychist Philip Goff joins Consciousness Regained author Nicholas Humphrey, and psychologist Susan Blackmore to untangle mind and matter.&lt;/p&gt;
&lt;h3 id=&#34;the-accidental-anarchisthttpshowthelightgetsinorghayeventsthe-accidental-anarchist-2062&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/the-accidental-anarchist-2062&#34;&gt;The Accidental anarchist&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Diplomat turned anarchist Carne Ross charts his journey from establishment-insider to anti-elite renegade, asking: could we trade our democracy for life without government?&lt;/p&gt;
&lt;h3 id=&#34;capitalismhttpshowthelightgetsinorghayeventscapitalism-2066&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/capitalism-2066&#34;&gt;Capitalism&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Stephen D. King, Deirdre McCloskey, Guy Standing. Roger Bolton hosts.&lt;/p&gt;
&lt;p&gt;Capitalism has not had a good decade. With inequalities in wealth, lack of growth, and static or falling living standards many are calling for dramatic change. Can radical alternatives avoid the failures that have dogged them in the past? Or is the decline in global poverty and the rapid expansion of China and India evidence that capitalism is the solution not the disease?&lt;/p&gt;
&lt;h3 id=&#34;spiegel-circus&#34;&gt;Spiegel circus&lt;/h3&gt;
&lt;h3 id=&#34;sam-and-the-womp&#34;&gt;Sam and the womp&lt;/h3&gt;
&lt;h2 id=&#34;sunday&#34;&gt;Sunday&lt;/h2&gt;
&lt;h3 id=&#34;the-science-of-psychedelicshttpshowthelightgetsinorghayeventsthe-science-of-psychedelics-2126&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/the-science-of-psychedelics-2126&#34;&gt;The Science of psychedelics&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Is Britain&amp;rsquo;s attitude to drugs harming mental health patients? Imperial College psychiatrist and former government drugs adviser David Nutt argues for an evidence based revolution in drugs policy.&lt;/p&gt;
&lt;h3 id=&#34;a-long-strange-triphttpshowthelightgetsinorghayeventsa-long-strange-trip-2144&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/a-long-strange-trip-2144&#34;&gt;A long strange trip&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Aside from being illegal, LSD has not had a good press - associated with bad trips and psychological breakdown. Now there is a new craze for LSD amongst Silicon Valley whizz kids and management gurus, with scientists claiming anti-depressive benefits. Might we have been too quick to ban psychedelics and could they be a means to deepen experience and enhance our lives? Or is this all dangerous hippy nonsense?&lt;/p&gt;
&lt;p&gt;Pharmacologist and former Home Office drugs advisor David Nutt, drugs reformist and director of the Beckley Foundation Amanda Feilding and founder of the Psychedelic Society Stephen Reid want to change how we see LSD.&lt;/p&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interesting analogy between psychadelics and enlightenmennt through meditation — one&amp;rsquo;s like taking a helicopter to the top of Everest, as opposed to climbing. Is the view the same?&lt;/li&gt;
&lt;li&gt;Stephen Reid also co-founded UK Uncut&lt;/li&gt;
&lt;li&gt;The psychadelic society runs &lt;a href=&#34;https://psychedelicsociety.org.uk/&#34;&gt;experience retreats&lt;/a&gt; to Holland for people try mushrooms in a safe and productive environment.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;making-sense-of-realityhttpshowthelightgetsinorghayeventsmaking-sense-of-reality-2161&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/making-sense-of-reality-2161&#34;&gt;Making sense of reality&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Andy Clark, Rufus Duits, Joanna Kavenna, John McWhorter. James Ladyman hosts.&lt;/p&gt;
&lt;p&gt;We think we see the world the way it is. But how we think changes what we see, and more radically every organism sees the world in its own unique way. Is this because perception does not simply reflect reality but plays a part in its creation? But if so what is reality and what are the limits on how it can be perceived?&lt;/p&gt;
&lt;p&gt;A Field Guide to Reality author Joanna Kavenna, metaphysician and cognitive scientist Andy Clark, author of The Language Hoax John McWhorter, and philosopher Rufus Duits push the limits of perception.&lt;/p&gt;
&lt;h3 id=&#34;money-for-nothinghttpshowthelightgetsinorghayeventsmoney-for-nothing-2164&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/money-for-nothing-2164&#34;&gt;Money for nothing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Deirdre McCloskey, Guy Standing.&lt;/p&gt;
&lt;p&gt;Head to Head: Universal Basic Income?&lt;/p&gt;
&lt;p&gt;Once dismissed as a utopian fantasy, the idea of a basic universal income has now hit the mainstream. With new technologies, support from across the political spectrum, and advocates from Hawking to Zuckerberg, it&amp;rsquo;s no surprise people have begun to take the prospect seriously.&lt;/p&gt;
&lt;p&gt;For tonight&amp;rsquo;s head-to-head we ask &amp;ldquo;Universal Basic Income: is it time?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;In this combative one-on-one debate, author of Basic Income: And How We Can Make It Happen Guy standing goes head to head with leading libertarian economist Deirdre Mcloskey.&lt;/p&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Look up &lt;a href=&#34;https://basicincome.org/&#34;&gt;Basic Income Earth Network (BIEN)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;monster-ceilidh-band&#34;&gt;Monster ceilidh band&lt;/h3&gt;
&lt;h2 id=&#34;monday&#34;&gt;Monday&lt;/h2&gt;
&lt;h3 id=&#34;whats-wrong-with-the-lefthttpshowthelightgetsinorghayeventswhats-wrong-with-the-left-2201&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/whats-wrong-with-the-left-2201&#34;&gt;What&amp;rsquo;s wrong with the left?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Peter Tatchell&lt;/p&gt;
&lt;p&gt;Has the left lost its way? Human rights activist Peter Tatchell argues for a return to human rights and social justice to unite the left and reclaim power.&lt;/p&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Left needs to be constructive, optimistic and positive&lt;/li&gt;
&lt;li&gt;Simply opposing the deficit is not enough, we need a practical suggestion&lt;/li&gt;
&lt;li&gt;Must create a left alliance, break mentality &amp;ldquo;we are the only progressives&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Proportional representation.&lt;/li&gt;
&lt;li&gt;In UK no government has had majority since 1931&lt;/li&gt;
&lt;li&gt;Progressive alliances, lib dems step down for greens and vice versa&lt;/li&gt;
&lt;li&gt;Labour leadership believes they are the only progressive party&lt;/li&gt;
&lt;li&gt;Labour fought to oust Green and lib dems, stupid&lt;/li&gt;
&lt;li&gt;Greens stood down in 30 seats to help labour win those seats (labour did nothing in return)&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s vital to defend internal party dissent and debate&lt;/li&gt;
&lt;li&gt;Being forgiving, recognising people make mistakes&lt;/li&gt;
&lt;li&gt;Left needs an actual agenda, not just &amp;ldquo;more public spending&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Key issue whole left is dodging is economic democracy. Today we basically live in an economic dictatorship (shareholders, directors have all the votes). Example, 1/3rd employee and consumer directors on all boards&lt;/li&gt;
&lt;li&gt;Pension funds should be directed by employee owned trusts&lt;/li&gt;
&lt;li&gt;Be politically and morally consistent - left always defend free speech for the left&amp;hellip; but not the right!!&lt;/li&gt;
&lt;li&gt;Left needs to challenge all tyrannies, not just some&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;the-darkest-dictator-orwell-vs-huxleyhttpshowthelightgetsinorghayeventsthe-darkest-dictator-orwell-vs-huxley-2205&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/the-darkest-dictator-orwell-vs-huxley-2205&#34;&gt;The Darkest Dictator: Orwell vs Huxley&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Jon Barnes, Robert Colls, &lt;a href=&#34;http://www.janneteller.dk/?English&#34;&gt;Janne Teller&lt;/a&gt;. Shahidha Bari hosts.&lt;/p&gt;
&lt;p&gt;Orwell&amp;rsquo;s 1984 offered a terrifying vision of totalitarian rule. But Huxley, in a letter to Orwell about Brave New World, claimed the future of society isn&amp;rsquo;t &amp;ldquo;flogging people into obedience&amp;rdquo; but making them &amp;ldquo;love their servitude&amp;rdquo;. Are we most at risk of dictatorship when we are most content? Or are the real dangers always force and oppression?&lt;/p&gt;
&lt;p&gt;Award winning novelist Janne Teller, George Orwell: English Rebel author Robert Colls and art historian Julian Stallabrass pitch the dangers of complacency against those of oppression.&lt;/p&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read Jon&amp;rsquo;s book: &lt;a href=&#34;https://www.goodreads.com/book/show/34053661-democracy-squared&#34;&gt;Democracy Squared: A Digital Revolution That&amp;rsquo;s About to Democratise Democracy &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;There&amp;rsquo;s no-one to march against when it&amp;rsquo;s the whole system&lt;/li&gt;
&lt;li&gt;Janne Teller campaigns against mass surveillance&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;love-machineshttpshowthelightgetsinorghayeventslove-machines-2220&#34;&gt;&lt;a href=&#34;https://howthelightgetsin.org/hay/events/love-machines-2220&#34;&gt;Love Machines&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://www.gold.ac.uk/computing/staff/k-devlin/&#34;&gt;Kate Devlin&lt;/a&gt;, &lt;a href=&#34;https://www.brookemagnanti.com/&#34;&gt;Brooke Magnanti (formerly Bell de Jour)&lt;/a&gt;, &lt;a href=&#34;https://people.uwe.ac.uk/Person/AlanWinfield&#34;&gt;Alan Winfield&lt;/a&gt;. Shahidha Bari hosts.&lt;/p&gt;
&lt;p&gt;Virtual Reality pornography is already with us, along with predictions that sex robots will be commonplace by 2025. Many believe this threatens to corrupt love and undermine relationships, yet some think it liberation&amp;rsquo;s next step. Should we endorse a future where sexual desires can be satisfied by machines? Or is this a dangerous dream that could radically alter the fabric of society?&lt;/p&gt;
&lt;p&gt;Computer scientist and author of Love and Sex with Robots Kate Devlin and robot ethicist Alan Winfield explore love, sex, and robots.&lt;/p&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alan: Robots shouldn&amp;rsquo;t look or act like robots because it&amp;rsquo;s deceptive&lt;/li&gt;
&lt;li&gt;Alan: Robots should not have rights — look up &lt;a href=&#34;https://twitter.com/David_Gunkel&#34;&gt;David Gunkell&lt;/a&gt; for more discuss on on this&lt;/li&gt;
&lt;li&gt;Kate Devlin is awesome! She runs &lt;a href=&#34;http://goldsmiths.tech/sex&#34;&gt;sex hack days!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Media portrayal of sex robots is always female and humanoid — no reason they should be humanoid, why not a sex sleeping bag?&lt;/li&gt;
&lt;li&gt;Brooke Magnanti (belle du jour) was refreshlingly straightforward!&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 21 May 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-05-21/</link>
      <pubDate>Mon, 21 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-05-21/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://tp69.wordpress.com/2018/04/17/completely-silent-computer/&#34;&gt;Completely Silent Computer&lt;/a&gt; — This gave me a pang of nostalgia, remembering my teen years building computers for friends and family. I&amp;rsquo;m seriously tempted to build a fully silent machine, the holy grail I never managed to achieve.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.vitavonni.de/blog/201503/2015031201-the-sad-state-of-sysadmin-in-the-age-of-containers.html&#34;&gt;The sad state of sysadmin in the age of containers&lt;/a&gt; — Interesting from a security point of view — the fashion of installing software through &amp;ldquo;convenient&amp;rdquo; pre-built binary blobs. I wonder how many software images already contain backdoors?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://flopstarter.com/&#34;&gt;Flopstarter&lt;/a&gt; — A platform for bad ideas. Amazing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/nestsupport/status/996955985343270913&#34;&gt;&amp;quot;&amp;hellip; customers who are unable to arm/disarm or lock/unlock via the Nest app&amp;quot;&lt;/a&gt; — The real problem is centralisation — thermostats and doors locks should work even when Nest&amp;rsquo;s infrastructure goes down, or the company goes bust or &lt;a href=&#34;https://www.theguardian.com/technology/2016/apr/05/revolv-devices-bricked-google-nest-smart-home&#34;&gt;abandons the product&lt;/a&gt;. My own front door lock is &lt;a href=&#34;https://www.github.com/fawkesley/doorbot&#34;&gt;open source&lt;/a&gt; and runs on a tiny computer &lt;em&gt;in my home&lt;/em&gt;. If I can do it, a megacorp like Nest can too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://efail.de/&#34;&gt;EFAIL - vulnerability in email clients using PGP and S/MIME&lt;/a&gt; — Researchers found a crypto-fail in the way some email clients handle encrypted HTML emails. They put out a &lt;a href=&#34;https://twitter.com/seecurity/status/995906576170053633&#34;&gt;mysterious tweet&lt;/a&gt; but bizarrely withheld the actual vulnerability, making it impossible to know what to advise. The &lt;a href=&#34;https://www.eff.org/deeplinks/2018/05/attention-pgp-users-new-vulnerabilities-require-you-take-action-now&#34;&gt;EFF jumped in with unhelpful advice&lt;/a&gt;, and some sort of holy war broke out. It was a total mess.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.robertxiao.ca/hacking/locationsmart/&#34;&gt;LocationSmart API Vulnerability&lt;/a&gt; — If you had real-time access to the location of every cellphone in the US, you&amp;rsquo;d protect that information really carefully, right?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=C_W-VkQ4oSk&#34;&gt;&amp;lsquo;Huggybug Your Family Today&amp;rsquo;: Don&amp;rsquo;t play around with children&amp;rsquo;s online safety&lt;/a&gt; — Brilliant spoof from Consumers International on the reality of internet-connected childrens&#39; toys.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 14 May 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-05-14/</link>
      <pubDate>Mon, 14 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-05-14/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://nickjanetakis.com/blog/a-recycled-ip-address-caused-me-to-pirate-390000-books-by-accident&#34;&gt;A Recycled IP Address Caused Me to Pirate 390,000 Books by Accident&lt;/a&gt; — Don&amp;rsquo;t leave old subdomain A records kicking around, lest your IP gets recycled.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theverge.com/2018/5/8/17332070/google-assistant-makes-phone-call-demo-duplex-io-2018&#34;&gt;Google just gave a stunning demo of Assistant making an actual phone call&lt;/a&gt; — Impressive tech, &lt;em&gt;awful&lt;/em&gt; use case to choose for a demo. The fake &amp;ldquo;umm&amp;rdquo; and other human-like tricks just feel deceptive and dishonest to me.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://foodtank.com/news/2017/06/seaweed-reduce-cow-methane-emission/&#34;&gt;Study: Seaweed in Cow Feed Reduces Methane Emissions Almost Entirely&lt;/a&gt; — Exciting, seaweed that inhibits cows from producing methane. Until such time that we stop eating such massive amounts of beef, perhaps this could limit the climate problem that is cow burps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://mobile.nytimes.com/2018/05/10/technology/alexa-siri-hidden-command-audio-attacks.html&#34;&gt;Alexa and Siri Can Hear This Hidden Command. You Can’t.&lt;/a&gt; — Now your TV, radio, and hi-fi can secretly control your home.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://m.calcalistech.com/article.aspx?guid=3737880&#34;&gt;The Case for Electric Scooters&lt;/a&gt; — There are so many positives for electric scooters as urban transport, I&amp;rsquo;m really excited about these. Right now they&amp;rsquo;re seen as childish but I suspect that won&amp;rsquo;t last.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://arstechnica.com/tech-policy/2018/05/senator-furious-at-polices-easy-ability-to-get-real-time-mobile-location-data/&#34;&gt;How a “location API” allows cops to figure out where we all are in real-time&lt;/a&gt; — A loophole to avoid the inconvience of asking a judge for a warrant. Once again, if we collect intimadate date about people, it&amp;rsquo;s only a matter of time before it gets misused.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 7 May 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-05-07/</link>
      <pubDate>Mon, 07 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-05-07/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://signal.org/blog/looking-back-on-the-front/&#34;&gt;Signal &amp;raquo; Blog &amp;raquo; Amazon threatens to suspend Signal&amp;rsquo;s AWS account over censorship circumvention&lt;/a&gt; — Two weeks ago &lt;a href=&#34;https://www.paulfurley.com/interesting-reads-2018-04-23/&#34;&gt;I wrote about&lt;/a&gt; Google blocking domain fronting, a censorship circumvention technique. Now Amazon has done the same. This is big news in the internet freedom community who relied on this to operate in oppressive countries.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/97412.On_the_Shortness_of_Life?from_search=true&#34;&gt;On the Shortness of Life&lt;/a&gt; — I&amp;rsquo;ve found a lot of wisdom recently from Seneca, a Roman stoic. Among many other things he talks about materialism, greed, inequality and the fallacy of seeking happiness through possessions. It&amp;rsquo;s astonishing reading a 2000 year old text and thinking it could have been written yesterday.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theguardian.com/money/2018/may/04/i-had-to-guard-an-empty-room-the-rise-of-the-pointless-job&#34;&gt;‘I had to guard an empty room’: the rise of the pointless job&lt;/a&gt; — David Graeber elaborates on categories of &amp;lsquo;bullshit job&amp;rsquo;, those which the people doing them think might as well not exist. There&amp;rsquo;s a hypocrisy in this — our society is so rich it can pay people to waste time, but it can&amp;rsquo;t (yet) accept the idea of a basic income, and people working fewer hours.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theguardian.com/uk-news/2018/may/05/cambridge-analytica-uk-regulator-release-data-us-voter-david-carroll&#34;&gt;UK regulator orders Cambridge Analytica to release data on US voter&lt;/a&gt; — Quite a big deal — the UK ICO is forcing Cambridge Analytica to uphold a US citizen&amp;rsquo;s request for data held about him.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://m.scmp.com/news/china/society/article/2144690/chinese-debtors-shamed-broadcast-names-and-faces-giant-screens&#34;&gt;Chinese debtors shamed with broadcast of names and faces on giant screens on May 1 holiday&lt;/a&gt; — Embracing capitalism.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://techcrunch.com/2018/05/05/unroll-me-to-close-to-eu-users-saying-it-cant-comply-with-gdpr/&#34;&gt;Unroll.me to close to EU users saying it can’t comply with GDPR&lt;/a&gt; — Good riddance, I hope GDPR kills off more deceptive businesses. For background, unroll.me accesses your whole email inbox to help you mass unsubscribe from newsletters. &lt;a href=&#34;https://www.nytimes.com/2017/04/24/technology/personal-data-firm-slice-unroll-me-backlash-uber.html&#34;&gt;Last year&lt;/a&gt; it came out that they were selling people&amp;rsquo;s Lyft receipts to Uber, causing outrage as people hadn&amp;rsquo;t realised that&amp;rsquo;s what they&amp;rsquo;d &amp;ldquo;agreed&amp;rdquo; to.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 30 April 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-04-30/</link>
      <pubDate>Mon, 30 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-04-30/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://theweek.com/articles/761124/how-vulture-capitalists-ate-toys-r&#34;&gt;How vulture capitalists ate Toys &amp;lsquo;R&amp;rsquo; Us&lt;/a&gt; — Devastating. The financial trickery that bankrupted Toys &amp;lsquo;R&amp;rsquo; Us while enriching the buyers with $200 million in fees.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://news.developer.nvidia.com/new-ai-imaging-technique-reconstructs-photos-with-realistic-results/&#34;&gt;New AI Imaging Technique Reconstructs Photos with Realistic Results&lt;/a&gt; — Incredible, it&amp;rsquo;s unintuitive to me how these models can &amp;ldquo;invent&amp;rdquo; missing information, but of course they&amp;rsquo;ve seen a lot of similar images before.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.vox.com/science-and-health/2018/4/20/17109764/deepfake-ai-false-memory-psychology&#34;&gt;We’re underestimating the mind-warping potential of fake video&lt;/a&gt; — Fake news will be supercharged by fake video. How are we going to cope with fake &lt;em&gt;history&lt;/em&gt;?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/ai-creates-fake-obama&#34;&gt;AI Creates Fake Obama&lt;/a&gt; — Linked from the previous fake video article, examples of fake video of Obama generated from real speeches.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://bcarrigan.com/2018/04/20/wunderscan/&#34;&gt;Wunderscan&lt;/a&gt; — Cute, salvaging a laser barcode scanner to create a home shopping list gadget.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.bloomberg.com/news/articles/2018-04-23/electric-buses-are-hurting-the-oil-industry&#34;&gt;Electric Buses Are Hurting the Oil Industry&lt;/a&gt; — Only 8 years ago electric buses are being laughed at, now you can see their effect in oil sales data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.fastcompany.com/40560810/the-revolutionary-giant-ocean-cleanup-machine-is-about-to-set-sail&#34;&gt;The Revolutionary Giant Ocean Cleanup Machine Is About To Set Sail&lt;/a&gt; — &amp;ldquo;Revolutionary&amp;rdquo; (and necessary) would be to stop creating disposable plastics, but nice effort to clean up what&amp;rsquo;s already been dumped in the sea.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.cbc.ca/news/technology/citizen-lab-netsweeper-internet-filtering-tech-censorship-1.4631243&#34;&gt;To censor the internet, 10 countries use Canadian filtering technology, researchers say&lt;/a&gt; — If you&amp;rsquo;re working on surveillance and censorship technology, think hard about its &amp;ldquo;dual use&amp;rdquo; against citizens of oppressive regimes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://matrix.org/blog/2018/04/26/matrix-and-riot-confirmed-as-the-basis-for-frances-secure-instant-messenger-app/&#34;&gt;Matrix and Riot confirmed as the basis for France’s Secure Instant Messenger app&lt;/a&gt; — Superb to see a Government adopting a (good) open source solution for their internal end-to-end encrypted messenger.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.wired.com/2016/06/demonically-clever-backdoor-hides-inside-computer-chip/&#34;&gt;This ‘Demonically Clever’ Backdoor Hides In a Tiny Slice of a Computer Chip&lt;/a&gt; — Terrifying, a single tweak to a processor&amp;rsquo;s etching mask can insert a remotely exploitable backdoor.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 23 April 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-04-23/</link>
      <pubDate>Mon, 23 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-04-23/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.independent.co.uk/news/uk/home-news/russian-hackers-target-millions-devices-cyber-attacks-us-uk-intelligence-warn-a8307696.html&#34;&gt;Russian hackers targeting millions of devices around the world, US and UK warn&lt;/a&gt; — Unsurprising, but it&amp;rsquo;s unusual to hear this sort of statement from the National Cyber Security Centre (NCSC).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://astralship.org/index.html&#34;&gt;astralship.org&lt;/a&gt; — Intriguing community work space in a converted chapel in beautiful north Wales.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.sec.gov/Archives/edgar/data/1018724/000119312518121161/d456916dex991.htm&#34;&gt;EX-99.1&lt;/a&gt; — Jess Bezos&#39; annual shareholder letter. I admire the obsessive amount of thought that&amp;rsquo;s gone into cultivating a culture of high standards, which is the topic of much of this letter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://wwwwwwwwwwwwwwwwwwwwww.bitnik.org/r/&#34;&gt;Random Darknet Shopper (2014)&lt;/a&gt; — Amazing art project, a robot which bought a random item from the &amp;ldquo;Darknet&amp;rdquo; each week.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.bloomberg.com/features/2018-palantir-peter-thiel/&#34;&gt;Palantir Knows Everything About You&lt;/a&gt; — Palantir &lt;em&gt;&amp;ldquo;is using War on Terror tools to track American citizens&amp;rdquo;&lt;/em&gt;. The company also builds &lt;a href=&#34;https://www.economist.com/news/briefing/21582042-it-getting-easier-foresee-wrongdoing-and-spot-likely-wrongdoers-dont-even-think-about-it&#34;&gt;&amp;ldquo;predictive policing&amp;rdquo;&lt;/a&gt;, unaccountable algorithms which reinforce the biases of the data that trained them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://palant.de/2018/04/18/the-ticking-time-bomb-fake-ad-blockers-in-chrome-web-store&#34;&gt;The ticking time bomb: Fake ad blockers in Chrome Web Store&lt;/a&gt; — Malicious people fork genuine ad-blockers, wait till a large number of people install them, then update them with hidden malware.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://arstechnica.com/information-technology/2018/04/google-disables-domain-fronting-capability-used-to-evade-censors/&#34;&gt;Google disables “domain fronting” capability used to evade censors&lt;/a&gt; — Domain fronting allows an app to obscure the true origin of a web request by passing a different TLS SNI hostname than the inner HTTP Host header. It&amp;rsquo;s an important technique for bypassing censorship systems, and while it wasn&amp;rsquo;t a deliberate feature, it&amp;rsquo;s sad that Google has broken it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://techcrunch.com/2018/04/20/just-say-no/&#34;&gt;Facebook starts its facial recognition push to Europeans&lt;/a&gt; — Quick! GDPR isn&amp;rsquo;t for another month, so let&amp;rsquo;s sneak in some auto-opt-in creepy facial recognition settings while we&amp;rsquo;ve got the chance.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.schneier.com/blog/archives/2018/04/securing_electi_1.html&#34;&gt;Securing Elections — Schneier on Security&lt;/a&gt; — Oh my, electronic voting is completely broken.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.telegraph.co.uk/science/2016/06/03/one-in-three-heart-surgeons-refuse-difficult-operations-to-avoid/&#34;&gt;One in three heart surgeons refuse difficult operations to avoid poor mortality ratings, survey shows &lt;/a&gt; — Transparency isn&amp;rsquo;t always good. I wonder if this is a sample size issue, if the ratings were aggregated across a hospital, would this still happen?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 16 April 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-04-16/</link>
      <pubDate>Mon, 16 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-04-16/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://worldaftercapital.gitbooks.io/worldaftercapital/content/&#34;&gt;World After Capital&lt;/a&gt; — Fascinating glimpse of the future. I need to get past the introduction&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://gettys.wordpress.com/2018/04/09/mythology-about-security/&#34;&gt;Mythology about security…&lt;/a&gt; — Debunking the myth that early Internet pioneers didn&amp;rsquo;t consider security.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.martynemko.com/articles/do-what-you-love-and-starve_id1380&#34;&gt;Do What You Love and Starve?&lt;/a&gt; — Very desirable jobs tend to be poorly paid due to people willing to do them for cheap or free.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.ncsc.gov.uk/articles/smart-security-behind-gb-smart-metering-system&#34;&gt;The smart security behind the GB Smart Metering System&lt;/a&gt; — Excellent semi-technical read from GCHQ about the crypto design behind the new smart meters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://krebsonsecurity.com/2018/04/dont-give-away-historic-details-about-yourself/&#34;&gt;Don’t Give Away Historic Details About Yourself&lt;/a&gt; — Seemingly harmless quizzes find out the name of your first pet, street, whatever, and use them to defeat those silly security questions some sites still use.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.paulfurley.com/google-analytics-do-not-track/&#34;&gt;Google Analytics with Do Not Track&lt;/a&gt; — (I wrote) how to disable Google Analytics (and others) for people using Do Not Track.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theguardian.com/environment/2018/apr/12/worlds-first-electrified-road-for-charging-vehicles-opens-in-sweden&#34;&gt;World&amp;rsquo;s first electrified road for charging vehicles opens in Sweden&lt;/a&gt; — I love that Sweden is just getting on with it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.coops.tech/&#34;&gt;Cooperative Technologists&lt;/a&gt; — I heard about this collective (?) of tech co-operatives at the enlightening &lt;a href=&#34;https://liverpoolanarchistbookfair.wordpress.com/&#34;&gt;Liverpool Anarchist Book Fair.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://dcgross.com/decide-what-to-work-on/&#34;&gt;How To Decide What To Work On&lt;/a&gt; — Some good thoughts about building products.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.bbc.co.uk/news/world-asia-china-43751276&#34;&gt;Chinese man caught by facial recognition at pop concert&lt;/a&gt; — Once you wire up all those CCTV cameras to facial recognition, you&amp;rsquo;ve got the ultimate tool for population control.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.amnesty.org/en/latest/news/2018/04/russia-move-to-block-telegram-the-latest-blow-in-government-assault-on-freedom-of-expression-online/&#34;&gt;Russia: Move to block Telegram the latest blow in government assault on freedom of expression online&lt;/a&gt; — Russia&amp;rsquo;s working hard to prevent their population avoiding surveillance.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://spectrum.ieee.org/view-from-the-valley/consumer-electronics/gadgets/beyond-the-super-bowl-a-sleeping-alexa-can-listen-for-more-than-just-her-name&#34;&gt;A Sleeping Alexa Can Listen for More Than Just Her Name&lt;/a&gt; — What else might Alexa wake up to? Would we ever know? I&amp;rsquo;m steering clear.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://nymag.com/selectall/2018/04/an-apology-for-the-internet-from-the-people-who-built-it.html&#34;&gt;The Internet Apologizes …&lt;/a&gt; — Inteview snippets with mostly Silicon Valley product people plus Richard Stallman.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Google Analytics with Do Not Track</title>
      <link>https://paul.fawkesley.com/google-analytics-do-not-track/</link>
      <pubDate>Wed, 11 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/google-analytics-do-not-track/</guid>
      <description>&lt;p&gt;&lt;em&gt;Respect your users&#39; choice for privacy — disable Google Analytics for people using Do Not Track.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://allaboutdnt.com/&#34;&gt;Do Not Track&lt;/a&gt; is an HTTP header which indicates a person&amp;rsquo;s preference to opt out of tracking. Most browsers require the person to explicitly turn on this setting. You can interpret it as a clear request to avoid tracking.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s simple to respect your visitors&#39; preference for privacy. Just put any analytics tracking code inside this &lt;code&gt;if&lt;/code&gt; statement:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/fawkesley/bb900465c21b8570d8763af9a07fcfc7.js&#34;&gt;&lt;/script&gt;
&lt;p&gt;This way, the analytics script won&amp;rsquo;t even be downloaded from Google&amp;rsquo;s servers. This improves your users&#39; privacy and slightly speeds up the page load.&lt;/p&gt;
&lt;p&gt;Do it now!&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Interesting reads, 9 April 2018</title>
      <link>https://paul.fawkesley.com/interesting-reads/2018-04-09/</link>
      <pubDate>Mon, 09 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/interesting-reads/2018-04-09/</guid>
      <description>&lt;p&gt;&lt;em&gt;Interesting things I read on the Internet this week&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.cnet.com/news/spacex-cant-broadcast-earth-images-because-of-a-murky-license/&#34;&gt;SpaceX can&amp;rsquo;t broadcast Earth images because of a murky license&lt;/a&gt; — Apparently it requires a &amp;ldquo;commercial remote sensing licence&amp;rdquo; to transmit video from space back to Earth.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://mailinator.blogspot.in/2018/04/mailinator-launches-disposable-sms.html?m=1&#34;&gt;Mailinator launches disposable SMS&lt;/a&gt; — Excellent development, especially as the number of things needlessly asking for my phone number seems to be increasing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://mobile.nytimes.com/2018/04/07/technology/india-id-aadhaar.html&#34;&gt;‘Big Brother’ in India Requires Fingerprint Scans for Food, Phones and Finances&lt;/a&gt; — I feel uncomfortable about the scale of this centralised database.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.forbes.com/sites/michellefabio/2018/04/06/department-of-homeland-security-compiling-database-of-journalists-and-media-influencers/#77e18fc86121&#34;&gt;Department Of Homeland Security Compiling Database Of Journalists And &amp;lsquo;Media Influencers&amp;rsquo;&lt;/a&gt; — I don&amp;rsquo;t know what to think about this, but it doesn&amp;rsquo;t feel good.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://jameshfisher.com/2018/04/07/the-dots-do-matter-how-to-scam-a-gmail-user&#34;&gt;The dots do matter: how to scam a Gmail user&lt;/a&gt; — Normalising Gmail addresses is a PITA.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>A personal retrospective</title>
      <link>https://paul.fawkesley.com/personal-retrospective-2018/</link>
      <pubDate>Mon, 05 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/personal-retrospective-2018/</guid>
      <description>&lt;p&gt;&lt;em&gt;I thought carefully about the best and worst bits of my previous jobs to work out what I really love doing.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/personal-retrospective-2018.jpg&#34; alt=&#34;Post-it notes clustered around a statement &amp;lsquo;I love listening to people and deeply understanding their experience&amp;rsquo;&#34;&gt;&lt;/p&gt;
&lt;p&gt;I find retrospectives really helpful to understand what teams are finding good and bad about their work.&lt;/p&gt;
&lt;p&gt;Recently I indulged in a retrospective of my own, thinking about the best and worst bits from all my previous jobs as a way of understanding what I actually enjoy doing.&lt;/p&gt;
&lt;p&gt;Even though nothing was really a surprise to me, I found it incredibly insightful and bizarrely I feel like I understand myself a little better.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s personal, but I&amp;rsquo;ve found it cathartic writing this up. It&amp;rsquo;s meant for my future self really, but if you&amp;rsquo;re interested, then please do go ahead and have a read. And perhaps it&amp;rsquo;ll help you to do the same thing and understand yourself a little better too.&lt;/p&gt;
&lt;h2 id=&#34;i-used-the-trusty-post-it-note-technique&#34;&gt;I used the trusty post-it note technique&lt;/h2&gt;
&lt;p&gt;The exercise was very simple - this is how to do it yourself:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make two areas on the floor called &amp;ldquo;best bits&amp;rdquo; and &amp;ldquo;worst bits&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Cast your mind back through previous jobs and write post-it notes in each section, with a 🙂  or a 🙁  in the corner&lt;/li&gt;
&lt;li&gt;Once you&amp;rsquo;re done, look at all the post-its and try to write &amp;ldquo;I love …&amp;rdquo; statements which represent a group&lt;/li&gt;
&lt;li&gt;Move the post-its around their statement, and repeat until all post-its are captured by a statement&lt;/li&gt;
&lt;li&gt;Sort the statements in order of how many post-it notes they&amp;rsquo;re surrounded by - these are probably the most significant&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&amp;rsquo;s what I discovered.&lt;/p&gt;
&lt;h2 id=&#34;i-love-listening-to-people-and-deeply-understanding-their-experience&#34;&gt;I love listening to people and deeply understanding their experience&lt;/h2&gt;
&lt;p&gt;This is my product side shining through. I&amp;rsquo;m happiest when I can listen directly to people and understand the nuance of their situation and problems.&lt;/p&gt;
&lt;p&gt;One of the things I find baffling about Waterfall is the dreaded &amp;lsquo;requirements specification&amp;rsquo;. Typically there&amp;rsquo;s the &amp;lsquo;business analyst&amp;rsquo; - the person who listens to the user - and the &amp;lsquo;developer&amp;rsquo; - the person tasked with implementing the requirements written down by the business analyst.&lt;/p&gt;
&lt;p&gt;Why would you keep developers away from users? People making products need to understand the people they&amp;rsquo;re making them for. &lt;a href=&#34;https://www.paulfurley.com/building-software-users-love/&#34;&gt;I&amp;rsquo;ve written about this before.&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🙂 Hearing good and bad feedback from real people&lt;/li&gt;
&lt;li&gt;🙂 Listening to client problems then planning and implementing scrapers for them&lt;/li&gt;
&lt;li&gt;🙂 Showing stuff to users, getting feedback and iterating&lt;/li&gt;
&lt;li&gt;🙂 Listening to the Pilots and building them something useful&lt;/li&gt;
&lt;li&gt;🙂 Getting feedback and iterating&lt;/li&gt;
&lt;li&gt;🙁 Didn&amp;rsquo;t understand users or market well enough&lt;/li&gt;
&lt;li&gt;🙁 No idea who we were building for or why&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;i-love-spending-my-time-understanding-and-building-products&#34;&gt;I love spending my time understanding and building products&lt;/h2&gt;
&lt;p&gt;I love spending as much time on product as possible and as little on the &amp;lsquo;other stuff&amp;rsquo;. I love going through the process of understanding problems, exploring possible solutions, then implementing them. I&amp;rsquo;m pragmatic about when &lt;em&gt;not&lt;/em&gt; to build solutions, or when to implement a &amp;lsquo;furiously minimal&amp;rsquo; product that gives an incremental improvement, then building out from there.&lt;/p&gt;
&lt;p&gt;At times I&amp;rsquo;ve been my own worst enemy here - I think because I&amp;rsquo;m a good communicator and I have strong opinions on ethics and principles like openness, I often get drawn into politics and &amp;lsquo;selling&amp;rsquo; ideas to investors or management.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m much happier and much more effective influencing by making real things that work, rather than making slide decks and opinion pieces.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🙂 Focusing 90% on product design &amp;amp; development&lt;/li&gt;
&lt;li&gt;🙂 Building well tested and well documented API&lt;/li&gt;
&lt;li&gt;🙁 Planning sales activities&lt;/li&gt;
&lt;li&gt;🙁 Running the field research team&lt;/li&gt;
&lt;li&gt;🙁 Lots of distracting meetings&lt;/li&gt;
&lt;li&gt;🙁 Writing investor decks, businesses cases, innovate reports&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;i-love-automating-things&#34;&gt;I love automating things&lt;/h2&gt;
&lt;p&gt;This one&amp;rsquo;s a strong theme - I basically love making things that run themselves. There&amp;rsquo;s something deeply satisfying about amplifying our efforts by putting machines to work for us.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🙂 Automating G-cloud scraper, backing up and restoring databases&lt;/li&gt;
&lt;li&gt;🙂 Automating collecting and processing weather data&lt;/li&gt;
&lt;li&gt;🙂 Creating a standard scraper template&lt;/li&gt;
&lt;li&gt;🙂 Automating sending PGP expiry emails&lt;/li&gt;
&lt;li&gt;🙂 Automating processes like deploying our code&lt;/li&gt;
&lt;li&gt;🙂 Building web scrapers&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;i-love-building-and-running-things-that-actually-work&#34;&gt;I love building and running things that actually work&lt;/h2&gt;
&lt;p&gt;I &lt;em&gt;thought&lt;/em&gt; I just loved building things, any things, but it turns out that&amp;rsquo;s not the whole story.&lt;/p&gt;
&lt;p&gt;Over the last few years I&amp;rsquo;ve done a lot of prototyping. The type of prototypes I&amp;rsquo;ve worked on having been fictional products - things which look like they work enough to test with users, but they&amp;rsquo;re not real.&lt;/p&gt;
&lt;p&gt;They&amp;rsquo;re a super tool for communicating ideas. They can start a discussion about whether a potential solution could really solve a problem. And they can influence &amp;lsquo;senior management&amp;rsquo; types - &amp;lsquo;imagine if &lt;em&gt;this&lt;/em&gt; existed&amp;hellip;&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;But prototypes for the sake of communicating or influencing… that&amp;rsquo;s not for me.&lt;/p&gt;
&lt;p&gt;So many of the &amp;lsquo;products&amp;rsquo; I&amp;rsquo;ve worked on over the last few years turned out to be pretty think-pieces - nice illustrations to support a business case.&lt;/p&gt;
&lt;p&gt;Contrast this to my prototype version of Expirybot - a fast-and-loose script to extract email addresses, then a hand-crafted email sent by Mail Merge. This was product release version 0.1 - the most furiously minimal version I could &amp;lsquo;ship&amp;rsquo;, learn from and iterate. It wasn&amp;rsquo;t an &amp;lsquo;experiment&amp;rsquo; for the sake of learning - it was a real, working thing, helping out real people!&lt;/p&gt;
&lt;p&gt;In summary, I&amp;rsquo;m a big fan of making things that actually &lt;em&gt;do&lt;/em&gt; something for &lt;em&gt;real&lt;/em&gt; people.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🙂 Building letters app with real users&lt;/li&gt;
&lt;li&gt;🙂 Building Fetch app and backend API that actually worked&lt;/li&gt;
&lt;li&gt;🙂 A handful of Pilots actually using our app every day&lt;/li&gt;
&lt;li&gt;🙁 Never launching anything to the public&lt;/li&gt;
&lt;li&gt;🙁 Never making anything beyond prototypes - nothing actually worked&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;i-love-autonomous-working-cultures&#34;&gt;I love autonomous working cultures&lt;/h2&gt;
&lt;p&gt;This one&amp;rsquo;s simple - I like being in teams that can decide how to work and how to get things done.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t seem to suit big organisations well - I find they over-complicate things with &amp;lsquo;governance&amp;rsquo;, &amp;lsquo;approvals&amp;rsquo;, &amp;lsquo;alignment&amp;rsquo; and &amp;lsquo;selling&amp;rsquo; things to the business. I&amp;rsquo;m sure someone finds this useful but our precious lives are running out and I feel there are better things to spend our time on.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🙂 Very autonomous team&lt;/li&gt;
&lt;li&gt;🙂 Relaxed working culture&lt;/li&gt;
&lt;li&gt;🙁  Bureaucracy and political BS&lt;/li&gt;
&lt;li&gt;🙁  Having to go through weeks of process to launch anything&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;i-love-feeling-part-of-a-community-with-a-positive-purpose&#34;&gt;I love feeling part of a community with a positive purpose&lt;/h2&gt;
&lt;p&gt;I &lt;em&gt;really&lt;/em&gt; loved the Power Pack work, getting to know Community Energy groups, speaking to them on the phone, going to events and feeling like part of the community. That community has a strong mission which I&amp;rsquo;m really behind, so working with them felt completely easy.&lt;/p&gt;
&lt;p&gt;Equally, I&amp;rsquo;ve loved feeling part of the internet freedom community through my PGP work. I love getting emails from random journalists, developers, lawyers, activists, and feeling like we&amp;rsquo;re working towards a common goal.&lt;/p&gt;
&lt;p&gt;Both these groups are fighters - activists - thinking about the future and how to make it better. Love it.&lt;/p&gt;
&lt;p&gt;Unfortunately I couldn&amp;rsquo;t say the same for my small experience of health or the marine logistics industry. For whatever reason I didn&amp;rsquo;t feel I was among &amp;lsquo;my people&amp;rsquo; there.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🙂 Working in an area with strong &amp;lsquo;why&amp;rsquo; like renewable energy, financial inequality&lt;/li&gt;
&lt;li&gt;🙂 Feeling part of internet freedom community&lt;/li&gt;
&lt;li&gt;🙂 Going to community energy events and getting to know the groups&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;i-love-working-with-talented-people&#34;&gt;I love working with talented people&lt;/h2&gt;
&lt;p&gt;Simple - it&amp;rsquo;s great working with talented people. I love the way designers can bring things to life. I&amp;rsquo;ve especially loved pairing with other developers and learning from them. I haven&amp;rsquo;t worked with other developers for a while and I&amp;rsquo;ve missed that learning - I&amp;rsquo;m worried I&amp;rsquo;m losing my skills.&lt;/p&gt;
&lt;p&gt;I was a little surprised there wasn&amp;rsquo;t more about working with others, but when I think about it, it makes sense. Although I love working with other people and I&amp;rsquo;m good in teams, I&amp;rsquo;m also happy bashing things out on my own too. I&amp;rsquo;ve done a lot of gigs where I&amp;rsquo;ve been the only developer, and those were fine. It&amp;rsquo;s efficient - there&amp;rsquo;s less meta-work on organising the team. But the flipside is it&amp;rsquo;s a bit lonely, it&amp;rsquo;s worse for learning, and it puts a lot of burden on one person. It&amp;rsquo;s also hard to ever leave those gigs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🙂 Working with designers&lt;/li&gt;
&lt;li&gt;🙂 Pairing with other developers&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;i-love-making-complex-stuff-simple-for-people&#34;&gt;I love making complex stuff simple for people&lt;/h2&gt;
&lt;p&gt;I had a great phone call this morning with a chap I met through my Expirybot emails and he said &amp;lsquo;I don&amp;rsquo;t really understand PGP, but you&amp;rsquo;ve enabled me to keep on using it&amp;rsquo;. That was really satisfying for me, knowing that I&amp;rsquo;ve made something complex a little more useable.&lt;/p&gt;
&lt;p&gt;I do enjoy making things understandable for people - it&amp;rsquo;s fun to learn the nuts and bolts of something and help others get their heads round it too.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🙂 Making complex PGP stuff simple&lt;/li&gt;
&lt;li&gt;🙂 Teaching people in a fun way through our cryptoparty&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Well done for getting this far!&lt;/p&gt;
&lt;p&gt;Phew.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Signing automated Expirybot emails with GPG</title>
      <link>https://paul.fawkesley.com/signing-automated-expirybot-emails-with-gpg/</link>
      <pubDate>Fri, 15 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/signing-automated-expirybot-emails-with-gpg/</guid>
      <description>&lt;p&gt;&lt;em&gt;I&amp;rsquo;ve started PGP-signing Expirybot&amp;rsquo;s outgoing emails, but in the process had to build a web service to handle unsubscribes, bounces, complaints and invalid domains.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/signed-email-from-expirybot.png&#34; alt=&#34;Expirybot email signed with GPG&#34;&gt;&lt;/p&gt;
&lt;p&gt;I get a lot of emails back from people who&amp;rsquo;ve received &lt;a href=&#34;https://www.paulfurley.com/expirybot&#34;&gt;my PGP expiry notification emails&lt;/a&gt;. One of the requests that&amp;rsquo;s come up several times is,&lt;/p&gt;
&lt;p&gt;&amp;lsquo;This is PGP, why don&amp;rsquo;t you encrypt and sign the emails&amp;rsquo;?&lt;/p&gt;
&lt;h2 id=&#34;many-people-have-lost-their-pgp-keys&#34;&gt;Many people have lost their PGP keys&lt;/h2&gt;
&lt;p&gt;Encrypting the emails is problematic: given that these are expiry emails, many people I email have lost access to their key, so they wouldn&amp;rsquo;t be able to decrypt the message. Some people don&amp;rsquo;t have a clue what PGP is (either their email address was re-used or they forgot). These people tend to be suspicious of the email, although a few people reply and ask what it&amp;rsquo;s all about, after Googling me. If the emails were encrypted, I&amp;rsquo;m not sure how those people would react to a scary-sounding subject and an unreadable message body. I decided encrypting expiry emails is probably unwise.&lt;/p&gt;
&lt;p&gt;But I should &lt;em&gt;definitely&lt;/em&gt; sign the emails. The reason I haven&amp;rsquo;t been is that I&amp;rsquo;ve been using Mailgun to send my emails. They offer a very helpful feature where they can automatically add an unsubscribe link to your outgoing emails. This saved me a load of time, since I could just go ahead and send emails and let them handle unsubscribes and suppress any future emails sent to an unsubscribed user.&lt;/p&gt;
&lt;h2 id=&#34;signing-emails-breaks-mailguns-unsubscribe-links&#34;&gt;Signing emails breaks Mailgun&amp;rsquo;s unsubscribe links&lt;/h2&gt;
&lt;p&gt;The problem is, if I sign the emails, it&amp;rsquo;s difficult for Mailgun to add to my email without it either breaking the signature or it sitting &lt;em&gt;outside&lt;/em&gt; the closing &lt;code&gt;-----END PGP SIGNATURE-----&lt;/code&gt;. Neither is ideal&lt;/p&gt;
&lt;p&gt;Long story short: I did a lot of legwork to implement my own unsubscribe functionality, and now I&amp;rsquo;m sending GPG-signed emails.&lt;/p&gt;
&lt;p&gt;As you can see I&amp;rsquo;m using &lt;em&gt;inline&lt;/em&gt; signatures - where the message body is the signed text - rather than the &lt;a href=&#34;https://tools.ietf.org/html/rfc3156&#34;&gt;PGP/MIME&lt;/a&gt; format. The reason is that PGP/MIME signed emails appear with an attachment called &lt;code&gt;signature.asc&lt;/code&gt;. That&amp;rsquo;s fine for people who understand PGP, but as I described above, the more suspicious users probably won&amp;rsquo;t take well to an unfamiliar email attachment.&lt;/p&gt;
&lt;h2 id=&#34;automating-unattended-gpg-is-quite-interesting&#34;&gt;Automating unattended GPG is quite interesting&lt;/h2&gt;
&lt;p&gt;I created a &lt;a href=&#34;https://keyserver.paulfurley.com/pks/lookup?op=vindex&amp;amp;search=0x9DE7A89E2DE2536F&#34;&gt;new PGP key&lt;/a&gt; for Expirybot and I needed to be able to access it from my Python code. That meant there wasn&amp;rsquo;t a lot of point having a password on the key.&lt;/p&gt;
&lt;p&gt;Equally, I wanted to limit the damage of putting a private key sitting on a server, waiting to be stolen someday.&lt;/p&gt;
&lt;p&gt;I used the same trick I do on my own key, where I exported the signing &lt;em&gt;subkey&lt;/em&gt; - without a password - and let Expirybot use that. The &lt;em&gt;primary&lt;/em&gt; key I store safely elsewhere, and in a year I can use it to extend the subkey&amp;rsquo;s expiration and upload it again.&lt;/p&gt;
&lt;p&gt;Knowing that I&amp;rsquo;d forget how I did it, I scripted the key generation and export. You might find it useful for your own keys - &lt;a href=&#34;https://github.com/fawkesley/expirybot/blob/master/expirybot/gpg_wrapper/generate_keypair&#34;&gt;it&amp;rsquo;s on Github, of course&lt;/a&gt;. (Please don&amp;rsquo;t judge me by Expirybot&amp;rsquo;s less-than-perfect code which I admit has a lot of technical debt!)&lt;/p&gt;
&lt;h2 id=&#34;i-built-a-new-web-service-for-blacklisting&#34;&gt;I built a new web service for blacklisting&lt;/h2&gt;
&lt;p&gt;I made the decision to move away from Mailgun&amp;rsquo;s unsubscribe functionality and build my own. I&amp;rsquo;d been resisting this a bit because in order to provide links people can click on, I need to run a new, always-on, internet-facing (simple) web service. I do love running services like this, but until now Expirybot has been a best-effort bunch of shell scripts and Python strung together in cron. If something&amp;rsquo;s failed it really hasn&amp;rsquo;t mattered since maybe someone wouldn&amp;rsquo;t get a reminder email, but so what?&lt;/p&gt;
&lt;p&gt;Building a proper web service is actually a great opportunity to do more of the ideas I&amp;rsquo;ve got for Expirybot which justified spending the time to get it built and deployed.&lt;/p&gt;
&lt;h3 id=&#34;user-facing-unsubscribe-endpoint&#34;&gt;User-facing unsubscribe endpoint&lt;/h3&gt;
&lt;p&gt;This is the obvious bit: the link that a user clicks on. I used &lt;a href=&#34;https://en.wikipedia.org/wiki/JSON_Web_Token&#34;&gt;JSON web tokens (JWT)&lt;/a&gt; to create signed links to add some protection against people changing each other&amp;rsquo;s subscriptions.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s an example of an unsubscribe link:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/unsubscribe/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MjExMjQxMDAsImVtbCI6Im5vYm9keUBleGFtcGxlLmNvbSJ9.4QHDqjoyAhV6V2cBlRO2EuWAYwSv-4RvbrPxwOBbKhE/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you &lt;a href=&#34;https://jwt.io/&#34;&gt;decode the JWT&lt;/a&gt; you&amp;rsquo;ll find it contains this payload:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre 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-json&#34; data-lang=&#34;json&#34;&gt;{
  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;exp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;1521124100&lt;/span&gt;,
  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;eml&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;nobody@example.com&amp;#34;&lt;/span&gt;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;list-unsubscribe-email-header&#34;&gt;List-Unsubscribe email header&lt;/h3&gt;
&lt;p&gt;I wanted to allow mail clients like Gmail and Apple Mail to show those &amp;lsquo;magic&amp;rsquo; unsubscribe buttons - making it easier for people to unsubscribe, rather than hitting spam. This is enabled by using the &lt;code&gt;List-Unsubscribe&lt;/code&gt; header in the outgoing emails.&lt;/p&gt;
&lt;p&gt;There are two forms of &lt;code&gt;List-Unsubscribe&lt;/code&gt;: URL and &lt;code&gt;mailto:&lt;/code&gt; links. In the &lt;code&gt;mailto&lt;/code&gt; version, when the user hits the button, the mail client actually sends an email to the address. This is instant, so it&amp;rsquo;s preferable to being sent to a website. It&amp;rsquo;s also safer, since a website could deliver adverts or malware.&lt;/p&gt;
&lt;p&gt;For now, I&amp;rsquo;ve only done the URL link, but I&amp;rsquo;d like to implement the &lt;code&gt;mailto:&lt;/code&gt; version soon too.&lt;/p&gt;
&lt;h3 id=&#34;get-unsubscribe-link-api-endpoint&#34;&gt;&amp;lsquo;Get unsubscribe link&amp;rsquo; API endpoint&lt;/h3&gt;
&lt;p&gt;In order for Expirybot (which is still cron + shell script + Python) to insert unsubscribe links into emails, it needs to be able to generate the link.&lt;/p&gt;
&lt;p&gt;I made a protected API endpoint which Expirybot can call and ask for a link. This endpoint serves a dual-purpose: it &lt;em&gt;also&lt;/em&gt; checks that email address and domain against the blacklist. It only returns an unsubscribe link if they&amp;rsquo;re &lt;em&gt;not&lt;/em&gt; unsubscribed, so Expirybot can&amp;rsquo;t accidentally email someone that it shouldn&amp;rsquo;t be.&lt;/p&gt;
&lt;p&gt;The unsubscribe link contains a JSON web token, signed with Django&amp;rsquo;s &lt;code&gt;SECRET_KEY&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;synchronising-with-mailgun&#34;&gt;Synchronising with Mailgun&lt;/h2&gt;
&lt;p&gt;Of course, I needed to import the existing unsubscribe list from Mailgun so I couldn&amp;rsquo;t email those people who&amp;rsquo;d previously unsubscribed.&lt;/p&gt;
&lt;p&gt;In addition, there were three more things I wanted to import and continue to synchronise with my own service:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Bounced email addresses&lt;/strong&gt;- there were thousands of these, since many PGP keys are very old.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Complaints&lt;/strong&gt; - there were about 20 of these - these are when someone hits &amp;lsquo;report spam&amp;rsquo;, and their email provider supports a &amp;lsquo;feedback loop&amp;rsquo; which sends the report back to Mailgun.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lsquo;No MX&amp;rsquo; domains&lt;/strong&gt; - Mailgun tries for several days to connect to a domain to deliver email, but ultimately it gives up and logs an error. I didn&amp;rsquo;t want to continue to email these domains, since they&amp;rsquo;re either invalid, or they&amp;rsquo;ve probably changed ownership.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I wrote some Python scripts to synchronise these with my own blacklist, and got it running in cron. This is lovely since I now have a &amp;lsquo;single customer view&amp;rsquo; (as they call it in big corporations). That is, I can see everything that&amp;rsquo;s happened for a given email address, and with that I can get a feel for when I&amp;rsquo;m helping or annoying people.&lt;/p&gt;
&lt;h2 id=&#34;next-up-for-expirybot&#34;&gt;Next up for Expirybot&lt;/h2&gt;
&lt;p&gt;At the moment the 3-days-until-your-key-expires emails I send are unsolicited.&lt;/p&gt;
&lt;p&gt;So far, that seems OK - the ratio of happy users to unsubscribes or complaints is very high.&lt;/p&gt;
&lt;p&gt;However, I want to do more with Expirybot, like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Email people earlier - like 30, 14, 7 days&lt;/li&gt;
&lt;li&gt;Notify people when a new key is added with the same email address as an existing key&lt;/li&gt;
&lt;li&gt;Provide ICAL calendar feeds for keys&lt;/li&gt;
&lt;li&gt;Notify people their key&amp;rsquo;s cipher preferences (eg SHA1) are no longer considered secure&lt;/li&gt;
&lt;li&gt;Inform people their (unsafe) short ID is being queried in the keyservers, and helping them correct it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To do this, I feel I need to get their opt-in. The next thing I&amp;rsquo;m doing for Expirybot is a way for people to &amp;lsquo;sign up&amp;rsquo; to monitor they key or email address.&lt;/p&gt;
&lt;p&gt;This will be completely free. If it&amp;rsquo;s something you&amp;rsquo;re interested in, &lt;a href=&#34;mailto:paul@paulfurley.com&#34;&gt;pop me an email&lt;/a&gt; and I&amp;rsquo;ll sign you up next week when it&amp;rsquo;s built. And of course, you&amp;rsquo;ll be able to use my new unsubscribe functionality if you change your mind :)&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Sabbatical, week 3</title>
      <link>https://paul.fawkesley.com/sabbatical-week-3/</link>
      <pubDate>Fri, 15 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/sabbatical-week-3/</guid>
      <description>&lt;p&gt;&lt;em&gt;This week I&amp;rsquo;ve laid some good groundwork for Expirybot and had fun playing part-time security researcher.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/virustotal-detection-results.png&#34; alt=&#34;virustotal showing virus detected&#34;&gt;&lt;/p&gt;
&lt;p&gt;Alright, I&amp;rsquo;m cheating a bit, week 2 is missing, but for some reason I&amp;rsquo;ve been struggling to write up that week. I&amp;rsquo;ll try and retro-post it later, for completeness.&lt;/p&gt;
&lt;p&gt;This week has &lt;em&gt;flown&lt;/em&gt; by but it&amp;rsquo;s been interesting and productive, with most of the week spent on Expirybot and security research.&lt;/p&gt;
&lt;h2 id=&#34;finished-migrating-my-pgp-keyserver-to-debian&#34;&gt;Finished migrating my PGP keyserver to debian&lt;/h2&gt;
&lt;p&gt;I didn&amp;rsquo;t really want to have to do this, but unfortunately sks version 1.1.6 isn&amp;rsquo;t available on Ubuntu. Since I was stuck on 1.1.5 I got dropped from &lt;a href=&#34;https://sks-keyservers.net/status/&#34;&gt;the public pool&lt;/a&gt;, meaning my server no longer received requests directly from members of the public. That didn&amp;rsquo;t directly break Expirybot, since I&amp;rsquo;m still receiving updates from my keyserver peers, but there&amp;rsquo;s other types of PGP improvement research which &lt;em&gt;does&lt;/em&gt; depend in getting raw traffic.&lt;/p&gt;
&lt;p&gt;I took the opportunity to move off Digital Ocean and get a new server inside the EU - with &lt;a href=&#34;https://www.hetzner.com/virtual-server?country=gb&#34;&gt;Hetzner&lt;/a&gt;, at an incredibly affordable 7 ish EUR per month for a 2GB machine. I managed to rebuild sks 1.1.6 and migrate keyserver.paulfurley.com without breaking too much. Shortly after, I&amp;rsquo;m back in the pool and once again receiving ~1% of global PGP keyserver queries.&lt;/p&gt;
&lt;h2 id=&#34;pgp-signed-expirybots-outgoing-emails&#34;&gt;PGP-signed Expirybot&amp;rsquo;s outgoing emails&lt;/h2&gt;
&lt;p&gt;This was harder than I expected, but I got quite a bit of independent feedback that my &lt;a href=&#34;https://www.paulfurley.com/expirybot&#34;&gt;PGP expiry emails&lt;/a&gt; should be PGP-signed.&lt;/p&gt;
&lt;p&gt;I spent the first part of the week building this, and a new web service for handling unsubscribes (necessary for signing the emails).&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m now in a &lt;em&gt;much&lt;/em&gt; better place for building new features for Expirybot, which I also started to test on people - more below. I spent a few hours on Friday &lt;a href=&#34;https://www.paulfurley.com/signing-automated-expirybot-emails-with-gpg/&#34;&gt;writing up how I sign the emails&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;wrote-a-scraper-for-auction-data-then-went-to-the-auction&#34;&gt;Wrote a scraper for auction data, then went to the auction&lt;/h2&gt;
&lt;p&gt;This is a bit off-the wall, but I&amp;rsquo;m quite interested that there are &lt;a href=&#34;http://www.suttonkersh.co.uk/properties/listview/?FormSearchText=&amp;amp;FormSearchTextField=&amp;amp;geolat=&amp;amp;geolon=&amp;amp;georad=&amp;amp;section=sale&amp;amp;transType=1&amp;amp;searchSales=Search&amp;amp;priceMin=0&amp;amp;propType=&amp;amp;priceMax=75000&amp;amp;beds=&amp;amp;location=&#34;&gt;houses for sale in Liverpool for less than £50K&lt;/a&gt;, and some of them are in areas that I believe have an excellent future.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve never been to an auction, and it wouldn&amp;rsquo;t be right to go unprepared, so I built &lt;a href=&#34;https://github.com/fawkesley/sutton-kersh-property-auction-scraper/tree/master&#34;&gt;a scraper to analyse the listings&lt;/a&gt; before I went.&lt;/p&gt;
&lt;p&gt;The auction was pretty exciting for two or three lots, then it got boring and I went home.&lt;/p&gt;
&lt;p&gt;Nope, I&amp;rsquo;m not going to become a landlord just yet, but I am thinking about how to do it in a way that&amp;rsquo;s not morally bankrupt, doesn&amp;rsquo;t push up prices, and doesn&amp;rsquo;t make it harder for people to buy houses.&lt;/p&gt;
&lt;p&gt;I had a good email exchange with the nice folks from &lt;a href=&#34;http://www.generationrent.org/&#34;&gt;Generation Rent&lt;/a&gt; asking for guidance on what they consider being an ethical landlord. I&amp;rsquo;d much prefer to &lt;em&gt;build&lt;/em&gt; houses as an investment… now there&amp;rsquo;s a worthwhile enterprise … but that&amp;rsquo;s completely out of reach for me. For now I&amp;rsquo;m more interested in &lt;a href=&#34;https://www.abundanceinvestment.com/&#34;&gt;investing in green energy.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;investigated-ee-apparently-leaking-my-phone-number-to-a-website&#34;&gt;Investigated EE apparently leaking my phone number to a website&lt;/h2&gt;
&lt;p&gt;I had a fascinating, spooky experience on the internet that made me realise how internet security must feel for… lots of people.&lt;/p&gt;
&lt;p&gt;_Somehow, _it looks like I clicked on a link on a website, and this alone &lt;strong&gt;subscribed me to a premium rate SMS service&lt;/strong&gt;. I&amp;rsquo;m pretty outraged that this can happen, mostly because I&amp;rsquo;m concerned it means my phone number was transmitted to some Azerbaijan (literally) company&amp;rsquo;s website without my consent.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve got some very intelligent input from some contacts (thank you folks!) and I&amp;rsquo;m planning a full write up on this, but for now, here&amp;rsquo;s the work in progress:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Me asking on &lt;a href=&#34;https://security.stackexchange.com/questions/175486/how-did-my-phone-provider-leak-my-msisdn-to-an-advertising-website&#34;&gt;security.stackexchange.com&lt;/a&gt; (no answers yet)&lt;/li&gt;
&lt;li&gt;Me asking on &lt;a href=&#34;https://community.ee.co.uk/t5/4G-and-mobile-data/Why-do-you-leak-my-phone-number-to-websites-when-browsing-on/m-p/650170/highlight/false#M119468&#34;&gt;community.ee.co.uk&lt;/a&gt; (seems to be getting some traction now)&lt;/li&gt;
&lt;li&gt;Interesting paper: &amp;lsquo;&lt;a href=&#34;https://www.mulliner.org/collin/academic/publications/mobile_web_privacy_icin10_mulliner.pdf&#34;&gt;Privacy Leaks in Mobile Phone Internet Access&amp;rsquo;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Another: &amp;lsquo;&lt;a href=&#34;http://www.icir.org/vern/papers/header-enrichment-hotmiddle15.pdf&#34;&gt;Header Enrichment or ISP Enrichment? Emerging Privacy Threats in Mobile Networks&amp;rsquo;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;reported-a-probable-security-breach-at-the-gym-group&#34;&gt;Reported a probable security breach at the Gym Group&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve enjoyed playing part time security researcher this week!&lt;/p&gt;
&lt;p&gt;I use unique email addresses for everything in order that I can figure out who spams me, and block that email address. I&amp;rsquo;ve got between 5 and 10 addresses now which have been compromised so I bounce them, much to my satisfaction.&lt;/p&gt;
&lt;p&gt;This week I received an email to the unique address I used to use for the Gym Group, which I left years ago. It was a classic malware email, a friendly note asking for the status of the attached invoice:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/screenshot-of-malicious-email.png&#34; alt=&#34;Screenshot of an email containing a dangerous attachment&#34;&gt;&lt;/p&gt;
&lt;p&gt;And, of course, it&amp;rsquo;s &lt;a href=&#34;https://www.virustotal.com/#/file/d40a85793b528e171de6753a5f87ec6a86ab924c89dce33b69d43de4c47559ab/detection&#34;&gt;carrying some virus (virustotal.com).&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I reported this to the Gym Group - slowly - and pointed out it&amp;rsquo;s a pretty good sign they&amp;rsquo;ve breached their customer database. I wonder if they&amp;rsquo;ll investigate and &lt;a href=&#34;https://ico.org.uk/for-organisations/guide-to-pecr/communications-networks-and-services/security-breaches/&#34;&gt;report this to the Information Commissioner&amp;rsquo;s Office&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re reading this, Gym Group, top tip: take security disclosures seriously - you didn&amp;rsquo;t make it easy!&lt;/p&gt;
&lt;h2 id=&#34;asked-for-feedback-on-new-expirybot-features&#34;&gt;Asked for feedback on new Expirybot features&lt;/h2&gt;
&lt;p&gt;Over the last 6 months, as Expirybot has been sending people helpful reminders about their PGP key, some people have generously been filling out a little survey, helping me understand what they use PGP for and so on.&lt;/p&gt;
&lt;p&gt;That data in itself has been really helpful, and in addition many of those people agreed to be contacted again.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been thinking of new things my Expirybot project could do, but unlike the current reminders, which are unsolicited, I wanted to get upfront permission to do more.&lt;/p&gt;
&lt;p&gt;I emailed 50 of my respondents explaining that I&amp;rsquo;m working on six features, and would they like to sign up and give me feedback. To my delight, a few people have already replied saying yes, and I&amp;rsquo;ve got some good, granular feedback on which features people are interested in. Awesome!&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the list - if you&amp;rsquo;ve got any feedback, let me know!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Email people earlier - like 30, 14, 7 days&lt;/li&gt;
&lt;li&gt;Notify people when a potentially suspicious new key is added with your email address&lt;/li&gt;
&lt;li&gt;Provide ICAL calendar feeds for keys&lt;/li&gt;
&lt;li&gt;Notify people their key&amp;rsquo;s cipher preferences (eg SHA1) are no longer considered secure&lt;/li&gt;
&lt;li&gt;Inform people their (unsafe) short ID is being queried in the keyservers, and helping them correct it&lt;/li&gt;
&lt;li&gt;A command-line tool (GPG wrapper) to generate, rotate / extend your primary key and subkeys automatically&lt;/li&gt;
&lt;li&gt;A teams tool for monitoring all the keys for an organisation e.g. @yourdomain.com&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
      
    
      
    <item>
      <title>Sabbatical, week 1</title>
      <link>https://paul.fawkesley.com/sabbatical-week-1/</link>
      <pubDate>Mon, 04 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/sabbatical-week-1/</guid>
      <description>&lt;p&gt;This time last week I wrote about experiencing &lt;a href=&#34;https://www.paulfurley.com/writers-block/&#34;&gt;Writer&amp;rsquo;s Block&lt;/a&gt;, and how I was struggling to face the idea of making anything. I&amp;rsquo;d given myself what I think was an unhealthy goal of doing four product launches in four weeks. But launching products is mostly hard hustling, and what I love is building and automating things.&lt;/p&gt;
&lt;p&gt;My first week of sabbatical has been lovely and a little surprising. I&amp;rsquo;ve spent time automating some little things I&amp;rsquo;ve been meaning to do which I&amp;rsquo;ve found really satisfying (even if &lt;a href=&#34;https://www.zarino.co.uk/&#34;&gt;Zarino&lt;/a&gt; says this is equivalent to tidying my room!)&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve done quite a bit of meditating too, and thought about what I&amp;rsquo;m trying to achieve and how I&amp;rsquo;m going to fit it into my life.&lt;/p&gt;
&lt;p&gt;And I&amp;rsquo;ve spent some nice time with friends and family, and their guidance has been helpful as always.&lt;/p&gt;
&lt;h2 id=&#34;received-refurbished-air-quality-eggs&#34;&gt;Received refurbished air quality eggs&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s been a while, but at last, we (&lt;a href=&#34;https://www.engageliverpool.com/&#34;&gt;Engage Liverpool CIC&lt;/a&gt;) have got five working Air Quality Eggs. These arrived this week and I unpacked them and got them talking to the internet.&lt;/p&gt;
&lt;p&gt;They can measure NO2 and CO and they work over WiFi, so they need to be positioned somewhere. We&amp;rsquo;re looking for ideas where to put them and what we could do with the data they&amp;rsquo;re producing.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/air-quality-egg.jpg&#34; alt=&#34;An air quality egg with an illuminated display&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;added-a-buy-me-a-beer-page-for-expirybot&#34;&gt;Added a &amp;lsquo;buy me a beer&amp;rsquo; page for Expirybot&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.paulfurley.com/expirybot-emails-pgp-users-before-their-key-expires/&#34;&gt;Expirybot&lt;/a&gt; is a lovely little project I&amp;rsquo;ve been running since July. I get quite a few thank-yous by email and Twitter, and this week someone asked how they can buy me a beer.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been wondering - skeptically - whether I should make some sort of &amp;lsquo;donate&amp;rsquo; page, since Expirybot costs some money to run, and it&amp;rsquo;d be more resilient if its users could pay for it rather than me.&lt;/p&gt;
&lt;p&gt;It seemed like no harm in adding a buy-me-a-beer page and linking to it from Expirybot&amp;rsquo;s pages.&lt;/p&gt;
&lt;p&gt;To my absolute delight, a few hours after deploying the page, I received two &amp;lsquo;beers&amp;rsquo; via Paypal from happy users of Expirybot. Result! I&amp;rsquo;m really grateful to those people.&lt;/p&gt;
&lt;h2 id=&#34;added-open-graph-tags-to-my-website&#34;&gt;Added Open Graph tags to my website&lt;/h2&gt;
&lt;p&gt;Previously, when a Tweet or Facebook share or whatever linked to my website, the tweet looked really boring:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/tweet-without-open-graph-tags.png&#34; alt=&#34;Screenshot of a tweet with a URL&#34;&gt;&lt;/p&gt;
&lt;p&gt;So I &lt;a href=&#34;https://github.com/fawkesley/www.paulfurley.com/compare/82620fc90bbd15140e9a8ac95a801915e08594c2...58c7fde62c74fe00b1d1b09a9f30641138f6575e&#34;&gt;added HTML Open Graph tags&lt;/a&gt; which gives a hint to other services how to display the link nicely:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/tweet-with-open-graph-tags.png&#34; alt=&#34;Screenshot of a tweet with a URL, enhanced with an image and a bold headline&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;randomise-mac-addresses&#34;&gt;Randomise MAC addresses&lt;/h2&gt;
&lt;p&gt;I built a script to randomize my MAC address so that it&amp;rsquo;s unique across different WiFi networks, and rotates every 24 hours. More about that below&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;automated-logging-into-the-librarys-captive-portal&#34;&gt;Automated logging into the library&amp;rsquo;s captive portal&lt;/h2&gt;
&lt;p&gt;Having randomized my MAC address, I was faced again with Liverpool library&amp;rsquo;s crappy &lt;a href=&#34;https://www.wifispark.com&#34;&gt;WiFi SPARK&lt;/a&gt; login screen.&lt;/p&gt;
&lt;p&gt;As the &lt;a href=&#34;https://www.eff.org/deeplinks/2017/08/how-captive-portals-interfere-wireless-security-and-privacy&#34;&gt;EFF eloquently explain&lt;/a&gt;, this type of craptive portal is harmful to user security as well as being a pointless waste of (everyone&amp;rsquo;s) time.&lt;/p&gt;
&lt;p&gt;Since the &amp;lsquo;sign in&amp;rsquo; step doesn&amp;rsquo;t actually &lt;em&gt;do&lt;/em&gt; anything I thought I&amp;rsquo;d get my own back by automating it.&lt;/p&gt;
&lt;p&gt;Now I just type &lt;code&gt;craptive_liverpool_library&lt;/code&gt; and two seconds later, I&amp;rsquo;m in!&lt;/p&gt;
&lt;h2 id=&#34;wrote-about-how-pgp-keyservers-work&#34;&gt;Wrote about how PGP keyservers work&lt;/h2&gt;
&lt;p&gt;I often get into interesting email conversations with people as a result of Expirybot, and this week I helped someone understand a bit about how the PGP keyservers work. This should probably be a whole blog post, but since I wrote it already, I&amp;rsquo;ll reproduce it here for now.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re interested, this is roughly how it works&amp;hellip;&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s some open source software called &lt;a href=&#34;https://bitbucket.org/skskeyserver/sks-keyserver/wiki/Home&#34;&gt;SKS&lt;/a&gt; which implements a
protocol called &amp;lsquo;HKP&amp;rsquo; which describes a keyserver. The 2 functions of the software are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;responding to queries from users (search, get, upload)&lt;/li&gt;
&lt;li&gt;synchronising with peers (other keyservers)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The keyservers are run by different types of organisations - universities, companies and individuals. When you start a new keyserver,
you email the &lt;a href=&#34;http://nongnu.13855.n7.nabble.com/SKS-Devel-f83255.html&#34;&gt;sks-devel mailing list&lt;/a&gt;, asking for people to peer with you. That means your server will 2-way synchronise with that peer.&lt;/p&gt;
&lt;p&gt;So if you push a key to &lt;a href=&#34;https://keyserver.paulfurley.com&#34;&gt;my keyserver&lt;/a&gt;, within a few minutes all of the other ones in the network will have it too.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sks-keyservers.net&lt;/code&gt; is a clever domain that randomly resolves to any one of the &amp;lsquo;pool&amp;rsquo; of keyservers currently considered &amp;lsquo;acceptable&amp;rsquo; for public use - you can see the list here:
&lt;a href=&#34;https://sks-keyservers.net/status/&#34;&gt;https://sks-keyservers.net/status/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Mine recently got dropped from the pool until I upgrade my SKS to the latest version!!)&lt;/p&gt;
&lt;p&gt;There are other domains like keys.gnupg.net which the GPG team control, too.&lt;/p&gt;
&lt;p&gt;Now, this may seem a bit chaotic, and in some ways it is.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BUT&lt;/strong&gt; the massive advantage, as I&amp;rsquo;m sure you&amp;rsquo;re aware, is that no one organisation controls it, no-one can kill it. No-one can decide to sell it for profit, or shut it down because it&amp;rsquo;s too difficult to run.&lt;/p&gt;
&lt;p&gt;The beauty of the &amp;lsquo;bunch of nerds running it in their bedrooms&amp;rsquo; (probably there&amp;rsquo;s at least one) is that &lt;strong&gt;everyone&lt;/strong&gt; would have to collude in order to break it.&lt;/p&gt;
&lt;p&gt;On that exact topic, in the future I think we&amp;rsquo;ll look back at SMTP as one of
the most important inventions we&amp;rsquo;ve ever come up with&amp;hellip; Just think how
impressive it is to make &lt;em&gt;&lt;strong&gt;a single global standard&lt;/strong&gt;&lt;/em&gt; for communication, with
no company or government in control!! I&amp;rsquo;d happily bet on email outliving
Facebook &lt;em&gt;&lt;strong&gt;any&lt;/strong&gt;&lt;/em&gt; day &amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;meditated-at-the-palm-house&#34;&gt;Meditated at the Palm House&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been going to meditation classes for the last couple of months. They&amp;rsquo;ve recently started running a Wednesday morning class in the beautiful &lt;a href=&#34;http://palmhouse.org.uk/&#34;&gt;Sefton Park Palm House.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I went along and… wow… what a wonderful place to meditate. The tropical plants in the palm house give it an incredible smell and it was all warm and cozy compared to the crisp, frosty weather outside.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/sefton-park-palm-house.jpg&#34; alt=&#34;A glass palm house visible through trees&#34;&gt;&lt;/p&gt;
&lt;p&gt;Afterwards, I spent a serene hour walking round the park in the cold sunshine talking to my mum on the phone.&lt;/p&gt;
&lt;p&gt;The next few hours flew by as I dropped in to the &lt;a href=&#34;http://meditationinliverpool.org.uk/the-centre/&#34;&gt;Kadampa Meditation Centre&lt;/a&gt; and chatted away to two of the residents there. They&amp;rsquo;re part of a community of fifteen that co-habit in a superb Victorian building that was previously the private mansion of a Liverpool ship owner.&lt;/p&gt;
&lt;p&gt;This morning reminded me how easy it is to prioritise the wrong things. Often I&amp;rsquo;m &amp;lsquo;too busy&amp;rsquo; to prioritise time with family or it feels &amp;lsquo;unproductive&amp;rsquo;. I&amp;rsquo;ve made the mistake of thinking that time not in front of the computer is somehow &amp;lsquo;wasted&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;Well, I do love building things, but it mustn&amp;rsquo;t come at the cost of ignoring the things that really matter.&lt;/p&gt;
&lt;h2 id=&#34;did-a-day-course-at-the-meditation-centre&#34;&gt;Did a day course at the Meditation Centre&lt;/h2&gt;
&lt;p&gt;On Saturday I returned to the meditation centre for a day course on &lt;a href=&#34;http://meditationinliverpool.org.uk/event/mindfulness-concentration/&#34;&gt;mindfulness and concentration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The format of the day was four sessions, with teaching in each session and one or more simple breathing meditations in each session. The time between sessions was fun too, meeting others who&amp;rsquo;ve been meditating for decades, and enjoying hanging out at the centre.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve got more to write on my experience of meditation so far. The teaser is that I&amp;rsquo;ve been meditating in various forms for a while, but without really understanding why. I&amp;rsquo;ve been doing it because it feels good, but there&amp;rsquo;s been no bigger goal. Now I&amp;rsquo;ve started to see the bigger picture, I&amp;rsquo;m pretty hooked&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;returned-to-gladstone-library&#34;&gt;Returned to Gladstone library&lt;/h2&gt;
&lt;p&gt;On Sunday, &lt;a href=&#34;https://www.flourish.org/&#34;&gt;Francis&lt;/a&gt; and I did a day trip to Gladstone&amp;rsquo;s library, where I&amp;rsquo;d been on retreat last weekend. I&amp;rsquo;ve joined as a friend which gives access to the library every day from 9 till 10pm, and I think it&amp;rsquo;s going to be a useful place for thinking and working.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s calm and civilised, and Hawarden&amp;rsquo;s got some nice countryside and decent pubs.&lt;/p&gt;
&lt;p&gt;It was nice - and helpful - doing an &amp;lsquo;away day&amp;rsquo; with Francis, who understands me well. As he sensibly points out, Expirybot would be a good thing to spend my sabbatical on - I love working on it, I understand the area well (PGP, encryption, etc) and it&amp;rsquo;s already got hundreds of happy users.&lt;/p&gt;
&lt;p&gt;Why fret about building something new, for a new group of people, when I&amp;rsquo;ve got a huge backlog of features and ideas for improving Expirybot?&lt;/p&gt;
&lt;h2 id=&#34;wrote-up-blog-post-about-randomizing-mac-addresses&#34;&gt;Wrote up blog post about randomizing MAC addresses&lt;/h2&gt;
&lt;p&gt;On Friday I had spent a bit of time working out how to randomize my computer&amp;rsquo;s MAC address without breaking things. On Sunday I decided to &lt;a href=&#34;https://www.paulfurley.com/randomize-your-wifi-mac-address-on-ubuntu-1604-xenial/&#34;&gt;write it up and explain why I did it&lt;/a&gt; so that others could benefit.&lt;/p&gt;
&lt;p&gt;Excitingly, it hit the &lt;a href=&#34;https://news.ycombinator.com/item?id=15837273&#34;&gt;front page of Hackernews&lt;/a&gt; so it ended up taking most of my Sunday at Gladstone&amp;rsquo;s, responding to comments and tweets and tweaking the blog post based on feedback.&lt;/p&gt;
&lt;p&gt;It was fun writing up &lt;em&gt;why&lt;/em&gt; I&amp;rsquo;m interested in that and explaining how MAC address tracking works.&lt;/p&gt;
&lt;p&gt;For the analytics geeks: hovering around Hackernews in position 8-9 from about midday to midnight on a Sunday UK time equated to about 6,500 page views according to Google Analytics. That&amp;rsquo;s a big spike against my base of about 300 page views per week. But if you were banking your startup on a &amp;lsquo;big reveal&amp;rsquo; launch, you&amp;rsquo;d have to better than just front-paging HackerNews.&lt;/p&gt;
&lt;h2 id=&#34;started-automating-my-email-with-inboxbot&#34;&gt;Started automating my email with Inboxbot&lt;/h2&gt;
&lt;p&gt;My email inbox is full of useless old crap that could have been deleted weeks ago.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m quite good at using Fastmail&amp;rsquo;s filters to organise things into folders, but everything that doesn&amp;rsquo;t fit into a folder tends to stack up indefinitely.&lt;/p&gt;
&lt;p&gt;To be honest, this probably already exists, but I was curious to build something that talks over IMAP. I also want to be able to source control my rules, rather than them being in Fastmail&amp;rsquo;s web GUI.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s also nice to be able to delete certain types of mail some-number-of-days after they arrived. For example, Meetup seems particularly noisy, with emails like &amp;ldquo;Tomorrow: Joins us blah blah&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Now I can delete those emails after a couple of days:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rules:
  - search:
      folder: &amp;quot;Inbox#&amp;quot;
      from: &amp;quot;info@meetup.com&amp;quot;
      subject: &amp;quot;Tomorrow: Join us&amp;quot;
      older_than_days: 2
    action: &amp;quot;delete&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Another bit of hygiene I&amp;rsquo;d like to instigate: Sometimes I&amp;rsquo;ll buy something from a company, I&amp;rsquo;ll definitely not opt-in to marketing, then several months later I mysteriously start getting their sales emails.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m going to try a rule that automatically unsubscribes from anything that didn&amp;rsquo;t make it into my &amp;lsquo;newsletters&amp;rsquo; folder… ha! This is possible with the &amp;lsquo;List-Unsubscribe&amp;rsquo; header.&lt;/p&gt;
&lt;p&gt;This might be yak-shaving, it might be worthwhile. I&amp;rsquo;m enjoying it, and it&amp;rsquo;s my sabbatical, so there!&lt;/p&gt;
&lt;p&gt;Update: &lt;a href=&#34;https://github.com/fawkesley/inboxbot&#34;&gt;Inboxbot is now on Github.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Randomize your WiFi MAC address on Ubuntu 16.04</title>
      <link>https://paul.fawkesley.com/randomize-your-wifi-mac-address-on-ubuntu-1604-xenial/</link>
      <pubDate>Sun, 03 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/randomize-your-wifi-mac-address-on-ubuntu-1604-xenial/</guid>
      <description>&lt;p&gt;&lt;em&gt;Your device&amp;rsquo;s MAC address can be used to track you across the WiFi networks you connect to. That data can be shared and sold, and often identifies you as an individual. It&amp;rsquo;s possible to limit this tracking by using pseudo-random MAC addresses.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/captive-portal-our-hotel.gif&#34; alt=&#34;A captive portal screen for a hotel allowing you to log in with social media for an hour of free WiFi&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Image courtesy of &lt;a href=&#34;http://cloudessa.com/products/cloudessa-aaa-and-captive-portal-cloud-service/&#34;&gt;Cloudessa&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Every network device like a WiFi or Ethernet card has a unique identifier called a MAC address, for example &lt;code&gt;b4:b6:76:31:8c:ff&lt;/code&gt;. It&amp;rsquo;s how networking works: any time you connect to a WiFi network, the router uses that address to send and receive packets to your machine and distinguish it from other devices in the area.&lt;/p&gt;
&lt;p&gt;The snag with this design is that your unique, unchanging MAC address is just perfect for tracking you. Logged into Starbucks WiFi? Noted. London Underground? Logged.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve ever put your real name into one of those Craptive Portals on a WiFi network you&amp;rsquo;ve now tied your identity to that MAC address. Didn&amp;rsquo;t read the terms and conditions? You might assume that free airport WiFi is subsidised by flogging &amp;lsquo;customer analytics&amp;rsquo; (your personal information) to hotels, restaurant chains and whomever else wants to know about you.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t subscribe to being tracked and sold by mega-corps, so I spent a few hours hacking a solution.&lt;/p&gt;
&lt;h2 id=&#34;mac-addresses-dont-need-to-stay-the-same&#34;&gt;MAC addresses don&amp;rsquo;t need to stay the same&lt;/h2&gt;
&lt;p&gt;Fortunately, it&amp;rsquo;s possible to spoof your MAC address to a random one without fundamentally breaking networking.&lt;/p&gt;
&lt;p&gt;I wanted to randomize my MAC address, but with three particular caveats:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The MAC should be &lt;strong&gt;different across different networks.&lt;/strong&gt; This means Starbucks WiFi sees a different MAC from London Underground, preventing linking my identity across different providers.&lt;/li&gt;
&lt;li&gt;The MAC should &lt;strong&gt;change regularly&lt;/strong&gt; to prevent a network knowing that I&amp;rsquo;m the same person who walked past 75 times over the last year.&lt;/li&gt;
&lt;li&gt;The MAC &lt;strong&gt;stays the same throughout each working day&lt;/strong&gt;. When the MAC address changes, most networks will kick you off, and those with Craptive Portals will usually make you sign in again - annoying.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;manipulating-networkmanager&#34;&gt;Manipulating NetworkManager&lt;/h2&gt;
&lt;p&gt;My first attempt of using the &lt;code&gt;macchanger&lt;/code&gt; tool was unsuccessful as NetworkManager would override the MAC address according to its own configuration.&lt;/p&gt;
&lt;p&gt;I learned that NetworkManager 1.4.1+ can do MAC address randomization right out the box. If you&amp;rsquo;re using Ubuntu 17.04 upwards, you can get most of the way with &lt;a href=&#34;https://gist.github.com/fawkesley/978d4e2e0cceb41d67d017a668106c53/&#34;&gt;this config file&lt;/a&gt;. You can&amp;rsquo;t quite achieve all three of my requirements (you must choose &lt;em&gt;random&lt;/em&gt; or &lt;em&gt;stable&lt;/em&gt; but it seems you can&amp;rsquo;t do &lt;em&gt;stable-for-one-day&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Since I&amp;rsquo;m sticking with Ubuntu 16.04 which ships with NetworkManager 1.2, I couldn&amp;rsquo;t make use of the new functionality. Supposedly there is some randomization support but I failed to actually make it work, so I scripted up a solution instead.&lt;/p&gt;
&lt;p&gt;Fortunately NetworkManager 1.2 does allow for spoofing your MAC address. You can see this in the &amp;lsquo;Edit connections&amp;rsquo; dialog for a given network:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/network-manager-cloned-mac-address.png&#34; alt=&#34;Screenshot of NetworkManager&amp;rsquo;s edit connection dialog, showing a text entry for a cloned mac address&#34;&gt;&lt;/p&gt;
&lt;p&gt;NetworkManager also supports hooks - any script placed in &lt;code&gt;/etc/NetworkManager/dispatcher.d/pre-up.d/&lt;/code&gt; is run before a connection is brought up.&lt;/p&gt;
&lt;h2 id=&#34;assigning-pseudo-random-mac-addresses&#34;&gt;Assigning pseudo-random MAC addresses&lt;/h2&gt;
&lt;p&gt;To recap, I wanted to generate random MAC addresses based on the &lt;em&gt;network&lt;/em&gt; and the &lt;em&gt;date&lt;/em&gt;. We can use the NetworkManager command line, nmcli, to show a full list of networks:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; nmcli connection
NAME                 UUID                                  TYPE             DEVICE
Gladstone Guest      618545ca-d81a-11e7-a2a4-271245e11a45  802-11-wireless  wlp1s0
DoESDinky            6e47c080-d81a-11e7-9921-87bc56777256  802-11-wireless  --
PublicWiFi           79282c10-d81a-11e7-87cb-6341829c2a54  802-11-wireless  --
virgintrainswifi     7d0c57de-d81a-11e7-9bae-5be89b161d22  802-11-wireless  --
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Since each network has a unique identifier, to achieve my scheme I just concatenated the UUID with today&amp;rsquo;s date and hashed the result:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
# eg 618545ca-d81a-11e7-a2a4-271245e11a45-2017-12-03

&amp;gt; echo -n &amp;quot;${UUID}-$(date +%F)&amp;quot; | md5sum

53594de990e92f9b914a723208f22b3f  -

&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That produced bytes which can be substituted in for the last octets of the MAC address.&lt;/p&gt;
&lt;p&gt;Note that the first byte &lt;code&gt;02&lt;/code&gt; signifies the address is &lt;a href=&#34;https://en.wikipedia.org/wiki/MAC_address#Universal_vs._local&#34;&gt;locally administered&lt;/a&gt;. Real, burned-in MAC addresses start with 3 bytes designing their manufacturer, for example &lt;code&gt;b4:b6:76&lt;/code&gt; for Intel.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s possible that some routers may reject locally administered MACs but I haven&amp;rsquo;t encountered that yet.&lt;/p&gt;
&lt;p&gt;On every connection up, the script calls &lt;code&gt;nmcli&lt;/code&gt; to set the spoofed MAC address for every connection:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/terminal-window-nmcli-commands.png&#34; alt=&#34;A terminal window show a number of nmcli command line calls&#34;&gt;&lt;/p&gt;
&lt;p&gt;As a final check, if I look at &lt;code&gt;ifconfig&lt;/code&gt; I can see that the &lt;code&gt;HWaddr&lt;/code&gt; is the spoofed one, not my real MAC address:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; ifconfig
wlp1s0    Link encap:Ethernet  HWaddr b4:b6:76:45:64:4d
          inet addr:192.168.0.86  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::648c:aff2:9a9d:764/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12107812 errors:0 dropped:2 overruns:0 frame:0
          TX packets:18332141 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:11627977017 (11.6 GB)  TX bytes:20700627733 (20.7 GB)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The full script is &lt;a href=&#34;https://gist.github.com/fawkesley/46e0547ce5c5ea7eabeaef50dbacef3f&#34;&gt;available on Github&lt;/a&gt;.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/fawkesley/46e0547ce5c5ea7eabeaef50dbacef3f.js&#34;&gt;&lt;/script&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update: &lt;a href=&#34;https://gist.github.com/fawkesley/46e0547ce5c5ea7eabeaef50dbacef3f/revisions#diff-824d510864d58c07df01102a8f53faef&#34;&gt;Use locally administered MAC addresses&lt;/a&gt; to avoid clashing with real Intel ones. Thanks &lt;a href=&#34;https://twitter.com/fink_/status/937305600005943296&#34;&gt;@_fink&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Writer&#39;s block</title>
      <link>https://paul.fawkesley.com/writers-block/</link>
      <pubDate>Mon, 27 Nov 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/writers-block/</guid>
      <description>&lt;p&gt;Today I&amp;rsquo;m experiencing something seriously strange for me - I can&amp;rsquo;t face the idea of building!&lt;/p&gt;
&lt;p&gt;For the last 2 years or so I&amp;rsquo;ve been working full time and, sadly, there&amp;rsquo;s been a shortage of building real stuff. I&amp;rsquo;ve learned tonnes about user research, hustling and testing product ideas, but have done very little significant building and almost no launching.&lt;/p&gt;
&lt;p&gt;During that time, I was constantly thinking about building other things. At times I got hyper focused and used odd hours here and there to work on other projects. Some projects came to nothing, others launched and are going really well, but either way, I &lt;em&gt;loved&lt;/em&gt; those hours - they were pure creative bliss.&lt;/p&gt;
&lt;p&gt;In short, I love building stuff. I love writing code and I love automating things - it&amp;rsquo;s my favourite hobby and has been for as long as I can remember.&lt;/p&gt;
&lt;h2 id=&#34;four-products-in-four-weeks&#34;&gt;Four products in four weeks?&lt;/h2&gt;
&lt;p&gt;Today is day one of a four week sabbatical I decided to take before jumping into a new, exciting gig which I&amp;rsquo;ll write more about soon.&lt;/p&gt;
&lt;p&gt;I had a very vague idea that I&amp;rsquo;d build and launch 4 things in 4 weeks. My backlog of ideas is more than long enough to choose from!&lt;/p&gt;
&lt;p&gt;But over the weekend (when my girlfriend and I took a wonderful retreat at &lt;a href=&#34;https://www.gladstoneslibrary.org/&#34;&gt;Gladstone&amp;rsquo;s Library&lt;/a&gt;) and today, I haven&amp;rsquo;t been able to face the idea of choosing what to build, and the idea of starting is really daunting.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/paul-in-gladstones-library.jpg&#34; alt=&#34;Paul looking thoughtful in Gladstone&amp;rsquo;s library&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thinking deeply about anything but what to do in the next four weeks.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Just a week ago I was bashing out code in the little spare time I had, but now, faced with a luxurious four weeks of freedom, I don&amp;rsquo;t want to touch it&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;this-will-probably-pass&#34;&gt;This will probably pass&lt;/h2&gt;
&lt;p&gt;Alright, panic over, this probably isn&amp;rsquo;t going to last.&lt;/p&gt;
&lt;p&gt;Reflecting on why I&amp;rsquo;m feeling like this, a couple of things come to mind.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;m &lt;strong&gt;knackered&lt;/strong&gt; from a boozy final week and an intense and stressful project I was trying to keep alive in Ian&amp;rsquo;s absence during November.&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;ve done a &lt;a href=&#34;https://dpr.coop.co.uk&#34;&gt;&lt;strong&gt;lot&lt;/strong&gt; of one or two week product sprints&lt;/a&gt; in the last year, and most of them were canned. That cycle of all-in-then-throw-away is exhausting and frustrating, and doing 4 products in 4 weeks feels like just more of the same.&lt;/li&gt;
&lt;li&gt;Launching a product is maybe 20% building and 80% hustling, listening, sketching, debating, testing and iterating. But… it&amp;rsquo;s &lt;strong&gt;making&lt;/strong&gt; that I&amp;rsquo;ve desperately missed. Fuck all the other stuff, I just want to make some frivolous stuff!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;plan-b-celebrate-being-frivolous-with-lots-of-writing&#34;&gt;Plan B: celebrate being frivolous, with lots of writing&lt;/h2&gt;
&lt;p&gt;The last 2 years I&amp;rsquo;ve learned a tonne of product stuff that&amp;rsquo;s not making. That stuff will be super useful in the future.&lt;/p&gt;
&lt;p&gt;But right now I think my medicine is making.&lt;/p&gt;
&lt;p&gt;I think what I&amp;rsquo;d like to do is a mix of frivolous making and other local things I can&amp;rsquo;t do while I&amp;rsquo;m working. Like meditating at &lt;a href=&#34;http://palmhouse.org.uk/&#34;&gt;Sefton Park Palm House&lt;/a&gt; on a Wednesday morning. And going to &lt;a href=&#34;http://www.transitionliverpool.org/&#34;&gt;Transition Liverpool&amp;rsquo;s&lt;/a&gt; afternoon meeting. And doing phone calls with friends and future friends from the &lt;a href=&#34;https://internetfreedomfestival.org/&#34;&gt;Internet Freedom Festival&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d like to look back on this time and feel it was worthwhile. I don&amp;rsquo;t want the time to slip away. I&amp;rsquo;d also love to better at writing regularly. I think documenting my days could be good for both. At the very least, it should be a lovely record to look back at.&lt;/p&gt;
&lt;p&gt;Thanks for reading, and until next time.&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Expirybot emails PGP users before their key expires</title>
      <link>https://paul.fawkesley.com/expirybot-emails-pgp-users-before-their-key-expires/</link>
      <pubDate>Mon, 24 Jul 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/expirybot-emails-pgp-users-before-their-key-expires/</guid>
      <description>&lt;p&gt;A month ago I started a side project to try and make the world a little easier for PGP users. This is how I started small.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/expirybot-email.png&#34; alt=&#34;Screenshot of an email reminder&#34;&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s easy to moan about PGP, and occasionally people declare it &amp;lsquo;dead&amp;rsquo;. But many groups like the Internet Freedom community continue to depend on PGP to safely carry out their work.&lt;/p&gt;
&lt;p&gt;After many years of using and thinking about PGP I decided to open my ears, listen out for problems and see if there was anything I could do.&lt;/p&gt;
&lt;h2 id=&#34;pgp-keys-expire-and-people-dont-realise&#34;&gt;PGP keys expire and people don&amp;rsquo;t realise&lt;/h2&gt;
&lt;p&gt;I spend a bit of time in online communities where people get support using PGP. Something that comes up consistently is key expiry.&lt;/p&gt;
&lt;p&gt;When you generate a PGP key, your software normally sets an expiry date in the future. This is a good idea as it means that if you lose the private key, the public key won&amp;rsquo;t linger forever. When the date approaches, you can simply extend the expiry and continue to use the key.&lt;/p&gt;
&lt;p&gt;Depending what software you use, the default expiry might be several years away. People forget, their key expires and the first thing they know about it is when someone else tells them.&lt;/p&gt;
&lt;p&gt;This worsens the overall PGP user experience for everyone: the other person probably got a cryptic message while trying to email you, and now you feel silly and worried that you&amp;rsquo;ve caused this inconvenience.&lt;/p&gt;
&lt;p&gt;This has happened to me, and I assumed it might happen to others too.&lt;/p&gt;
&lt;h2 id=&#34;i-quickly-tested-an-idea&#34;&gt;I quickly tested an idea&lt;/h2&gt;
&lt;p&gt;I had an idea that I could email people just before their key expired. Before building something serious, I wanted to know how many people this actually happens to and how they&amp;rsquo;d react to a random email from a stranger.&lt;/p&gt;
&lt;p&gt;I run a PGP keyserver - part of the public network of interconnected servers - so in theory I&amp;rsquo;ve got all the published keys.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/pauls-pgp-keyserver.png&#34; alt=&#34;Screenshot of a search result from my PGP keyserver&#34;&gt;&lt;/p&gt;
&lt;p&gt;I hacked up a script to pull every key from my keyserver, parse the expiry date, and output a list of people whose keys were in expiring in 3 days from now.&lt;/p&gt;
&lt;p&gt;Then I used mail merge to send a personal email to 100 of those people, explaining the situation and how to extend the key.&lt;/p&gt;
&lt;p&gt;Not being a natural hustler, I found this terrifying, sending out a hundred emails to people I don&amp;rsquo;t know. What if they hate me?!&lt;/p&gt;
&lt;h2 id=&#34;its-a-problem-worth-solving&#34;&gt;It&amp;rsquo;s a problem worth solving&lt;/h2&gt;
&lt;p&gt;Within a few minutes, I had a new Twitter follower. I followed back and got a hearty thanks for the reminder. An email reply arrived from a stranger with a short thank you message.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Helpful is an Understatement :-) Thank You for the Helpful Reminder.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This seemed like a promising start so I gave myself permission to build something automatic. A month later, I&amp;rsquo;m running a niche but significant service: I&amp;rsquo;ve sent thousands of emails, had dozens of nice exchanges and gained a load of insight from real users.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s been a lovely month!&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Don&#39;t Like It? Block it! Internet filtering in libraries</title>
      <link>https://paul.fawkesley.com/dont-like-it-block-it/</link>
      <pubDate>Fri, 17 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/dont-like-it-block-it/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/liverpool-express-payday-loans-companies.png&#34; alt=&#34;Liverpool Express: payday loans companies blocked&#34;&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a long-overdue write up of an interesting thing I stumbled across back in 2013.&lt;/p&gt;
&lt;p&gt;It started with a tweet from Liverpool City Council (since deleted) announcing they would be blocking the websites of payday loans companies in the libraries and other city buildings.&lt;/p&gt;
&lt;p&gt;I hadn&amp;rsquo;t considered that councils would block specific websites in their libraries.&lt;/p&gt;
&lt;p&gt;To me this immediately raised concerns. While I personally feel payday loans companies are vile, they are legal businesses. I wanted to know more.
There was an &lt;a href=&#34;http://web.archive.org/web/20130803194645/http://www.liverpoolexpress.co.uk/2013/08/01/payday-loan-websites-blocked/&#34;&gt;article in Liverpool Express&lt;/a&gt; (since deleted but I found an archive copy) with a few questions and answers to a councillor.&lt;/p&gt;
&lt;blockquote&gt;
But payday loan companies are lawful –why should people be prevented from seeing their websites?
&lt;/blockquote&gt;
&lt;blockquote&gt;
&#34;They may be legal – although their activities are to be investigated – but I would argue that the way they operate is certainly not ethical and that is why their sites should be blocked.&#34;
&lt;/blockquote&gt;
&lt;p&gt;Right, so the council will block what it considers to be &amp;ldquo;unethical&amp;rdquo;. I wonder what that means?&lt;/p&gt;
&lt;p&gt;Who gets to decide? What else is blocked?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;To be clear, I believe the council was acting in good faith. I just don&amp;rsquo;t think they were taking the right approach.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;enter-freedom-of-information&#34;&gt;Enter Freedom of Information&lt;/h2&gt;
&lt;p&gt;Having been hanging around with &lt;a href=&#34;https://www.mysociety.org/&#34;&gt;mySociety&lt;/a&gt; folks for a while, I&amp;rsquo;d learned about Freedom of Information, and I used their excellent service to make my very first &lt;a href=&#34;https://www.whatdotheyknow.com/request/filtering_system_and_blocked_web&#34;&gt;freedom of information request&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/what-do-they-know.png&#34; alt=&#34;Get answers from the government and public sector&#34;&gt;&lt;/p&gt;
&lt;p&gt;I wanted to know:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;what&amp;rsquo;s blocked?&lt;/li&gt;
&lt;li&gt;how is it blocked technically?&lt;/li&gt;
&lt;li&gt;who chooses what&amp;rsquo;s blocked?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After some back and forth, a very helpful man in the council provided me some of what I&amp;rsquo;d asked for.&lt;/p&gt;
&lt;h2 id=&#34;there-were-30-blocked-categories&#34;&gt;There were 30 blocked categories&lt;/h2&gt;
&lt;p&gt;The blocked categories were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alcohol&lt;/li&gt;
&lt;li&gt;Anonymizers&lt;/li&gt;
&lt;li&gt;Anonymizing Utilities&lt;/li&gt;
&lt;li&gt;Browser Exploits&lt;/li&gt;
&lt;li&gt;Discrimination&lt;/li&gt;
&lt;li&gt;Drugs&lt;/li&gt;
&lt;li&gt;Extreme&lt;/li&gt;
&lt;li&gt;Game / Cartoon Violence&lt;/li&gt;
&lt;li&gt;Gruesome Content&lt;/li&gt;
&lt;li&gt;Historical Revisionism&lt;/li&gt;
&lt;li&gt;Illegal UK&lt;/li&gt;
&lt;li&gt;Malicious Downloads&lt;/li&gt;
&lt;li&gt;Malicious Sites&lt;/li&gt;
&lt;li&gt;Nudity&lt;/li&gt;
&lt;li&gt;P2P / File Sharing&lt;/li&gt;
&lt;li&gt;Phishing&lt;/li&gt;
&lt;li&gt;Pornography&lt;/li&gt;
&lt;li&gt;Potential Criminal Activities&lt;/li&gt;
&lt;li&gt;Potential Hacking / Computer Crime&lt;/li&gt;
&lt;li&gt;Potential Illegal Software&lt;/li&gt;
&lt;li&gt;Profanity&lt;/li&gt;
&lt;li&gt;PUPs&lt;/li&gt;
&lt;li&gt;Residential IP Addresses&lt;/li&gt;
&lt;li&gt;School Cheating Info&lt;/li&gt;
&lt;li&gt;Sexual Materials&lt;/li&gt;
&lt;li&gt;Spam URLs&lt;/li&gt;
&lt;li&gt;Spyware / Adware / Keyloggers&lt;/li&gt;
&lt;li&gt;Tobacco&lt;/li&gt;
&lt;li&gt;Violence&lt;/li&gt;
&lt;li&gt;Weapons&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;rsquo;s quite a list!&lt;/p&gt;
&lt;p&gt;Straight away looking at this list I&amp;rsquo;m thinking of problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alcohol, Drugs: Does this mean websites &lt;em&gt;selling&lt;/em&gt; alcohol and drugs? How about information about them? How about support groups for alcohol and drug abuse?&lt;/li&gt;
&lt;li&gt;Nudity: Wow, that&amp;rsquo;s broad. Does that include websites about anatomy, then?&lt;/li&gt;
&lt;li&gt;Violence: What about violence? Promoting it? Condemning it? Reporting on it? I see a lot of violence in the news, is that allowed?&lt;/li&gt;
&lt;li&gt;Illegal UK: Whaaaat? Does that means sites that &lt;em&gt;are&lt;/em&gt; illegal in the UK? (I&amp;rsquo;m not even sure what this would cover), or sites that are &lt;em&gt;about&lt;/em&gt; illegal things in the UK - like drink driving, for example?&lt;/li&gt;
&lt;li&gt;Residential IP Addresses: Blocking these is just crappy: I run a personal website off my home internet connection, what&amp;rsquo;s the problem with that? This undermines a core principle of the neutrality of the internet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A blocked category relies on someone, or something classifying that site. This is typically outsourced to the company that provides the filtering software, who would typically automate most of the classification process. In other words, a computer makes most of the decisions.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s concerning for me how much power we give to these third parties and their proprietary computer systems to control what information we&amp;rsquo;re allowed to look at.&lt;/p&gt;
&lt;h2 id=&#34;there-were-1187-blocked-urls&#34;&gt;There were 1,187 blocked URLs.&lt;/h2&gt;
&lt;p&gt;Most of these were pretty boring - there were a lot of payday loans companies, as promised.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve picked out a few that stood out for me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://brusselsbedandbreakfast.be/&#34;&gt;brusselsbedandbreakfast.be&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://gaydar.co.uk&#34;&gt;gaydar.co.uk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://liverpoolungagged.blogspot.co.uk/&#34;&gt;liverpoolungagged.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://merseywindows.co.uk/&#34;&gt;merseywindows.co.uk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.wirralmetals.com/&#34;&gt;wirralmetals.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://profchucklebuttychronic.blogspot.co.uk/&#34;&gt;profchucklebuttychronic.blogspot.co.uk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Bear in mind that I don&amp;rsquo;t know when or why these sites were blocked: the council did not provide that information.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You can explore the full list in the &lt;a href=&#34;https://www.whatdotheyknow.com/request/171481/response/422836/attach/2/269825%20Furley%20att1%20220813.xls&#34;&gt;spreadsheet&lt;/a&gt; provided by the council.&lt;/p&gt;
&lt;h2 id=&#34;one-year-later&#34;&gt;One Year Later&lt;/h2&gt;
&lt;p&gt;The first request was of limited value because I couldn&amp;rsquo;t date any of the block requests, and I couldn&amp;rsquo;t get any of the reasoning behind the blocks. They could have been decades old, which doesn&amp;rsquo;t give much clue about the context of why they were blocked.&lt;/p&gt;
&lt;p&gt;I figured that if I placed &lt;a href=&#34;https://www.whatdotheyknow.com/request/categories_and_specific_websites?unfold=1&#34;&gt;another request&lt;/a&gt; in a year I would at least be able to see what sites had been added or removed in that time.&lt;/p&gt;
&lt;h2 id=&#34;30-blocked-categories-down-with-consumer-protection&#34;&gt;30 blocked categories, down with Consumer Protection!&lt;/h2&gt;
&lt;p&gt;This time there were 30 blocked categories, but they&amp;rsquo;d changed a little.&lt;/p&gt;
&lt;p&gt;Unblocked since 2013:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alcohol&lt;/li&gt;
&lt;li&gt;Violence&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Blocked since 2013:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Consumer Protection&lt;/li&gt;
&lt;li&gt;Parked Domain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I can&amp;rsquo;t imagine why Consumer Protection would be blocked - weird.&lt;/p&gt;
&lt;h2 id=&#34;538-blocked-websites&#34;&gt;538 blocked websites&lt;/h2&gt;
&lt;p&gt;Encouragingly, this time the number of blocked websites had halved.&lt;/p&gt;
&lt;p&gt;All of the sites I picked out above were now unblocked.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve picked out a few new blocks since 2014 that I thought were interesting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://awe.co.uk&#34;&gt;awe.co.uk&lt;/a&gt; - this is the MOD &lt;a href=&#34;https://en.wikipedia.org/wiki/Atomic_Weapons_Establishment&#34;&gt;Atomic Weapons Establishment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://defenseindustrydaily.com&#34;&gt;defenseindustrydaily.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;facebook.com&lt;/li&gt;
&lt;li&gt;google.com/images&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.youtube.com&#34;&gt;www.youtube.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Again, the full list is in the &lt;a href=&#34;https://www.whatdotheyknow.com/request/232900/response/586666/attach/2/Copy%20of%20URLs.xlsx&#34;&gt;2014 spreadsheet&lt;/a&gt; provided by the council.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s pretty weird for a local council to be blocking the website of a department of the Ministry of Defence.&lt;/p&gt;
&lt;p&gt;Hopefully this post highlights some of the moral questions raised when censoring the internet.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>The Internet Freedom Festival 2017 (Friday)</title>
      <link>https://paul.fawkesley.com/internet-freedom-festival-2017-friday/</link>
      <pubDate>Fri, 10 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/internet-freedom-festival-2017-friday/</guid>
      <description>&lt;h2 id=&#34;liberating-free-knowledge---countering-government-censorship-on-wikipedia&#34;&gt;Liberating Free Knowledge - Countering Government Censorship on Wikipedia&lt;/h2&gt;
&lt;p&gt;I went to &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Liberating_Free_Knowledge_-_Countering_Government_Censorship_on_Wikipedia&#34;&gt;this session&lt;/a&gt; and learned a bit about how Wikipedia detects and responds to censorship.&lt;/p&gt;
&lt;p&gt;There was some confusing pre-amble about confidentiality so I didn&amp;rsquo;t make detailed notes on this one.&lt;/p&gt;
&lt;p&gt;Main take aways were:&lt;/p&gt;
&lt;p&gt;There are lots of different censorship approaches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;contact content provider or their ISP (takedowns)&lt;/li&gt;
&lt;li&gt;block specific pages&lt;/li&gt;
&lt;li&gt;block IP of content - poison DNS dns poisoning&lt;/li&gt;
&lt;li&gt;throttle speed&lt;/li&gt;
&lt;li&gt;offensive attacks (ddos)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And there two approaches to counter it. Both are essential:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Technical - circumvention tools. This is always a game of cat-and-mouse.&lt;/li&gt;
&lt;li&gt;Non-technical - legal action, dialogue, public pressure and so on.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&#34;https://greatfire.org/&#34;&gt;greatfire.org&lt;/a&gt; lets you see if a website is censored in China.&lt;/p&gt;
&lt;p&gt;Some governments don&amp;rsquo;t seem to understand what&amp;rsquo;s going on, don&amp;rsquo;t have another way of contacting the website in question, so they just block the website.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t know Wikipedia had native applications, but there was some suggestion that they could build circumvention technology (pluggable transports) into those.&lt;/p&gt;
&lt;h2 id=&#34;to-serve-and-protect-the-role-of-technology-in-the-fight-against-abuse-by-law-enforcement&#34;&gt;To Serve and Protect: The role of technology in the fight against abuse by law enforcement&lt;/h2&gt;
&lt;p&gt;This sobering &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/To_Serve_and_Protect:_Panel_discussion_on_the_role_of_technology_in_the_fight_against_abuse_by_law_enforcement&#34;&gt;panel discussion&lt;/a&gt; discussed the use of technology and tactics for citizens to protect themselves against abuse by police in the U.S.&lt;/p&gt;
&lt;p&gt;Specifically, this was about police violence against minorities, too often resulting in their death and subsequent cover up.&lt;/p&gt;
&lt;p&gt;These groups use cameras to film police (which is their constitutional right) in order to achieve the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deter - reduce the likelihood of violence or abuse&lt;/li&gt;
&lt;li&gt;De-escalate - try and recover a dangerous situation&lt;/li&gt;
&lt;li&gt;Document - ensure any abuse is recorded to help the victim&amp;rsquo;s case&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This can be a dangerous activity where good training and good tools help. Controlling the release of footage is a critical: if it&amp;rsquo;s released without anonymisation, it can lead to persecution of the creator. If it&amp;rsquo;s released too early, it allows the police to bend their statement around the available evidence.&lt;/p&gt;
&lt;p&gt;Smartphone camera apps like &lt;a href=&#34;https://guardianproject.info/apps/camerav/&#34;&gt;CameraV&lt;/a&gt; help you prove the footage was taken when and where you claim it was.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve seen a bit of this make it across into our UK news, but I didn&amp;rsquo;t realise how poor the relationship between police and citizens is in parts of the U.S.&lt;/p&gt;
&lt;p&gt;Here in the UK we&amp;rsquo;re in a relatively privileged position that our regular police don&amp;rsquo;t carry guns, and my experience of them has only been positive.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Writing from another privileged position of being white and well educated I realise I don&amp;rsquo;t know the first thing about police abuse in the UK)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;While we&amp;rsquo;re on the topic of privilege, a tip from a white male cop-watcher was to use your privilege to help those without. In other words, it&amp;rsquo;s easier to film police without getting shot if you&amp;rsquo;re white.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve seen that in other ways too: people from democracies building tools for those without that privilege. (From what I&amp;rsquo;ve seen it&amp;rsquo;s mostly United States, Canada and Germany: I haven&amp;rsquo;t seen anything from the UK).&lt;/p&gt;
&lt;h2 id=&#34;bookkeeping-for-activist-projects&#34;&gt;Bookkeeping for activist projects&lt;/h2&gt;
&lt;p&gt;This was a &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Bookkeeping_for_activist_projects&#34;&gt;session&lt;/a&gt; for people running small projects and how to deal with money.&lt;/p&gt;
&lt;p&gt;For a certain size of project, the money is enough that it&amp;rsquo;s annoying that it comes out of the founders pocket each month, but not enough to be worth incorporating or spending a lot of time fundraising.&lt;/p&gt;
&lt;p&gt;I have this exact problem myself with &lt;a href=&#34;https://www.thinkingliverpool.com&#34;&gt;Thinking Liverpool&lt;/a&gt;, which I&amp;rsquo;ve considered stopping many times, even though it provides a lot of value to its (small) user base.&lt;/p&gt;
&lt;p&gt;This is something the &lt;a href=&#34;http://www.awesomefoundation.org/en&#34;&gt;Awesome Foundation&lt;/a&gt; is set up to help with, though that&amp;rsquo;s more for one-off projects rather than running costs.&lt;/p&gt;
&lt;p&gt;Someone else in the group has the opposite problem: she runs &lt;a href=&#34;https://cryptoparty.in&#34;&gt;cryptoparties&lt;/a&gt; and people try to donate money, but as an individual, she doesn&amp;rsquo;t want to deal with the bureacracy of having to do a tax return, so she tries to redirect it to other groups (even though she&amp;rsquo;s personally sponsoring the food at the event).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/cryptoparty-logo.png&#34; alt=&#34;Cryptoparty logo&#34;&gt;
&lt;em&gt;Cryptoparty logo courtesy of &lt;a href=&#34;http://www.hacdc.org/&#34;&gt;HacDC&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s nuts: people doing good things in the community find it so awkward to deal with the bureaucracy of taking money, that they decline it, and pay out of their own pocket! In my mind that&amp;rsquo;s not a recipe for sustainable projects.&lt;/p&gt;
&lt;p&gt;We heard about a new Germany organisation called the &lt;a href=&#34;https://techcultivation.org/&#34;&gt;Center for the Cultivation of Technology&lt;/a&gt;. It&amp;rsquo;s a new non-profit (and a charity) and its mission is to promote open things like open source, arts, culture etc.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s aimed at projects which need &amp;ldquo;fiscal sponsorship&amp;rdquo;, meaning you need to collect &amp;amp; spend money. The non-profit can hold the money.&lt;/p&gt;
&lt;p&gt;Right now they&amp;rsquo;re working on an accounting platform that will actually handle the money in and out, as well as creating an tax-office-compatible report in the financial year. They&amp;rsquo;ve done work to make it legally compatible with other EU countries too.&lt;/p&gt;
&lt;p&gt;We also talked about &lt;a href=&#34;https://opencollective.com/&#34;&gt;Open Collective&lt;/a&gt;, a platform Ian and I are trialling for our &lt;a href=&#34;https://opencollective.com/trill&#34;&gt;collective&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ll have to see where it goes, but at the moment money we spend is in my name, then I get &amp;ldquo;refunded&amp;rdquo; by Open Collective. That means it&amp;rsquo;s coming out of my taxable income, and presumably needs declaring on my tax return. So it&amp;rsquo;s solving the &lt;em&gt;payment&lt;/em&gt; problem (it&amp;rsquo;s quite good at collecting monthly payments from people) but not the bureacracy one, potentially.&lt;/p&gt;
&lt;h3 id=&#34;dont-confuse-legal-structure-with-governance&#34;&gt;Don&amp;rsquo;t confuse legal structure with governance&lt;/h3&gt;
&lt;p&gt;I learned a lot about running small organisations from the experience in the session. It sounds like incorporation can corrupt organisations by setting a formal governance structure. This can lose the flexibility that is central to the success of small, passionate community groups.&lt;/p&gt;
&lt;p&gt;What seems to work well in small groups is &amp;ldquo;rough consensus&amp;rdquo; - you openly communicate plans, then if no-one is freaking out it&amp;rsquo;s probably OK.&lt;/p&gt;
&lt;p&gt;What doesn&amp;rsquo;t work well is &amp;ldquo;you have two weeks to respond&amp;rdquo; type communication.&lt;/p&gt;
&lt;p&gt;The feeling was that the model (co-operative, CIC, limited company) is just a vehicle, not a solution. That feels important.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve got two recommendations in my notes: &lt;a href=&#34;https://qmro.qmul.ac.uk/xmlui/handle/123456789/11751&#34;&gt;Toni Prug&lt;/a&gt;&amp;rsquo;s thesis and the &lt;a href=&#34;http://www.artofcommunityonline.org/&#34;&gt;The Art of Community&lt;/a&gt; by Jono Bacon.&lt;/p&gt;
&lt;p&gt;In Germany it&amp;rsquo;s very easy to start Members Associations: it costs very little and you just have to do an AGM. They have to do filings at 1 year and 4 years, and that&amp;rsquo;s when a lot of them find they can&amp;rsquo;t produce the right records, and ultimately fold. In theory you have to go back in time and return any money you&amp;rsquo;ve received, but in practice it sounds like the government just lets them forget about it.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s also a funny taboo in some communities that money = capitalism = bad.&lt;/p&gt;
&lt;h2 id=&#34;kill-the-messenger&#34;&gt;Kill the messenger&lt;/h2&gt;
&lt;p&gt;I was a bit knackered for &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Kill_the_Messenger:_Block,_Erase,_and_Delete_in_the_name_of_Freedom%3F&#34;&gt;this session&lt;/a&gt;, but I did take away that the new EU &lt;a href=&#34;https://ico.org.uk/for-organisations/data-protection-reform/overview-of-the-gdpr/&#34;&gt;General Data Protection Regulation (GDPR)&lt;/a&gt; might make it less appealing for Google and friends to resist &amp;ldquo;right to be forgotten&amp;rdquo; requests, which would be bad for journalism.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>The Internet Freedom Festival 2017 (Wednesday)</title>
      <link>https://paul.fawkesley.com/internet-freedom-festival-2017-wednesday/</link>
      <pubDate>Wed, 08 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/internet-freedom-festival-2017-wednesday/</guid>
      <description>&lt;p&gt;Wednesday was stimulating, exciting, then overwhelming, but excellent.&lt;/p&gt;
&lt;p&gt;For the first time I felt I belong in this community, I understand its challenges, and I&amp;rsquo;ve got something to contribute.&lt;/p&gt;
&lt;p&gt;That was cool.&lt;/p&gt;
&lt;h2 id=&#34;turkey-blocks&#34;&gt;Turkey blocks&lt;/h2&gt;
&lt;p&gt;In &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Post-Truth_Censorship:_New_Techniques_for_Realtime_Shutdown_Detection&#34;&gt;this session&lt;/a&gt;, the cool folks at &lt;a href=&#34;https://turkeyblocks.org/&#34;&gt;Turkey blocks&lt;/a&gt; showed off their realtime censorship-detection system.&lt;/p&gt;
&lt;p&gt;This started following a terrorist attack, when the government unhelpfully shut down the internet. That made it impossible for people to contact loved ones at the time of greatest need. Since then, shutdowns have occurred at various times and Turkey Blocks have &lt;a href=&#34;https://turkeyblocks.org/reports/&#34;&gt;documented them&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/turkey-blocks-twitter.png&#34; alt=&#34;Tweet from @TurkeyBlocks showing twitter, youtube and facebook being down&#34;&gt;
&lt;em&gt;Turkey Blocks control the online dialog by detecting and reacting quicker than others.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;An interesting technical point is that the method used to censor websites is injecting retransmission packets into TCP streams, disrupting the stream and throttling the connection. As this makes sites unusuable in practice, it&amp;rsquo;s censorship, even if some prefer the word &amp;ldquo;throttling&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;They use packet captures from &lt;a href=&#34;https://www.wireshark.org/&#34;&gt;Wireshark&lt;/a&gt; to both analyse and &lt;em&gt;illustrate&lt;/em&gt; that stream tampering is going on.&lt;/p&gt;
&lt;h2 id=&#34;cat-and-mouse-with-deep-packet-inspection&#34;&gt;Cat and mouse with deep packet inspection&lt;/h2&gt;
&lt;p&gt;In this &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Playing_cat_and_mouse_with_Deep_Packet_Inspection&#34;&gt;session&lt;/a&gt; we learned about ways of simulating censorship on a local machine in order to test circumvention techniques.&lt;/p&gt;
&lt;p&gt;As circumvention techniques improve, the censors adapt with more eleborate detection techniques, in a game of &amp;ldquo;cat and mouse&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://sri-csl.github.io/stegotorus/&#34;&gt;Stegotorus&lt;/a&gt; offers a solution: make it easier for developers for create new techniques quickly. These techniques are called &amp;ldquo;pluggable transports&amp;rdquo; and the theory goes that if developers can bash out a few way over the weekend, it creates an unmanageable workload for the censors.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s an elegant case where a decentralised model can defeat a centralised one: the internet community can create a large workload for the censors in a sort of denial of service attack.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/stegotorus-diagram.png&#34; alt=&#34;Stegotorus client to server connection, then to Tor network&#34;&gt;
&lt;em&gt;Stegotorus diagram from &lt;a href=&#34;https://sri-csl.github.io/stegotorus/&#34;&gt;https://sri-csl.github.io/stegotorus/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;pluggable-transports-lunch&#34;&gt;Pluggable Transports Lunch&lt;/h2&gt;
&lt;p&gt;That session led on to lunch with the &lt;a href=&#34;https://www.pluggabletransports.info/&#34;&gt;pluggable transports community&lt;/a&gt;: a highly capable (and welcoming) group of individuals all working towards the same goal of building circumvention tools.&lt;/p&gt;
&lt;p&gt;This one was pretty tough on the brain, with some extremely sharp folks from &lt;a href=&#34;https://operatorfoundation.org/&#34;&gt;Operator Foundation&lt;/a&gt;, &lt;a href=&#34;https://jigsaw.google.com&#34;&gt;Jigsaw&lt;/a&gt;, &lt;a href=&#34;https://www.internews.org/&#34;&gt;Internews&lt;/a&gt; and others whose organisations I didn&amp;rsquo;t catch.&lt;/p&gt;
&lt;p&gt;This community has produced a Pluggable Transport 2.0 specification which is an effort to bring together the community&amp;rsquo;s individual efforts.&lt;/p&gt;
&lt;p&gt;To make it more concrete: suppose you develop an Android app which talks to a backend server. One day you find that your app no longer works in Iran, what do you do? The vision of this community is that you search how to get round filtered internet, find the pluggable transports and do three things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;add a library to your Android build manifest&lt;/li&gt;
&lt;li&gt;add a line to your backend server Ansible config&lt;/li&gt;
&lt;li&gt;add a line of code to your app to handle a socket failure, switching to pluggable transports&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cool.&lt;/p&gt;
&lt;h2 id=&#34;idea-zero-config-tor-bridges-in-the-home&#34;&gt;Idea: Zero-config Tor Bridges in the Home&lt;/h2&gt;
&lt;p&gt;&amp;hellip; talked to someone from the Tor project about this, seems promising&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;autocrypt-email-encryption-for-everyone&#34;&gt;Autocrypt: Email Encryption for Everyone&lt;/h2&gt;
&lt;p&gt;I tried to go &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Autocrypt:_Email_Encryption_for_Everyone&#34;&gt;this session&lt;/a&gt; but it was so full I couldn&amp;rsquo;t fit in the room!&lt;/p&gt;
&lt;p&gt;Have a look at the &lt;a href=&#34;https://autocrypt.readthedocs.io/&#34;&gt;autocrypt spec&lt;/a&gt;, it feels like a very promising approach to email encryption.&lt;/p&gt;
&lt;h2 id=&#34;human-rights-in-venezuela&#34;&gt;Human rights in Venezuela&lt;/h2&gt;
&lt;p&gt;I had a long, distressing, but inspiring talk with an incredibly brave human rights worker from Venezuela. His challenges made things very real: people close to him have been kidnapped repeatedly until they left the country.&lt;/p&gt;
&lt;p&gt;Digital security is a matter of life and death for him. Before we left I taught him about two-factor authentication on Google, which he was very excited about&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;secure-communication-and-information-management-in-rural-areas&#34;&gt;Secure communication and information management in rural areas&lt;/h2&gt;
&lt;p&gt;In this &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Secure_communication_and_information_management_in_rural_areas&#34;&gt;session&lt;/a&gt; we broke out into groups and tackled specific problems people in that group are facing. In our case we were working on how to bring low cost internet to Gambia, a recent democracy with no rural internet infrastructure.&lt;/p&gt;
&lt;p&gt;They&amp;rsquo;ve got an interesting opportunity to use neighbouring Senegal, which is geographically close, more or less wherever you are in Gambia.&lt;/p&gt;
&lt;p&gt;Currently NGOs buy Senegalese SIM cards and bring them into Gambia, but the cost of data is huge, making it prohibitive.&lt;/p&gt;
&lt;p&gt;We talked about compressing data using &lt;a href=&#34;http://www.opera.com/mobile&#34;&gt;Opera Mini&lt;/a&gt; and creating a line-of-site microwave link from a fixed-line connection in Senegal, as well as mesh networks, like the &lt;a href=&#34;http://www.altermundi.net/&#34;&gt;altermundi&lt;/a&gt; community we met at &lt;a href=&#34;https://www.internetfreedomfestival.org/wiki/index.php/Autonomous_Wireless_and_GSM_Networks&#34;&gt;last year&amp;rsquo;s IFF&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/internetff&#34;&gt;IFF on Twitter&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>The Internet Freedom Festival 2017 (Tuesday)</title>
      <link>https://paul.fawkesley.com/internet-freedom-festival-2017-tuesday/</link>
      <pubDate>Tue, 07 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/internet-freedom-festival-2017-tuesday/</guid>
      <description>&lt;p&gt;Day two of the &lt;a href=&#34;https://internetfreedomfestival.org/&#34;&gt;Internet Freedom Festival&lt;/a&gt; was intense.&lt;/p&gt;
&lt;h2 id=&#34;rapid-response-to-targeted-threats&#34;&gt;Rapid Response To Targeted Threats&lt;/h2&gt;
&lt;p&gt;It started out with a session by &lt;a href=&#34;https://civicdr.org/&#34;&gt;Civil Society Centre for Digital resilience (CiviCDr)&lt;/a&gt; and &lt;a href=&#34;https://asl19.org/en/&#34;&gt;ASL19&lt;/a&gt; on &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Rapid_Response_To_Targeted_Threats:_CiviCDR_Case_Study&#34;&gt;rapid response&lt;/a&gt;, which I now understand means helping people in the aftermath of a hacking attack. In this particular case it was about human rights workers having their email accounts hacked by Iranian state sponsored hackers.&lt;/p&gt;
&lt;p&gt;As far as I can tell, CiviCDR connects human rights organisations with digital trainers and experts, facilitating these services:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&amp;ldquo;baseline&amp;rdquo; training: getting a group of connected organisations up to a basic level of digital security (two-factor auth, etc)&lt;/li&gt;
&lt;li&gt;incident response: connecting victims of attack with people who can investigate&lt;/li&gt;
&lt;li&gt;notifications: emailing the community when new types of attack are discovered&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;My main learnings from this session:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Iran performs very sophisticated, one-off attacks tailored for an individual.&lt;/li&gt;
&lt;li&gt;Google Authenticator 2-factor codes can only be used once to login &lt;em&gt;once&lt;/em&gt;, whereas SMS-based codes are valid for 30 minutes and can be used multiple times.&lt;/li&gt;
&lt;li&gt;There have been successful social-engineering attacks on SMS-based two-factor authentication.&lt;/li&gt;
&lt;li&gt;Many human rights organisations use Wordpress, but don&amp;rsquo;t know to keep it updated, so get attacked this way.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/two-factor-authentication-screen.png&#34; alt=&#34;Two-factor authentication login screen&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Two-factor authentication hugely improves security, but a determined targeted attack can still trick users.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There was a bit of discussion about scaling this with automation, and I heard about a tool called &lt;a href=&#34;https://github.com/epiraces/hsf-reporter-chrome&#34;&gt;HSF Reporter&lt;/a&gt;, which simplifies reporting suspicious emails to the Harms Stories Framework (HSF) engine (can&amp;rsquo;t find a link).&lt;/p&gt;
&lt;h2 id=&#34;journalism-and-the-right-to-be-forgotten&#34;&gt;Journalism and the Right to be Forgotten&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Journalism_and_the_Right_to_be_Forgotten&#34;&gt;This session&lt;/a&gt; highlighted the harm to journalism caused by the so called &amp;ldquo;right to be forgotten&amp;rdquo;. That doesn&amp;rsquo;t refer to just one thing, although the &lt;a href=&#34;https://en.wikipedia.org/wiki/Right_to_be_forgotten#European_Union&#34;&gt;European court&amp;rsquo;s decision&lt;/a&gt; that Google had to process right to be forgotten requests is a well-known example.&lt;/p&gt;
&lt;p&gt;We learned that &amp;ldquo;reputation management&amp;rdquo; firms charge wealthy clients $50,000+ to &amp;ldquo;clean&amp;rdquo; their online reputation, serving scary-sounding take-down requests to news sites and blogs which write about their client in a potentially negative light. Small organisations don&amp;rsquo;t always understand the law, and don&amp;rsquo;t find it worth going to court, so simply comply with such requests.&lt;/p&gt;
&lt;p&gt;Such cases are clearly harmful for public interest reporting.&lt;/p&gt;
&lt;p&gt;There are other cases (which these laws were presumably designed for), which make complete sense to me - for example, purging past misdemeanors that are no longer relevant to the public interest.&lt;/p&gt;
&lt;p&gt;My take-away from this session was that governments are scrambling to implement laws, these laws overlap with existing data protection and libel laws, and that jurisdictions and borders just make things worse in an Internet world.&lt;/p&gt;
&lt;p&gt;Interesting: the BBC maintains &lt;a href=&#34;http://www.bbc.co.uk/blogs/internet/entries/1d765aa8-600b-4f32-b110-d02fbf7fd379&#34;&gt;a list of sites&lt;/a&gt; which have been delisted from Google. The Guardian &lt;a href=&#34;https://www.theguardian.com/technology/2015/jul/01/bbc-wrong-right-to-be-forgotten&#34;&gt;disapproves&lt;/a&gt;. Take a look at five random articles there and you&amp;rsquo;ll see the problem.&lt;/p&gt;
&lt;p&gt;What a mess.&lt;/p&gt;
&lt;h2 id=&#34;how-activists-western-media-and-usbs-and-sd-cards-are-revolutionizing-north-korean-society&#34;&gt;How activists, western media, and USBs and SD cards are revolutionizing North Korean society&lt;/h2&gt;
&lt;p&gt;Wow. This deeply moving &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/How_activists,_western_media,_and_USBs_and_SD_cards_are_revolutionizing_North_Korean_society.&#34;&gt;session&lt;/a&gt;, painstakingly and carefully told through an interpreter and partner, told of &lt;a href=&#34;https://en.wikipedia.org/wiki/Jeong_Kwang-il&#34;&gt;Jung Gwang Il&lt;/a&gt;&amp;rsquo;s false imprisonment, torture and ultimate escape from North Korea.&lt;/p&gt;
&lt;p&gt;No Chain, his human-rights NGO, is exposing North Koreans to the outside world by smuggling in USB sticks, SD cards and other devices with a variety of sneaky methods.&lt;/p&gt;
&lt;p&gt;He sees times changing in North Korea, with small acts of civil disobedience that were &amp;ldquo;unthinkable&amp;rdquo; five years ago.&lt;/p&gt;
&lt;p&gt;The main reason for attending the IFF was to call for help. North Korea really has no Internet, so Internet Freedom just doesn&amp;rsquo;t apply there. He asked for creative ways of bringing Internet to the country, being mindful that doing so is illegal.&lt;/p&gt;
&lt;h2 id=&#34;censorship-resistant-circumvention-tool-delivery&#34;&gt;Censorship Resistant Circumvention Tool Delivery&lt;/h2&gt;
&lt;p&gt;In &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Censorship-resistant_circumvention_tool_delivery&#34;&gt;this session&lt;/a&gt; I learned about &lt;a href=&#34;https://paskoocheh.com/&#34;&gt;Paskoocheh&lt;/a&gt;, another &lt;a href=&#34;https://asl19.org/en/&#34;&gt;ASL19&lt;/a&gt; project for delivering Android apps to censored users in Iran.&lt;/p&gt;
&lt;p&gt;In Iran, the Google Play store doesn&amp;rsquo;t list &amp;ldquo;circumvention&amp;rdquo; apps such as VPNs, and other types of app deemed unsuitable by the government.&lt;/p&gt;
&lt;p&gt;Paskoocheh uses some cool delivery techniques like an email autoresponder and a Telegram bot.&lt;/p&gt;
&lt;p&gt;To avoid blocking by state censors, it takes advantage of the popularity of S3, hosting files at &lt;code&gt;https://s3.amazonaws.com/...&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A censor needs to look inside the packet to be choose whether to block it. In this case, all they could see would be the &lt;em&gt;domain&lt;/em&gt; part of the request (the &lt;a href=&#34;https://tools.ietf.org/html/rfc6066#section-3&#34;&gt;Server Name Indication&lt;/a&gt; extension to the TLS handshake), not the URL path.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/wireshark-ssl-sni.png&#34; alt=&#34;SSL/TLS Server Name Extension packet showing s3.amazonaws.com&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;On the wire, all requests to URLs under s3.amazonaws.com look the same&amp;hellip;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;That makes it hard to know whether the request is for an app, or for one of millions of other S3 resources on the Internet.&lt;/p&gt;
&lt;p&gt;That certainly doesn&amp;rsquo;t make it &lt;em&gt;unblockable&lt;/em&gt; but it&amp;rsquo;s working at the moment.&lt;/p&gt;
&lt;p&gt;This was a really impressive project, especially considering it&amp;rsquo;s been going for under a year.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/internetff&#34;&gt;IFF on Twitter&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>The Internet Freedom Festival 2017 (Monday)</title>
      <link>https://paul.fawkesley.com/internet-freedom-festival-2017-monday/</link>
      <pubDate>Mon, 06 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/internet-freedom-festival-2017-monday/</guid>
      <description>&lt;p&gt;This week I&amp;rsquo;m in sunny Valencia, returning once more to the &lt;a href=&#34;https://internetfreedomfestival.org/&#34;&gt;Internet Freedom Festival (IFF)&lt;/a&gt;. Monday was an amazing first day, with so many interesting ideas and new inspiration. I&amp;rsquo;m going to write up some notes whenever I can, lest it all fades in time.&lt;/p&gt;
&lt;h2 id=&#34;iff-cares-a-lot-about-diversity-and-inclusion&#34;&gt;IFF cares a lot about diversity and inclusion&lt;/h2&gt;
&lt;p&gt;The opening ceremony this year was a real celebration, with some surprising figures: 119 (I think) countries represented, and 50% female and gender-fluid participation, which is staggering for a festival / conference of this type. It really reflects that IFF is not a tech conference: it&amp;rsquo;s about human rights, through the lens of the Internet. There are journalists, activists, campaigners, lawyers, techies, designers, writers, and many more.&lt;/p&gt;
&lt;p&gt;They also went to town on the code of conduct, spelling out that there&amp;rsquo;s a huge diversity of cultural and social background, and how to have productive sessions. I felt like a very safe place to be (although I&amp;rsquo;m fortunate to feel safe in my work, so hopefully others who don&amp;rsquo;t also felt safe).&lt;/p&gt;
&lt;h2 id=&#34;idea-a-uk-based-tor-collective&#34;&gt;Idea: a UK-based Tor Collective&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;http://www.iandrysdale.com&#34;&gt;Ian&lt;/a&gt; and I have been playing with the idea of running a collective which takes donations and uses them to host &lt;a href=&#34;https://torproject.org&#34;&gt;Tor&lt;/a&gt; nodes. We chatted to a volunteer from the Tor project to validate whether this is actually helpful, and they said that it was. Currently there are three such collectives, one in France, Germany and the USA, and adding servers in the UK would help the network.&lt;/p&gt;
&lt;p&gt;I think there&amp;rsquo;s a lot we could do here to appeal to a wider audience of donors in particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;good content and good design that focuses on the outcome rather than the means&lt;/li&gt;
&lt;li&gt;dead simple payment (maybe &lt;a href=&#34;https://gocardless.com&#34;&gt;GoCardless&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;linking it to the appalling &lt;a href=&#34;https://en.wikipedia.org/wiki/Investigatory_Powers_Act_2016&#34;&gt;recent surveillance legislation&lt;/a&gt; the U.K. slipped through during Brexit distraction&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Take a look at our &lt;a href=&#34;https://opencollective.com/trill&#34;&gt;first iteration of a collective&lt;/a&gt;, through which we&amp;rsquo;re currently running one server.&lt;/p&gt;
&lt;p&gt;Also met a chap doing a criminology PhD on Tor (with an angle of state abuse of power), who was interested in interviewing us and others about our experiences running Tor nodes.&lt;/p&gt;
&lt;h2 id=&#34;open-data&#34;&gt;Open Data&lt;/h2&gt;
&lt;p&gt;At this &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/Open_Data_in_Closed_Societies:_Opportunities_and_Challenges&#34;&gt;workshop&lt;/a&gt; I heard from some people struggling to get data out of the governments of closed societies (Iran and Myanmar, in particular). Fascinating problem in Myanmar is that the early lack of Unicode support for the language meant everyone adopted a proprietary font, which is incredibly difficult to parse. Not sure I understand that completely, but it definitely made me realise we&amp;rsquo;ve got it easy speaking English.&lt;/p&gt;
&lt;h2 id=&#34;art-and-humour-in-creative-strategies-for-hard-times&#34;&gt;Art and Humour in Creative Strategies for Hard Times&lt;/h2&gt;
&lt;p&gt;This &lt;a href=&#34;https://internetfreedomfestival.org/wiki/index.php/It%E2%80%99s_not_just_Activism:_Art_and_Humour_in_Creative_Strategies_for_Hard_Times:_(a_Hands-On_Workshop)&#34;&gt;brilliant workshop&lt;/a&gt; started with some hysterial, inspiring, moving, and upsetting presentations from &lt;a href=&#34;https://tacticaltech.org/&#34;&gt;Tactical Technology Collective&lt;/a&gt;, &lt;a href=&#34;https://pen.gg&#34;&gt;Peng&lt;/a&gt; and &lt;a href=&#34;http://www.newpalmyra.org/&#34;&gt;New Palmyra&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The point of the session was the learn how to use art and creative approaches to further your aim. This is a productive alternative to using fear, which is known to cause people to shut down and stop thinking.&lt;/p&gt;
&lt;p&gt;The culmination of the workshop was that we had to design our own creative solutions to a problem, which led to some fun campaigns.&lt;/p&gt;
&lt;p&gt;It was a pleasure to work with some women from &lt;a href=&#34;http://heartofcode.org/&#34;&gt;Heart of Code&lt;/a&gt;, a women&amp;rsquo;s hackspace in Berlin - we had a good laugh designing a satiral EU policy dictating that men should &amp;ldquo;replace women in the kitchen&amp;rdquo;, a provocotive campaign design to piss off basically everyone!&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/internetff&#34;&gt;IFF on Twitter&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Taking Back My Data, Part 1: Move from Dropbox to Nextcloud</title>
      <link>https://paul.fawkesley.com/my-move-from-dropbox-to-nextcloud/</link>
      <pubDate>Thu, 01 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/my-move-from-dropbox-to-nextcloud/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post documents how I moved from Dropbox to self-hosting a &amp;ldquo;private cloud&amp;rdquo;
using Nextcloud on a Raspberry Pi in my home.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/raspberry-pi-nextcloud-screenshot.png&#34; alt=&#34;Nextcloud home screen&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update[2016-12-08]: Added sections on automatically banning IP addresses and sending abuse report emails. Added paragraph about generating custom Diffie Hellman parameters.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/fawkesley/www.paulfurley.com/commits/master/_posts/2016-12-01-my-move-from-dropbox-to-nextcloud.markdown&#34;&gt;See all updates and edits to this page.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;objective-kick-dropbox&#34;&gt;Objective: Kick Dropbox&lt;/h2&gt;
&lt;p&gt;Today I achieved step one of my master plan to take back ownership of my data. In this blog post I&amp;rsquo;ll describe how I switched from using Dropbox to my own &amp;ldquo;cloud&amp;rdquo;, physically located inside my home.&lt;/p&gt;
&lt;p&gt;Right now, I&amp;rsquo;ve taken back my &lt;em&gt;files&lt;/em&gt;, for example photos, scanned documents, money stuff and business stuff.&lt;/p&gt;
&lt;p&gt;Next I want to take back:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;calendar - I&amp;rsquo;ve got over ten years of calendar stored in Google and it freaks me out&lt;/li&gt;
&lt;li&gt;contacts - Again, Google knows everything.&lt;/li&gt;
&lt;li&gt;email - Much harder, but the holy grail. Worth it? Not sure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This blog post is both to document how I did it and make it easier for the next person.&lt;/p&gt;
&lt;p&gt;The software and hardware setup looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Raspberry Pi (the 4-core one with 1GB memory)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.raspberrypi.org/downloads/raspbian/&#34;&gt;Rasbian Lite&lt;/a&gt; (based on Debian jessie)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nextcloud.com&#34;&gt;Nextcloud&lt;/a&gt; 10 (a fork of Owncloud)&lt;/li&gt;
&lt;li&gt;Nginx&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;install-and-harden-raspberry-pi&#34;&gt;Install and Harden Raspberry Pi&lt;/h2&gt;
&lt;p&gt;I downloaded &lt;a href=&#34;https://www.raspberrypi.org/downloads/raspbian/&#34;&gt;Raspbian Lite&lt;/a&gt; 2016-11-25 and transferred it onto an SD card with the &lt;code&gt;dd&lt;/code&gt; command.&lt;/p&gt;
&lt;p&gt;I connected the Pi to my router, powered it up and found the IP address in the router. I logged in with SSH and
started configuring it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh pi@192.168.0.191
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;First I set the hostname to &lt;code&gt;pi-loft-2&lt;/code&gt; and rebooted.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo sed -i &#39;s/raspberrypi/pi-loft-2/g&#39; /etc/hostname /etc/hosts
sudo reboot
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Next I downloaded a script I often use called &amp;ldquo;Ubuntu Trusty First Five Minutes&amp;rdquo;. This is based on a &lt;a href=&#34;https://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers&#34;&gt;blog post&lt;/a&gt; and it carries out some basic hardening.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget &#39;https://github.com/fawkesley/ubuntu-first-five-minutes/archive/master.zip&#39;

unzip master.zip &amp;amp;&amp;amp; cd ubuntu-first-five-minutes-master/

# EDIT AND UNDERSTAND BOOTSTAP.SH BEFORE YOU RUN IT

./ubuntu-first-five-minutes-master/bootstrap.sh
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;install-zerotier-one&#34;&gt;Install ZeroTier One&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://zerotier.com&#34;&gt;ZeroTier One&lt;/a&gt; is a massively useful decentralized VPN service I use for connecting my devices and getting around NAT and so on. I installed that, joined my private network from the command line, then granted access to the device from the ZeroTier One web interface.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -s https://install.zerotier.com/ | bash  # this is really bad practice, btw

sudo zerotier-cli join &amp;lt;my network id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;set-up-hosts-and-ssh-config&#34;&gt;Set up hosts and SSH config&lt;/h2&gt;
&lt;p&gt;For convenience, I added these lines to my &lt;code&gt;~/.ssh/config&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# ~/.ssh/config

Host pi-loft-2
    User paulfurley
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And to &lt;code&gt;/etc/hosts&lt;/code&gt; (note that this is a ZeroTier One &amp;ldquo;local&amp;rdquo; address, not a real one):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# /etc/hosts
21.136.137.224  pi-loft-2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;With the power of ZeroTier One, I can now do &lt;code&gt;ssh pi-loft-2&lt;/code&gt; from anywhere in the world!&lt;/p&gt;
&lt;h2 id=&#34;configure-encrypted-external-hard-drive&#34;&gt;Configure Encrypted External Hard Drive&lt;/h2&gt;
&lt;p&gt;I use &lt;a href=&#34;https://linux.die.net/man/8/cryptsetup&#34;&gt;cryptsetup&lt;/a&gt; to mount an encrypted drive at &lt;code&gt;/media/externalhd&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install cryptsetup
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note: I aready had an external hard drive formateed as an encrypted LUKS volume. I&amp;rsquo;m going to skip over how to create the disk because it&amp;rsquo;s destructive, and can&amp;rsquo;t remember the exact commands. If you want an encrypted disk, have a read about the &lt;code&gt;cryptsetup luksFormat&lt;/code&gt; command, then come back here.&lt;/p&gt;
&lt;p&gt;I use a &lt;a href=&#34;https://github.com/fawkesley/nextcloud-config-files/blob/master/root/mount.sh&#34;&gt;mount script&lt;/a&gt; to help me remember how to do this. There are two options: you can either store the key as a file on the Raspberry Pi (insecure, but protects against casual theft of the hard drive), or you&amp;rsquo;ll have to enter it each time the Pi boots.&lt;/p&gt;
&lt;h2 id=&#34;configure-cloudpaulfurleycom-in-dns&#34;&gt;Configure cloud.paulfurley.com in DNS&lt;/h2&gt;
&lt;p&gt;I went over to my domain registrar, namecheap.com, and created an A record for &lt;code&gt;cloud.paulfurley.com&lt;/code&gt; to point at my (static) home IP address.&lt;/p&gt;
&lt;p&gt;Unlike most UK ISPs, &lt;a href=&#34;http://aaisp.net&#34;&gt;Andrews &amp;amp; Arnold&lt;/a&gt; give you a static IP address by default. Don&amp;rsquo;t forget to ask your ISP to set this up for you.&lt;/p&gt;
&lt;h2 id=&#34;configure-port-forwarding-on-home-router&#34;&gt;Configure port forwarding on home router&lt;/h2&gt;
&lt;p&gt;I logged into my home router and allocated a static IP &lt;code&gt;192.168.0.191&lt;/code&gt; to the new Raspberry Pi.&lt;/p&gt;
&lt;p&gt;I configured port forwarding for port 80 and 443 (HTTP and HTTPS) through to that IP address.&lt;/p&gt;
&lt;p&gt;Now anyone connecting to &lt;code&gt;http[s]://cloud.paulfurley.com&lt;/code&gt; will hit my home router, which will pass them straight through to the Raspberry Pi, &lt;code&gt;pi-loft-2&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;install-nginx&#34;&gt;Install Nginx&lt;/h2&gt;
&lt;p&gt;I installed the &lt;a href=&#34;http://nginx.org/en/CHANGES-1.6&#34;&gt;Nginx 1.6.2&lt;/a&gt; from the normal Debian jessie respository:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install nginx
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and disabled the default configuration:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo rm /etc/nginx/sites-enabled/default
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;get-an-ssltls-certificate-with-lets-encrypt&#34;&gt;Get an SSL/TLS Certificate with Let&amp;rsquo;s Encrypt&lt;/h2&gt;
&lt;p&gt;I needed a TLS certificate for &lt;code&gt;cloud.paulfurley.com&lt;/code&gt; to secure connections to NextCloud. I used Let&amp;rsquo;s Encrypt with the client called &lt;code&gt;certbot&lt;/code&gt;, and a minimal default Nginx configuration to get things rolling.&lt;/p&gt;
&lt;p&gt;Add jessie-backports and install certbot:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &amp;quot;deb http://ftp.debian.org/debian jessie-backports main&amp;quot; |sudo tee /etc/apt/sources.list.d/jessie-backports.list
sudo apt-get update
sudo apt-get install -t jessie-backports -y certbot
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I enabled a &lt;a href=&#34;https://github.com/fawkesley/nextcloud-config-files/blob/master/etc/nginx/sites-available/letsencrypt-bootstrap&#34;&gt;minimal Nginx configuration&lt;/a&gt; that works with the certbot webroot strategy:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -O /etc/nginx/sites-available/letsencrypt-bootstrap https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/nginx/sites-available/letsencrypt-bootstrap
sudo ln -s /etc/nginx/sites-available/letsencrypt-bootstrap /etc/nginx/sites-enabled/letsencrypt-bootstrap
sudo service nginx reload
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I ran &lt;code&gt;certbot&lt;/code&gt; in dry-run mode:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /etc/letsencrypt/fake-webroot
sudo certbot --dry-run certonly --webroot -w /etc/letsencrypt/fake-webroot -d cloud.paulfurley.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&amp;hellip; that worked, so I ran it again without &lt;code&gt;--dry-run&lt;/code&gt; and got a new certificate located at:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/etc/letsencrypt/live/cloud.paulfurley.com/*.pem
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then I disabled the Nginx configuration (we&amp;rsquo;ll handle renewals later):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo rm /etc/nginx/sites-enabled/letsencrypt-bootstrap
sudo service nginx reload
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;install-and-configure-php-70-and-modules&#34;&gt;Install and Configure PHP 7.0 and modules&lt;/h2&gt;
&lt;p&gt;I wanted to use the modern PHP 7.0, but jessie only had version 5.6.&lt;/p&gt;
&lt;p&gt;I added the &lt;code&gt;stretch&lt;/code&gt; distribution to &lt;code&gt;apt&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &amp;quot;deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi&amp;quot; | sudo tee &amp;gt; /etc/apt/sources.list.d/stretch.list
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&amp;hellip; but in order to prevent everything upgrading to (less stable) stretch packages, I pinned everything to jessie by adding this to &lt;code&gt;/etc/apt/preferences.d/pin-to-jessie.pref&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Package: *
Pin: release n=jessie
Pin-Priority: 600
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then updated the cache:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I installed the &lt;a href=&#34;https://docs.nextcloud.com/server/9/admin_manual/installation/source_installation.html#prerequisites-label&#34;&gt;PHP prerequisites&lt;/a&gt; from the installation manual (note the use of &lt;code&gt;-t stretch&lt;/code&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install -t stretch php7.0-cli php7.0-gd php7.0-xml php7.0-mbstring php7.0-zip php7.0-pgsql php7.0-curl php7.0-bz2 php7.0-intl php7.0-mcrypt php7.0-fpm
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note: there were some other, optional(?) packages that I didn&amp;rsquo;t install.&lt;/p&gt;
&lt;h3 id=&#34;configure-php-fpm-environment-variables&#34;&gt;Configure PHP-FPM environment variables&lt;/h3&gt;
&lt;p&gt;I don&amp;rsquo;t know why this is necessary, but the manual said to do it.&lt;/p&gt;
&lt;p&gt;Uncomment the environment variables lines in &lt;code&gt;/etc/php/7.0/fpm/pool.d/www.conf&lt;/code&gt;, as per the &lt;a href=&#34;https://docs.nextcloud.com/server/9/admin_manual/installation/source_installation.html#php-fpm-configuration-notes&#34;&gt;Nextcloud docs&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;install-and-configure-postgresql-database&#34;&gt;Install and Configure PostgreSQL Database&lt;/h2&gt;
&lt;p&gt;I installed PostgreSQL 9.6:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install -t jessie postgresql-9.6
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And created a database and user:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo su - postgres
createdb nextcloud

PASSWORD=$(openssl rand -base64 15)
echo &amp;quot;PASSWORD: $PASSWORD&amp;quot;

echo &amp;quot;CREATE USER nextcloud WITH PASSWORD &#39;${PASSWORD}&#39;;&amp;quot; | psql nextcloud
echo &amp;quot;GRANT ALL PRIVILEGES ON DATABASE \&amp;quot;nextcloud\&amp;quot; TO nextcloud;&amp;quot; | psql nextcloud
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Keep a note of this database password!&lt;/strong&gt; You&amp;rsquo;ll need to configure Nextcloud with it.&lt;/p&gt;
&lt;h2 id=&#34;download-and-verify-nextcloud&#34;&gt;Download and Verify NextCloud&lt;/h2&gt;
&lt;p&gt;I downloaded the latest Nextcloud server, version 10.0.1:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /tmps
wget &#39;https://download.nextcloud.com/server/releases/nextcloud-10.0.1.zip&#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;verify-its-pgp-signature&#34;&gt;Verify its PGP signature&lt;/h3&gt;
&lt;p&gt;I got the signing PGP key and the checksums file and verified the install:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://download.nextcloud.com/server/releases/nextcloud-10.0.1.zip.asc
wget https://nextcloud.com/nextcloud.asc
gpg --import nextcloud.asc
gpg --verify nextcloud-10.0.1.zip.asc nextcloud-10.0.1.zip
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I saw:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gpg: Good signature from &amp;quot;Nextcloud Security &amp;lt;security@nextcloud.com&amp;gt;&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;(And also a warning that the key is not certified with a trusted signature. That means I haven&amp;rsquo;t independently verified that the signing key I downloaded, &lt;code&gt;nextcloud.asc&lt;/code&gt;, is actually Nextcloud&amp;rsquo;s key - it could have been replaced with a bad one. As a half-measure I Googled the key fingerprint &lt;a href=&#34;https://www.google.co.uk/?gfe_rd=cr&amp;amp;ei=0TpHWPHcHqeg8wewparoBg&amp;amp;gws_rd=ssl#q=2880+6A87+8AE4+23A2+8372++792E+D758+99B9+A724+937A&#34;&gt;2880 6A87 8AE4 23A2 8372  792E D758 99B9 A724 937A&lt;/a&gt; and saw it listed on many sites, giving it at least some credibility.)&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;install-nextcloud-into-nginx-webroot&#34;&gt;Install NextCloud into Nginx webroot&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;cd /tmp
unzip nextcloud-10.0.1.zip
sudo mv /tmp/nextcloud /var/www/html
sudo chown -R root /var/www/html/nextcloud
sudo chgrp -R www-data /var/www/html/nextcloud
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I generated a 4096 (large) Diffie-Hellman parameter to use with SSL. I did it on my fast laptop and transferred it to the pi, lest I&amp;rsquo;d been there all day:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo openssl dhparam -out /tmp/dhparam.pem 4096
scp /tmp/dhparam.pem pi-loft-2:~/etc/nginx/ssl/dhparam.pem 4096
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I installed and enabled a &lt;a href=&#34;https://github.com/fawkesley/nextcloud-config-files/blob/master/etc/nginx/sites-available/nextcloud&#34;&gt;nextcloud Nginx configuration file&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re still waiting for the Diffie Hellman parameters file to be generated, you can temporarily comment out the line starting &lt;code&gt;ssl_dhparam&lt;/code&gt; and it&amp;rsquo;ll start without that.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -O /etc/nginx/sites-available/nextcloud https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/nginx/sites-available/nextcloud
sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud
sudo service nginx restart
sudo service php7.0-fpm restart
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;configure-nextcloud&#34;&gt;Configure Nextcloud&lt;/h2&gt;
&lt;p&gt;I added &lt;code&gt;cloud.paulfurley.com&lt;/code&gt; to the &lt;code&gt;trusted_domains&lt;/code&gt; setting in &lt;code&gt;/var/www/nextcloud/config/config.php&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  array (
    0 =&amp;gt; &#39;192.168.0.191&#39;,
    1 =&amp;gt; &#39;cloud.paulfurley.com&#39;,
  ),
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And fixed &lt;code&gt;overwrite.cli.url&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &#39;overwrite.cli.url&#39; =&amp;gt; &#39;https://cloud.paulfurley.com/nextcloud&#39;,
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And specified logging to syslog, rather than a separate file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &#39;log_type&#39; =&amp;gt; &#39;syslog&#39;,
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I gave Nextcloud (or specifically, the &lt;code&gt;www-data&lt;/code&gt; user) permission to write its own configuration:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo chmod -R 750 /var/www/nextcloud/{config,apps}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;Note: I initially didn&amp;rsquo;t allow this, but ran into problems where the server would return HTTP 503 for WebDAV requests. Making the config writeable fixed this. Hmm.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I made the Nextcloud data directory on the external hard drive:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir /media/externalhd/nextcloud
sudo chown www-data /media/externalhd/nextcloud
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;use-nextclouds-own-configuration-screen&#34;&gt;Use Nextcloud&amp;rsquo;s own configuration screen&lt;/h3&gt;
&lt;p&gt;I visited &lt;code&gt;https:/cloud.paulfurley.com/nextcloud/&lt;/code&gt; and created an admin user. I entered the PostgreSQL database name, user and password, and was away.&lt;/p&gt;
&lt;p&gt;I then used Nextcloud to create a normal (non-admin) user. I will keep the admin user for special occasions.&lt;/p&gt;
&lt;h2 id=&#34;configure-outbound-email-with-ssmtp&#34;&gt;Configure outbound email with sSMTP&lt;/h2&gt;
&lt;p&gt;I wanted the server to be able to email me with alerts and stuff. I configured
[mailgun][mailgun] for &lt;code&gt;cloud.paulfurley.com&lt;/code&gt; and used &lt;code&gt;sSMTP&lt;/code&gt; to relay emails
through it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install ssmtp mailutils
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And add some config files:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -O /etc/ssmtp/ssmtp.conf https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/ssmtp/ssmtp.conf
wget -O /etc/ssmtp/ssmtp.conf https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/ssmtp/ssmtp.conf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then edit both files with your own domain and API key.&lt;/p&gt;
&lt;h2 id=&#34;configure-fail2ban&#34;&gt;Configure fail2ban&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;http://www.fail2ban.org/wiki/index.php/Main_Page&#34;&gt;fail2ban&lt;/a&gt; works by parsing log files for authentication failure messages. When it sees repeated failures, it takes some action. Typically that involves adding a firewall rule to block the offending IP address.&lt;/p&gt;
&lt;p&gt;With nextcloud configured to log to syslog, a failed authentication looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Dec  7 17:57:09 pi-loft-2 ownCloud[31042]: {core} Login failed: &#39;paul&#39; (Remote IP: &#39;31.105.224.167&#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I wrote a &lt;a href=&#34;https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/fail2ban/filter.d/nextcloud.conf&#34;&gt;filter&lt;/a&gt; to scan syslog for login failure messages.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -O /etc/fail2ban/filter.d/nextcloud.conf https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/fail2ban/filter.d/nextcloud.conf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I adapted an &lt;a href=&#34;https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/fail2ban/action.d/mail-whois-lines-paulfurley.conf&#34;&gt;action&lt;/a&gt; to parse the log file and whois information for the offending IP and send me that by email:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -O /etc/fail2ban/action.d/mail-whois-lines-paulfurley.conf https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/fail2ban/action.d/mail-whois-lines-paulfurley.conf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I created a &lt;a href=&#34;https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/fail2ban/jail.d/nextcloud.conf&#34;&gt;jail&lt;/a&gt; to activate the filter:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -O /etc/fail2ban/jail.d/nextcloud.conf https://github.com/fawkesley/nextcloud-config-files/raw/master/etc/fail2ban/jail.d/nextcloud.conf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Don&amp;rsquo;t forget to edit these with your own details.&lt;/p&gt;
&lt;h3 id=&#34;test-the-fail2ban-jail&#34;&gt;Test the fail2ban jail&lt;/h3&gt;
&lt;p&gt;From a remote server, I hit a few different endpoints with bad credentials:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ curl --user paul:badpassword https://cloud.paulfurley.com/nextcloud/index.php
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;$ curl --user paul:badpassword https://cloud.paulfurley.com/nextcloud/remote.php/dav/files/paul
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;d:error xmlns:d=&amp;quot;DAV:&amp;quot; xmlns:s=&amp;quot;http://sabredav.org/ns&amp;quot;&amp;gt;
  &amp;lt;s:exception&amp;gt;Sabre\DAV\Exception\NotAuthenticated&amp;lt;/s:exception&amp;gt;
  &amp;lt;s:message&amp;gt;Username or password was incorrect, Username or password was incorrect&amp;lt;/s:message&amp;gt;
&amp;lt;/d:error&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;While watching the logs:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tail -f /var/log/fail2ban.log /var/log/syslog
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Happily, this appeared in the logs, and my remote server could no longer talk to &lt;code&gt;cloud.paulfurley.com&lt;/code&gt; at all:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Dec  8 14:04:44 pi-loft-2 ownCloud[10257]: {core} Login failed: &#39;paul&#39; (Remote IP: &#39;46.101.3.6&#39;)
Dec  8 14:05:15 pi-loft-2 ownCloud[31042]: {core} Login failed: &#39;paul&#39; (Remote IP: &#39;46.101.3.6&#39;)
Dec  8 14:05:46 pi-loft-2 ownCloud[11301]: {core} Login failed: &#39;paul&#39; (Remote IP: &#39;46.101.3.6&#39;)

==&amp;gt; /var/log/fail2ban.log &amp;lt;==
2016-12-08 14:05:47,189 fail2ban.actions[11783]: WARNING [nextcloud] Ban 46.101.3.6

==&amp;gt; /var/log/syslog &amp;lt;==
Dec  8 14:05:47 pi-loft-2 sSMTP[12087]: Creating SSL connection to host
Dec  8 14:05:47 pi-loft-2 sSMTP[12087]: SSL connection using RSA_AES_128_CBC_SHA1
Dec  8 14:05:49 pi-loft-2 sSMTP[12087]: Sent mail for postmaster@cloud.paulfurley.com (221 See you later. Yours truly, Mailgun) uid=0 username=root outbytes=6178
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Shortly after, I received an email - it&amp;rsquo;s working!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Subject: [Fail2Ban] default: banned 46.101.3.6 from
  pi-loft-2
To: &amp;lt;cloud-notify@paulfurley.com&amp;gt;

Hi,

The IP 46.101.3.6 has just been banned by Fail2Ban after
3 attempts against default.


Here is more information about 46.101.3.6:

...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can look at the status of a jail with &lt;code&gt;fail2ban-client&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ fail2ban-client status nextcloud
Status for the jail: nextcloud
|- filter
|  |- File list:        /var/log/syslog
|  |- Currently failed: 1
|  `- Total failed:     17
`- action
   |- Currently banned: 1
   |  `- IP list:       46.101.3.6
   `- Total banned:     1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And unban clients too:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;fail2ban-client set nextcloud unbanip 46.101.3.6
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;install-nextcloud-iphone-app&#34;&gt;Install Nextcloud iPhone App&lt;/h2&gt;
&lt;p&gt;I downloaded the iPhone Nextcloud app and logged in using the URL &lt;code&gt;https://cloud.paulfurley.com/nextcloud&lt;/code&gt; and the username and password of my new, normal user.&lt;/p&gt;
&lt;h2 id=&#34;install-scanner-pro-iphone-app&#34;&gt;Install Scanner Pro iPhone App&lt;/h2&gt;
&lt;p&gt;I configured a new &amp;ldquo;cloud&amp;rdquo; service of the type WebDAV in Scanner Pro. I used the following URL with the username and password of my new user:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://cloud.paulfurley.com/nextcloud/remote.php/dav/paul/
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;future-improvements&#34;&gt;Future Improvements&lt;/h2&gt;
&lt;p&gt;That was a good minimum viable config, but I&amp;rsquo;ve still got some things that need
improving:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Try and move authentication to Nginx (before hitting Nextcloud&amp;rsquo;s PHP) if possible and investigate TLS client certificates.&lt;/li&gt;
&lt;li&gt;Configure automatic certificate renewal with Let&amp;rsquo;s Encrypt.&lt;/li&gt;
&lt;li&gt;Improve SSL score (currently B due to weak Diffie Hillman parameters, see &lt;a href=&#34;https://www.ssllabs.com/ssltest/analyze.html?d=cloud.paulfurley.com&#34;&gt;SSL Labs analysis&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Set up more log monitoring &amp;amp; intrusion detection.&lt;/li&gt;
&lt;li&gt;Move postgresql database from the SD card to the external hard drive.&lt;/li&gt;
&lt;li&gt;Automatically backup configuration.&lt;/li&gt;
&lt;li&gt;Automatically backup &lt;em&gt;everything&lt;/em&gt; (incrementally) to another, offsite server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/raspberry-pi-nextcloud-loft.jpg&#34; alt=&#34;Raspberry Pi in my loft&#34;&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Thoughts about decoupling PGP and email clients</title>
      <link>https://paul.fawkesley.com/thoughts-about-decoupling-pgp-and-email-clients/</link>
      <pubDate>Mon, 23 May 2016 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/thoughts-about-decoupling-pgp-and-email-clients/</guid>
      <description>&lt;p&gt;Thanks to the Bitmask session at the Internet Freedom Festival 2016 for starting me off thinking about this.&lt;/p&gt;
&lt;p&gt;I want to see widespread adoption of end-to-end email encryption. Email is brilliant, it&amp;rsquo;s not going away, and it&amp;rsquo;s fast becoming the least-secure part of our Internet lives.&lt;/p&gt;
&lt;p&gt;Why can&amp;rsquo;t I opt in to PGP-encrypted bank statements by email? Why can&amp;rsquo;t I exchange encrypted emails with my mum?&lt;/p&gt;
&lt;p&gt;This post is some ideas about getting &lt;strong&gt;non-geek users&lt;/strong&gt; using PGP. To keep things simple let&amp;rsquo;s imagine an Apple user who currently uses Apple&amp;rsquo;s mail clients on the desktop and phone.&lt;/p&gt;
&lt;p&gt;I believe if we want to gain mass adoption of end-to-end email encryption, we need to do two things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hide encryption from the user.&lt;/li&gt;
&lt;li&gt;Stop trying to build PGP into mail clients.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;hide-it-from-the-user&#34;&gt;Hide it from the user&lt;/h2&gt;
&lt;p&gt;The first point has become obvious thanks to services like iMessage and WhatsApp which just went ahead and built end-to-end crypto and barely told anyone about it. They &lt;em&gt;hid the crypto bits&lt;/em&gt; rather than making the user understand them. They had the advantage of using a &lt;em&gt;centralized&lt;/em&gt; public-key infrastructure, so we have to trust them not to screw us over.&lt;/p&gt;
&lt;p&gt;On the second point, ordinary users are not interested in learning about public/private key pairs or verifying key fingerprints. Let&amp;rsquo;s not make them.&lt;/p&gt;
&lt;p&gt;One of the objections I hear about hiding crypto goes along the lines of &amp;ldquo;then it&amp;rsquo;s easy to man-in-the-middle those users, so there&amp;rsquo;s no point doing it&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Yep, if we automate and hide the hard stuff, those users will have a less secure PGP experience than us geeks, but &lt;em&gt;it&amp;rsquo;s a lot more secure than what they&amp;rsquo;re currently doing!&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s stop aiming for perfect. Today everything is broken. Tomorrow, let&amp;rsquo;s aim for slightly less broken.&lt;/p&gt;
&lt;h2 id=&#34;stop-trying-to-build-pgp-into-mail-clients&#34;&gt;Stop trying to build PGP into mail clients&lt;/h2&gt;
&lt;p&gt;Apple make beautiful mail clients that people like to use. Their mail clients don&amp;rsquo;t support PGP. Should I really be telling my friends and family to switch to Thunderbird and install this weird plugin called Enigmail?&lt;/p&gt;
&lt;p&gt;And what&amp;rsquo;s the story for mobile? Go and download &lt;em&gt;another&lt;/em&gt; unfamiliar application, then get the app that syncs your keys, uhhh&amp;hellip;&lt;/p&gt;
&lt;p&gt;There are always going to be beautiful mail clients that don&amp;rsquo;t care to support PGP. The skills required to make a beautiful mail clients are quite different from those required to implement PGP.&lt;/p&gt;
&lt;p&gt;Mailpile is a valiant effort to do both - hooray to those folks - but I&amp;rsquo;ve come to believe that&amp;rsquo;s the wrong approach.&lt;/p&gt;
&lt;p&gt;I think we need to de-couple the mail client and the PGP capability.&lt;/p&gt;
&lt;h2 id=&#34;personal-pgp-proxies&#34;&gt;Personal PGP Proxies&lt;/h2&gt;
&lt;p&gt;How about this: every company, family or close organisation gets their own &amp;ldquo;PGP proxy&amp;rdquo;. This is a small, publicly routable computer which performs several functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hold the public &amp;amp; private keys of users (more securely than desktop computers do)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Proxy&lt;/em&gt; inbound IMAP and SMTP from users&#39; mail clients&lt;/li&gt;
&lt;li&gt;Add and remove PGP encryption to emails as they pass through the proxy&lt;/li&gt;
&lt;li&gt;Advertise the user&amp;rsquo;s public key in outbound emails&lt;/li&gt;
&lt;li&gt;Discover other users&#39; public keys via inbound emails, keyservers and other means&lt;/li&gt;
&lt;li&gt;Automate key rotation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, I can set up a PGP proxy for my family and reconfigure the SMTP and IMAP settings in my family&amp;rsquo;s mobiles and desktops to point at the proxy.&lt;/p&gt;
&lt;p&gt;When my Dad sends my Mum and email, it goes like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dad&amp;rsquo;s mail client connects to our PGP proxy via SMTP, authenticates somehow, delivers email to proxy&lt;/li&gt;
&lt;li&gt;PGP proxy attaches Dad&amp;rsquo;s public key to outbound email&lt;/li&gt;
&lt;li&gt;PGP proxy finds Mum&amp;rsquo;s public key (somehow)&lt;/li&gt;
&lt;li&gt;PGP proxy encrypts the email to Mum&lt;/li&gt;
&lt;li&gt;PGP proxy connects to Gmail via SMTP, authenticates with Dad&amp;rsquo;s actual Gmail username &amp;amp; password, sends email&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mum&amp;rsquo;s inbox now receives an encrypted email. This would look bad if she logged into webmail, but that&amp;rsquo;s OK because her mail client &amp;amp; PGP proxy do a similar dance for receiving the email:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mum&amp;rsquo;s mail client connects to PGP proxy via IMAP, authenticates somehow&lt;/li&gt;
&lt;li&gt;PGP proxy connects to Gmail using Mum&amp;rsquo;s Gmail credentials&lt;/li&gt;
&lt;li&gt;PGP proxy downloads Dad&amp;rsquo;s email, see that it&amp;rsquo;s encrypted&lt;/li&gt;
&lt;li&gt;PGP proxy uses Mum&amp;rsquo;s private key to decrypt email&lt;/li&gt;
&lt;li&gt;PGP proxy removes the attached public key and records it for later&lt;/li&gt;
&lt;li&gt;PGP proxy sends decrypted email via IMAP to Mum&amp;rsquo;s mail client&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now Mum sees the exact same email that Dad originally sent. Neither knows that Google didn&amp;rsquo;t get to read their email on this occasion.&lt;/p&gt;
&lt;h2 id=&#34;problems&#34;&gt;Problems&lt;/h2&gt;
&lt;p&gt;There are some problems with this scheme:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It completely breaks webmail, and many people love Gmail&amp;rsquo;s web interface.&lt;/li&gt;
&lt;li&gt;It requires someone setting up and running a PGP proxy, and keeping it safe. (Although it&amp;rsquo;s probably easier to keep this safe than a desktop computer)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And probably a load more.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Hardening my Development Machine</title>
      <link>https://paul.fawkesley.com/hardening-my-development-environment/</link>
      <pubDate>Tue, 22 Mar 2016 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/hardening-my-development-environment/</guid>
      <description>&lt;p&gt;&lt;em&gt;This post describes ways that I&amp;rsquo;ve hardened my development machine against
attackers, without restricting my ability to do &amp;ldquo;risky&amp;rdquo; activities like
run other people&amp;rsquo;s code. In short, it involves VMs, containers and a bit of
discipline.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;running-other-peoples-code-is-essential&#34;&gt;Running Other People&amp;rsquo;s Code is Essential&lt;/h2&gt;
&lt;p&gt;As part of my work as a developer, I spend a lot of time testing out random
code from the Internet. Whether that be some fancy OCR code or a new Django
library, it&amp;rsquo;s brilliant to be able to quickly spin up other people&amp;rsquo;s code in
unfamiliar languages and have a play.&lt;/p&gt;
&lt;p&gt;To me, this is what the Internet is all about; sharing scrappy ideas through
the medium of code.&lt;/p&gt;
&lt;p&gt;The kind of code I&amp;rsquo;m talking about often isn&amp;rsquo;t nicely packaged. It often hasn&amp;rsquo;t
even been reviewed or tested - it&amp;rsquo;s just there, take it or leave it.&lt;/p&gt;
&lt;h2 id=&#34;current-operating-systems-are-too-permissive&#34;&gt;Current Operating Systems Are Too Permissive&lt;/h2&gt;
&lt;p&gt;The problem with running other people&amp;rsquo;s code, at least with my current setup,
is that any code I run has exactly the same privilege as me.&lt;/p&gt;
&lt;p&gt;For starters, any code I run can both read and write anything inside my home
directory, &lt;code&gt;/home/paul/&lt;/code&gt;. It can read all my files - including those inside my
encfs encrypted filesystem. It can read my SSH &amp;amp; PGP keys, but that&amp;rsquo;s OK,
because they&amp;rsquo;re encrypted with a password, right?&lt;/p&gt;
&lt;p&gt;Except, oh dear, it&amp;rsquo;s running as me, so it can hang around and wait for me to
type in my password, then decrypt the underlying keys.&lt;/p&gt;
&lt;p&gt;OK, it probably can&amp;rsquo;t access &amp;ldquo;system&amp;rdquo; stuff on my filesystem - eg root-access&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;stuff, because that requires me to type &lt;code&gt;sudo&lt;/code&gt; and enter my password. But,
oops, we just learned that it can snoop my keyboard, so maybe it can after all.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yes, maybe I&amp;rsquo;ve over-simplified it a bit, but essentially, anything I run as
me is &lt;em&gt;basically the same as me&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Aside from all my data, if someone gains access to my SSH &amp;amp; PGP keys, they get
to totally impersonate me: they can trash servers I&amp;rsquo;m responsible for, they
can commit code as me and release malicious packages under my name, screwing
over my users.  As a developer, I have a responsibility to keep my users safe,
so I mustn&amp;rsquo;t let this happen.&lt;/p&gt;
&lt;h2 id=&#34;is-there-a-way-to-safely-run-untrusted-code&#34;&gt;Is There a Way to Safely Run Untrusted Code?&lt;/h2&gt;
&lt;p&gt;Clearly it&amp;rsquo;s important to be able to run other people&amp;rsquo;s code. It&amp;rsquo;s not helpful
to say &amp;ldquo;don&amp;rsquo;t run anything you don&amp;rsquo;t trust&amp;rdquo; as trust is complex, and most of
the stuff on the Internet hasn&amp;rsquo;t earned our trust, but that doesn&amp;rsquo;t mean we
shouldn&amp;rsquo;t be able to use it.&lt;/p&gt;
&lt;p&gt;The question is, can we run other people&amp;rsquo;s code without putting our own
data and identity at risk?&lt;/p&gt;
&lt;h2 id=&#34;using-containers-and-virtual-machines&#34;&gt;Using Containers and Virtual Machines&lt;/h2&gt;
&lt;p&gt;We need a way to reduce the scope of what code is able to do, and modern
operating systems have a lot of things on offer.&lt;/p&gt;
&lt;p&gt;These are the simple rules I use to harden my machine. Absolutely, this is by
no means perfect, but it&amp;rsquo;s an excellent trade-off of usability and security,
and it&amp;rsquo;s a lot less broken than it was before :)&lt;/p&gt;
&lt;h3 id=&#34;do-development-inside-a-virtual-machine&#34;&gt;Do Development Inside a Virtual Machine&lt;/h3&gt;
&lt;p&gt;The biggest change to my way of working was moving &lt;em&gt;all&lt;/em&gt; my development inside
a virtual machine.&lt;/p&gt;
&lt;p&gt;I share my &lt;code&gt;~/repo/&lt;/code&gt; directory through from the host machine to the virtual
machine, allowing me to edit code on the host machine and run it on the guest
machine.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s important to be a bit limited about what you share into the virtual
machine - for example, don&amp;rsquo;t share your whole home directory else you&amp;rsquo;re
back in the same position!&lt;/p&gt;
&lt;p&gt;I configure the machine using &lt;a href=&#34;https://www.vagrantup.com/downloads.html&#34;&gt;Vagrant&lt;/a&gt; which gives me the extra
benefit of making it reproducible and throw-away - I can (and do) regularly
destroy the machine and rebuild it from scratch.&lt;/p&gt;
&lt;p&gt;That also means I can more easily re-install my host machine, or move to
another operating system altogether, without having to work out how to rebuild
my dev machine each time.&lt;/p&gt;
&lt;p&gt;Some tips:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Limit what directories you share from the host to virtual machine&lt;/li&gt;
&lt;li&gt;Avoid using git inside the virtual machine: do that outside.&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t enable SSH forwarding as this allows a compromised virtual machine
to impersonate your SSH identity.&lt;/li&gt;
&lt;li&gt;Configure the machine with code, so that it can be destroyed regularly.&lt;/li&gt;
&lt;li&gt;Destroy it regularly.&lt;/li&gt;
&lt;li&gt;Automate out anything you find annoying each time you rebuild the machine.&lt;/li&gt;
&lt;li&gt;Use a VM per project if it makes sense.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Feel free to rip of my &lt;a href=&#34;https://github.com/fawkesley/pauls-development-virtual-machine&#34;&gt;virtual machine config from Github.&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;keep-my-host-machine-simple&#34;&gt;Keep My Host Machine Simple&lt;/h3&gt;
&lt;p&gt;Now I&amp;rsquo;ve got a throw-away virtual machine to mess around with, I&amp;rsquo;ve become a
lot stricter about the security of the host machine.&lt;/p&gt;
&lt;p&gt;One of the best ways to reduce the &amp;ldquo;attack surface&amp;rdquo; - the number of possible
ways of attacking my machine - is to reduce the amount of code it runs overall,
or in other words, &lt;em&gt;keep it simple&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Think twice before running &lt;code&gt;sudo&lt;/code&gt; on the host machine.&lt;/p&gt;
&lt;h3 id=&#34;use-only-the-system-package-manager&#34;&gt;Use Only the System Package Manager&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve noticed more and more libraries whose install
instructions involve &lt;code&gt;curl&lt;/code&gt; and &lt;code&gt;sudo bash&lt;/code&gt;&amp;hellip; eek.&lt;/p&gt;
&lt;p&gt;I try to be strict about only installing packages through the system package
manager - in my case, &lt;code&gt;apt&lt;/code&gt; on Ubuntu.&lt;/p&gt;
&lt;p&gt;There are a number of benefits to only using the system package manager:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Some level of vetting has happened by a competent person, in my case a Debian
or Ubuntu package maintainer. Yes, they&amp;rsquo;re often volunteers with little time
but in my experience these fine folks care a &lt;em&gt;lot&lt;/em&gt; about security.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s much easier to resolve &amp;ldquo;dependency hell&amp;rdquo; when you know what versions
you&amp;rsquo;re running.&lt;/li&gt;
&lt;li&gt;Packages installed through the package manager are more easily removed (at
least when they&amp;rsquo;re well behaved).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;be-incredibly-selective-about-third-party-repositories&#34;&gt;Be Incredibly Selective About Third-Party Repositories&lt;/h3&gt;
&lt;p&gt;Conscientious organisations release their software in a number of native
package formats, for example .DEB on Debian, Ubuntu and co. They usually
combine this with running their own repositories (PPAs, whatever) which makes
life incredibly simple.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s nothing wrong with using third-party repositories, but bear in mind
that these packages have root access on your machine, can automatically update
themselves, and are potentially completely unvetted.&lt;/p&gt;
&lt;p&gt;Be aware of how much trust you are placing in the organisation&amp;rsquo;s honesty &lt;em&gt;and&lt;/em&gt;
ability to keep &lt;em&gt;their&lt;/em&gt; machines secure. (If I were an attacker looking for
&amp;ldquo;value for money&amp;rdquo; I&amp;rsquo;d go after a popular PPA eg &lt;code&gt;python-opencv&lt;/code&gt; that isn&amp;rsquo;t
subject to the scrutiny of the Debian maintainers).&lt;/p&gt;
&lt;h3 id=&#34;sandbox-mail-client-and-web-browser&#34;&gt;Sandbox Mail Client and Web Browser&lt;/h3&gt;
&lt;p&gt;The last piece of the puzzle, at least for now, is hardening my web browser and
email client. Although I have trust in Mozilla Firefox and Thunderbird (perhaps
misplaced on the latter), when exploits are found they can be en masse,
for example through adverts placed on high profile websites.&lt;/p&gt;
&lt;p&gt;This is especially true for the Tor Browser as most users run a single
version and all traffic passes through exit nodes, which can be compromised.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s no reason for my browser to be able to read my SSH &amp;amp; PGP keys, so I run
it inside a neat containerising tool called &lt;a href=&#34;https://firejail.wordpress.com/&#34;&gt;firejail&lt;/a&gt;. This prevents it
from seeing other processes, files and so on outside of limits defined in its
&amp;ldquo;profile.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;nope-its-not-perfect&#34;&gt;Nope, It&amp;rsquo;s Not Perfect&lt;/h2&gt;
&lt;p&gt;Sure, there are flaws. One is that I&amp;rsquo;m currently running Google Chrome for
work stuff and it doesn&amp;rsquo;t play well with firejail. Oh, and it&amp;rsquo;s installed from
a PPA, so Google has root on my machine. That needs some work.&lt;/p&gt;
&lt;p&gt;Recently I&amp;rsquo;ve found myself thinking more and more, let&amp;rsquo;s stop nitpicking
about &lt;em&gt;perfection&lt;/em&gt;. At the moment, security of everything is basically s**t:
email, desktop computers, internet of things, it&amp;rsquo;s all totally broken.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s strive to notch up from &amp;ldquo;shit&amp;rdquo; to &amp;ldquo;satisfactory&amp;rdquo;, and go from there.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Playing with Network Rail Train Movements Data Feed</title>
      <link>https://paul.fawkesley.com/playing-with-network-rail-train-movements-data-feed/</link>
      <pubDate>Mon, 22 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/playing-with-network-rail-train-movements-data-feed/</guid>
      <description>&lt;p&gt;&lt;em&gt;On Friday I played with the Network Rail &lt;a href=&#34;http://nrodwiki.rockshore.net/index.php/Train_Movements&#34;&gt;Train Movements&lt;/a&gt;
data feed. This contains signalling messages from across the UK rail network.
I&amp;rsquo;ve started working on a more developer-friendly Python API.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;about-the-train-movements-data-feed&#34;&gt;About the Train Movements Data Feed&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been interested in the &lt;a href=&#34;http://nrodwiki.rockshore.net/index.php/Train_Movements&#34;&gt;Train Movements&lt;/a&gt;
data feed for a while as it gives near real-time access to train locations
across the network. There are many points on the network that can report
location - not just stations - so there&amp;rsquo;s a reasonable volume of updates.&lt;/p&gt;
&lt;p&gt;The particularly neat thing is that this data feed categorises movements
as things like &amp;ldquo;arrival&amp;rdquo; and &amp;ldquo;departure&amp;rdquo; and compares the timestamp with the
expected (timetabled) timestamp. I&amp;rsquo;ve got a few ideas up my sleeve about what
this data could be used for, so I spent some time playing with the data.&lt;/p&gt;
&lt;h2 id=&#34;accessing-network-rail-data-feeds&#34;&gt;Accessing Network Rail Data Feeds&lt;/h2&gt;
&lt;p&gt;You need to &lt;a href=&#34;https://datafeeds.networkrail.co.uk/&#34;&gt;request a developer account&lt;/a&gt; in order
to get access to the Network Rail data feeds. For some reason they limit these
accounts to only 500 developers. After reactivating my account from several
years ago, I fired up some old code I&amp;rsquo;d written to get started and was pleased
to find it still worked.&lt;/p&gt;
&lt;h2 id=&#34;making-sense-of-train-movements&#34;&gt;Making Sense of Train Movements&lt;/h2&gt;
&lt;p&gt;There are several types of message given by the Train Movements data feed which
allow you to build up the state of all trains on the network according to &lt;a href=&#34;http://nrodwiki.rockshore.net/index.php/TRUST_Message_Process&#34;&gt;this
state machine&lt;/a&gt;. However, for now, I&amp;rsquo;m just interested in message
type 3: &amp;ldquo;Train Movement&amp;rdquo;. These are the instantaneous location reports from a
particular location, and they look like
this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre 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-json&#34; data-lang=&#34;json&#34;&gt;{
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;: {
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;variation_status&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;LATE&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;planned_timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1455883470000&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;event_type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;DEPARTURE&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;train_terminated&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;false&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;direction_ind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;UP&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;toc_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;88&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;auto_expected&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;event_source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;AUTOMATIC&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;reporting_stanox&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;87701&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;gbtt_timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1455883440000&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;platform&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; 1&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;correction_ind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;false&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;original_loc_stanox&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;planned_event_type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;DEPARTURE&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timetable_variation&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;delay_monitoring_point&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;line_ind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;F&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;next_report_stanox&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;87700&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;train_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;892A39MI19&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;offroute_ind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;false&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;current_train_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;loc_stanox&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;87701&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;next_report_run_time&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;route&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;train_file_address&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;division_code&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;88&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;actual_timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1455883560000&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;original_loc_timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;train_service_code&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;24745000&amp;#34;&lt;/span&gt;
    },
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;header&amp;#34;&lt;/span&gt;: {
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;msg_type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;0003&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;msg_queue_timestamp&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1455883630000&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;source_dev_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;original_data_source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SMART&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;source_system_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;TRUST&amp;#34;&lt;/span&gt;
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;First impressions are that there are a lot of magic numbers, for example
&lt;code&gt;&amp;quot;reporting_stanox&amp;quot;: &amp;quot;87701&amp;quot;&lt;/code&gt;. I&amp;rsquo;m sure rail professionals know what this means
but it&amp;rsquo;s completely baffling to me, a mere developer.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;http://nrodwiki.rockshore.net/index.php/Train_Movements&#34;&gt;documentation&lt;/a&gt; is &lt;em&gt;OK&lt;/em&gt; but could do with
improving. &lt;em&gt;(I did try to sign up for the Wiki in order to help out, but when
asked for a 50 word
&amp;ldquo;bio&amp;rdquo; I got snarky and they understandably probably hit delete!)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Alas, the documentation isn&amp;rsquo;t hosted on Github so I can&amp;rsquo;t just submit issues &amp;amp;
pull requests: I have to ask for permission to be able to even comment.&lt;/p&gt;
&lt;h2 id=&#34;making-sense-of-train-movement-messages&#34;&gt;Making Sense of Train Movement Messages&lt;/h2&gt;
&lt;p&gt;There are lots of magic IDs in this data so I set about trying to decode some
of them. To keep it simple, I decided to decode:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Train Operating Company (&lt;code&gt;toc_id&lt;/code&gt; and &lt;code&gt;division_code&lt;/code&gt;, apparently)&lt;/li&gt;
&lt;li&gt;The arrival or departure station.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;train-operating-company&#34;&gt;Train Operating Company&lt;/h3&gt;
&lt;p&gt;This bit was simple enough - it turns out that &lt;code&gt;&amp;quot;toc_id&amp;quot;: &amp;quot;88&amp;quot;&lt;/code&gt; is called a
&amp;ldquo;Numeric Code&amp;rdquo; and there&amp;rsquo;s a &lt;a href=&#34;http://nrodwiki.rockshore.net/index.php/TOC_Codes&#34;&gt;table of them here&lt;/a&gt;.
Curiously there are a further two &amp;ldquo;unique&amp;rdquo; identifiers used to refer to these
companies, but I&amp;rsquo;m not too worried about those at the moment.&lt;/p&gt;
&lt;p&gt;I spent some tedious minutes turning the HTML table into a
&lt;a href=&#34;https://github.com/fawkesley/network-rail-data-feeds-python/blob/master/db/operating_companies.json&#34;&gt;JSON file&lt;/a&gt; to help my future self and others.&lt;/p&gt;
&lt;h3 id=&#34;arrival--departure-station&#34;&gt;Arrival &amp;amp; Departure Station&lt;/h3&gt;
&lt;p&gt;This one was a bit trickier. There&amp;rsquo;s a thing called a STANOX (which I&amp;rsquo;ve seen
unshortened as a Station Number) which appears to refer to locations as well as
other places like Engineering buildings.&lt;/p&gt;
&lt;p&gt;In order to map STANOX to locations, there&amp;rsquo;s something called the
&amp;ldquo;Reference Data&amp;rdquo; (also requiring a developer account). That leads to a 6.5MB
JSON file called &lt;code&gt;CORPUSExtract.json&lt;/code&gt; containing records that look like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre 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-json&#34; data-lang=&#34;json&#34;&gt;{
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;TIPLOC&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;LVRPLSH&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;UIC&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;22460&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;NLCDESC16&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;STANOX&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;36151&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;NLC&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;224600&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;3ALPHA&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;LIV&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;NLCDESC&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;LIVERPOOL LIME STREET&amp;#34;&lt;/span&gt;
}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;,&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note the &lt;code&gt;3ALPHA&lt;/code&gt; field - that&amp;rsquo;s the station code you often see on booking
websites. It also goes by another two or more names, but let&amp;rsquo;s not talk about
that.&lt;/p&gt;
&lt;p&gt;Many of the entries in the reference data have a STANOX but not a 3ALPHA field,
and vice versa. Either way, now we&amp;rsquo;ve got the mapping we need.&lt;/p&gt;
&lt;p&gt;I couldn&amp;rsquo;t find any information about how often the reference data is updated,
and I didn&amp;rsquo;t explore whether the webserver reports an etag or last-modified. At
the moment it&amp;rsquo;s not clear how you&amp;rsquo;re supposed to automate keeping the reference
data up to date.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I don&amp;rsquo;t know what licence this reference data is but I&amp;rsquo;ll try and clarify that
and if possible I&amp;rsquo;ll check it into Github.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&#34;putting-it-all-together&#34;&gt;Putting it all together&lt;/h3&gt;
&lt;p&gt;That was a quick whizz through. I wrote some Python to decode these messages
and put it on &lt;a href=&#34;https://github.com/fawkesley/network-rail-data-feeds-python&#34;&gt;Github&lt;/a&gt; (although at the time of writing it&amp;rsquo;s in a
branch). This is the output after decoding (and re-serializing as JSON):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre 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-json&#34; data-lang=&#34;json&#34;&gt;{
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;planned_event_type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;departure&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;on_time&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;planned_datetime&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2016-02-22T08:48:00&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;actual_datetime&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2016-02-22T08:48:00&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;planned_timetable_datetime&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2016-02-22T08:48:00&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;early_late_description&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;on time&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;location&amp;#34;&lt;/span&gt;: {
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;EBBSFLEET INTERNATIONAL&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;stanox_code&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;89530&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;three_alpha&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;EBD&amp;#34;&lt;/span&gt;
    },
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;location_stanox&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;89530&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;operating_company&amp;#34;&lt;/span&gt;: {
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Southeastern&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;business_code&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;HU&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;numeric_code&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;80&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;atoc_code&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SE&amp;#34;&lt;/span&gt;
    },
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;is_correction&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;
}

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At the very least this makes the station and train operating company a little
more understandable.&lt;/p&gt;
&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s Next&lt;/h2&gt;
&lt;p&gt;First I&amp;rsquo;d like to spend some time releasing the code I&amp;rsquo;ve built as an actual
Python library so that more code can be built on top of it, without coupling
to its implementation. Then I&amp;rsquo;ve got some real projects I&amp;rsquo;d like to try out,
but more on those in the future.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Interested? Do get in touch, my email is paul at this domain.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Hack the Hive: Connecting a Beehive to the Internet</title>
      <link>https://paul.fawkesley.com/hack-the-hive-connecting-a-beehive-to-the-internet/</link>
      <pubDate>Fri, 12 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/hack-the-hive-connecting-a-beehive-to-the-internet/</guid>
      <description>&lt;p&gt;*One of my resolutions for 2016 was to make an effort to write up my &amp;ldquo;hack days&amp;rdquo;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the 20% time I&amp;rsquo;ve been trying out for the last six months. Although I don&amp;rsquo;t
think I&amp;rsquo;ve wasted that time, I&amp;rsquo;ve hacked on a lot of different stuff but don&amp;rsquo;t
have much to show for it. I think it&amp;rsquo;ll be great to be able to refer back to
each day with a blog post.*&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;why-were-hacking-a-hive&#34;&gt;Why We&amp;rsquo;re Hacking a Hive&lt;/h2&gt;
&lt;p&gt;My friend Hannah works at &lt;a href=&#34;http://www.ykids.co.uk/&#34;&gt;Ykids&lt;/a&gt;, a charity in Bootle who run activities and
things for kids. One of the groups are budding young beekeepers and they have
a couple of active beehives. The kids are amazing: they&amp;rsquo;re totally into their
beekeeping.&lt;/p&gt;
&lt;p&gt;A while back Hannah and I were chatting about whether we could monitor the
hives remotely. There are a load of reasons to do this, but one in particular
is checking if the inside of the hive has got too cold. In the winter the bees
form a tight ball and buzz around to generate heat, but it&amp;rsquo;s possible that they
can get too cold and die. If you can monitor the temperature of the hive, you
can intervene and add extra insulation. We decided to do a Minimum Viable Hive
by monitoring the temperature and logging it remotely somewhere. This is a
techie write-up of the electronicsy bits.&lt;/p&gt;
&lt;h2 id=&#34;hera-200-is-an-arduino-leonardo--gsm&#34;&gt;Hera 200 is an Arduino Leonardo + GSM&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.eseye.com/hera200/&#34;&gt;Hera 200&lt;/a&gt; is a sweet little board with effectively an Arduino Leonardo,
a GSM shield, a battery, some neat power electronics and a tough little case.
My friend &lt;a href=&#34;http://www.mcqn.net/mcfilter/&#34;&gt;Adrian&lt;/a&gt; put me onto this as he&amp;rsquo;s used it in another project,
powered by a low cost 12V leisure solar panel. The plan is to use this to
take temperature measurements and upload them using mobile data to somewhere on
the Internet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/hera-200-board.jpg&#34; alt=&#34;Hera 200 board&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;temperature-sensing-with-a-dht22&#34;&gt;Temperature Sensing with a DHT22&lt;/h2&gt;
&lt;p&gt;We used a temperature and humidity sensor called the &lt;a href=&#34;https://www.adafruit.com/products/385&#34;&gt;DHT22&lt;/a&gt; which is
pre-calibrated, meaning it has a little chip onboard with a lookup table to
ensure you get calibrated readings. Helpfully, Adafruit released a &lt;a href=&#34;https://github.com/adafruit/DHT-sensor-library&#34;&gt;free
software library&lt;/a&gt; to read these devices. Although the tutorial
website was down when I looked at it, the library was so clear that I was able
to get going easily: it just worked (for once).&lt;/p&gt;
&lt;p&gt;The DHT22 sensor is connected to three pins on the Hera 200&amp;rsquo;s output connector.
Thankfully I had the schematic to work out which pin mapped to which Arduino
pin. The diagram below shows the connections:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/hera-200-connector.png&#34; alt=&#34;Hera 200 Connector&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;arduino-in-low-power-mode&#34;&gt;Arduino in Low Power Mode&lt;/h2&gt;
&lt;p&gt;The Arduino code simply wakes up every 10 minutes, activates the GSM modem,
sends the temperature and humidity sensors to a remote server then goes back
to sleep. It uses the &lt;a href=&#34;https://github.com/rocketscream/Low-Power&#34;&gt;Low Power library&lt;/a&gt; to put the Arduino into
a very low power sleep mode between cycles.&lt;/p&gt;
&lt;p&gt;All the Arduino code is on &lt;a href=&#34;https://github.com/HackTheHive/arduino-gsm-upload-measurements&#34;&gt;GitHub.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;data-forwarding-server&#34;&gt;Data Forwarding Server&lt;/h2&gt;
&lt;p&gt;I decided the Arduino should send data directly to a tiny server that I control
rather than uploading it to a third-party. The reason for this is that I&amp;rsquo;m wary
of third party servers coming and going, or changing the way their API works.
Once the Arduino is deployed in a field it will be awkward to update. It&amp;rsquo;s much
simpler to re-deploy a tiny Python app running on a server on the Internet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/sparkfun-data-feed.png&#34; alt=&#34;Sparkfun data hub&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note that NAN entries due to a missing sensor!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The server code forwards on to &lt;a href=&#34;https://data.sparkfun.com/streams/QG8QpXOX9mInr1D5DoAj&#34;&gt;Sparkfun&lt;/a&gt; which lets you
download the data in various formats.&lt;/p&gt;
&lt;p&gt;With this setup, there&amp;rsquo;s nothing stopping us forward the data on to multiple
places, for example I&amp;rsquo;d like to try out &lt;a href=&#34;https://www.opensensors.io/&#34;&gt;opensensors.io&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The server code is on &lt;a href=&#34;https://github.com/HackTheHive/python-data-receiver&#34;&gt;Github.&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;watch-this-space&#34;&gt;Watch this Space!&lt;/h3&gt;
&lt;p&gt;We&amp;rsquo;re building the hive on Monday, and it&amp;rsquo;ll be up to the kids to work out how
to install the sensors, mount the solar panel and keep everything waterproof.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll make sure I post some photos, probably in another blog.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/HackTheHive&#34;&gt;Visit our Github organisation&lt;/a&gt; or
&lt;a href=&#34;https://data.sparkfun.com/streams/QG8QpXOX9mInr1D5DoAj&#34;&gt;look at the data&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Setting up a UK Limited Company</title>
      <link>https://paul.fawkesley.com/setting-up-a-uk-limited-company/</link>
      <pubDate>Thu, 07 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/setting-up-a-uk-limited-company/</guid>
      <description>&lt;p&gt;&lt;em&gt;I recently wrote an email to a friend with a little (unprofessional) guidance
on setting up a Limited company. Since it turned out quite large I thought it
might be of use to others, so here it is:&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;register-a-limited-company&#34;&gt;Register a limited company&lt;/h2&gt;
&lt;p&gt;This is the first thing you need to do as you&amp;rsquo;ll need your company number &amp;amp;
documents in order to open a bank account. Opening a bank account can take a
really long time so it&amp;rsquo;s best to get started as soon as possible.&lt;/p&gt;
&lt;p&gt;In the past I used a &amp;ldquo;formation company&amp;rdquo; - these are companies which submit your
application to Companies House on your behalf. You have to pay a (small) fee
for this, I think it&amp;rsquo;s £18 or something like that.&lt;/p&gt;
&lt;p&gt;I used one called
&lt;a href=&#34;http://www.completeformations.co.uk/index.html&#34;&gt;Complete Formations&lt;/a&gt; which was
a bit clunky but fine. I don&amp;rsquo;t have any experience of any other ones.&lt;/p&gt;
&lt;p&gt;Turns out you can do this &lt;a href=&#34;https://www.gov.uk/register-a-company-online&#34;&gt;directly with companies
house&lt;/a&gt;, not sure why I thought
you needed to use a formations company.&lt;/p&gt;
&lt;h3 id=&#34;choose-a-company-name&#34;&gt;Choose a company name&lt;/h3&gt;
&lt;p&gt;For a limited company it&amp;rsquo;s got to end in either &amp;ldquo;Ltd&amp;rdquo; or &amp;ldquo;Limited&amp;rdquo; - for
example mine is called &amp;ldquo;Green Dragon Software Ltd&amp;rdquo;. It doesn&amp;rsquo;t make any
difference which of the two you choose.&lt;/p&gt;
&lt;h3 id=&#34;allocate-share-capital&#34;&gt;Allocate share capital&lt;/h3&gt;
&lt;p&gt;You need to create some shares, define how much each share is worth and then
allocate them to people to give them ownership of the company. If you&amp;rsquo;re going
to 100% own the company then you can just create one single share worth £1 and
allocate it to yourself - that&amp;rsquo;s what most people do! If in the future you want
to give some of the company (equity) to someone else you&amp;rsquo;ll need to adjust this&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;but just go for 1 share @ £1 to start.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;appoint-directors&#34;&gt;Appoint directors&lt;/h3&gt;
&lt;p&gt;You&amp;rsquo;re probably going to appoint just yourself as managing director - that&amp;rsquo;s
all you need to do.&lt;/p&gt;
&lt;h3 id=&#34;addresses&#34;&gt;Addresses&lt;/h3&gt;
&lt;p&gt;I remember some confusion about addresses - you need to give a &amp;ldquo;registered
address&amp;rdquo; for the company which is where you&amp;rsquo;re legally supposed to keep the
documents for the company (bit out of date, mine are all electronic) This
becomes public domain and can be viewed online for free. You should probably
put your workshop for this.&lt;/p&gt;
&lt;p&gt;I think you need to give two addresses for each director as well - I think one
of these becomes public and one is kept private. I think it&amp;rsquo;s called
&amp;ldquo;correspondence address&amp;rdquo; (public) and &amp;ldquo;residential address&amp;rdquo; (private). You
should probably put your workshop for the correspondence address and your
actual home address for the residential address.&lt;/p&gt;
&lt;h3 id=&#34;articles-of-association&#34;&gt;Articles of association&lt;/h3&gt;
&lt;p&gt;There are some documents which define the purpose etc of the company. I just
chose the default ones. Once you&amp;rsquo;ve registered the company you get some
documents through like the company registration certificate (this has your
registered company number on it, which you&amp;rsquo;ll need) and the articles of
association and stuff. It seems that you really only need it for opening a bank
account.&lt;/p&gt;
&lt;h2 id=&#34;open-a-bank-account&#34;&gt;Open a bank account&lt;/h2&gt;
&lt;p&gt;For me this was the most annoying bit with both companies I opened. First time
I went with NatWest and I had to make an appointment with a patronising git who
interviewed me about the business I was going to set up. Because there was a
person involved this took a long time.&lt;/p&gt;
&lt;p&gt;The second time was with Santander and this was all online. They claimed they
could open it in a week or something like that but it ended up being delayed -
I can&amp;rsquo;t remember why. You&amp;rsquo;ll need your company registration documents.&lt;/p&gt;
&lt;p&gt;The other benefit of Santander is that it works with FreeAgent, the bookkeeping
software I use.&lt;/p&gt;
&lt;p&gt;Do this application ASAP because you won&amp;rsquo;t be able to invoice and get paid
until you&amp;rsquo;ve got your bank account set up.&lt;/p&gt;
&lt;h2 id=&#34;keeping-money-separate&#34;&gt;Keeping money separate&lt;/h2&gt;
&lt;p&gt;Now you&amp;rsquo;ve got two legal entities (yourself and your company) you have to be
very disciplined about &lt;em&gt;who&lt;/em&gt; is spending money and who owns what. Just because
you own 100% of the company doesn&amp;rsquo;t matter - you are still separate.&lt;/p&gt;
&lt;p&gt;Unlike an individual, the rules are much stricter for companies for things like
what you are allowed to buy, keeping receipts, etc. The upside, however, is
that a lot of things are tax deductible that wouldn&amp;rsquo;t be for an individual, so
you don&amp;rsquo;t pay any tax on those.&lt;/p&gt;
&lt;p&gt;For example: if the company bought a mobile phone for £200 that would now be
logged on the company&amp;rsquo;s balance sheet as an asset. Assuming it has a 3 year
life, the value on the balance sheet would reduce by 1/3 each year. That
reduction contributes towards your end of year profit &amp;amp; loss figure. That&amp;rsquo;s an
important number because you pay corporation tax on the profit.&lt;/p&gt;
&lt;p&gt;This is why you need to get an accountant &amp;amp; good book-keeping software! The
accountant can tell you how to file things, what counts as tax deductible etc.
Also I find that FreeAgent&amp;rsquo;s website often has good advice about this.&lt;/p&gt;
&lt;h2 id=&#34;wait-for-hmrc&#34;&gt;Wait for HMRC&lt;/h2&gt;
&lt;p&gt;After a few days of registering with Companies House, you&amp;rsquo;ll get a letter from
HMRC telling you they know about the company, and giving you a company Unique
Taxpayer Reference (UTR) number.&lt;/p&gt;
&lt;p&gt;You need to keep this stupid number because for some reason they require you to
tell them it at various points in the future (why not just use the friggin
company registration number?!)&lt;/p&gt;
&lt;h2 id=&#34;register-for-paye&#34;&gt;Register for PAYE&lt;/h2&gt;
&lt;p&gt;You can take money out of the company in one of two ways: payroll (AKA salary)
and dividends.&lt;/p&gt;
&lt;p&gt;Most people pay themselves a mix of both: people usually pay themselves in
salary up to the first tax band (currently £10,600 this year) then pay the rest
in dividends.&lt;/p&gt;
&lt;p&gt;(Legally, dividends can&amp;rsquo;t just be paid out willy nilly - you have to take it
out of the company&amp;rsquo;s current profit - so you can&amp;rsquo;t pay them if you are making a
loss. HOWEVER the book-keeping software I use makes it easy to calculate your
instantaneous profit &amp;amp; loss and see how much you&amp;rsquo;re allowed to take out)&lt;/p&gt;
&lt;p&gt;Before you&amp;rsquo;re allowed to pay yourself through payroll, rather absurdly you need
to apply to HMRC for Pay As You Earn (PAYE). Once you&amp;rsquo;ve done this you&amp;rsquo;ll then
be able to pay yourself a paycheck, and pay HMRC the tax and national insurance
owed for that paycheck. Again, the book-keeping software I use just does this
all for me.&lt;/p&gt;
&lt;h2 id=&#34;register-for-vat-optional&#34;&gt;Register for VAT (optional)&lt;/h2&gt;
&lt;p&gt;If your annual revenue is going to be over something like £90K then you are
required to register for VAT. If it&amp;rsquo;s less, you can voluntarily apply for VAT
because it can be beneficial in some circumstances.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re mostly selling to consumers (non VAT registered entities) you
probably want to avoid registering for VAT because you&amp;rsquo;ll have to charge 20%
more for the same product. If you&amp;rsquo;re mostly selling to VAT registered
businesses, it won&amp;rsquo;t make any difference to them as they can claim it back, so
knock yourself out.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a thing called the flat-rate scheme which can work out well for
companies which have low costs (for example software freelancers).&lt;/p&gt;
&lt;p&gt;When you apply for VAT, you have to give a date on which the company will
become VAT registered. You can backdate this to when you opened the company
which makes life simpler, especially if you haven&amp;rsquo;t actually done any trading
since then! Or you could put the date as some date in the future between big
projects or something, so one client gets invoices without VAT and the next
gets them with.&lt;/p&gt;
&lt;p&gt;This is something you really need your accountant to advise you on.&lt;/p&gt;
&lt;h2 id=&#34;find-an-accountant&#34;&gt;Find an accountant&lt;/h2&gt;
&lt;p&gt;Because companies have stricter rules than individuals it&amp;rsquo;s really helpful to
have an accountant you can ask for help. You also need to have one to do your
statutory annual report.&lt;/p&gt;
&lt;p&gt;There are lots of different packages ranging from quite basic (about £400 per
year) upwards (like £1200 per year). You can choose to do lots of things
yourself, using good book-keeping software, or have the accountant basically
handle everything for you.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m really geeky and I like to know what&amp;rsquo;s going on so I&amp;rsquo;ve opted to do my own
payroll and VAT reporting, and I pay at the lower end of the scale. My
accountant is 100% remote (I&amp;rsquo;ve never met her) but she answers emails quickly
and briefly. In other words, it&amp;rsquo;s basic but I get what I need.&lt;/p&gt;
&lt;h2 id=&#34;get-some-book-keeping-software&#34;&gt;Get some book-keeping software&lt;/h2&gt;
&lt;p&gt;I use software called FreeAgent which is basically the most amazing software
ever. It&amp;rsquo;s not cheap - it&amp;rsquo;s about £33 per month - but I&amp;rsquo;m really in control of
the business and it handles a lot of the crap with HMRC. It basically does some
of what an accountant usually does, like making it really easy to do PAYE and
calculate VAT and stuff.&lt;/p&gt;
&lt;p&gt;The other really awesome thing about FreeAgent is that it automatically
downloads my company bank account statements from Santander. That means it&amp;rsquo;s
already done half the job of categorising things - I just need to select eg
&amp;ldquo;office costs&amp;rdquo;, &amp;ldquo;travel&amp;rdquo; or whatever.&lt;/p&gt;
&lt;p&gt;For my particular scenario, where I&amp;rsquo;m a bit of a control freak, FreeAgent is
absolutely perfect and well worth the money.&lt;/p&gt;
&lt;p&gt;If you fancy joining I think we both get a discount if you use this link:
&lt;a href=&#34;http://fre.ag/44n2b1pk&#34;&gt;http://fre.ag/44n2b1pk&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;pay-for-things&#34;&gt;Pay for things&lt;/h2&gt;
&lt;p&gt;There are two ways of paying for things: paying directly and paying personally
then reclaiming expenses. Either way you need to keep receipts and enter things
into FreeAgent (or give them to the accountant I guess).&lt;/p&gt;
&lt;h2 id=&#34;get-insurance&#34;&gt;Get insurance&lt;/h2&gt;
&lt;p&gt;I think there are some insurance things you need, like maybe employer liability
insurance and public liability insurance. To be honest I only got these because
I did a contract which stated that I needed to have them. If you figure out
why, please let me know!&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Building Software Users Love</title>
      <link>https://paul.fawkesley.com/building-software-users-love/</link>
      <pubDate>Thu, 29 Oct 2015 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/building-software-users-love/</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally posted on the &lt;a href=&#34;http://transformation.blog.nhs.uk/building-software-users-love&#34;&gt;NHS.UK Alpha project&lt;/a&gt; blog.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m Paul, and I&amp;rsquo;m a developer on the NHS.UK Alpha project. I wanted to share some thoughts about different ways of delivering software, and why we&amp;rsquo;re working in the way we are.&lt;/p&gt;
&lt;h2 id=&#34;its-hard-building-for-users-you-dont-understand&#34;&gt;It&amp;rsquo;s Hard Building for Users You Don&amp;rsquo;t Understand&lt;/h2&gt;
&lt;p&gt;I have some experience working in organisations where software was written to a specification – a large document which supposedly captured everything there was to know about a problem.&lt;/p&gt;
&lt;p&gt;A hypothetical project would go something like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Business analyst works with the users&#39; manager to understand the users&#39; problems&lt;/li&gt;
&lt;li&gt;Business analyst writes lots of requirements documents detailing &lt;em&gt;exactly&lt;/em&gt; what the software should do and how&lt;/li&gt;
&lt;li&gt;Development team receive requirements and make lots of interpretations where things aren&amp;rsquo;t clear (they never are)&lt;/li&gt;
&lt;li&gt;Project is delivered, client&amp;rsquo;s users see the system for the first time, start giving feedback about what&amp;rsquo;s wrong&lt;/li&gt;
&lt;li&gt;Any changes must go through “change request” process – it&amp;rsquo;s like a new piece of work.&lt;/li&gt;
&lt;li&gt;The interesting thing for me was the observation that &lt;strong&gt;it&amp;rsquo;s hard building software for users you don&amp;rsquo;t understand.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think one of the problems with this type of delivery is that there&amp;rsquo;s a bit of a Chinese whisper situation going on, where every re-telling of the user need distorts the truth:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;users tell their boss about their problems, not mentioning the hacks and workarounds they currently do&lt;/li&gt;
&lt;li&gt;their boss tells the business analyst, forgetting some of the detail&lt;/li&gt;
&lt;li&gt;the business analyst writes it down, losing some nuance&lt;/li&gt;
&lt;li&gt;the developers read the document and make their own interpretations.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To compound the problem, when software is delivered in one great lump – at the end of the project – it&amp;rsquo;s too late for feedback from the real users.&lt;/p&gt;
&lt;h2 id=&#34;build-test-iterate&#34;&gt;Build, Test, Iterate&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ll come right out and say it: &lt;strong&gt;I don&amp;rsquo;t think users ever like version 1!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;However good we are at capturing user&amp;rsquo;s needs, I just think that users have to get their hands on the software before we &lt;em&gt;really&lt;/em&gt; know what they need.&lt;/p&gt;
&lt;p&gt;So an alternative approach, and the one we&amp;rsquo;re practising at NHS.UK Alpha, is &lt;strong&gt;Build, Test, Iterate&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The principle is simple enough – you build something small, you try it out on your users, you see what they love and hate, and you do it again, quickly.&lt;/p&gt;
&lt;h2 id=&#34;keep-it-simple&#34;&gt;Keep it Simple&lt;/h2&gt;
&lt;p&gt;With everything we build, we try to start simple. It&amp;rsquo;s always tempting to throw in the kitchen sink, or think up every situation where a solution &lt;em&gt;wouldn&amp;rsquo;t&lt;/em&gt; work. The danger with that is that it&amp;rsquo;s easy to end up never building anything.&lt;/p&gt;
&lt;p&gt;If we have a very broad user base (which in health, we do), it&amp;rsquo;s helpful to create “personas” – made up people who are based on user interviews, but are specific rather than general. Then we create a solution which works for one of them first, then expand the solution to other personas, if possible.&lt;/p&gt;
&lt;p&gt;Personas help to eliminate disagreement about how people on the team think a solution should be. They allow the team to put aside our own opinions and build for the needs of the persona, which reduces our own bias.&lt;/p&gt;
&lt;h2 id=&#34;keep-it-cheap-fake-it&#34;&gt;Keep it Cheap (Fake it)&lt;/h2&gt;
&lt;p&gt;Iterating fast is essential, because each round of testing produces a lot of feedback. At each stage, it&amp;rsquo;s useful to ask the question, &lt;em&gt;“How could we fake a solution well enough to test it?”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Using paper and pens is a very fast way of getting ideas out of our heads and in front of users. Although it has limitations – for example it&amp;rsquo;s hard to show user-interface interactions on paper – it&amp;rsquo;s much faster than writing code, and users are often perfectly able to pretend they are tapping on an tablet.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re also faking it with our prototyping kit. We&amp;rsquo;ve built &lt;em&gt;just enough&lt;/em&gt; backend so that it feels to a user like they&amp;rsquo;re really booking an appointment, or searching for a GP. We&amp;rsquo;ve spent exactly no time making it “production ready” – because this is a prototype. We tested it early, so if they&amp;rsquo;d absolutely hated it, or had no need for it, we would have found out quickly so the cost of throwing it away is low.&lt;/p&gt;
&lt;h2 id=&#34;developers-get-involved&#34;&gt;Developers: Get Involved&lt;/h2&gt;
&lt;p&gt;Being a developer isn&amp;rsquo;t just about writing code.&lt;/p&gt;
&lt;p&gt;Writing code is important, but writing the &lt;em&gt;right&lt;/em&gt; code is better.&lt;/p&gt;
&lt;p&gt;We don&amp;rsquo;t like waste, and I think we can reduce it by being involved at all stages – from participating in user lab days, to scribbling with sharpies on paper, to implementing production systems.&lt;/p&gt;
&lt;p&gt;Ultimately, when we understand the user, it&amp;rsquo;s easier to build things they love. And that means happy faces all round :)&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>My Barcamp 2015 Highlights</title>
      <link>https://paul.fawkesley.com/my-barcamp-2015-highlights/</link>
      <pubDate>Sun, 27 Sep 2015 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/my-barcamp-2015-highlights/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve just parted ways with a friendly and interesting bunch of people - exactly
what I&amp;rsquo;d expect from a Barcamp crowd. This was my second Barcamp and it was fab
to go with a bit more understanding of what to expect and how it works.&lt;/p&gt;
&lt;p&gt;In case you aren&amp;rsquo;t familiar, Barcamp is an unconference. There are no scheduled speakers - that&amp;rsquo;s the job of the Barcampers, and everyone&amp;rsquo;s encouraged to give a talk.&lt;/p&gt;
&lt;p&gt;Here are a couple of my highlights.&lt;/p&gt;
&lt;h2 id=&#34;living-in-a-van&#34;&gt;Living in a van&lt;/h2&gt;
&lt;p&gt;This was an awesome Q&amp;amp;A from &lt;a href=&#34;https://twitter.com/tdobson&#34;&gt;Tim&lt;/a&gt; and &lt;a href=&#34;https://twitter.com/czmj2&#34;&gt;Clara&lt;/a&gt; about their decision to ditch their flats and move into a van together. These two rock - I really admire their minimimalism and their casual attitude about what many people would consider a pretty radical lifestyle move. For me, the best thing was that this was full time - this isn&amp;rsquo;t a holiday home or a year off - this is a new, sustainable lifestyle. Kudos.&lt;/p&gt;
&lt;h2 id=&#34;building-the-bbc-microbit&#34;&gt;Building the BBC microbit&lt;/h2&gt;
&lt;p&gt;Wow, talk about achieving lots in no time. &lt;a href=&#34;https://twitter.com/spark_rd&#34;&gt;Michael&lt;/a&gt; gave us the lowdown on the BBC R&amp;amp;D microbit project which had &lt;em&gt;insanely&lt;/em&gt; optimistic timescales - 3 months to build a hardware board and a substantial web stack with both online and offline elements. Clearly Michael is passionate about the end goal - putting millions of devices into the hands of every year 7 - which must have driven him through.&lt;/p&gt;
&lt;p&gt;The best bit about this talk was describing the approach they took. Rather than focusing on perfecting one element at a time, they looked at whole subsystems and built the smallest possible piece at every level of the system - high level software right down to hardware - doing the absolute minimum to prove the concept, without it all having to work together. Previously I&amp;rsquo;ve heard this described at &amp;ldquo;walking skeleton&amp;rdquo;, whereby you implement &lt;em&gt;something&lt;/em&gt; at every level - an empty database, a noddy ORM, a dummy web app, and a basic frontend server. This both de-risks the awkward connectivity parts early on and also means you&amp;rsquo;re more likely to deliver &lt;em&gt;something&lt;/em&gt; early which you can build on. In other words, this is something like Agile is supposed to be.&lt;/p&gt;
&lt;h2 id=&#34;intro-to-genetic-algorithms&#34;&gt;Intro to Genetic Algorithms&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/etharuk&#34;&gt;Ethar&lt;/a&gt; gave us a quick primer on Genetic Algorithms and how their approach to solving problems mimics evolution. Massive credit to him for building us a &lt;a href=&#34;https://jsbin.com/dapocegohi/edit?html,js,output&#34;&gt;little demo rig&lt;/a&gt; last night in D3. It showed the population of 100 as circles, where their &amp;ldquo;fitness&amp;rdquo; was denoted by their greyscale value. Awesome.&lt;/p&gt;
&lt;h2 id=&#34;introduction-to-tor&#34;&gt;Introduction to Tor&lt;/h2&gt;
&lt;p&gt;OK, so this was my talk, so I&amp;rsquo;m biased, but I really enjoyed presenting it. I did a quick intro to Tor, why it was developed, who runs it and so on. It was pretty high level and short so we could do Q&amp;amp;As, and I was really pleased with how much people engaged on the subject. A few people had never heard of Tor so it was wicked to introduce it to them, while others used Tor actively and asked really intelligent questions, for example, &amp;ldquo;Why does Tor recommend I don&amp;rsquo;t resize my browser window?&amp;rdquo;&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;resolutions--notes&#34;&gt;Resolutions &amp;amp; Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;m going to blog more, on whatever I feel like, and don&amp;rsquo;t worry if it&amp;rsquo;s non-technical (I was resisting doing non-tech blogs as I view my site partly as a bit of a living CV) Thanks to &lt;a href=&#34;https://twitter.com/cubicgarden&#34;&gt;Ian&lt;/a&gt; for that one.&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;m going to pursue a side project idea around monitoring SSL certificates for browser compatibility.&lt;/li&gt;
&lt;li&gt;Check out Shodan for Internet service discovery - thanks &lt;a href=&#34;https://twitter.com/TimJDFletcher&#34;&gt;Tim&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Check out Active Campaign for email automation - thanks &lt;a href=&#34;https://twitter.com/Layershift&#34;&gt;Layershift&lt;/a&gt; guys for that one.&lt;/li&gt;
&lt;li&gt;Talk to MJR Recruitment - they were a sponsor and seemed nice.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many thanks to the organisers and sponsors. This was an fantastic, stimulating weekend and I&amp;rsquo;m really pleased I went.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Hello, Thinking Digital 2015!</title>
      <link>https://paul.fawkesley.com/hello-thinking-digital-2015/</link>
      <pubDate>Sat, 09 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/hello-thinking-digital-2015/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m on the way to &lt;a href=&#34;http://www.thinkingdigital.co.uk&#34;&gt;Thinking Digital&lt;/a&gt; and getting excited about what sounds like an incredible event.&lt;/p&gt;
&lt;p&gt;This was made possible by their Emerging Talent Fund, through which I was fortunate enough to win a free ticket. Thanks again to the supporters who made that possible.&lt;/p&gt;
&lt;p&gt;If we&amp;rsquo;ve just met, I&amp;rsquo;m an Engineer who loves building things that improve the world and that my customers love.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m passionate about building things, renewable energy, social equality, democracy, citizen empowerment, open source &amp;amp; collaboration and many other things.&lt;/p&gt;
&lt;p&gt;If any of that sounds interesting, &lt;a href=&#34;https://paul.fawkesley.com/contact&#34;&gt;let&amp;rsquo;s talk&lt;/a&gt;!&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>The Difference Between GPG, GnuPG, PGP and OpenPGP</title>
      <link>https://paul.fawkesley.com/difference-between-gpg-pgp-and-openpgp/</link>
      <pubDate>Tue, 31 Mar 2015 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/difference-between-gpg-pgp-and-openpgp/</guid>
      <description>&lt;p&gt;This seems to come up a &lt;em&gt;lot&lt;/em&gt; - is it a PGP key or a GPG key, and what&amp;rsquo;s OpenPGP?&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t worry, it&amp;rsquo;s simple, and best explained with a brief timeline:&lt;/p&gt;
&lt;h2 id=&#34;pretty-good-privacy-pgp&#34;&gt;Pretty Good Privacy (PGP)&lt;/h2&gt;
&lt;p&gt;Pretty Good Privacy is &lt;em&gt;proprietary software&lt;/em&gt; and was originally written by &lt;a href=&#34;https://en.wikipedia.org/wiki/Phil_Zimmermann&#34;&gt;Phil Zimmerman&lt;/a&gt; in 1991. After several changes of hands, it&amp;rsquo;s now owed by Symantec Corp. They also own the registered trademark for &amp;ldquo;PGP&amp;rdquo;, &amp;ldquo;Pretty Good&amp;rdquo; and &amp;ldquo;Pretty Good Privacy&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;openpgp&#34;&gt;OpenPGP&lt;/h2&gt;
&lt;p&gt;After PGP took off in popularity, others wanted to write software that was compatible with the PGP format.&lt;/p&gt;
&lt;p&gt;In 1997 PGP Inc proposed to the IETF a standard called OpenPGP and allowed various uses of the name &amp;ldquo;OpenPGP&amp;rdquo;. This was accepted and the IETF formed the OpenPGP Working Group.&lt;/p&gt;
&lt;p&gt;The OpenPGP protocol is currently formalised in the (obsolete) &lt;a href=&#34;https://tools.ietf.org/html/rfc2440&#34;&gt;RFC 2440&lt;/a&gt; and new &lt;a href=&#34;https://tools.ietf.org/html/rfc4880&#34;&gt;RFC 4880&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;gnu-privacy-guard-gnupg--gpg&#34;&gt;GNU Privacy Guard (GnuPG / GPG)&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://gnupg.org&#34;&gt;GNU Privacy Guard&lt;/a&gt;, also known as GnuPG and GPG, is the &lt;a href=&#34;https://fsf.org&#34;&gt;Free Software Foundation&lt;/a&gt;&amp;rsquo;s implementation of the OpenPGP protocol, written almost entirely by &lt;a href=&#34;https://en.wikipedia.org/wiki/Werner_Koch&#34;&gt;Werner Koch&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As it is entirely Free Software (licensed under GNU Public Licence v3), you are granted the freedom to inspect and modify the source code &lt;a href=&#34;https://github.com/fawkesley/gnupg-mirror/&#34;&gt;(see my mirror
here)&lt;/a&gt;. Furthermore, accordingly, some versions do not include proprietary &amp;ldquo;encumbered&amp;rdquo; algorithms such as IDEA.&lt;/p&gt;
&lt;h2 id=&#34;what-to-call-my-key&#34;&gt;What to call my key?&lt;/h2&gt;
&lt;p&gt;Lots of people call their key-pair a &amp;ldquo;PGP Key&amp;rdquo; but given that &amp;ldquo;PGP&amp;rdquo; is trade-marked, that doesn&amp;rsquo;t seem right. And if it was generated with GnuPG or some other OpenPGP implementation, that seems daft.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;GPG key&amp;rdquo; is popular too, but unless a key is specific to GnuPG, that seems wrong.&lt;/p&gt;
&lt;p&gt;So in my opinion, it&amp;rsquo;s probably right to call it an &amp;ldquo;OpenPGP Key&amp;rdquo;, but I&amp;rsquo;m not sure everyone will agree with me on that one!&lt;/p&gt;
&lt;h2 id=&#34;other-openpgp-implementations&#34;&gt;Other OpenPGP implementations&lt;/h2&gt;
&lt;p&gt;There are lots of OpenPGP implementations and the one I&amp;rsquo;m currently 2nd-most excited about is &lt;a href=&#34;https://github.com/openpgpjs/openpgpjs&#34;&gt;openpgpjs&lt;/a&gt; for Javascript. Doing grown-up encryption in the browser excites me as someone&amp;rsquo;s got a &lt;em&gt;chance&lt;/em&gt; of building something &lt;em&gt;pretty&lt;/em&gt;. And seriously, I think that&amp;rsquo;s important if we want encryption to be used by people less geeky than me.&lt;/p&gt;
&lt;p&gt;The one I&amp;rsquo;m most excited about is my very own &lt;a href=&#34;https://github.com/fawkesley/encryptit&#34;&gt;EncryptIt&lt;/a&gt; for Python, focusing (predictably) on testing and clarity. It&amp;rsquo;s early days and it&amp;rsquo;s by no means the most complete, but I&amp;rsquo;m taking it deliberately slow to keep the quality high.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interested in learning how to use GPG? See my &lt;a href=&#34;https://paulfurley.com/gpg-for-humans-why-care-about-cryptography/&#34;&gt;GPG For Humans&lt;/a&gt; series.&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>GPG For Humans, Part 4: Preparing an Offline Machine</title>
      <link>https://paul.fawkesley.com/gpg-for-humans-preparing-an-offline-machine/</link>
      <pubDate>Tue, 03 Feb 2015 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/gpg-for-humans-preparing-an-offline-machine/</guid>
      <description>&lt;p&gt;Last time we talked about the importance of protecting your primary secret key as, if stolen, an attacker could take over your entire GPG identity.&lt;/p&gt;
&lt;p&gt;An effective way to protect your key is a combination of techniques:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;make sure that it never touches a network&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;store the key encrypted with a strong passphrase&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course, this isn&amp;rsquo;t foolproof, but it significantly ups the game. An attacker would now have to both steal the key - probably by physically breaking in to your property - and also decrypt it.&lt;/p&gt;
&lt;h1 id=&#34;memory-sticks-are-cheap&#34;&gt;Memory Sticks are Cheap&lt;/h1&gt;
&lt;p&gt;We&amp;rsquo;re going to be using a LiveCD and three USB memory sticks for our offline machine. To aid your future self, I recommend that you find a marker pen and label them.&lt;/p&gt;
&lt;p&gt;Mine are labelled like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LIVE CD&lt;/li&gt;
&lt;li&gt;GPG KEYS (ONLY CONNECT TO OFFLINE LIVE CD)&lt;/li&gt;
&lt;li&gt;TRANSFER&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&#34;time-for-some-diceware&#34;&gt;Time for some Diceware&lt;/h1&gt;
&lt;p&gt;Since you&amp;rsquo;ve learned all about &lt;a href=&#34;http://diceware.com&#34;&gt;Diceware&lt;/a&gt;, it&amp;rsquo;s time to roll some die and create a new passphrase.&lt;/p&gt;
&lt;p&gt;This &lt;strong&gt;offline passphrase&lt;/strong&gt;: will protect your &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick, and must only &lt;em&gt;ever&lt;/em&gt; be typed into an offline Live CD.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;re probably going to need to write down a backup and hide it in a different location from the memory stick.&lt;/p&gt;
&lt;h1 id=&#34;1-a-livecd-always-forgets&#34;&gt;1. A LiveCD Always Forgets&lt;/h1&gt;
&lt;p&gt;A Live &amp;ldquo;CD&amp;rdquo; is a GNU/Linux distribution which boots directly from a CD or USB stick and keeps everything in random-access memory (RAM) - that is, nothing is ever written to permanent storage.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s great for a number of reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;each boot is a fresh start, making it difficult for an attacker to install keyloggers or malware&lt;/li&gt;
&lt;li&gt;there are (ideally) no permanent storage media for secret keys to leak onto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I used the &amp;ldquo;Startup Disk Creator&amp;rdquo; application in Ubuntu to build an &lt;a href=&#34;http://www.ubuntu.com/download/desktop&#34;&gt;Ubuntu&lt;/a&gt; 14.04LTS Desktop bootable USB stick.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Warning: You must disable writeable &amp;ldquo;reserved space&amp;rdquo; on the USB stick&lt;/strong&gt; - in my application I had to select an option called &amp;ldquo;Discarded on shutdown, unless you save them elsewhere&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;If your USB stick has a read-only hardware switch, it&amp;rsquo;s a good idea to enable it after creating your LiveCD.&lt;/p&gt;
&lt;h1 id=&#34;2-gpg-keys&#34;&gt;2. GPG Keys&lt;/h1&gt;
&lt;p&gt;The purpose of this memory stick is to store an export of your primary key and all subkeys, as well as a copy of your &lt;code&gt;gpg.conf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This memory stick holds the keys to the kingdom, so it&amp;rsquo;s a great idea to encrypt the underlying partition before you write anything to it. You can do this by booting into your LiveCD and opening its &amp;ldquo;Disk Utility&amp;rdquo; application. From there you can erase the USB stick and create a new LUKS encrypted partition.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ll be prompted for a passphrase. Now&amp;rsquo;s the time to use your &lt;strong&gt;offline passphrase&lt;/strong&gt;. Remember, you should only type this into a LiveCD that&amp;rsquo;s not connected to a network.&lt;/p&gt;
&lt;h1 id=&#34;3-transfer&#34;&gt;3. Transfer&lt;/h1&gt;
&lt;p&gt;This memory stick is going to move things between your online and offline machines. A few examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Other people&amp;rsquo;s public keys that you want to certify (sign) will be copied to your offline machine, certified, then transferred back online to be sent to the owner.&lt;/li&gt;
&lt;li&gt;Your &amp;ldquo;every day&amp;rdquo; keyring, comprising only your subkeys, will be copied to your online machine.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;rsquo;s up to you whether you encrypt this memory stick, but if you do, &lt;strong&gt;don&amp;rsquo;t use the offline passphrase&lt;/strong&gt; as that would indirectly expose that passphrase to your online machine.&lt;/p&gt;
&lt;h1 id=&#34;transfer-is-a-weak-link&#34;&gt;Transfer is a Weak Link&lt;/h1&gt;
&lt;p&gt;Beware: because it moves between your online and offline machines, this memory stick is a serious candidate for attack.&lt;/p&gt;
&lt;p&gt;For example, a determined attacker with control of your online machine could install malicious software onto the memory stick that exploits a weakness in the offline machine, for example in its file manager (nautilus). The software could be programmed to extract GPG keys and copy them onto the memory stick in a hidden location. Then when the transfer memory stick moves between machines it could exfiltrate your secret key.&lt;/p&gt;
&lt;p&gt;To reduce this risk, you could use a memory stick with a read-only switch which is always enabled when connected to the offline machine. This would prevent malicious software running on the offline machine from writing secret keys to the memory stick, but also limits the transfer to one direction. Your mileage may vary, and I&amp;rsquo;d appreciate your views on this one.&lt;/p&gt;
&lt;p&gt;Pragmatically, you probably need two-way transfer, so just exercise caution with how you use this memory stick - don&amp;rsquo;t ever run software from it, for example.&lt;/p&gt;
&lt;h1 id=&#34;creating-your-offline-machine&#34;&gt;Creating Your Offline Machine&lt;/h1&gt;
&lt;p&gt;Old laptops make great offline machines, especially if you can remove all permanent storage such as hard drives and SD cards.&lt;/p&gt;
&lt;p&gt;![Offline laptop][3]&lt;/p&gt;
&lt;p&gt;Removing permanent storage reduces the number of channels through which your secret key could be exfiltrated (malicious software could copy your keys onto the hard drive in the hope that you&amp;rsquo;ll later boot the laptop online where it could be retrieved through hacking).&lt;/p&gt;
&lt;p&gt;So, with old laptop in hand, here&amp;rsquo;s how to get your new secure machine ready for primetime.&lt;/p&gt;
&lt;h2 id=&#34;preparing-the-laptop&#34;&gt;Preparing the laptop&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Switch off and remove hard drive from offline machine.&lt;/li&gt;
&lt;li&gt;Disconnect and disable any network devices - preferably physically and also in BIOS.&lt;/li&gt;
&lt;li&gt;Enable booting from USB in the BIOS, if required.&lt;/li&gt;
&lt;li&gt;Insert &lt;code&gt;LIVE CD&lt;/code&gt; memory stick and power up.&lt;/li&gt;
&lt;li&gt;Marvel at the idea that anything you do here will be lost when you power off!&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;preparing-gpg-keys-memory-stick&#34;&gt;Preparing GPG KEYS memory stick&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Insert &lt;code&gt;GPG KEYS&lt;/code&gt; memory into offline LiveCD laptop&lt;/li&gt;
&lt;li&gt;Run Disk Utility&lt;/li&gt;
&lt;li&gt;Format the memory stick and create a LUKS parition, using the offline passphrase.&lt;/li&gt;
&lt;li&gt;Eject and remove &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick&lt;/li&gt;
&lt;li&gt;Re-insert and verify that you are prompted for a passphrase, and your offline passphrase unlocks it&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;preparing-gpgconf&#34;&gt;Preparing gpg.conf&lt;/h2&gt;
&lt;p&gt;Because every boot is a fresh start, you&amp;rsquo;ll need to keep a copy of your &lt;code&gt;gpg.conf&lt;/code&gt; file so that GPG is sanely configured (see previous post).&lt;/p&gt;
&lt;p&gt;As your GPG config file may be an avenue for attack, I recommend keeping it on your &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start up your offline LiveCD and unlock your &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick.&lt;/li&gt;
&lt;li&gt;Open a terminal and type &lt;code&gt;gpg&lt;/code&gt; to generate a default &lt;code&gt;~/.gnupg/gpg.conf&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Edit &lt;code&gt;~/.gnupg/gpg.conf&lt;/code&gt; according to the [https://paulfurley.com/gpg-for-humans-public-key-crypto-primer/][4]. &lt;strong&gt;This file is currently in memory, and will be lost on reboot&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Copy the newly edited &lt;code&gt;~/.gnupg/gpg.conf&lt;/code&gt; to your &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick, eg &lt;code&gt;/media/ubuntu/GPG_KEYS/gpg.conf&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;daily-use&#34;&gt;Daily Use&lt;/h1&gt;
&lt;p&gt;When you want to use GPG on the laptop, you&amp;rsquo;ll need to restore your GPG configuration and keys as the machine will be totally fresh. You can do this by following these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Unplug everything, disable network devices, remove all disks and memory sticks.&lt;/li&gt;
&lt;li&gt;Insert &lt;code&gt;LIVE CD&lt;/code&gt; memory stick and power on.&lt;/li&gt;
&lt;li&gt;Insert &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick and unlock with secure passphrase&lt;/li&gt;
&lt;li&gt;Copy &lt;code&gt;/media/ubuntu/GPG_KEYS/gpg.conf&lt;/code&gt; to &lt;code&gt;~/.gnupg/&lt;/code&gt; directory&lt;/li&gt;
&lt;li&gt;Import your GPG keys, eg &lt;code&gt;gpg --import /media/ubuntu/GPG_KEYS/0x309F635DAD1B5517.full_backup.asc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Unmount and eject your &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick.&lt;/li&gt;
&lt;li&gt;Do some GPG stuff.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Power off&lt;/strong&gt; to wipe the laptop&amp;rsquo;s memory.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To minimise the risk of data leaking, you need to bear in mind a few simple rules. You might even want to print these and stick them to your laptop.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Your &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick must only be inserted into your freshly-booted, offline LiveCD.&lt;/li&gt;
&lt;li&gt;Ditto for your secure passphrase.&lt;/li&gt;
&lt;li&gt;Unmount and remove &lt;code&gt;GPG KEYS&lt;/code&gt; as soon as you&amp;rsquo;ve imported your configuration and keys.&lt;/li&gt;
&lt;li&gt;Always power off (not suspend) the laptop as soon as you&amp;rsquo;ve finished what you&amp;rsquo;re doing.&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&#34;bringing-it-all-together&#34;&gt;Bringing it all together&lt;/h1&gt;
&lt;p&gt;It&amp;rsquo;s been a long time coming, but that&amp;rsquo;s the background covered.&lt;/p&gt;
&lt;p&gt;Next time we&amp;rsquo;ll actually create a set of GPG keys using the offline machine, storing them securely on a dedicated memory stick.&lt;/p&gt;
&lt;h1 id=&#34;homework&#34;&gt;Homework&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Find somewhere safe to hide your &lt;code&gt;GPG KEYS&lt;/code&gt; memory stick.&lt;/li&gt;
&lt;li&gt;Seal your passphrase in an envelope and hide it somewhere - in a different location from &lt;code&gt;GPG KEYS&lt;/code&gt; !&lt;/li&gt;
&lt;li&gt;Help me out with a potential ebook - see below.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;ebook&#34;&gt;Ebook&lt;/h1&gt;
&lt;p&gt;I&amp;rsquo;m considering writing an Ebook on GPG - can you help? I&amp;rsquo;d like to pin down what areas to focus on so your feedback would amazing. I&amp;rsquo;ll make sure you get a free copy.&lt;/p&gt;
&lt;p&gt;[Contribute and get occasional updates on a GPG ebook.][5]&lt;/p&gt;
&lt;p&gt;[4]: homework section in part 2
[5]: &lt;a href=&#34;http://eepurl.com/bbooor&#34;&gt;http://eepurl.com/bbooor&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>GPG For Humans, Part 3: Protecting your Primary Key</title>
      <link>https://paul.fawkesley.com/gpg-for-humans-protecting-your-primary-key/</link>
      <pubDate>Wed, 26 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/gpg-for-humans-protecting-your-primary-key/</guid>
      <description>&lt;p&gt;In the last post we talked about public and private, or secret, keys. The whole security of GPG relies on making sure your secret key can&amp;rsquo;t be used by anyone else. In an Internet-connected world, this can be really tough. It&amp;rsquo;s awkward to change keys, so ideally we&amp;rsquo;ll keep the same key for years, if not decades.&lt;/p&gt;
&lt;p&gt;GPG offers us a solution. In this post we&amp;rsquo;re going to talk about splitting off your &amp;ldquo;primary&amp;rdquo; key and keeping it really safe, then using &amp;ldquo;subkeys&amp;rdquo; for every-day use.&lt;/p&gt;
&lt;h2 id=&#34;the-all-powerful-primary-key&#34;&gt;The All-Powerful Primary Key&lt;/h2&gt;
&lt;p&gt;When you create a GPG public/private keypair, by default you get a &lt;em&gt;primary&lt;/em&gt; public/private key and one sub public/private key. The primary key has two capabilities, or permissions: Sign and Certify. The subkey has one capability: Encrypt.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ gpg --edit-key 0x309F635DAD1B5517
Secret key is available.

pub 4096R/0x309F635DAD1B5517 created: 2014-10-31 expires: 2015-10-31 usage: SC 
 trust: ultimate validity: ultimate
sub 4096R/0x627B1B4E8E532C34 created: 2014-10-31 expires: 2015-10-31 usage: E
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The trouble is, the primary key with its Certify capability is too powerful. If someone steals your primary key, the Certify capability allows them to certify other people&amp;rsquo;s keys, they can generate new subkeys, revoke your keys and so on. They could even generate new subkeys and revoke your subkeys - totally stealing your identity!&lt;/p&gt;
&lt;p&gt;In other words, your primary key is your &lt;em&gt;identity&lt;/em&gt; - if the secret part is compromised, you&amp;rsquo;ll need a new key. You can delegate some powers to your subkeys which you can take back at a future date.&lt;/p&gt;
&lt;p&gt;Recall that last time we talked about comparing key &lt;em&gt;fingerprints&lt;/em&gt; to verify key ownership. Although subkeys have fingerprints too, we&amp;rsquo;re almost always talking about the primary key&amp;rsquo;s fingerprint.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t want to carry around the all-powerful primary key on my laptop, phone etc. And that&amp;rsquo;s OK - it&amp;rsquo;s possible to remove the secret part of the primary key. But that leaves one problem - notice that the primary key provides both the Certify and Sign capability? Without it, I won&amp;rsquo;t be able to &lt;em&gt;sign&lt;/em&gt; things.&lt;/p&gt;
&lt;h2 id=&#34;delegate-to-subkeys&#34;&gt;Delegate to Subkeys&lt;/h2&gt;
&lt;p&gt;The solution is to create another subkey with the Sign capability and use the subkeys to make a new keyring for &amp;ldquo;every day&amp;rdquo; use. Your every-day keyring will &lt;em&gt;not&lt;/em&gt; contain the secret part of your primary key.&lt;/p&gt;
&lt;p&gt;So your set of keys will start off like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;primary key (Sign, Certify)&lt;/li&gt;
&lt;li&gt;subkey #1 (Encrypt)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then you&amp;rsquo;ll add a subkey:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;primary key (Sign, Certify)&lt;/li&gt;
&lt;li&gt;subkey #1 (Encrypt)&lt;/li&gt;
&lt;li&gt;subkey #2 (Sign)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then you&amp;rsquo;ll convert this into an every-day keyring, which looks like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;primary key (without secret part - no capabilities)&lt;/li&gt;
&lt;li&gt;subkey #1 (Encrypt)&lt;/li&gt;
&lt;li&gt;subkey #2 (Sign)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The every-day keyring gives you signing and encryption capabilities but with these restrictions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It cannot add or revoke any keys (including generating a revocation certificate)&lt;/li&gt;
&lt;li&gt;It cannot certify other people&amp;rsquo;s keys.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;practise-create-an-every-day-keyring&#34;&gt;Practise: Create An Every-Day Keyring&lt;/h2&gt;
&lt;p&gt;In the last post you generated a practice keyring. Here you can practise turning this into an every-day version without the secret part of the primary key.&lt;/p&gt;
&lt;p&gt;This is just for fun and you shouldn&amp;rsquo;t use these keys - we&amp;rsquo;ll be going through this step-by-step in a later post.&lt;/p&gt;
&lt;p&gt;First, add a Sign subkey:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gpg --edit-key 0x309F635DAD1B5517
Secret key is available.

pub 4096R/0x309F635DAD1B5517 created: 2014-10-31 expires: 2015-10-31 usage: SC 
 trust: ultimate validity: ultimate
sub 4096R/0x627B1B4E8E532C34 created: 2014-10-31 expires: 2015-10-31 usage: E

gpg&amp;gt; addkey
[... follow steps - set a short expiry ...]
pub  4096R/0x309F635DAD1B5517  created: 2014-10-31  expires: 2015-10-31  usage: SC  
                               trust: ultimate      validity: ultimate
sub  4096R/0x627B1B4E8E532C34  created: 2014-10-31  expires: 2015-10-31  usage: E   
sub  4096R/0x0AC6AD63E8E8A9B0  created: 2014-10-31  expires: 2015-10-31  usage: S   
[ultimate] (1). Paul Michael Furley &amp;lt;paul@paulfurley.com&amp;gt;
gpg&amp;gt; save
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Success! Note that there&amp;rsquo;s now a primary key - &lt;code&gt;pub&lt;/code&gt; - and two subkeys - &lt;code&gt;sec&lt;/code&gt;. See how the last key with id &lt;code&gt;0x0AC6AD63E8E8A9B0&lt;/code&gt; has usage S which means Sign.&lt;/p&gt;
&lt;h3 id=&#34;create-a-full-backup&#34;&gt;Create a Full Backup&lt;/h3&gt;
&lt;p&gt;At this point we can make a &lt;strong&gt;full&lt;/strong&gt; copy (backup) of our keyring (primary and subkeys, public and secret parts):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ gpg --export-secret-keys --armor 0x309F635DAD1B5517 &amp;gt; 0x309F635DAD1B5517.full_backup.asc
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;create-a-partial-backup-subkeys&#34;&gt;Create a Partial Backup (Subkeys)&lt;/h3&gt;
&lt;p&gt;Now we can export the keyring &lt;em&gt;without&lt;/em&gt; the secret part of the primary key. This will become our every-day keyring:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ gpg --export-secret-subkeys --armor 0x309F635DAD1B5517 &amp;gt; 0x309F635DAD1B5517.only_subkeys.asc
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;nuke-your-gpg-directory&#34;&gt;Nuke Your GPG Directory&lt;/h3&gt;
&lt;p&gt;Move aside your &lt;code&gt;~/.gnupg/&lt;/code&gt; directory to start afresh. You&amp;rsquo;ll need to restore your &lt;code&gt;gpg.conf&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ mv --no-clobber ~/.gnupg ~/.gnupg.BAK
$ mkdir ~/.gnupg &amp;amp;&amp;amp; cp ~/.gnupg.BAK/gpg.conf ~/.gnupg
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;import-your-partial-backup-subkeys&#34;&gt;Import Your Partial Backup (Subkeys)&lt;/h3&gt;
&lt;p&gt;Finally, import your partial backup and peek at your secret keys:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ gpg --import 0x309F635DAD1B5517.only_subkeys.asc
$ gpg --list-secret-keys gpg 0x309F635DAD1B5517
sec#  4096R/0x309F635DAD1B5517 2014-10-31 [expires: 2015-10-31]
      Key fingerprint = A999 B749 8D1A 8DC4 73E5  3C92 309F 635D AD1B 5517
uid                            Paul Michael Furley &amp;lt;paul@paulfurley.com&amp;gt;
ssb   4096R/0x627B1B4E8E532C34 2014-10-31 [expires: 2015-10-31]
ssb   4096R/0x0AC6AD63E8E8A9B0 2014-10-31 [expires: 2015-10-31]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Success! See how the &lt;code&gt;sec&lt;/code&gt; has changed to &lt;code&gt;sec#&lt;/code&gt; to signify that the secret key is missing.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t say I didn&amp;rsquo;t warn you about GPG&amp;rsquo;s UX&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;lose-your-every-day-keyring&#34;&gt;Lose Your Every-Day Keyring&lt;/h2&gt;
&lt;p&gt;Now, if your every-day keyring is lost and your subkeys are compromised, you resurrect your primary key and use it to revoke your subkeys and create new ones.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s all very well, but how do we keep the primary key secure? For that, we&amp;rsquo;re going to need an offline, or &amp;ldquo;airgapped&amp;rdquo; machine - meaning it has no connection to the Internet.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s the topic for next week.&lt;/p&gt;
&lt;h2 id=&#34;homework&#34;&gt;Homework!&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Some more in-depth reading:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://apapadop.wordpress.com/2013/08/21/using-gnupg-with-qubesos/&#34;&gt;https://apapadop.wordpress.com/2013/08/21/using-gnupg-with-qubesos/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://spin.atomicobject.com/2013/11/24/secure-gpg-keys-guide/&#34;&gt;http://spin.atomicobject.com/2013/11/24/secure-gpg-keys-guide/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://security.stackexchange.com/a/31598&#34;&gt;http://security.stackexchange.com/a/31598&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Read up on Diceware passphrases at diceware.com&lt;/li&gt;
&lt;li&gt;For the next post, you will need:
&lt;ul&gt;
&lt;li&gt;2 computers - normal machine + a spare (2 is better but not essential)&lt;/li&gt;
&lt;li&gt;3x USB sticks (at least 4GB)&lt;/li&gt;
&lt;li&gt;Ubuntu 14.04 LTS Desktop LiveCD installed on one of the USB sticks with no persistent storage&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;upcoming-ebook-i-need-your-help&#34;&gt;Upcoming Ebook: I Need Your Help!&lt;/h2&gt;
&lt;div id=&#34;mc_embed_signup&#34;&gt;
&lt;/div&gt;
</description>
    </item>
      
    
      
    <item>
      <title>GPG For Humans, Part 2: Public Key Crypto Primer</title>
      <link>https://paul.fawkesley.com/gpg-for-humans-public-key-crypto-primer/</link>
      <pubDate>Tue, 11 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/gpg-for-humans-public-key-crypto-primer/</guid>
      <description>&lt;p&gt;Public-key or &amp;ldquo;asymmetric&amp;rdquo; crypto is a cunning piece of maths (which I happily
don&amp;rsquo;t understand) that&amp;rsquo;s at the heart of GPG. The incredible thing it allows is
for us to communicate securely (signing and encryption) without having agreed a
secret in advance. This turns out to be a big deal.&lt;/p&gt;
&lt;p&gt;In GPG you create a &lt;em&gt;pair&lt;/em&gt; of keys which are fundamentally related. One half is your &lt;em&gt;secret&lt;/em&gt; or &lt;em&gt;private&lt;/em&gt; key, which you keep strictly to yourself. The other half is your &lt;em&gt;public&lt;/em&gt; key which you tell everyone about, if you so wish.&lt;/p&gt;
&lt;p&gt;This brings us back to &lt;a title=&#34;GPG For Humans, Part 1: Why Care About Cryptography?&#34; href=&#34;https://paulfurley.com/gpg-for-humans-why-care-about-cryptography/&#34; target=&#34;_blank&#34;&gt;part 1&lt;/a&gt; on signing and encryption. If I know your &lt;em&gt;public&lt;/em&gt; key, I can use it to encrypt a message that only your &lt;em&gt;secret&lt;/em&gt; key can unlock. Even I can&amp;rsquo;t unlock it once I&amp;rsquo;ve encrypted it.&lt;/p&gt;
&lt;p&gt;Furthermore, you can use your secret key to create a signature. If I know your public key then I can verify that the signature came from your secret key by using your public key.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;public key&lt;/strong&gt; - encrypt messages to owner, verify signatures by owner&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;secret key&lt;/strong&gt; - decrypt messages to owner, create signatures by owner&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clearly, it&amp;rsquo;s very important to properly verify that a public key belongs to who you think it does. There is absolutely nothing to stop someone from creating a keypair using someone else&amp;rsquo;s email address and pretend it really belongs to that person. In fact, this isn&amp;rsquo;t theoretical - it has actually happened to developers. We&amp;rsquo;ll go into key verification in more detail later - for now, suffice to say that public keys have &lt;em&gt;fingerprints&lt;/em&gt; which must be carefully verified, preferably in person.&lt;/p&gt;
&lt;p&gt;So what&amp;rsquo;s a fingerprint?&lt;/p&gt;
&lt;h2 id=&#34;key-ids--fingerprints&#34;&gt;Key IDs &amp;amp; Fingerprints&lt;/h2&gt;
&lt;p&gt;Unfortunately GPG has three (at least?) ways of identifying a key. Here are the three ways for my current public key:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Short ID, for example &lt;code&gt;AD1B5517&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Long ID, for example &lt;code&gt;0x309F635DAD1B5517&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fingerprint, for example &lt;code&gt;A999 B749 8D1A 8DC4 73E5 3C92 309F 635D AD1B 5517&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To cut a long story short, &lt;em&gt;don&amp;rsquo;t ever use short ids&lt;/em&gt; - &lt;a href=&#34;http://yro.slashdot.org/story/11/12/27/0044242/gnupg-short-id-collision-has-occurred&#34; target=&#34;_blank&#34;&gt;they are not secure&lt;/a&gt;. But do be aware of them as you are likely to encounter them - alas, not everyone is using long ids yet &lt;img src=&#34;https://paulfurley.com/wp-includes/images/smilies/icon_sad.gif&#34; alt=&#34;:(&#34; class=&#34;wp-smiley&#34; /&gt;&lt;/p&gt;
&lt;p&gt;The fingerprint is what you use to compare and verify a key. Supposing you knew me well enough to identify me in person. It would be fairly easy to acquire and verify my public key, perhaps like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You search a keyserver for my email address, and it shows you a key with id &lt;code&gt;0x309F635DAD1B5517&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;You download key &lt;code&gt;0x309F635DAD1B5517&lt;/code&gt; and examine its fingerprint&lt;/li&gt;
&lt;li&gt;You meet me (in person) and ask me to read my key&amp;rsquo;s fingerprint.&lt;/li&gt;
&lt;li&gt;You verify every single digit of the fingerprint.&lt;/li&gt;
&lt;li&gt;You &lt;em&gt;sign&lt;/em&gt; my key to say that you&amp;rsquo;ve verified it belongs to me.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In this ideal scenario, you&amp;rsquo;d have a pretty good idea that I owned the public key you&amp;rsquo;d just downloaded. Now you could send me an encrypted email or verify a message or file that I&amp;rsquo;ve signed.&lt;/p&gt;
&lt;h2 id=&#34;keyservers&#34;&gt;Keyservers&lt;/h2&gt;
&lt;p&gt;Keyservers are a way of sharing public keys and knowledge of who has verified which keys. We&amp;rsquo;ll cover these more later, but for now a word of warning: you cannot delete keys from a keyserver, so they will hang around forever. It&amp;rsquo;s possible to expire and revoke them, but they&amp;rsquo;ll still be present in search results. I would advise that you don&amp;rsquo;t send any keys to a keyserver just yet.&lt;/p&gt;
&lt;h2 id=&#34;homework&#34;&gt;Homework!&lt;/h2&gt;
&lt;p&gt;Enough theory - let&amp;rsquo;s get stuck in! There are loads of resources online to help. Don&amp;rsquo;t worry about security at this point - we&amp;rsquo;ll be doing secure key generation step-by-step later on.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Configure gnupg.conf to show long ids and fingerprints (see &lt;a href=&#34;https://help.riseup.net/en/security/message-security/openpgp/best-practices&#34; target=&#34;_blank&#34;&gt;&lt;a href=&#34;https://help.riseup.net/en/security/message-security/openpgp/best-practices&#34;&gt;https://help.riseup.net/en/security/message-security/openpgp/best-practices&lt;/a&gt;&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Generate an RSA key pair with 4096 bits and an expiry of one week.&lt;/li&gt;
&lt;li&gt;Have a play with &lt;code&gt;`gpg --list-keys`&lt;/code&gt; and &lt;code&gt;`gpg --edit-key &amp;lt;long id&amp;gt;`&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Try and find &amp;amp; download my key from a keyserver using &lt;a href=&#34;mailto:paul@paulfurley.com&#34;&gt;paul@paulfurley.com&lt;/a&gt; (hint: &lt;code&gt;`--search-keys`&lt;/code&gt; and &lt;code&gt;`--recv-keys`&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Any thoughts, &lt;a title=&#34;Contact&#34; href=&#34;https://paulfurley.com/contact/&#34; target=&#34;_blank&#34;&gt;get in touch&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>GPG For Humans, Part 1: Why Care About Cryptography?</title>
      <link>https://paul.fawkesley.com/gpg-for-humans-why-care-about-cryptography/</link>
      <pubDate>Tue, 04 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/gpg-for-humans-why-care-about-cryptography/</guid>
      <description>&lt;p&gt;Cryptography, or crypto for short, offers myriad benefits far beyond writing secret messages. Crytography is already in massive, widespread use, underpinning many industries such as finance, law and journalism, as well as creative systems like the Bitcoin crypto currency.&lt;/p&gt;
&lt;p&gt;Today, many of us are using crypto as a &lt;em&gt;side-effect&lt;/em&gt; of systems we are using, but very few are using cryptography &lt;em&gt;directly&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In this post I&amp;rsquo;m going to highlight some empowering use cases and in the following series I&amp;rsquo;ll be sharing my journey into re-learning and understanding &lt;a href=&#34;https://www.gnupg.org/&#34; target=&#34;_blank&#34;&gt;GPG&lt;/a&gt; - the awkward but most widespread crypto package currently in use.&lt;/p&gt;
&lt;h2 id=&#34;what-can-gpg-actually-do&#34;&gt;What Can GPG Actually Do?&lt;/h2&gt;
&lt;p&gt;Conceptually, GPG allows you to do a few different things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sign&lt;/strong&gt; things to prove to other people that they have not been tampered with.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify&lt;/strong&gt; things that have been signed by other people.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Encrypt&lt;/strong&gt; and &lt;strong&gt;Decrypt&lt;/strong&gt; things to limit who can access them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cryptographic-signing&#34;&gt;Cryptographic Signing&lt;/h3&gt;
&lt;p&gt;Have you ever downloaded software from the Internet? If so, how did you know that the software package you downloaded was the same as what the developer published? What if their server had been hacked and the software was modified somehow?&lt;/p&gt;
&lt;p&gt;Have you ever published any software? Your users might appreciate being able to verify it really came from &lt;em&gt;you&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It struck me how important this was when I first downloaded &lt;a title=&#34;Tor Project&#34; href=&#34;https://www.torproject.org/&#34; target=&#34;_blank&#34;&gt;Tor, or The Onion Router&lt;/a&gt; &lt;em&gt;(as an aside, I&amp;rsquo;d recommend you go and try it out, it&amp;rsquo;s a fascinating piece of software and it&amp;rsquo;s cool how Google keeps changing language!)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Originally funded by the US Government, Tor empowers journalists, lawyers, you, me and anyone else to browse the Internet in a way which is difficult to snoop on. This upsets regimes that like to snoop on everyone. I conclude that this makes Tor a likely candidate for someone to want to tamper with.&lt;/p&gt;
&lt;p&gt;GPG offers a solution. By &lt;em&gt;signing&lt;/em&gt; the package, the Tor developers can tell me &lt;em&gt;exactly&lt;/em&gt; what the package looked like when they created it. As long as I can verify their signature (more on that later), I know the software has not been tampered with.&lt;/p&gt;
&lt;h3 id=&#34;encryption&#34;&gt;Encryption&lt;/h3&gt;
&lt;p&gt;So why bother with encryption?&lt;/p&gt;
&lt;p&gt;Have you ever written a diary? Taken a private photo? Ever written down a sexual fantasy?&lt;/p&gt;
&lt;p&gt;Personally I&amp;rsquo;m proud to have secrets and I have things I want to hide (see &lt;a href=&#34;https://en.wikipedia.org/wiki/Nothing_to_hide_argument&#34; target=&#34;_blank&#34;&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Nothing_to_hide_argument&#34;&gt;https://en.wikipedia.org/wiki/Nothing_to_hide_argument&lt;/a&gt;&lt;/a&gt;). In the past, we kept our secrets by storing them in a safe place, often with a lock and key.&lt;/p&gt;
&lt;p&gt;I adore the Internet, but alongside its huge benefits, it&amp;rsquo;s made everything &lt;em&gt;so leaky&lt;/em&gt;. It&amp;rsquo;s &lt;em&gt;really&lt;/em&gt; hard to keep secrets when everything is so well connected - and getting ever more connected.&lt;/p&gt;
&lt;p&gt;Encryption empowers &lt;em&gt;you&lt;/em&gt; to decide what is visible to others. With encryption, you don&amp;rsquo;t need to trust a company&amp;rsquo;s Privacy Settings. It doesn&amp;rsquo;t matter if your email provider&amp;rsquo;s IT support team peer inside your inbox. With encryption - done properly - you become the guardian of your diary, photos, fantasies, and anything else you choose.&lt;/p&gt;
&lt;h2 id=&#34;aims--audience&#34;&gt;Aims &amp;amp; Audience&lt;/h2&gt;
&lt;p&gt;My medium-term aim is for more people to be confident using GPG and this means starting with technical users (those who are confident with the command-line).&lt;/p&gt;
&lt;p&gt;The long-term aim is to help GPG evolve into something &lt;em&gt;far&lt;/em&gt; more user-friendly that&amp;rsquo;s accessible by the majority.&lt;/p&gt;
&lt;p&gt;This will be a series of blog posts. Once complete, they should provide a step-by-step guide to understanding GPG enough to it use confidently.&lt;/p&gt;
&lt;p&gt;There is always a trade-off between convenience and security and it&amp;rsquo;s important to understand those trade-offs. Personally I want my GPG identity to remain mine, and only mine, for many years. Therefore I will be erring on the side of security and advocating strong security practices such as Diceware passphrases, offline laptops and so on.&lt;/p&gt;
&lt;p&gt;You &lt;em&gt;do not&lt;/em&gt; have to be a crypto expert. You might have used GPG casually, but perhaps don&amp;rsquo;t currently understand it well enough to use confidently on a daily basis. That&amp;rsquo;s basically me at the start of this process - I&amp;rsquo;m learning too.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll collate and follow the best guidance I can find, and relay it in a human-friendly way. You can feed back with corrections and ideas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is this a worthwhile project? &lt;a href=&#34;https://paulfurley.com/contact/&#34; title=&#34;Contact&#34;&gt;Let me know.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Bar Camp for Beginners</title>
      <link>https://paul.fawkesley.com/bar-camp-for-beginners/</link>
      <pubDate>Tue, 28 Oct 2014 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/bar-camp-for-beginners/</guid>
      <description>&lt;p&gt;A few weekends ago I went to &lt;a href=&#34;http://barcampmanchester.co.uk&#34;&gt;Bar Camp Manchester&lt;/a&gt; - my first one. I had no expectations and, to be honest, I only skimmed the FAQs before I left and not a lot else. This post is for Bar Camp Beginners - like me - to guide you on how to get the most out of a BarCamp.&lt;/p&gt;
&lt;p&gt;The first surprise was the evening before when I read that everyone was encouraged to prepare a 25 minute talk. It was a bit late so unfortunately I fell at the first hurdle. During the introductions on Saturday morning I learned that Bar Camp is completely participatory - there are no keynotes, no superstars, and everyone has equal rights to run a session. How this works is that there&amp;rsquo;s a board with a timetable along the bottom and the different rooms along the side. Each room has a different capacity so you can choose to do a big session or a more intimate discussion-type session. You choose what to attend and there&amp;rsquo;s a cultural understanding that it&amp;rsquo;s OK to leave a session.&lt;/p&gt;
&lt;p&gt;I quickly realised that sessions didn&amp;rsquo;t have to be polished or flashy - in fact some of the best ones were completely unprepared and were more of a discussion group than a speech. Although I enjoy giving talks, this approach seems great to me as it lowers the barrier and stress for people who might not have spoken before.&lt;/p&gt;
&lt;p&gt;Ultimately I gave two talks on two things I find interesting - Information Hiding and Building with Straw Bales. These two talks couldn&amp;rsquo;t have been more different but they were warmly received with excellent questions and the atmosphere was open-minded and supportive.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/inside-a-beautiful-straw-bale-house.jpg&#34; alt=&#34;Inside a beautiful straw bale house&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Inside a Beautiful Straw Bale House&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;My recommendation for Bar Camp beginners, then, is to identify something you&amp;rsquo;re interested in and sketch out a rough talk. If you aren&amp;rsquo;t confident to do a talk, think of some discussion points and let others contribute.&lt;/p&gt;
&lt;p&gt;Further, the whole concept of Bar Camp is about participation. If you know a good evening game or activity, suggest it! Get involved, take the lead, and see what happens. Bar Camp is all about the democratic community - and the official organisers will appreciate the help too.&lt;/p&gt;
&lt;p&gt;Most of all: bring an open mind, get involved, ask lots of questions and enjoy yourself.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>How Open Wifi Can Make a City Smarter</title>
      <link>https://paul.fawkesley.com/how-open-wifi-can-make-a-city-smarter/</link>
      <pubDate>Mon, 20 Oct 2014 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/how-open-wifi-can-make-a-city-smarter/</guid>
      <description>&lt;p&gt;I recently returned from Slovenia, where I&amp;rsquo;d been surprised by the amount of open wireless hotspots around. Anecdotally it seems that Slovenians are far more willing to share their Internet than us Brits. This wasn&amp;rsquo;t always the case - I remember often using open wireless all the time in the past.&lt;/p&gt;
&lt;p&gt;This got me thinking. You&amp;rsquo;ve probably noticed this Internet of Things thing that lots of people are talking about. I&amp;rsquo;m not sure about the name, but I am sure that connecting things to the Internet is going to provide a whole load of unpredictable benefits. Liverpool is keen to become a &amp;ldquo;Smart City&amp;rdquo; which I understand means putting sensors everywhere and seeing what happens.. more or less!&lt;/p&gt;
&lt;p&gt;One of the big headaches with Internet of Things / Smart Cities is getting little scamps online. You&amp;rsquo;ve basically got three options -&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ethernet cable to a nearby router&lt;/li&gt;
&lt;li&gt;GSM chip with simcard&lt;/li&gt;
&lt;li&gt;Wifi&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You don&amp;rsquo;t always have access to a router to plug a cable into. A GSM chip is fine except each device then needs a simcard and a contract with associated cost and effort to manage.&lt;/p&gt;
&lt;p&gt;Wifi *could* be a good option, but for locked-down networks it&amp;rsquo;s a pain - telling a toaster the password for a Wireless network is not straightforward.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/internet-of-things-toaster.jpg&#34; alt=&#34;Internet of Things Toaster?&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Internet of Things Toaster?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is where open wifi starts to sound attractive. If I were to build a smart sensor to stick in a lamp-post, for example, it would be ideal if it could be installed and &amp;ldquo;just work&amp;rdquo;. If my city had open wireless throughout, this could actually become reality and the cost and difficulty of innovating my new device has plummetted.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the catch. In the past couple of years I&amp;rsquo;ve noticed a massive increase in the dreaded &amp;ldquo;Captive Portal&amp;rdquo;. You&amp;rsquo;ve all seen them - you connect to an apparently &amp;ldquo;open&amp;rdquo; network, then you get a prompt to &amp;ldquo;sign in to wifi network&amp;rdquo;. This opens a web browser at some flashy page (remember my toaster) and you follow some arcane instructions ranging from entering a credit card to pretending you &amp;ldquo;Like!&amp;rdquo; some nearby restaurant you wish you&amp;rsquo;d never heard of.&lt;/p&gt;
&lt;p&gt;Captive portals suck for many reasons. The user experience is dreadful. Ljubjana&amp;rsquo;s public Wifi was the worst - you had to provide a mobile number, wait for an SMS with a password and type it into the web-page. Then you were graciously awarded a *whole hour* of Internet access. Yuk.&lt;/p&gt;
&lt;p&gt;But they also suck because they bamboozle my Internet of Things toaster and my Smart City sensor. They don&amp;rsquo;t know how to sign in to a wireless network, and neither should they have to. What they need is good old-fashioned open wireless with no frills, and certainly no Captive Portal.&lt;/p&gt;
&lt;p&gt;I could go on for ages about other benefits of open wireless, but I&amp;rsquo;ll think of the toasters and leave it there.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Improving Freecycle with SMS Alerts</title>
      <link>https://paul.fawkesley.com/improving-freecycle-with-sms-alerts/</link>
      <pubDate>Sat, 02 Aug 2014 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/improving-freecycle-with-sms-alerts/</guid>
      <description>&lt;p&gt;I love the concept of Freecycle - you&amp;rsquo;ve got something you want to get rid of, so you offer it for free on the condition that someone comes and collects it. It&amp;rsquo;s still basically a simple email list where you write OFFER or WANTED in the subject - nothing too fancy.&lt;/p&gt;
&lt;p&gt;Historically I&amp;rsquo;ve mostly donated on Freecycle as I&amp;rsquo;ve found it to be a great way of de-cluttering - getting someone to turn up and collect your stuff is awesome. Sometimes you meet really lovely people too and there&amp;rsquo;s a feel-good factor.&lt;/p&gt;
&lt;h2 id=&#34;signal-to-noise&#34;&gt;Signal to Noise&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Receiving&lt;/em&gt; on freecycle, however, isn&amp;rsquo;t as smooth as donating. At the moment I&amp;rsquo;m looking for something quite specific - a king-sized bed - and I&amp;rsquo;m experiencing a couple of problems with this use-case:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you receive all offers as individual emails then you get swamped with unrelated emails- too much &lt;em&gt;noise&lt;/em&gt;!&lt;/li&gt;
&lt;li&gt;But choose message digest and by the time you see an offer, someone else has already got it!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;rsquo;re busy and it&amp;rsquo;s not practical for you to read every single email as they come in, you&amp;rsquo;re at a disadvantage when it comes to receiving on Freecycle.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/freecycle-too-many-emails.png&#34; alt=&#34;screenshot of lots of emails from freecycle&#34;&gt;&lt;/p&gt;
&lt;p&gt;As I see it, there are two distinct problems for my use case:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Inadequate filtering&lt;/strong&gt; - 99% of items aren&amp;rsquo;t relevant to someone looking for a specific item, so it&amp;rsquo;s crazy for them to have to read each one.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time sensitivity&lt;/strong&gt; - unfortunately donors often just say yes to the first person who asks, so you have to get in quick.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The result of these two problems - and I&amp;rsquo;ve heard this grumbled about by moderators - is that Freecycle tends to advantage the dreaded &amp;ldquo;traders&amp;rdquo; (eBay sellers) who have got time to sift through emails and respond very quickly.&lt;/p&gt;
&lt;p&gt;Personally I don&amp;rsquo;t care where my stuff goes - if someone wants to make some money where I couldn&amp;rsquo;t be arsed, good for them. But it does mean that it can be difficult to actually find something when you&amp;rsquo;re looking for it.&lt;/p&gt;
&lt;h2 id=&#34;a-very-simple-solution&#34;&gt;A Very Simple Solution&lt;/h2&gt;
&lt;p&gt;This afternoon I hacked up an incredibly simple system using a couple of new services I had been meaning to try out. The basic premise is simple - I choose some keywords, and any matching offers cause an SMS to be sent to my mobile. This way I can ignore anything unrelated, and react quickly whenever I receive an SMS.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how it works.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Freecycle OFFER emails all go to a unique &lt;a title=&#34;cloudmailin&#34; href=&#34;http://cloudmailin.com&#34; target=&#34;_blank&#34;&gt;cloudmailin.com&lt;/a&gt; address.&lt;/li&gt;
&lt;li&gt;CloudMailin encodes the email as JSON and sends an HTTP POST to &lt;a title=&#34;Freecycle SMS alerts&#34; href=&#34;https://github.com/fawkesley/liverpool-freecycle-alerts&#34; target=&#34;_blank&#34;&gt;my Flask app&lt;/a&gt; running on Heroku.&lt;/li&gt;
&lt;li&gt;My app checks the email subject and body for the given keywords.&lt;/li&gt;
&lt;li&gt;If the email matches a keyword, the app uses &lt;a title=&#34;Twilio&#34; href=&#34;https://www.twilio.com/&#34; target=&#34;_blank&#34;&gt;Twilio&lt;/a&gt; to send an SMS to my mobile.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here are emails coming in to CloudMailin - you can see where I did a lot of messing around breaking my web app.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/cloudmailin-email-management-panel.png&#34; alt=&#34;CloudMailIn email management panel&#34;&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s massively minimalist but it does work nicely and there are unit tests, obviously, so it&amp;rsquo;s not a total hack! Currently all settings are read straight from the environment so it only works for a single user. But still, it does work and it proves the concept.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/freecycle-sms-alert.png&#34; alt=&#34;SMS alert received from a Freecycle email&#34;&gt;
&lt;em&gt;Freecycle SMS Alert&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been been really impressed how easy it was to get up and running with two new services - CloudMailin and Twilio. It&amp;rsquo;s great to have such powerful building blocks which can be easily rigged together to create very powerful solutions.&lt;/p&gt;
&lt;p&gt;Is this something you&amp;rsquo;d be interested in? Visit the &lt;a href=&#34;https://github.com/fawkesley/liverpool-freecycle-alerts&#34;&gt;repo on GitHub&lt;/a&gt; and do get in touch and let me know.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Automating our Heroku deployments from Jenkins</title>
      <link>https://paul.fawkesley.com/automating-heroku-deployments-from-jenkins/</link>
      <pubDate>Wed, 02 Jul 2014 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/automating-heroku-deployments-from-jenkins/</guid>
      <description>&lt;p&gt;&lt;em&gt;At Sea Level Research we deploy to Heroku staging then production from Jenkins, with automatic database backups &amp;amp; migrations. Read on to find out how.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Last week we released an early version of an API that we&amp;rsquo;re hosting with Heroku. We&amp;rsquo;re an early-stage startup and this is a component of our first product. At this point in our startup life, Heroku is a great fit as we need to focus on features, not infrastructure. We are targeting corporate customers with a pretty niche product, so we aren&amp;rsquo;t likely to suffer from massive overnight scaling issues.&lt;/p&gt;
&lt;h2 id=&#34;automating-heroku&#34;&gt;Automating Heroku&lt;/h2&gt;
&lt;p&gt;I love Heroku, but I always find the command line deployment stuff a bit fiddly. How do I turn on maintenance mode again? How do I backup the database before I run the migrations? And given that I&amp;rsquo;m fanatical about automation - especially when it comes to deployment - it made sense to tackle our process from day one. &lt;em&gt;If you don&amp;rsquo;t believe in automating deployment you might get some amusement reading &lt;a href=&#34;http://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/&#34; target=&#34;_blank&#34;&gt;Knightmare: a devops cautionary tale&lt;/a&gt;&amp;hellip;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;My wishlist of requirements went like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I want a point-and-click deployment to Staging or Production - this must encapsulate all knowledge about how the deploy works.&lt;/li&gt;
&lt;li&gt;I want to automatically run database migrations.&lt;/li&gt;
&lt;li&gt;For staging deployments, I want to run the migrations against an exact copy of the production database to check we&amp;rsquo;re in sync.&lt;/li&gt;
&lt;li&gt;For production deployments, I want to backup the database before I run migrations, in case they bork it up.&lt;/li&gt;
&lt;li&gt;I want to put the app in and out of maintenance mode automatically.&lt;/li&gt;
&lt;li&gt;I want to make sure I&amp;rsquo;ve got at least one web worker running.&lt;/li&gt;
&lt;li&gt;I want this done from a Jenkins box with its own credentials.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;one-simple-shell-script&#34;&gt;One simple shell script&lt;/h2&gt;
&lt;p&gt;It turns out this is reasonably straightforward using Heroku&amp;rsquo;s command line client. In an afternoon I wrote up the following shell script which fulfills most of the above:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/sealevelresearch/sea-level-api/blob/master/scripts/jenkins_deploy_to_heroku.sh&#34; target=&#34;_blank&#34;&gt;&lt;a href=&#34;https://github.com/sealevelresearch/sea-level-api/blob/master/scripts/jenkins_deploy_to_heroku.sh&#34;&gt;https://github.com/sealevelresearch/sea-level-api/blob/master/scripts/jenkins_deploy_to_heroku.sh&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The most interesting bit is probably the use of the **pgbackups **Heroku add-on. During a staging deployment, the script instructs the backups module to backup production, then get a URL to its backup. It &lt;strong&gt;resets&lt;/strong&gt; the staging database - rather than just overwriting rows - to ensure the schemas exactly match, then restores the production backup into staging. This means we have confidence that the subsequent database migrations are running against the actual database.&lt;/p&gt;
&lt;h2 id=&#34;configuring-jenkins&#34;&gt;Configuring Jenkins&lt;/h2&gt;
&lt;p&gt;It turns out quite a large chunk of the work came about from configuring our Jenkins box to have the necessary tools, like the heroku command line client. For this we use the excellent &lt;a href=&#34;http://www.ansible.com/home&#34; target=&#34;_blank&#34;&gt;Ansible&lt;/a&gt;, and we&amp;rsquo;ve had to make a fair few lightweight modules now such as&lt;a href=&#34;https://github.com/sealevelresearch/ansible-heroku-toolbelt&#34; target=&#34;_blank&#34;&gt; ansible-heroku-toolbelt&lt;/a&gt; as &lt;a href=&#34;https://github.com/sealevelresearch/ansible-jenkins&#34; target=&#34;_blank&#34;&gt;ansible-jenkins&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;None of this is rocket science, but I do believe that taking the time to implement this clean, conservative &amp;amp; repeatable processes will be worth every penny six months down the line when I&amp;rsquo;m trying to push out a 2am bugfix for a major client&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&#34;https://twitter.com/fawkesley&#34; target=&#34;_blank&#34;&gt;Paul&lt;/a&gt; is CTO of &lt;a href=&#34;http://sealevelresearch.com&#34; target=&#34;_blank&#34;&gt;Sea Level Research&lt;/a&gt;, a startup helping shipping ports to optimize their logistics.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Your Private Medical Record May Be At Risk From March 2014</title>
      <link>https://paul.fawkesley.com/your-private-medical-record-may-be-at-risk/</link>
      <pubDate>Mon, 13 Jan 2014 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/your-private-medical-record-may-be-at-risk/</guid>
      <description>&lt;h2 id=&#34;nhs-care-data&#34;&gt;NHS Care Data&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Update [19th Feb 2014]: NHS Care Data has been postponed for at least 6 months - huzzah! I will keep an ear to the ground and update as further information is released.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In March the NHS is implementing their &lt;a title=&#34;care data&#34; href=&#34;http://www.nhs.uk/NHSEngland/thenhs/records/healthrecords/Pages/care-data.aspx&#34; target=&#34;_blank&#34;&gt;care data&lt;/a&gt; project, whereby everyone in the UK&amp;rsquo;s medical records will be uploaded from their GP&amp;rsquo;s computer system to a central system. This will be the &lt;strong&gt;first time everyone&amp;rsquo;s medical records have been collected in one place&lt;/strong&gt; - currently they are held only in your GP surgery and your named GP is personally responsible for the security of your data.&lt;/p&gt;
&lt;div&gt;
  The potential benefits are massive for public health if it can give legitimate researchers easier access to lots of medical records. If it goes to plan, this should accelerate the process of medical research.
&lt;/div&gt;
&lt;p&gt;Personally I agree with the goals of care data. However, I believe the communication to the public has been abysmal and I don&amp;rsquo;t have confidence in the security of the implementation of the project.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much have you heard about care data? Have you have received the leaflet &lt;a title=&#34;Better Information Means Better Care&#34; href=&#34;http://www.nhs.uk/NHSEngland/thenhs/records/healthrecords/Documents/NHS_Door_drop_26-11-13.pdf&#34; target=&#34;_blank&#34;&gt;&amp;ldquo;Better information means better care&lt;/a&gt;&amp;rdquo; via bulk mail (not personally addressed)?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update: It&amp;rsquo;s February 19th - 9 days before March - and we still haven&amp;rsquo;t received this leaflet. It&amp;rsquo;s fortunate that I&amp;rsquo;ve even heard about NHS care data &lt;img src=&#34;https://paulfurley.com/wp-includes/images/smilies/icon_sad.gif&#34; alt=&#34;:(&#34; class=&#34;wp-smiley&#34; /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;the-risks&#34;&gt;The Risks&lt;/h2&gt;
&lt;div&gt;
  My personal reservations, in summary, are as follows:
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;I do not believe the &amp;ldquo;anonymisation&amp;rdquo; employed will be effective. There are numerous examples of anonymised data being de-anonymised by correlation against other data sources.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s not clear precisely which researchers will have access to the data. I want to know whether pharmaceutical and insurance companies could have access, for example.&lt;/li&gt;
&lt;li&gt;I believe a central database of all UK citizens&#39; medical records will be an extremely high-value target for hackers.&lt;/li&gt;
&lt;li&gt;I don&amp;rsquo;t believe any organisation currently has the capability to keep this data secure from a well funded hacking team (&lt;a href=&#34;http://www.washingtonpost.com/blogs/worldviews/wp/2013/05/28/the-u-s-weapons-systems-that-experts-say-were-hacked-by-the-chinese/&#34; target=&#34;_blank&#34;&gt;Not convinced? Read this&amp;hellip;)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;poor-information&#34;&gt;Poor Information&lt;/h2&gt;
&lt;div&gt;
  There are reassurances that our data will be &#34;anonymised&#34; and held &#34;securely&#34; but the detail is lacking or confusing. Take the following passage, for example:
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Your date of birth, full postcode, NHS Number and gender rather than your name will be used to link your records in a secure system, managed by the HSCIC [Health and Social Care Information Centre].&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have no idea why this is written - if anything, my date of birth, gender and address are **more **identifiable than my name. I estimate there are tens of companies which know my date of birth and address and could derive my identity. I&amp;rsquo;m completely baffled.&lt;/p&gt;
&lt;h2 id=&#34;decide-now&#34;&gt;Decide Now&lt;/h2&gt;
&lt;p&gt;If you are happy for your records to be exported in March, you can just do nothing and it will happen automatically.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t want this to happen, you can &lt;a title=&#34;How to opt out of NHS care data&#34; href=&#34;http://medconfidential.org/how-to-opt-out/&#34; target=&#34;_blank&#34;&gt;download a template letter from medConfidential&lt;/a&gt; and send it to your GP. You might also want to tell your friends and family to make an informed decision too.&lt;/p&gt;
&lt;h2 id=&#34;further-reading&#34;&gt;Further Reading&lt;/h2&gt;
&lt;p&gt;The central point of information is called: &lt;a title=&#34;Sharing your data with the NHS&#34; href=&#34;http://www.nhs.uk/NHSEngland/thenhs/records/healthrecords/Pages/care-data.aspx&#34; target=&#34;_blank&#34;&gt;&amp;ldquo;Sharing your data with the NHS&amp;rdquo;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The information leaflet information GPs about care data: &lt;a href=&#34;http://www.england.nhs.uk/wp-content/uploads/2013/08/cd-guide.pdf&#34; target=&#34;_blank&#34;&gt;&lt;a href=&#34;http://www.england.nhs.uk/wp-&#34;&gt;http://www.england.nhs.uk/wp-&lt;/a&gt;&lt;wbr /&gt;content/uploads/2013/08/cd-&lt;wbr /&gt;guide.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&#34;medConfidential&#34; href=&#34;http://medconfidential.org&#34; target=&#34;_blank&#34;&gt;medConfidential&lt;/a&gt;&lt;/p&gt;
&lt;p itemprop=&#34;name headline  &#34;&gt;
  &lt;a href=&#34;http://www.theguardian.com/society/2014/jan/19/nhs-patient-data-available-companies-buy&#34; target=&#34;_blank&#34;&gt;NHS patient data to be made available for sale to drug and insurance firms&lt;/a&gt; - Guardian
&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Screen Scrape Your Utility Bills</title>
      <link>https://paul.fawkesley.com/screen-scraping-utility-bills/</link>
      <pubDate>Fri, 29 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/screen-scraping-utility-bills/</guid>
      <description>&lt;p&gt;At the heart of my last project MinuteMate was the ability to programatically retrieve billing information from my Vodafone online account.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/vodafone-online-login-screen.png&#34; alt=&#34;Vodafone online login screen&#34;&gt;&lt;/p&gt;
&lt;p&gt;The motivation for doing this was an unexpected £90 bill I received from Vodafone and the discovery that the company had no mechanism to prevent or warn about such an occurrence.&lt;/p&gt;
&lt;p&gt;The system allowed me - and I hoped others - to receive alerts when my usage surpassed my monthly &amp;ldquo;free&amp;rdquo; allowance.&lt;/p&gt;
&lt;p&gt;In my ideal world Vodafone - in fact all utility companies - would provide APIs to programmatically query your usage. Instead, largely we have to rely on the (awful) web interface and (not bad) mobile apps to check usage.&lt;/p&gt;
&lt;p&gt;I decided to open source the web scraping component of the system so anyone can use and expand upon it. Please feel free to wrap it in an API! I&amp;rsquo;ve released it as a command-line tool called *vodafone-scraper* which includes basic alert functionality with thresholds.&lt;/p&gt;
&lt;p&gt;You can see the code and examples at &lt;a title=&#34;Vodafone Scraper&#34; href=&#34;https://github.com/fawkesley/vodafone-scraper&#34; target=&#34;_blank&#34;&gt;&lt;a href=&#34;https://github.com/fawkesley/vodafone-scraper&#34;&gt;https://github.com/fawkesley/vodafone-scraper&lt;/a&gt;&lt;/a&gt; or just install and run: $ pip install vodafone-scraper&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Not a coder? Interested in scraping a utility website? Tell me about it!&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;horrors-of-vodafone-online&#34;&gt;Horrors of Vodafone Online&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m no stranger to web scraping as I work in the Data Services team at &lt;a title=&#34;ScraperWiki&#34; href=&#34;https://scraperwiki.com&#34; target=&#34;_blank&#34;&gt;ScraperWiki&lt;/a&gt; - we see a lot of weird and wonderful sites.&lt;/p&gt;
&lt;p&gt;Vodafone online, however, deserves an award for nastiness. Their site - written in ASP.NET - authentication mechanism involves a whole load of Javascript wrangling with numerous separate HTTP requests &amp;amp; lots of cookies. Just look - if you are - at the network activity generated *just to log in*!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/vodafone-online-network-tab-screenshot.png&#34; alt=&#34;Vodafone online network tab screenshot&#34;&gt;&lt;/p&gt;
&lt;p&gt;Furthermore each page of the site takes between 5 - 100 seconds to load (yes, I&amp;rsquo;ve actually had to allow a *two minute* timeout to get it working).&lt;/p&gt;
&lt;p&gt;When I&amp;rsquo;m trying to liberate a Javascript-heavy site like this, there&amp;rsquo;s a tradeoff between two different approaches:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Spend a lot of upfront time reverse engineering the site in order to understand exactly the sequence of Javascript requests &amp;amp; cookie setting/getting, then use a low level library like python-requests to emulate them in a different language (ie Python).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use Selenium to perform full browser automation and *actually* access the site the Firefox as if I were a real user.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In this case, the upfront time and effort required to reverse engineer and emulate the site&amp;rsquo;s Javascript just wasn&amp;rsquo;t worth the extra system overheads required with Selenium.&lt;/p&gt;
&lt;p&gt;If I were doing these requests on behalf of thousands of users simultaneously, however, the tradeoff would be different - the overhead of running many full browsers could lead to significant computing costs. An obvious downside, however is that a subtle change to the website could send the scraper back to square 1.&lt;/p&gt;
&lt;h2 id=&#34;future-of-javascript-scraping&#34;&gt;Future of Javascript Scraping&lt;/h2&gt;
&lt;p&gt;Clearly we should expect to see more Javascript-heavy sites in the future. It feels sad to me that this means it&amp;rsquo;s getting harder to access sites at a low level - it&amp;rsquo;s disappointing that we must implement an entire programming language to retrieve the content of a web-page.&lt;/p&gt;
&lt;p&gt;The solution, I suspect, lies in minimal headless browser technology such as PhantomJS. As I understand it, PhantomJS implements just enough browser functionality so as to run the Javascript, without the overhead of full DOM rendering, CSS, layout and so on.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/phantom-js-home-page.png&#34; alt=&#34;PhantomJS home page&#34;&gt;&lt;/p&gt;
&lt;p&gt;The last time I tried to use PhantomJS, it unfortunately didn&amp;rsquo;t &amp;ldquo;just work&amp;rdquo; and I didn&amp;rsquo;t have the time try harder. However, I plan to have another go as I see this as an important future scraping and web-automation tool.&lt;/p&gt;
&lt;p&gt;Are you interested in scraping utility sites or other Javascript sites?
&lt;a href=&#34;http://paulfurley.com/contact/&#34; title=&#34;Contact&#34;&gt;Get in touch.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I offer web scraping as a professional service. &lt;a href=&#34;https://paul.fawkesley.com/reliable-accurate-web-scraping-uk-based/&#34; title=&#34;Reliable and Accurate Web Scraping (UK Based)&#34;&gt;Find out more.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Resisting the Urge to Build (My New Startup Checklist)</title>
      <link>https://paul.fawkesley.com/resisting-the-urge-to-build/</link>
      <pubDate>Fri, 18 Oct 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/resisting-the-urge-to-build/</guid>
      <description>&lt;p&gt;You may remember a few months back I launched a new site - &lt;em&gt;minutemate.co.uk&lt;/em&gt; - which helps you to monitor your mobile phone usage and alert you if you&amp;rsquo;ve overspent your monthly minutes, texts and so on.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/minute-mate-home-page.png&#34; alt=&#34;minutemate.co.uk&#34;&gt;&lt;/p&gt;
&lt;p&gt;Being totally honest, MinuteMate seemed to follow a pattern familiar to many techies launching things which goes something like this: &amp;ldquo;build product, launch, wonder who customer might be, avoid actually speaking to customers at all costs&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Once launched, I took the idea to &lt;a href=&#34;http://www.meetup.com/Liverpool-Startup-Club&#34; target=&#34;_blank&#34;&gt;Liverpool Startup Club&lt;/a&gt; and we all concluded that the next steps were to go and actually talk to people - specifically to parents of teenagers. This was the point that I failed - I&amp;rsquo;m not sure whether I felt too shy to talk to strangers (I don&amp;rsquo;t know any parents), or that I wasn&amp;rsquo;t passionate or confident enough about the idea to &amp;ldquo;sell&amp;rdquo; it to them. But I spoke to exactly no potential customers, and so MinuteMate became history.&lt;/p&gt;
&lt;p&gt;There are a few problems here that I need to tackle. As someone who loves to &lt;strong&gt;build things&lt;/strong&gt; I personally really struggle to approach businesses from the right direction, namely &amp;ldquo;identify problem, find numerous potential customers, build (quickly)&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s interesting but I think that for me, being technical is actually a hindrance to my ability to succeed as an entrepreneur - I get too distracted by the detail of potential &lt;strong&gt;solutions&lt;/strong&gt;, rather than properly exploring the actual &lt;strong&gt;problems&lt;/strong&gt;. I remember reading (somewhat indignantly) in Alan Sugar&amp;rsquo;s book that Engineers don&amp;rsquo;t often make good Entrepreneurs - I&amp;rsquo;m taking this as a warning!&lt;/p&gt;
&lt;p&gt;Furthermore, I&amp;rsquo;ve discovered that I have a tendency to lose interest in projects once they are built, as was the case with both Custom Cocoa and MinuteMate. The problems those sites were addressing were not sufficiently important to me that I had enough interest in seeing them through. Currently I write down a lot of business ideas that would probably suffer the same fate -  I need a better way of filtering them down so I can actually see them through.&lt;/p&gt;
&lt;p&gt;This idea really crystallised when I read Nathan Kontny&amp;rsquo;s blog post&lt;a href=&#34;http://ninjasandrobots.com/litmus-test/&#34; target=&#34;_blank&#34;&gt; &amp;ldquo;A litmus test for your idea.&amp;quot;&lt;/a&gt; In it, he essentially argues that  if you can&amp;rsquo;t write a blog about something every couple of days for a few weeks, you aren&amp;rsquo;t committed enough to the subject to start a business. This is absolutely the litmus test I have been looking for and it&amp;rsquo;s proving really helpful for me to filter out ideas I don&amp;rsquo;t think I should pursue.&lt;/p&gt;
&lt;p&gt;So to address the &lt;strong&gt;problem-first-not-solution&lt;/strong&gt; issue, my &lt;strong&gt;tendency to build&lt;/strong&gt; and my &lt;strong&gt;attention span deficiency&lt;/strong&gt;, I&amp;rsquo;ve put together a short list of criteria which any business idea is herein subject to. I hope this will evolve as I learn, and I&amp;rsquo;d be really interested to know what&amp;rsquo;s on your checklist too.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What problem is this actually solving, and for who?&lt;/li&gt;
&lt;li&gt;How will I find and **talk **(face to face or on the phone) to at least 20 people whose problem this solves?&lt;/li&gt;
&lt;li&gt;Does this idea have the potential to make £1,000 profit per month within 3 months?  (I&amp;rsquo;m not particularly after huge scale, as I&amp;rsquo;ll probably write about another time)&lt;/li&gt;
&lt;li&gt;Would the business require me to be available 24/7 for support or be pinned to one location? (I found this a big turn-off with the chocolate business).&lt;/li&gt;
&lt;li&gt;Can I write 3-5 blog posts this week about solving the problem, and imagine dong so for the next 6 months?&lt;/li&gt;
&lt;li&gt;Do I &lt;strong&gt;really&lt;/strong&gt; care about the outcomes of this business - will that passion be sufficient to get me through the hardest times?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;**Do you suffer from the *Build-First *mentality too? How have you overcome it?
**&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get in touch&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>Chilli Cam: Stop Motion Video using old Netbook</title>
      <link>https://paul.fawkesley.com/chilli-plant-stop-motion-video-linux/</link>
      <pubDate>Sun, 18 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/chilli-plant-stop-motion-video-linux/</guid>
      <description>&lt;p&gt;I love hot food so a &lt;a href=&#34;http://shop.kew.org/kew-chilli-garden.html#&#34; title=&#34;Kew Chilli Garden&#34;&gt;grow-your-own chilli plant&lt;/a&gt; kit was a great present to receive last Christmas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/chilli-plant-kit.jpg&#34; alt=&#34;chilli plant kit I used to make a stop-motion video&#34;&gt;
&lt;em&gt;Chilli plant kit, courtesy of Kew Gardens.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I soon realised, however, that growing plants is far too slow to capture my attention - what I needed was a tech project!&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d been toying with the idea of making stop-motion videos for a while but had never found a suitable subject. My new chilli plants-to-be felt to be the perfect A-listers for my aspiring blockbuster creation.&lt;/p&gt;
&lt;p&gt;What I needed next was a camera and a Linux machine to automate taking the pictures. This seemed like the perfect application for my now obsolete Netbook - the once much-loved Samsung N110.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/samsung-n110-netbook.jpg&#34; alt=&#34;samsung 110 netbook&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Image courtesy of laptopmag.com&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The netbook is equipped with a basic 1.3MP webcam - I won&amp;rsquo;t be expecting any super quality shots - but a great start. I installed the lightweight &lt;a title=&#34;Lubuntu operating system&#34; href=&#34;http://www.lubuntu.net/&#34; target=&#34;_blank&#34;&gt;Lubuntu&lt;/a&gt; operating system and put together a couple of scripts.&lt;/p&gt;
&lt;p&gt;The first script fires off the wonderfully simple &lt;a title=&#34;fswebcam&#34; href=&#34;http://www.firestorm.cx/fswebcam/&#34; target=&#34;_blank&#34;&gt;fswebcam&lt;/a&gt; every minute. That tool has some great features, such as the ability to take several shots over a period and average them into one. I noticed a significant quality increase from taking 10 shots rather than one. I expect one could also use this feature to reduce the impact of sudden changes in light (due to clouds moving across the sun and so on). The other great feature is the ability to crop the image at a certain region. The positioning of the camera was such that it could see quite a lot of our office on the right of the plants - it was easy to crop these out of the picture.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/chilli-cam-fswebcam.jpg&#34; alt=&#34;fswebcam snapshot of chillicam&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Snapshot taken using fswebcam&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The second script runs at midnight every day and uses &lt;a href=&#34;https://en.wikipedia.org/wiki/MEncoder&#34;&gt;mencoder&lt;/a&gt; to create a motion jpeg video from the captured frames. I had to tweak the parameters to get a good balance of size and quality but the end result looks good.&lt;/p&gt;
&lt;p&gt;Finally, for convenience, I copy the video over to my Dropbox directory so that it automatically synchronises to my main machines. This isn&amp;rsquo;t particularly bandwidth-efficient but it&amp;rsquo;s preferable to having to SSH into the netbook and copy the video across. This allowed me to see just how much growth had occurred over the previous day (more than I expected) which was frankly a lot more exciting than watching the plants in realtime.&lt;/p&gt;
&lt;p&gt;Finally I manually cut out boring night-time frames and posted on Vimeo. Admittedly it&amp;rsquo;s not the most thrilling spectacle - I think a bit of speed up and some trusty Philip Glass might do the trick, though&amp;hellip;&lt;/p&gt;
&lt;p&gt;All the code is available at &lt;a href=&#34;http://github.com/fawkesley/chillicam&#34;&gt;github.com/fawkesley/chillicam&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Painless merge conflicts in Git</title>
      <link>https://paul.fawkesley.com/painless-merge-conflicts-in-git/</link>
      <pubDate>Tue, 16 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/painless-merge-conflicts-in-git/</guid>
      <description>&lt;p&gt;Resolving merge conflicts in Git can be a pain - I always find I need to see the &lt;strong&gt;common ancestor&lt;/strong&gt; to understand what&amp;rsquo;s going on with the two conflicting versions.&lt;/p&gt;
&lt;p&gt;&lt;a title=&#34;Painless merge conflict resolution in git&#34; href=&#34;http://blog.wuwon.id.au/2010/09/painless-merge-conflict-resolution-in.html&#34; target=&#34;_blank&#34;&gt;This excellent blog post&lt;/a&gt; explains how to enable 3-way diff and why it matters. The short version:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ git config --global merge.conflictstyle diff3&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Do you have any helpful git tips? &lt;strong&gt;Leave a comment below.&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Arduino Isn&#39;t Just For Hackers</title>
      <link>https://paul.fawkesley.com/arduino-isnt-just-for-hackers/</link>
      <pubDate>Tue, 02 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/arduino-isnt-just-for-hackers/</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;a href=&#34;http://www.arduino.cc&#34;&gt;Arduino&lt;/a&gt; turned out to be the perfect match for &lt;a title=&#34;JF Machines Ltd, digital inkjet printing machine manufacturers&#34; href=&#34;http://www.jfmachines.co.uk&#34; target=&#34;_blank&#34;&gt;JF Machines Ltd&lt;/a&gt;, a manufacturer of industrial digital printing machines. The open source platform offered them supply security, enormous flexibility and simple PC interfacing, all at an incredible price.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Back in 2009 I worked in JF Machines Ltd - the family firm - producing the user operator software for their new digital printing machine, the PicoColour (if you&amp;rsquo;re imaging a desktop printer, try 1.5 tonnes of precision-engineered printing press&amp;hellip;)&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/picocolour-printing-machine.jpg&#34; alt=&#34;PicoColour digital inkjet printing machine&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Picocolour digital inkjet printing machine&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Like many high-tech manufacturers, JF Machines has historically used both in-house electronics and programmable logic controllers (PLCs). As a quick primer, PLCs are proprietary devices which typically employ a high level language - or even graphical user interface - to describe complex system behaviour. For example, one might use BASIC to set up timers and state machines, then define how the system output responds to input signals.&lt;/p&gt;
&lt;p&gt;The PLC is a great sell: simple machine control, little hardware design required and so on, but the flaws soon become apparent.&lt;/p&gt;
&lt;p&gt;Firstly they bring about the familiar situation of vendor lock in. Once you&amp;rsquo;ve committed to a PLC, you go off and design a whole load of other electronics around it. A couple of years down the line, the vendor discontinues the PLC, or worse, goes bust, and you&amp;rsquo;re in trouble. If you&amp;rsquo;re lucky they&amp;rsquo;ve produced an updated &amp;ldquo;equivalent&amp;rdquo; but it&amp;rsquo;s a miracle if it&amp;rsquo;s a real &amp;ldquo;drop-in&amp;rdquo; replacement.&lt;/p&gt;
&lt;p&gt;Furthermore, your software - often just block diagrams inside a proprietary software package - has become as useful as the obsolete PLC it&amp;rsquo;s written for. Simple servicing operations turn into a major hardware and software development exercise,leaving machines in the field vulnerable to failure. Add to this the fact that PLCs can cost thousands of pounds in the first place, and you can see why companies often develop a love-hate relationship with them.&lt;/p&gt;
&lt;p&gt;Enter &lt;a title=&#34;Arduino&#34; href=&#34;http://geni.us/2s6n&#34; target=&#34;_new&#34;&gt;Arduino&lt;/a&gt;. I&amp;rsquo;d been hacking around with Arduino since my &lt;a title=&#34;Cooperative Mobile Robots, MEng project&#34; href=&#34;http://paulfurley.com/cooperative-mobile-robots-meng-project/&#34; target=&#34;_blank&#34;&gt;masters project&lt;/a&gt; and it came along at a perfect time for JF Machines. They had just developed their new ink circulation system: a serious affair with 5 separate ink bottles rising and falling to alter  pressure along with precise temperature control. They needed a way to drive the bottle lifting motors, read in alarm signals and switch inputs as well as output various flashing sequences for the benefit of the operator. Although a PLC would have been suitable, Arduino seemed like a great option.&lt;/p&gt;
&lt;p&gt;The image below shows the PCB which was developed to accommodate five unmodified Arduino boards.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/four-arduinos-in-a-pcb.jpg&#34; alt=&#34;Four arduinos connected to a PCB&#34;&gt;&lt;/p&gt;
&lt;p&gt;As time has gone on, it has become more and more convincing that this approach was a solid one. Here I outline a few of the major benefits of using Arduino in this industrial setting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Supply security&lt;/strong&gt; - even if Arduino stopped supplying boards tomorrow, other manufacturers are making clones, and the hardware design lives on. If Arduino changed their physical design, it wouldn&amp;rsquo;t be much trouble to make a converter to adapt the new and old sockets - in fact, someone would probably release it was an off-the-shelf project as soon as the announcement was made! In the worst case scenario, JF Machines could manufacture the whole Arduino board from the designs for as long as the a compatible microcontroller remained available.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt; - since developing the ink system, JF Machines has found a number of new applications for the Arduino. For example, by giving Arduino the ability to override the input to the machine&amp;rsquo;s main stepper motor, they were able to make the machine reverse after stopping, reducing waste of several metres of expensive inkjet paper. Particularly for short-run jobs, this waste-saving feature is a hugely attractive selling point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PC connection interface&lt;/strong&gt; -inevitably it became desirable for the Arduino to communicate with the outside world. Fortunately, the fantastically straightforward and standardised COM port driver allowed us to interface over USB with about three day of development effort. Having previously developed an SPI comms interface in the past, I can happily say that Arduino&amp;rsquo;s higher level approach was more appealling as a developer. Once we had effective two-way communications between the printing machine and the PC, we were able to implement new features like batch counting and stopping automatically at the end of a job - another fantastic waste-saving feature.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In-field modifications&lt;/strong&gt; - suppose a customer needed slightly different behaviour in their ink system, or a logic defect was discovered that needed correcting. With a PLC, that could have meant an expensive visit from a support engineer armed with a laptop and the PLC application software. But surely Arduino suffers the same problem? Not quite, because the Arduinos can be unplugged from the machine, it&amp;rsquo;s now preferable to just post a new set of boards to the customer and allow them to do the upgrade themselves. In other words, deliver software updates via the postal system! The old Arduinos can be posted back or, better still, be inherited by a keen young mind, and feed the next generation!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Low cost&lt;/strong&gt; - I often hear the opposite argument when discussing Arduino with the hobby and hacker scene. I agree that for integrating into a consumer product, the Arduino&amp;rsquo;s off-the-shelf price is fairly expensive (although good luck designing and making a small batch yourself for cheaper&amp;hellip;). However when integrated in a five-figure industrial printing machine, the cost comes close to zero, especially when considering the PLC alternative and the support benefits. If JF Machines were ever to mass-produce their machines, reducing the price of the Arduino would be fairly low on the list of priorities!&lt;/p&gt;
&lt;p&gt;Of course, these benefits weren&amp;rsquo;t completely without pain. Although I developed all the code for the first version, it has since become necessary (and desirable) for JF Machines to learn to do it themselves for when I&amp;rsquo;m not available. Fortunately it&amp;rsquo;s been a pleasant experience as the fantastic little IDE takes away much of the pain of C and C++ development.&lt;/p&gt;
&lt;p&gt;Furthermore, source code control is likely to become an issue, and this is not an area that JF Machines has any experience in. It&amp;rsquo;s tempting to &amp;ldquo;over-fork&amp;rdquo; software to allow customer-specific mods, but - as with hardware - managing those separate code branches quickly becomes challenging. However, this isn&amp;rsquo;t a new issue - it was just as relevant when developing PLC &amp;ldquo;programs&amp;rdquo;. These are often in a proprietary, possibly binary format. The benefit of  using C in Arduino is that at least the language is standardised, non-proprietary, and well suited for source control.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/five-arduinos-inside-the-ink-cabinet.jpg&#34; alt=&#34;Five arduinos inside the ink cabinet&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;5 Arduinos inside the ink cabinet&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Verdict&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For JF Machines, Arduino was a great fit. Although it has required them to gain new software development and organisation skills, it has brought enormous benefits. In their application - high tech, low volume - the Arduino is a fantastically cheap and flexible solution. It has enabled them to create tangible new features as well as reducing their support cost and effort.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arduino, 1 nil!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d like to hear your thoughts - why not give me a shout on &lt;a title=&#34;Paul Fawkesley on Twitter&#34; href=&#34;https://twitter.com/fawkesley&#34; target=&#34;_blank&#34;&gt;Twitter&lt;/a&gt; or &lt;a title=&#34;Contact&#34; href=&#34;http://paulfurley.com/contact/&#34; target=&#34;_blank&#34;&gt;drop me an email&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; Join the (extensive) discussion at &lt;a href=&#34;http://redd.it/1hhk3f&#34;&gt;Reddit&lt;/a&gt; and &lt;a href=&#34;http://hackaday.com/2013/07/08/this-is-run-by-an-arduino/&#34;&gt;Hack A Day&lt;/a&gt; - many thanks for all the interest!&lt;/p&gt;</description>
    </item>
      
    
      
    <item>
      <title>MongoDB helps you be Lean - Brilliant for Startups</title>
      <link>https://paul.fawkesley.com/mongodb-helps-you-be-lean-brilliant-for-startups/</link>
      <pubDate>Sat, 08 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/mongodb-helps-you-be-lean-brilliant-for-startups/</guid>
      <description>&lt;p&gt;Context: I&amp;rsquo;ve just spent every spare hour of my life for two weeks working on a product, and &lt;a href=&#34;http://secure.minutemate.co.uk/minutes-and-data-usage-alerts/&#34; target=&#34;_blank&#34;&gt;yesterday evening I launched it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This time around I opted for a NoSQL approach - I took a gamble that the amount of upfront time required to learn a new technology would be less than designing a SQL schema then migrating it for each and every tweak.&lt;/p&gt;
&lt;p&gt;This gamble paid off I think - it was a joy to work with Mongo, especially as I used a hosted solution from MongoHQ. Whenever I needed a new feature I just hacked the (currently tiny) database to the new &amp;ldquo;schema&amp;rdquo; - lightning fast.&lt;/p&gt;
&lt;p&gt;The next test will be to see it running at large scale - if I ever get there. But that&amp;rsquo;s just the point isn&amp;rsquo;t it? If I do ever get to scale, I would have a great reason to invest in some SQL design time, and a far better understanding of the requirements.&lt;/p&gt;
&lt;p&gt;Until now I haven&amp;rsquo;t really understood this NoSQL craze, but for me it makes an awful lot of sense if you&amp;rsquo;re at all interested in lean startups.&lt;/p&gt;
&lt;p&gt;Got any Mongo horror stories? Leave a comment below.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Python PEP8 Style Guide Checker for Vim</title>
      <link>https://paul.fawkesley.com/python-pep8-style-guide-checker-vim/</link>
      <pubDate>Wed, 01 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/python-pep8-style-guide-checker-vim/</guid>
      <description>&lt;h2 id=&#34;using-pathogen-syntastic-and-flake8&#34;&gt;Using Pathogen, Syntastic and flake8&lt;/h2&gt;
&lt;p&gt;The &lt;a title=&#34;PEP8 python style guide&#34; href=&#34;http://www.python.org/dev/peps/pep-0008/&#34; target=&#34;_blank&#34;&gt;PEP8&lt;/a&gt; style guide for Python is great - if you aren&amp;rsquo;t already using it, I strongly recommend it, especially if you&amp;rsquo;re working with others.&lt;/p&gt;
&lt;p&gt;This post is a super quick guide to integrating a PEP8 checker with Vim on Ubuntu 12.04LTS. Every time you save, PEP8 recommendations will be shown in the leftmost column of Vim. We&amp;rsquo;ll be using &lt;a title=&#34;Pathogen vim package manager&#34; href=&#34;https://github.com/tpope/vim-pathogen&#34; target=&#34;_blank&#34;&gt;Pathogen&lt;/a&gt;, &lt;a title=&#34;Syntastic vim syntax checker&#34; href=&#34;https://github.com/scrooloose/syntastic&#34; target=&#34;_blank&#34;&gt;Syntastic&lt;/a&gt; and &lt;a title=&#34;Flake8&#34; href=&#34;https://pypi.python.org/pypi/flake8&#34; target=&#34;_blank&#34;&gt;Flake8&lt;/a&gt; (which itself wraps &lt;a title=&#34;pep8 checker&#34; href=&#34;https://pypi.python.org/pypi/pep8&#34; target=&#34;_blank&#34;&gt;pep8&lt;/a&gt;, &lt;a title=&#34;pyflakes&#34; href=&#34;https://pypi.python.org/pypi/pyflakes&#34; target=&#34;_blank&#34;&gt;pyflakes&lt;/a&gt; and &lt;a title=&#34;mccabe script&#34; href=&#34;https://pypi.python.org/pypi/mccabe&#34; target=&#34;_blank&#34;&gt;mccabe&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;If you aren&amp;rsquo;t already using it, install Pathogen, a Vim package manager:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;br /&amp;gt; $ mkdir -p ~/.vim/autoload ~/.vim/bundle&amp;lt;br /&amp;gt; $ curl &#39;https://raw.githubusercontent.com/tpope/vim-pathogen/master/autoload/pathogen.vim&#39; &amp;gt; ~/.vim/autoload/pathogen.vim&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Make pathogen run when starting up vim.
&lt;code&gt;&amp;lt;br /&amp;gt; $ echo &#39;call pathogen#infect()&#39; &amp;gt;&amp;gt; ~/.vimrc&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t already have the following lines in your ~/.vimrc file, you&amp;rsquo;ll need to add these too:
&lt;code&gt;&amp;lt;br /&amp;gt; syntax on&amp;lt;br /&amp;gt; filetype plugin indent on&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Test that pathogen is installed (inside vim). If you get an error it&amp;rsquo;s probably because you&amp;rsquo;ve omitted &lt;code&gt;&#39;call pathogen#infect()&#39;&lt;/code&gt;
&lt;code&gt;&amp;lt;br /&amp;gt; :Helptags&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Install latest Syntastic syntax checker.
&lt;code&gt;&amp;lt;br /&amp;gt; $ cd ~/.vim/bundle&amp;lt;br /&amp;gt; $ git clone https://github.com/scrooloose/syntastic.git&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Test syntastic (inside vim)
&lt;code&gt;&amp;lt;br /&amp;gt; :h syntastic&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Install flake8 (pep8, Pyflakes and Ned Batchelder&amp;rsquo;s McCabe script)
&lt;code&gt;&amp;lt;br /&amp;gt; $ sudo pip install flake8     # install globally&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; $ pip install --user flake8  # install locally&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it! When you next save a Python file, you&amp;rsquo;ll be delighted by what you see&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Any thoughts? Can you recommend an automatic PEP8-ifier?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Leave a comment below.&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Arduino Due, Cortex-M3 and robots with radios</title>
      <link>https://paul.fawkesley.com/arduino-due-coretex-m3-robots-with-radios/</link>
      <pubDate>Fri, 08 Feb 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/arduino-due-coretex-m3-robots-with-radios/</guid>
      <description>&lt;p&gt;I recently learned that the new &lt;a title=&#34;Arduino Due&#34; href=&#34;http://arduino.cc/en/Main/ArduinoBoardDue&#34; target=&#34;_blank&#34;&gt;Arduino Due&lt;/a&gt; shares a processor architecture with the board I used for my Masters robotics project back in 2009. The &lt;a title=&#34;ARM Coretex-M3&#34; href=&#34;http://www.arm.com/products/processors/cortex-m/cortex-m3.php&#34; target=&#34;_blank&#34;&gt;ARM Coretex-M3&lt;/a&gt; was a powerful beast - running it at a mere 8MHz was easily sufficient for my needs!&lt;/p&gt;
&lt;p&gt;It was a great project in which I got to design and build some robots, design a PCB and write a tonne of embedded C to get the things talking to each other. It seemed wrong to let it languish unopened on my machine, so I thought I&amp;rsquo;d put it out there.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve uploaded the whole project write-up along with a summary and visual highlights, all of which &lt;a href=&#34;https://paul.fawkesley.com/cooperative-mobile-robots-meng-project/&#34;&gt;can be found here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://paul.fawkesley.com/img/mobile-robot.jpg&#34; alt=&#34;Mobile robot with ARM coretex M3 processor, as found in the Arduino Due&#34;&gt;&lt;/p&gt;
&lt;p&gt;The PCB on top is a Luminary Micro evaluation board with an ARM Coretex-M3 processor. I designed the PCB below that board and the sensors housings mounted on the front and back of the chassis.&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Packaging Python for Windows with Pyinstaller and Wine</title>
      <link>https://paul.fawkesley.com/packaging-python-for-windows-pyinstaller-wine/</link>
      <pubDate>Fri, 01 Feb 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/packaging-python-for-windows-pyinstaller-wine/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;ve ever had to deploy Python on Windows you&amp;rsquo;ll know it&amp;rsquo;s a headache. If, like me, you develop in Linux, it&amp;rsquo;s a positive migraine. Hopefully I can help&amp;hellip;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve used Pyinstaller v1.5 in the past quite a bit with some success but doing so in Wine on Linux has always been a bit flaky. Since Pyinstaller-2.0 came out a while back I felt it was only right to revisit and see if I could make a more robust setup.&lt;/p&gt;
&lt;p&gt;Today I knocked up some scripts to help create and manage a dedicated Wine &amp;ldquo;build&amp;rdquo; environment and run Pyinstaller inside Wine to create a &amp;ldquo;frozen&amp;rdquo; standalone Windows executable file from your Python source.&lt;/p&gt;
&lt;p&gt;Visit the &lt;a title=&#34;GitHub&#34; href=&#34;https://github.com/fawkesley/python-windows-packager&#34; target=&#34;_blank&#34;&gt;project on GitHub&lt;/a&gt; or clone the repo and get involved. On the first run it&amp;rsquo;ll give you instructions on setting up your dedicated wine environment, but you won&amp;rsquo;t need to do this again.&lt;/p&gt;
&lt;pre&gt;$ git clone https://github.com/fawkesley/python-windows-packager
$ ./package.sh /path/to/my/main.py MyProject&lt;/pre&gt;
&lt;p&gt;&amp;hellip; and *fingers crossed* out pops /tmp/MyProject.exe&lt;/p&gt;
&lt;p&gt;Feel free to have a play, fork the code, let me know what you think.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Raspberry Pi project ideas</title>
      <link>https://paul.fawkesley.com/raspberry-pi-project-ideas/</link>
      <pubDate>Mon, 14 Jan 2013 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/raspberry-pi-project-ideas/</guid>
      <description>&lt;p&gt;I finally got my hands on a Raspberry Pi this Christmas, long overdue I appreciate. I&amp;rsquo;d done a fair amount of industrial work with the Arduino and got on very well with it. The slightly higher level and versatility of the Raspberry Pi is pretty exciting.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve talked to a lot of people who bought one in the early days, and very few people have actually done anything interesting with them. I&amp;rsquo;d like to try and break that mould, so I&amp;rsquo;ve put down a few ideas here.&lt;/p&gt;
&lt;p&gt;&lt;a title=&#34;BrewPi&#34; href=&#34;http://brewpi.com&#34; target=&#34;_blank&#34;&gt;&lt;strong&gt;BrewPi&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ale is good, brewing sounds fun, but given the numerous brewing failures of a good friend in the past, I suspect temperature controlling the brewing process is more important than he realised. The concept here is dead simple: place a brewing vessel inside a fridge, alongside a 100W lightbulb. Use a Raspberry Pi to turn on either the fridge or the light to cool or heat the beer. I&amp;rsquo;ve recently been tipped off about the &lt;a title=&#34;Belkin WeMo&#34; href=&#34;http://www.belkin.com/uk/c/WSWH&#34; target=&#34;_blank&#34;&gt;Belkin Wemo&lt;/a&gt; switchable power outlet which should reduce the hacking time (I don&amp;rsquo;t fancy spending a week hacking up a 13A switching board). Pretty neat project, especially if I can get some beer out of it.&lt;/p&gt;
&lt;p&gt;**Stop-motion video
**&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;d be fun  to rig up a webcam or even a half decent digital camera via the Pi&amp;rsquo;s USB and do periodic photographs in order to make a stop motion video. From the apartment I&amp;rsquo;ve got a great view of the Liverpool 360 wheel and part of the Albert Docks so it could make for quite a spectacular video. Anyone got an old digicam up for grabs?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Motion detection&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I had a lot of fun in the past running motion detection algorithms on webcams  in order to try and detect intruders - although I mostly ended up incriminating the milkman, various types of moth and occasional drunk students. This was all through a desktop PC but it would be much cooler to do the video processing on the Pi, making a very portable motion detection module. Coupled with a GPS and GPRS unit it would be a nifty security gadget. It could probably be integrated into car dashboards or bumpers - maybe catching tailgating Range Rovers is the key?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Environmental monitoring&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The final interesting project I had in mind was to do with monitoring pollutants, radiation, or some other interesting air quality metric. Again, this would get particularly useful with the addition of a GPS module as it would be dead portable and easy to deploy. Given the low cost of producing such a gadget, it wouldn&amp;rsquo;t be infeasible to have a whole network of such devices, and analysing the composite data could be informative. I wonder if it would be possible to derive the source of pollutants based on enough measurement locations mixed in with local wind speed and direction data?&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d be interested to hear your project ideas. The Raspberry Pi does seem wonderfully versatile, it&amp;rsquo;d be a shame if mine joined the many other Pis gathering dust!&lt;/p&gt;
</description>
    </item>
      
    
      
    <item>
      <title>Speaking at Breakerfaire, 11th December 2012</title>
      <link>https://paul.fawkesley.com/introduction-to-information-hiding/</link>
      <pubDate>Wed, 28 Nov 2012 00:00:00 +0000</pubDate>
      
      <guid>https://paul.fawkesley.com/introduction-to-information-hiding/</guid>
      <description>&lt;h2 id=&#34;beneath-the-surface-an-introduction-to-information-hiding&#34;&gt;Beneath the Surface: An Introduction to Information Hiding&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s been three months or so since I moved to Liverpool and I&amp;rsquo;ve had recently the pleasure of discovering &lt;a href=&#34;http://www.doesliverpool.com/&#34;&gt;DoES&lt;/a&gt;, a coworking and maker community. It&amp;rsquo;s been a treat to find similarly minded technologists, entrepreneurs and generally interesting people.
When the opportunity arose to bring together two of my hobbies, information security and public speaking, I jumped on it. On Tuesday 11th December I&amp;rsquo;ll be doing a talk entitled &lt;em&gt;Beneath the Surface: An Introduction to Information Hiding&lt;/em&gt;.  It sounds like an interesting night, more details over at &lt;a href=&#34;http://www.matthewhughes.co.uk/breakerfaire-tuesday-11th-of-december-2012/&#34;&gt;Matthew Hughes&#39; blog&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
      
    
  </channel>
</rss>
