Subscribe: as days pass by, by Stuart Langridge
Added By: Feedage Forager Feedage Grade B rated
Language: English
alexa  amazon  app  bit  body  circle  file  org svg  puzzle  req body  req  set  shy shy  shy  svg  things  track 
Rate this Feed
Rating: 3.5 starRating: 3.5 starRating: 3.5 starRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: as days pass by, by Stuart Langridge

as days pass by

scratched tallies on the prison wall

Last Build Date: Sat, 06 Jan 2018 12:42:00 +0000


Happy 45th Anniversary, mum and dad

Sat, 06 Jan 2018 12:42:00 +0000

You’re supposed to send cards to wish someone a happy anniversary. Well, today, my mum and dad have been married for 45 years (!), so I sent them some cards. Specifically, five playing cards, with weird symbols on them.


So, the first question is: what order should they be in? You might need to be Irish to get this next bit.

There is a card game in Ireland called Forty-Five. It’s basically Whist, or Trumps; you each play a card, and highest card wins, except that a trump card beats a non-trump. My grandad, my mum’s dad, was an absolute demon at it. You’d sit and play a few hands and then he’d say: you reneged! And you’d say, I did what? And he’d say: you should have played your Jack of Spades there. And you’d say: how the bloody hell do you know I have the Jack of Spades? And then he’d beat you nine hundred games to nil.

Anyway, what makes Forty-Five not be Whist is that the trumps are in a weird order. Imagine that, in this hand, trump suit has been chosen as Spades. The highest trump, the best card in the pack, is the Five of Spades. Then the Jack of Spades, then the Joker, then the Ace of Hearts (regardless of which suit is trump; always the A♥ as fourth trump), then the Ace of Spades and down the other trump suit cards in sequence (K♠, Q♠, etc).

And it is their forty-fifth wedding anniversary. (See what I did there?) So if we put the cards in order:


then that’s correct. But what about the weird symbols? Well, once you’ve got the cards laid out in order as above, you can look at them from the right-hand-side and the symbols spell a vertical message:



Also, I’m forty-one, so all you people who have suggested that my parents were unmarried (although by using a shorter word for it) are wrong.

Happy anniversary, mum and dad.

OwnTracks and a map

Thu, 28 Dec 2017 11:33:00 +0000

Every year we do a bit of a pub crawl in Birmingham between Christmas and New Year; a chance to get away from the turkey risotto, and hang out with people and talk about techie things after a few days away with family and so on. It’s all rather loosely organised — I tried putting exact times on every pub once and it didn’t work out very well. So this year, 2017, I wanted a map which showed where we were so people can come and find us — it’s a twelve-hour all-day-and-evening thing but nobody does the whole thing1 so the idea is that you can drop in at some point, have a couple of drinks, and then head off again. For that, you need to know where we all are. Clearly, the solution here is technology; I carry a device in my pocket2 which knows where I am and can display that on a map. There are a few services that do this, or used to — Google Latitude, FB messenger does it, Apple find-my-friends — but they’re all “only people with the Magic Software can see this”, and “you have to use our servers”, and that’s not very web-ish, is it? What I wanted was a thing which sat there in the background on my phone and reported my location to my server when I moved around, and didn’t eat battery. That wouldn’t be tricky to write but I bet there’s a load of annoying corner cases, which is why I was very glad to discover that OwnTracks have done it for me. You install their mobile app (for Android or iOS) and then configure it with the URL of your server and every now and again it reports your location by posting JSON to that URL saying what your location is. Only one word for that: magic darts. Exactly what I wanted. It’s a little tricky because of that “don’t use lots of battery” requirement. Apple heavily restrict background location sniffing, for lots of good reasons. If your app is the active app and the screen’s unlocked, it can read your location as often as it wants, but that’s impractical. If you want to get notified of location changes in the background on iOS then you only get told if you’ve moved more than 500 metres in less than five minutes3 which is fine if you’re on the motorway but less fine if you’re walking around town and won’t move that far. However, you can nominate certain locations as “waypoints” and then the app gets notified whenever it enters or leaves a waypoint, even if it’s in the background and set to “manual mode”. So, I added all the pubs we’re planning on going to as waypoints, which is a bit annoying to do manually but works fine. OwnTracks then posts my location to a tiny PHP file which just dumps it in a big JSON list. The #brumtechxmas 2017 map then reads that JSON file and plots the walk on the map (or it will do once we’re doing it; as I write this, the event isn’t until tomorrow, Friday 29th December, but I have tested it out). The map is an SVG, embedded in the page. This has the nice property that I can change it with CSS. In particular, the page looks at the list of locations we’ve been in and works out whether any of them were close enough to a pub on the map that we probably went in there… and then uses CSS to colour the pub we’re in green, and ones we’ve been in grey. So it’s dynamic! Nice and easy to find us wherever we are. If it works, which is a bit handwavy at this point. If you’re coming, see you tomorrow. If you’re not coming: you should come. :-) well, except me. And hero of the revolution Andy Yates. ↩and you do too ↩the OwnTracks docs explain this in more detail ↩[...]

