home.social

#nablopomo — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #nablopomo, aggregated by home.social.

  1. 📝:ivory_boost: Oxtail, and more #Cooklang Exploration

    After yesterday’s post, it was time to finally try to handle a blog post and Cooklang #recipe in one file. The solution to how to format things was simple: inline the recipe in a Markdown code fence and pre-process it.

    #NaBloPoMo #NaBloPoMo2024 #Microformats #IndieWeb #Rust #RubyOnRails
    calebhearth.com/m/oxtail

  2. 📝:ivory_boost: Oat Notes

    You’ll probably read this recipe and think wait, this is just overnight oats but you’d be wrong, because this is a recipe for overnight oats that someone who cares about you remembered to make for you last night. At least that’s how I interpret my 3-year-old’s mis-hearing or pronunciation of us...

    #NaBloPoMo #Receipe #NaBloPoMo2024 #Cooklang #Microformats #IndieWeb
    calebhearth.com/m/oat-notes

  3. 📝:ivory_boost: How I Model #SwiftUI Views

    The approach I take to defining ViewModels for SwiftUI was heavily inspired by @twostraws’s post Introducing #MVVM into your SwiftUI project. In it, he advocates for defining class ViewModel inside an extension to the relevant view.

    #NaBloPoMo #Swift #Testing #NaBloPoMo2024 #BestPractices
    calebhearth.com/m/how-i-model-

  4. 📝:ivory_boost: Using Starship for the Same Prompt, but Faster

    Starship is a highly-configurable, cross-shell prompt. I recently switched to using it and it sped up my prompt rendering from being noticably slow and taking probably half a second to render to an imperceptible 0.03s rendering time. It actually does slightly more than my old prompt did as well...

    #NaBloPoMo #Rust #Uses #NaBloPoMo2024 #Shell #dotfiles
    calebhearth.com/m/starship-pro

  5. 📝:ivory_boost: Send a From Header When You Crawl

    Sending a From header is part of building a polite crawler, along with respecting Robots.txt and sending a unique User-Agent. The From header simply contains an email address that can be used by the site’s owner to reach out if your bot is creating any issues for them.

    #NaBloPoMo #BestPractices #Http #NaBloPoMo2024
    calebhearth.com/m/send-a-from-

  6. 📝:ivory_boost: Use cURL and jq to Send Webmentions from Hacker News

    Hacker News doesn’t send Webmentions when a post is created like Lobste.rs will, and there’s not currently a service on sites like Brid.gy that will provide them for you. Even the Hacker News API doesn’t provide search or filtering by site. Luckily, there is a service provided by Algolia that ...

    #NaBloPoMo #Webmention #IndieWeb #NaBloPoMo2024 #Jq #Curl #Hackernews
    calebhearth.com/m/hn-webmentio

  7. 📝:ivory_boost: Search and Sync Your #Shell History With Atuin

    Atuin is a tool that runs in the background to capture commands you’ve entered. It stores these locally in a SQLite database and provides a great CLI tool to search through that history, provide stats of what commands you frequently run, and optionally syncs this history across devices.

    #NaBloPoMo #Rust #Uses #NaBloPoMo2024 #dotfiles
    calebhearth.com/m/search-sync-

  8. 📝:ivory_boost: Decryption/CypherError on Rails 7.1 Apps with Encrypted Columns After Upgrading from Previous Versions

    When upgrading to Rails 7.1 with any models using the encrypts macro from ActiveRecord::Encryption, be wary of upgrading the config.load_defaults in config/application.rb from 7.0 to 7.1. The 7.1 defaults for ActiveRecord::Encryption include a combination of settings that can lead to your app...

    #NaBloPoMo #RubyonRails #NaBloPoMo2024 #Bug #OpenSou calebhearth.com/rails-7-1-encr

  9. 📝:ivory_boost: I Use /uses

    Back in 2023 I quietly published my /uses #Slashpage. Today I gave it a pass to update things that had fallen out of date.

    #NaBloPoMo #NaBloPoMo2024 #Uses #IndieWeb #Microformats
    calebhearth.com/m/i-use-uses

  10. 📝:ivory_boost: How to Send a #Webmention h-entry

    Notify sites that you have linked to them with extra context: is your content a reply, a review, a bookmark, or even a checkin?

    #NaBloPoMo #Microformats #IndieWeb #NaBloPoMo2024
    calebhearth.com/m/webmentions-

  11. 📝:ivory_boost: New #Fonts Day

    Today rather than publishing a lengthier post, I’ll point you to some work I’ve done on this site’s design.

    #NaBloPoMo #CSS #NaBloPoMo2024 #Design
    calebhearth.com/m/new-fonts-da

  12. 📝:ivory_boost: Build Colors from Colors with #CSS Relative Color Syntax

    This is a post I’m mostly writing for my future self, because I can never remember the actual term for the #CSS feature that lets you define a color based on another color (it’s “CSS Relative Color”) and “color mix” which is what I keep wanting the feature to be called never turns up any results...

    #NaBloPoMo #NaBloPoMo2024 #Design
    calebhearth.com/m/css-relative

  13. Statistics for My Blog

    When thinking about how to kick off #NaBloPoMo #NaBloPoMo2024 this past weekend, instead of picking one of several drafts or mostly written articles I naturally decided that we should instead start with something fresh!

    Introducing /statistics, a #Slashpage that shows blog post stats.

    #Programming #Slashpages #Ruby

    calebhearth.com/m/blog-statist

  14. 🆕 blog! “WebMentions, Privacy, and DDoS - Oh My!”

    Mastodon - the distributed social network - has two interesting challenges when it comes to how users share links. I'd like to discuss those issues and suggest a possible way forward. When you click on a link on my website which takes you to another website, your browser sends a Referer1. This says to …

    👀 Read more: shkspr.mobi/blog/2022/11/webme

    #mastodon #MastodonAPI #metadata #NaBloPoMo #ogp

  15. LG killed its 360 camera after only 4 years - here's how to get it back

    Four years ago, I reviewed the LG-R105 360 Camera. It's a pretty nifty bit of hardware. Sadly, LG have decided that they don't want to support it any more. They already got your money, so fuck you for expecting any further updates.

    Here's their message:

    We exp

    shkspr.mobi/blog/2021/11/lg-ki

    #/etc/ #360 #android #lg360 #linux #NaBloPoMo

  16. LG killed its 360 camera after only 4 years - here's how to get it back
    https://shkspr.mobi/blog/2021/11/lg-killed-its-360-camera-after-only-4-years-heres-how-to-get-it-back/

    Four years ago, I reviewed the LG-R105 360 Camera. It's a pretty nifty bit of hardware. Sadly, LG have decided that they don't want to support it any more. They already got your money, so fuck you for expecting any further updates.

    Here's their message:

    We express a sincere gratitude for your patronage to LG 360 CAM Manager Service.
    Due to changes in our operation policies, LG 360 CAM Manager Service via mobile applications will be terminated as of June 20, 2020.

    Well, that's a load of bollocks, isn't it! Here's how you can continue using the camera on modern versions of Android - and connect to it on Linux.

    Get The App

    LG have removed it from Google Play. They could have left it there, but they didn't. But the Internet never forgets. So you can download the final version from APK Pure.

    Copy the APK to your phone and install it. You can read the instructions to see how the app works.

    If you're lucky, everything will just work. If not, read on…

    Reset the camera

    Charge the camera via USB-C. Turn it on by holding the power button for 4 seconds. After all the lights have stopped flashing, simultaneously hold down power and shutter for about 12 seconds. You'll get an assortment of flashy lights and sounds. This is the camera resetting. You may need to turn it off and on again.

    Go into the app, and search for your device. Click on the device it finds.

    Now, go to your phone's WiFi settings. You should see a new network called something like LGR105_123456.OSC. Connect to it.

    The password will be 00123456 - so 00 plus the last 6 numbers of the Access Point name. Secure!

    You can now go back to the app and use it as per normal.

    Root it!

    Oh yes 😁 using LGLAF you can force the camera into ADB debugging mode. You will also need to install PyUSB.

    As per these instructions:

    1. Turn off camera by holding the power button until it beeps forlornly. Keep holding it down until the double LEDs on the side stop flashing.
    2. Plug a USB cable into a computer, but do not connect the camera
    3. Press and hold the shutter button while plugging the USB-C into the camera
    4. Keep holding the shutter button down until led turns blue
    5. In a terminal, type python lglaf.py --cr
    6. Type setprop persist.sys.usb.config mtp,adb
    7. Type exit and unplug camera
    8. Hold power button down until the blue LED goes off
    9. Hold power button to turn on the camera
    10. Plug camera back into USB-C
    11. On computer, type adb devices and you should see the camera

    Now, using something like scrcpy you can connect to the camera and use it just like an Android phone!

    It acts just like a normal Android device - you have access to all the settings, developer mode, etc.

    HTTP Requests

    Once you've got access to the camera, you can turn on its WiFi and connect to your home network. As per these helpful instructions you can then use the built in OCS API.

    For example, sending a HTTP GET to http://192.168.123.456:6624/osc/info will get you back:

    {  "manufacturer": "LGE",  "model": "LG-R105",  "serialNumber": "123456",  "firmwareVersion": "R10510l",  "supportUrl": "developer.lge.com/friends",  "endpoints": {    "httpPort": 6624,    "httpUpdatesPort": 6624  },  "gps": false,  "gyro": true,  "uptime": 18,  "api": [    "/osc/checkForUpdates",    "/osc/commands/execute",    "/osc/commands/status",    "/osc/info",    "/osc/state"  ],  "apiLevel": [    1,    2  ]}

    To take a photo, run:
    curl -X POST http://192.168.123.456:6624/osc/commands/execute -H 'Content-Type: application/json' -d '{"name": "camera.takePicture"}'
    that will save it on the camera's SD card.

    To get a photo from the camera, run:
    curl -X POST http://192.168.123.456:6624/osc/commands/execute -H 'Content-Type: application/json' -d '{"name": "camera.getLivePreview"}' --output test.jpg

    I haven't figured out 360 streaming (if it is even possible) but you can get a preview of one of the cameras:

    To start a session, run:
    curl -X POST http://192.168.123.456:6624/osc/commands/execute -H 'Content-Type: application/json' -d '{"name": "camera.startSession"}'
    To start a stream, run:
    curl -X POST http://192.168.123.456:6624/osc/commands/execute -H 'Content-Type: application/json' -d '{"name": "camera._startPreview", "parameters": {"sessionId": "123"}}'

    You will get back:

    {  "results": {    "_previewUri": "udp://:1234"  },  "name": "camera._startPreview",  "state": "done"}

    Run VLC and open the network stream udp://:1234 and you'll get a low-resolution preview of what the camera is seeing.

    You can see more commands on the Open Spherical Camera API page.

    Full list of commands

    By decompiling the APK, I was able to extract these available commands. Anything which starts with _ is a manufacturer specific command, so won't work on other OSC cameras.

    • camera._getRecordingStatus
    • camera._getThumbnail
    • camera._getVideo
    • camera._listAll
    • camera._liveSnapshot
    • camera._manualMetaData
    • camera._pauseRecording
    • camera._resumeRecording
    • camera._startPreview
    • camera._startStillPreview
    • camera._stopPreview
    • camera._stopStillPreview
    • camera._updateTimer
    • camera.closeSession
    • camera.delete
    • camera.getFile
    • camera.getImage
    • camera.getMetadata
    • camera.getOptions
    • camera.listFiles
    • camera.setOptions
    • camera.startCapture
    • camera.startSession
    • camera.stopCapture
    • camera.takePicture
    • camera.updateSession

    Enjoy!

    https://shkspr.mobi/blog/2021/11/lg-killed-its-360-camera-after-only-4-years-heres-how-to-get-it-back/

    #360 #android #LG360 #linux #NaBloPoMo

  17. The 360 Selfie

    shkspr.mobi/blog/2019/11/the-3

    I'll admit it - I never really got the selfie. I was trapped in the mistake that they were a mere narcissistic folly. I couldn't have been more wrong. The more I travel the world, the more I see a change in people's behaviour around monuments. It used to be people jostling to get the one perfect shot of a thing. Even if they got the perfect shot, they never looked at the result. Why?

    People want to take a photo like this:

    But it often ends up coming out like this:

    That's not intended to be snarky. Most of us don't have the time, skill, or equipment to take stunning photographs. But that's OK! The best photographs of mere objects have already been taken. The photo that no-one else has ever taken is of you standing there!

    That's what I love about selfies! A photo of a monument is just that. It shows you were there, once, kinda. But a selfie proves that you were there! I think there's something delightful about saying "This is me! Here I am!"

    So, here are a couple of 360 selfies from our recent trips. They're not the greatest photos in the world - they're not static shots of a thing - but they are of us and the memories we made.

    Rome

    Hong Kong

    Australia

    #360 #LG360 #meta #NaBloPoMo #photography #photos
  18. New Push Notification: Suspicious Transactions

    A concerning experience with fraudulent transactions on my Monzo account.

    fed.brid.gy/r/https://www.jvt.

  19. Talking SmartHome tech on Radio 2

    After hearing my interview on Radio 4, the Jeremy Vine show asked me to talk about my smart home tech for Radio 2.

    BBC Radio 2

    @BBCRadio2
    BBC

    We discuss controlling all the devices in your home with your mobile phone. #r2vine pic.x.com/O9hx7aTFpp

    ❤️ 6 💬 8 🔁 0 13:35 - Thu 17 November 2016

    But! There was a twist. Could I demo some of my tech on the radio?

    Most IOT kit is portable - but is usually tied to a specific WiFi network. I wondered about the logistics of reconfiguring several bits of kit to work with the BBC's guest WiFi network. Setting up the gadgets can be a laborious task even under optimal conditions. And I'd only have a few minutes to get into the studio to prepare.

    A brainwave struck! I'd seen Sam Machin present some home automation hacks at #BathCamp - he'd cunningly used a portable MiFi. All his toys connected to its WiFi, and then used the mobile signal to reach the internet. Genius!

    So that's what I did. The night before broadcast I reconfigured a Lifx bulb, a WeMo switch, a cheap IP camera, and my Roomba to teather off my mobile phone. Everything worked! Well, after a bit of bodging.

    The Lifx needed to be connected to my main WiFi first in order to get a firmware update - then it happily connected to the phone. The Roomba was a bit temperamental - and is quite bulky - so I dropped it from the list.

    Of course, that was at home. In the true spirit of Tomorrow's World, I was sure that something would go wrong! The phone signal would crap out? The configs would reset? The power would blow up?

    The technology spirits were smiling on me that day! All the bits and bobs worked flawlessly! The lights dimmed, the power toggled, the camera swivelled! Hurrah!

    You can listen to the broadcast - it starts at about 1 hour, 41 minutes in.

    🔊

    💾 Download this audio file.

    If you'd like me on your show, podcast, or event - please get in touch.

    #BBC #BBCInterview #IoT #media #NaBloPoMo #radio #SmartHome

  20. Radio 4 IoT Talk

    Off the back of my ThingMonk talk I was invited on to BBC Radio 4's PM programme to talk about the Internet of Things in the home.

    Listen to me on BBC Radio 4 - about 47 minutes in

    🔊

    💾 Download this audio file.

    Want me on your show or podcast? Give me a call!

    You can read more about my IoT adventures, including:

    Thanks to Chris Vallance for inviting me to one of the BBC's top secret recording locations.

    Terence Eden is on Mastodon

    @edent

    Replying to @MarcSettle@MarcSettle I can neither confirm nor deny that @radioproducer spent License Fee Payers' money flying me to the Bahamas. ❤️ 0💬 0🔁 016:07 - Tue 01 November 2016

    Chris Vallance

    @radioproducer

    Replying to @edent@edent @MarcSettle Bahamas I wish! Just finished editing on a bench before the park attendant threw me out. Glamorous world of radio part VI ❤️ 1💬 0🔁 017:25 - Tue 01 November 2016

    #BBC #BBCInterview #media #NaBloPoMo #radio

  21. A Complete List of Every UK Government Domain Name

    shkspr.mobi/blog/2015/11/a-com

    Eight years after I published this blog post, I helped officially release all these domain names as open data! Funny how life works out, eh?

    Would you like to know every domain name the UK Government had registered? Of course you would! There could be all sorts of interesting tit-bits hidden in there (ProtectAndSurvive.gov.uk? EbolaOutbreak2017.nhs.uk? MinistryOfTruth.police.uk?)

    Rather than relying on Freedom of Information requests, or Open Data, we can go straight to the source of domain names - the DNS!

    Shut Up And Give Me The Codez!

    Download all UK Government host names.gov.uk 15,436 records.nhs.uk 4,877 records.police.uk 466 records.mod.uk 268 records.parliament.uk 91 records

    That's... quite a lot! The majority are host names - only around 2,247 of the GOV.UK ones are domain names. Many of them are not currently live.

    Still, I wonder how many are new?

    Steph Gray

    @lesteph

    Not intended snarkily, but has web rationalisation/no new govt domains been formally abandoned as a policy now? ❤️ 0💬 1🔁 013:22 - Mon 09 November 2015

    Steph Gray

    @lesteph

    Replying to @charlottejee@charlottejee stuff like exportingisgreat.gov.uk, workplacepensions.gov.uk etc ❤️ 0💬 0🔁 013:23 - Mon 09 November 2015

    Charlotte Jee

    @charlottejee

    Replying to @lesteph@lesteph This seems to say new domains need approval rather than that they aren't allowed: gov.uk/government/pub… ❤️ 1💬 1🔁 013:26 - Mon 09 November 2015

    The Gov.UK file is a CSV which also show when the domain was first registered (if available).

    Geeky Details

    The Domain Name System (DNS) lists every single domain name (example.com). It tells your computer which IP Address is associated with a Domain Name. If your local DNS doesn't know where example.gov.uk lives, it goes to the ISP's DNS. If they don't know, they ask an upstream provider's DNS. And so on, until someone asks the .gov.uk nameserver for an authoritative response.

    So, can you download every domain name in existence? No, not easily. It usually involves filling out lots of forms and giving some compelling reason why you want it.

    However, Rapid7's sonar project provides a sort of "best guess" for all the domain names which it can see.

    To download the entire file is 12GB. That's the zipped version.

    Once unzipped, it's a whopping 67GB

    A quick look at the file shows it contains 1,408,097,159 records. Youch! That's a lot of domain names!

    This is what the file looks like

    $ head 20150926_dnsrecords_allcshengmei.com.h310.6dns.net,a,103.225.196.101reseauocoz.cluster007.ovh.net,cname,cluster007.ovh.netcse-web-cl.comunique-se.com.br,a,200.166.77.69ext-cust.squarespace.com,a,198.185.159.176ext-cust.squarespace.com,a,198.185.159.177ext-cust.squarespace.com,a,198.49.23.176ext-cust.squarespace.com,a,198.49.23.177ghs.googlehosted.com,cname,googlehosted.l.googleusercontent.comisutility.web9.hubspot.com,cname,a1049.b.akamai.netsendv54sxu8f12g.ihance.net,a,54.241.8.193sites.smarsh.io,a,199.47.168.63www.triblocal.com.s3-website-us-east-1.amazonaws.com,cname,s3-website-us-east-1.amazonaws.com*.01ete21.cn.cname.yunjiasu-cdn.net,a,162.159.210.34*.01ete21.cn.cname.yunjiasu-cdn.net,a,162.159.211.34

    As a brief primer, a CNAME points to another domain name. An A Record points to an IP address. There are lots of different domain records.

    Ok, so let's get all the *.gov.uk records out of there...

    grep "gov\.uk" 20150926_dnsrecords_all0-19insalford.info,soa,ns0.ictservices.co.uk postmaster.salford.gov.uk 2010022204 28800 7200 604800 86400019186.gov.ukpfl.cn,a,122.9.230.117100days.local.gov.uk,a,198.154.241.231101.gov.uk,a,216.146.46.10101.gov.uk,a,216.146.46.11101.gov.uk,mx,20 sms2.101.gov.uk101.gov.uk,ns,ns1.p08.dynect.net

    Ah! Ok, we're picking up some websites which are pointing to a gov.uk site (potentially useful) and some false positives like "019186.gov.ukpfl.cn". Let's just look at records where the first column ends with .gov.uk":

    grep "\.gov\.uk," 20150926_dnsrecords_all100days.local.gov.uk,a,198.154.241.231101.gov.uk,a,216.146.46.10101.gov.uk,a,216.146.46.11101.gov.uk,mx,20 sms2.101.gov.uk101.gov.uk,ns,ns1.p08.dynect.net101.gov.uk,ns,ns2.p08.dynect.net101.gov.uk,ns,ns3.p08.dynect.net101.gov.uk,soa,ns1.p08.dynect.net hostmaster.cscdns.net 2014121100 3600 600 604800 18001901redirect.nationalarchives.gov.uk,a,193.132.104.1511sttouch.powys.gov.uk,a,212.219.229.791t6c3c0p2r0m934.forestry.gov.uk,a,212.38.180.452011.census.gov.uk,a,94.126.106.1322014.colneyheathparishcouncil.gov.uk,a,81.27.85.112050-calculator-tool-wiki.decc.gov.uk,cname,wiki.2050.org.uk

    OK, so how do we de-duplicate these? The first thing to do is manipulate the data. We only want the first column. There are an number of ways to do this in Linux, I prefer to use the Python tool CSVfilter.

    To install sudo pip install csvfilter.

    To grab only the first (zeroth) column
    cat 20150926_dnsrecords_all | csvfilter -f 0 > out.csv

    Now, this doesn't quite work. Why? Because some DNS records contain incredibly strange data! You can manually clean up the data, but that's a bit boring and utterly impossible to load into Excel or any other normal editor.

    Here's what I did...

    1. Copy all the lines containing gov.uk into a new file
      grep "\.gov\.uk," 20150926_dnsrecords_all > govuk.csv
    2. Create a new file with only the first column
      cat govuk.csv | csvfilter -f 0 > govuk0.csv
    3. Sort the file and make sure each line in unique
      sort govuk0.csv | uniq > govuk.txt

    Hey presto! A more-or-less complete list of every .gov.uk website which is registered. The same can be performed for .NHS.uk, .police.uk, .MOD.uk etc.

    Getting The Dates

    Time to crack out the Ruby!

    Using the WHOIS library, I wrote a simple script to parse the text records and query when the domain name was created.

    #!/usr/bin/env rubyrequire 'whois'c = Whois::Client.newFile.open( "govuk.txt" ).each do |line|   begin      r = c.lookup(line.chomp)      puts "#{line.chomp},#{r.created_on}"   rescue Whois::Error => e   rescue StandardError => e   endend

    This isn't perfect - there are only records for the third level of gov.uk - and no records at all for Parliament, MOD, Police, and NHS. It is also a bit slow to run through the thousands of records - but we can see a few interesting bits and bobs.

    Created in 2015

    I suspect some of these are merely renewals, rather than brand new domains.

    seemis.gov.uk,2015-10-29 00:00:00 +0000yjb.gov.uk,2015-10-28 00:00:00 +0000crbonline.gov.uk,2015-10-23 00:00:00 +0100coi.gov.uk,2015-10-14 00:00:00 +0100gibraltar.gov.uk,2015-07-29 00:00:00 +0100dorsetforyou.gov.uk,2015-03-19 00:00:00 +0000ico.gov.uk,2015-03-19 00:00:00 +0000bridgnorthtowncouncil.gov.uk,2015-01-29 00:00:00 +0000

    Oldest

    wdc.gov.uk,2003-06-03 00:00:00 +0100west-dunbarton.gov.uk,2003-06-03 00:00:00 +0100clacks.gov.uk,2003-06-02 00:00:00 +0100bassetlaw.gov.uk,2003-04-29 00:00:00 +0100dti.gov.uk,2003-03-13 00:00:00 +0000

    Sadly, clacks.gov.uk has very little to do with Terry Pratchett!

    That's all folks!

    Spotted anything unusual? Found a better way to do things? Stick a comment in the box!

    If you've enjoyed this post, you can buy me something from my Amazon Wishlist.

    #data #govUk #NaBloPoMo

  22. Why do we continue to pay for open location data?

    shkspr.mobi/blog/2014/11/why-d

    I don't understand how our Government works. I understand that tough decisions often need to be made - but sometimes those decisions are so utterly without reason that you have to wonder if politicians spend most of their days "painting their noses".

    The UK used to have a public sector postal service - the Royal Mail. Postmen need to know to where they were delivering mail. Postal Codes were created to help divide up the country into easily sortable destinations. And so, over time, a Postcode Address File was created. It listed every address in the UK and was the canonical source of data about UK locations.

    Given that this was a public database, created with public money, for the public good - you would expect that this data would be available to benefit the public. It was not.

    The Royal Mail kept their data behind lock and key - if you wanted access to it, you had to pay. Heavily.

    Five years ago, the Earnest Marples project began in order to free our postcodes. They wanted the UK's nationally owned data to be available to the public at no cost. The project was swiftly killed by Royal Mail's lawyers.

    Things dragged on, as they often do, until earlier this year when our Coalition Government decided to privatise the Royal Mail. I won't dwell on the fact that the sale cost the country billions of pounds. But I will point out that they also privatised the PAF. Now a private company controls our post codes and can charge pretty much what they like for access.

    It's rare that I agree with a Tory MP, but Bernard Jenkin - the head of the Public Administration Select Committee was completely correct when he said:

    The sale of the PAF with the Royal Mail was a mistake. Public access to public sector data must never be sold or given away again.

    Sale of postcodes data was a 'mistake' say Committee - 17/03/2014

    So, given that our Government professes to love Open Data - and knowing how decent location could generate billions of pounds of economic activity - what should be done?

    I know! Let's pay the Open Data Institute £383,000 to recreate the data set!

    Look, the ODI are properly awesome, but why are we paying them hundreds of thousands of pounds to recreate something we used to own? That's madness.

    The Government is now paying a private company to create a service to deprive revenue from another private company which underpaid for a service which we sold them, even though we didn't have to, which makes a profit for the company which is still partially owned by the Government. Clear as mud.

    Of course, the Government were warned in advance that privatising the PAF was a mistake. The people who warned them? The ODI!

    No less a person than Sir Tim Berners-Lee criticised the sale and said:

    Of course it is disappointing that the Address File has not been made public, a blow to the efficiency of UK businesses large and small. But we have hope.

    The decision has been made to leave the file in the care of the Royal Mail. The Royal Mail may well decide to do the right thing and make it available as Open Data. This will allow the UK to participate in the explosion of location-based and mobile services happening around the world.

    The Telegraph - 19 Apr 2013

    So the ODI made "very forceful" protests to the Government and warned of the economic folly. Now, in a self-fulfilling prophesy, the ODI are being paid by the Government to fix the mistakes the ODI warned against!

    This raises a few questions.

    How will the ODI's dataset be different from the recently privatised PAF?

    We can't have paying customers of the Royal Mail and consumers of this new open dataset working to incompatible standards - that would be a nightmare.

    And, if they are compatible, will the Royal Mail take steps to recoup their loss of revenue? Either by changing their data so it is no longer compatible or simply suing?

    Finally, maintaining a dataset which is constantly changing incurs a significant cost - at least, that was always the justification for charging for PAF access - so how much will we have to pay the ODI each year to ensure their data is up to date?

    This is such a messed up situation. Can someone please give me directions to the nearest pub?

    #earnestMarples #NaBloPoMo #OpenData #postCodes