The Curious Engineer

All blogs / Electronics

John Graham-Cumming's blog

blog.jgc.org

ElectronicsRetro computingComputing historySecurityMath

Posts
540 from 25 Nov 2005 to 9 Sep 2026
Posting
monthly (9 in the last year)
Kind
personal blog
Feed
https://blog.jgc.org/feeds/posts/default

2026 8

  1. Don't stick your SidePulse Pro in a Mac Studio
  2. For no apparent reason Oral-B removed flossing from their app
  3. The eerie interface of man and machine (Life Magazine, October 1967)
  4. The aperiodic table
  5. Raspberry Pi as an isolated AI coding server
  6. Maistro
  7. The European Schuko socket bothers me
  8. There's a ridiculous amount of tech in a disposable vape

2025 17

  1. If you care about security you might want to move the iPhone Camera app
  2. A couple of handy KNX gadgets
  3. Protecting your (my) passport from liquid damage
  4. Is a movie prop the ultimate laptop bag?
  5. Ex x
  6. Ode to the anti-Mac: Panasonic Toughbook FZ-40
  7. Pimping my Casio: Part Deux
  8. The discreet charm of the infrastructureless
  9. Low-background Steel: content without AI contamination
  10. It was time for a dim bulb current limiter
  11. Just one more calculator, bro, just one more, I swear it's the last one
  12. The Via Verde Stick
  13. Debugging Lotus 1-2-3 by fax
  14. I have come to loathe acronyms
  15. Archiving hardware projects
  16. Getting the KIM-1 to talk to my Mac
  17. Twenty years of the "GNU Make Standard Library"

2024 19

  1. The complete text of "All Watched Over by Machines of Loving Grace"
  2. badkeming: a site for kerning so bad it's keming
  3. "All your base are belong to us" introduction to my 2004 MIT Spam Conference talk
  4. Personalized voice recordings by Elwood "You've got mail!" Edwards
  5. Rabbit hole: stumbling across two Portuguese punched cards
  6. I made a rubbish clock
  7. Cracking an old ZIP file to help open source the ANC's "Operation Vula" secret crypto code
  8. Steve Ballmer's incorrect binary search interview question
  9. Two ways to use an LED as a light sensor with Arduino
  10. Acorn Computer Systems catalogue circa 1983
  11. Fixing my iPhone 13 Pro cameras at -18C
  12. Controlling the Taylor Swift Eras Tour wristbands with Flipper Zero
  13. The Economist's ugly new print typeface
  14. The formal development of secure systems (my 1992 doctoral thesis)
  15. Taschen, Acorn and Knoll's Law
  16. The Acme Klein Bottle (from Cliff Stoll and family)
  17. The original WWW proposal is a Word for Macintosh 4.0 file from 1990, can we open it?
  18. Repairing (sort of) a Dyson fan remote control
  19. My daily driver is older than I thought; it's positively vintage!

2023 30

  1. Compression of the lyrics of the "12 Days Of Christmas"
  2. Complete restoration of an IBM "Butterfly" ThinkPad 701c
  3. Using my Minitel 1B over the phone network in 2023
  4. My primality testing code is 6x faster than Sir Roger Penrose's
  5. Reading the Lovelace Foundation's Nuclear Bomb Effects Computer
  6. My 1976 KIM-1
  7. Why is the Internet so popular? The answer according to a 1995 ThinkPad 701c
  8. Cyberdecking the Raspberry Pi 400 on the Eurostar to Brussels
  9. "Hacker News" for retro computing and gaming
  10. The demise of my Aiwa HV-MX100 VCR
  11. Weekend bricolage: a lightbox for photographing electronics for under €15
  12. Weekend bricolage: an aroma picker for the Le Nez du Vin game
  13. Breathing life back into a Minitel 1B with the Minimit!
  14. SwissMicros' beautiful "HP" calculators
  15. Retrieving 1TB of data from a faulty Seagate Firecuda 530 drive with the help woodworking tools
  16. The Easter Egg that wasn't in Mission: Impossible – Dead Reckoning Part One
  17. Revisiting the "Cansole", my silly Pong game, because my TV doesn't have the right connectors
  18. Is it hard to design a mute button or something?
  19. Unfortunately, Kelly Rowland couldn't have used the =HYPERLINK() function to message Nelly
  20. How to beat an adaptive/Bayesian spam filter (2004)
  21. A little bit of SMD work on a bank holiday Tuesday
  22. A better case for my Inkplate 10-based weather device
  23. An unexpected journey: making the Yogasleep Travel Mini play the theme from Kung Fury
  24. Bringing the POPFile web site back from the dead
  25. A personal weather "picture" using the Soldered Inkplate 10 and Pirate Weather API
  26. The inner beauty of a Tesla Stropkov DS 3600 telephone from the early 1980s
  27. I don't have Twitter any more (updated Feburary 2024)
  28. Barebones project showing how to get an Inkplate 10 to talk to WiFi and the Internet over HTTPS using the Arduino IDE
  29. WAVE OK! The WWVB time signal sets my clock in Portugal for the second time
  30. Repairing a tiny ribbon cable inside a 28 year old IBM ThinkPad 701CS

