James Stanley


The writing is bad and the stories are not very interesting.

Tagged: all | 3dprinting | electronics | bitcoin | software | smsprivacy | puzzle | chess | keyboard | lawnmower | cryptography | pikon | science | tor | ipfs | steganography | rc2014 | cnc | ricochet

First steps into CNC machining »

Mon 5 October 2020

I have bought a "6040" CNC router, and have been getting to grips with how to use it. This journey started with converting the machine to Grbl because I'm not interested in running proprietary software. Once Grbl was all working correctly, I clamped a small piece of plywood to the bed, fitted a 2mm end mill and made my first cuts, manually "jogging" the tool position using the buttons in the UGS interface. Read more »

How to convert a 6040 CNC machine to Grbl »

Wed 30 September 2020

The 6040 CNC machine comes in 2 flavours: parallel port and USB. I don't have a parallel port on the laptop I was intending to operate it with, so I chose the USB option. This is possibly a "mistake" as the USB option uses a proprietary USB interface board which is only compatible with Mach3 and therefore only compatible with Windows. But now that I've got it set up with Grbl, I think I prefer this system to what I would have with a parallel port controlled by LinuxCNC. Read more »

I made an optical inline fuel sensor »

Mon 28 September 2020

We could automatically detect whether the racing mower is about to run out of fuel by shining a light through a section of clear fuel hose with a sensor on the other side. The idea is that when the fuel has disappeared the received light intensity will change, and we can detect this with a microcontroller. We can then turn on an LED on the dashboard to alert the driver so that he makes a pit stop instead of spluttering to a halt at the opposite end of the track. Read more »

Miscellaneous thoughts on making stuff »

Tue 15 September 2020

This is just a selection of points related to manufacturing that are grouped into one post for no other reason than that I don't have enough on each one individually, but wanted to write about them before I forget. Read more »

Progress on my Godot racing game for Oculus Quest »

Wed 19 August 2020

I've made some decent progress on the Oculus Quest racing game. I think it is already the most realistic driving simulator for the Quest, but that's not a very high bar as there are not any real competitors. Read more »

How to import Assetto Corsa race tracks into Godot »

Thu 13 August 2020

Assetto Corsa is a car racing game with emphasis on realism. It's basically what I'm trying to do for the Oculus Quest, except it doesn't run on the Oculus Quest. What it does have is a thriving community of freely-available cars and tracks on assettocorsa.club. It is these free tracks that we'll be looking at importing into Godot. Read more »

I made a mechanical keyboard with 3d-printed switches »

Fri 7 August 2020

The keyboard is done! This is basically the result of what I've been working on for the past 2 months, which has involved 3 iterations of testing machines, over 100 printed switches, and now finally a keyboard that I can type on. Unfortunately it is not a very good keyboard, but you can't win them all. Read more »

I'm working on a VR car racing game for Oculus Quest »

Sun 26 July 2020

I've been playing a bit of Mini Motor Racing X on the Oculus Quest recently. It's good. The experience of driving a car in virtual reality is amazing, but this particular game is too much "game" and not enough "simulator" for my taste. I've always preferred Gran Turismo to Mario Kart, for example. Unfortunately, the Quest is quite an unusual platform, and none of the popular racing games are available for it. I recently discovered that the open source game engine Godot has Oculus Quest support, so I'd like to make a basic car racing simulator for Oculus Quest. Read more »

Another new switch tester, test results, and thoughts on the keyboard design »

Wed 15 July 2020

Just an update on the keyboard switch project. I've built the new 10-way testing machine, ran a (somewhat inconclusive) test to work out the best thickness for the leaf springs, and thought a bit on how I'm going to design the actual keyboard. Read more »

Secrets of the Hanayama Cast Marble »

Wed 8 July 2020

Cast Marble is a mechanical puzzle sold by Hanayama. It was invented by Bram Cohen (who you may recognise as the inventor of BitTorrent) and Oskar van Deventer, who has an interesting YouTube channel where he regularly posts new puzzle designs. Read more »

I made a macro keypad with 3d-printed switches »

Mon 6 July 2020

Latest on the 3d-printed keyboard switch project: I've reached a switch design that I think is probably reliable enough, and I've put 3 of them together to form a macro keypad just to see how it all goes together before I commit to a full keyboard. I don't have a number for how many presses the switch lasts, other than to say that the motor on the testing machine stopped working before the switch did (after about 250,000 presses). Read more »

Making a game with 24a2 »

Sun 28 June 2020

24a2 is an "ultra-minimalist" game engine. It was posted on Hacker News this morning and I found it so interesting that I decided to take a day off from breaking keyboard switches and make a tiny game instead. Read more »

Keyboard switch progress & test results »

Thu 25 June 2020

Status on the 3d-printable keyboard switch is that the latest test managed 110,000 presses before failure, on the spinning cam tester. Read more »

A better automatic keyboard switch tester »

Sat 20 June 2020

Since breaking the last switch, I re-printed the same design in PETG to see if it would last any longer, and it did! It reached over 100,000 presses under the gentle testing regime without showing any failures, a big improvement over failing at 13,907. Read more »

I broke my first 3D-printed keyboard switch »

Tue 16 June 2020

Overnight I did my first test of a homemade keyboard switch on the automatic tester. The spring in the switch broke after 13907 presses. That makes Martin our competition winner, with a guess of 10000. Read more »

Automatic keyboard switch tester »

Sun 14 June 2020

I'm working on designing an open source 3D-printable keyboard switch at the moment, with a view to eventually making my own mechanical keyboard using minimal off-the-shelf components (just an Arduino, wire, and diodes, with homemade parts for switches, keycaps, and case). I have not made a keyboard yet, but yesterday I made a device to test how many presses a switch can withstand before it stops working. Read more »

Thoughts on laser level design »

Mon 1 June 2020

A laser level is a device that projects a laser beam on to a wall or similar, to help you position things level to the ground. Read more »

How to run a Cloud Desktop on any VPS, with SPICE »

Thu 21 May 2020

SPICE is the graphical protocol used by QEMU since 2013. If you've started a VM with QEMU, including with virt-manager or Gnome Boxes, then chances are you have used SPICE. It seems to be the same concept as VNC but more efficient. Read more »

An easy way to package Perl programs »

