The Curious Engineer

All blogs / OCaml / F#

Anil Madhavapeddy's feed

anil.recoil.org

Anil Madhavapeddy's research combines computer science and environmental science at the University of Cambridge

OCaml / F#ScienceAI / MLSystems

Posts
431 from 3 Dec 1999 to 29 Oct 2026
Posting
weekly (119 in the last year)
Kind
personal blog
Feed
https://anil.recoil.org/news.xml

2026 84

  1. From subject dinners to samosa socials at Pembroke College
  2. .plan-26-43: Wireguard meshes over troubled water
  3. .plan-26-42: Tails of the unexpected
  4. .plan-26-41: Hello, is it Part II you're looking for?
  5. OCaml's module language is the perfect fit for agentic programming
  6. .plan-26-40: A whole new world (of wall-to-wall Tessera embeddings)
  7. LIFE, Zarr and everything
  8. .plan-26-39: End of my sabbatical, and I feeeel fine!
  9. Mapping millions of little trees across the Cairngorms with airborne LiDAR
  10. .plan-26-38: Near, far, wherever you are, Tessera infers on
  11. .plan-26-37: The humans aren't dead, the humans are ahead
  12. Hitting a NERVE with attacks on AI-powered brain-computer interfaces
  13. Open MPhil/Part II student projects for 2026-2027
  14. .plan-26-36: Ground control to major MODIS
  15. Security scanning my own code with Scrutineer and local coding models
  16. .plan-26-35: All I want for Tesseramas is (GP)U
  17. The 3rd Programming for the Planet 2026 videos are available
  18. Celebrating a year of Tessera embeddings and releasing GeoTessera 0.10
  19. .plan-26-34: Am I human or am I antibotty
  20. Just a rumour of a bug is enough to find a security exploit these days
  21. Using Forester to turn Foundations of CS into interactive evergreen lectures
  22. .plan-26-33: Zarro rides out and evidence papers pour in
  23. Improving local weather forecasts using Tessera embeddings
  24. .plan-26-32: Finally a use for serverless and found the Forester for the trees
  25. Updating to the OxCaml 5.2.0-minus39 opam packaging
  26. GetMOBILE article on benchmarking micro-NPUs now out
  27. .plan-26-31: Sorting out Tessera and Evidence TAP infrastructure
  28. .plan-26-30: Bananas ripen, models open, and OxCaml releases
  29. .plan-26-29: Perfect weather, imperfectly measured, precisely predicted
  30. .plan-26-28: What fun papers piled up while I was out at sea
  31. .plan-26-27: Somewhere over the icecap
  32. .plan-26-26: Gelato, geospatial, and players of games
  33. A scorching CNG London during Climate Action Week
  34. .plan-26-25: Planetary scale plans, Windows file-descriptor scale problems
  35. Sir David Attenborough joins us to celebrate the Cambridge Conservation Initiative
  36. The Royal Society Environmental Prize lecture on feeding the world without costing the earth
  37. Language integrated LLMs as an OCaml function
  38. .plan-26-24: Apparently a professor now; still debugging io_uring at midnight
  39. Tessera v1.1 released, with smoother and temporally stable embeddings
  40. .plan-26-23: Earth Embeddings, Emails Everywhere, and ERRNOOOs
  41. Tessera at CVPR 2026, and the front page of the European Space Agency!
  42. Self-hosting email the hard way from your own routable IPv4 block up
  43. .plan-26-22: From digital rewilding in Edinburgh to uring and Tessera hackery
  44. Rewilding the Web: my workshop report from Edinburgh
  45. .plan-26-21: Pint of Science, OxCaml dissertations, and TESSERA 1.1 stirring
  46. What happens when a hedgehog story prickles its way into the BBC
  47. Building OxCaml packages for Debian, Fedora, Homebrew and Arch
  48. .plan-26-20: Putting OxCaml in a box and OCaml in orbit (again)
  49. Voluntary AI disclosure proposal for OCaml: update 1
  50. .plan-26-19: Ancient oaks, parliamentary evidence, and TESSERA in the City
  51. .plan-26-18: From tropical forest protection to oi swallowing its oxcaml tail
  52. Helping tropical forest protection keep up with a fast-changing world
  53. .plan-26-17: Unwedging kernels, dogfood deployments, and managing beef leakage
  54. AI, science and the UK–EU relationship at the Royal Society
  55. .plan-26-16: Chennai, Cambridge, Belfast: a week on the wing
  56. The FP Launchpad takes off at IIT Madras
  57. .plan-26-15: Banyan trees, (anti)botnets and Bose-Einstein bases
  58. The Internet needs an antibotty immune system, stat
  59. .plan-26-14: Tracking AI screen time and escaping to pen and paper
  60. A Proposal for Voluntary AI Disclosure in OCaml Code
  61. .plan-26-13: Oxidised, standardised, and syndicated
  62. TESSERA now supports the Zarr geo-embeddings convention proposal
  63. .plan-26-12: Zarr across space and TESSERA time
  64. .plan-26-11: Bins, bollards, bots and biodiversity boffins
  65. Streaming millions of TESSERA tiles over HTTP with Zarr v3
  66. .plan-26-10: Streaming TESSERA working, biodiversity action papers, and FPL takes off
  67. Connecting the dots for biodiversity action from the NAS/Royal Society Forum
  68. .plan-26-09: Browser TESSERA, package management and Docker in the CACM
  69. A Decade of Docker Containers on the CACM cover!
  70. .plan-26-08: At AI summit, Shriram's PL opinions, Zarr hacking
  71. At the AI Impact Summit in Delhi: people, planet, progress
  72. 1st TESSERA/CoRE hackathon at the Indian AI Summit
  73. .plan-26-07: Storage, Lego, Echo, and the IUCN
  74. .plan-26-06: Vivas, ARIA and interviews
  75. Discussing effective conservation with all the UK Chief Scientists
  76. My (very) fast zero-allocation webserver using OxCaml
  77. .plan-26-05: An OxCaml hacking week
  78. .plan-26-04: Travelling and tracking TESSERA activity
  79. .plan-26-03: TESSERA scaling and speaking at AI4Nature's launch
  80. Five ways to use the LIFE metric for conservation decision-making
  81. .plan-26-02: Back from India and straight into the conservation conference
  82. Devcontainer for using O(x)Caml and Claude in your projects
  83. .plan-26-01: Easing into the new year with reading, temples and mosquitos
  84. Happy new year and my fave readings of the year

