James Stanley

Blog

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

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 | jesblogfnk2boep4.onion | /ipns/jes.xxx/ | [rss]