Sat 16 May 2020

The right way to package Perl programs is with RPM, or DEB, or on CPAN with ExtUtils::MakeMaker or similar. But this is a hassle. Read more »

Zero-downtime Docker container deployments with nginx »

Thu 14 May 2020

Docker doesn't let you reassign port mappings while containers are running. That means if you want to deploy a new version of your application, you need to stop the old one and then start the new one, and there is a brief period of downtime in between. I wrote Ngindock to solve this problem. Read more »

Autopatzer: my automatic chess board »

Wed 6 May 2020

My automatic chess board (the "Autopatzer") has reached the point where last night I was able to play its first online game against a real person using lichess's Boards API. Read more »

YubiKey SSH authentication: the easy way »

Fri 1 May 2020

I bought a YubiKey quite a while ago, with the intention of using it for SSH authentication, but never got to the point of actually using it because I found it too hard to set up. Today I had another go and managed to get it working using the "PIV" mode. Read more »

Automatic chess board design »

Sat 14 March 2020

Lichess has recently released a Boards API, allowing anybody to interface a physical chess board with lichess in order to play online games using an automatic board. I previously thought about implementing my Strange Chess Clock using an automatic board, but never got round to it. With lichess now supporting online play with an automatic board, it's hard to justify not making one! Read more »

My first combat robot tournament »

Mon 3 February 2020

At the weekend, I took Wedge of Glory to an antweight combat robot tournament in Hinckley called Ant Freeze 7. Read more »

I built an antweight combat robot »

Mon 27 January 2020

If you've ever seen Robot Wars or BattleBots, you'll know what a combat robot is. An antweight combat robot is the same concept, except it has to weigh no more than 150g and fit inside a 4-inch cube. I've built one, called "Wedge of Glory", and have my first competition this weekend! Read more »

My DIY Cryptosteel Capsule »

Mon 20 January 2020

Bitcoin wallets give you a mnemonic seed to write down and keep safe. This is usually 12 to 24 words from the BIP39 word list. But if you write it on paper, it is easily damaged by flood or fire. An improvement is "Cryptosteel"-type devices, which allow you to record the mnemonic seed in metal, such that it is recoverable in the event of flood or fire. I built one myself. Read more »

Chassis Design with Finite Element Analysis in FreeCAD »

Tue 7 January 2020

Finite Element Analysis is a way to calculate the stresses and strains on an object in various load conditions. The object is modelled as a series of "finite elements" (in our case triangles), and then we specify the locations of points that can't move (fixed points), and the locations, magnitudes, and directions of forces that are present. Read more »

My RC2014 Web Server »

Tue 10 December 2019

I wrote a web server for my RC2014. It runs from CP/M, which has no built-in concept of networking, so I had to implement every layer of the networking stack, which in this case is SLIP, IP, TCP, and HTTP. It totals about 1200 lines of C, all of which was written on the RC2014 in the ZDE 1.6 text editor, and compiled with the Hi-Tech C compiler. Read more »

Design and Implementation of a Z80 Computer Front Panel »

Tue 12 November 2019

I designed and built a front panel for my RC2014. It allows you to view and alter the contents of memory, read and write to IO devices, and single-step through instructions. The RC2014 backplane basically just puts the Z80 CPU pins directly on the bus, so the same panel would work unmodified against almost any Z80-based computer, as long as you broke out the bus onto the 60-pin ribbon cable. Read more »

The RC2014 Z80 Microcomputer »

Mon 21 October 2019

I recently came across the RC2014. It is a simple computer sold in kit form, and using a Zilog Z80 CPU. Read more »

My Arduino-based industrial process controller »

Sun 1 September 2019

For my 3d metal printing project, I need the sintering furnace to stick to a pre-defined temperature profile. Unfortunately, the controller that my furnace came with only allows you to set a constant temperature. It maintains a constant temperature very well, but the operator frequently has to manually update the temperature in order to stick to the defined profile. Read more »

Home 3d metal printing: first results »

Mon 12 August 2019

A couple of weeks ago I learnt about an interesting 3d metal printing process, from a company selling it for $100k USD, and speculated that it might be DIY-able for much less. Well I now have some promising first results. Read more »

The 2019 BLMRA 12 hour lawnmower race »

Fri 9 August 2019

We raced at the BLMRA 12 hour again this year. Read more »

An interesting 3d metal printing process (help wanted) »

Sun 28 July 2019

I recently learnt about the Markforged Metal-X 3d printer from a post on 3DP Reviews. It costs $100k USD, and can print metal objects. As far as I can tell, it is essentially an ordinary FDM printer, with a special filament that contains a high percentage of metal powder held together with a "binder". After printing, the part is washed in a solvent to remove most of the binder, and finally it is heated in a furnace to sinter the metal powder together. Read more »

How to make a rev limiter with an Arduino »

Mon 22 July 2019

My racing mower has a tendency to over-rev on long straights. To avoid damaging the engine, we have been lifting off the throttle, but a more reliable solution would be an electronic rev limiter. I did buy a commercial rev limiter made by AccuSpark, but was unable to fit it to my mower because the AccuSpark unit needs access to both sides of the ignition coil, and my ignition coil is inaccessible, inside a black box with all the other ignition electronics. So my solution was to make a rev limiter with an Arduino. Read more »

My first chess tournament »

Mon 24 June 2019

At the weekend, Bristol Grammar School played host to the June 2019 Bristol Chess Congress, the "13th Steve Boniface Memorial". It's a 5-round Swiss tournament, with 3 sections: open (for international rated players), major (players with ECF grade under 160), and minor (ECF grade under 120). Having never played in a rated tournament before, I don't have an ECF grade at all, so I was obviously in the minor section. Read more »

A Strange Chess Clock »

Thu 2 May 2019

A chess clock is a device that has 2 countdown timers, used to place a limit on each player's thinking time in a chess game. White's clock is counting down while it's white's turn. After white plays his move, he hits the clock, and his clock pauses, and black's clock now counts down. Once black has played a move, he hits the clock, and white's clock resumes counting down, and so on. Read more »

How to win at Scotland Yard »

Thu 4 April 2019

I've been playing Scotland Yard recently. It's a board game in which one player plays as "Mr. X", and the other players are all detectives, played on a map of London. Mr. X moves in secret, and his goal is to evade capture for 24 turns, while the detectives' goal is to capture him before 24 turns are up. It's a brilliant game. Read more »

