Archive
December 2012
- !FinalLook - a RISC OS 3.1 hack explained
- A trip down memory lane to a hack for RISC OS 3.1 I wrote at University
September 2012
- Forcing code out of line in GCC and C++11
- A way of ensuring non-hot code is taken out of line in GCC, using C++11 lambdas
June 2012
- GCC Explorer - progress update
- What's changed since the launch
May 2012
- GCC Explorer - an interactive take on compilation
- Introducing a new way to stare at the disassembly of your compiled C and C++
August 2011
- Vim's quickfix and GCC 4.5
- Getting GCC 4.5's error messages parsing in vim 7.3
July 2011
- An update to Miracle
- An update on Miracle, the Javascript Sega Master System Emulator
February 2011
- Introducing Miracle
- A Sega Master System emulator in JavaScript
July 2009
- Solving the threading problem in WinInet
- One possible solution to the problem of cancelling a WinInet request in a thread-safe manner.
- Threading issues in the Windows Internet API
- A problem with threading that looks simple but turns out to be a headache.
September 2008
- Samba PDC problems after changing server IP
- A strange problem with Samba PDCs if their IP addresses change.
August 2008
- Another weekend and some more data recovery
- More fiddling in trying to get NTFS disk data back for my Dad.
- Comments on hacking about with stacks
- Justin's comments on my investigation of the processor stacks on Windows and Linux.
- Hacking about with stacks
- An investigation of the processor stacks on Windows and Linux.
July 2008
- How to make a pure virtual call
- More of an anti-pattern than a how to - avoiding and/or diagnosing pure virtual function calls.
- IO Completion Ports - the UNIX equivalents
- In which we learn the UNIX equivalents of IOCPs.
- IO Completion Ports
- One of the better features in Windows. Sadly, very awkward to use correctly.
June 2008
- LCD screen hackery
- Some ideas on improving the LCD display on the Weebox.
April 2008
- The C library's strcmp routine is badly named
- My thoughts on the ill-named strcmp function.
February 2008
- Launching a debugger automatically
- Automatically launching the debugger for a particular executable.
- Things I didn't know about Visual Studio's Debugger
- Discussing debugger pseudovariables for accessing GetLastError return values.
December 2007
- Strict aliasing in C
- It's not OK anymore to cast willy nilly in C++. Well, it never was. But it's less so now.
- C++ header dependency tricks
- Some tricks for reducing dependencies and hence compile times in C++.
November 2007
- Ambiguous function overloading in C++
- C++ function overload resolution can be rather inscrutable. I try and make sense of a particular case.
- The three way handshake of understanding
- IRBasic - object-oriented BASIC
- An object-oriented BBC BASIC.
- More on BASIC line numbers
- More on the BBC BASIC binary line number encoding.
- BBC BASIC binary line number format
- A further look at BBC BASIC's in-memory format, specifically the line numbers.
- BBC BASIC V file format
- Exploring the BBC BASIC V file format. It's pretty damned clever.
- List comprensions in Perl using map {}
- A quick comparison of list processing in Perl and Python
- List comprehensions in Python
- The coolest thing in Python --- list comprehensions.
- More things I didn't know about Python
- Conditional expressions in Python 2.5
- HTML scraping in Python
- Discussing a couple of Python libraries designed for parsing real world websites.
- Easy Installation with ez_setup
- ez_setup: the quick and easy way to install new python libraries.
- Python sqlite3 gotchas
- A caveat for sqlite3 in Python - if your databases don't fill with data, this might be why.