James Stanley

Posts tagged 'software'

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

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »


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