Puzzle Drawers »

Sun 17 March 2019

For the last ~3 weeks I've been working on a chest of drawers. This is no ordinary chest of drawers, they are puzzle drawers. The idea is that the puzzler is presented with one of the drawers already open, and the goal is to manipulate the chest into a configuration where all of the drawers are closed. With a typical chest of drawers, this would be easy: just close the drawer that is open. In the puzzle drawers, there are 3d-printed internal mechanisms linking the drawers together. Read more »

The Wheatstone Cryptograph »

Fri 15 February 2019

A few weeks ago I came up with an idea for a simple encryption device, then found that it had already been invented by Sir Charles Wheatstone around the 1860s. I ended up designing and 3d printing a replica of Wheatstone's cryptograph. Read more »

Telescope tracking with software auto-guiding »

Wed 23 January 2019

The Earth rotates around its axis at a rate of ~360°/day, or ~15°/hr (it's actually slightly slower than this because "1 day" is the amount of time it takes for the sun to come around again, but we are also moving around the sun, so we don't need to rotate a full 360° per day). When zoomed in with a field-of-view only 0.25° wide, objects that are not very close to the North star appear to move quite quickly across the frame. For this reason, my telescope control software continually updates the coordinates that it wants to point at, in order to keep the scope pointed at the same part of the sky. Read more »

Imaging the Orion nebula with the PiKon telescope »

Tue 8 January 2019

On Friday night I took some photographs of the Orion nebula with my motorised PiKon telescope from my back garden. There is lots of light pollution around, but this is the final image I got: Read more »

Towards a Better Pythagorean Cup »

Fri 4 January 2019

There was an article on Hacker News the other day by David Richeson entitled Make Your Own Pythagorean Cup. A Pythagorean cup is a cup with a built-in siphon. Supposedly invented by Pythagoras, the cup functions just like an ordinary cup as long as it is only filled to a certain level. If anyone gets greedy and tries to take too much wine, the level rises above the top of the siphon, which causes the siphon to self-start, and the greedy person is punished by having the entire contents of the cup dumped into their lap. Read more »

First Light in the PiKon telescope »

Sun 16 December 2018

On Thursday night I had an opportunity to try out my motorised PiKon telescope for the first time. Emma and I drove to a cemetery that is about 5 minutes away. It is not an ideal astronomy spot, but it is better than our back garden as it is a bit further from trees, tall buildings, and street lights. Read more »

Flat Earth and the Coriolis Force »

Sun 9 December 2018

I've been learning about "flat-Earthers" recently. They're a fascinating group of people who genuinely believe that the Earth is flat and that governments, scientists, and industry are in on a big conspiracy to trick everyone into thinking the Earth is round. Read more »

My PiKon telescope hardware »

Mon 3 December 2018

Since the last post I've been working on the hardware of my telescope. I think the hardware is basically done, I just have a bit more software to write, and then need to wait for a convenient and cloud-free night in which to try it out. Read more »

Ramblings About a Computerised Telescope »

Mon 19 November 2018

The PiKon telescope is a brilliant design for a cheap but powerful telescope using 3d printed parts and a Raspberry Pi. It is a Newtonian reflector telescope, designed to be mounted and aimed with an ordinary camera tripod, and then the Raspberry Pi camera is used to capture images. It uses a relatively inexpensive concave "spherical" mirror for the primary mirror, and has no secondary mirror: the Pi camera is small enough that it is simply mounted in the centre of the tube and captures light where the secondary mirror would normally be placed. Read more »

Deanonymising a Tor hidden service with traffic correlation »

Thu 18 October 2018

We've all heard that Tor hidden services can be traced to an IP address by an attacker who has sufficient visibility into global internet traffic, by correlating traffic sent to/from the hidden service with traffic sent to/from real IP addresses. But how easy is it in practice? How much data do you need? And how good do you need to be at statistics? I decided to find out. Read more »

How to use Ricochet IM on Tails »

Sat 13 October 2018

I've been using Tails (a privacy-focused Linux distro) as my day-to-day operating system recently, and I was disappointed to find that Ricochet IM does not work out-of-the-box. Read more »

Hiding messages in chess games »

Tue 9 October 2018

I designed a steganography system that encodes data as a chess game. A convenient way to communicate chess games is PGN, but any means of communicating the moves of the game would work, as the information is encoded conceptually in the moves themselves, rather than taking advantage of any redundancy in the PGN format. Read more »

Someone used my IPFS gateway for phishing »

Thu 4 October 2018

At 02:43 this morning, I received an abuse complaint email. It was sent by PhishLabs to DigitalOcean, and DigitalOcean forwarded it to me. Read more »

How Ricochet IM works »

Tue 18 September 2018

Ricochet is instant messaging software that communicates over Tor, authenticates peers by their Tor onion address, and communicates directly peer-to-peer (via Tor hidden services) without any centralised servers involved. Read more »

Please don't block Europe »

Thu 13 September 2018

Yesterday the EU approved a "Copyright Directive", which includes a tax on linking to other websites, and mandatory upload filters on all user-submitted content, to prevent copyright infringement. Read more »

How to install Ubuntu 18.04 LTS on a Lenovo Ideacentre 310s »

Wed 12 September 2018

Yesterday I was asked to install Ubuntu on a Lenovo Ideacentre 310s. I expected this to be quite easy but it was not. Read more »

Spelunking the Web Servers of the Lightning Network »

Wed 29 August 2018

I've finally got around to playing with Bitcoin's Lightning Network over the past couple of days. I managed to buy one of the "I got Lightning working and all I got was this sticker" stickers from BlockStream's Lightning store, and I'm in the process of adding Lightning payment support to SMS Privacy. Read more »

A 4x4 chess puzzle »

Tue 28 August 2018