2025 97

  1. AoAH Day 25: Claude OCaml Marketplace for all your festive coding needs
  2. AoAH Day 24: Tuatara, an evolving Atom aggregator that mutates
  3. AoAH Day 23: Unpac unifies git branching with package management
  4. AoAH Day 22: Assembling monorepos for agentic OCaml development
  5. AoAH Day 21: Complete dynamic HTML5 validation in OCaml and the browser
  6. AoAH Day 20: Human language detection in native code, JS and wasm
  7. AoAH Day 19: Zulip bot framework to bring Vicuna the friendly camel back
  8. Dear ACM, you're doing AI wrong but you can still get it right
  9. AoAH Day 18: TOML 1.1 codecs directly from the spec and paper
  10. AoAH Day 17: OCaml JMAP to plaster my painful email papercuts
  11. AoAH Day 16: Vibesplaining JSON Pointers using OCaml/Javascript
  12. AoAH Day 15: Porting a complete HTML5 parser and browser test suite
  13. AoAH Day 14: Debugging a Karakeep CLI against the live service
  14. AoAH Day 13: Heckling an OCaml HTTP client from 50 implementations in 10 languages
  15. AoAH Day 12: Eio Connection pooling and event tracing
  16. AoAH Day 11: HTTP Cookies and vibing RFCs for breakfast
  17. AoAH Day 10: Building a TUI for Sortal using Mosaic
  18. AoAH Day 9: Adding a Bonsai terminal UI to Sortal
  19. Publish, Review, Curate to upend scholarly publishing
  20. AoAH Day 8: Building a contacts CLI manager with Sortal
  21. AoAH Day 7: Converting between JSON and Yaml with yamlt
  22. AoAH Day 6: Getting a Yaml 1.2 implementation in pure OCaml
  23. AoAH Day 5: Bytesrw Eio adapters and automating opam metadata
  24. AoAH Day 4: Going recursive with Claudeio for Claude
  25. Foundational AI for Ecosystem Resilience workshop
  26. AoAH Day 3: XDG filesystem paths using Eio capabilities
  27. AoAH Day 2: Building an OCaml JSONFeed library
  28. 2025 Advent of Agentic Humps: Building a useful O(x)Caml library every day
  29. The AI French Connection to the Practice of Science
  30. AoAH Day 1: Building a Base32 Crockford library in OCaml
  31. Four Ps for Building Massive Collective Knowledge Systems
  32. GeoTessera 0.7 out with efficient sampling and Zarr support
  33. On the path to the UK/India AI Summit with OpenUK and the ATI
  34. Food and the long term risk to life
  35. Jensen Huang receives the Hawking Fellowship at Cambridge
  36. A Roundup of ICFP/SPLASH 2025 happenings
  37. What I learnt at ICFP/SPLASH 2025 about OCaml, Hazel and FP
  38. It's time to go post-POSIX at ICFP/SPLASH 2025
  39. Jane Street and Docker on moving to OCaml 5 at ICFP/SPLASH 2025
  40. Holding an OxCaml tutorial at ICFP/SPLASH 2025
  41. Programming for the Planet at ICFP/SPLASH 2025
  42. Do not rule out nature from climate action; an open letter
  43. Exploring the biodiversity impacts of what we choose to eat
  44. GeoTessera Python library released for geospatial embeddings
  45. Presenting our Ecology of the Internet ideas at Aarhus 2025
  46. mlgpx is the first Tangled-hosted package available on opam
  47. Tracking locations with OwnTracks, Life Cycle and Home Assistant
  48. Cresting the OCaml AI humps
  49. Using Kyutai's low latency audio models on macOS in one command
  50. Royal Society's Future of Scientific Publishing meeting
  51. Is AI poisoning the scientific literature? Our comment in Nature
  52. EEG internships for the summer of 2025
  53. Steps towards an ecology of the Internet
  54. Under the hood with Apple's new Containerization framework
  55. Visiting National Geographic HQ and the Urban Exploration Project
  56. We become Junior Rangers at Shenandoah
  57. What I learnt at the National Academy of Sciences US-UK Forum on Biodiversity
  58. New preprint survey on energy-aware deep learning on embedded hardware
  59. Out-of-the-box LLMs are not ready for conservation decision making
  60. Learnings from the Cambridge Environmental Sustainability Committee
  61. Humans are the ones that will save nature, helped by AI
  62. Using Komodo to manage Docker compose on a small cluster
  63. BIOMASS launches to measure forest carbon flux from space
  64. Technology needs to unite conservation, not divide it
  65. Viewing web logs the old fashioned way with Goaccess
  66. Talks from LOCO24 are now available online
  67. Webassembly on exotic architectures (a 2025 roundup)
  68. ESA's first BioSpace conference seems a huge success
  69. Unikernels wins the ASPLOS most influential paper award
  70. Semi distributed filesystems with ZFS and Sanoid
  71. 2nd Programming for the Planet workshop CFP out
  72. New preprint on benchmarking ultra-low power neural accelerators
  73. LIFE becomes an Official Statistic of the UK government
  74. A fully AI-generated paper just passed peer review; notes from our evidence synthesis workshop
  75. Socially self-hosting source code with Tangled on Bluesky
  76. Our EEG group discussion on 'useful' AI tools
  77. Are you still using OCaml 4.08 or earlier? If so, we need to know
  78. Oh my Claude, we need agentic copilot sandboxing right now
  79. The AIETF arrives, and not a moment too soon
  80. A trio of papers I read on biodiversity and forests this week
  81. Thoughts on the National Data Library and private research data
  82. Index
  83. Updated preprint on quantifying biodiversity cost of food consumption
  84. The Cambridge "Green Blue" competition to reduce emissions
  85. Using AT Proto for more than just Bluesky posts
  86. Entering the Matrix with Hookshot
  87. Programming FPGAs using OCaml
  88. Fake papers abound in the literature
  89. Satellites are getting too good for forest carbon?
  90. Disentangling carbon credits and offsets with contributions
  91. Deepdive into Deepseek advances
  92. How to publish custom Homebrew taps for OCaml
  93. Position paper on scientifically credible carbon credits
  94. Arise Bushel, my sixth generation oxidised website
  95. Updated preprint on LLMs for evidence-based decision support
  96. LIFE metric published in Royal Society Phil Trans B
  97. Teaching at Cambridge.

