Anil Madhavapeddy's feed
Anil Madhavapeddy's research combines computer science and environmental science at the University of Cambridge
- 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
- From subject dinners to samosa socials at Pembroke College
- .plan-26-43: Wireguard meshes over troubled water
- .plan-26-42: Tails of the unexpected
- .plan-26-41: Hello, is it Part II you're looking for?
- OCaml's module language is the perfect fit for agentic programming
- .plan-26-40: A whole new world (of wall-to-wall Tessera embeddings)
- LIFE, Zarr and everything
- .plan-26-39: End of my sabbatical, and I feeeel fine!
- Mapping millions of little trees across the Cairngorms with airborne LiDAR
- .plan-26-38: Near, far, wherever you are, Tessera infers on
- .plan-26-37: The humans aren't dead, the humans are ahead
- Hitting a NERVE with attacks on AI-powered brain-computer interfaces
- Open MPhil/Part II student projects for 2026-2027
- .plan-26-36: Ground control to major MODIS
- Security scanning my own code with Scrutineer and local coding models
- .plan-26-35: All I want for Tesseramas is (GP)U
- The 3rd Programming for the Planet 2026 videos are available
- Celebrating a year of Tessera embeddings and releasing GeoTessera 0.10
- .plan-26-34: Am I human or am I antibotty
- Just a rumour of a bug is enough to find a security exploit these days
- Using Forester to turn Foundations of CS into interactive evergreen lectures
- .plan-26-33: Zarro rides out and evidence papers pour in
- Improving local weather forecasts using Tessera embeddings
- .plan-26-32: Finally a use for serverless and found the Forester for the trees
- Updating to the OxCaml 5.2.0-minus39 opam packaging
- GetMOBILE article on benchmarking micro-NPUs now out
- .plan-26-31: Sorting out Tessera and Evidence TAP infrastructure
- .plan-26-30: Bananas ripen, models open, and OxCaml releases
- .plan-26-29: Perfect weather, imperfectly measured, precisely predicted
- .plan-26-28: What fun papers piled up while I was out at sea
- .plan-26-27: Somewhere over the icecap
- .plan-26-26: Gelato, geospatial, and players of games
- A scorching CNG London during Climate Action Week
- .plan-26-25: Planetary scale plans, Windows file-descriptor scale problems
- Sir David Attenborough joins us to celebrate the Cambridge Conservation Initiative
- The Royal Society Environmental Prize lecture on feeding the world without costing the earth
- Language integrated LLMs as an OCaml function
- .plan-26-24: Apparently a professor now; still debugging io_uring at midnight
- Tessera v1.1 released, with smoother and temporally stable embeddings
- .plan-26-23: Earth Embeddings, Emails Everywhere, and ERRNOOOs
- Tessera at CVPR 2026, and the front page of the European Space Agency!
- Self-hosting email the hard way from your own routable IPv4 block up
- .plan-26-22: From digital rewilding in Edinburgh to uring and Tessera hackery
- Rewilding the Web: my workshop report from Edinburgh
- .plan-26-21: Pint of Science, OxCaml dissertations, and TESSERA 1.1 stirring
- What happens when a hedgehog story prickles its way into the BBC
- Building OxCaml packages for Debian, Fedora, Homebrew and Arch
- .plan-26-20: Putting OxCaml in a box and OCaml in orbit (again)
- Voluntary AI disclosure proposal for OCaml: update 1
- .plan-26-19: Ancient oaks, parliamentary evidence, and TESSERA in the City
- .plan-26-18: From tropical forest protection to oi swallowing its oxcaml tail
- Helping tropical forest protection keep up with a fast-changing world
- .plan-26-17: Unwedging kernels, dogfood deployments, and managing beef leakage
- AI, science and the UK–EU relationship at the Royal Society
- .plan-26-16: Chennai, Cambridge, Belfast: a week on the wing
- The FP Launchpad takes off at IIT Madras
- .plan-26-15: Banyan trees, (anti)botnets and Bose-Einstein bases
- The Internet needs an antibotty immune system, stat
- .plan-26-14: Tracking AI screen time and escaping to pen and paper
- A Proposal for Voluntary AI Disclosure in OCaml Code
- .plan-26-13: Oxidised, standardised, and syndicated
- TESSERA now supports the Zarr geo-embeddings convention proposal
- .plan-26-12: Zarr across space and TESSERA time
- .plan-26-11: Bins, bollards, bots and biodiversity boffins
- Streaming millions of TESSERA tiles over HTTP with Zarr v3
- .plan-26-10: Streaming TESSERA working, biodiversity action papers, and FPL takes off
- Connecting the dots for biodiversity action from the NAS/Royal Society Forum
- .plan-26-09: Browser TESSERA, package management and Docker in the CACM
- A Decade of Docker Containers on the CACM cover!
- .plan-26-08: At AI summit, Shriram's PL opinions, Zarr hacking
- At the AI Impact Summit in Delhi: people, planet, progress
- 1st TESSERA/CoRE hackathon at the Indian AI Summit
- .plan-26-07: Storage, Lego, Echo, and the IUCN
- .plan-26-06: Vivas, ARIA and interviews
- Discussing effective conservation with all the UK Chief Scientists
- My (very) fast zero-allocation webserver using OxCaml
- .plan-26-05: An OxCaml hacking week
- .plan-26-04: Travelling and tracking TESSERA activity
- .plan-26-03: TESSERA scaling and speaking at AI4Nature's launch
- Five ways to use the LIFE metric for conservation decision-making
- .plan-26-02: Back from India and straight into the conservation conference
- Devcontainer for using O(x)Caml and Claude in your projects
- .plan-26-01: Easing into the new year with reading, temples and mosquitos
- Happy new year and my fave readings of the year
2025 97
- AoAH Day 25: Claude OCaml Marketplace for all your festive coding needs
- AoAH Day 24: Tuatara, an evolving Atom aggregator that mutates
- AoAH Day 23: Unpac unifies git branching with package management
- AoAH Day 22: Assembling monorepos for agentic OCaml development
- AoAH Day 21: Complete dynamic HTML5 validation in OCaml and the browser
- AoAH Day 20: Human language detection in native code, JS and wasm
- AoAH Day 19: Zulip bot framework to bring Vicuna the friendly camel back
- Dear ACM, you're doing AI wrong but you can still get it right
- AoAH Day 18: TOML 1.1 codecs directly from the spec and paper
- AoAH Day 17: OCaml JMAP to plaster my painful email papercuts
- AoAH Day 16: Vibesplaining JSON Pointers using OCaml/Javascript
- AoAH Day 15: Porting a complete HTML5 parser and browser test suite
- AoAH Day 14: Debugging a Karakeep CLI against the live service
- AoAH Day 13: Heckling an OCaml HTTP client from 50 implementations in 10 languages
- AoAH Day 12: Eio Connection pooling and event tracing
- AoAH Day 11: HTTP Cookies and vibing RFCs for breakfast
- AoAH Day 10: Building a TUI for Sortal using Mosaic
- AoAH Day 9: Adding a Bonsai terminal UI to Sortal
- Publish, Review, Curate to upend scholarly publishing
- AoAH Day 8: Building a contacts CLI manager with Sortal
- AoAH Day 7: Converting between JSON and Yaml with yamlt
- AoAH Day 6: Getting a Yaml 1.2 implementation in pure OCaml
- AoAH Day 5: Bytesrw Eio adapters and automating opam metadata
- AoAH Day 4: Going recursive with Claudeio for Claude
- Foundational AI for Ecosystem Resilience workshop
- AoAH Day 3: XDG filesystem paths using Eio capabilities
- AoAH Day 2: Building an OCaml JSONFeed library
- 2025 Advent of Agentic Humps: Building a useful O(x)Caml library every day
- The AI French Connection to the Practice of Science
- AoAH Day 1: Building a Base32 Crockford library in OCaml
- Four Ps for Building Massive Collective Knowledge Systems
- GeoTessera 0.7 out with efficient sampling and Zarr support
- On the path to the UK/India AI Summit with OpenUK and the ATI
- Food and the long term risk to life
- Jensen Huang receives the Hawking Fellowship at Cambridge
- A Roundup of ICFP/SPLASH 2025 happenings
- What I learnt at ICFP/SPLASH 2025 about OCaml, Hazel and FP
- It's time to go post-POSIX at ICFP/SPLASH 2025
- Jane Street and Docker on moving to OCaml 5 at ICFP/SPLASH 2025
- Holding an OxCaml tutorial at ICFP/SPLASH 2025
- Programming for the Planet at ICFP/SPLASH 2025
- Do not rule out nature from climate action; an open letter
- Exploring the biodiversity impacts of what we choose to eat
- GeoTessera Python library released for geospatial embeddings
- Presenting our Ecology of the Internet ideas at Aarhus 2025
- mlgpx is the first Tangled-hosted package available on opam
- Tracking locations with OwnTracks, Life Cycle and Home Assistant
- Cresting the OCaml AI humps
- Using Kyutai's low latency audio models on macOS in one command
- Royal Society's Future of Scientific Publishing meeting
- Is AI poisoning the scientific literature? Our comment in Nature
- EEG internships for the summer of 2025
- Steps towards an ecology of the Internet
- Under the hood with Apple's new Containerization framework
- Visiting National Geographic HQ and the Urban Exploration Project
- We become Junior Rangers at Shenandoah
- What I learnt at the National Academy of Sciences US-UK Forum on Biodiversity
- New preprint survey on energy-aware deep learning on embedded hardware
- Out-of-the-box LLMs are not ready for conservation decision making
- Learnings from the Cambridge Environmental Sustainability Committee
- Humans are the ones that will save nature, helped by AI
- Using Komodo to manage Docker compose on a small cluster
- BIOMASS launches to measure forest carbon flux from space
- Technology needs to unite conservation, not divide it
- Viewing web logs the old fashioned way with Goaccess
- Talks from LOCO24 are now available online
- Webassembly on exotic architectures (a 2025 roundup)
- ESA's first BioSpace conference seems a huge success
- Unikernels wins the ASPLOS most influential paper award
- Semi distributed filesystems with ZFS and Sanoid
- 2nd Programming for the Planet workshop CFP out
- New preprint on benchmarking ultra-low power neural accelerators
- LIFE becomes an Official Statistic of the UK government
- A fully AI-generated paper just passed peer review; notes from our evidence synthesis workshop
- Socially self-hosting source code with Tangled on Bluesky
- Our EEG group discussion on 'useful' AI tools
- Are you still using OCaml 4.08 or earlier? If so, we need to know
- Oh my Claude, we need agentic copilot sandboxing right now
- The AIETF arrives, and not a moment too soon
- A trio of papers I read on biodiversity and forests this week
- Thoughts on the National Data Library and private research data
- Index
- Updated preprint on quantifying biodiversity cost of food consumption
- The Cambridge "Green Blue" competition to reduce emissions
- Using AT Proto for more than just Bluesky posts
- Entering the Matrix with Hookshot
- Programming FPGAs using OCaml
- Fake papers abound in the literature
- Satellites are getting too good for forest carbon?
- Disentangling carbon credits and offsets with contributions
- Deepdive into Deepseek advances
- How to publish custom Homebrew taps for OCaml
- Position paper on scientifically credible carbon credits
- Arise Bushel, my sixth generation oxidised website
- Updated preprint on LLMs for evidence-based decision support
- LIFE metric published in Royal Society Phil Trans B
- Teaching at Cambridge.
2024 40
- Horizon scan on AI and conservation published
- Towards verifiable, privacy-preserving carbon emissions claims
- Towards a frugal userspace for Linux
- Prototyping carbon-aware domain name resolution
- Cooperative Sensor Networks for Long-Term Biodiversity Monitoring
- Royal Society and DeepMind host AI for Science Forum
- Published a legal perspective on high integrity forest carbon credits
- Presented poster at Sensys on low-power biodiversity monitoring
- Preprint on using LLMs to for evidence-based decision support
- Paper on scheduling for reduced tail task latencies
- Mapping greener futures with planetary computing
- On the SOCC 2024 PC
- Royal Society meeting on ecological/commercial risks
- Being on the HotNets 2024 program committee
- Mitigating credit reversal risks in nature-based solutions
- Towards security specifications for agentic AIs
- New teaching page with my Computer Science courses
- Building species models of the planet
- Paper published on ex-ante forecasts of nature-based solutions
- PACT Tropical Moist Forest Accreditation Methodology
- Nature Sustainability commentary on carbon and biodiversity credits
- Preprint on Terracorder sensing now available
- Nature Sustainability article on carbon/biodiversity credits
- New set of ideas for incoming students
- COMPASS 2024 report on the CoRE stack RIC meeting
- Second preprint of the LIFE biodiversity metric available
- Speaking at CCI workshop on conservation evidence
- Interview with AI@CAM about conservation
- Hyperspectrally identifying trees in tropical forests
- Programming for the Planet
- Quantifying the impact of the food we eat on species extinctions
- Predicting species using machine learning at CCAI
- Teaching 1A Security and Software Engineering
- Global, robust and comparable digital carbon assets
- Rolling out a new site design
- Preprint available on insuring against variability of NbS
- Green Urban Equity: Analyzing the 3-30-300 Rule in UK Cities and Its Socioeconomic Implications
- A Case for Planetary Computing
- Selected in the AI@CAM challenge for conservation research
- Uncertainty at scale: how CS hinders climate research
2023 19
- Joined the Royal Society fellowships committee
- PACT Tropical Moist Forest Accreditation Methodology
- BBC report on the new Cambridge supercomputer ("Dawn") announced at the 2023 AI Summit
- Where on Earth is the Spatial Name System?
- Nature Climate Change paper on impermanent carbon credits
- First preprint of LIFE biodiversity metric available
- Cambridge Zero highlights University efforts at Climate Week NYC
- Information Flow Tracking for Heterogeneous Compartmentalized Software
- Enabling Lightweight Privilege Separation in Applications with MicroGuards
- Functional Programming for the Planet
- State of the OCaml Platform 2023
- Eio 1.0 – Effects-based IO for OCaml 5
- Preprint on the social value of impermanent carbon credits
- OCaml wins the ACM Programming Language Software award
- PACT Tropical Moist Forest Accreditation Methodology
- Credit credibility threatens forests
- Leveraging Scientific Innovation and AI to Scale Carbon Markets
- A Case for Planetary Computing
- OCaml.org: recapping 2022 and queries on the Fediverse
2022 8
- Financing Forests: A Credible Approach towards Halting Tropical Deforestation
- 17th William Pitt Seminar - Who's in Charge?
- The 2nd ed of Real World OCaml is available in shops
- Homogeneous Builds with OBuilder and OCaml
- Trusted Carbon Credits
- OCaml Multicore Monthly: heading towards OCaml 5.0
- OCaml Multicore Monthly: post merge activites
- Enhancing the Security & Privacy of Wearable Brain-Computer Interfaces
2021 10
- OCaml Multicore Monthly: code review complete with Inria
- Launching the Cambridge Centre for Carbon Credits
- What is an Operating System?
- OCaml Multicore Monthly: effect handling confirmed for 5.0
- Forest preservation and restoration
- Decentralised tech on Recoil
- Roadmap for OCaml's online presence
- How Computer Science Can Aid Forest Restoration
- Experiences with Effects
- Retrofitting effect handlers onto OCaml
2020 12
- Banyan: Coordination-Free Distributed Transactions over Mergeable Types
- The OCaml Platform: 2020
- State of the OCaml Platform 2020
- OCaml Multicore Monthly: systhreads compatibility merged
- Retrofitting parallelism onto OCaml
- Parallelising your OCaml Code with Multicore OCaml
- OCaml-CI: A Zero-Configuration CI
- OCaml Multicore Monthly: preprint paper available
- The First Billion Real Deployments of Unikernels
- Rebuilding Operating Systems with Functional Principles
- Programming the Next Trillion Embedded Devices
- OCaml Multicore Monthly: starting upstream to OCaml
2019 5
2018 7
2017 5
2016 10
- Unikernels: the rise of the library hypervisor in MirageOS
- MirageOS Summer 2016 hack retreat
- MirageOS Summer 2016 hack retreat.
- The functional innards of Docker for Mac and Windows
- Ian Eyberg, Joshua Bernstein, Anil Madhavapeddy at OSCON in Austin
- FLICK: Developing and Running Application-Specific Network Services
- Improving Docker with Unikernels
- Declarative Foreign Function Binding Through Generic Programming
- Unikernel Systems is now part of Docker
- Unikernel Systems acquired by Docker
2015 15
- SibylFS: formal specification and oracle-based testing for POSIX and real-world file systems
- Personal Data: Thinking Inside the Box
- Immutable Distributed Infrastructure with Unikernels
- The State of the OCaml Platform
- Not-Quite-So-Broken TLS
- Unikernels: Functional Infrastructure with Mirage OS
- Jitsu: Just-In-Time Summoning of Unikernels
- Kadupul: Livin' on the Edge with Virtual Currencies and Time-Locked Puzzles
- Jitsu: Just-In-Time Summoning of Unikernels
- Reviewing the second year of OCaml Labs in 2014
- ICFP 2015 - a call for sponsorship and how you can help
- Delivered keynote at BOB 2015 on MirageOS
- Raft Refloated: Do We Have Consensus?
- Mergeable persistent data structures
- CUFP'13 scribe's report
2014 19
- Codemesh 2014: Nymote: Git Your Own Cloud Here
- Jitsu: Just-in-Time Summoning of Unikernels (new directions in operating systems)
- Regional clouds: technical considerations
- MirageOS 2.0: branch consistency for Xen Stub Domains
- OCaml 2014: The OCaml Platform v1.0
- Haskell Symposium 2014 Keynote on functional OS design
- The OCaml Platform v1.0
- Multicore OCaml
- Irminsule: a branch-consistent distributed library database
- Talks from OCaml Labs during ICFP 2014
- FLOSS Weekly 302: Open Mirage
- MirageOS v2.0: a recap of new features
- MirageOS v1.2 released and the runup to 2.0
- SE Radio Episode 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language
- Codio: build Mirage unikernels from a browser
- Easily OPAM switching to any OCaml feature request
- ICFP 2014 - a call for sponsorship and how you can help
- Using Dust Clouds to Enhance Anonymous Communication
- Unikernels, and the Rise of the Virtual Library Operating System
2013 19
- Reviewing the first year of OCaml Labs in 2013
- Using Docker to bulk-build OPAM packages on Linux
- MirageOS and XAPI project update at XenSummit
- Notes from PL and OS 2013 workshop
- Unikernels: Rise of the Virtual Library Operating System
- Trevi: watering down storage hotspots with cool fountain codes
- First edition of Real World OCaml published
- Commercial users of functional programming workshop report
- Notes on the first Human Data Interaction workshop
- OCaml 2013 workshop liveblog
- Liveblogging CUFP 2013
- OPAM 1.1 beta available, with pretty colours
- The OCaml Platform v0.1
- Ocamlot: Online OCaml Testing
- Lost in the Edge: Finding Your Way with DNSSEC Signposts
- Mirage Developer Preview 1 screencast
- Grepping the source of every OCaml package in OPAM
- Unikernels: library operating systems for the cloud
- Perceived risks of personal data sharing
2012 14
- Evolving TCP: how hard can it be?
- Announcing OCaml Labs
- Breaking up is easy (with OPAM)
- OUD 2012: Towards an OCaml Platform and Introducing OCaml Labs
- Building a Xenstore stub domain with MirageOS
- Building a Xenstore stub domain with MirageOS.
- Signposts: end-to-end networking in a world of middleboxes
- Programming the Xen cloud using OCaml
- Exploring Compartmentalisation Hypotheses with SOAAP
- Cost, Performance & Flexibility in OpenFlow: Pick three
- Confidential carbon commuting: exploring a privacy-sensitive architecture for incentivising 'greener' commuting
- The case for reconfigurable I/O channels
- Dreaming of an ARM OCaml
- CUFP 2011 Workshop Report
2011 12
- OCaml Meeting 2011 - MirageOS
- An outing to CUFP 2011 for Mirage
- Dynamics for ML using Meta-Programming
- Dynamics for ML using Meta-Programming
- Delimited continuations vs Lwt for threads
- Delimited continuations vs Lwt for threads.
- DataCaml: distributed dataflow programming in OCaml
- Reconfigurable Data Processing for Clouds
- Functional programming gone wild in the SRG
- Camel Spotting in Paris
- CIEL: A universal execution engine for distributed data-flow computing
- Unclouded vision
2010 14
- Building the Xen toolstack using OCaml
- Mirage: A New Multi-Scale Operating System for Clouds and Crowds (2014)
- Self-hosting MirageOS website
- The personal container, or your life in bits
- Using functional programming within an industrial product group: perspectives and perceptions
- Turning Down the LAMP: Software Specialisation for the Cloud
- Turning Down the LAMP: Software Specialisation for the Cloud
- Creating high-performance, statically type-safe network applications
- Yurts for Digital Nomads
- Pulling together a user interface
- Multiscale not multicore: efficient heterogeneous cloud computing
- Opening a website
- Privacy Butler: A Personal Privacy Rights Manager for Online Presence
- Creating high-performance, statically type-safe network applications
2009 1
2008 4
2007 2
2006 1
2005 9
- SPLAT: A Tool for Model-Checking and Dynamically-Enforcing Abstractions
- Ubiquitious Computing needs to catch up with Ubiquitous Media
- Audio networking: the forgotten wireless technology
- A Study of Bluetooth Propagation Using Accurate Indoor Location Mapping
- OpenBSD C2K5 thoughts
- On the challenge of delivering high-performance, dependable, model-checked internet servers
- Using visual tags to bypass Bluetooth device discovery
- Using smart phones to access site-specific services
- The Broadband Phone Network: Experiences with Context-Aware Telephony
2004 7
- Using camera-phones to interact with context-aware mobile services
- Connecting Paper and Online Worlds by Cellphone
- Using Camera-Phones to Enhance Human-Computer Interaction
- MIT Technology review covers SpotCodes
- Exploring tradeoffs in location-aware gaming using smartphones
- From the prawn of time
- Cellphone as a virtual mouse/keyboard