| CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Date: Wed, 14 Jan 2026 23:29:24 GMT
Server: Apache/2.4.65 (Debian) OpenSSL/1.1.1w mod_perl/2.0.11 Perl/v5.32.1
Location: https://dotat.at/@/
Content-Length: 346
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 OK
Date: Wed, 14 Jan 2026 23:29:24 GMT
Server: Apache/2.4.65 (Debian) OpenSSL/1.1.1w mod_perl/2.0.11 Perl/v5.32.1
Last-Modified: Wed, 14 Jan 2026 02:49:23 GMT
ETag: "1a1c7-6485027ded64e-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 24979
Content-Type: text/html
Tony Finch – blog archive contents
Tony Finch – blog archive contents
2026
2025
- 2025-12-25 – doubly dual shuffles
- 2025-10-24 – how to draw a tetrapod
- 2025-09-14 – a few notes on ratelimiting
- 2025-09-11 – first-class merges and cover letters
- 2025-08-28 – strongly typed?
- 2025-08-06 – p-fast trie, but smaller
- 2025-08-04 – p-fast trie: lexically ordered hash map
- 2025-07-02 – clamp / median / range
- 2025-06-28 – Golang and Let's Encrypt: a free software story
- 2025-06-08 – performance of random floats
- 2025-06-01 – moka pot notes
- 2025-05-28 – the algebra of dependent types
- 2025-05-13 – the penultimate conditional syntax
- 2025-04-30 – testing data structures per element
- 2025-03-30 – syntax highlighting with tree-sitter
- 2025-03-05 – constantly divisionless random numbers
- 2025-02-13 – random numbers from pcg32 at 200 Gbit/s
2024
- 2024-12-30 – obfuscated C revisited
- 2024-12-05 – nsnotifyd-2.3 released
- 2024-11-28 – nsnotifyd-2.2 released
- 2024-11-24 – petnames and Zooko's fan
- 2024-11-06 – getopt() but smaller
- 2024-10-22 – against /tmp
- 2024-10-01 – getentropy() vs RAND_bytes()
- 2024-09-02 – exponential rate limiting
- 2024-08-30 – GCRA: leaky buckets without the buckets
- 2024-08-02 – C is Turing complete
- 2024-07-31 – tolower() small string performance
- 2024-07-28 – tolower() with AVX-512
- 2024-07-18 – semaphores in Golang and GNU make
- 2024-06-25 – inlined nearly divisionless random numbers
- 2024-06-12 – nsnotifyd-2.1 released
- 2024-05-22 – regpg-1.12
- 2024-05-13 – Unix version control lore: what, ident
- 2024-05-12 – BIND9 dnssec-policy appendices
- 2024-05-11 – Migrating to BIND9 dnssec-policy
- 2024-05-08 – Introducing BIND9 dnssec-policy
- 2024-05-05 – Moaning about YAML frontmatter
- 2024-05-02 – sudon't
- 2024-04-30 – My wireguard IPv6 tunnel
- 2024-03-27 – Resurrected link log
- 2024-03-26 – On "the OSI deprogrammer"
- 2024-02-05 – Joining ellipses with matching tangents
- 2024-01-29 – Constructing a four-point egg
2023
- 2023-12-23 – Popcorn
- 2023-12-20 – Novelkeys Kailh Big Switch build howto
- 2023-12-15 – My spaghetti carbonara recipe
- 2023-08-09 – Purple PCBs for Keybird69
- 2023-08-06 – LEGO Technic beam sandwich keyboard case
- 2023-08-05 – Some subtleties of keycaps
- 2023-08-04 – The unix69 keyboard layout: nerdy and nice
- 2023-08-04 – I made a keyboard!
- 2023-06-23 – More random floating point numbers
- 2023-06-23 – Random floating point numbers
- 2023-06-21 – PCG64 DXSM random number generator
- 2023-05-28 – Where does "where does my computer get the time from?" come from?
- 2023-05-26 – Where does my computer get the time from?
- 2023-05-22 – RIPE DNS Hackathon
- 2023-02-28 – A qp-trie for BIND
- 2023-02-12 – libc delenda est
- 2023-01-27 – What does it mean to be an RCU implementation?
- 2023-01-24 – Concurrent qp-trie performance numbers
- 2023-01-14 – Cataract surgery
- 2023-01-10 – Safe memory reclamation for BIND
2022
- 2022-12-12 – Slower DNS name decompression
- 2022-12-05 – BIND zone transfer performance
- 2022-12-04 – An update on leap seconds
- 2022-11-17 – Faster DNS name decompression
- 2022-10-12 – hg64 multithreaded histograms
- 2022-09-23 – How big is this integer type?
- 2022-07-15 – hg64: a 64-bit histogram data structure
- 2022-07-01 – A DNS name compression algorithm
- 2022-06-27 – tolower() in bulk at speed
- 2022-06-22 – Compacting a qp-trie
- 2022-06-04 – Choice on Units of Measurement: Markings and Sales
- 2022-04-20 – really divisionless random numbers
- 2022-03-25 – IETF 113, Vienna, second half
- 2022-03-21 – IETF 113, Vienna, first half
- 2022-02-23 – Addenbrooke's cataract clinic
- 2022-01-25 – nsnotifyd-2.0 released
2021
- 2021-12-20 – Mac Mini Linux frustration
- 2021-11-30 – On the move
- 2021-09-22 – My cataract
- 2021-06-23 – Page-based GC for qp-trie RCU
- 2021-06-11 – Two highlights of 2021
- 2021-04-10 – Miles and metres
- 2021-03-22 – Preparing DNS names for faster radix tree lookups
- 2021-03-01 – A one-pass DNS-trie?
- 2021-02-27 – What is a subdomain?
2020
- 2020-12-12 – Terminal.app xterm compatibiity
- 2020-12-08 – Clever but foolish
- 2020-12-06 – Vanishing zeroes for geometric algebra in Rust
- 2020-11-13 – Leap second hiatus
- 2020-10-29 – nearly divisionless random numbers
- 2020-10-24 – Some more notes on endianness
- 2020-09-17 – Generalized string literal syntax, 10 years later
- 2020-09-14 – da Vinci bridges
- 2020-09-12 – Some notes on endianness
- 2020-08-27 – 21st century lighting: LED tubes
- 2020-07-07 – A compelling idea: the genesis of my DNS-trie
- 2020-02-14 – SHA-1 and DNSSEC validation
- 2020-01-15 – DNSSEC algorithm rollover HOWTO
- 2020-01-09 – SHA-1 chosen prefix collisions and DNSSEC
2019
2018
- 2018-12-26 – Boxing day ham with bubble and squeak
- 2018-11-14 – Help me choose colours
- 2018-10-23 – Amsterdam day 7
- 2018-10-18 – Amsterdam day 6
- 2018-10-18 – Amsterdam day 5
- 2018-10-17 – Amsterdam day 4
- 2018-10-16 – Amsterdam day 3
- 2018-10-14 – Amsterdam day 2
- 2018-10-14 – Amsterdam day 1
- 2018-10-12 – Amsterdam day 0
- 2018-08-01 – Yak shaving
- 2018-06-28 – Beer Festival week hacking notes - epilogue
- 2018-05-25 – Beer Festival week hacking notes - Thursday
- 2018-05-23 – Beer Festival week hacking notes - Wednesday
- 2018-05-23 – Beer Festival week hacking notes - Tuesday
- 2018-05-22 – Beer Festival week! Hacking notes for Monday
- 2018-05-11 – More on web server smoke tests
- 2018-05-09 – How to test a web server before pointing the DNS at it
- 2018-04-13 – dnstap fanout and replay
- 2018-04-09 – DNSSEC localized validation
- 2018-03-28 – My comments on the ICANN root DNSSEC key rollover
- 2018-03-27 – IPv6 DAD-die issues
- 2018-03-23 – IETF 101 - Thursday and Friday
- 2018-03-22 – IETF 101 - Wednesday
- 2018-03-21 – IETF 101 - Tuesday
- 2018-03-20 – IETF 101 - Monday
- 2018-03-18 – IETF 101 Hackathon, day 2
- 2018-03-17 – IETF 101 Hackathon, day 1
- 2018-03-07 – Secure Let's Encrypt ACME DNS challenges with BIND
- 2018-02-17 – Bloggone
2017
- 2017-04-06 – Moving to Dreamwidth
- 2017-03-30 – A review of Ansible Vault
- 2017-03-27 – Better terminology
- 2017-02-02 – keepalived DNS health checker revamp
- 2017-01-11 – Even more compact encoding of the leap seconds list
- 2017-01-10 – QP trie news roundup
- 2017-01-10 – Named and optional function arguments in C99
- 2017-01-08 – Compact encoding of the leap seconds list
2016
- 2016-10-19 – Domain transfers are shocking
- 2016-10-05 – Version number comparisons in Apache and GNU coreutils
- 2016-10-01 – Aperiodic shower curtain
- 2016-09-26 – DNS ADDITIONAL data is disappointingly poorly used
- 2016-09-09 – Listing zones with jq and BIND's statistics channel
- 2016-09-04 – A regrettable rant about politics
- 2016-09-02 – An exciting visit to the supermarket
- 2016-08-09 – Single-character Twitter usernames
- 2016-07-28 – Domain registry APIs and "superglue"
- 2016-07-19 – Uplift from SCCS to git, again
- 2016-06-15 – Tactile paving addenda
- 2016-06-13 – Tactile paving
- 2016-06-01 – Experimenting with
_Generic()for parametric constness in C11 - 2016-05-20 – Even the Deathstation 9000 can't screw up the BIND 9.10.4 fix
- 2016-05-13 – 6 reasons I like Wintergatan
- 2016-05-08 – Belated job update
- 2016-05-08 – Apple calendar apps amplifying .ics VALARM ACTION:EMAIL
- 2016-05-06 – A colophon for my link log
- 2016-04-29 – Capability myths demolished
- 2016-04-22 – Synergy vs xmodmap: FIGHT!
- 2016-04-15 – Warning, incoming Dilbert
- 2016-04-13 – Using a different X11 window manager with XQuartz
- 2016-03-22 – Vehicular nominative amusement
- 2016-03-11 – Confidentiality vs privacy
- 2016-03-01 – Attacking and defending DNS over TCP
- 2016-02-29 – Update to my Raspberry Pi vs E450 comparison
- 2016-02-19 – Raspberry Pi 2 vs Sun E450
- 2016-02-18 – preheating a BIND cache with adns-masterfile
- 2016-02-05 – DNS DoS mitigation by patching BIND to support draft-ietf-dnsop-refuse-any
- 2016-01-25 – A rant about whois
- 2016-01-22 – Outside Winter Insulation 7-layer clothing model
- 2016-01-02 – Hammerspoon hooks for better screen lock security on Mac OS X
- 2016-01-01 – SFO / San Francisco / Such a Fucking idiOt
2015
- 2015-12-03 – unifdef-2.11
- 2015-11-17 – C preprocessor expressions
- 2015-11-12 – LOC records in ac.uk
- 2015-11-11 – Chemical element symbols that are also ISO 3166 country code abbreviations
- 2015-10-21 – Cutting a zone with DNSSEC
- 2015-10-19 – never mind the quadbits, feel the width!
- 2015-10-11 – prefetching tries
- 2015-10-07 – crit-bit tries without allocation
- 2015-10-04 – qp tries: smaller and faster than crit-bit tries
- 2015-09-22 – DNAME for short-prefix classless in-addr.arpa delegation
- 2015-09-04 – Rachel update
- 2015-08-21 – Fare thee well
- 2015-08-17 – Plague
- 2015-08-15 – Rachel's leukaemia
- 2015-08-11 – What I am working on
- 2015-07-23 – nsdiff-1.70 now with added nsvi
- 2015-07-02 – nsnotifyd-1.1: prompt DNS zone transfers for stealth secondaries
- 2015-06-15 – nsnotifyd: handle DNS NOTIFY messages by running a command
- 2015-04-27 – FizzBuzz with higher-order cpp macros and ELF linker sets
- 2015-02-24 – DNSQPS: an alarming shell script
- 2015-02-16 – DNS server rollout report
- 2015-01-30 – Recursive DNS rollout plan - and backout plan!
- 2015-01-24 – New release of nsdiff and nspatch version 1.55
- 2015-01-17 – BIND patches as a byproduct of setting up new DNS servers
- 2015-01-09 – Recursive DNS server failover with keepalived --vrrp
- 2015-01-07 – Network setup for Cambridge's new DNS servers
2014
- 2014-11-27 – Uplift from SCCS to git
- 2014-11-22 – Nerdy trivia about Unix time_t
- 2014-11-22 – Bookmarklets
- 2014-10-30 – The early days of the Internet in Cambridge
- 2014-10-15 – POP, IMAP, SMTP, and the POODLE SSLv3.0 vulnerability.
- 2014-07-14 – Data structures and algorithms
- 2014-05-14 – Dilbert feeds
- 2014-03-25 – Update to SSHFP tutorial
- 2014-03-24 – SSHFP tutorial: how to get SSHFP records, DNSSEC, and VerifyHostKeyDNS=yes to work.
- 2014-02-19 – Relative frequency of initial letters of TLDs
- 2014-01-29 – Diffing dynamic raw zone files in git with BIND 9.10
2013
- 2013-12-03 – A weird BIND DNSSEC resolution bug, with a fix.
- 2013-11-13 – Temporum: secure time: a paranoid fantasy
- 2013-11-11 – Security considerations for temporum: quorate secure time
- 2013-11-09 – nsdiff 1.47
- 2013-10-29 – Temporum: Quorate secure time
- 2013-10-23 – My circular commute
- 2013-10-08 – Maintaining a local patch set with git
- 2013-10-06 – Bacon and cabbage
- 2013-08-14 – Subverting BIND's SRTT algorithm: derandomizing NS selection
- 2013-06-17 – Dominoes and dice patterns
- 2013-06-02 – Guilty pleasures
- 2013-05-16 – Mixfix parsing / chain-associative operators
- 2013-05-03 – Two compelling applications for universal surveillance
- 2013-04-11 – DNS reflection / amplification attacks: security economics, nudge theory, and perverse incentives.
- 2013-03-14 – It is hard to test a DNSSEC root trust anchor rollover
- 2013-03-06 – DoS-resistant password hashing
- 2013-02-27 – ccTLD registry web server survey
- 2013-02-21 – "HTTPSEC" and DJB vs DNSSEC
- 2013-01-30 – More Oxbridge college name comparisons
- 2013-01-29 – Cambridge college domain names
2012
- 2012-12-04 – Distributed (micro-) blogging / how many markets does your protocol support?
- 2012-12-03 – Quesadillas
- 2012-11-30 – Can't send mail from an Apple Mac via a BT Internet connection.
- 2012-09-25 – Large-scale IP-based virtual hosting
- 2012-09-24 – New TLDs and RFC 1535
- 2012-08-17 – More random errors
- 2012-08-16 – FreeBSD device nodes and chroots
- 2012-08-02 – Desirable properties of names and Zooko's Triangle
- 2012-07-15 – Salads for someone who doesn't like salads
- 2012-06-27 – Pi time
- 2012-06-12 – The qmail ANY query bugs
- 2012-06-08 – Rate limiting DNS
- 2012-06-08 – Blaming the spam victim
- 2012-06-07 – DNSSEC lookaside validation stats
- 2012-06-07 – DNSSEC and indirection
- 2012-06-06 – Security error in GMail's TLS setup
- 2012-05-09 – Transparently auditable automatic vote counting
- 2012-05-02 – A couple of interesting networking papers
- 2012-04-18 – Staff seminar on version control systems
- 2012-04-13 – Political engagement
- 2012-04-04 – UK communications monitoring / advance notification to Ofcom
- 2012-03-27 – Pogonotomy
- 2012-02-28 – Path names in a rootless DNS
- 2012-02-03 – Adventures with IPv6 DNS hosting
- 2012-02-02 – Tennent's correspondence principle, closures and continuations.
- 2012-01-31 – On the safety of SSHFP records.
- 2012-01-09 – Contents of my pot of small change
2011
- 2011-12-07 – nsdiff 1.33
- 2011-12-05 – Mail switch naming and addressing at Cambridge
- 2011-12-01 – Some notes on git hosting software
- 2011-11-29 – DNS DNAME interoperability problems
- 2011-10-11 – Time on Terra Nova
- 2011-09-14 – How my link log works
- 2011-09-12 – Lua Workshop 2011
- 2011-09-02 – Version 1.13 of nsdiff
- 2011-08-31 – Web browser stats
- 2011-08-30 – MUA stats
- 2011-08-20 – We cannot use Google+
- 2011-08-09 – New version of nsdiff
- 2011-07-08 – unifdef and getline()
- 2011-06-09 – IPv6 day stats
- 2011-06-08 – In which IPv6 day turns out to be unexpectedly exciting
- 2011-05-31 – The state of DNSSEC deployment
- 2011-05-25 – Why I am not a fan of the locator / identifier split
- 2011-05-23 – JANET IPv6 address allocations
- 2011-05-23 – IPv6 day
- 2011-05-11 – DNS and system configuration vs. application data.
- 2011-05-04 – DNSSEC with BIND 9.8.0
- 2011-04-12 – Unicode and binary data
- 2011-02-18 – Programming languages in configuration files
- 2011-01-17 – Debit several clue points from Le Crédit Lyonnais
- 2011-01-05 – Do programming languages have terroir?
2010
- 2010-12-25 – 55555.55555
- 2010-12-07 – Amazon "Route 53" authoritative DNS service
- 2010-11-22 – Abuse of mailing lists
- 2010-11-16 – Interior iteration with less period pain
- 2010-11-13 – Iteration Intuition
- 2010-11-10 – Smooth colouring is the key to the Mandelbrot set
- 2010-10-14 – Missing text in messages from Outlook
- 2010-10-03 – Twitter echo chamber fail
- 2010-09-23 – The University and College Union are spammers
- 2010-08-24 – Timezone display by MUAs
- 2010-08-22 – Simple shell scripting for Twitter
- 2010-07-30 – Paul Vixie declares war on malicious domain names.
- 2010-07-30 – Keyboard shortcuts for positioning windows in Mac OS X
- 2010-07-22 – Obscure problem caused by bad DNS load balancer
- 2010-07-16 – How to set up DNSSEC validation with BIND-9.7
- 2010-05-25 – IETF working group news...
- 2010-05-21 – Weird message SMTP dot-stuffing bug
- 2010-05-12 – The Red Flag no longer flies over Downing Street
- 2010-04-16 – User agent stats
- 2010-03-01 – A command-line interface to Virustotal
- 2010-02-05 – More coroutines
- 2010-02-05 – Generalized literal syntax for programming languages
- 2010-01-22 – Coroutines in less than 20 lines of standard C
2009
- 2009-12-16 – stupid email disclaimers
- 2009-12-11 – Signing the root zone.
- 2009-12-09 – iCalendar is wrong
- 2009-11-26 – FreeBSD unifdef(1) and factor(6)
- 2009-11-07 – More spam bot signatures
- 2009-11-05 – Spam bot signatures
- 2009-10-30 – ENHANCEDSTATUSCODES FAIL
- 2009-10-30 – bogon spam
- 2009-10-27 – Penalising senders who use invalid recipient addresses
- 2009-09-16 – DNSSEC
- 2009-09-02 – Firewall fallout / Exchange oddity
- 2009-09-01 – More firewall hate
- 2009-08-11 – Job Ad - VOIP sysadmin
- 2009-08-11 – Duplex printers
- 2009-08-10 – Sainsbury's self-checkout fail
- 2009-07-30 – More on O(log(log(n))) searching
- 2009-07-28 – Searching a sorted array faster than O(log(N))
- 2009-06-09 – Tempting Fate, and getting her unwanted attention
- 2009-06-02 – CRSIDs and email addresses
- 2009-05-15 – Use your bonce
- 2009-05-14 – Define SCM
- 2009-05-13 – Never delete anything
- 2009-04-23 – Some thoughts about git
- 2009-04-08 – LISTSERV crapness
- 2009-04-02 – Configuration management
- 2009-03-25 – Ada Lovelace Day
- 2009-03-15 – John Taylor talks about the Corpus clock
- 2009-03-05 – Job Ad
- 2009-02-21 – The joy of lpeg
- 2009-02-21 – Microblogging
- 2009-02-05 – Impressive display of security clue from the Student Loans Company
- 2009-01-29 – Meanies
- 2009-01-27 – Luck or judgment?
- 2009-01-21 – The MacBook saga
- 2009-01-16 – RJ45 is too fat
2008
- 2008-12-01 – Weird network bug
- 2008-11-18 – Licence revoked
- 2008-11-06 – Licence to spam
- 2008-11-05 – REST FAIL
- 2008-10-08 – LOLauditors
- 2008-09-30 – More on the Corpus Christi Chronophage clock
- 2008-09-22 – The Corpus Christi Chronophage Clock
- 2008-09-15 – The date of the count
- 2008-09-15 – Symbolic links
- 2008-09-10 – Counting the days
- 2008-09-04 – Faster LIAR (Life in a register)
- 2008-08-28 – More postcodes
- 2008-08-27 – UK postcode regular expression
- 2008-08-27 – Birthday present
- 2008-08-20 – Job ad
- 2008-08-07 – Kaminsky
- 2008-07-31 – To do
- 2008-07-30 – selog-8.7.30 - selective logging library
- 2008-07-24 – More Kaminsky
- 2008-07-24 – ClamAV aargh
- 2008-07-23 – Kaminsky's DNS hack
- 2008-07-23 – A ratelimit idea
- 2008-06-18 – Murray Edwards College
- 2008-06-11 – Venti, Foundation, Bloom filters, and Erlang
- 2008-06-04 – Bike
- 2008-06-03 – Tech talk
- 2008-06-03 – Lotus Notes
- 2008-05-16 – Need a better name than post-postmodern
- 2008-05-09 – Password scanning
- 2008-05-07 – Dealing with phishers
- 2008-05-06 – floaty fiddling
- 2008-04-29 – TCP narg/rant
- 2008-04-18 – A bug in gcc
- 2008-04-17 – some ports are more equal than others
- 2008-04-15 – Annoying things
- 2008-04-15 – A little more Hashlife
- 2008-04-11 – invitation spam
- 2008-04-10 – ANNOUCE: selog - selective logging library
- 2008-04-03 – thread-aware libraries
- 2008-04-01 – DST is silly
- 2008-03-05 – pointfree life
- 2008-03-05 – leaky life
- 2008-03-04 – gzip vs. zlib
- 2008-03-02 – unifdef everywhere
- 2008-02-29 – unifdef
- 2008-02-12 – What goes around comes around
- 2008-02-12 – Hashlife
- 2008-02-07 – Endianness and C
- 2008-02-05 – What use are Bloom filters, anyway?
- 2008-02-04 – VoIP guru wanted
- 2008-01-29 – Still looking for a developer
- 2008-01-28 – More about Bloom filters
- 2008-01-27 – Some notes on Bloom filters
- 2008-01-24 – Barracuda are morons
- 2008-01-22 – LIAR: Life in a register
2007
- 2007-11-20 – Pointer magic
- 2007-11-19 – Chain of distraction
- 2007-11-08 – Hot off the presses
- 2007-10-26 – An older 999 story
- 2007-10-25 – Slightly mugged
- 2007-10-04 – Random observations
- 2007-09-30 – Computers for children
- 2007-09-18 – Session layers, again
- 2007-09-17 – World's smallest stratum 1 NTP server?
- 2007-09-17 – Stringing along
- 2007-09-15 – Comprehending endianness
- 2007-09-06 – Another job: sysadmin for Stephen Hawking's supercomputer
- 2007-09-05 – Even more jobs
- 2007-09-03 – More jobs
- 2007-08-23 – best SOA evar!
- 2007-08-22 – A song of the weather
- 2007-08-21 – Job ad - database administrator and developer
- 2007-08-11 – Quoting BETA
- 2007-08-09 – The scalability of Erlang-style message passing
- 2007-08-08 – Dear Google staffing team
- 2007-08-03 – Warning to Linux postmasters
- 2007-08-03 – An OpenSSH patch
- 2007-07-30 – A Cyrus Sieve bug
- 2007-06-29 – Mock the stupid
- 2007-06-23 – Spelling reform is pointless
- 2007-06-22 – A case for Lua
- 2007-06-11 – Parsing expression grammars
- 2007-06-05 – Opening new emacs frames
- 2007-05-20 – Promises are equivalent to channels
- 2007-04-16 – Awash in a C of objects
- 2007-04-12 – MAPS sucks
- 2007-04-07 – Drunken insanity
- 2007-03-29 – TLDs with MXs
- 2007-03-21 – Job ad
- 2007-03-21 – How not to design an MTA - part 7 - content scanning
- 2007-03-19 – Hermes is all secure now
- 2007-03-09 – Good anti-spam news
- 2007-02-28 – Notes on an MTA scheduler
- 2007-02-25 – Slides from Wednesday's talk
- 2007-02-22 – Drunken insanity
- 2007-02-13 – How not to design an MTA - part 6 - address verification
- 2007-02-12 – SMTP checkpoint/resume
- 2007-01-05 – Greenwich meridian
- 2007-01-02 – Secure IMAP and POP
2006
- 2006-12-22 – Proleptic UTC
- 2006-12-20 – Clocks
- 2006-11-24 – Another commit bit
- 2006-11-23 – new computer officer intro / machine room tour
- 2006-11-16 – The recent increase in spam
- 2006-11-15 – Why the π calculus is wrong
- 2006-11-15 – Government Secure Intranet
- 2006-11-10 – Inverting iterators
- 2006-11-09 – SMTP checkpoint/resume
- 2006-11-01 – More log-structured MTA queues.
- 2006-11-01 – Constraining continuations
- 2006-10-27 – Job: head of networks and telecoms
- 2006-10-25 – Desugaring with continuations
- 2006-10-05 – (s)unifdef
- 2006-10-05 – More about log-structured MTA queues.
- 2006-09-21 – Scalable log processing
- 2006-09-20 – A new acronym
- 2006-09-19 – How not to design an MTA - part 5 - spool file logistics
- 2006-09-19 – How not to design an MTA - part 4 - spool file format
- 2006-09-15 – no-longer-simple mail transport protocol
- 2006-08-22 – Sender: headers again
- 2006-08-22 – Message header manipulation by mailing lists
- 2006-08-11 – Email message identification
- 2006-07-20 – Exim course in Cambridge
- 2006-07-14 – RAID doom
- 2006-07-11 – Damnit!
- 2006-07-05 – Anonymous arseholes
- 2006-07-03 – DJB / cdb
- 2006-06-29 – Job ad
- 2006-06-21 – Let that be a warning to you
- 2006-06-20 – The rise and fall of the IETF?
- 2006-06-19 – ☆
- 2006-06-16 – Kaboom!
- 2006-06-16 – How not to design an MTA - part 3 - local delivery
- 2006-06-09 – RFC 2222 bis inter alia
- 2006-06-09 – eigenlanguages
- 2006-06-07 – internationalized email
- 2006-05-31 – Programming with complex numbers
- 2006-05-30 – Country code changes
- 2006-05-12 – Kenya
- 2006-05-12 – AfNOG
- 2006-05-05 – More AfNOG
- 2006-05-04 – Kooks
- 2006-05-04 – AfNOG pictures
- 2006-05-04 – AfNOG @ Nairobi
- 2006-05-03 – In Nairobi
- 2006-04-25 – RFC 2476 bis
- 2006-04-24 – International jet set
- 2006-04-21 – chat service update
- 2006-04-20 – virtual chat host
- 2006-04-17 – More alternative architectures
- 2006-04-11 – Why you want single sign-on
- 2006-04-08 – My URL log
- 2006-04-07 – Windows, rates, and congestion control
- 2006-04-05 – "window-based" protocol
- 2006-04-03 – More strategic visions
- 2006-03-30 – Strategy month
- 2006-03-30 – Signal mis-handling
- 2006-03-28 – Tax-deductable open source
- 2006-03-28 – Durham University IT services regulations
- 2006-03-17 – The Internet needs a session layer
- 2006-03-17 – Irony! Schadenfreude!
- 2006-03-17 – Addressing and sessions
- 2006-03-15 – More SMTP optimization
- 2006-03-06 – In the news
- 2006-03-03 – Updated QUICKSTART spec
- 2006-03-01 – Email volume
- 2006-03-01 – DNS-assisted flooding attacks
- 2006-02-23 – More streamlining
- 2006-02-21 – Streamlined message submission
- 2006-02-20 – Nominative determinism
- 2006-02-19 – How not to design an MTA - part 2 - partitioning for security
- 2006-02-17 – LMTP and EXDATA
- 2006-02-16 – How not to design an MTA - part 1 - the sendmail command
- 2006-02-07 – Quick response
- 2006-02-06 – Virus names
- 2006-02-02 – Grammar
- 2006-02-01 – Some people just don't get email
- 2006-01-31 – Millennium Post
- 2006-01-31 – Chat progress?
- 2006-01-27 – More racking
- 2006-01-25 – Techlinks talk
- 2006-01-25 – fun with Jabber + google maps
- 2006-01-20 – The joy of disks
- 2006-01-19 – ☆
- 2006-01-19 – The joy of racks
- 2006-01-19 – Smoothed leap seconds
- 2006-01-18 – Jabber federation
- 2006-01-18 – IETF widget exchange working group
- 2006-01-17 – Oh bloody hell
- 2006-01-17 – Jabber federation
- 2006-01-17 – AGP+PCI multihead, attempts two and three
- 2006-01-16 – rate limiting again
- 2006-01-10 – Legal papers served by email
- 2006-01-10 – Attack-resistant trust metrics.
- 2006-01-09 – ☆
- 2006-01-06 – Irritations
- 2006-01-04 – Joe jobbing
- 2006-01-04 – from me on behalf of myself
2005
- 2005-12-15 – ☆
- 2005-12-12 – Jingle approaches JEP
- 2005-12-12 – chat service update
- 2005-12-07 – Meta Matters
- 2005-12-06 – UKUUG abstract
- 2005-12-06 – Jabber
- 2005-12-01 – Not so soon...
- 2005-11-11 – Signing up for more work
- 2005-11-10 – Ten thousand thundering typhoons!
- 2005-11-03 – Tottering piles of crapware
- 2005-11-02 – Pictures
- 2005-10-26 – More about Thunderbird
- 2005-10-26 – Feedback
- 2005-10-25 – Deathless prose
- 2005-10-23 – Composable Berkeley Transactions
- 2005-10-21 – ☆
- 2005-10-20 – mergesort for linked lists
- 2005-10-13 – ☆
- 2005-10-08 – Frustrated by Thunderbird
- 2005-10-05 – more bind bogons
- 2005-10-04 – no DNS tunnelling here, please
- 2005-09-19 – Echsim
- 2005-09-16 – Subtle hackery
- 2005-07-28 – SMTP syntax errors
- 2005-07-25 – Clustered hints databases for Exim?
- 2005-07-05 – Typesetting music
- 2005-07-04 – Security
- 2005-06-15 – NFA? DFA?
- 2005-05-19 – Flood protection patch
- 2005-05-10 – Email protocol kooks
- 2005-05-09 – More flood protection
- 2005-05-06 – Flood protection
- 2005-04-14 – ☆
- 2005-04-04 – ☆
- 2005-03-30 – More abuse of Exim
- 2005-03-18 – Letter to Prospect Magazine
- 2005-03-17 – ☆
- 2005-03-09 – Exim CSA patch
- 2005-03-08 – Documentation
- 2005-03-08 – Brief diversion
- 2005-03-07 – Client SMTP Authorization
- 2005-03-02 – Push syndication
- 2005-02-28 – ☆
- 2005-02-14 – 20,000 words later
- 2005-02-06 – Dispute resolution
- 2005-01-16 – ☆
- 2005-01-16 – UNIX or not?
- 2005-01-06 – HELO blacklists
- 2005-01-04 – Client SMTP Validation
2004
- 2004-12-17 – ☆
- 2004-12-13 – The Alphabet / David Sacks
- 2004-12-07 – Bloody edge
- 2004-12-06 – Net::DNS
- 2004-12-02 – more HELO statistics
- 2004-12-01 – adns
- 2004-11-26 – ☆
- 2004-11-24 – Vote for the Carlton Arms!
- 2004-11-24 – Letter to the BBC
- 2004-11-24 – Bleeding edge
- 2004-11-17 – Network engineer needed
- 2004-11-14 – Brilliant Brassicas
- 2004-11-11 – Amusing nicknames.
- 2004-10-22 – Apple / FreeBSD / Unix events
- 2004-10-18 – ☆
- 2004-10-16 – ☆
- 2004-10-13 – Another talk
- 2004-10-05 – ☆
- 2004-09-21 – FEEL THE KWALITEE
- 2004-09-20 – Martin Cooper
- 2004-09-19 – ☆
- 2004-09-13 – Martin Cooper
- 2004-09-08 – Reasons we think Sender-ID and SPF are bad
- 2004-09-08 – On the way to RFC authorship...
- 2004-08-19 – Birthday party, 2004-09-04
- 2004-08-11 – Clever packaging
- 2004-07-28 – Idiots
- 2004-07-26 – New plumbing connectors for Unix
- 2004-07-15 – IPv6
- 2004-07-08 – Yak-shaving
- 2004-07-04 – Beer
- 2004-06-23 – Netcraft Job
- 2004-06-17 – Silly domain names
- 2004-05-19 – Another talk
- 2004-05-12 – CLHH
- 2004-05-10 – Household electrics
- 2004-04-28 – Orkut
- 2004-04-20 – Sun is teh suck
- 2004-04-20 – Gmail and privacy
- 2004-04-20 – Conservative Party election stunt
- 2004-04-14 – Passwords
- 2004-04-13 – Whitewash
- 2004-04-09 – Sean of the dead
- 2004-04-02 – YKY subscribed to too many lists W...
- 2004-03-31 – Zombies
- 2004-03-24 – Ego Surfing
- 2004-03-17 – ☆
- 2004-03-16 – SF memories
- 2004-03-11 – Spammed to death
- 2004-03-11 – Google images meme
- 2004-03-06 – Passport meme
- 2004-03-05 – UKUUG LISA Winter Conference paper
- 2004-03-05 – Desktop meme
- 2004-03-04 – Yet another RSS feed
- 2004-03-03 – It's a virus-eat-virus world out there...
- 2004-02-24 – To do
- 2004-02-24 – Excitement!
- 2004-02-18 – ☆
- 2004-02-18 – Shared Calendars
- 2004-02-18 – Netsky
- 2004-02-17 – New virus detection: Bagle.b
- 2004-02-13 – Big presentation excitement!
- 2004-02-10 – Orkut
- 2004-01-29 – More photos
- 2004-01-26 – irc funny
- 2004-01-24 – Some historical tidbits
- 2004-01-23 – Insta-BSD-meet
- 2004-01-22 – ☆
- 2004-01-21 – Slides
- 2004-01-20 – ☆
- 2004-01-14 – Recruiter
- 2004-01-13 – "The country where I quite want to be"
- 2004-01-07 – Compare and contrast
- 2004-01-06 – I love the smell of burnt electronics in the morning...
- 2004-01-01 – Rule 110
2003
- 2003-12-11 – More about Life
- 2003-12-09 – ☆
- 2003-12-04 – Conway's Game of Life
- 2003-12-03 – Show of Hands
- 2003-11-18 – Dreams
- 2003-10-30 – Enormous festering wobble-pile
- 2003-10-28 – aaaargh
- 2003-10-01 – Food
- 2003-09-30 – Book meme
- 2003-09-29 – Of course there's a party too...
- 2003-09-29 – Engaged
- 2003-09-10 – Slides from another talk
- 2003-09-01 – Party
- 2003-08-29 – <beer>happiness</beer>
- 2003-08-26 – Birthday Barbecue + Party
- 2003-07-30 – Dream
- 2003-07-30 – distributed checksum clearinghouse
- 2003-07-29 – ☆
- 2003-07-22 – Good grief!
- 2003-06-06 – Travelling
- 2003-05-29 – ☆
- 2003-05-28 – All talked out
- 2003-05-27 – Don't slide
- 2003-05-22 – MailScanner
- 2003-05-19 – Derbyshire again
- 2003-05-12 – Peak District
- 2003-05-02 – another ykybhtlw dream
- 2003-04-23 – Lucid dreaming
- 2003-04-23 – Blah
- 2003-04-22 – Digital convergence
- 2003-04-07 – Doing a talk
- 2003-04-07 – And in other news
- 2003-03-29 – Alphabet meme
- 2003-03-28 – Turned into a good evening
- 2003-03-28 – The return of the B
- 2003-03-27 – Stuff and nonsense
- 2003-03-26 – Fresh Coffee
- 2003-03-25 – ☆
- 2003-03-23 – ☆
- 2003-03-19 – Spam
- 2003-03-19 – Pot plants
- 2003-03-19 – More hacking
- 2003-03-18 – Resurrecting old hacks
- 2003-03-18 – Anne Campbell
- 2003-03-17 – First post!!!!!