2024 40

  1. Horizon scan on AI and conservation published
  2. Towards verifiable, privacy-preserving carbon emissions claims
  3. Towards a frugal userspace for Linux
  4. Prototyping carbon-aware domain name resolution
  5. Cooperative Sensor Networks for Long-Term Biodiversity Monitoring
  6. Royal Society and DeepMind host AI for Science Forum
  7. Published a legal perspective on high integrity forest carbon credits
  8. Presented poster at Sensys on low-power biodiversity monitoring
  9. Preprint on using LLMs to for evidence-based decision support
  10. Paper on scheduling for reduced tail task latencies
  11. Mapping greener futures with planetary computing
  12. On the SOCC 2024 PC
  13. Royal Society meeting on ecological/commercial risks
  14. Being on the HotNets 2024 program committee
  15. Mitigating credit reversal risks in nature-based solutions
  16. Towards security specifications for agentic AIs
  17. New teaching page with my Computer Science courses
  18. Building species models of the planet
  19. Paper published on ex-ante forecasts of nature-based solutions
  20. PACT Tropical Moist Forest Accreditation Methodology
  21. Nature Sustainability commentary on carbon and biodiversity credits
  22. Preprint on Terracorder sensing now available
  23. Nature Sustainability article on carbon/biodiversity credits
  24. New set of ideas for incoming students
  25. COMPASS 2024 report on the CoRE stack RIC meeting
  26. Second preprint of the LIFE biodiversity metric available
  27. Speaking at CCI workshop on conservation evidence
  28. Interview with AI@CAM about conservation
  29. Hyperspectrally identifying trees in tropical forests
  30. Programming for the Planet
  31. Quantifying the impact of the food we eat on species extinctions
  32. Predicting species using machine learning at CCAI
  33. Teaching 1A Security and Software Engineering
  34. Global, robust and comparable digital carbon assets
  35. Rolling out a new site design
  36. Preprint available on insuring against variability of NbS
  37. Green Urban Equity: Analyzing the 3-30-300 Rule in UK Cities and Its Socioeconomic Implications
  38. A Case for Planetary Computing
  39. Selected in the AI@CAM challenge for conservation research
  40. Uncertainty at scale: how CS hinders climate research

