Internet Research #2

1. I've always enjoyed Matt's 'filtered for' posts, but I especially enjoyed this turn of phrase:

Computer chip architecture is about the regulated control of information. The design never anticipated that unregulated information - time - would be brought in from the outside.

I can already see the government campaign warning against unregulated information.

Filtered for recent computer exploits

2. In the same post Matt linked to System Bus Radio — turning a computer without any radio hardware into an AM transmitter by hitting the RAM fast enough you "carve radio waves into the air". Useful should you want to exfiltrate data out of an air-gapped machine.

This reminded me of a tale told to me by the radio engineers when I used to work at the BBC. They reported being on an AM transmitter site, working late at night and suddenly hearing John Peel's voice coming out of the chain link fence surrounding the site. I'd always thought that was due to the chain link fence somehow demodulating the AM signal and vibrating (handwave *physics!*).

Anyway, I did a bit of Googling and this Reddit post turns up (the video in post is dead, but the correct video is below), which appears to show a radio signal coming out of vapourising grass touched to the grounding of a large transmitter. In Russia, obviously.

In the comments someone explains how it works:

It's not the radio wave causing the sound. The antenna is being positively/negatively charged hundreds of thousands of times per second in order to produce the radio waves. Because the grass is just a bag of salty water, when it is put in contact with the antenna, it will begin to exchange charge with it. This is an AC current. Grass has a relatively high resistance so will heat up when AC current passes through it. This heat causes water to vaporise, and the rate of vaporisation will depend on the amount of AC current. The current is proportional to voltage, which is being modulated by the radio station to allow radios to reproduce sound waves corresponding to music.

Radio is witchcraft.

3. Tim Bray thinks Google has stopped indexing older parts of the web, making it harder to find old posts from smaller sites. It prompted me to try out Million Short, a search engine that lets you remove up to the top 1 million sites from your query. If you try something like 'london fish restaurants' it's not bad. Gone are (most of) the roundup sites, top 10s from newspapers, Yelp, Tripadvisor, etc. Instead, you just get a load of, y'know, fish restaurant websites. And sometimes that's what you want.

Million Short

Million Short, 'london fish restaurants'

4. Being a massive Bret Victor fan, I really want to visit Dynamicland.

We are a non-profit long-term research group in the spirit of Doug Engelbart and Xerox PARC. We are inventing a new computational medium where people work together with real objects in the real world, not alone with virtual objects on screens. We are building a community workspace in the heart of Oakland, CA. The entire building is the computer.

Well, why the fuck not? Don't miss the 5000 year plan.

Dynamicland

Dynamicland

5. Ursula Le Guin has died, aged 88. Matt (everyone on the internet is called Matt) linked to her essay, 'A Rant About "Technology"' which I'd not read before, and is superb.

I don't know how to build and power a refrigerator, or program a computer, but I don't know how to make a fishhook or a pair of shoes, either. I could learn. We all can learn. That's the neat thing about technologies. They're what we can learn to do.

If you can learn it, it's a technology.

Ursula Le Guin

NAD C315BEE amplifier buzzing

I'm sticking this up in the off chance it'll turn up in someone's Google search one day and save them some time or money.

If you found this you probably did what I did which was forget to turn off your NAD 315BEE amplifier. And then one night, at 3am, you woke up to find your speakers buzzing REALLY LOUDLY. Even when you put the amp into standby, which is odd.

The two large 10000μF smoothing capacitors have blown and need replacing. If you've got a soldering iron and stable hand you should be able to do it yourself.

If you're in the UK RS stock these replacements which are the right specification and size. You can find guides on YouTube for how to swap them.

Internet Research #1

1. I've been enjoying noodling around with some electronics recently. One of the things I'm working on is converting a pair of beautiful old Bang and Olufsen CX50 speakers into an open source Sonos-esque multiroom audio system. I'm following HifiBerry's guide for the hardware part, and in it there's two 3D printed parts you need.

So I go on 3D Hubs, upload the two .stl files provided, get a quote, credit card, and now it's printing somewhere in Farringdon. You still need to know whether you want PLA or ABS or whatever, but I was very impressed at how easy the whole thing was. Just another mundane e-commerce transaction. We're out the other side of the hype cycle.

2. Simon Willison linked to libpostal on Twitter. On the surface, a useful library for turning unformatted addresses into structured data. Useful, but nothing out of the ordinary. But on a closer look:

libpostal's international address parser uses machine learning (Conditional Random Fields) and is trained on over 1 billion addresses in every inhabited country on Earth.

Increasingly, just chunking loads and loads of data at a problem becomes an option. Why bother writing a parser to handle every condition and edge case if you can just throw all the known address data in the world at it and let the computer work it out? The writeups on how it works are interesting and thorough.

Statistical NLP on OpenStreetMap: Part 1, Part 2

libpostal screenshot

3. Mapzen funded libpostal, and loads of other brilliant geodata projects. Sadly they're shutting down, but because it's all open source the tens of £millions of value won't be lost. Their migration guide walks through the alternatives to all their hosted services.

Aaron's post about Who's On First, the gazetteer of places, is a brilliant example of how to ensure an important project lasts beyond the lifespan of a single organisation or corporate strategy. Lots of loosely joined pieces, many easy to self or community host. Designing your project to be defended against the organisation that hosts it means designing that in from day one.

In many ways everything about the way Who’s On First has been designed has been done with this day in mind. We all endeavour to achieve the sort of “escape velocity” that immunizes us from circumstance but that is rare indeed and there was always a chance this day would come. So while “success” was the goal in many ways preventing what I call “the reset to zero” has always been of equal importance.