2022 24

  1. Sea Glass: a "breathing" night light
  2. The Rogers Watch: a retro display and all the insides on the outside
  3. Restoring my Commodore P50 calculator with a little solder and a 3D printer
  4. Restoring my Rockwell 8R calculator with a 3D printer
  5. Primality testing on the Commodore P50 programmable calculator with one register and 23 steps
  6. The hidden "code" inside 2-XL's space age noises
  7. Childhood toys: 40 years on 2-XL works just fine
  8. The Halloduino: a microcontroller-powered Hallowe'en lantern
  9. Adding a mode switch to my Minitel 2
  10. Pimping my Casio with Oddly Specific Objects' alternate motherboard and firmware
  11. Updated my weather forecasting Totoro to use the Portuguese weather service
  12. Behind The Screens has a new home away from YouTube
  13. GNU Make Standard Library project moved to GitHub
  14. Adding a clock signal to my self-contained AVR programmer
  15. A self-contained AVR programmer using an Arduino Uno
  16. Guest WiFi using a QR code
  17. The parable of the form request form
  18. The mysterious behaviour of the Flying Tiger Countdown Clock (and the bug that causes it)
  19. Ripping old mini DV video tapes on a Mac
  20. Setting up and running the MAME emulation of the Minitel 2
  21. Voiding the warranty on a 1993 Minitel 2 to run arbitrary firmware
  22. Using a Minitel 1B as a serial terminal
  23. Resurrecting a Dataman S4 PROM programmer
  24. The "Roman Holiday" teleprinter code

2021 6

  1. Making an old USB printer support Apple AirPrint using a Raspberry Pi
  2. Receiving the WWVB time signal in Portugal (by accident)
  3. Cloudflare's SSL/TLS recommender on plan28.org
  4. Moving jgc.org to Cloudflare Pages
  5. Aeronear: an ambient device showing nearby aircraft
  6. Dividing n elements into groups of at least size g minimizing the size of each group

2020 2

  1. All the symmetrical watch faces (and code to generate them)
  2. The difference between parentheses and curly braces in GNU Make

2018 2

  1. The search for the "perfect" Advent Calendar (involves Python and Processing)
  2. Turning a cheap 'police light' into an IoT device

2017 4

  1. More deep dives into source code in TV and film
  2. A publishing experiment about source code in cinema and TV
  3. A Totoro to forecast the weather
  4. Computer languages I learnt before university

2016 11

  1. Sessions I moderated at the Cloudflare Internet Summit
  2. The CloudFlare Internet Summit
  3. Lazy GNU make variables
  4. Le Sixième Élément : le code source dans le cinéma
  5. Solving the SETI Decrypting Challenge
  6. Setting up CloudFlare's Universal SSL and Origin CA on Plan 28
  7. What the "Silicon Valley" Easter Egg code does and how
  8. Two factor paper passwords
  9. Apple's amusingly round reuse figures
  10. Making the BBC micro:bit display the BBC Micro owl logo
  11. Finding free images for commercial use