2023 19

  1. Joined the Royal Society fellowships committee
  2. PACT Tropical Moist Forest Accreditation Methodology
  3. BBC report on the new Cambridge supercomputer ("Dawn") announced at the 2023 AI Summit
  4. Where on Earth is the Spatial Name System?
  5. Nature Climate Change paper on impermanent carbon credits
  6. First preprint of LIFE biodiversity metric available
  7. Cambridge Zero highlights University efforts at Climate Week NYC
  8. Information Flow Tracking for Heterogeneous Compartmentalized Software
  9. Enabling Lightweight Privilege Separation in Applications with MicroGuards
  10. Functional Programming for the Planet
  11. State of the OCaml Platform 2023
  12. Eio 1.0 – Effects-based IO for OCaml 5
  13. Preprint on the social value of impermanent carbon credits
  14. OCaml wins the ACM Programming Language Software award
  15. PACT Tropical Moist Forest Accreditation Methodology
  16. Credit credibility threatens forests
  17. Leveraging Scientific Innovation and AI to Scale Carbon Markets
  18. A Case for Planetary Computing
  19. OCaml.org: recapping 2022 and queries on the Fediverse

2022 8

  1. Financing Forests: A Credible Approach towards Halting Tropical Deforestation
  2. 17th William Pitt Seminar - Who's in Charge?
  3. The 2nd ed of Real World OCaml is available in shops
  4. Homogeneous Builds with OBuilder and OCaml
  5. Trusted Carbon Credits
  6. OCaml Multicore Monthly: heading towards OCaml 5.0
  7. OCaml Multicore Monthly: post merge activites
  8. Enhancing the Security & Privacy of Wearable Brain-Computer Interfaces

