All posts

back to index

2021-Jun-4 Imaginary maps in 3D

2021-Mar-28 Proposal for safer browser extensions by restricting outbound connections

2021-Mar-21 Boyfriend of Zelda

2021-Jan-11 Majordummo: simple management of small, private mailing lists

2021-Jan-4 A lockdown hair censor for video conferencing

2020-Dec-29 Implementing ON ERROR RESUME NEXT in Python

2020-Nov-8 Generating imaginary maps on an e-paper display

2020-Oct-18 Thermal paste replacement, Macbook Pro 2015

2020-Jul-4 Python, I wish I could quit you

2020-Jan-12 Linux binaries as portable executables: a proposal for hypervisor-mediated Linux syscall reimplementation on macOS

2019-Nov-11 Gmail and Hotmail discriminate against self-hosted email

2019-Nov-11 Don't use Scaleway for self-hosted email

2019-Oct-11 MailMate: inverted three-pane view

2019-Jul-20 Bridged networking with qemu on Linux

2019-Apr-9 Self-organising map on the Iris dataset

2018-Nov-20 macOS Server firewalls port 80

2018-Oct-15 Reading and writing Dreamcast Visual Memory Units with an Arduino

2018-Oct-5 Copying to system clipboard on macOS with tmux 2.7 and mouse mode

2018-Sep-9 Vim is not an IDE, episode three thousand

2018-Jul-29 Building libmsp430 for macOS

2018-Mar-29 Parser generator errors when building yosys on macOS

2018-Feb-16 World's cutest TTY

2018-Feb-8 (A little more) Super Mario World

2018-Feb-4 Genetic Algorithms vs Super Mario World

2017-Dec-26 REALLY RAP GFX

2017-Nov-23 Wire colour to TRS connector, Apple Lightning to 3.5" adapter

2017-Oct-29 Supporting Clang in the CI20 bare-metal project

2017-Sep-18 zlib Z_DATA_ERROR "invalid distance too far back"

2017-Jul-31 Evolution of SNES games (I swear real work is coming out of this)

2017-Feb-5 Raytracing in the browser

2017-Jan-28 CI20: User-space cache coherency

2017-Jan-23 CI20: User space!

2017-Jan-15 The Saruman suite of ELF manipulation tools

2016-Dec-15 Some quick notes on threading models

2016-Dec-9 CI20: You say it best when you say nothing at all

2016-Dec-7 CI20: Dual cores! Double your fun!

2016-Dec-2 CI20: Switch to CMake

2016-Nov-12 Cloning Pocket, part 1 of about 1000

2016-Nov-8 Some quick notes on language models

2016-Oct-29 Some quick notes on garbage collection

2016-Aug-14 Smartcards available

2016-Aug-14 NFC crypto applet source code available

2016-Aug-6 Better security for KeePassNFC

2015-Dec-6 JavaScript-based MNIST demo

2015-Nov-3 Turn Twitter hearts into skulls

2015-Sep-29 Using LXC with Debian

2015-May-7 The best part about abstraction is {the best part about abstraction - 1, the best part about abstraction - 2}

2015-May-3 CI20: Interrupt handling

2015-Apr-19 CI20: The DDR odyssey, part 4: memtester

2015-Apr-16 CI20: The DDR odyssey, part 3: memory remapping

2015-Apr-7 CI20: The DDR odyssey, part 2: getting it working

2015-Mar-31 CI20: The DDR odyssey, part 1: PLLs

2015-Mar-31 The CI20 bare-metal project

2015-Mar-14 ci20: Enabling the timer

2015-Mar-7 Running code on the CI20 without uboot

2015-Feb-12 A reset button for the CI20 Creator MIPS-based board

2015-Feb-11 The impact of caching on MIPS

2015-Feb-10 Running bare-metal code on a ci20: part 2

2015-Feb-10 Running bare-metal code on an imgtec ci20 MIPS-based board

2015-Jan-2 Help me beta test Divers Alarums

2014-Nov-17 Graphing in JavaScript

2014-Aug-28 Short Chromium rant

2014-Jun-4 My favourite joke from the Swift documentation so far

2014-May-12 Evening hack: multiheaded Nokia 3310 displays

2014-May-12 SPI Flash programmer for Arduino

2014-May-11 Call-by-name semantics

2014-Apr-11 Walter Bright on making programming languages

2014-Jan-23 AOSP: emulator: don't copy the system image

2014-Jan-22 WhatsApp: fake contacts

2013-Dec-30 Five-minute AOSP hack: remove proximity sensor support

2013-Oct-30 Five-minute AOSP hack: dismiss voicemail notification

2013-Apr-1 KeePass NFC: Unlock your KeePassDroid database with NFC

2013-Mar-9 KeePassDroid NFC support

2013-Mar-6 Idea: an NFC authentication scheme

2012-Dec-27 File Pirate

2012-Dec-7 Cross-platform epiphany

2012-Oct-6 Hardware SID Player: An 8-bit computer for playing Commodore 64 music

2012-Aug-9 Evening hack: NES controller

2012-Aug-7 Odd things about OpenCL on a Mac

2012-May-23 Hardware SID player

2012-May-3 A simple DS18B20-based temperature logger

2012-Apr-7 Hacking Android apps, part 1: the basics

2012-Apr-2 Profligate Spending

2012-Jan-27 UK keyboard layout with Swedish character support for Windows

2012-Jan-1 A couple of things I learnt from Chaos Communication Congress #28 videos

2011-Dec-22 Jailbreak the Patriarchy

2011-Nov-19 Compiling clisp with Homebrew on Mac OS X Lion with XCode 4

2011-Jul-7 Python: Throwing an exception into a generator

2011-Jun-20 Automating Quicktime Player 7's audio conversion

2011-Jun-19 King Battle!

2011-Jun-9 DIY USB-Serial Cable

2011-Jan-25 The Huawei Ascend M860 Uses A Qualcomm MSM7625 System-On-Chip

2011-Jan-14 D-Link antenna boost

2010-Nov-24 Splitting Android boot.img files

2010-Oct-18 Sega Dreamcast Maple Bus Interface

2010-Oct-18 8-Bit News

2010-Sep-20 Reading the cycle counter on an HTC Desire

2010-Jul-9 Python snippet: nicer Python tracebacks

2009-Oct-23 Texdown: LaTeX simplified. A lot.

2009-Oct-6 Passing file descriptors through Unix-domain datagram sockets

2009-Sep-27 Writing asynchronous device drivers with synchronous code

2009-Jul-31 Recording and replaying events with Android

2009-Jul-26 GOSUB with Python byte code

2009-Jul-26 Taking screenshots with an Android ADP1