Playing Isopath a lot recently led to a broader interest in board games, which led to me playing a lot of go, and particularly chess (you can add me on lichess, but I'm not very good). I had a look at some single-player variants of chess and played "Hippodrome" a few times but found it very easy, however it gave me an idea for another possibility. Read more »

We entered the BLMRA 12 hour lawnmower race again »

Sat 11 August 2018

After last year's poor show at the 12 hour, we did some much-needed work on the mower and had another go. Read more »

I tried to make a vinyl record on the lathe »

Thu 9 August 2018

In order to produce sound, a record player needle needs to ride in a track that has a tiny physical model of the waveform of the sound. Read more »

What's inside an HSBC SecureKey? »

Thu 12 July 2018

You've probably seen an HSBC SecureKey. It's a 2-factor authentication device for online banking. I was given one because the previous owner had started using the bank's smartphone app and no longer needed the SecureKey. It looks like this: Read more »

Introduction to Isopath »

Sat 30 June 2018

Isopath is a game invented by YouTube user pocket83. The game was initially presented in this video where pocket83 shows how he made the board and tiles, and then explains the game rules from 15:45 onwards. Isopath is a zero-sum, turn-based, deterministc, perfect-information game, which puts it in the same class as games like chess, draughts, go, noughts-and-crosses, etc. Read more »

My homemade ebike control panel »

Fri 1 June 2018

I wrote before about dismantling the control panel from my ebike to find out how it works, and had some ideas for an improved design. Read more »

A Rock-Paper-Scissors AI that is too good »

Fri 25 May 2018

Yesterday I had an idea for a simple Rock-Paper-Scissors AI based on Markov chains. The "state" would be what the opponent played in the last N rounds, and would be used to predict the probability that the opponent would play Rock, Paper, or Scissors next. The AI would choose what to play, to beat what the opponent is expected to play, weighted by the expected probability for each possible action. Read more »

Reverse engineering an ebike 3-mode PAS LED panel »

Fri 11 May 2018

I bought an electric bicycle recently. It is an incredible machine, and I think everyone should get one. The thing I never liked about cycling is how tired you get going up hills, and the electric bicycle solves this problem without taking away any of the fun parts of cycling. A truly incredible machine. Read more »

What would the total computing power of the entire world in 1970 cost today? »

Sun 29 April 2018

Some dubious mathematics and lots of guesswork. Maybe the conclusion is within a few orders of magnitude of correct... Read more »

How I cracked the Bitcoin keys in Andy Bauch's Lego artwork »

Sat 24 March 2018

Yesterday I read an article about a series of art pieces created by Andy Bauch with $10,000 of cryptocurrency hidden in them. Each of the pieces is assembled out of lego bricks. Read more »

How to find out if your data gets stolen (URL Canary) »

Fri 23 March 2018

In February I started working on a new project called URL Canary. The premise is that it helps you create custom URLs that you can store next to your private data (database backups, git repositories, executive inboxes, etc.). Then, if your data gets compromised and the attacker makes the mistake of visiting your oh-so-enticingly-named URL, you'll receive an email alert, you'll know your data has been stolen, and you can take remedial measures. Read more »

SaaS profit is market inefficiency, and it will end »

Tue 20 March 2018

I don't think the profitability of "software as a service" businesses is going to last, in the long term (on a timescale looking at, say, 100 years from now). I wrote before about machine-owned enterprises competing the profit out of SaaS, but even before that happens, humans ought to be able to compete most of the profit out of it. Read more »

How to run SSH and HTTP on the same port »

Mon 26 February 2018

Last month I ran a small puzzle in which, after having picked up an SSH key in one of the rounds, a subsequent round involved connecting to a (supposed) web server using an SSH client. It's quite a neat trick so I thought it deserved sharing. Read more »

A visual demonstration of the perils of key reuse in a one-time pad »

Sat 17 February 2018

I was playing with applying one-time pad encryption to images recently, and stumbled across some interesting visualisations that I want to share. Read more »

I designed a trick chess piece with hidden compartments »

Sun 4 February 2018

It's quite easy to model a traditional chess piece (apart from a knight) using CAD software. You basically just have to draw a sketch of the outline and revolve it around its centre. I modelled, and 3d printed, a Queen that includes some hidden compartments for storing small bits of paper, e.g. containing passwords or Bitcoin keys. Read more »

Magnetic cubes puzzle: In practice »

Mon 22 January 2018

I've put together a physical version of the magnetic cubes puzzle and have spent a good few hours playing with it. (You don't need to have read that post in order for this one to make sense, but it might help, and it's certainly worth having a look at the table that labels the different cube configurations). I haven't yet managed to solve it without consulting a computer. Read more »

Magnetic cubes puzzle: In theory »

Sat 20 January 2018

I had an idea for a puzzle. Imagine 27 small cubes. Put a magnet on each face of each cube, with variation as to whether North or South is facing outwards. Now try to assemble the cubes into a 3x3x3 "cube of cubes". Read more »

How to get your Bitcoins out of Xapo without running their app on your phone »

Mon 15 January 2018

Xapo is a company that offered a Bitcoin Visa debit card. You'd top up your account with Bitcoins, and you can then spend them, using the card, anywhere that takes Visa payments. This is super convenient for anyone who earns income in Bitcoin. Read more »

Knives: they cut, and they don't ask no fucking questions. Yet. »

Wed 27 December 2017

I recently watched Captain Disillusion's video Miss Ping Debunk in which he explains how an old knife-throwing video was made, and why, and by whom. It's a good video. It also has a joke advert in the middle: Read more »

How to control a digital speedometer »

Tue 12 December 2017

As part of my YX140 scooter project (now finished) I discovered that the scooter's speedometer is controlled digitally. There was a sensor in the original engine which generated pulses to signal the speed of rotation of the gearbox output shaft. The new engine has no such sensor, so I had to do a little electronics to make the speedo work. Read more »

Is mega.co.nz censored by every major search engine? »

Sun 10 December 2017

I was watching Vice's video on Kim Dotcom today, and ended up typing "mega" into DuckDuckGo to see what it came up with. Read more »

Finding unsecured S3 buckets using Passive DNS »

Sat 2 December 2017

There was a post on Hacker News yesterday about a tool called bucket-stream that looks at certificate transparency logs and uses them to find corresponding Amazon S3 bucket names. Read more »

Machines as first-class citizens »

Tue 21 November 2017

Throughout history, various groups have been subject to various prejudices which restricted their ability to act freely in otherwise-free societies. Obvious examples include Jewish people, black people, and gay people. Read more »

New project: YX140 engine in a Honda Innova scooter »

Thu 16 November 2017

At the weekend I picked up a Honda Innova 125i scooter for £550: Read more »

Someone Created a Tor Hidden Service to Phish my Tor Hidden Service »

Fri 13 October 2017

SMS Privacy is available as a Tor hidden service, and it turns out ~10% of users actually use it that way. This post details what I found when somebody created a phishing site of my Tor hidden service. Read more »

On Gumtree, "Bitcoin" is a dirty word »

Sun 1 October 2017

I tried to list a sofa bed on Gumtree today. I went through the usual rigmarole of dusting the item off, taking some photos, uploading the photos to Gumtree, and writing a compelling description that would hook in the buyers and secure me great riches. Read more »

Solving the Matchsticks Game »

Wed 20 September 2017

I was on holiday in Iceland last week, and while we were away, Charlie introduced me to the "Matchsticks" game. We played a few rounds and it got me thinking about how to solve it. I couldn't find any information about the game online so I'm sharing what I've learnt... Read more »

Google Trends portfolio: selling Ripple »

Thu 7 September 2017

Another update on the Google Trends portfolio. Read more »

Google Trends portfolio: buying Monero »

Thu 31 August 2017

Just a quick update on the Google Trends portfolio. Read more »

Using Google Trends data to speculate on cryptocurrencies »

Sun 27 August 2017

I did a little analysis this evening to try to find cryptocurrencies that are under-valued relative to Bitcoin, based on Google Trends data, with the intention of buying whatever is under-valued and waiting for it to go up. I found some possibilities and I spent some money. Read more »

I tried to do the BLMRA 12 hour lawnmower race »

Wed 16 August 2017

Earlier this year I bought a ride-on lawnmower to go lawnmower racing. I talked Feroz Salam and James Nicholls into driving it with me, and Matt Game and my Dad into helping in the pits, and we entered the BLMRA 12 hour endurance race. Read more »

I found a security vulnerability in SMS Privacy this morning »

Mon 7 August 2017

I woke up this morning to find an email from my SMS Privacy server informing me about an error: Read more »

The only time Hacker News is this interested in Bitcoin is when there's a bubble forming »

Sun 30 July 2017

You might have got the impression that there are a lot of Bitcoin-related posts on Hacker News lately. With SegWit set to activate in the next few weeks, and Bitcoin Cash likely to fork off on the 1st of August, I took a look at Hacker News' relationship with Bitcoin over the past years. Read more »

BTC-e, Alexander Vinnik, and the missing MtGox Bitcoins »

Wed 26 July 2017

Q: How do you launder the Bitcoins you stole from MtGox?
A: Set up your own exchange and sell them on there
Read more »

I tried to buy a thing off a dark net market, and the FBI stole my money »

Tue 25 July 2017

I'm interested in online privacy and freedom, and I've wanted to make a purchase on a dark net market for quite a while. On the 26th of June I took the plunge. I'd heard AlphaBay was a popular market so (for the full experience) I loaded up Tails Linux in a virtual machine and navigated to the AlphaBay site. Read more »

Why Bitcoin has to succeed »

Tue 11 July 2017

Some people want to transition to a cashless society. If that happens (and governments, at least, appear very keen to make that happen), we'll all be left with no way to pay each other without going through a third party payments company (banks, Visa, PayPal, etc.). This means people have no way to pay each other without asking permission from such a company, and being subject to censorship and surveillance at best, and the risk of the funds being stolen at worst. Read more »

Double-check Bitcoin addresses when pasting (Bitcoin TX Generator malware) »

Sun 9 July 2017

Back in April I wrote about the Large Bitcoin Collider and how it is probably malware. Well, now there's another (even more blatant) piece of malware being spread via reddit. Read more »

How to create 3d-printed stencils for spray-painting »

Mon 3 July 2017

I wanted to make some custom spray-painting stencils. I've done it before by printing on paper and cutting out the shapes, but found it to be laborious and time-consuming. Also the stencils don't last for more than a couple of uses before the paper gets too soggy. Read more »

Someone cloned my website and is using it to scam people »

Fri 16 June 2017

I was looking on the DuckDuckGo search results for "anonymous bitcoin sms" today, just to see what was out there. My SMS Privacy was the top result, as expected. But the second result was new to me: Read more »

Hardbin: The World's Most Secure Encrypted Pastebin »

Fri 19 May 2017

Over the past week I've been working on hardbin. Hardbin is an encrypted pastebin, with the decryption key passed in the URL fragment, and the code and data served securely with IPFS. (IPFS is a distributed content-addressable storage system that is web-compatible; it's basically bittorrent for the web). Read more »