2021 10

  1. OCaml Multicore Monthly: code review complete with Inria
  2. Launching the Cambridge Centre for Carbon Credits
  3. What is an Operating System?
  4. OCaml Multicore Monthly: effect handling confirmed for 5.0
  5. Forest preservation and restoration
  6. Decentralised tech on Recoil
  7. Roadmap for OCaml's online presence
  8. How Computer Science Can Aid Forest Restoration
  9. Experiences with Effects
  10. Retrofitting effect handlers onto OCaml

2020 12

  1. Banyan: Coordination-Free Distributed Transactions over Mergeable Types
  2. The OCaml Platform: 2020
  3. State of the OCaml Platform 2020
  4. OCaml Multicore Monthly: systhreads compatibility merged
  5. Retrofitting parallelism onto OCaml
  6. Parallelising your OCaml Code with Multicore OCaml
  7. OCaml-CI: A Zero-Configuration CI
  8. OCaml Multicore Monthly: preprint paper available
  9. The First Billion Real Deployments of Unikernels
  10. Rebuilding Operating Systems with Functional Principles
  11. Programming the Next Trillion Embedded Devices
  12. OCaml Multicore Monthly: starting upstream to OCaml

2019 5

  1. OpenBSD cloud hosting options
  2. The OCaml Platform in 2019
  3. MirageOS 4: the dawn of practical build systems for exotic targets
  4. Programming Unikernels in the Large via Functor Driven Development
  5. Snape: The Dark Art of Handling Heterogeneous Enclaves

2018 7

  1. New opam repository layout for large libraries
  2. A modular foreign function interface
  3. Foundations of Computer Science
  4. Bounding data races in space and time
  5. Concurrent System Programming with Effect Handlers
  6. An architecture for interspatial communication
  7. Founded Tarides and looking to hire OCaml hackers

2017 5

  1. State of the OCaml Platform
  2. The State of the OCaml Platform: Sep 2017
  3. Effectively tackling the awkward squad
  4. Opening discuss.ocaml.org for the community
  5. DaLi: Database as a Library

2016 10

  1. Unikernels: the rise of the library hypervisor in MirageOS
  2. MirageOS Summer 2016 hack retreat
  3. MirageOS Summer 2016 hack retreat.
  4. The functional innards of Docker for Mac and Windows
  5. Ian Eyberg, Joshua Bernstein, Anil Madhavapeddy at OSCON in Austin
  6. FLICK: Developing and Running Application-Specific Network Services
  7. Improving Docker with Unikernels
  8. Declarative Foreign Function Binding Through Generic Programming
  9. Unikernel Systems is now part of Docker
  10. Unikernel Systems acquired by Docker

