A quick tutorial in how to recover 3D information from your favourite 3D movies. In this example, we'll be using Star Wars - The Last Jedi. tl;dr? Here's the end result (this video is silent): https://shkspr.mobi/blog/wp-content/uploads/2018/04/walker-text.mp4 Grab the code on GitHub. Let's go! Take a screenshot of your favourite scene. Something with a clearly defined foreground and…
Continue reading →
I promise you this is a true tale. Only the names have been changed... Many moons ago, when I was very young - and you were even younger... I was working for a Very Large Company. Our team needed some help building an app and a back-end service. We could have built this ourselves - but we were stretched a bit thin with other work. So we found a great technology partner. They'd helped us in the …
Continue reading →
If you've been online for any length of time, you'll have come across this phenomenon. A story is shared which is obviously humorous. Inevitably, some people treat it seriously. I remember being a child and reading the satirical magazine "Private Eye" - I was young and couldn't easily differentiate between the news reporting and the humour. That lead to nothing more than internal…
Continue reading →
A short meander through some of the more obscure miscellany within Unicode. Languages hang around far longer than there are native speakers, and symbols get reused and repurposed (🍆). Here are some of the delightfully old-fashioned symbols hidden in your thoroughly modern smartphone. Tapes Long before solid-state drives, we used to record data on long thin strips of magnetic tape. 🖭 📼 I'm sure…
Continue reading →
Update for 2019! Twitter have changed how they compress images. Some of the techniques in this blog post may be out of date. Let's talk image compression! Services like Twitter will often apply aggressive levels of compression in order to reduce their storage space and decrease download times. This can have negative consequences for usability and image quality. Here's an example - this detail…
Continue reading →
I went to an event a few weeks ago where some leading BlockChain organisations were showing off the power of Distributed Ledgers and how they will transform society. Not one of them mentioned users. There was talk of investors, stakeholders, corporations, smart-contract-backed entities. But no users. No real people who have to interact with their services. That's par for the course at this…
Continue reading →
Back when I used to help people design mobile phone apps, I would talk about the platonic ideal of an app. It's quite simple and effective. You press the button in the middle of your screen - and it makes everything better! You push that button and a taxi arrives, or a pizza is delivered, or your photos are backed up, or you fall in love, or you learn a language. Life is rarely that simple…
Continue reading →
As ever, notes to myself. This is a method to take a .wav and .cue and transform it into individual files. In this case, .opus. Transform to .flac FLAC is a good intermediary file format, especially for surround sound files. avconv -i file.wav out.flac Transform to .opus An optional step if you want smaller files. Maximum quality for 6 channel audio. opusenc --bitrate 4096 out.flac…
Continue reading →
I'm lucky enough to get invited to speak at a variety of conferences around the world. After accepting a speaking invitation, and checking I'm not on an all-male line-up, I usually make one of the following requests to the organisers. Thanks for inviting me. Can you let me know if the venue is wheelchair accessible? So excited to be there. What are the crèche facilities going to be? Looking …
Continue reading →
For my contact page, I wanted a generic calendar icon to let people view my diary. Calendar icons are almost always a skeuomorph of a paper calendar, but I wondered if I could make it slightly more useful by creating a dynamic icon. Here it is, an SVG calendar which always display's today's date: The background image is derived from the Twitter TweMoji Calendar icon - CC-BY. Text support in …
Continue reading →
(This isn't really a security issue, although I've disclosed it to the Twitter team.) "Fuzzing" is a computer science term which means "sending weird data into a program and seeing what happens." It's a useful way to see how your code can break in new and unexpected ways. It's particularly good at showing what a website's search engine does when it is confused. For example, here's a fairly…
Continue reading →
Spotted in London, yesterday. A large, Microsoft Windows-powered advertising hoarding has been hijacked. It's not uncommon to see broken-down Windows displays - I run https://windowsisbroken.tumblr.com/ - which is dedicated to pointing and laughing at such mistakes. But this is the first time I've seen a display repurposed for profit! It appears to be running NiceHash Miner Legacy. A…
Continue reading →