2015 11

  1. The secret message hidden in every HTTP/2 connection
  2. Possibly the machines that injected JavaScript in pre-revolution Tunisia
  3. Dirty Go: eliminating vertical space
  4. The effectiveness of Turing's Vigenère cipher breaking technique
  5. Another way to find the value of GNU make's -j parameter
  6. One weird trick that will give you makefile X-ray vision
  7. Plain web text offenders: sending my location over HTTP when HTTPS was possible
  8. The one line you should add to every makefile
  9. "The GNU Make Book": probably more than you ever wanted to know about make
  10. GNU make insanity: finding the value of the -j parameter
  11. Failing to RTFM for Go: defer statements

2014 4

  1. Coming soon: "The GNU Make Book" from No Starch Press
  2. Some talks about the history of computing
  3. "GNU Make Unleashed" withdrawn from sale; new version coming
  4. Restored

2013 39

  1. Mothballed
  2. Debugging for High-altitude Balloon Enthusiasts (and others!)
  3. Slides from Go London User Group September 2013 meeting: Go Memory
  4. Why is the fifth part of the GCHQ "Can you find it?" challenge so easy
  5. SIGINT Reading List
  6. OSCON 2013 Keynote: Turing's Curse
  7. Your test suite is trying to tell you something
  8. Write good commit messages
  9. The Plain Mail Snail: One way to make people switch to using encrypted email
  10. The hollow triangular numbers are divisible by three
  11. Some things I've learnt about public speaking
  12. Winner of the minimum coin problem
  13. The Four Power Days
  14. A home made periodic table
  15. The two problems I had to solve in my Oxford interview
  16. From the ground up (or how to encourage a school boy)
  17. How I coded in 1985
  18. The minimum coin problem (with prize)
  19. Update on Go 1.1 crypto performance
  20. The importance of open code
  21. PDF and eBook version of "A non-mathematical introduction to one-way functions and their use in securing passwords"
  22. Bob's wife Carla lends a speedy mind
  23. Alice strikes back against Bob's 'reverse dictionary'
  24. Possible solutions to Leo Marks' security conundrum
  25. Bob outsmarts Alice's 'one way function'
  26. A non-mathematical explanation of one way functions
  27. lulip: a line-level profiler for LuaJIT
  28. Performance of array creation in Lua
  29. Automatic bookmarking of locations in Emacs
  30. A simple illustration of Go interfaces
  31. Some Pig
  32. Updated list of my GNU Make articles
  33. How to fix a corrupted JavaScriptCore.framework on Mac OS X 10.7.5
  34. The greatest Google Mail feature you may not be using stopped working
  35. Integrating OpenSSL crypto functions with Go
  36. Lua implementation of Aho-Corasick string matching
  37. GMSL v1.1.3 Released
  38. Calling OpenSSL libcrypto functions from Go
  39. Archived posts from "Double Stealth"