I made a Base58 encoding/decoding tool »

Sat 13 May 2017

Base58 encoding allows arbitrary data to be encoded using only alphanumeric characters. It is analogous to base64 except base58 does not map neatly on to bytes (4 base64 characters is 3 bytes), and base58 does not include any non-alphanumeric characters. Read more »

How to use bitaddress.org securely (spoiler: use IPFS) »

Wed 10 May 2017

Bitaddress.org is a single-page web app for generating Bitcoin paper wallets. It's a great tool, and runs entirely client-side so (in theory) you can audit the code and don't have to trust that the server is not stealing your keys. Read more »

I've been playing with IPFS »

Tue 9 May 2017

There was an article on Hacker News yesterday about Uncensorable Wikipedia on IPFS. I read it with great interest (I recommend you read it too) and ended up going down a huge rabbit hole of learning about IPFS. Read more »

I semi-deanonymised some MetaMask users, and they were absolutely loaded »

Tue 2 May 2017

Yesterday, I published a post about drive-by identification of MetaMask users (and submitted it to /r/ethereum on reddit). The post included an implementation (now disabled) of an attack that could associate website visitors' IP addresses with their Ethereum accounts, with no user interaction required. This is what I found. Read more »

Drive-by identification of MetaMask users »

Mon 1 May 2017

MetaMask is a Chrome plugin that turns an ordinary Chrome browser into a Dapp browser. A Dapp is a web app that is augmented to use the browser's local web3 object to access the Ethereum blockchain. Compared to Mist, another Dapp browser, MetaMask streamlines the user interface by not requiring users to "Connect" an account before using it in a Dapp. Read more »

eBay don't understand why people dodge their fees »

Sun 30 April 2017

