| 2026-06-30 | Blog: Local Reasoning for Global Properties |
| 2026-06-09 | Blog: Test-case Reducers Are Underappreciated Debugging Tools |
| 2026-06-06 | pizauth-1.1.0 released |
| 2026-05-17 | extsmail-2.9 released |
| 2026-05-14 | hk-0.3.3 released |
| 2026-05-03 | snare-0.4.13 released |
| 2026-04-15 | Blog: Retrofitting JIT Compilers into C Interpreters |
| 2026-03-10 | pizauth-1.0.11 released |
| 2026-02-25 | pizauth-1.0.10 released |
| 2026-01-12 | Blog: PLISS 2026 |
| 2026-01-08 | 'Some Things I've Learned About Software' video available |
| 2025-12-13 | pizauth-1.0.9 released |
| 2025-11-12 | Blog: Upcoming Talk in London |
| 2025-11-12 | Blog: Async and Finaliser Deadlocks |
| 2025-11-02 | pizauth-1.0.8 released |
| 2025-10-29 | Blog: What Context Can Bring to Terminal Mouse Clicks |
| 2025-10-15 | 'Garbage Collection for Rust: The Finalizer Frontier' paper added |
| 2025-09-16 | Blog: Why Firsts Matter |
| 2025-08-06 | Blog: LLM Inflation |
| 2025-07-22 | Blog: Comparing the Glove80 and Maltron keyboards |
| 2025-07-14 | Blog: The LLM-for-software Yo-yo |
| 2025-05-08 | snare-0.4.12 released |
| 2025-04-02 | Blog: The Fifth Kind of Optimisation |
| 2025-03-25 | Blog: Better Shell History Search |
| 2025-02-08 | pizauth-1.0.7 released |
| 2025-01-28 | Blog: Can We Retain the Benefits of Transitive Dependencies Without Undermining Security? |
| 2024-11-27 | Blog: Structured Editing and Incremental Parsing |
| 2024-11-25 | Blog: How I Prepare to Make a Video on Programming |
| 2024-11-10 | Blog: pizauth: HTTPS redirects |
| 2024-11-10 | pizauth-1.0.6 released |
| 2024-08-21 | Blog: Recording and Processing Spoken Word |
| 2024-07-27 | pizauth-1.0.5 released |
| 2024-07-25 | snare-0.4.11 released |
| 2024-05-31 | Blog: Why the Circular Specification Problem and the Observer Effect Are Distinct |
| 2024-05-14 | Blog: What Factors Explain the Nature of Software? |
| 2024-04-02 | snare-0.4.10 released |
| 2024-03-08 | supuner-0.3 released |
| 2024-02-28 | Blog: Some Reflections on Writing Unix Daemons |
| 2024-02-04 | pizauth-1.0.4 released |
| 2024-01-16 | Blog: Faster Shell Startup With Shell Switching |
| 2024-01-08 | snare-0.4.9 released |
| 2024-01-04 | Blog: Choosing What To Read |
| 2023-12-27 | hk-0.3.2 released |
| 2023-12-13 | Blog: Debugging A Failing Hotkey |
| 2023-12-13 | hk-0.3.1 released |
| 2023-12-04 | Blog: How Often Should We Sharpen Our Tools? |
| 2023-11-28 | pizauth-1.0.3 released |
| 2023-11-14 | Blog: Four Kinds of Optimisation |
| 2023-10-12 | pizauth-1.0.2 released |
| 2023-10-03 | Blog: Minor Advances in Knowledge Are Still a Worthwhile Goal |
| 2023-09-18 | Blog: How Hard is it to Adapt a Memory Allocator to CHERI? |
| 2023-08-23 | Blog: "Programming" and "Programmers" Mean Different Things to Different People |
| 2023-08-14 | pizauth-1.0.1 released |
| 2023-08-13 | pizauth-1.0.0 released |
| 2023-08-13 | Blog: pizauth: First Stable Release |
| 2023-07-18 | Blog: The Need to Explain |
| 2023-07-05 | Blog: Two Stories for "What is CHERI?" |
| 2023-05-29 | pizauth-0.3.0 released |
| 2023-05-16 | Blog: My Interview with Eelco Visser on Parsing |
| 2023-05-15 | 'Picking a CHERI Allocator: Security and Performance Considerations' paper added |
| 2023-05-02 | Blog: Why Split Lexing and Parsing Into Two Separate Phases? |
| 2023-04-11 | Blog: Displaying My Washing Machine's Remaining Time With curl, jq, and pizauth |
| 2023-04-03 | Blog: pizauth: dump and restore |
| 2023-04-03 | pizauth-0.2.2 released |
| 2023-03-23 | Blog: How Big Should a Programming Language Be? |
| 2023-03-22 | extsmail-2.8 released |
| 2023-03-16 | Blog: Rust's Two Kinds of 'Assert' Make for Better Code |
| 2023-03-11 | pizauth-0.2.1 released |
| 2023-03-08 | snare-0.4.8 released |
| 2023-03-05 | Blog: Scheduling my Electricity Usage |
| 2023-02-16 | Blog: Why Aren't Programming Language Specifications Comprehensive? |
| 2023-02-06 | snare-0.4.7 released |
| 2023-01-29 | try_repeat-0.2.0 released |
| 2023-01-26 | Blog: Distinguishing an Interpreter from a Compiler |
| 2023-01-25 | Blog: try_repeat released |
| 2023-01-25 | try_repeat-0.1.0 released |
| 2023-01-17 | Blog: Why We Need to Know LR and Recursive Descent Parsing Techniques |
| 2023-01-10 | Blog: Compiled and Interpreted Languages: Two Ways of Saying Tomato |
| 2023-01-09 | Blog: Software Security Research Position |
| 2023-01-03 | hk-0.3.0 released |
| 2022-12-15 | Blog: How Might Generative AI Change Programming? |
| 2022-12-14 | pizauth-0.2.0 released |
| 2022-12-14 | Blog: pizauth: differentiating transient from permanent errors |
| 2022-11-30 | Blog: November Links |
| 2022-11-15 | Blog: More Evidence for Problems in VM Warmup |
| 2022-11-10 | Blog: What is a Research Summer School? |
| 2022-11-01 | Blog: October Links |
| 2022-10-20 | pizauth-0.1.1 released |
| 2022-10-20 | Blog: pizauth: another alpha release |
| 2022-10-19 | extsmail-2.7 released |
| 2022-10-03 | Blog: UML: My Part in its Downfall |
| 2022-10-01 | Blog: September Links |
| 2022-09-29 | pizauth-0.1.0 released |
| 2022-09-28 | Blog: pizauth, an OAuth2 token requester daemon, in alpha |
| 2022-08-31 | Blog: A Week of Bug Reporting |
| 2022-08-30 | Blog: August Links |
| 2022-08-20 | hk-0.2.0 released |
| 2022-08-09 | Blog: Making a Video of a Single Window |
| 2022-08-08 | Blog: Two researcher jobs in soft-dev |
| 2022-08-04 | extsmail-2.6 released |
| 2022-08-01 | Blog: Another Reorganisation |
| 2022-07-31 | Blog: July Links |
| 2022-07-25 | Blog: What's the Most Portable Way to Include Binary Blobs in an Executable? |
| 2022-07-19 | Blog: CHERITech22 and PLISS 2022 |
| 2022-07-13 | Blog: How I Clean my Glasses |
| 2022-07-01 | Blog: June Links |
| 2022-06-30 | Blog: What Metric to Use When Benchmarking? |
| 2022-06-15 | Blog: Chance, Luck, and Risk |
| 2022-06-08 | Blog: What Makes a Good Research Proposal? |
| 2022-05-31 | Blog: May Links |
| 2022-05-26 | Blog: Multiplicity Choices Are Hard to Model and Change |
| 2022-05-17 | Blog: Using a "Proper" Camera as a Webcam |
| 2022-05-10 | Blog: Programming Style Influences |
| 2022-05-04 | Blog: snare: a Minimalistic GitHub Webhooks Runner |
| 2022-04-30 | Blog: April Links |
| 2022-04-28 | Blog: Where do Research Problems Come From? |
| 2022-04-20 | Blog: Practising Programming |
| 2022-04-13 | Blog: Making Rust a Better Fit for CHERI and Other Platforms |
| 2022-04-11 | Blog: When is a Blog a Blog? |
| 2022-02-09 | snare-0.4.5 released |
| 2022-02-09 | snare-0.4.6 released |
| 2022-02-04 | Research Associate in Programming Languages / Virtual Machines job available in soft-dev |
| 2021-12-20 | cmdseq-0.2 released |
| 2021-12-20 | hk-0.1.0 released |
| 2021-10-26 | snare-0.4.4 released |
| 2021-08-08 | extsmail-2.5 released |
| 2021-06-22 | Blog: Static Integer Types |
| 2021-06-11 | snare-0.4.3 released |
| 2021-03-23 | Blog: Automatic Video Editing |
| 2021-03-17 | snare-0.4.2 released |
| 2021-03-01 | Virtual Machine Warmup Blows Hot and Cold |
| 2021-01-19 | Blog: The Evolution of a Research Paper |
| 2020-12-03 | snare-0.4.1 released |
| 2020-11-17 | Blog: Automatic Syntax Error Recovery |
| 2020-10-07 | Blog: Stick or Twist? |
| 2020-09-15 | Blog: Which Parsing Approach? |
| 2020-07-06 | Don't Panic! Better, Fewer, Syntax Errors for LR Parsers |
| 2020-05-13 | snare-0.4.0 released |
| 2020-05-06 | Blog: Alternative Sources of Advice |
| 2020-03-08 | snare-0.3.0 released |
| 2020-03-02 | snare-0.2.0 released |
| 2020-02-17 | supuner-0.2 released |
| 2020-02-13 | snare-0.1.0 released |
| 2020-01-31 | extsmail-2.4 released |
| 2019-10-14 | extsmail-2.3 released |
| 2019-09-23 | 'Default Disambiguation for Online Parsers' paper added |
| 2019-08-15 | Blog: Minimum Times Tend to Mislead When Benchmarking |
| 2019-05-26 | rerun_except 0.1.0 released |
| 2019-05-04 | lang_tester 0.1.0 released |
| 2019-02-12 | Blog: A Quick Look at Trait Objects in Rust |
| 2018-12-13 | grmtools 0.1.0 released |
| 2018-11-30 | extsmail-2.2 released |
| 2018-09-19 | Blog: Why Aren’t More Users More Happy With Our VMs? Part 2 |
| 2018-09-05 | Blog: Why Aren’t More Users More Happy With Our VMs? Part 1 |
| 2018-06-03 | multitime 1.4 released |
| 2018-01-10 | Blog: What I’ve Learnt So Far About Writing Research Papers |
| 2017-11-25 | extsmail-2.1 released |
| 2017-10-19 | S-REPLS 8 at King's announced |
| 2017-10-11 | Virtual Machine Warmup Blows Hot and Cold |
| 2017-06-22 | Blog: What Challenges and Trade-Offs do Optimising Compilers Face? |
| 2017-05-01 | Modelling Homogeneous Generative Meta-programming |
| 2016-09-21 | Blog: Fine-grained Language Composition |
| 2016-07-07 | Fine-grained Language Composition: A Case Study |
| 2016-07-07 | Making an Embedded DBMS JIT-friendly |
| 2016-07-06 | Virtual Machines Summer School videos now available |
| 2016-01-28 | Virtual Machines Summer School 2016 (2016-05-31 until 2016-06-03) announced |
| 2016-01-01 | cmdseq-0.1 released |
| 2015-08-21 | Approaches to Interpreter Composition |
| 2015-07-28 | Blog: Debugging Layers |
| 2015-03-31 | Fine-grained Language Composition |
| 2015-03-06 | Program Logics for Homogeneous Generative Run-Time Meta-Programming |
| 2014-11-12 | extsmail-2.0 released |
| 2014-08-20 | Blog: An Editor for Composed Programs |
| 2014-08-20 | Eco: A Language Composition Editor |
| 2014-06-20 | extsmail-1.9 released |
| 2014-05-29 | extsmail-1.8 released |
| 2014-03-12 | extsmail-1.7 released |
| 2014-02-25 | Converge 2.1 released |
| 2014-02-22 | multitime 1.3 released |
| 2014-02-18 | packagesbootstrap 1.3 released |
| 2013-12-04 | Blog: The Bootstrapped Compiler and the Damage Done |
| 2013-09-24 | Blog: Relative and Absolute Levels |
| 2013-09-17 | Unipycation: a case study in cross-language tracing |
| 2013-08-17 | Detecting ambiguity in programming language grammars |
| 2013-07-31 | Storage strategies for collections in dynamically typed languages |
| 2013-06-04 | Parsing Composed Grammars with Language Boxes |
| 2013-04-09 | Blog: General Purpose Programming Languages' Speed of Light |
| 2013-03-06 | The Impact of Meta-Tracing on VM Design and Implementation |
| 2013-01-28 | Formal announcement of the Software Development Team's formation |
| 2012-12-15 | multitime 1.2 released |
| 2012-11-17 | extsmail-1.6 released |
| 2012-10-25 | Blog: Another Non-Argument in Type Systems |
| 2012-10-23 | multitime 1.1 released |
| 2012-10-07 | Search-Based Ambiguity Detection in Context-Free Grammars |
| 2012-09-24 | multitime 1.0 released |
| 2012-08-21 | Experimental Assessment of Software Metrics Using Automated Refactoring |
| 2012-08-02 | Blog: Server Failover For the Cheap and Forgetful |
| 2012-07-31 | Converge 2.0 released |
| 2012-07-09 | extsmail-1.5 released |
| 2012-02-08 | Blog: Fast Enough VMs in Fast Enough Time |
| 2011-10-02 | New Unix utility: multitime |
| 2011-09-01 | I've moved to King's College London |
| 2011-06-28 | Blog: Problems with Software 3: Creating Crises Where There Aren't Any |
| 2011-06-19 | supuner-0.1 released |
| 2011-06-18 | extsmail-1.4 released |
| 2011-06-07 | Blog: Problems with Software 2: Failing to Use the Computing Lever |
| 2011-06-01 | Converge 1.2 released |
| 2011-05-30 | Two new, small, Unix-only releases: xcage and supuner |
| 2011-04-19 | Blog: Problems with Software 1: Confusing Problems Whose Solutions Are Easy to State With Problems Whose Solutions Are Easy to Realise |
| 2011-04-15 | Follow me on twitter @laurencetratt |
| 2011-04-07 | What Role for Static Analysis in Malware Detection? |
| 2011-04-04 | Slicing State Based Models |
| 2011-03-15 | Blog: Parsing: The Solved Problem That Isn't |
| 2010-10-26 | Direct left-recursive parsing expressing grammars |
| 2010-08-25 | Blog: In Praise of the Imperfect |
| 2010-08-18 | Experiences with an Icon-like Expression Evaluation System |
| 2010-05-30 | extsmail-1.3 released |
| 2010-04-07 | Blog: A Modest Attempt to Help Prevent Unnecessary Static / Dynamic Typing Debates |
| 2010-03-03 | I've moved to Middlesex University |
| 2010-02-07 | Comparative study of DSL tools |
| 2009-12-14 | Blog: A Proposal for Error Handling |
| 2009-09-24 | extsmail-1.2 released |
| 2009-09-15 | Blog: The Missing Level of Abstraction? |
| 2009-09-08 | Converge 1.1 released |
| 2009-08-22 | Language Factories |
| 2009-04-29 | extsmail-1.1 released |
| 2009-03-20 | Blog: Good Programmers are Good Sysadmins are Good Programmers |
| 2009-01-05 | extsmail-1.0 released |
| 2008-12-11 | extsmail-0.3 released |
| 2008-11-20 | extsmail-0.2 released |
| 2008-11-11 | Blog: How can C Programs be so Reliable? |
| 2008-11-11 | extsmail-0.1 released |
| 2008-09-01 | Blog: Free Text Geocoding |
| 2008-06-02 | Blog: Extended Backtraces |
| 2008-03-03 | Blog: Designing Sane Scoping Rules |
| 2007-12-10 | Blog: Some Lessons Learned from Icon |
| 2007-08-09 | Blog: How Difficult is it to Write a Compiler? |
| 2007-05-11 | Blog: When Are Macros Useful? |
| 2007-03-21 | Blog: Filling in a Gap |
| 2007-01-18 | Blog: Are Multicore Processors the Root of a New Software Crisis? |
| 2006-11-21 | Blog: The High Risk of Novel Language Features |
| 2006-10-17 | Blog: Evolving DSLs |
| 2006-08-30 | Blog: More Meta Matters |
| 2006-06-26 | Blog: Strategies for Dealing With E-mail |
| 2006-03-26 | Blog: Debugging Driven Development |
| 2006-01-29 | Blog: Make Exceptions Work For You |
| 2005-12-10 | Blog: Home Directory Synchronization |
| 2005-10-03 | Blog: SREP |
| 2005-09-12 | Blog: Metacircularity |
| 2005-07-21 | Blog: Timing setjmp, and the Joy of Standards |
| 2005-06-16 | Blog: Text is Dead They Say |
| 2005-05-01 | Blog: The Importance of Syntax |
| 2005-01-31 | Blog: Predicting the Future of Computing |
| 2004-12-21 | Blog: Tail Call Optimization |
| 2004-11-19 | Blog: Language Orientated Programming |