2015 15

  1. SibylFS: formal specification and oracle-based testing for POSIX and real-world file systems
  2. Personal Data: Thinking Inside the Box
  3. Immutable Distributed Infrastructure with Unikernels
  4. The State of the OCaml Platform
  5. Not-Quite-So-Broken TLS
  6. Unikernels: Functional Infrastructure with Mirage OS
  7. Jitsu: Just-In-Time Summoning of Unikernels
  8. Kadupul: Livin' on the Edge with Virtual Currencies and Time-Locked Puzzles
  9. Jitsu: Just-In-Time Summoning of Unikernels
  10. Reviewing the second year of OCaml Labs in 2014
  11. ICFP 2015 - a call for sponsorship and how you can help
  12. Delivered keynote at BOB 2015 on MirageOS
  13. Raft Refloated: Do We Have Consensus?
  14. Mergeable persistent data structures
  15. CUFP'13 scribe's report

2014 19

  1. Codemesh 2014: Nymote: Git Your Own Cloud Here
  2. Jitsu: Just-in-Time Summoning of Unikernels (new directions in operating systems)
  3. Regional clouds: technical considerations
  4. MirageOS 2.0: branch consistency for Xen Stub Domains
  5. OCaml 2014: The OCaml Platform v1.0
  6. Haskell Symposium 2014 Keynote on functional OS design
  7. The OCaml Platform v1.0
  8. Multicore OCaml
  9. Irminsule: a branch-consistent distributed library database
  10. Talks from OCaml Labs during ICFP 2014
  11. FLOSS Weekly 302: Open Mirage
  12. MirageOS v2.0: a recap of new features
  13. MirageOS v1.2 released and the runup to 2.0
  14. SE Radio Episode 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language
  15. Codio: build Mirage unikernels from a browser
  16. Easily OPAM switching to any OCaml feature request
  17. ICFP 2014 - a call for sponsorship and how you can help
  18. Using Dust Clouds to Enhance Anonymous Communication
  19. Unikernels, and the Rise of the Virtual Library Operating System

2013 19

  1. Reviewing the first year of OCaml Labs in 2013
  2. Using Docker to bulk-build OPAM packages on Linux
  3. MirageOS and XAPI project update at XenSummit
  4. Notes from PL and OS 2013 workshop
  5. Unikernels: Rise of the Virtual Library Operating System
  6. Trevi: watering down storage hotspots with cool fountain codes
  7. First edition of Real World OCaml published
  8. Commercial users of functional programming workshop report
  9. Notes on the first Human Data Interaction workshop
  10. OCaml 2013 workshop liveblog
  11. Liveblogging CUFP 2013
  12. OPAM 1.1 beta available, with pretty colours
  13. The OCaml Platform v0.1
  14. Ocamlot: Online OCaml Testing
  15. Lost in the Edge: Finding Your Way with DNSSEC Signposts
  16. Mirage Developer Preview 1 screencast
  17. Grepping the source of every OCaml package in OPAM
  18. Unikernels: library operating systems for the cloud
  19. Perceived risks of personal data sharing

2012 14

  1. Evolving TCP: how hard can it be?
  2. Announcing OCaml Labs
  3. Breaking up is easy (with OPAM)
  4. OUD 2012: Towards an OCaml Platform and Introducing OCaml Labs
  5. Building a Xenstore stub domain with MirageOS
  6. Building a Xenstore stub domain with MirageOS.
  7. Signposts: end-to-end networking in a world of middleboxes
  8. Programming the Xen cloud using OCaml
  9. Exploring Compartmentalisation Hypotheses with SOAAP
  10. Cost, Performance & Flexibility in OpenFlow: Pick three
  11. Confidential carbon commuting: exploring a privacy-sensitive architecture for incentivising 'greener' commuting
  12. The case for reconfigurable I/O channels
  13. Dreaming of an ARM OCaml
  14. CUFP 2011 Workshop Report