I've been selling some stuff on eBay recently, and I had a pretty crap experience with one particular item. Read more »

Is the Large Bitcoin Collider malware? »

Tue 18 April 2017

Yesterday, /u/SopaXorzTaker submitted a post to r/Bitcoin suggesting the Large Bitcoin Collider (a.k.a. "LBC", not to be confused with Local Bitcoins) is probably malicious. He did a great service to the community by doing so. Read more »

I made a Rhyming Dictionary »

Mon 17 April 2017

Some friends and I were trying to come up with rhymes for "mowing", to help us think of a witty name for a lawnmower racing team. This seemed like a job for a machine, so I looked online for something that might help. Read more »

I started accepting 0-conf Bitcoin payments, and it was great »

Wed 29 March 2017

Customers of SMS Privacy have been frustrated with long confirmation times for Bitcoin payments. Even though I only required 1 confirmation, it can still take a long time for that first confirmation if the transaction was accidentally sent with a fee that is too low. Instead of sending money and being able to use the service immediately, customers sometimes had to wait hours. This is immensely frustrating for a legitimate customer: you've sent the money, you're not trying to steal anything, why do you have to wait? Read more »

On the inevitability of the machine-owned enterprise »

Wed 22 March 2017

A machine-owned enterprise is one in which none of the profits go to any human, and none of the work is performed by any human. The entirety of the business is owned and operated completely autonomously. Read more »

I don't know how many soldiers are taking drugs, and neither do you »

Fri 3 March 2017

I read a story, in some online comment section, about a clever trick the US Army used to work out how many soldiers were taking drugs. It went something like this: Read more »

SMS Privacy was attacked last night »

Sat 25 February 2017

This morning I checked on the list of SMS Privacy user accounts, as I do every morning, and found that quite a large number had been created overnight, between 22:48 and 23:10 GMT on 24th of Feb 2017. Most of them had names like: Read more »

Steganographic Bitcoin seeds: Hiding cash in plain sight »

Wed 22 February 2017

I made a tool, stegoseed, to generate sentences which steganographically encode Bitcoin wallet seeds, and to decode such sentences to retrieve wallet seeds. It comes with an example BIP39 seed to play with. Read more »

Precautions for generating Bitcoin QR codes »

Wed 15 February 2017

A couple of people have been asking me to add QR codes to the payment page on SMS Privacy. I'd been putting it off for a while because I didn't want to do it in a way that opens up avenues for exploitation. Read more »

Encrypted email is still a pain in 2017 »

Mon 13 February 2017

Today I sent an email to somebody who specified that he "prefers GPG mail". I didn't have any GPG set up, so I just sent a normal email, which worked perfectly well. But it made me look in to GPG, and this is what I learnt... Read more »

I bought an extremely cheap 3d printer and it's great »

Wed 25 January 2017

I had a look on eBay last week to see what sort of price 3d printers are going for these days, and was surprised to find some on offer for £150. At that price it's obviously not going to be very good, but should be fun anyway. Read more »

Why minimum wage is bad, illegal immigrants are good, and ticket scalping is fine »

Tue 17 January 2017

At first glance these three topics might seem unrelated, but the same basic argument of supply and demand applies in each case. Read more »

The Game Theory Case for Bitcoin »

Thu 5 January 2017

During a period of only 4 hours today, the value of Bitcoin dropped by more than 30% (8888 CNY down to 6000 CNY). This sparked some discussion at work about what it is that makes Bitcoin worth anything in the first place. Read more »

Secrets of the Medtronic MyCareLink Patient Monitor »

Sun 4 December 2016

I have acquired a "Medtronic MyCareLink Patient Monitor 24950" and have been playing with it a little this weekend. It looks like this: Read more »

Please stop making popup menu bars »

Fri 2 December 2016

There is a trend on the web at the moment to make menu bars that disappear when you scroll down, and reappear when you scroll up. This article encourages everybody to do it because "menus aren't pretty" and screen space is at a premium on mobile devices. Read more »

How (and why) to accept Bitcoin payments yourself (without running a full node) »

Fri 11 November 2016

Accepting Bitcoin payments for an online service can be daunting at first (I worked out how to do it, for SMS Privacy, a couple of months ago). What I describe is not the only way to accept Bitcoin payments - it's not even the best way to accept Bitcoin payments - but it works for me. And it might work for you, too. Read more »

Bitcoin debit cards: Xapo vs Cryptopay »

Mon 31 October 2016

I've written before about my Cryptopay Bitcoin debit card. A number of people on reddit recommended some other company's offerings that hadn't come up in my searches. Xapo was most recommended, so I bought a Xapo card shortly after and have been using it on-and-off ever since. Read more »

I made a hidden bookcase door »

Fri 21 October 2016

Ever since Emma and I moved into this house, I've been talking about making a hidden bookcase door. Well I've done it now. Read more »

SMS Privacy month 1 review »

Mon 10 October 2016

It's a month since I launched SMS Privacy, a web service offering anonymous phone numbers paid in Bitcoin. This is what's happened over the last month... Read more »

SMS Privacy now provides anonymous voicemail »

Mon 19 September 2016

One of the use cases that inspired me to create SMS Privacy is signing up for accounts for online services without having to link that to a real-world identity. Unfortunately, it turned out that my API provider is blocking the verification codes that many of these services send, in an effort to prevent people from abusing their API to automate the bulk creation of accounts. Read more »

What is the most interesting thing live streaming right now? »

Sat 17 September 2016

I had an idea for an interesting project: it would simply show whatever is the most interesting live stream available at the current moment. It ought to update the stream dynamically whenever a new more interesting stream becomes available. Read more »

The SMS Privacy conversion funnel »

Mon 12 September 2016

I'm a big fan of Patrick McKenzie's blog. If you're interested in small-time software business it's worth working through his greatest hits page. A powerful idea I learnt from his site is the conversion funnel: all the visitors to your site pour into the top, they then pass through several filter layers, and some proportion of them pop out at the bottom as paying customers. To get more paying customers you either need to put more users in the top, or get a higher proportion of them to pop out at the bottom. Read more »

How to buy phone numbers anonymously »

Sat 10 September 2016