2012 77

  1. Speeding up HTTP with minimal protocol changes
  2. Listen on a UDP port and dump received lines of data
  3. How I ended up with so much Hacker News karma
  4. A home-made Voltaic Pile
  5. The greatest Google Mail feature you may not be using
  6. The Bergamo Analemma
  7. "That'll Never Work!"
  8. The Rizzoli Conundrum
  9. Tempio Voltiano
  10. "Calculation and Tabulation in the Nineteenth Century: Airy versus Babbage"
  11. A downloadable nanosecond
  12. Plan 28 now accepting donations
  13. Web-scale Arduino
  14. The Great Railway Caper: Big Data in 1955
  15. Fact checking George Dyson (where he taps me on the shoulder)
  16. My UKHAS 2012 Conference talk: "HAB Software Woes"
  17. A water rocket made from household bits and bobs
  18. The UK has an entire IPv4 /8 that it isn't using (UPDATED)
  19. The Joy of Bit-Banging
  20. Conversion of cheap optical mouse to robot odometer
  21. An intuition/reality clash in Go
  22. A Go Gotcha that Got Me
  23. Automatic detection of a Google Mail log in
  24. CloudFlare's ScrapeShield spots single line of text copy/pasted from my blog
  25. Why don't they just..?
  26. Security questions are salt
  27. Curiosity rover writes Morse Code of JPL everywhere it goes
  28. My TED Talk: The Greatest Machine That Never Was
  29. The TENMA 72-8730 IR Thermometer
  30. Some things I've learnt about writing
  31. Tim Robinson joins Plan 28
  32. Some things I've learnt about programming
  33. The Perl script the powered the Alan Turing petition
  34. Things I like about programming in Go
  35. Waiting around for something to happen in Go
  36. What the final Turing Machine Google Doodle does
  37. Is there a 'Moore's Law' for web pages?
  38. New Scientist's Instant Expert on Alan Turing now free to non-subscribers
  39. Autograms
  40. One way to fix your rubbish password database
  41. Animated solution to the "Never gonna give you up" program problem
  42. Compression of the lyrics of "Never gonna give you up" using the Bentley/McIlroy algorithm
  43. To boldly Go where Node man has gone before
  44. Simonoids. It's 'Simon' in an Altoids can powered by Arduino
  45. Patching the Internet
  46. Reverse authentication for banking
  47. Make your own 'prime factorization' diagram
  48. tacoli: a simple logging format
  49. The Greatest Machine That Never Was
  50. Deglitching a Sparkfun 7-segment Serial Display
  51. Getting around the London 2012 branding police
  52. More support for open software in science
  53. Brief Plan 28 Update
  54. Bletchley Park is Blooming
  55. In praise of... text files and protocols
  56. A quick phone navigation tip
  57. Met Office and CRU argue for open data and open code
  58. Ambient bus arrival monitor from hacked Linksys WRT54GL
  59. Teaching yourself Morse Code with iPhone's Accessibility options
  60. Nine times table on your fingers (and algebraic explanation)
  61. How to divide by 9 really, really fast (and why it works)
  62. The Delilah Secure Speech System
  63. How to break the 'rapper code'
  64. Programmer
  65. Mobile subscriber leakage in HTTP headers in the wild
  66. The Case for Open Computer Programs
  67. Alan Turing's reading list (with readable links)
  68. So much for Google's Privacy Settings
  69. My foxhole radio
  70. UK Government declines to pardon Alan Turing
  71. Long range WiFi antenna from Illy coffee can
  72. Using GNU Make's 'define' and '$(eval)' to automate rule creation
  73. 2012 Plan 28 Media Coverage
  74. GAGA-2: Mounting the flight computer
  75. GAGA-2: Distance RTTY Test
  76. Gaga 2
  77. International Object Sizing Tool