I wrote a Web Component

Sun, 12 Nov 2017 11:31:00 +0000

I’ve been meaning to play with Web Components for a little while now. After I saw Ben Nadel create a Twitter tweet progress indicator with Angular and Lucas Leandro did the same with Vue I thought, here’s a chance to experiment. Web Components involve a whole bunch of different dovetailing specs; HTML imports, custom elements, shadow DOM, HTML templates. I didn’t want to have to use the HTML template and import stuff if I could avoid it, and pleasantly you actually don’t need it. Essentially, you can create a custom element named whatever-you-want and then just add content here elements to your page, and it all works. This is good. To define a new type of element, you use window.customElements.define('your-element-name', YourClass).1 YourClass is an ES2016 JavaScript class. 2 So, we start like this: window.customElements.define('twitter-circle-count', class extends HTMLElement { }); The class has a constructor method which sets everything up. In our case, we’re going to create an SVG with two circles: the “indicator” (which is the one that changes colour and fills in as you add characters), and the “track” (which is the one that’s always present and shows where the line of the circle goes). Then we shrink and grow the “indicator” circle by using Jake Archibald’s dash-offset technique. This is all perfectly expressed by Ben Nadel’s diagram, which I hope he doesn’t mind me borrowing because it’s great. So, we need to dynamically create an SVG. The SVG we want will look basically like this: Let’s set that SVG up in our element’s constructor: window.customElements.define('twitter-circle-count', class extends HTMLElement { constructor() { /* You must call super() first in the constructor. */ super(); /* Create the SVG. Note that we need createElementNS, not createElement */ var svg = document.createElementNS("", "svg"); svg.setAttribute("viewBox", "0 0 100 100"); svg.setAttribute("xmlns", ""); /* Create the track. Note createElementNS. Note also that "this" refers to this element, so we've got a reference to it for later. */ this.track = document.createElementNS("", "circle"); this.track.setAttribute("cx", "50"); this.track.setAttribute("cy", "50"); this.track.setAttribute("r", "45"); /* And create the indicator, by duplicating the track */ this.indicator = this.track.cloneNode(true); svg.appendChild(this.track); svg.appendChild(this.indicator); } }); Now we need to actually add that created SVG to the document. For that, we create a shadow root. This is basically a little separate HTML document, inside your element, which is isolated from the rest of the page. Styles set in the main page won’t apply to stuff in your component; styles set in your component won’t leak out to the rest of the page.3 This is easy with attachShadow, which returns you this shadow root, which you can then treat like a normal node: window.customElements.define('twitter-circle-count', class extends HTMLElement { constructor() { super(); var svg = document.createElementNS("", "svg"); svg.setAttribute("viewBox", "0 0 100 100"); svg.setAttribute("xmlns", ""); this.track = document.createElementNS("", "circle"); this.track.setAttribute("cx", "50"); this.track.setAttribute("cy", "50"); this.track.setAttribute("r", "45"); this.indicator = this.track.cloneNode(true); svg.appendChild(this.track); svg.appendChild(this.indicator); let shadowRoot = this.attachSha[...]

Telegram notifications for Jenkins builds

Fri, 27 Oct 2017 10:53:00 +0100

It’s nice to get updates from your CI system when things build. It’s even nicer to do it without having to run any servers to do it. Here’s how I send build notifications to a Telegram bot from Jenkins. Basically, Jenkins knows how to hit a webhook for every stage of the build, and Integram run a Telegram bot which knows how to respond to webhooks. All you need is a little bit of glue code to convert stuff Jenkins sends into stuff Integram receives, and you can put that glue code on any one of fifteen serverless systems. I used Deploy the following code there, being sure to update the Integram URL in it to be yours: var express = require('express') var bodyParser = require('body-parser') var request = require('request') var Webtask; try { Webtask = require('webtask-tools'); } catch(e) {} var app = express() app.use(bodyParser.json())'*', function (req, res) { if (req.body && && && { var status =; if ( == "STARTED") { status = "STARTED"; } if ( == "FINALIZED") { // don't care about FINALIZED because we get COMPLETED and that's enough res.send("ok"); return; } console.log("Received correct-looking JSON to webhook"); var output = {"text": "Jenkins\nBuild of _" + + "_ status *" + status + "* " + "at http://YOUR-JENKINS-URL/" +}; request({ uri: "", method: "POST", json: output }, function(err) { if (err) { console.log("Messaging Telegram bot failed", err); res.send("failed"); } else { console.log("Messaging Telegram bot succeeded"); res.send("ok"); } }) } else { console.log("Input to webhook was invalid", req.body); res.send("Input was invalid: " + req.body.toString()); } }) if (Webtask) { module.exports = Webtask.fromExpress(app); } else { app.listen(4569); console.log("Listening on port 4569"); } Then, put the webtask URL into Jenkins as a webhook: And invite the Integram bot to your Telegram channel (instructions at And you’re done. Every time Jenkins does anything, it sends a web request to your webtask, the webtask sends a message to the Integram bot, the Integram bot repeats it to you, and you get a notification. No extra servers required. I love the internet. [...]

Charles Paget Wade and the Underthing

Sun, 15 Oct 2017 23:49:00 +0100

I got to spend a few days with Andy and his wife Gaby and their exciting new dog, Iwa. I don’t get to see them as often as I should, but since they’ve now moved rather closer to Castle Langridge we’re going to correct that. And since they’re in the Cotswolds I got to peer at a whole bunch of things. Mostly things built of yellow stone, admittedly. It is a source of never-ending pleasure that despite twenty-three years of conversation we still never run out of things to talk about. There is almost nothing more delightful than spending an afternoon over a pint arguing about what technological innovation you’d take back to Elizabethan England. (This is a harder question than you’d think. Sure, you can take your iPhone back and a solar charger, and it’d be an incredibly powerful computer, but what would they use it for? They can do all the maths that they need; it’s just slower. Maybe you’d build a dynamo and gift them electricity, but where would you get the magnets from? Imagine this interspersed with excellent beer from the Volunteer and you have a flavour of it.) There were also some Rollright Stones, as guided by Julian Cope’s finest-guidebook-ever The Modern Antiquarian. But that’s not the thing. The thing is Snowshill Manor. There was a bloke and his name was Charles Paget Wade. Did some painting (at which he was not half bad), did some architecting (also not bad), wrote some poetry. And also inherited a dumper truck full of money by virtue of his family’s sugar plantations in the West Indies. This money he used to assemble an exceedingly diverse collection of Stuff, which you can now go and see by looking around Snowshill. What’s fascinating about this is that he didn’t just amass the Stuff into a big pile and then donate the house to the National Trust as a museum to hold it. Every room in the house was individually curated by him; this room for these objects, that room for those, what he called “an attractive set of rooms pictorially”. There’s some rhyme and some reason — one of the upstairs rooms is full of clanking, rigid, iron bicycles, and another full of suits of samurai armour — but mostly they’re things he just felt fitted together somehow. He’s like Auri from the Kingkiller Chronicles; this room cries out for this thing to be in it. (If you’ve read the first two Kingkiller books but haven’t read The Slow Regard of Silent Things, go and read it and know more of Auri than you currently do.) There’s a room with a few swords, and a clock that doesn’t work, and a folding table, and a box with an enormously ornate lock and a set of lawn bowls, and a cabinet containing a set of spectacles and a picture of his grandmother and a ball carved from ivory inside which is a second ball carved from the same piece of ivory inside which is yet another ball. The rhyme and the reason were all in his head, I think. I like to imagine that sometimes he’d wake up in his strange bedroom with its huge carved crucifix at four in the morning and scurry into the house to carefully carry a blue Japanese vase from the Meridian Room into Zenity and then sit back, quietly satisfied that the cosmic balance was somehow improved. Or to study a lacquered cabinet for an hour and a half and then tentatively shift it an inch to the left, so it sits there just so. So it’s right. I don’t know if the order, the placing, the detail of the collection actually speaks as loudly to anyone as it spoke to him, and it doesn’t matter. You could spend the rest of your life hearing the stories about everything there and never get off the ground floor. Take that room of samurai armour, for example. One of the remarkable things about the collection (there are so many remarkable things about the collection) is that rather a lot of it is Oriental — Japanese or Chi[...]

The Niamh prime

Sun, 10 Sep 2017 20:32:00 +0100

A bit of maths-y fiddling around on a Sunday afternoon. Fascinating video on the Trinity Hall prime at Numberphile: width="560" height="315" src="" frameborder="0" allowfullscreen> Apparently, Professor James McKee found a prime number which, when written out as ASCII art, looks like the crest of Trinity Hall college. Jack Hodkinson at Cambridge then searched for and found a prime which looks like a picture of Corpus Christi college (via Futility Closet). That seems like a cool idea. So, with a bit of help from aalib in JavaScript and the Miller-Rabin primality test, plus a bit of scaling images up and down in Gimp, I found this 2,850-digit prime: 777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,577,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­777,777,777,­752,385,356,­867,777,777,­777,777,777,­777,777,777,­777,777,777,­775,352,235,­666,688,668,­667,777,777,­777,777,777,­777,777,777,­777,776,765,­555,556,666,­856,868,667,­777,777,777,­777,777,777,­777,777,777,­222,335,666,­666,866,686,­666,665,777,­777,777,777,­777,777,777,­777,355,336,­358,866,556,­666,655,665,­655,777,777,­777,777,777,­777,777,733,­552,236,666,­666,655,665,­665,666,555,­777,777,777,­777,777,777,­777,276,265,­666,666,656,­655,555,555,­555,533,777,­777,777,777,­777,777,253,­252,566,666,­665,555,556,­555,555,565,­557,777,777,­777,777,777,­725,222,236,­666,565,555,­555,556,555,­535,355,237,­777,777,777,­777,772,266,­725,366,535,­555,355,555,­555,553,553,­533,577,777,­777,777,777,­272,637,356,­655,555,555,­353,535,556,­655,355,332,­277,777,777,­777,772,235,­775,355,665,­553,355,353,­535,533,555,­555,223,777,­777,777,777,­322,222,255,­555,556,353,­555,355,336,­355,653,533,­537,777,777,­777,772,222,­225,555,565,­555,355,335,­355,356,555,­655,353,237,­777,777,777,­772,272,355,­553,553,355,­535,353,365,­355,355,553,­523,577,777,­777,777,332,­333,566,333,­553,555,533,­355,355,555,­555,353,555,­677,777,777,­777,332,355,­555,555,555,­555,555,553,­555,535,555,­666,556,777,­777,777,775,­533,355,535,­355,553,565,­535,353,655,­655,555,565,­557,777,777,­777,756,533,­555,533,335,­353,566,655,­353,566,535,­656,655,577,­777,777,777,­565,353,535,­535,553,335,­566,666,555,­666,568,566,­665,777,777,­777,775,633,­535,555,555,­555,535,565,­556,555,666,­566,666,677,­777,777,777,­758,333,333,­355,555,656,­556,565,866,­666,866,658,­667,777,777,­777,777,582,­233,333,333,­355,565,555,­566,666,666,­868,666,677,­777,777,777,­775,822,333,­333,333,535,­555,556,666,­666,668,688,­586,777,777,­777,777,736,­355,333,333,­355,556,555,­636,666,686,­688,888,557,­777,777,777,­777,565,555,­555,333,555,­566,666,565,­686,666,886,­886,777,777,­777,777,776,­656,888,853,­335,556,686,­556,666,666,­868,886,887,­777,777,777,­777,775,356,­368,532,355,­555,688,666,­866,666,668,­668,877,777,­777,777,777,­732,233,553,­223,323,335,­533,556,666,­686,686,686,­777,777,777,­777,777,323,­333,332,222,­233,332,233,­568,665,666,­656,337,777,­777,777,777,­773,233,333,­322,222,223,­222,223,566,­556,655,533,­777,777,777,­777,777,722,­333,232,2[...]

Double Oh Seven

Thu, 24 Aug 2017 23:22:00 +0100

A long time ago, when I was young and you were even younger, gentle reader, we had Acorn Archimedes computers at school. Back when there was more than one kind of computer. The Arc was great. There will be those who liked the Amiga, or the Atari ST, but those were basically small toy computers for children. Yes. Long live the Archimedes. Anyway, for no reason I can discern, this evening I remembered a thing on the Arc; a “sound demo”. It was just a looping sample, presented as an app; you ran the app and it played the sample, over and over. It was a short little composition — a few seconds, only — made up of different snippets taken from Bond films over a bit of music. This may not seem exciting to you, with your instantly streamable 4K video and stuff, but it was pretty goshdarn exciting back then. Get off my lawn. I thought to myself: I wonder if that’s still around? A bit of googling led me to an old archive of RISC OS software and there it was: "007.spk: Sound-demo". A download later, and then… what format is it in? file 007.spk says it’s “data”, which is not helpful, because that’s libmagic‘s codename for “no idea what this is, dude”. What’s an spk file? More googling — no, it’s not an installation package for Synology NASes, no it’s not a design for an electronics board, and then someone mentioned SparkPlug. In those days there were many, many, many compression formats. It’s not like now where there are basically ZIP files and occasionally RAR and tar.gz and that’s it. There was ZOO, LHA, ARC, loads of them. Zip files were the thing that PKZIP produced, and that was shareware. Loads of them. And on the Archimedes, everyone used SparkPlug. Actually, it was SparkFS, by David Pilling; you needed that (which cost money) to make Spark archives. But SparkPlug was free, and just did decompression. Unsurprisingly, that never got ported to other platforms, and I was mildly disappointed to discover that my desktop didn’t know how to open it without being told. But some more googling around led to nspark, a “dearchiver for RISC OS archives”. You have to compile it, but by this time I had the bit between my teeth — digital preservation is everybody’s responsibility! — and the COMPILING file says that that’s literally one command, make -f makefile.gcc. Run that and you get an nspark binary, and nspark 007.spk unpacks it! I have a folder named !James. $ ls !James MemAlloc !Run !RUNIMAGE !RunImage2 !Sprites Arc software came in a folder; if that folder was called !something, then it got treated like a single file you could drag around and run. This is the idea that the Mac used, later, for its application bundles (and I wish Linux software worked that way, but that ship’s sailed). Anyway, you could click the app and it would actually execute a file named !Run, inside the bundle. That file was a sort of tiny script which would set things up and then normally execute !RunImage, which was your actual compiled program, and indeed that’s what this one does too. So, !RunImage was the binary… and !RunImage2 was 200K, by far the largest file in the bundle, so the sound sample had to be in there. But… what format is it? file again claimed that it was “data”, but I thought: it’s a sound sample, right? I bet it’s just raw sound data. Can it be played? aplay !James/!RunImage2 gives a burst of meaningless noise. Hrm. Are there formats for these things? Read the help… ah, yes, there are. And aplay -f S16_LE plays it understandably, hooray! But that just plays… how do I make this into an actual modern file? Aha, again. Audacity allows importing raw audio. So, we import it, as a 16-bit set of samples, at sample rate 7600 (8000 sounded a tiny bit [...]

Birmingham tech events in the Alexa Flash Briefing

Wed, 05 Jul 2017 09:31:00 +0100

I’ve got an Amazon Echo Dot, as previously mentioned. One of the things it does is the “Flash Briefing”: basically, a personalised news report. You choose “feeds” — places for it to get news — and then “Alexa, what’s new?” will read them out. I’ve got the BBC and the Birmingham weather report enabled. But I’d also like to know what’s going on in town; specifically, the Birmingham.IO calendar lists the tech events in the city and I wanted my Flash Briefing to tell me about them.

Well, now it does, handily.

To add these to your Flash Briefing, search for “Birmingham.IO” in the Skills section of the Alexa app, or enable this skill in the online Alexa Skills Store.

That was actually quite fun to do! There are some details of how it works in the source. Thank you to for giving me a place to deploy it which is HTTPS (as Alexa requires) and not Let’s Encrypt (which, moronically, Alexa doesn’t like). Questions and suggestions for improvement should be directed to the forum post. I submitted the skill and it was reviewed and accepted 24 hours later, which is nice. And there’s a promotion going on right now in the UK where if you submit a new skill during July 2017 then you get an Echo Dot, so maybe I’ll have two! Which is also pretty cool. So, what’s on tonight, Alexa?

The Fleb 100K Special

Mon, 12 Jun 2017 00:53:00 +0100

Fleb reviews mechanical puzzles on YouTube. I subscribe to his puzzle review channel and it’s jolly interesting. Today, in celebration of his hitting 100,000 subscribers1, he published a video reviewing the Mini Puzzle Box (sold out, as I write this) and, more intriguingly, a link to a “100k special”, a puzzle produced by Fleb for viewers to look at. It’s at and it presents the first in a series of four puzzles, for channel viewers. These are “Puzzle Hunt”-style puzzles; that is, the answer to the puzzle is a word or phrase. Here, I’ll show you how I solved each. Be warned: if you’re looking to solve these yourself, stop reading now. Really. The Opening Puzzle 1, at, is entitled “The Opening” and consists of a number of clues about puzzles. Each of these clues indicates a puzzle which has been reviewed on Fleb’s channel, but with a single letter alteration. The bracketed letters indicate the length of the puzzle name. So, to make a start on solving this, list all the puzzles reviewed on the channel with the length of the puzzle names, and that’ll help. For example, “This puzzle was about the pigs owned by one of the United States’ greatest presidents. I think it was called the (7 4) puzzle!” suggests The Lincoln Logs Puzzle because its name is of length 7 and 4 (“Lincoln Logs”). But the clue mentions pigs, and there are no pigs involved? What gives? Well, this is the next step; each puzzle name has a letter changed in it to better match the clue. So LINCOLN LOGS becomes LINCOLN HOGS, and now it’s about the pigs owned by an American President… and the changed letter is “H”. That’s important. The clues in order have these answers: …the last moment of a punch (4 3)CAST BOX WIT’S ENDCASH BOX3 HIT’S END4 …a small chirping insect which is located directly to the right of the solver (4 7)CAST CRICKETEAST CRICKET …the strange hybrid of a young man and a buzzing insect (3 3)BEE BOXBEE BOY …a four sided geometric shape embedded in something found on a piece of clothing or a mattress (6 2 3 3)SQUARE IN THE BAGSQUARE IN THE TAG …the pigs owned by one of the United States’ greatest presidents (7 4)LINCOLN LOGSLINCOLN HOGS …a rectangular tile and something that connects two points (5 & 4)PANEL & LINGPANEL & LINE …a score of payments for monthly living accommodations (2 4 9)20 CENT PUZZLEBOX20 RENT PUZZLEBOX …a spiral (4)GYROGYRE …a brave machine that tells you how long you have until you have to move your car. It was near the sea (4 5 7 5)GOLD COAST PARKING METERBOLD COAST PARKING METER …the final, cute, regular three dimensional figure with all edges the same side (4 4)CAST CUBYLAST CUBY …a light source that was run on a black rock (4 2 4)LUMP OF COALLAMP OF COAL …a man who checks gas gauges (9) METERMASS??5 (N) …small breads designed for small cats (6 8)BITTEN BISCUITSKITTEN BISCUITS Take all the changed letters in order and you get HEY THERE BLANK6. And the puzzle’s named “The Opening”, and how does Fleb open every video? With “Hey there, puzzlers!”. So BLANK is PUZZLERS, and our link to the second puzzle of the 100K special must therefore be The Spoiler Break This second puzzle has a bunch of pictures where each picture has an associated phrase, and then separately a list of clues for “spoilers” from film and TV history. Our job is to match up the phrases with the spoilers, and that will give us the pictures in order. Each picture is a 7×2 grid in which one or more coloured squares is placed: one example (the first example) looks roughly like this: So first, the list of spoiler clues and their answers7: He killed Dumbledore: SNAPE (from the Harry Potter series) He was dead the whole time: BRUC[...]

The internet of unreliable and broken things

Sun, 28 May 2017 13:49:00 +0100

or, 24 hours with Alexa. So I got myself an Amazon Echo Dot. Because I got an Amazon voucher1 and then asked The High Council On Interesting Electronic Stuff what I should get with it and they said: get an Echo Dot, come on in, the water’s lovely. I have had reservations about this sort of thing in the past, I must admit.2 But I’m semi-convinced by the idea that nothing gets sent out without the wake word being heard. I’m interested in chat interfaces; that’s why I wrote No UI is Some UI, and why I’ve delivered The UX of Text talk at a couple of conferences.3 And I’m sick of waiting for my Mycroft and also not very convinced that it’ll actually be good; maybe it will, fingers crossed, &c. So, the little box that could arrived. Went through setup, which was terribly confusing. It shouldn’t have been: you plug in the Dot and it glows for a bit and then says, in a calm and unhurried voice, “now use the Amazon Alexa app to set up your Dot”. And you open the Alexa app and… the Dot is already in there. I think this is Amazon trying to be terribly clever and inserting the Dot I bought into my account before it actually arrives in the post. Sadly for them this turns out to be a spectacularly confusing idea, because… what do I do now? Do I say “set up a new device”? Or do I go into the existing device that’s listed in the app and then… what? There’s no obvious setup button in the app for this Dot that I already own. (There is “set up wifi”… is that what I’m meant to do?) I think the Alexa app was originally written so you’d use it to “set up a new device”, and then some Amazon bright spark said “haha with our ultimate control over shipping and stuff we can record which Echo a punter has bought and put it in the app!” without stopping to consider that this completely breaks the first user experience. Well done, Amazon bright spark (golf clap). Anyway, once I’d worked that out, I couldn’t get it to set up. Tch, eh? The way setup seems to happen is, the Dot broadcasts its own wifi access point named Amazon-1AB or something; the app disconnects you from your normal wifi and then connects you to that network, and does whatever handoff is required to teach the Dot about your house wifi. Except that this wasn’t working; my phone would connect to the Amazon-9YZ network and then… spinner, forever. After a good twenty minutes of faffing around with this, I installed the Alexa app on my iPhone instead and used that and it worked first time. No love, Amazon. Especially since most people don’t have two phones.4 OK. Now it’s set up. Alexa, what's the weather correctly says “Currently in Birmingham it’s 24 degrees and sunny”5, so things work. So I try the next thing: Alexa, play the latest Madness album6, and Alexa, in her calm, unhurried voice, offers to play me samples of the songs and then shills “Amazon Music Unlimited” at me. Haven’t I already got Prime? Oh, I have, but Prime Music it turns out doesn’t actually have much music in it. You gotta pay extra for that. Bah humbug, etc. Fine, let’s do something generic. Alexa, play some jazz. Nope: “I can’t find any tracks matching ‘jazz’”, she says, calmly and unhurriedly. What? None? The little pamphlet even suggests that I say this! Grrrr! Off to, which redirects me to and then pops up a big whiny banner saying “your music account thinks you’re in the US! But your Amazon account thinks you’re in the UK! That can’t be right! Click on this big button to fix it!” and then clicking on the button prints an error. So, y’know, cheers for that. I suspect that maybe this cross-cultural confusion — perhaps I’m somewhere midway between the two? In the Azores maybe? — is why I can’t search for music (there is no[...]