Over the last week or so I've been working on a project that allows anyone to buy phone numbers using Bitcoin anonymously, and use them to send and receive SMS. I think this is an important piece of the puzzle of allowing people to interact with the world anonymously, as a large number of services use SMS for account verification or 2-factor-authentication. Being able to buy phone numbers anonymously allows you to create new identities more easily. Read more »

What if we could assume new identities at will? »

Sun 21 August 2016

I've been thinking a lot about privacy and anonymity recently. It's reasonably possible to create a new online identity, with no links to your real-world identity, as long as you don't need to buy anything and you're careful. Use Tor, get an email address from SIGAINT, and you can sign up for accounts on a lot of other services and speak your mind freely. Read more »

Living with a Bitcoin debit card »

Sat 30 July 2016

My new project produces profit in Bitcoin. I wanted a way to be able to spend the Bitcoin without having to: Read more »

Perl's Digest::SHA::hmac_sha256_base64 is wrong »

Wed 6 July 2016

I spent nearly 2 hours today struggling to authenticate with an API that uses base64 SHA256 HMAC's, only to find that the hmac_sha256_base64 implementation appears to be wrong. Read more »

On the design of a herb jar lid »

Mon 27 June 2016

My herb jar lid has two operating modes: one has small holes which allow you to shake the herb out slowly, and the other is a single large hole which allows you to shake the herb out quickly. Read more »

I delivered an Oak Mirror to a lady »

Fri 27 May 2016

My latest business venture is Bristol Oak Mirrors. The website is crap but the idea is I make oak-framed mirrors and sell them. Read more »

How to copy Wordpress theme customisations to a child theme »

Mon 23 May 2016

I've been working with Wordpress a little lately. I learnt that you're supposed to create a child theme in order to make modifications to it, but I'd already modified the theme settings (colours, etc.) using the Wordpress 'Customise' tool and couldn't see how to copy these settings to the child theme. Read more »

How to defeat naive image steganography »

Wed 27 April 2016

As a teenager, I wrote a C program to do image steganography. It hid the secret image in the least significant bits of the cover image. I also made a PHP web interface to it, which now sees about 3,000 users per month. So I've made a better version, it gives previews of the input images, doesn't upload the images to my server (privacy, yo), and is faster. Read more »

Stockfighter Review (no spoilers) »

Fri 22 April 2016

I've been playing Stockfighter this week. Read more »

How (and why) to make your software faster »

Fri 15 April 2016

Have you ever been bothered by how slowly your webapp loads, but never profiled it? Much like test-driven development and A/B tests, performance profiling almost always throws up surprises and big wins, and yet most people never bother to do it. If you have anything that runs too slowly, you should profile it today, you will find improvements to make. Read more »

Going Solo »

Fri 8 April 2016

Today marks the last day of the "full-time job" stage of my career! For the foreseeable future, I'll be working part-time for Netcraft. I will also be trying to find work freelancing (hire me!), and trying to make more money from my other projects (e.g. ads on the Countdown Solver, and selling SMS Travel Map subscriptions). Read more »

How to peek all of the jobs in a Beanstalk tube »

Wed 30 March 2016

This problem came up at work today. There was a Beanstalk tube with a few hundred jobs in it, getting processed slowly. A particular input didn't seem to be getting processed, and I wanted to know if it existed in the tube and simply hadn't come out yet, or was missing entirely. Read more »

I delivered 2 sofas for Vincent »

Sun 27 March 2016

My phone rang early yesterday morning, while I was still basically asleep. A mobile number I did not recognise. I answered. It was "Vincent". He asked me if I was free to deliver 2 sofas from Bristol to Weston-Super-Mare. I groggily suggested 50 quid, with no idea how long it would take, and Vincent said he would be in touch. I don't know where these people get my number from as I haven't had an ad for over 6 months... Read more »

How to interrupt a regex in Perl »

Wed 23 March 2016

Since 5.8.0, Perl's "safe signals" defers the delivery of signals when a custom signal handler is in use, until it is at a safe point to handle them. This means you can not simply use alarm() to interrupt a long-running regex. Read more »

How to use GNU screen for ad-hoc cluster management »

Fri 11 March 2016

If you have a cluster of machines, you can use GNU screen to run a management process on them all, monitor the output, and manually take over and repair any issues that come up on any individual machine. Read more »

I tried to go pit biking »

Sun 28 February 2016

Tormarton pit bike track was finally open yesterday so I took my pit bike there. Read more »

I made a video of driving my van »

Thu 25 February 2016

I had an idea for a video series, where I put a camera in the passenger seat of my van while I'm going places, and you listen to my anecdotes and watch me driving, etc. Read more »

I tried to change the glow plugs in my van »

Sat 20 February 2016

My van has been tricky to start on cold mornings lately so I decided to try to replace the glow plugs. I replaced 3 of the glow plugs. (There are 4). Read more »

I bought a pit bike »

Fri 1 January 2016

I picked up a pit bike on Wednesday evening. It is basically an off-road mini moto. It cost £250 and is a non-runner. Also the clutch lever is missing, the brake lever falls outwards on its own, the chain is rusty, the tyres are worn out, there's lots of rust, one of the plastic panels is missing, the air filter is missing, the wiring has obviously been mucked about with, and the front brake did not work. Read more »

I rode my motorbike off road and made a video »

Sun 29 November 2015

Lately I've been a bit interested in Green laning on my motorbike. Read more »

I made a gong »

Wed 11 November 2015

Some colleagues at work somehow quickly became obsessed with gongs. So I made a gong. From brass. Read more »

I made a puzzle game »

Sun 1 November 2015

This evening I had an idea for a small puzzle game and implemented it. Read more »

If you serve javascript with a 404 status does it still get executed? »

Wed 7 October 2015

This topic came up at work today when we noticed a Javascript file was missing. Does the browser still try to execute the 404 page that gets returned? And if not, would it if the Content-Type were set appropriately? Read more »

I made a knife out of a file »

Sun 28 June 2015

Since making a little knife out of a hacksaw blade a few weeks ago, I've been working on a bigger knife made from a file. Read more »

Logrotate race condition with copytruncate »

Thu 11 June 2015

The logrotate tool has a mode called copytruncate which copies the log file and truncates the original, rather than renaming the original, so that the daemon doesn't need to reopen the log file. Read more »

I made a little knife »

