Eyes Above The Waves
Archive
2026 September
- Goodbye Google August
- A Meta-Meditation On The Lord's Prayer (And DNA)
- A Meditation On The Lord's Prayer
- Queenstown Walks July
- Thoughts on 'Pacing The Frontier'
- Karangahake Gorge To Te Aroha March
- Anthropic And AI Principles January
- Why Trump Is An Antichrist 2025 December
- Taiwan November
- Pouakai Circuit 2025
- AI And Jesus In Late 2025: A Road Trip Report October
- Some Thoughts About Money From A Christian In Big Tech
- Crosbies Hut 2025 June
- Not Joking About AI
- Building A PC April
- Rakiura Northwest Circuit February
- Tongariro Northern Circuit 2025 January
- Pararaha Valley 2025 2024 December
- Mt Arthur/Tablelands/Cobb Valley November
- Queen Charlotte Track 2024 October
- Auckland Half Marathon 2024
- Advanced Debugging Technology In Practice June
- Waihohonu Hut 2024
- So You Want To Build A Browser Engine
- Real-Time Settlers Of Catan April
- Auckland Waterfront Half Marathon 2024
- Whanganui River Journey 2024 2023 December
- Rees-Dart Track 2023
- Caples/Routeburn Track 2023
- Abel Tasman Kayaking November
- Mount Pirongia 2023
- Blog Migrated April
- Why I Signed The "Pause" Letter
- Auckland Waterfront Half Marathon 2023 2022 December
- Travers-Sabine Circuit 2022
- Paparoa Track September
- Aotea Track 2022
- Success, Privilege And God July
- Tūrangi Road Trip May
- Round The Mountain Track: Ups and Downs and a Twist Ending April
- New Zealand's COVID Strategy Worked (But It Could Have Been Better) March
- Motutapu Island Camping Trip January
- Motatapu Track
- Hump Ridge Track
- The End Of The Runway 2021 December
- Mt Pirongia 2021
- Do We Really Need A Link Step? November
- Some Observations On The NZ CovidPass System October
- How WHO Failed September
- Emulating AMD Approximate Arithmetic Instructions On Intel
- rr Trace Portability: Diverging Behavior of RSQRTSS in AMD vs Intel June Spectre Mitigations Murder \*Userspace\ Performance In The Presence Of Frequent Syscalls
- Tama Lakes Winter Tramp 2021 May
- Forward Compatibility Of rr Recordings
- Lake Waikaremoana 2021 April
- Print Debugging Should Go Away
- Demoing The Pernosco Omniscient Debugger: Debugging Crashes In Node.js And GDB
- Visualizing Control Flow In Pernosco March
- On-Premises Pernosco Now Available; Reflecting On Application Confinement
- What Would Jesus Do ... About Vaccination? February
- Mercer Bay January
- Dehydration
- Tongariro Northern Circuit 2021 2020 December
- Rees-Dart Track
- Kepler Track 2020
- Exploiting Precognition In Binary Instrumentation Of rr Replays November
- rr remix: Efficient Replay-Only Binary Instrumentation
- DOM Recording For Web Application Demos
- Debugging With Screenshots In Pernosco
- rr Repository Moved To Independent Organisation
- Pernosco Now Available For Individual Developers
- Auckland Half Marathon 2020 October
- Pouakai Circuit 2020
- The Parable Of The Two Bus Drivers September
- New Zealand's Long Term COVID19 Strategy August
- Surprising Words In Luke 1:16-17
- What's So Amazing About Mark 10:32
- Scaling Debuginfo For Zero-Cost Abstractions
- What Is The Minimal Set Of Optimizations Needed For Zero-Cost Abstraction? June
- Cape Brett 2020
- My Google Maps Disaster May
- Why Forking HTML Into A Static Language Doesn't Make Sense
- Omniscient JS Debugging In Pernosco April
- Have Some Humility, Mike Hosking March
- What If C++ Abandoned Backward Compatibility?
- Debugging Gdb Using rr: Ptrace Emulation January
- Static Customization Of Function Signatures In Rust
- Updating Pernosco To Rust Futures 0.3 2019 December
- A Risk Of Transactional Politics For Christians
- Nelson Lakes Tramping: Lessons And Observations
- Nelson Lakes Tramping: Travers-Sabine Circuit
- Nelson Lakes Tramping: Angelus Basin November
- Your Debugger Sucks
- Supercharging Gdb With Pernosco
- The Power Of Collaborative Debugging
- Omniscient Printf Debugging In Pernosco
- The BBC's "War Of The Worlds"
- Explaining Dataflow In Pernosco October
- Improving Debugging Workflow With Pernosco
- Auckland Half Marathon 2019
- Pernosco Demo Video
- Food In Auckland 2019
- Pouakai Circuit
- Is Richard Dawkins A Moral Realist? September
- Dissatisfied With Docker July
- Cape Brett 2019
- Auckland Rust Meetup: "Building An Omniscient Debugger In Rust" June
- Stack Write Traffic In Firefox Binaries
- Winter Tramp: Waihohonu Hut To Tama Lakes May
- A Few Comments On "Sparse Record And Replay With Controlled Scheduling"
- Microsoft's Azure Time-Travel Debugging
- Don't Call Socially Conservative Politicial Parties "Christian"
- Debugging Talk At Auckland Rust Meetup April
- Goodbye Mozilla IRC
- Update To rr Master To Debug Firefox Trunk
- Mysteriously Low Hanging Fruit: A Big Improvement To LLD For Rust Debug Builds
- Rust Discussion At IFP WG2.4 March
- Marama Davidson And The Truth About Auckland's History February
- Banning Huawei Is The Right Decision
- Rust's Affine Types Catch An Interesting Bug
- Mt Taranaki 2019 January
- Experimental Data On Reproducing Intermittent MongoDB Test Failures With rr Chaos Mode 2018 December
- Vox On Nietzsche
- Hollyford Track
- Milford Track 2018 November
- Capitalism, Competition And Microsoft Antitrust Action
- Raglan
- Comparing The Quality Of Debug Information Produced By Clang And Gcc
- What Is "Evil" Anyway?
- Comments on "REPT: Reverse Debugging of Failures in Deployed Software" October
- Auckland Half Marathon 2018
- Problems Scaling A Large Multi-Crate Rust Project
- Harmful Clickbait Headline About IT Automation
- The Fine Line Between Being A Good Parent And A Bad Parent
- The Costs Of Programming Language Fragmentation September
- More Realistic Goals For C++ Lifetimes 1.0
- The Danger Of GMail's "Smart Replies"
- "Crazy Rich Asians"
- Rangitoto Fog August
- Long Live The Desktop Computer
- ASAN And LSAN Work In rr
- Diagnosing A Weak Memory Ordering Bug
- The Parallel Stream Multiplexing Problem July
- Gerv
- Why Isn't Debugging Treated As A First-Class Activity? June
- Yosemite: Clouds Rest And Half Dome
- Bay Area Visit
- Crypto-Christians In Tech May
- rr 5.2.0 Released
- Intel CPU Bug Affecting rr Watchpoints
- Update: Pernosco
- rr Chaos Mode Improvements
- Research Wishlist: A Filesystem For Efficient Host-Guest File Sharing
- Priority Is Overrated April
- rr Trace Portability: x87 "Data Pointer" Broken On Skylake
- CPUID Features, XSAVE, And rr Trace Portability
- Heaphy Track #2
- Payment Express's "Account2Account" Is Bad For Security March
- Speeding Up \`dwarfdump\` With Rust
- Too Many DWARF Packaging Options
- "Zach": AI Fraud In Christchurch
- Tongariro Northern Circuit #2 January
- Neal Stephenson's "Seveneves" (Mild Spoilers)
- Long-Term Consequences Of Spectre And Its Mitigations
- Captain Sonar
- Hooray For cargo build --all-targets
- The Fight For Patent-Unencumbered Media Codecs Is Nearly Won
- Ancient Browser-Wars History: MD5-Hashed Posts Declassified
- On Keeping Secrets
- Meltdown/Spectre Needs Better Disclosure 2017 December
- Mixed Blessings Of Greenfield Software Development
- Marriage On Credit
- Routeburn-Caples
- rr 5.1.0 Released
- Maintaining An Independent Browser Is Incredibly Expensive November
- In Praise Of Rust's structopt For Command Line Parsing
- Tararua Southern Crossing October
- Auckland Half Marathon 2017
- Microsoft's Chrome Exploitation And The Limitations Of Control Flow Integrity
- "Slow To Become Angry"
- Type Safety And Data Flow Integrity
- Legacy Code Strikes Again
- Thoughts On Microsoft's Time-Travel Debugger
- Building On Rock, Not Sand
- Microsoft Using Chromium On Android Is Bad For The Web September
- Complaining About Twitter Again
- Dreaming The Singularity
- Facebook's "Explaining React's License" Doesn't
- Some Opinions On The History Of Web Audio
- Sonny The Prophet
- rr 5.0 Released
- rr Trace Portability August
- Fedora/Ubuntu Kernels Work With rr Again
- Igloos Are Hard
- Epsom Electorate Town Hall Meeting
- Public Service Announcement: "localhost" Is Not Necessarily Local
- When Virtue Fails
- Stabilizing The rr Trace Format With Cap’n Proto July
- Selecting A Compression Algorithm For rr
- Upstream Stable Kernels Work With rr Again
- Let's Never Create An Ad-Hoc Text Format Again
- Confession Of A C/C++ Programmer
- Usenix ATC 2017
- An Inflection Point In The Evolution Of Programming Langauges
- Bay Area Progress Report June
- Patch On Linux Kernel Stable Branches Breaks rr
- Rising Tolerance For Static Analysis False Positives?
- Lazy Religion Tropes In Mass Media
- Is The x86 Architecture Sustainable?
- New "rr pack" Command
- How I Found A 20-Year-Old Linux Kernel Bug
- Another Case Of Obscure CPU Nondeterminism
- WebAssembly: Mozilla Won May
- Should Debuggers Report Idempotent Writes?
- A Couple Of Papers About Commodity Multicore Record And Replay, And A Possible Way Forward
- rr Usenix Paper And Technical Report
- Obscurity Inhibits Persuasion
- Perceptions Of Violent Crime April
- Call Out China For Their Treatment Of NK Escapees
- One Does Simply Walk Into Mordor
- Rust Optimizations That C++ Can't Do (Version 2)
- Rust Optimizations That C++ Can't Do
- Pararaha Valley
- Let's Make NZ More Expensive For Tourists March
- The Parable Of The Workers In The Vineyard Really Is About Grace
- Blogging Vs Academic Publishing
- Thoughts On "Java and Scala’s Type Systems are Unsound" And Fuzz Testing
- Deterministic Hardware Performance Counters And Information Leaks
- Using rr To Debug Go Programs February
- Against Online Voting
- 306 Points In "Lords Of Waterdeep"
- "New Scientist" And The Meaning Of Life
- What Rust Can Do That Other Languages Can't, In Six Short Lines
- rr 4.5.0 Released
- I Really Admire Jehovah's Witnesses January
- A Followup About AV Test Reports
- Tripling Down Against USA Conference Hosting
- Rustbelt Is Hiring
- rr Talk At Auckland C++ Meetup, February 21
- Really, Please Stop Booking International Conferences In The USA
- Disable Your Antivirus Software (Except Microsoft's)
- Browser Vendors And Business Interests
- Browser Vendors Are Responsible For The State Of Web Standards
- Parenting Notes
- Cheltenham Beach
- How China Can Pressure North Korea
- Is CMS Software Generally Really Bad? 2016 December
- On "Arrival"
- October rr Talk Online
- Disemploy The Middle/Upper Class
- Some Comments On "Sapiens" November
- Overcoming Stereotypes One Parent At A Time
- Stop Saying "Xs Do Y" Disingenuously
- Handling Hardware Lock Elision In rr
- Misinterpreting Close Contests
- Welcoming Richard Dawkins
- Dangerous Permissions October
- Auckland Half Marathon #4
- Implications Of ASLR Side-Channel Attacks
- Valuing America
- Dell, Your Website Security Is Broken
- Pivoting To Cyber-Forestry
- Ironic World Standards Day
- Tawharanui Revisited
- rr Paper: "Lightweight User-Space Record And Replay"
- Bay Area Talks About rr And Beyond, October 2-7
- rr 4.4.0 Released September
- Is Apple A Christian Environment?
- Theism And The Simulation Argument
- Auckland Food 2016 August
- Avoiding Cache Writebacks For Freed Memory
- Random Thoughts On Rust: crates.io And IDEs
- Saga Of The Exiles
- False Accusations
- Why I Don't Watch "Game Of Thrones"
- Changing Attitudes To Pornography July
- The True Story Of "Amazing Grace"
- Further Improving My Personal Digital Security
- Ordered Maps For Stable Rust
- Itanium Zombie Claims Another Victim June
- rr 4.3.0 Released
- Nexus 5X vs Wettest June Hour In Auckland's History
- Relearning Debugging With rr
- Handling Read-Only Shared Memory Usage In rr
- Dear Ubuntu, Please Fix Your Debuginfo Packaging
- Democracy Is Impressive
- PlayCanvas Is Impressive
- Managing Vast, Sparse Memory On Linux
- Nastiness Works
- "Safe C++ Subset" Is Vapourware
- Mt Pirongia
- Whanganui River Journey
- Some Dynamic Measurements Of Firefox On x86-64
- Are Dynamic Control-Flow Integrity Schemes Worth Deploying?
- How To Track Down Divergence Bugs In rr
- The Diving Bell And Twitter
- Research Needed: A Meta (Dis) Assembler May
- Men Behaving Badly
- Stop Booking Conferences In The USA
- Data > Personal Anecdotes > Media Anecdotes
- x86-64 SSE/AVX Register Usage
- Autonomous Vehicles: I Want To Believe
- Data On x86-64 Register Usage
- Pain Management
- History Rhymes April
- Android's Update System Is Ridiculous
- Leveraging Modern Filesystems In rr
- Skylake Erratum Affecting rr
- GNOME High-DPI Issues March
- Using rr To Debug rr
- Obituary
- Running Firefox For Windows With rr
- SIGKILL And PTRACE\_EXIT\_EVENT
- Digital Spring Cleaning
- My Self-Identification
- Leaving Mozilla February
- "These Bugs Are Impossible To Fix Without rr"
- Deeper Into Chaos
- Rewrite Everything In Rust
- Introducing rr Chaos Mode
- rr Talk At linux.conf.au
- rr 4.1.0 Released
- Reflecting On The The Lord Of The Rings Movies
- Rakiura Track
- Kepler Track January
- Making Honest Money With The Internet Of Things
- Kereru
- innerText: Cleaning A Dark Corner Of the Web 2015 December
- Feelings Versus Facts At Christmas
- Abel Tasman Track
- CppCast rr Podcast November
- Even More rr Replay Performance Improvements!
- rr Replay Performance Improvements
- Debugging Leaks With rr
- TPPA Protest
- Perfection In Imperfection
- rr In VMWare: Solved!
- An Extraordinary Sunday October
- Research Projects That Should NOT Be Funded
- KPMG Gets It Totally Wrong About Pittsburgh And Auckland
- rr 4.0 Released With Reverse Execution
- Hobbiton
- Heaphy Track September
- Apple's Next Frontier: Fusion
- Booting Fedora 22 On A Lenovo ThinkCentre M53 August
- Hooray For WebExtensions
- Parenting July
- Two Reverse-Execution Optimizations
- Midwinter Road Trip
- rr Talk Video From TCE 2015 June
- Whistler Hike
- Bug In Newer Linux Kernels Affecting rr
- Israel, Part 3
- Israel, Part 2
- Israel, Part 1
- Small Change To rr Behavior May
- rr Performance Update
- BlinkOn 4
- Using rr To Debug Dropped Video Frames In Gecko
- Piha Night Walk April
- rr 3.1 Released
- Another VMWare Hypervisor Bug
- Reverse Execution And Signals March
- Eclipse + Gecko = Win
- Paper Titles
- Auckland University rr Talk Next Week
- The Problems Of Significance Testing (aka What's Wrong With Computer Science)
- Debugging Gecko With Reverse Execution
- What Is The Endgame Of Weak Computer Security? February
- Great Barrier Island
- Computer Industry T-Shirt Museum January
- Routeburn-Greenstone 2014 December
- Is Human Immortality Possible?
- Queen Charlotte Track
- rr 3.0 Released With x86-64 Support
- Portland
- We Aren't Really Going To Have "Firefox On iOS" November
- The Rise Of "Versing"
- Mount Te Aroha
- Relax, Scaling User Interfaces By Non-Integer Scale Factors Is Okay
- Sci-Fi
- HTML5 Video Correctness Across Browsers
- Auckland Half Marathon --- Barefoot October
- Are We Fast Yet? Yes We Are!
- Pinnacles Tramp #2
- Photos From North America
- Back In New Zealand September
- Upcoming rr Talk
- rr 2.0 Released
- VMWare CPUID Conditional Branch Performance Counter Bug August
- Milestones On The Road To Christianity
- cf1e5386ecde9c2eb9416c9b07416686
- Choose Firefox Now, Or Later You Won't Get A Choice July
- Multiverses And Anthropic Reasoning
- Implementing Scroll Animations Using Web Animations May
- Unnecessary Dichotomy
- Against The "Internet Of Things"
- Milford Track April
- Getting Back To Work
- Fighting Media Narratives
- Mozilla Matters
- Responsible Self-Censorship March
- Conflict
- Introducing rr
- Mozilla And The Silicon Valley Cartel
- Taroko National Park
- Maokong
- Introducing Chaos Mode
- My Linkedin Account Is Dead, And Why Is Google Being Stupid?
- Fine-Tuning Arguments
- Internet Connectivity As A Geopolitical Tool
- Te Henga Walkway
- Q&A Panel At ACPC This Friday February
- 3 Mile Limit
- World Famous In Newmarket
- Implementing Virtual Widgets On The Web Platform
- Mozilla At Motuihe
- Camels January
- Lake Waikaremoana
- Web Specifications And The Frame Problem
- Tiritiri Matangi Island
- Boating 2013 December
- We Need A "Dumb Device" Movement
- Blood Clot
- Why I Don't Worry About Global Warming (Much)
- One Day The Luddites Will Be Right
- WebRTC And People-Oriented Communications
- Another Knee-Jerk Reaction To International Rankings
- Does John Banks Only Do Good?
- Wanaka November
- Mozillians At The Tongariro Crossing And Orakei Korako
- A Tale Of Two Cities October
- Summit Day Zero
- Prescriptive Vs Descriptive Frameworks
- Avoiding Burnout
- Travel Madness September
- The Forge Of Disappointment
- A Tip For The Surivial Of Humanity
- Unexpected Visitors
- Debugging Transient Rendering Issues With GNOME Shell Screencasts
- Servant Leadership August
- Indoi
- Creating Screencasts On Linux
- SVG-In-OpenType Progress Update
- Mozilla Code Reviews Talk On Air Mozilla
- Prepare To Stop
- Mozilla Engineering Culture Talk Now Online July
- A Shock Of The Ordinary
- Happy Days
- Avoiding Copies In Web APIs
- Movie Picoreviews
- Contributing Advocacy June
- Gradual Changes Afoot
- Developer Parallelism
- Meeting Absenteeism May
- Blink, PNaCl, And Standards
- Taiwan Travelogue
- Travel
- The Direct Route
- Web Audio Progress April
- Rotorua
- Hunuas Tramp
- Upcoming Travel Plans
- Google Vs New Zealand
- The Chris Problem
- The Future Of Cheating
- Blink March
- Mitigating Control-Flow Exploits With x86 ISA Extensions
- RIP Crazy Noodle
- Getting The Facts
- Why I Work
- Seeking Relevance
- There Is No Such Thing As Computer Security
- Technical Advantages Of A Web-Only Platform February
- A Small Example Of The Value Of Browser Engine Diversity
- And Then There Were Three
- Waiheke Island Sculpture Trail
- SVG In OpenType: A New Approach To SVG Fonts January
- Mount Taranaki
- Optimizing Bugzilla Usage 2012 December
- Great Barrier Island November
- More Movie Reviews
- What To Do When Visiting New Zealand October
- Trouble Ahead For SVG Stacks (Maybe)
- Motutapu Camping
- Karekare September
- Web Audio In Firefox
- Blast From The Past August
- Granularity Of Import Directives In Programming Languages
- A Confession Of Sorts
- Attention NZ TV Sports Interviewers July
- In-Flight Movies
- North Head To Takapuna
- Tawharanui
- Muriwai June
- Bolo
- Computer Science In Beijing
- Google Plus Spam
- Experiencing Beijing
- To Beijing
- Leaving Linkedin
- The City And The City
- Mangawhai May
- The Canvas getContext() Mistake
- Firefox Vs The New York Times
- Crosbie's Hut
- Accelerated Scrolling In Firefox: Past, Present And Future
- Sad And Pathetic Machines April
- Korea
- The Internet Experiment Has Failed March
- Retrospective On Our Trip To Europe
- Wakaraanga Creek
- I'm Back
- Retro Movie Showcase
- Requiring Planet Mozilla Content To Be Mozilla-Project-Related February
- Movie Overdose
- Upcoming Travel
- Foo Camp, ECOOP, And Conferences
- Alternatives To Supporting -webkit Prefixes In Other Engines
- The Problem With Counting Browser Features January
- Mozilla Tree Adventures
- You Know You're In Australia When...
- MediaStreams Processing Demos
- "Cut The Rope" and HTML5 Audio
- Risk Tolerance 2011 December
- A Case For Non-Fatal Assertions
- Revelation
- Television
- Love
- Developernomics November
- Moves In Computer Science Education
- Politics
- ITEX And TVNZ
- Latency Of HTML5 <audio> Sounds
- Freedom Never Gets Old
- Computerworld Interview
- HTML Video DRM
- The End Of Plugins
- Drawing DOM Content To Canvas
- Fun Things To Do In Auckland October
- Public Service Reminder For GMail Users
- A Sermon For The Rugby World Cup Final
- A Few Words On The Rugby World Cup
- Web Directions South
- Jobs September
- Shifts In Promoting The Open Web
- Graphics API Design
- Risks Of Exposing Web Page Pixel Data To Web Applications
- Doing The Same Thing Over And Over Again And Expecting Different Results
- France Vs Japan
- So It Begins August
- Cost Of Living
- Thoughts On Management
- New Mozilla Auckland Office Is Live!
- Securing Full-Screen
- Eden Park
- South Island Holiday
- Blog Update
- Books
- Rugby Fandom June
- Permissions For Web Applications
- Auckland Web Meetup Recap
- Auckland Web Meetup
- CS Unplugged
- Media Processing
- Some Advice
- Running May
- Singing
- The Pinnacles April
- "My Wedding And Other Secrets"
- Gangly, Bespectacled And Cerebral
- Shy
- Movies March
- White Island
- Investigating Performance Differences Between Firefox 4 And IE9
- The Myth Of "Full Hardware Acceleration" February
- Cape Brett
- Tongariro
- Distinguishing "Embeddable" Versus "Readable" Web Resources Considered Harmful January
- 3433aed5e4a1ca4ca1fc8db580d60c2b
- Tongariro
- Pleasure
- Coincidence
- Playing The Game
- A Big Day For Free Video
- Theodicy And The Prime Directive
- I'm Back
- Interannual Status 2010 December
- Iterated Prisoner's Dilemma
- GPU-Accelerated Video Playback In Firefox 4 November
- Measuring FPS
- Most Unusual Rugby Commentary
- Herald Interview
- Brain Drain Vs Foreign Invasion
- Clinton Bedogni Prize
- Eclipse Breakthrough
- Implementing A High-Performance Emulator In Javascript Using Run-Time Code Generation October
- Stepping Stones
- Bye Bye HWNDs
- Distrusting Research
- Mitigating Dangling Pointer Bugs Using Frame Poisoning
- South Island Trip
- Raising Awareness September
- Travel
- The Ten Commandments
- "Full Hardware Acceleration"
- New Google Maps Imagery Of Auckland August
- A Night Out
- TechEd
- More Dell Fail (Or Maybe NVidia)
- Sunshine Rises Again
- \-moz-element Landed
- Vinge
- CSS Units Changes Landed
- The mozRequestAnimationFrame Frame Rate Limit
- Auckland Food
- Firefox Sync
- mozRequestAnimationFrame
- Google vs Oracle
- Dell Fail
- Choosing Sides July
- Unexpected Downtime
- Coding Style As A Failure Of Language Design
- Perks
- Summit
- Retained Layers
- Mozilla And Software Patents In New Zealand June
- Thank God For Science
- LFX Video Available!
- Sleepless In Toronto
- WebM Landed
- Not Implementing Features Is Hard May
- Visiting Toronto
- Dear Conservatives
- Nero Vs MPEG-LA
- Ip Man Fail
- WebM
- Discontent On The Web
- Standardizing XUL Flexible Boxes In CSS
- CGLayer Performance Trap With isFlipped April
- Kingitanga Day
- Changing The World
- Accelerating Theora On The N900
- API Design For The Masses
- Fermi, Darwin, and Christians
- More Apple Evil
- Upcoming Events
- Big Week
- Anawhata
- Layers March
- Fun With BCC
- Amor Robustum
- Rainbows End
- Nightmare On Infinite Loop February
- High-Performance Browser Developers
- Post Foo Camp
- Reality Wins January
- Ruapehu Redux
- Three Lessons From A Pernicious Bug
- H.264 Licensing And Free Software
- ActiveX All Over Again
- LCA
- Video, Freedom And Mozilla
- The Road To LCA: Ruapehu
- Volcanoes And Penguins
- More On Patch Division
- CSS Absolute Length Units
- Unifying Abstractions, Dividing Patches
- There Can Be Only One
- 19e63a20e092ca81c1ae44694a3e6558
- d525fd19a91535e97ead3f9afa9bfa58 2009 December
- Idiots Indeed
- Important Questions November
- Sword +5 Against Orange
- CSS Gradient Syntax
- Challenges In Software Research October
- Removing The Media Element 'load' Event
- Melbourne September
- Melbourne
- No Worries
- Somewhere On The Internet...
- mozLoadFrom And The Media Cache
- Auckland Web Meetup 2009
- Cheap Broadband Doesn't Matter August
- Post-Holiday
- On The Road
- Homework Answers
- Winter's Day On The West Coast
- Homework July
- Idiots
- Justifying Evil
- Approved For The Intelligence Community
- On Not Being Evil
- Faces Of The Web Video Revolution
- Progress June
- Native Widgets Begone
- Whitespace Begone
- DirectShow And Platform Media Frameworks
- The Price Of Freedom
- Stupid X Tricks May
- Status
- 4d2f8648efd45acd8e4f0c4b24b4ed51
- Mozilla Corporation All-Hands And Other Adventures April
- Travel
- The Ultimate Emulator
- Reflecting on NZCSRSC 2009
- The Man In The Middle
- Media Cache March
- Seductive Infrastructure February
- Checking The Rear-View Mirror
- Filters, Libraries And The Web
- Columns Conversations
- SVG Filter Effects For Plain Old HTML
- Hazardous Biology
- On Conversations
- Kiwifoo 2009
- Telling It Like It Is
- Mozilla Afloat
- Mozilla At Karekare January
- Tips For Getting Patches Landed
- Post-3.1 Plans
- Mountain Fun
- Scheduled Downtime
- Invalidation Reftests
- Right And Wrong 2008 December
- Wikipedia
- Ship's Blog
- Offline
- Blast From The Past
- 0d9430209720a141205bf8986cdc9598
- New Game, Old Rules
- Reftests
- Places I've Been
- Mozilla NZ
- West Coast
- Waiheke November
- Miscellany
- The Essence Of Web Applications
- Grumble Grumble October
- American Tidbits
- The Tragedy Of Naive Software Development
- October Travel
- Invalidation
- SVG Bling Update
- Hating Pixels
- Coromandel
- Interesting Developments In Program Recording September
- Chronicle Update
- Dear Nat Torkington
- New Zealand Open Source Awards
- Whatipu
- Whiny Expats
- CSS Transforms
- Auckland Web Meetup Summary
- Some Boring CSS/Acid3 Stuff
- 4a8dec89f08156ec972ddc3ff319eb01
- Auckland Web Meetup
- Chrome August
- Kitekite Falls
- Disruption In Progress
- Analyzing Deer
- The Coming Battle Over Web Fonts
- Eureka
- My Summit
- Why Ogg Matters July
- Mixed News
- SVG Filter Performance Improvements In Gecko 1.9.1
- Wellington
- ROC Scheduled Maintenance - Wednesday 16/7/2008 to Sunday 20/7/2008
- Using Arbitrary Elements As Paint Servers
- SVG Paint Servers For HTML
- Fun June
- Some 1.9.1 Updates
- Hits And Misses
- Eager Backouts
- Advanced Topics In Computer Science #2: Rectangles
- Working Overtime
- 5ce9134be8a642e1fbf3b93593da33e9
- Applying SVG Effects To HTML Content May
- Ergonomics
- Well, I'm Back Again
- Status
- Perspective
- Don't Stop On The Freeway
- More Travel
- Fermi's Paradox April
- Visiting Hamilton
- Te Henga
- The Ozymandias Ultimatum
- The Good Fight
- Specification Superheroes
- The Shadow Of The Moon
- Additional Austral Peregrinations
- Kindling Enthusiasm March
- Travel Plans
- NOT A Cross-Browser Implementation Of XBL2
- Initial IE8 Thoughts February
- Platform Tilt
- Rounding Towards (Or Away From) Zero Considered Harmful
- The Best Of Intentions
- Recap Part 2: Foo/Baa Camp
- Recap Part 1: California January
- Different Approaches To Compability Modes
- Travel
- Slipping The Ball And Chain
- <META HTTP-EQUIV="X-BALL-CHAIN">
- Subpixel Layout And Rendering
- GTK Printing
- Auckland Mozillans At Play
- Auckland Mozillans
- String Theory
- The Dark Side Of The Moon
- Christmas Excursions 2007 December
- Our Rectangles Overfloweth
- Drive-By Debugging
- Official Notice
- 2007-2008
- Barcamp Auckland
- Video Wars
- Video Star
- Interpreting Failure
- Small Mammals
- Script Safety Annotations
- e0f4ffc0ddc898cd033567bc2d1fe084 November
- A New Antipodean Free Software Outpost
- Gripping Reality
- Pegs, Holes And Reflow
- 8 Kent St
- Intranet Explorer
- Finding The Core
- Status October
- Linux Matters, Addendum
- Linux Matters
- Growing Pains
- Abstraction Penalties, Stack Allocation And Ownership Types
- Backing Store #2: Dependency Tracking
- A Tale Of Two Zooms
- Exploring Auckland
- Welcome To My Backing Store
- One More Reason Why We Need Audio (And Video) In The Browser
- Fish, Water
- Tabula Fracta
- Changing Horses
- Tragic Vindication
- If I Did It
- Triage September
- Parallel DOM Access
- Textalicious
- My World Cup Predictions
- Why Erlang Is Not The (Whole) Answer
- Parallel Browsing
- Trust No One
- Federal Government
- +1
- Chickenfoot/Koala/CoScripter
- Gloom-o-rama
- Bruce Willis And Quantum Computing August
- Mercurial
- OOXML Wars
- Announcing Chronomancer
- Post Vivem
- High And Low
- Flood Control Dam Number Three July
- Major Chronicle Bug Fixed
- Ozzie Oddity
- Upcoming Events
- Brrrrrr
- Chronicle Contribution
- Status
- Camera Features I Want
- Fashionable Controversies
- Holiday Photos
- Rotovegas
- Media Superstar
- Things I Hate
- Holidays
- Text Status
- Mea Maxima Culpa June
- Durban, Paris, Valencia, Mangere
- Webstock Press
- Wellington
- 15 Minutes With A Tucked-In T-Shirt
- Bad Steve
- This Week's Madness
- Shrike
- Waikowhai
- Status Update May
- We Don't Need No Office Education
- Things I've Seen With My Eyes
- Record-And-Replay In Virtual Machines
- The Glyph Bounds Problem
- Performance Observation
- Chronicle Update
- Speeding Up Mkdepend
- Authentication
- Status
- Collision
- Desperate Measures April
- Travel
- Bethell's Beach
- History Based Stack Reconstruction
- Chronicle Released
- MoCo All-Hands
- Google Maps Fails Me
- Travel Plans March
- Questions That Must Be Answered
- Text Text Text
- Festival Mania February
- Miscellany
- Computerworld Article
- Faith
- Offline Web Applications
- Superlaser Targeting Cupertino
- ATSUI Woes
- Now Witness...
- Evil
- Units Patch Landed
- Mozilla In Auckland
- Post Baa Camp
- Baa Camp January
- Anniversary Weekend
- ec06b3461cf0eaf3d3e4d7a2e429bddb
- Sharing Sources Across Virtual Machines
- Babes In Toyland
- Fortress
- Status 2006 December
- More About Amber
- A New Approach To Debugging
- Pohutukawa
- Parallelism
- Changes Afoot
- The Ultimate Square Peg
- Patent Sea Change
- Congratulations David!
- XUL Dark Matter
- Linux
- NetworkManager, dbus and Offline Status November
- Firefox Summit
- Prophecy Fulfilled
- Mail Forwarding
- Making Web Applications First Class Desktop Citizens October
- Miscellany
- Partial Ligatures
- Thinking About Performance
- Motutapu Island
- Mysterious Cargo
- More Text
- Insufficiently Paranoid
- Text Progress
- My Father's Days Of Piracy September
- Here Comes A New Challenger!
- Status
- Static Analysis And Scary Headlines
- Dream Time II
- Crazy Noodle August
- More Status
- Out Of Action
- What's Wrong With The SVG Working Group
- Sweet Sorrow July
- RGBA Windows
- Worlds In Collision
- The Good, The Bad, And The Three-D
- Necrolicious
- On The Road
- Eighty Minutes Of Terror June
- CORBA Post Mortem
- The Future Is Now
- The Wild West
- Duder Regional Park
- The Future Of Western Civilization May
- Bad Choices
- DVD Madness
- Assorted Thoughts April
- Dream Time
- GNOME Themes In HTML
- Asiana IV
- Read My Lips
- Having A Miserable April Fool's Day March
- And So It Begins ... February
- Linker Performance Revisited
- Choosing Sides
- Cairo, Linux And GTK2 Themes
- Irrational Glumness
- The Greatest Movies Of All Time
- Anatomy Of Bloat
- The Joy Of Text
- Tongariro January
- Stormy Conditions, Outlook Fair
- One Year On
- Morning Light 2005 December
- Port Waikato
- Frame Display Lists And Next Steps
- Night Of The Living Threads
- The BBC Gets It Wrong
- Web Standards, Mozilla Extensions And Other Ranting
- Means And Ends November
- Ambushed
- Gloomocracy IV
- Frame Display Lists
- "Premature Optimization Is The Root Of All Evil" Is The Root Of Some Evil October
- Travels September
- Upcoming Travel
- Blast From The Past August
- SVG Interoperation
- Speaking The Truth In Love (I Hope)
- IE7 To Fix A Number Of Standards-Compliance Issues July
- Gecko 1.9
- Whatipu
- EU Patent Law Defeated June
- Eclipse CDT
- 'Talisman' and Programming Language Semantics
- I Have A Dream
- Avalon Lockdown
- display:inline and tables
- Around The World In 22 Days
- Graphics Thoughts
- An Unexpected Journey May
- Xgl
- XTech
- Landed Canvas drawWindow API
- Socialized Medicine
- Travel
- Rendering Web Page To Images
- Light-Weight Instrumentation from Relational Queries Over Program Traces
- The Language Of Doom
- Cairo Progress April
- Globalization
- Cairo Status
- Star Wars
- Glimpse Of The Future
- Acid2
- Rangitoto
- April Curmudgeon March
- Rediscovering Auckland
- Gecko 1.8 For Web Developers: Collapsing Margins And The 'Clear' Property
- Gecko 1.8 For Web Developers: Columns
- The Great U-Turn
- Gloomocracy III
- Gloomocracy II: Gloomocrats United
- Slough of Despond
- Heroes
- Visual Regression Tests February
- Lizard Engineer
- Cultural Synthesis
- Lantern Festival
- Just Swell
- Urupukapuka Island
- Sunshine
- Optimizing GNU ld
- The Usable Society
- The Joy Of Benchmarking
- Asiana III
- Nazis, Computers and Me
- Lizard Time
- Asiana II
- Herald Interview
- Living the Dream January
- Perambulations
- Sharing binaries across multiple Mozilla trees with ccache
- Asiana
- Forestry
- Branded
- Well, I'm Back
- The Gloomocracy
- Counting Down 2004 December
- Fog of War
- Why Mozilla
- Why New Zealand
- Well, I'm Almost Back
Thursday 24 September 2026
Goodbye Google
Today I’m sending the following email:
I’m resigning from Google today.>
This has not been an easy decision. I love my colleagues and my work environment, and being paid handsomely to solve fun puzzles has been amazing. But my team’s goal is ultimately to make AI much cheaper and lower-latency, and I don’t think that’s good for people right now: I firmly believe AI progress is currently far too rapid (and I have doubts about the destination too). It’s practically impossible for me to move to a different Google project that wouldn’t accelerate AI (partly due to my ties to New Zealand, where Google prefers not to do engineering), so my hands are tied.>
There are millions of people contributing to AI acceleration and taking my foot off the accelerator will have a very small impact … but not no impact; some of my skills are rare. I explored trying to positively influence events from within GDM, but that effect does not seem to be strong, and I can have influence outside Google too. It’s tempting to just turn a blind eye to the impact of my work, but that would not be a Jesus-following thing to do. I have written more about these tradeoffs on my blog.>
I don’t know exactly what I will do next. I will continue maintaining Pernosco and rr, and relatedly I plan to investigate how AIs debug code today and whether and how debugging tools could help. I have other project ideas I want to work on, some potentially lucrative, some not. Maybe I’ll find an existing project that’s compelling. I definitely want my future work to be unambiguously pro-human.
---
First, for those who don’t know me: I’ve been in the tech industry a long time and I have a lot of Silicon Valley connections, but I live in New Zealand so I live outside the industry bubble and also outside the American bubble. I’m a Christian, and actually an elder and occasional lay preacher in the English-speaking congregation of Auckland Chinese Presbyterian Church in Auckland’s inner city. That is, I am not a “tech bro”, nor do I fit into the self-described “rationalist community” … but I do think many of their arguments deserve to be taken seriously.
I have a lot of thoughts about AI, but I’m not going to elucidate them all in this post. In summary, I think the existential risks many people are warning about deserve to be taken seriously; a lot of the phenomena predicted by the “doomers” have come to pass (e.g., reward hacking, misalignment, deceptive models, model eval awareness, psychotic swarms). However, I am not convinced the chance of ASI doom is 100%. Rather, I think the risk is real but uncertain — but that itself is very alarming! We are morally obliged to make a massive effort to minimise such risk, and most likely the risk is high enough that aiming for ASI in the near future is inherently irresponsible. I’m also very concerned about other AI-related issues: cognitive surrender, AI-induced psychosis and loneliness, power concentration, economic disruption, cybersecurity, lack of accountability, and so on. I think the potential benefits of AI are quite unclear and currently, if I had to bet, I’d bet the negatives will outweigh the benefits … but I’m uncertain about that too.
Here are some things I’m confident about. I’m confident that the people in AI labs who are issuing warnings about AI are generally sincere. I’ve talked to many people in Google Deepmind about these issues and almost all of them have sincere and serious concerns, whether or not they voice them in public. I have seen no hard evidence that people are hyping AI risk as a means to boost company stock prices or regulate away their competitors. (I think national and international regulation is desperately needed!) I’ve seen a lot of arguments of the form “you can’t trust those people”, and maybe that’s true, but such distrust is not a good reason to disregard their warnings, as Russell Moore eloquently explained recently.
I’m confident that AI capability will continue to keep increasing steadily as long as we keep working on it. I wish that AI would hit some kind of plateau, or that we would identify important human cognitive abilities that AI will never replicate without a paradigm shift, but I don’t expect those wishes to come true. Model progress on benchmarks seems as fast or faster than ever, and with it, qualitatively new capabilities keep emerging. Even if model progress stopped today, we could spend years effectively unlocking new capabilities via new prompts and harnesses. Many prominent AI detractors (looking at you, Zitron and Doctorow) seem to think that AI is some kind of scam that won’t really work. I think it will.
I’m very confident that even if there is a path to a better future through AI, the current rate of change is far too high. AI is developing faster than humans can individually and collectively understand it and adapt to it. People trying to plan their futures, e.g. trying to plan for a world several years in the future as they enter university, can no longer do so the way previous generations could. I don’t think we’ve seen anything like this before, certainly not in the previous technological shifts I have lived through (PCs, the Internet, smartphones). Even during the Industrial Revolution, not only was change much slower but there were large swathes of human activity that were not and could not be directly impacted by the new machines. That is not very true anymore.
Why leave now and not earlier? It’s nothing to do with the recent spate of viral resignations or “AI slowdown” warnings; that’s a coincidence. I’ve had this date in mind for a while, because I have a long-planned ten-day backpacking trip with my friends starting Monday (Abel Tasman and Wangapeka tracks) and I wanted to go before that.
I did not work directly on AI capability, but on improved tools for hardware chip design. I really enjoyed the work, and for a while I told myself it was relatively harmless, but over time God forced me to confront the reality that the main impact of these tools will be to accelerate the design of a new breed of AI chips, which if successful will make AI much cheaper and faster — making AI more pervasive, and also more capable since we’ve learned to boost capabilities by burning more inference tokens. My duty to be a good employee meant I had to have an honest conversation with my skip manager and tell them I was at best reluctant to see their project succeed! Even after that I wanted to be really confident in my decision, because the great deal I had working for Google in New Zealand will probably never be available again. (Staying at Google and switching to a different engineering team not accelerating AI was impractical, because Google doesn’t have other engineering teams in New Zealand.) My aforementioned duty to my employer, and my respect for the people, was also a factor for not leaving too abruptly and trying to hand over my work in a reasonable state.
What next? The most important thing I’m confident about is that the Jesus of the Bible is real and therefore God has a plan that’s good for us. I don’t know what that plan is (and wish I did) but it lets me sleep at night in spite of the AI chaos. I expect his plan involves me continuing to make the best use of my talents. Even if the plan is for Jesus to return to rescue us from our folly, we’d better be busy when he returns! So, as long as the talent God gave me is valuable, I want to keep working. As I mentioned above, I plan to continue maintaining Pernosco and rr. Under the Pernosco umbrella, I plan to study how AI agents debug code and whether debugging tools that can make them more effective at that. I want to use AI agents to bring some of my hobby project ideas to life. I’m keen to reap the benefits of AI, but cautiously, in ways that benefit humans and keep my own mind sharp. As much as I can, I will continue practicing and advocating for that here in New Zealand.