2011 79

  1. A simple illustration of the use of goroutines and channels in Google Go
  2. A pre-Christmas Plan 28 update
  3. A back channel confirms that I'm right... sort of
  4. Down the GCHQ rabbit hole (or I think there really is a part 4)
  5. Is there another GCHQ Code Challenge?
  6. Downton Abbey Series 1 Episode 1 Morse Code
  7. A nice bottle of Lorem Ipsum 2009
  8. The Lack of Affordance Problem
  9. How to forcibly eject a CD/DVD from a MacBook Air USB SuperDrive
  10. Back from the dead with a power supply repair: my BBC Micro Model B
  11. Turning GE Color Effects G-35 Christmas Lights into a 7x7 display with Arduino
  12. My BBC Micro Model B and a plume of acrid smoke
  13. The Demon Machine
  14. Action this Day. Here's how to help Bletchley Park
  15. 2011 Plan 28 Media Coverage
  16. A program waits
  17. Lovelace's Leap
  18. Plan 28: Analytical Engine project gets underway
  19. The Pie Chart Challenge
  20. A security conundrum in Between Silk and Cyanide
  21. 'Sea trials' of a commercial 'Ponyo' boat
  22. Text and video of my OSCON 2011 Keynote presentation
  23. List of English words that can be spelt using elements from the periodic table
  24. GNU Make Recursive Wildcard Function
  25. Pronounceable IPv6 addresses, WPA2-PSK and hashes
  26. More experiments with expanding polyurethane foam
  27. The complete text of Gordon Brown's apology to Alan Turing
  28. Plan 28 is gathering steam
  29. Further experiment with expanding polyurethane foam
  30. Density of expanded polystyrene and expanded polyurethane foam
  31. Experiments with polyurethane foam for injection molding a HAB capsule
  32. Making a 'Ponyo' or putt-putt boat
  33. Mean and standard deviation of the distances between letters
  34. Importing an existing SSL key/certificate pair into a Java keystore
  35. Identification of homophone sequences in the Zodiac 408 cipher
  36. How The Zodiac enciphered the Zodiac 408 cipher
  37. My Email Canary
  38. Plan 28: June 2011 Update
  39. How to break the New Scientist cipher puzzle (part 3)
  40. Conversion of miles to kilometers (and back) using addition only
  41. Playing Pong on a pair of candy cans: it's the Cansole!
  42. The code on XIII : The Series
  43. O Atlas Geek: 128 Lugares Onde a Ciência e a Tecnologia Ganham Vida (The Geek Atlas in Portuguese)
  44. Next can-traption: Video Games Can-sole
  45. OSCON '11 Keynote: Turing, Perl and Palpatine.
  46. How to add iPod integration to a TV the cheesy way
  47. GAGA-1 Release Photos
  48. GAGA-1: The Flight
  49. All telemetry received from GAGA-1
  50. Internal log of GAGA-1 recovery computer
  51. Internal log of GAGA-1 camera
  52. GAGA-1: Quick post-flight update
  53. GAGA-1 looking good for Sunday
  54. GAGA-1: Integration testing
  55. Tentative launch date for GAGA-1: April 10, 2011
  56. GAGA-1: Parachute Test
  57. The Piral
  58. Geek Weekends
  59. GAGA-1: The Stack
  60. Geek Weekend: Charles Darwin's Home
  61. GAGA-1: flight computer testing
  62. GAGA-1: Another little freeze test
  63. GAGA-1: Working flight computer
  64. GAGA-1: The lovely sound of RTTY
  65. How could I have coded this better?
  66. GAGA-1: Parachute
  67. GAGA-1: Temperature measurement
  68. GAGA-1: Batteries
  69. GAGA-1: Voiding the warranty (for great justice!)
  70. Hacking the Toshiba T4800CT (a love story)
  71. Over 1,000 messages of support for Plan 28
  72. The State of Plan 28
  73. Calculating, rather than experimenting to find, resistor values for the NTX2 voltage divider
  74. The Genius of Turing
  75. Voltage divider calculator for Radiometrix NTX2
  76. GAGA-1: Flight Computer radio's first transmission
  77. GAGA-1: Getting close to completion
  78. The code injected to steal passwords in Tunisia
  79. A couple of videos of the Bombe cracking Engima at Bletchley Park