Sun 31 May 2015

I made a knife today. Just a little one, out of an old hacksaw blade. Only half a hacksaw blade, I used the other half to make a gasket scraper (not pictured). Read more »

I made a plymetal heart decoration »

Sun 26 April 2015

This evening I had an idea for making an effect like plywood, but out of metals (hence "plymetal"). I tried it out to make a little heart decoration and it worked great, although I did a poor job. Read more »

I painted my van wheels »

Sat 11 April 2015

My van has steel wheels and they were pretty rusty so I decided to paint them. Read more »

How to close a running process's socket »

Thu 9 April 2015

I had a problem this morning of a process that was stuck waiting for an HTTP fetch to complete, and had been stuck for 8 hours. Obviously the fetch had not been successful, and additionally some sort of timeout had broken, but I wanted the process to continue executing for the time being. What to do? Read more »

I drove a truck and bought a car »

Mon 23 March 2015

Yesterday me and Emma went to pick up a Nissan Micra I bought off eBay for £375. We currently have no intention of taxing or insuring the car as she needs to learn to drive first, and I didn't feel comfortable driving the car all the way back with no tax or insurance. Read more »

Digital Ocean Private Networking is not Private »

Thu 5 March 2015

Digital Ocean offer a "Private Networking" option which, to many people, sounds like it is accessible only to other droplets created by the same Digital Ocean account. Read more »

I built a campervan »

Thu 26 February 2015

I took today off work to work on the interior of my van. I intend to use the van as a camper van, but my main priority is that it can still be used as a normal van. I don't go in for these camper van designs that leave no usable space (e.g. to carry a motorbike, or a secondhand sofa). Martin gave me a futon, which is brilliant - it is basically an instant camper van as it provides seating and bedding in one. Read more »

I am back on the bike »

Sun 15 February 2015

I ride a 1989 Honda VFR750F. It's a brilliant bike, but has had very tatty fairings due to being knocked over several times. Read more »

I built an oak chest »

Sun 8 February 2015

Since the start of the year I've been spending some time at weekends building an oak storage chest. Read more »

How to make driftwood sink »

Tue 3 February 2015

I went to the seaside on Sunday and picked up some driftwood to put in my fish tank. Read more »

I bought some fish »

Sat 31 January 2015

On Thursday I bought 3 fish. The biggest one is a barb, and I can't remember what the other two are. Read more »

I made a ring out of a coin »

Tue 27 January 2015

Around the start of this month I made a ring for Emma. Read more »

I drove in the snow »

Sat 27 December 2014

Yesterday I drove my new van up North to visit Emma. Halfway through it started to snow. Read more »

SMS Travel Map »

Sat 6 December 2014

As I mentioned before, I built an SMS-updating coordinate-tracking system to use on the Mongol Rally so that everyone left behind could keep track of our progress. Read more »

Stories from the Mongol Rally: Mongolian Black Market Pickpocket »

Wed 19 November 2014

After completing the rally, and during our time as regular tourists in Ulaanbaatar, we visited a large market known as the "black market". Read more »

Stories from the Mongol Rally: Kazakhstan Policeman Selfie »

Tue 18 November 2014

Within about half an hour of getting into Kazakhstan, we were pulled over by the filth. We were travelling with an American team, 3FLP, by this point. Read more »

Stories from the Mongol Rally: the Georgian Diesel Incident »

Mon 17 November 2014

Shortly after we got into Georgia, we pulled into a petrol station to fuel up the car. The writing in this country uses these Georgian squiggles so it is impossible to even pronounce the words. Fortunately, most of the pumps in this petrol station also had writing in Latin, and we determined that the green pumps (like in Europe) pump petrol. So far, so good. Read more »

Counter creator »

Sun 16 November 2014

A while ago Feroz created an online counter for the number of times I've said something that could be considered racist. The idea is that whenever I put my foot in it, somebody clicks the button and the count increases. Read more »

I made a brass box »

Thu 6 November 2014

At the weekend I decided to use up the brass sheet I had lying around and construct a box. Read more »

I ran out of fuel in my van »

Sat 1 November 2014

Yesterday, on my way into work, I glanced at my fuel gauge and noticed that it was extremely low. Thinking to myself, "wow! I've never seen it that low before", I made a mental note to fill up on the way home. Read more »

I helped a French child fix a stolen moped »

Thu 16 October 2014

While Feroz and I were driving my van around France, we came across a child with a moped at the side of the road in some woods. He appeared to have broken down and we decided to help him. We pulled over and asked if he spoke English. He did not. Read more »

West Country Place Name Generator »

Fri 18 July 2014

I've recently written a West Country Place Name Generator. Read more »

Yurt Lush Live Tracking »

Sun 29 June 2014

In about 3 weeks' time I'm setting off on the Mongol Rally as one half of team Yurt Lush. Read more »

Hungman »

Wed 11 December 2013

I've made a hangman solver, currently called Hungman. The user interface is bad but most of the idea is there. Read more »

NFC Tag »

Sun 6 October 2013

Idea: NFC tag game. Whenever possible, bump your phone at someone else's to make them "it". Then they have to do it, and periodically there is some sort of punishment for the person who is "it". Like it vibrates to pretend there's a text message. Read more »

Beer »

Mon 23 September 2013

I've been brewing some more beer recently. Read more »

Xory »

Tue 10 September 2013

My latest project: Xory. I started this on Friday afternoon and now consider it releasable. Read more »

Mazda MX-5 »

Wed 28 August 2013

Today I almost bought a Mazda MX-5. Read more »

The Glowstick Debacle »

Thu 15 August 2013

This is a story about how I tried to make some money on eBay, and ended up losing a bunch instead. Read more »

8 out of 10 Countdown viewers »

Sun 11 August 2013

I added more fine-grained analytics to my Countdown Solver recently, and I noticed something interesting today. Here are the most-solved letter sets from Friday (note the last three): Read more »

Polynomial interpolator »

Sat 10 August 2013

Here's what the web needs: a simple-to-use polynomial interpolation tool. Read more »

Phone posting setback »

Thu 8 August 2013

Yet another setback in the phone posting project. Read more »

James Stanley - james@incoherency.co.uk | ricochet:it2j3z6t6ksumpzd | jesblogfnk2boep4.onion | [rss]