Weeknotes 13
Realer problems exist
-
The baking will continue until morale improves. I now have a banneton so can make loaves that look very slightly fancier than before.
Evidently I still have a lot to learn about shaping and scoring.
In the past I’ve struggled to find ways to get through two loaves while they were still fresh, but it turns out that sandwiches and toast make good lockdown fare.
-
I enjoyed watching Troy Baker and Nolan North play the beginning of The Last of Us. I was surprised that North had not only never played it but also knew nothing about the dramatic plot development from the first few minutes of the game. In fact it’s weird that he generally seems really unfamiliar with the grammar of video games given that it’s the medium he mostly works in.
Regardless, it’s heartwarming to see Troy Baker and Hana Hayes getting emotional together through the opening sequence, especially contrasted with North’s blank shock.
-
This week The Last of Us beat God of War in BAFTA’s Twitter poll for the best Best Game, which makes sense because presumably many of the people voting will have played God of War.
-
In less good news, Sony delayed The Last of Us Part II “until further notice”, presumably to avoid weak sales of physical copies while all the shops are still closed.
I’m a bit sad about this. It’s only a video game — current government guidance mandates that all remarks about entertainment be prefaced with an earnest acknowledgement that realer problems exist — but knowing that something special was due in May was keeping me cheerful and giving me something to look forward to.
What should I get excited about now? Adequate food?
-
As teased in last week’s letter from HMRC, I did in fact get a cheque from them in the post. I couldn’t really afford to either wait for or risk losing this money (e.g. by posting it to Monzo) so I reluctantly visited a bank branch. I was a bit nervous about being outside but in the end it was fine and I didn’t see another human face the whole time.
Just in case being posted a cheque during a global health crisis wasn’t annoying enough, HMRC thoughtfully sprung for the indignity of scolding me with “PLEASE PROVIDE BANK DETAILS WHEN SUBMITTING FUTURE RETURNS OR REPAYMENT CLAIMS. BACS PAYMENTS ARE QUICKER AND MORE SECURE” in the accompanying letter, despite the claim form having no way of doing that.
-
Like you, probably, I’m now having way more video calls than usual. One of the attendant difficulties is that my desk is in a room that isn’t very well-lit, meaning I traditionally dial in as the silhouette of a grim, featureless spectre.
This week I bought an Elgato key light to take the edge off. It’s a good product: light comes out. I was impressed that I only had to plug in the power and share the wifi password over (I think?) Bluetooth LE with WAC, and then I could immediately control it from apps on my computer and phone without any setup or authentication faff. How does that work? Let’s find out.
I nosed around the multicast DNS-SD service types being advertised on my local network:
$ dns-sd -B _services._dns-sd._udp Browsing for _services._dns-sd._udp DATE: ---Sun 05 Apr 2020--- 17:30:57.537 ...STARTING... Timestamp A/R Flags if Domain Service Type Instance Name ⋮ 17:30:57.537 Add 3 6 . _tcp.local. _airplay 17:30:57.537 Add 3 6 . _tcp.local. _elg 17:30:57.537 Add 3 6 . _tcp.local. _sonos ⋮
There’s a TCP one called
_elg
which sounds like it might be Elgato-related:$ dns-sd -B _elg._tcp Browsing for _elg._tcp DATE: ---Sun 05 Apr 2020--- 17:31:08.584 ...STARTING... Timestamp A/R Flags if Domain Service Type Instance Name 17:31:08.584 Add 2 6 local. _elg._tcp. Elgato Key Light 284E
Yes, there it is. That’s easy enough to turn into a hostname and port…
$ dns-sd -L 'Elgato Key Light 284E' _elg._tcp Lookup Elgato Key Light 284E._elg._tcp.local DATE: ---Sun 05 Apr 2020--- 17:31:18.348 ...STARTING... 17:31:18.573 Elgato\032Key\032Light\032284E._elg._tcp.local. can be reached at elgato-key-light-284e.local.:9123 (interface 6) mf=Elgato dt=53 id=E7:10:B5:20:72:13 md=Elgato\ Key\ Light\ 20GAK9901 pv=1.0
…and, luckily, there’s a little HTTP server there:
$ curl --head --request GET http://elgato-key-light-284e.local:9123 HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Content-Length: 86698 Connection: keep-alive
This is serving a web UI for providing a wifi password (presumably for onboarding non-WAC clients) which isn’t directly useful for controlling the light, but there are some appealing strings in the JavaScript:
$ curl --silent http://elgato-key-light-284e.local:9123 | grep 'var url' var url = "/elgato/wifi-info"; var url = "/elgato/accessory-info";
The second of those paths returns some JSON…
$ curl http://elgato-key-light-284e.local:9123/elgato/accessory-info {"productName":"Elgato Key Light","hardwareBoardType":53,"firmwareBuildNumber":192,"firmwareVersion":"1.0.3","serialNumber":"…","displayName":"","features":["lights"]}
…and, er, it’s not exactly HATEOAS, but apparently
"lights"
is a relative path:$ curl http://elgato-key-light-284e.local:9123/elgato/lights {"numberOfLights":1,"lights":[{"on":1,"brightness":40,"temperature":186}]}
Brilliantly you can
PUT
some JSON here and it’ll merge it into the current state, e.g. turn the light off:$ curl --request PUT --data '{"lights":[{"on":0}]}' http://elgato-key-light-284e.local:9123/elgato/lights {"numberOfLights":1,"lights":[{"on":0,"brightness":40,"temperature":186}]}
This design makes me happy. It’s not interesting but it is true.
-
Nat made tequila sours from Felix’s newsletter and they were fantastic.