2010 95

  1. Why do Christmas lights all go out when one bulb blows? (and how to find the broken one)
  2. My password generator code
  3. Royal Festival Hall condundrum
  4. Write your passwords down
  5. Plan 28 gets some professional PR
  6. Don't write to me asking me to support your crusade against global warming science
  7. Shift Run Stop
  8. Backgrounder document on Plan 28
  9. If you want to understand the Analytical Engine, start with the Difference Engine No. 2
  10. Babbage books as stocking stuffers
  11. A boost for Plan 28
  12. GAGA-1: The Camera Hole
  13. Breaking the Reddit code
  14. GAGA-1: CoCom limit for GPS
  15. GAGA-1: Capsule insulation and antenna mounting
  16. Notes on Kryptos Part 4
  17. A proper Dr.
  18. GAGA-1 Recovery Computer Ground Test
  19. I guess Hacker News doesn't do meta very well
  20. The things make got right (and how to make it better)
  21. GAGA-1 Recovery Computer
  22. The most common objection to my 'releasing scientific code' post
  23. All Plan 28 Media Coverage
  24. A Plan 28 completion date
  25. Plan 28: the first 10 days
  26. What Nature didn't say
  27. Plan 28 (Analytical Engine) FAQ
  28. 1,000 people sign the Plan 28 pledge
  29. A big boost for Plan 28
  30. Geek Weekend: Kew Bridge Steam Museum
  31. 1,000 (bad) ideas
  32. The Analytical Engine vs. The ZX81
  33. Let's raise £500k for the Analytical Engine
  34. Charles Babbage and Climate Change
  35. Three Silicon Valley places Paul Graham omitted
  36. The 100-year leap
  37. GAGA-1: Computer mounting
  38. Start The Engine
  39. More technical opinions on the Analytical Engine project
  40. What to use instead of a pie chart
  41. A quick chat with Doron Swade
  42. Plan 28
  43. Another technical opinion on building the Analytical Engine
  44. Autotools
  45. Babbage machines in Meccano
  46. First opinion on whether the Analytical Engine could be built
  47. It's time to build the Analytical Engine
  48. GAGA-1 Source Code Repository
  49. GAGA-1: Capsule paint job
  50. Babbage's Debugger
  51. GAGA-1: Weight Budget
  52. GAGA-1: The Capsule
  53. GAGA-1: 2,766 tedious photographs and a log file
  54. GAGA-1: "Honey, there's a camera in the freezer"
  55. GAGA-1: Redundancy and Independence
  56. GAGA-1: Camera Hacking
  57. The Geek Atlas now available for Kindle
  58. An interview with me about The Geek Atlas
  59. On the release of scientific source code
  60. Eating your own dog food in the 1960s
  61. The bandwidth of a fully laden 747
  62. Monte Carlo simulation of One Banana, Two Banana to develop a card counting strategy
  63. GAGA-1: Some initial investigations
  64. The Geek Atlas Companion
  65. BallastHalo 5 launch afternoon out
  66. Gaga 1
  67. The CCE Review report
  68. Bayes, Bletchley, JN-25 and a 'modern' optimization
  69. An interview with me about The Geek Atlas
  70. Lots of domains are using crackable DKIM RSA keys
  71. Tribute to Alan Turing by a Second World War WREN
  72. Duodecimal
  73. The Elevator Button Problem
  74. A final reply about awarding a Knighthood to Alan Turing
  75. Facebook's DKIM RSA key should be crackable
  76. Your last name contains invalid characters
  77. 10:10 Code FAQ
  78. The 10:10 Code
  79. How to write a successful blog post
  80. How to sleep on a long haul flight
  81. Talking to Porgy
  82. The Offal Tower
  83. Squaring two digit numbers in your head
  84. Goodbye HP Procurve Access Point 420
  85. London Transport Museum: Acton Depot Weekend
  86. A welcome bunch of amateurs
  87. A bad workman blames his tools
  88. If you're searching remember your TF-IDF
  89. £1,000 for Bletchley Park thanks to The Geek Atlas
  90. Price drop on GNU Make Unleashed
  91. Update list of my GNU Make articles
  92. Mendelian Randomization: getting genes to run randomized trials for you
  93. Simplifying my OLPC XO-1 Temperature Sensor
  94. The Ikea Lillabo Processing code
  95. More fun with toys: the Ikea LILLABO Train Set

2009 31

  1. Toy decoding: vtech Push and Ride Alphabet Train
  2. Parsing a JSON document and applying it to an HTML template in Google Go
  3. Installing Google Go on Mac OS X
  4. Geek Weekend (Paris Edition), Day 4: Institut Pasteur
  5. Geek Weekend (Paris Edition), Day 3: The Arago Medallions
  6. Parsing HTML in Python with BeautifulSoup
  7. Geek Weekend (Paris Edition), Day 2: Foucault's Pendulum
  8. Security Now #221
  9. Geek Weekend (Paris Edition), Day 1: The Curie Museum
  10. Der Geek Atlas
  11. Some real data about JavaScript tagging on web pages
  12. Monopoly .com Edition
  13. Solving the XSS problem by signing <SCRIPT> tags
  14. Geek Side Trip: CERN
  15. POPFile v1.1.1
  16. JavaScript must die
  17. The Geek Atlas: now on your iPhone
  18. "Hello John. It's Gordon Brown."
  19. How to trick Apple Numbers into colouring individual bars on a bar chart
  20. Geek Weekend, Day 2: The Brunel Museum
  21. Geek Weekend, Day 1: Bletchley Park
  22. Regular expression are hard, let's go shopping
  23. In which I resurrect a 13 year old 3.5" floppy disk and reprint my doctoral thesis
  24. In which I switch on a 30 year old computer and it just works
  25. The world's simplest log file
  26. Just give me a simple CPU and a few I/O ports
  27. Please don't use pie charts
  28. Alan Turing deserves an apology from the British Government
  29. Frequently misunderstood logic: modus tollens
  30. A single line assignment filled with epic fail
  31. The 2009 Spam Conference at MIT

