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