Who's On First, Chapter 2

DRAWING, THE CHROMO CUBE, 1980

4. I think spotted this on FaveJet probably via Russell.

David Rudnick's beautiful drawings of MiniDiscs. Drawings. In Photoshop.

An endless journey through an imaginary England

I turned my silly post about generating village names using a neural network into @urnowentering, a silly Twitter bot. It's the gift that keeps on giving, procedurally, forever.

Generating English village names with neural networks

Roll 13/02

I'm trying to wrap my head around the new generation machine learning tools: deep neural networks and the like. It feels like this technology is approaching where databases were 20-30 years ago: the tooling is getting easy enough that an idiot like me can have a stab at wiring something up, even if I don't quite understand all the magic incantations that I need to type. And it's pretty clear it's going to be important.

The world seems to be settling on Tensorflow, for now, so I had a go at getting something stupid up and running. I ended up making an English village name generator, using a corpus from OS Open Names (with a healthy amount of awk and grep), and a character level recurrent neural network written in Tensorflow.

Like I was with SQL many moons ago, I think I understand some of the principles, what's possible and what's not, and I can make sense of someone else's code - but it's a bit of struggle getting all the words in the right order when I have to change anything.

Anyway, the results are quite fun - here's 20 of them:

Allers
Bottom
Culack
Swrarby
Fenwall
St Eastake
Anbarth
St Ninhope
Thawkanham Water
Green Mige Lane
Up Maling
Firley
Dinch
Lindlemere
Stan Hill
Hiddlesley
Pibley
Hunmastreet
Shenworth
Strough
Hendrelds Hill
Scottedane
Crickines
Stranal
Footh

And here's another 980.

Update: I turned this into a Twitter bot, @urnowentering.

FaveJet

I've used Jason Kottke's Stellar for a couple of years now, and love it. If you've never tried it, it's a stream of things your friends are favouriting, mostly on Twitter, but YouTube, Vimeo and other stuff too.

Favourites are quieter than retweets, and more nuanced. A little nod of acknowledgement, a gentle arm around a shoulder, or sometimes just a smile.

Stellar surfaced those in a way that always felt like a superpower: the ability to see a little further, beyond my immediate network, slicing through the fog.

And so when it went offline a couple of months ago, Twitter got a little less enjoyable for me.

To plug the gap, I've made a little thing called FaveJet, and you can have a go if you like.

FaveJet

Running this type of thing is hard. Pulling down everyone's favourites every 30 mins and reconciling them into an activity stream is intensive as websites go. It seems fine for the 40 people using it at the moment, but it'll look quite different at a thousand or five thousand.

But I'd like anyone to use it, and I don't want it to be beholden to the whims of me and my rare free time. I'd like to find a model to support it, that doesn't involve emptying my pockets alone, or losing precious family time.

Maybe that looks like a company with some people paying and using those proceeds to pay for work on it, or maybe that looks like some kind of co-ownership/co-op model, splitting the work between a few people. Or maybe a mix.

I'm not sure, but I'd like to find something that works, and hopefully an approach I can use to support other niche products in the future.

If you've got any ideas, you'd like to help or you've tried this in the past, please drop me a line.

Anyway, in the meantime, feel free to give it a go. It only works for Twitter at the moment, and I've capped sign ups to 20 per day for now. Happy faveing.

Galloway

Went to Galloway a few weekends ago. Stayed in a treehouse. Typical. Amazing light though.

08:17

08:19

08:29

09:57

VEL-O-DROME

I went to the Six Day at the Olympic Velodrome this week. Great atmosphere, lots of fun.

They've gone full Wipeout with it all. A DJ from Ministry of Sound watching the action and keeping tempo accordingly. Coloured flood lighting. Introducing all the riders one by one as they do laps. Very little hanging around between events, and you mostly knew what was going on.

And whoever had the Derny riders come out to Ride of the Valkyries deserves a bonus.

Velodrome

Derny Racing

Camera

Hey Thermostat

Alright then, that works.

Siri

I promise I'm never blogging about my thermostat ever again.

Not a Nest

Raspberry Pi Wireless Thermostat

As I wrote before, I've been hacking around with my wireless thermostat. Over the weekend I spent a couple of hours throwing together some code to act as a thermostat control loop, running from a Raspberry Pi. I've shared the code on GitHub.

There's two bits: a little C executable using Wiring Pi, that sends the commands to the boiler, and a Go executable that watches the temperature from an attached digital thermometer (a DS18B20) and triggers the thing that sends the commands. (The whole thing was Go for a while, but Go is too unreliable for timing the transmission, so it seemed easiest to move that bit to Wiring Pi in C.)

To put all this on a schedule, I'm using cron to write the desired temperature into a file that's being read every few seconds. If the monitored temperature goes 0.5°C over the desired temperature, the boiler turns off. And if it goes 0.5°C under, it turns on. It's a simple little system, but it's been running for a couple of days now, and hasn't set the house on fire yet.

The thermostat is now marginally less convenient than it was when I started, so the next step is to do what I promised with a shared calendar (not everyone in the family wants to SSH in to turn the heating on).

And it's not done until you've put it in a nice box and it doesn't look like an improvised explosive device. I've always enjoyed watching Tom put things in boxes, so it might be time to get some advice.

For a stretch goal, I'd like to poke around with HomeKit integration: "Hey Siri, turn the heating on", etc. And actually, thinking about it, that's something you can't do with a Nest.