2011 12

  1. OCaml Meeting 2011 - MirageOS
  2. An outing to CUFP 2011 for Mirage
  3. Dynamics for ML using Meta-Programming
  4. Dynamics for ML using Meta-Programming
  5. Delimited continuations vs Lwt for threads
  6. Delimited continuations vs Lwt for threads.
  7. DataCaml: distributed dataflow programming in OCaml
  8. Reconfigurable Data Processing for Clouds
  9. Functional programming gone wild in the SRG
  10. Camel Spotting in Paris
  11. CIEL: A universal execution engine for distributed data-flow computing
  12. Unclouded vision

2010 14

  1. Building the Xen toolstack using OCaml
  2. Mirage: A New Multi-Scale Operating System for Clouds and Crowds (2014)
  3. Self-hosting MirageOS website
  4. The personal container, or your life in bits
  5. Using functional programming within an industrial product group: perspectives and perceptions
  6. Turning Down the LAMP: Software Specialisation for the Cloud
  7. Turning Down the LAMP: Software Specialisation for the Cloud
  8. Creating high-performance, statically type-safe network applications
  9. Yurts for Digital Nomads
  10. Pulling together a user interface
  11. Multiscale not multicore: efficient heterogeneous cloud computing
  12. Opening a website
  13. Privacy Butler: A Personal Privacy Rights Manager for Online Presence
  14. Creating high-performance, statically type-safe network applications

2009 1

  1. Combining Static Model Checking with Dynamic Enforcement Using the Statecall Policy Language

2008 4

  1. Peeking under the hood of High Availability
  2. Shedding light on XenApp on XenServer performance tuning
  3. Installing Ubuntu on XenServer
  4. Enhancing web browsing security on public terminals using mobile composition

2007 2

  1. Melange: creating a "functional" internet
  2. Interacting with mobile services: an evaluation of camera-phones and visual tags

2006 1

  1. Fighting Crimeware: An Architecture for Split-Trust Web Applications

2005 9

  1. SPLAT: A Tool for Model-Checking and Dynamically-Enforcing Abstractions
  2. Ubiquitious Computing needs to catch up with Ubiquitous Media
  3. Audio networking: the forgotten wireless technology
  4. A Study of Bluetooth Propagation Using Accurate Indoor Location Mapping
  5. OpenBSD C2K5 thoughts
  6. On the challenge of delivering high-performance, dependable, model-checked internet servers
  7. Using visual tags to bypass Bluetooth device discovery
  8. Using smart phones to access site-specific services
  9. The Broadband Phone Network: Experiences with Context-Aware Telephony

2004 7

  1. Using camera-phones to interact with context-aware mobile services
  2. Connecting Paper and Online Worlds by Cellphone
  3. Using Camera-Phones to Enhance Human-Computer Interaction
  4. MIT Technology review covers SpotCodes
  5. Exploring tradeoffs in location-aware gaming using smartphones
  6. From the prawn of time
  7. Cellphone as a virtual mouse/keyboard

2003 5

  1. Context-Aware Computing with Sound
  2. My static C bounds checker extension merged into OpenBSD
  3. The Case for Abstracting Security Policies
  4. Moving to anil.recoil.org
  5. Xen 2002

2002 3

  1. Started PhD at Cambridge
  2. Streamlining PHP on OpenBSD
  3. Streaming U2 live across the Internet

2001 5

  1. Added a caching subsystem to Horde
  2. Chora now the production CVS viewer for PHP
  3. Added internationalisation to the Chora viewer
  4. GPL release of OpenFX
  5. I am now a core PHP developer

2000 3

  1. I'm now an OpenBSD developer
  2. I'm now a Horde core team member
  3. Paper on the NASA Mars Polar Lander website architecture

1999 1

  1. Slashdot covers the Mars Polar Lander