2008 19

  1. POPFile v1.1.0 Released
  2. Spaces are a pain in painless non-recursive Make
  3. The Ultimate Nerd Honeymoon
  4. Advice to a young programmer
  5. The Colarie: A new way of measuring calorie intake
  6. GNU Make Unleashed release
  7. POPFile v1.0.1 released plus a glimpse of the future
  8. Breaking the Fermilab Code
  9. The Spammers' Compendium finds a new home
  10. Multi-route (email and phone) self-aware phishing
  11. Building a temperature probe for the OLPC XO-1 laptop
  12. The sum of the first n odd numbers is always a square
  13. Tonight, I'm going to write myself an Aston Martin
  14. Interface to SQLite database in 23 lines of Arc
  15. My first Arc project: a simple Wiki
  16. PPP3 (final version) in Java and C
  17. The Arc Challenge Explained
  18. Proof that the sum of the squares of the first n whole numbers is n^3/3 + n^2/2 + n/6
  19. Another use of POPFile: detecting weakly encrypted email

2007 34

  1. The Seven Point Scale
  2. Double-checking Dawkins
  3. Steve Gibson's PPP... new version 3 in Java and C
  4. Cryptographically and Constantly Changing Port Opening (or C3PO)
  5. PPPv2 in Java and C
  6. A Java client implementation of Steve Gibson's PPP
  7. Times Square: a fun spammer GIF
  8. SOC Update and Google Maps integration
  9. An open source implementation of Steve Gibson's PPP algorithm
  10. More spammer crossword creativity
  11. Useful sources of messages for testing spam filters
  12. Why you don't want to code for a government department
  13. Last push for POPFile voting
  14. Please vote for POPFile
  15. Pretty Darn Fancy: Even More Fancy Spam
  16. Pretty Darn Fancy: Stock spammers using PDF files
  17. Escaping comma and space in GNU Make
  18. POPFile v0.22.5 Released
  19. Back from the EU Spam Symposium; here's my talk
  20. Some architectural details of Signal Spam
  21. Perhaps OCRing image spams really is working?
  22. Debugging: Solaris bus error caused by taking pointer to structure member
  23. Code to decode an a.b.c.d/n IP address range to the list of IP addresses
  24. So how much difference do stopwords make in a Naive Bayes text classifier?
  25. Introducing Usman's Law
  26. Electric Cloud wins a Jolt Productivity Award
  27. Calibrating a machine learning-based spam filter
  28. An image-based spam that brags about its own delivery
  29. Image spammers doing the twist
  30. Jack Bauer's Management Secrets #1: I need it!
  31. Trusted Email Connection Signing (rev 0.2)
  32. Proposal for connection signing reputation system for email: TECS
  33. What Makefile am I in?
  34. The Tao of Debugging

2006 25

  1. Bug fix: 12 Tasty Make Recipes Part II
  2. Two weeks of image spam innovation
  3. Yet more spammer image optimization; this time it's pretty
  4. Ransom note spam
  5. Why OCRing spam images is useless
  6. A spam image that slowly builds to reveal its message
  7. Ye Olde OCR Buster
  8. A Test::Class gotcha
  9. Image spam filtering BOF at Virus Bulletin 2006 Montreal
  10. A C implementation of my simple GPS code
  11. Optimal SMS keyboard layouts
  12. Subliminal advertising in spam?
  13. A simple code for entering latitude and longitude to GPS devices
  14. How I love my HP-16C
  15. Free GNU Make documentation
  16. Bayesian Poisoning paper pointers
  17. Stateless web pages with hashes
  18. Would you buy a "GNU Make Cookbook" e-book?
  19. A small bug fix to my keep state shoehorning
  20. Rebuilding when the hash has changed, not the timestamp
  21. Shoehorning Keep State into GNU Make
  22. Deconstructing Sundance with POPFile
  23. The WMF SetAbortProc problem is not a backdoor
  24. Do spammers fear OCR?
  25. Python is the new Tcl; Ruby is the new Perl

2005 3

  1. CSS absolute positioning scatter plot
  2. GMSL gets set functions
  3. GNU Make Debugger released