Atom feed for our EEG site
1<?xml version="1.0" encoding="utf-8"?> 2<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Atomic EEG</title><link href="https://example.com/" rel="alternate"></link><link href="https://example.com/eeg.xml" rel="self"></link><id>https://example.com/</id><updated>2025-04-11T18:19:28Z</updated><author><name>Feed Aggregator</name></author><subtitle>Aggregated Atom feeds</subtitle><entry><title>Towards Global-scale Species Distribution Modelling</title><link href="https://watch.eeg.cl.cam.ac.uk/w/7aqBd2Nn9E6QpMvnoBPxuQ" rel="alternate"></link><published>2025-04-11T18:19:28Z</published><updated>2025-04-11T18:19:28Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/7aqBd2Nn9E6QpMvnoBPxuQ</id><summary type="html">Abstract: Estimating the geographical range of a species from sparse observations is a challenging and important geospatial prediction problem. Given a set of locations where a species has been observed, the goal is to build a model to predict whether the species is present or absent at any location. This problem has a long history in ecology, but traditional methods struggle to take advantage of emerging large-scale crowdsourced datasets which can include tens of millions of observations of hundreds of thousands of species in addition to the availability of multi-modal data sources such as paired images and natural language descriptions. In this talk, I will present recent work from my group where we have developed deep learning-based solutions for estimating species' ranges from sparse...</summary><category term="EEG Seminars"></category></entry><entry><title>Dell R640 installation</title><link href="https://www.tunbury.org/dell-r640-installation/" rel="alternate"></link><published>2025-04-10T01:00:00Z</published><updated>2025-04-10T01:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/dell-r640-installation</id><summary type="html">Today we have racked the five 14th generation Dell R640 servers and a Dell N4032 switch. When inspecting the rack rails, I noticed that some of the left-hand rails had an extra tab on them while the others did not. For the first server, I used a rail with a tab only to discover that the tab prohibited the server from being pushed in all the way. The tabs were easily removed but the server needed to be removed from the rack first. First server installed The last server on the rails Front view Rear view Cabling Yellow CAT5 for iDRAC ports Red CAT6 for 10GBase-T The initial iDRAC configuration was carried out using a crash cart. The servers are called: myrina thalestris lampedo otrera antiope We had some difficulty with the 40G uplink from the switch and we could only get the link to come up...</summary><category term="Tunbury.ORG"></category></entry><entry><title>Weeknotes 2025-W15</title><link href="https://www.jonmsterling.com/2025-W15/" rel="alternate"></link><published>2025-04-09T13:53:56Z</published><updated>2025-04-09T13:53:56Z</updated><author><name>JonS</name></author><id>https://www.jonmsterling.com/2025-W15/</id><summary type="html">I have a lot to say this week, so strap in. &lt;a href="https://www.forester-notes.org/jms-011P/" target="_blank"&gt;Forester 5.0&lt;/a&gt; development: canonical URLs, atom feeds, and LSP Work on &lt;a href="https://www.forester-notes.org/jms-011P/" target="_blank"&gt;Forester 5.0&lt;/a&gt; proceeds apace, generously supported by &lt;a href="https://www.jonmsterling.com/jms-00XB/" target="_blank"&gt;ARIA&lt;/a&gt; who have engaged &lt;a href="https://www.jonmsterling.com/kentookura/" target="_blank"&gt;Kento Okura&lt;/a&gt; and myself on a consulting basis to support their internal use of Forester. My recent goals have been to bring Forester closer in line with the architecture of the World Wide Web; to that end, I have made two big improvements. First cut at canonical URLs Trees are addressed by “canonical URLs” that are meant to be the place where they will ultimately be published. See &lt;a href="https://www.forester-notes.org/JVIT/" target="_blank"&gt;my blog post&lt;/a&gt; on the design for more details. Canonical URLs are of the form https://www.my-host.net/tree-name/ ; the handling is a little fragile right now and you can expect bugs (but please write to me about them). First cut...</summary><category term="Jon Sterling › Weeknotes"></category></entry><entry><title>Coping and Capping</title><link href="https://mort.io/blog/coping-and-capping/" rel="alternate"></link><published>2025-04-08T01:00:00Z</published><updated>2025-04-08T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/coping-and-capping/</id><summary type="html">Well that was fun! Quite high up there in the set of things that I never even considered I might do would’ve been awarding degrees. But by dint of being President and thus standing in for &lt;a href="https://en.wikipedia.org/wiki/Simon_McDonald%2C_Baron_McDonald_of_Salford" target="_blank"&gt;Simon&lt;/a&gt; , on Saturday I did exactly that. The University held a Congregation for those being admitted to the &lt;a href="https://www.cambridgestudents.cam.ac.uk/your-course/graduation-and-what-next/cambridge-ma" target="_blank"&gt;Cambridge 3MA&lt;/a&gt; (“Magistri in Artibus” – Master of Arts). Degrees are conferred by the Chancellor, Vice-Chancellor or nominated deputy. Apparently, typically, for this one and the main undergraduate congregation in July, that nominated deputy Vice-Chancellor is usually the Head of House for the College concerned. In this case, as President at Christ’s is effectively deputy Master (~ Head of House), it me. So instead of the usual Batman-style black gown, I got to wear the rather natty Superman-style...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Weeknotes: 7th April 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-04-07/" rel="alternate"></link><published>2025-04-07T10:07:12Z</published><updated>2025-04-07T10:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-04-07/</id><summary type="html">Last Week Talking to new team members We welcomed &lt;a href="https://www.tunbury.org/" target="_blank"&gt;Mark&lt;/a&gt; , &lt;a href="https://www.dra27.uk/blog/" target="_blank"&gt;David&lt;/a&gt; , and &lt;a href="https://www.cst.cam.ac.uk/people/jjl25" target="_blank"&gt;Jon&lt;/a&gt; to the group recently, and I finally found time to sit down and have some great discussions with them all on what we've been working on this last year, and how we might all collaborate on things around that. In what was an otherwise frustrating week on the technical work front, it was great to have some inspiring discussions on what we might work on over the coming year. Life A wise robot once said: Life! Don't talk to me about life. And I've held a certain amount of sympathy for that view of late, it has to be said, as I've been fighting with the &lt;a href="https://github.com/quantifyearth/life/" target="_blank"&gt;LIFE pipeline&lt;/a&gt; as I try to run some new high-resolution maps for parts of the globe. This week has been plagued by what I felt was reasonable decision the...</summary><category term="Digital Flapjack"></category></entry><entry><title>Box API with OCaml and Claude</title><link href="https://www.tunbury.org/ocaml-claude-box/" rel="alternate"></link><published>2025-04-07T01:00:00Z</published><updated>2025-04-07T01:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/ocaml-claude-box</id><summary type="html">Over the weekend, I decided to extend my &lt;a href="https://box.com" target="_blank"&gt;Box&lt;/a&gt; &lt;a href="https://github.com/mtelvers/ocaml-box-diff" target="_blank"&gt;tool&lt;/a&gt; to incorporate file upload. There is a straightforward POST API for this with a curl one-liner given in the Box &lt;a href="https://developer.box.com/reference/post-files-content/" target="_blank"&gt;documentation&lt;/a&gt; . Easy. The documentation for &lt;a href="https://mirage.github.io/ocaml-cohttp/cohttp-eio/Cohttp_eio/Client/index.html" target="_blank"&gt;Cohttp-eio.Client&lt;/a&gt; only gives the function signature for post , but it looked pretty similar to get , which I had already been working with. The &lt;a href="https://github.com/mirage/ocaml-cohttp" target="_blank"&gt;README&lt;/a&gt; for Cohttp gave me pause when I read this comment about multipart forms. Multipart form data is not supported out of the box but is provided by external libraries Of the three options given, the second option looked abandoned, while the third said it didn’t support streaming, so I went with the first one &lt;a href="https://github.com/dinosaure/multipart_form" target="_blank"&gt;dionsaure/multipart_form&lt;/a&gt; . The landing page included an example encoder. A couple of external functions are mentioned, and I found example code...</summary><category term="Tunbury.ORG"></category></entry><entry><title>2025-04-06 Weekly Notes</title><link href="https://ancazugo.github.io/research/outreach/2025/04/06/weekly-notes.html" rel="alternate"></link><published>2025-04-06T01:00:00Z</published><updated>2025-04-06T01:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/research/outreach/2025/04/06/weekly-notes</id><summary type="html">As mentioned in my previous post, I have been working on the Gini Coefficient. However, when trying to run the code at a different geographical scale, it crashed, so I decided to reformat the code into a module following software engineering practices, which has been my sole focus the past week. I realised I had written the same function in multiple scripts, making the code redundant. This resulted in the reduction of the number of files and depedencies now are more clear. I switched the python project from an entirely geopandas-based workflow to a an Apache Sedona-based one, which gives me more flexibility and efficiency. I added a couple of new features that enable the location of trees around multiple buffer for each building in England and I also calculated the euclidean distance...</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>Semi distributed filesystems with ZFS and Sanoid</title><link href="https://anil.recoil.org/notes/syncoid-sanoid-zfs" rel="alternate"></link><published>2025-04-05T01:00:00Z</published><updated>2025-04-05T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/syncoid-sanoid-zfs</id><summary type="html">Over in my &lt;a href="https://www.cst.cam.ac.uk/research/eeg" target="_blank"&gt;EEG&lt;/a&gt; group, we have a lot of primary and secondary datasets lying around: 100s of terabytes of &lt;a href="https://anil.recoil.org/projects/rsn" target="_blank"&gt;satellite imagery&lt;/a&gt; , &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;biodiversity data&lt;/a&gt; , &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;academic literature&lt;/a&gt; , and the intermediate computations that go along with them. Our trusty central shared storage server running &lt;a href="https://www.truenas.com" target="_blank"&gt;TrueNAS&lt;/a&gt; stores data in &lt;a href="https://en.wikipedia.org/wiki/ZFS" target="_blank"&gt;ZFS&lt;/a&gt; and serves it over &lt;a href="https://en.wikipedia.org/wiki/Network_File_System" target="_blank"&gt;NFSv4&lt;/a&gt; to a bunch of hosts. This is rapidly becoming a bottleneck as our group and datasets grow, and &lt;a href="https://tarides.com/blog/author/mark-elvers/" target="_blank"&gt;Mark Elvers&lt;/a&gt; has been steadily adding &lt;a href="https://www.tunbury.org/kingston-drives/" target="_blank"&gt;lots more raw capacity&lt;/a&gt; . The question now is how to configure this raw SSD capacity into a more nimble storage setup. If anyone's seen any systems similar to the one sketched out below, I'd love to hear from you. Why get rid of NFS? The first design constraint is to get rid of centralised network storage. This is both slow when compared to a modern...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Rewarding influence</title><link href="https://mort.io/blog/happy-day/" rel="alternate"></link><published>2025-04-05T01:00:00Z</published><updated>2025-04-05T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/happy-day/</id><summary type="html">&lt;a href="https://2025.eurosys.org/index.html" target="_blank"&gt;EuroSys 2025&lt;/a&gt; was co-located with &lt;a href="https://www.asplos-conference.org/asplos2025/" target="_blank"&gt;ASPLOS 42025&lt;/a&gt; this year. Other commitments meant I (again) couldn’t stay for the whole conference, attending primarily because &lt;a href="https://mort.io/blog/tdis-accepted" target="_blank"&gt;two students had papers in the TDIS 5workshop&lt;/a&gt; . But happily I was able to stay for the first day of the conference – “happily” not only because it gave me a chance to catch up with some old friends I hadn’t seen in a decade or more, but also because &lt;a href="https://doi.org/10.1145/2451116.2451167" target="_blank"&gt;the Mirage unikernels 6paper&lt;/a&gt; which appeared at &lt;a href="http://asplos13.rice.edu/" target="_blank"&gt;ASPLOS 72013&lt;/a&gt; won one of two &lt;a href="https://www.asplos-conference.org/asplos2025/awards/" target="_blank"&gt;ASPLOS 2025 Influential Papers 8awards&lt;/a&gt; :) This is obviously very flattering – typically doing research is necessarily its own reward because the work can seem fruitless much of the time. Even when a paper gets written and submitted it will most likely be rejected – I think EuroSys this year reported something like a 12% acceptance rate, so rejection is a priori the most likely outcome. Finally, if...</summary><category term="mort’s mythopœia"></category></entry><entry><title>opam repo ci job timeouts</title><link href="https://www.tunbury.org/opam-repo-ci/" rel="alternate"></link><published>2025-04-04T01:00:00Z</published><updated>2025-04-04T01:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/opam-repo-ci</id><summary type="html">It’s Tuesday morning, and virtually all opam repo ci jobs are failing with timeouts. This comes at a critical time as these are the first jobs following the update of &lt;a href="https://github.com/ocurrent/ocaml-version" target="_blank"&gt;ocurrent/ocaml-version&lt;/a&gt; &lt;a href="https://www.tunbury.org/recent-ocaml-version/" target="_blank"&gt;noted&lt;/a&gt; on 24th March. The &lt;a href="https://opam.ci.ocaml.org/github/ocaml/opam-repository" target="_blank"&gt;opam repo ci&lt;/a&gt; tests all PRs on &lt;a href="https://github.com/ocaml/opam-repository" target="_blank"&gt;opam-repository&lt;/a&gt; . The pipeline downloads Docker images, which contain the root filesystem for various Linux distributions, architectures, and OCaml versions, which are used as the base environment to run the tests. These base images are created by the &lt;a href="https://images.ci.ocaml.org" target="_blank"&gt;base image builder&lt;/a&gt; . &lt;a href="https://github.com/ocurrent/docker-base-images/pull/317" target="_blank"&gt;PR#317&lt;/a&gt; update these base images in three ways: Images for OCaml &lt; 4.08 were removed. The opam-repository-archive overlay was removed as this contained the &lt; 4.08 opam packages. The ocaml-patches-overlay overlay was removed as this was only needed to build OCaml &lt; 4.08 on GCC 14. Given these...</summary><category term="Tunbury.ORG"></category></entry><entry><title>2nd Programming for the Planet workshop CFP out</title><link href="https://anil.recoil.org/notes/propl-at-splash" rel="alternate"></link><published>2025-04-03T01:00:00Z</published><updated>2025-04-03T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/propl-at-splash</id><summary type="html">&lt;a href="https://dorchard.github.io" target="_blank"&gt;Dominic Orchard&lt;/a&gt; and I had a blast &lt;a href="https://plas4sci.github.io/conference/2024/01/22/propl.html" target="_blank"&gt;running&lt;/a&gt; the first &lt;a href="https://propl.dev" target="_blank"&gt;PROPL&lt;/a&gt; workshop a couple of years ago, with a full room and engaged audience in POPL in London. Last year, our sister conference &lt;a href="https://sicsa.ac.uk/loco/loco2024/" target="_blank"&gt;LOCO&lt;/a&gt; took over, and it's our turn again this year! PROPL will return for a &lt;a href="https://conf.researchr.org/home/icfp-splash-2025/propl-2025" target="_blank"&gt;second outing&lt;/a&gt; in October, co-located with &lt;a href="https://icfp25.sigplan.org/" target="_blank"&gt;ICFP&lt;/a&gt; /SPLASH in Singapore in October. Read the &lt;a href="https://conf.researchr.org/home/icfp-splash-2025/propl-2025#Call-for-Papers" target="_blank"&gt;call for papers&lt;/a&gt; here (deadline 3rd July 2025). Dominic prepping for the first PROPL in the rather delightful venue We'd love to get wider participation in computer science interacting with matters of climate and biodiversity: There are simultaneous interlinked crises across the planet due to human actions: climate change, biodiversity loss, and desertification. Addressing these challenges requires, amongst other things, a global understanding...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Everything is a file; except when it’s not</title><link href="https://www.dra27.uk/blog/platform/2025/04/03/cloexec.html" rel="alternate"></link><published>2025-04-03T01:00:00Z</published><updated>2025-04-03T01:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2025/04/03/cloexec</id><summary type="html">Some titles make more sense than others. One of my oldest contributions to OCaml was a complete overhaul of &lt;a href="https://ocaml.org/p/ocaml-base-compiler/5.2.1/doc/Unix/index.html#file-status" target="_blank"&gt;Unix.stat et al&lt;/a&gt; in &lt;a href="https://github.com/ocaml/ocaml/pull/462" target="_blank"&gt;ocaml/ocaml#462&lt;/a&gt; which formed part of OCaml 4.03. As part of the work on &lt;a href="https://ocaml.org/p/msvs-detect/latest" target="_blank"&gt;msvs-detect&lt;/a&gt; in late 2015, I’d ended up with a Windows 7 VM which had every single version of Visual Studio back to &lt;a href="https://en.wikipedia.org/wiki/Visual_Studio#6.0_(1998)" target="_blank"&gt;Visual Studio 6.0&lt;/a&gt; . Visual Studio (and Visual C++ before that) has always included the source code for the C Runtime Library (CRT), and as a side-effect of having all these installed Visual Studios, I was able to construct a Git repository showing the evolution of the CRT code over each release (sadly, the licence doesn’t allow this to be pushed publicly). This was particularly useful for studying how the behaviour of the stat implementation had changed over time, particularly with reference to...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>More Kingston Drives</title><link href="https://www.tunbury.org/kingston-drives/" rel="alternate"></link><published>2025-04-03T01:00:00Z</published><updated>2025-04-03T01:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/kingston-drives</id><summary type="html">We have received the second batch of 40 x 7.68TB Kingston SSD drives, bringing the total to 50 drives. We now have 5 fully populated Dell PowerEdge R640 with a total raw capacity of 384TB.</summary><category term="Tunbury.ORG"></category></entry><entry><title>Ubuntu with ZFS root</title><link href="https://www.tunbury.org/ubuntu-with-zfs-root/" rel="alternate"></link><published>2025-04-02T01:00:00Z</published><updated>2025-04-02T01:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/ubuntu-with-zfs-root</id><summary type="html">The installation of &lt;a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Ubuntu/Ubuntu%2022.04%20Root%20on%20ZFS.html" target="_blank"&gt;Ubuntu on ZFS&lt;/a&gt; contains about 50 steps of detailed configuration. I have 10 servers to install, so I would like to script this process as much as possible. To test my script, I have created a new VM on VMware ESXi with 10 x 16GB disks, 16GB RAM, 4 vCPU. In the advanced options, I have set the boot to EFI and set disk.EnableUUID = "TRUE" in the .vmx file. Doing this ensures that /dev/disk aliases are created in the guest. Boot Ubuntu 24.04 from the Live CD and install SSH. sudo -i apt update apt install openssh-server -y Use wget to download https://github.com/mtelvers.keys into ~/.ssh/authorized_keys . wget https://github.com/mtelvers.keys -O ~/.ssh/authorized_keys In your Ansible hosts file, add your new machine and its IP address your.fqdn ansible_host=&lt;ip&gt; Run the...</summary><category term="Tunbury.ORG"></category></entry><entry><title>Updating Docker and Go</title><link href="https://www.tunbury.org/go-docker/" rel="alternate"></link><published>2025-04-01T01:00:00Z</published><updated>2025-04-01T01:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/go-docker</id><summary type="html">For some time, we have had issues on Ubuntu Noble when extracting tar files within Docker containers. See &lt;a href="https://github.com/ocaml/infrastructure/issues/121" target="_blank"&gt;ocaml/infrastructure#121&lt;/a&gt; . This is only an issue on exotic architectures like RISCV and PPC64LE. # docker run --rm -it ubuntu:noble root@cf3491db4abd:/# cd root@cf3491db4abd:~# mkdir foo root@cf3491db4abd:~# tar -cf bar.tar foo root@cf3491db4abd:~# rmdir foo root@cf3491db4abd:~# tar -xf bar.tar tar : foo: Cannot change mode to rwxr-xr-x: Operation not permitted tar : Exiting with failure status due to previous errors The combination of Docker version and libseccomp2 version prevents the container from running the fchmodat2 system call. There is a bug report on Ubuntu’s bug tracker for the issue. I have been working around this by building Docker from scratch. apt install golang git clone...</summary><category term="Tunbury.ORG"></category></entry><entry><title>Weeknotes: 31th March 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-03-31/" rel="alternate"></link><published>2025-03-31T10:07:12Z</published><updated>2025-03-31T10:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-03-31/</id><summary type="html">Last Week I was still coming off the back of being unwell the previous week, so not the most productive week STAR I got the full &lt;a href="https://iucn.org/resources/conservation-tool/species-threat-abatement-and-restoration-star-metric" target="_blank"&gt;STAR calculation&lt;/a&gt; running, which means I now have two full biodiversity impact pipelines running built on the same AoH code underpinnings. I checked in with Chess, and it looks like I'm mostly there, but I just want to check some of the details, as it looks like I'm losing some costal pixels compared to her results, which makes me suspect my clipping for the marine layer might be out. LIFE I started to process a bunch of high-resolution data I've been given for brazil to make an application specific version of the &lt;a href="https://www.sei.org/publications/life-metric-mapping-global-extinctions/" target="_blank"&gt;LIFE metric&lt;/a&gt; . My intent had been to try and code something to make it more efficient to work with a mix of high and low resolution maps, rather than doing a...</summary><category term="Digital Flapjack"></category></entry><entry><title>Shelter, Hazel and More!</title><link href="https://patrick.sirref.org/weekly-2025-03-31/" rel="alternate"></link><published>2025-03-31T01:00:00Z</published><updated>2025-03-31T01:00:00Z</updated><author><name>PatrickF</name></author><id>https://patrick.sirref.org/weekly-2025-03-31/</id><summary type="html">Last week I focused on &lt;a href="https://patrick.sirref.org/shelter/" target="_blank"&gt;Shelter&lt;/a&gt; -- our idea that shells should have the same ability as reproducible build tools like Nix or Docker. To this end I now have a fairly fleshed out prototype. Shelter Prototype Shelter is a spin-off from the work &lt;a href="https://patrick.sirref.org/mdales/" target="_blank"&gt;Michael&lt;/a&gt; and I started with &lt;a href="https://github.com/quantifyearth/shark" target="_blank"&gt;Shark&lt;/a&gt; . It takes the same ideas but applies them directly to a shell-like interface. We're still in the middle of working all of this, but you can read more about it at &lt;a href="https://patrick.sirref.org/shelter/" target="_blank"&gt;Shelter&lt;/a&gt; . Forester Hacking As you can probably tell, my website is still using &lt;a href="https://patrick.sirref.org/forester/" target="_blank"&gt;Forester&lt;/a&gt; . I rebased my Markdown branch to include the new Atom syndication feature. Alongside that I added support for arbitrary HTML injection into Forester via codeblocks in Markdown. This was actually very straightforward thanks to &lt;a href="https://ocaml.org/p/markup" target="_blank"&gt;Markup&lt;/a&gt; and being able to...</summary><category term="Weeklies"></category></entry><entry><title>Installation order for opam packages</title><link href="https://www.tunbury.org/opam-post-deps/" rel="alternate"></link><published>2025-03-31T01:00:00Z</published><updated>2025-03-31T01:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/opam-post-deps</id><summary type="html">Previously, I discussed the installation order for a simple directed acyclic graph without any cycles. However, opam packages include post dependencies. Rather than package A depending upon B where B would be installed first, post dependencies require X to be installed after Y. The post dependencies only occur in a small number of core OCaml packages. They are quite often empty and exist to direct the solver. Up until now, I had been using a base layer with an opam switch containing the base compiler and, therefore, did not need to deal with any post dependencies. Here is the graph of &lt;a href="https://www.tunbury.org/images/0install.2.18-with-post-with-colour.pdf" target="_blank"&gt;0install&lt;/a&gt; with post dependencies coloured in red. Removing the post dependencies gives an unsatisfying graph with orphaned dependencies. &lt;a href="https://www.tunbury.org/images/0install.2.18-without-post.pdf" target="_blank"&gt;0install without post&lt;/a&gt; . Note base-nnp.base and base-effects.base . However, this...</summary><category term="Tunbury.ORG"></category></entry><entry><title>2025-03-30 Weekly Notes</title><link href="https://ancazugo.github.io/research/outreach/2025/03/30/weekly-notes.html" rel="alternate"></link><published>2025-03-30T00:00:00Z</published><updated>2025-03-30T00:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/research/outreach/2025/03/30/weekly-notes</id><summary type="html">The past week or so I’ve been working on cleaning the code in my 3-30-300 analysis repo. Most of the code was running fine but many functions were repeated in the modules, and it wasn’t really structured as a package. This was partially motivated by a workshop about good coding practices by the photonics group in the department of electrical engineering. Having a clean repo makes all the difference when running your experiments. In my meeting with &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Anil&lt;/a&gt; we discussed on the best ways to measure the Gini coefficient for green space accessibility and availability and how they relate to equity. Although, widely used in econometrics, it presents some problems when it comes to scale. For this reason, I am calculating the 3-30-300 metrics and the remote sensing-derived metrics at the...</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>Not one but two accepted papers and a Ph.D.</title><link href="https://mort.io/blog/tdis-accepted/" rel="alternate"></link><published>2025-03-30T00:00:00Z</published><updated>2025-03-30T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/tdis-accepted/</id><summary type="html">As I find myself once more on a train to parts unknown (to me at least), a brief update :) The parts unknown in question is Rotterdam, NL (so really quite well-known to quite a lot of people, just not me) for &lt;a href="https://2025.eurosys.org/" target="_blank"&gt;EURO/SYS 92025&lt;/a&gt; (being held jointly with &lt;a href="https://www.asplos-conference.org/asplos2025" target="_blank"&gt;ASPLOS 102025&lt;/a&gt; , although I can’t stay for the whole thing unfortunately) and specifically the &lt;a href="https://tdis.gitlab.io/tdis25/" target="_blank"&gt;3rd International Workshop 11of Testing Distributed Internet of Things Systems 12(TDIS)&lt;/a&gt; . Why? Happily the programme committee decided to accept two papers from my (ex-)students – which is nice :) The two in question are &lt;a href="https://doi.org/10.1145/3719159.3721222" target="_blank"&gt;Reckon-ing Kubernetes at the Edge using Emulated 13Clusters&lt;/a&gt; with Alessandro Sassi (University of Cambridge / Politecnico di Milano) and Christopher Jensen (University of Cambridge / Microsoft Research). This describes Alessandro’s M.Sc. research project undertaken as a visitor with my group. He built on Chris’ earlier work on &lt;a href="https://doi.org/10.1145/3447851.3458739" target="_blank"&gt;Reckon, an emulator setup for examining consensus 14system behaviour&lt;/a&gt; . Alessandor extended this to...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Box Diff Tool</title><link href="https://www.tunbury.org/box-diff/" rel="alternate"></link><published>2025-03-30T00:00:00Z</published><updated>2025-03-30T00:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/box-diff</id><summary type="html">Box has an unlimited storage model but has an upload limit of 1TB per month. I have been uploading various data silos but would now like to verify that the data is all present. Box has an extensive &lt;a href="https://developer.box.com/reference/" target="_blank"&gt;API&lt;/a&gt; , but I only need the &lt;a href="https://developer.box.com/reference/get-folders-id-items/" target="_blank"&gt;list items in folder&lt;/a&gt; call. The list-items call assumes that you have a folder ID which you would like to query. The root of the tree is always ID 0. To check for the presence of file foo in a folder tree a/b/c/foo , we need to call the API with folder ID 0. This returns a list of entries in that folder. e.g. { "entries" : [ { "id" : "12345" , "type" : "folder" , "name" : "a" } ] } The API must now be called again with the new ID number to get the contents of folder a . This is repeated until we finally have the entries for folder c which would contain the file itself. I...</summary><category term="Tunbury.ORG"></category></entry><entry><title>Blockchain-Based Carbon Trading for Stakeholders in Brazil</title><link href="https://watch.eeg.cl.cam.ac.uk/w/f1Uxw34FRLEfVNBBpzbsgD" rel="alternate"></link><published>2025-03-28T17:09:11Z</published><updated>2025-03-28T17:09:11Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/f1Uxw34FRLEfVNBBpzbsgD</id><summary type="html">Full Title: Democratizing Carbon Markets: A Blockchain-Based Emission Trading System for Small and Large-Scale Stakeholders in Brazil Abstract: The integration of blockchain technology into carbon markets offers a unique opportunity to create more transparent, inclusive, and efficient trading mechanisms. This presentation introduces a novel Blockchain Emission Trading System (BETS) model designed to align with Brazil’s new carbon market legislation (Law 15042/2024), ensuring that both large landholders and small rural producers can participate fairly. Our approach leverages official land registries, such as SICAR, to create spatially and temporally verifiable carbon credits, preventing fraud and double counting while enabling greater accessibility for smaller stakeholders who often...</summary><category term="EEG Seminars"></category></entry><entry><title>New preprint on benchmarking ultra-low power neural accelerators</title><link href="https://anil.recoil.org/news/2025-npu-bench-1" rel="alternate"></link><published>2025-03-28T00:00:00Z</published><updated>2025-03-28T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2025-npu-bench-1</id><summary type="html">&lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; just released our latest preprint on how to make sense of the growing number of dedicated, ultra-low-power 'neural network accelerators' that are found in many modern embedded chipsets. My interest in this derives from wanting to decouple from the cloud when it comes to &lt;a href="https://anil.recoil.org/projects/osmose" target="_blank"&gt;low-latency local environments&lt;/a&gt; , and this needs fast tensor operations in hardware. Josh found a huge number of interesting NPUs in modern low-cost chips, ranging from &lt;a href="https://www.espressif.com/en/products/socs/esp32" target="_blank"&gt;ESP32&lt;/a&gt; -based boards over to &lt;a href="https://arm.com" target="_blank"&gt;ARM&lt;/a&gt; ones. All of these have quite a variety of tradeoffs, from the operations supported (which affects which models can be run on them) to the amount of memory and CPU power. &lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; , &lt;a href="https://yushan-huang.github.io/" target="_blank"&gt;Yushan Huang&lt;/a&gt; , &lt;a href="https://www.imperial.ac.uk/people/sarab.sethi" target="_blank"&gt;Sarab Sethi&lt;/a&gt; , &lt;a href="https://haddadi.github.io/" target="_blank"&gt;Hamed Haddadi&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Working paper at &lt;a href="http://arxiv.org/abs/2503.22567" target="_blank"&gt;arXiv&lt;/a&gt; . &lt;a href="http://arxiv.org/abs/2503.22567" target="_blank"&gt;URL&lt;/a&gt; (arxiv.org) &lt;a href="https://doi.org/10.48550/arXiv.2503.22567" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2025-npu-bench.bib" target="_blank"&gt;BIB&lt;/a&gt;...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml Core Dev Meeting</title><link href="https://www.dra27.uk/blog/platform/2025/03/28/ocaml-dev-meeting.html" rel="alternate"></link><published>2025-03-28T00:00:00Z</published><updated>2025-03-28T00:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2025/03/28/ocaml-dev-meeting</id><summary type="html">OCaml Core Dev meeting at &lt;a href="https://inria.fr" target="_blank"&gt;Inria&lt;/a&gt; yesterday. These are roughly biannual synchronous catchups which provide a chance to find out what others are up to, get feedback on any major ongoing work, and attempt to unblock some stalled PRs. Sometimes tempers get frayed, but not this time round… Quick round-table: ongoing work to get modular explicits/implicits into OCaml; a lot of work on GC pacing to get the 5.x GC to follow its space overhead setting properly; lot of work on flambda 2; OCaml Language committee has been launched and has two proposals under consideration; quite a lot of reviewing of new features from Jane Street in flight; work on pluggable GC to be able to try out alternate GCs in the main runtime. Two presentations on the table. The OCaml 5.x GC isn’t working hard enough to...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>Dell PowerEdge R640 Storage Server</title><link href="https://www.tunbury.org/dell-poweredge-r640/" rel="alternate"></link><published>2025-03-27T00:00:00Z</published><updated>2025-03-27T00:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/dell-poweredge-r640</id><summary type="html">We have received our first batch of 7.68TB Kingston SSD drives for deployment in some Dell PowerEdge R640 servers, which will be used to create a large storage pool. The first job was to mount each of the drives in a caddy. And then install them in the server. These R640 servers are equipped with the Dell PERC H740P RAID controller. They support either hardware RAID 0,1,5,10,50 etc or Enhanced HBA mode. In eHBA mode, the disks operate in a passthrough mode, presenting the raw disks to the OS, however each disk needs to be specifically selected in an additional step after enabling eHBA mode. In RAID mode, one or more virtual disks need to be created to present the disks to the OS. Preconfigured profiles are available to complete this step easily. We will run these with a ZFS file system,...</summary><category term="Tunbury.ORG"></category></entry><entry><title>How This Site Is Build</title><link href="https://ryan.freumh.org/how-this-site-is-built.html" rel="alternate"></link><published>2025-03-26T00:00:00Z</published><updated>2025-03-26T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/how-this-site-is-built.html</id><summary type="html">Published Wed 26 Mar 2025. This site has continuously evolved since I made the first commit while procrastinating my undergrad dissertation, __LINK_0__ commit 632cb1f0c97c07fb99b48192444397e56ea5310f __LINK_1__ Author: Ryan Gibb &lt;redacted&gt; __LINK_2__ Date: Fri Jan 22 11:27:55 2021 +0000 __LINK_3__ __LINK_4__ Initial commit __LINK_5__ __LINK_6__ diff --git a/index.html b/index.html __LINK_7__ new file mode 100644 __LINK_8__ index 0000000..557db03 __LINK_9__ --- /dev/null __LINK_10__ +++ b/index.html __LINK_11__ @@ -0,0 +1 @@ __LINK_12__ +Hello World I started off writing plain HTML, then switching to writing in markdown and using &lt;a href="https://pandoc.org/" target="_blank"&gt;pandoc&lt;/a&gt; to convert to HTML, and gradually accumulated bash scripts and makefiles to add more functionality, such as generating an &lt;a href="https://www.rfc-editor.org/rfc/rfc4287" target="_blank"&gt;Atom feed&lt;/a&gt; . This became...</summary><category term="ryan.freumh.org"></category></entry><entry><title>FreeBSD 14.2 Upgrade</title><link href="https://www.tunbury.org/freebsd-14.2/" rel="alternate"></link><published>2025-03-26T00:00:00Z</published><updated>2025-03-26T00:00:00Z</updated><author><name>MarkE</name></author><id>https://www.tunbury.org/freebsd-14.2</id><summary type="html">CI workers spring and summer run FreeBSD and need to be updated. Check the current version of FreeBSD which we have with uname -r . FreeBSD summer 14.1-RELEASE-p5 FreeBSD 14.1-RELEASE-p5 GENERIC amd64 Run freebsd-update fetch to download the latest versions of the system components, particularly the freebsd-update utility. It even reported that it really is time to upgrade! # freebsd-update fetch ... WARNING: FreeBSD 14.1-RELEASE-p5 is approaching its End-of-Life date. It is strongly recommended that you upgrade to a newer release within the next 5 days. Install these updates. freebsd-update install Now use freebsd-update to fetch the 14.2-RELEASE and install it. # freebsd-update upgrade -r 14.2-RELEASE ... # freebsd-update install src component not installed, skipped Installing...</summary><category term="Tunbury.ORG"></category></entry><entry><title>Towards Forester 5.0 II: a design for canonical URLs</title><link href="https://www.forester-notes.org/JVIT/" rel="alternate"></link><published>2025-03-25T13:44:56Z</published><updated>2025-03-25T13:44:56Z</updated><author><name>JonS</name></author><id>https://www.forester-notes.org/JVIT/</id><summary type="html">One of the goals of &lt;a href="https://www.forester-notes.org/jms-011P/" target="_blank"&gt;Forester 5.0&lt;/a&gt; is lightweight federation —the ability to have two forests participate in the same graph and therefore provide backlinks, etc. In a previous post ( &lt;a href="https://www.forester-notes.org/OYOJ/" target="_blank"&gt;Towards Forester 5.0: a design for global identity&lt;/a&gt; ), I talked about some of the difficulties that arise when dealing with identities of people and references that have global scope but could nonetheless be described by trees in many forests. I proposed that such things should be addressed by canonical URIs (e.g. DIDs, DOIs, etc.) and that Forester should grow the ability to bind a canonical URI to multiple trees, which are then gathered into a disambiguation page. Today I want to broaden the discussion to cover the difficulties of addressing trees themselves (as opposed to the global entities they may describe). This is a proposal and I welcome...</summary><category term="Forester Blog"></category></entry><entry><title>Weeknotes: 24th March 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-03-24/" rel="alternate"></link><published>2025-03-24T09:07:12Z</published><updated>2025-03-24T09:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-03-24/</id><summary type="html">Last week I spent most of the week with a head-cold or such (I'm not the right kind of doctor to figure that out), and so productivity was a little low. STAR Two major steps forward on my implementation of the IUCN's &lt;a href="https://iucn.org/resources/conservation-tool/species-threat-abatement-and-restoration-star-metric" target="_blank"&gt;STAR metric&lt;/a&gt; this week. Firstly, my extraction of species from the IUCN Red List database finally aligns with that of the official implementation in R that is built by Chess Ridley at Newcastle University. Chess has been helping me navigate the nuances of the Red List database for the last couple of months as either of us gets time to nudge things forward, and we finally got to parity this week. Secondly, I took a first pass at implementing the post-AoH stages of the STAR pipeline, (see "STAR Calculation" in the Methods section of &lt;a href="https://www.nature.com/articles/s41559-021-01432-0.epdf" target="_blank"&gt;the original paper&lt;/a&gt; ). This involves weighting all the...</summary><category term="Digital Flapjack"></category></entry><entry><title>Mon 24 Mar 2025</title><link href="https://ryan.freumh.org/2025-03-24.html" rel="alternate"></link><published>2025-03-24T00:00:00Z</published><updated>2025-03-24T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-03-24.html</id><summary type="html">Previous: &lt;a href="2025-03-17.html" target="_blank"&gt;Mon 17 Mar 2025&lt;/a&gt; Babel TODO cargo dynamic loading At the moment this loads the whole index at once which takes a long time, so I need to figure out how to make pubgrub_cargo dynamically load packages. TODO add Nix solver Using the same techniques as &lt;a href="https://github.com/RyanGibb/opam-nix-repository" target="_blank"&gt;opam-nix-repository&lt;/a&gt; TODO polish up babel paper with motivating examples TODO read up on answer set programming &lt;a href="https://pubgrub-rs-guide.pages.dev/internals/intro" target="_blank"&gt;https://pubgrub-rs-guide.pages.dev/internals/intro&lt;/a&gt; is a good starting point And ‘Conflict-driven answer set solving: From theory to practice’ &lt;a href="#ref-gebserConflictdrivenAnswerSet2012" target="_blank"&gt;[1]&lt;/a&gt; deployment TODO Nix TODO Docker Research notes Contextualising my research activities to date. TODO Eilean TODO Babel [1] M. Gebser, B. Kaufmann, and T. Schaub, “Conflict-driven answer set solving: From theory to practice,” Artificial Intelligence , vol. 187–188, pp. 52–89, Aug. 2012, doi: &lt;a href="https://doi.org/10.1016/j.artint.2012.04.001" target="_blank"&gt;10.1016/j.artint.2012.04.001&lt;/a&gt; . [Online]. Available:...</summary><category term="ryan.freumh.org"></category></entry><entry><title>2025-03-23 Weekly Notes</title><link href="https://ancazugo.github.io/research/outreach/2025/03/23/weekly-notes.html" rel="alternate"></link><published>2025-03-23T00:00:00Z</published><updated>2025-03-23T00:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/research/outreach/2025/03/23/weekly-notes</id><summary type="html">After the issues and errors with generating the tree data for all of England, I realised that one of the best ways to proof-check the data was to visualize it and more importantly, to let others see it so they can check things that I might be missing. Because of this, I spent a good chunck of time trying to create a web map of all the trees in London. I used CARTO to do it but it wasn’t straightforward, mostly because of the size of the data. My files were stored in parquet format which apparently CARTO nor Mapbox are capable of transforming automatically to web Mercator, so I had to change the CRS in Sedona and re-generate the parquet partitions. Unfortunately, knowing where each partition is pointed at is not very easy, so what I did was geo-reference using the UK National Grid and then...</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>Global Maps of Human Threats to Biodiversity and Species Extinctions</title><link href="https://watch.eeg.cl.cam.ac.uk/w/3exAV8tLbnPSGqoKv2mZts" rel="alternate"></link><published>2025-03-21T16:11:39Z</published><updated>2025-03-21T16:11:39Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/3exAV8tLbnPSGqoKv2mZts</id><summary type="html">Full title: Towards Global Maps of Anthropogenic Threats to Biodiversity and Their Contributions to Species Extinctions Abstract: Species extinctions are primarily driven by loss of habitat, which is relatively easy to monitor by satellite remote sensing; other anthropogenic threats to biodiversity, like hunting, are much more difficult to observe directly. My PhD project draws on local studies which capture the population effect of some anthropogenic threat, scaling these results using machine learning and remote sensing. In this talk, I will discuss my first attempt at this through quantifying species-specific responses to hunting pressure. I find that machine learning methods can offer marked improvements over (linear) statistical models, which are commonly used in ecology, but model...</summary><category term="EEG Seminars"></category></entry><entry><title>LIFE becomes an Official Statistic of the UK government</title><link href="https://anil.recoil.org/notes/life-official-statistic" rel="alternate"></link><published>2025-03-21T00:00:00Z</published><updated>2025-03-21T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/life-official-statistic</id><summary type="html">Our &lt;a href="https://anil.recoil.org/papers/2024-life" target="_blank"&gt;recently published&lt;/a&gt; &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;LIFE&lt;/a&gt; biodiversity metric has just been integrated into a newly recognised &lt;a href="https://defraenvironment.blog.gov.uk/2025/01/20/newly-recognised-official-statistic-tracks-the-environmental-impact-of-our-consumption/" target="_blank"&gt;Official Statistic from the UK government&lt;/a&gt; ! This integrates the core LIFE biodiversity metric with &lt;a href="https://anil.recoil.org/papers/2024-food-life" target="_blank"&gt;food provenance data&lt;/a&gt; to track the environmental impacts of our consumption habits. I must admit that I'd not heard of "Official Statistics" before this, so I did a bit of research. The UK &lt;a href="https://osr.statisticsauthority.gov.uk/" target="_blank"&gt;Office for Statistics Regulation&lt;/a&gt; says that: Official statistics are statistics produced by Crown bodies and other organisations listed within an Official Statistics Order, on behalf of the UK government or devolved administrations. They provide a factual basis for assessment and decisions on economic, social and environmental issues at all levels of society. -- &lt;a href="https://osr.statisticsauthority.gov.uk/policies/official-statistics-policies/" target="_blank"&gt;OSR Policies&lt;/a&gt; The good folk at the &lt;a href="https://jncc.gov.uk/" target="_blank"&gt;Joint Nature Conservation Committee&lt;/a&gt; are responsible for this particular statistic. The JNCC launched their...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Weeknotes: 17th March 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-03-17/" rel="alternate"></link><published>2025-03-17T09:07:12Z</published><updated>2025-03-17T09:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-03-17/</id><summary type="html">Förrförra vecka Life maps As the outputs of the LIFE project we generate two maps: one showing the impact on extinction risk of converting land to farmland (aka the arable scenario), and another showing the risk of converting human changed land back to predicted its natural state (aka the restore scenario). Those maps though are data maps, containing fractional values in each pixel, so aren't something you can see, so instead when presenting the work I tend to lead with a "pop-science" version generated by &lt;a href="https://qgis.org" target="_blank"&gt;QGIS&lt;/a&gt; when you load the maps. Here you can see the map for the arable scenario, showing that putting a farm in a tropical forest is a sub-optimal idea: And the restore scenario map here, which has less change visible, as there is less area to convert: The different colours are from...</summary><category term="Digital Flapjack"></category></entry><entry><title>Mon 17 Mar 2025</title><link href="https://ryan.freumh.org/2025-03-17.html" rel="alternate"></link><published>2025-03-17T00:00:00Z</published><updated>2025-03-17T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-03-17.html</id><summary type="html">Previous: &lt;a href="2025-03-10.html" target="_blank"&gt;Mon 10 Mar 2025&lt;/a&gt; Next: &lt;a href="2025-03-24.html" target="_blank"&gt;Mon 24 Mar 2025&lt;/a&gt; Babel DONE &lt;a href="https://modelcontextprotocol.io/" target="_blank"&gt;Model Context Protocol&lt;/a&gt; &lt;a href="https://github.com/RyanGibb/babel/commit/ab6dcc162e5eb92192a19a63c33d0efa3db736a9" target="_blank"&gt;Added&lt;/a&gt; a basic Model Context Protocol server for querying dependencies with Babel, since LLMs seem to be particularly bad at managing dependencies. I need to flesh this out with support for metadata queries and solving for platforms. Once this works we could look at invoking ecosystem tooling to provide the dependencies, and creating a containerisation environment based on the solved platform for system dependencies. ecosystems DONE fix cross-ecosystem version ranges I had to add an abstract BabelVersionSet to interoperate pubgrub_cargp with the other dependency providers, but it doesn’t yet have the concept of empty and any ranges. Done &lt;a href="https://github.com/RyanGibb/babel/commit/c975ab938efb1330a691e4883bc1e732b21cddf3" target="_blank"&gt;here&lt;/a&gt; . Research notes Contextualising my research activities to date. DONE...</summary><category term="ryan.freumh.org"></category></entry><entry><title>2025-03-16 Weekly Notes</title><link href="https://ancazugo.github.io/research/outreach/2025/03/16/weekly-notes.html" rel="alternate"></link><published>2025-03-16T00:00:00Z</published><updated>2025-03-16T00:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/research/outreach/2025/03/16/weekly-notes</id><summary type="html">Most of my week was devoted to debugging my code to count the number of trees per geographical area. As mentioned in previous posts, I’ve been using Apache Sedona to process all my vector files, which has reduced the computation time significantly, particularly for spatial joins around all buildings in England. However, I realised that I hadn’t actually counted how many trees there are in total, which sounds trivial, but it turned out to be not as easy with the code that I had. So it turns out that when you are doing a Spatial Join with an Spatial RDD, you are only expected to pass two columns, the identifier and geometry for each row. This is not present in the docs, but I found it by accident while converting from Spark DataFrames to RDDs. Also, due to the number of trees (in the...</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>Identifying Key Countries in the Illegal Elephant Ivory Trade Networ</title><link href="https://watch.eeg.cl.cam.ac.uk/w/oW6eqJBH1Hkwu6wE7XzQT3" rel="alternate"></link><published>2025-03-14T17:34:06Z</published><updated>2025-03-14T17:34:06Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/oW6eqJBH1Hkwu6wE7XzQT3</id><summary type="html">Abstract: Illegal wildlife trade is a key driver of biodiversity loss, but targeting policy to maximise disruption to trade remains a key challenge. A network approach was applied to seizure data to prioritise national action disrupting the illegal trade of elephant ivory. By simulating the removal of countries from trade, targeting groups of countries was found to be most effective due to network redundancy. Despite temporal variability, trade was highly concentrated and cessation in less than 10 countries would have disrupted 75% of trade in 2018-2020. These findings support evidence-based legislation and efficient allocation of conservation resources for tackling illegal wildlife trade. Bio: Jakob is a PhD student in the Conservation and Development Lab (Department of Geography). His...</summary><category term="EEG Seminars"></category></entry><entry><title>A fully AI-generated paper just passed peer review; notes from our evidence synthesis workshop</title><link href="https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop" rel="alternate"></link><published>2025-03-12T00:00:00Z</published><updated>2025-03-12T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop</id><summary type="html">Access to reliable and timely scientific evidence is utterly vital for the practise of responsible policymaking, especially with all the turmoil in the world these days. At the same time, the evidence base on which use to make these decisions is rapidly morphing under our feet; the &lt;a href="https://sakana.ai/ai-scientist-first-publication/" target="_blank"&gt;first entirely AI-generated paper passed peer review&lt;/a&gt; at an ICLR workshop today. We held a workshop on this topic of AI and evidence synthesis at &lt;a href="https://pem.cam.ac.uk" target="_blank"&gt;Pembroke College&lt;/a&gt; last week, to understand both the opportunities for the use of AI here, the &lt;a href="https://anil.recoil.org/papers/2024-ce-llm" target="_blank"&gt;strengths and limitations&lt;/a&gt; of current tools, areas of progress and also just to chat with policymakers from &lt;a href="https://www.gov.uk/government/organisations/department-for-science-innovation-and-technology" target="_blank"&gt;DSIT&lt;/a&gt; and thinktanks about how to approach this rapidly moving area. (The following notes are adapted from jottings from &lt;a href="https://www.cst.cam.ac.uk/people/jkm40" target="_blank"&gt;Jessica Montgomery&lt;/a&gt; , &lt;a href="https://samreynolds.org/" target="_blank"&gt;Sam Reynolds&lt;/a&gt; , &lt;a href="https://ai.cam.ac.uk/people/annabelle-scott" target="_blank"&gt;Annabelle Scott&lt;/a&gt; and myself. They are not at all complete, but hopefully useful!) We...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Weeknotes: 10th March 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-03-10/" rel="alternate"></link><published>2025-03-10T09:07:12Z</published><updated>2025-03-10T09:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-03-10/</id><summary type="html">Last week iNaturalist I've continued to do a little playing around with &lt;a href="https://www.inaturalist.org" target="_blank"&gt;iNaturalist&lt;/a&gt; data, both the range data and the occurrence data for birds. Birds, aka Aves, is a good one to pick as it's fairly well represented in both IUCN data (which I understand to have all known species of bird in it), and well covered in observations. I read up on how the "range" maps that iNaturalist &lt;a href="https://www.inaturalist.org/pages/range_maps" target="_blank"&gt;have started to share&lt;/a&gt; , which they describe in &lt;a href="https://www.inaturalist.org/posts/84677" target="_blank"&gt;this blog post&lt;/a&gt; , and link to &lt;a href="https://arxiv.org/abs/2306.02564" target="_blank"&gt;this paper&lt;/a&gt; on the methods use. This describes how they use a neural network model to generate the data, and how it differs from standard modelling approaches as they only have presence data and not absence data. &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil&lt;/a&gt; then pointed me at &lt;a href="https://arxiv.org/abs/2502.14977" target="_blank"&gt;a newer paper&lt;/a&gt; by the same group that looks specifically at trying to model species with very few occurrence points...</summary><category term="Digital Flapjack"></category></entry><entry><title>Mon 10 Mar 2025</title><link href="https://ryan.freumh.org/2025-03-10.html" rel="alternate"></link><published>2025-03-10T00:00:00Z</published><updated>2025-03-10T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-03-10.html</id><summary type="html">Previous: &lt;a href="2025-03-03.html" target="_blank"&gt;Mon 3 Mar 2025&lt;/a&gt; Next: &lt;a href="2025-03-17.html" target="_blank"&gt;Mon 17 Mar 2025&lt;/a&gt; Babel KILL python pubgrub Using Uv’s &lt;a href="https://github.com/astral-sh/uv/blob/c48af312aee48a000a23722ecfdddbe5a4037f78/crates/uv-resolver/src/dependency_provider.rs#L13" target="_blank"&gt;dependency 15provider&lt;/a&gt; . This isn’t feasible at present, as Uv implements a custom resolver. DONE cargo pubgrub Got a &lt;a href="https://github.com/RyanGibb/babel/commit/dcdb92a6840b3d78e3737bb448bf0937d1c9964c" target="_blank"&gt;cargo 16dependency provider&lt;/a&gt; working modified from a repository used to benchmark pubgrub-rs on solving the cargo repository. (Root, ) -&gt; (Cargo Bucket:serde@1.x.y, SemverPubgrub { norml: 1.0.219, pre: ∅ } ) (Cargo Bucket:serde@1.x.y, 1.0.219) -&gt; (Cargo Bucket:serde_derive@1.x.y, SemverPubgrub { norml: &gt;=1.0.219, &lt;1.0.220, pre: ∅ } ), (Cargo Bucket:serde_derive@1.x.y/default=true, SemverPubgrub { norml: &gt;=1.0.219, &lt;1.0.220, pre: ∅ } ) (Cargo Bucket:serde_derive@1.x.y, 1.0.219) -&gt; (Cargo Bucket:quote@1.x.y/proc-macro, SemverPubgrub { norml: &gt;=1.0.35, &lt;2.0.0, pre: ∅ } ), (Cargo Bucket:syn@2.x.y/parsing, SemverPubgrub { norml:...</summary><category term="ryan.freumh.org"></category></entry><entry><title>2025-03-09 Weekly Notes</title><link href="https://ancazugo.github.io/research/outreach/2025/03/09/weekly-notes.html" rel="alternate"></link><published>2025-03-09T00:00:00Z</published><updated>2025-03-09T00:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/research/outreach/2025/03/09/weekly-notes</id><summary type="html">Hello! This week I worked on the optimisation of counting trees within a given geometry. This is a problem I had solved back in December, although not in the optimal way. Ihad segmented almost 400M trees from the Defra dataset, but now I had to count how many are within a 100 m radius of each one of the 29M buildings in England. I had solved this by iterating through the LSOAs (statistical geography) in England, but that process took about 11 days to complete with the SQl API of Apache Sedona. When I was developing that part of my project, I had tried to solve it using Spatial RDDs, as suggested by &lt;a href="https://ameliaholcomb.github.io/" target="_blank"&gt;Amelia Holcomb&lt;/a&gt; initially, but sadly, the documentation of some of the features in Sedona are still in developing stages so I put that away. Because I had created an improved version of the trees...</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>Towards Forester 5.0: a design for global identity</title><link href="https://www.forester-notes.org/OYOJ/" rel="alternate"></link><published>2025-03-08T12:17:14Z</published><updated>2025-03-08T12:17:14Z</updated><author><name>JonS</name></author><id>https://www.forester-notes.org/OYOJ/</id><summary type="html">As we move closer to &lt;a href="https://www.forester-notes.org/jms-011P/" target="_blank"&gt;Forester 5.0&lt;/a&gt; , which &lt;a href="https://www.forester-notes.org/30FN/" target="_blank"&gt;introduces&lt;/a&gt; rudimentary federation capabilities, we must address new problems that did not arise in the days when no two &lt;a href="https://www.forester-notes.org/tfmt-000R/" target="_blank"&gt;forests&lt;/a&gt; interacted or linked to each other. The most immediate issue is that trees describing entities with “global” identity (including actual people as well as bibliographic references) will naturally be duplicated across many forests. For example, this happens when one person authors trees in multiple forests, and it happens even more often with bibliographic entries (both for the entries themselves and their author attributions). It is very important to handle this problem properly now in a way that (1) minimises friction and (2) enables us to quietly evolve toward &lt;a href="https://www.forester-notes.org/klepmann-et-al-atproto-2024/" target="_blank"&gt;more Web-centric approaches to identity as they emerge&lt;/a&gt; . Below, I survey some existing approaches to...</summary><category term="Forester Blog"></category></entry><entry><title>Socially self-hosting source code with Tangled on Bluesky</title><link href="https://anil.recoil.org/notes/disentangling-git-with-bluesky" rel="alternate"></link><published>2025-03-08T00:00:00Z</published><updated>2025-03-08T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/disentangling-git-with-bluesky</id><summary type="html">I've been an avid user of &lt;a href="https://github.com" target="_blank"&gt;GitHub&lt;/a&gt; since its launch, and it really has revolutionised how communities come together to work on open source. In recent years though, I find myself utterly overwhelmed by its notifications and want to experiment with &lt;a href="https://www.offlineimap.org/github/2016/03/08/github-pr-suck.html" target="_blank"&gt;alternative workflows&lt;/a&gt; . This experimentation also has a more serious undertone due to the increasing need for &lt;a href="https://www.boell.de/en/2025/01/24/trump-and-big-tech-europes-sovereignty-stake" target="_blank"&gt;data sovereignty&lt;/a&gt; and so I'm starting to move my source code to self-hosted solutions that are less reliant on centralised services. This has also come up persistently over the years in the &lt;a href="https://ocaml.org" target="_blank"&gt;OCaml&lt;/a&gt; community, with questions over why participation in packaging &lt;a href="https://discuss.ocaml.org/t/publishing-without-github/3232" target="_blank"&gt;requires a GitHub account&lt;/a&gt; ever since the &lt;a href="https://anil.recoil.org/notes/opam-1-1-beta" target="_blank"&gt;early days&lt;/a&gt; of opam. I've never found a good answer... until now, with the launch of an exciting &lt;a href="https://tangled.sh" target="_blank"&gt;new service&lt;/a&gt; that's built over the same protocol that &lt;a href="https://bsky.app" target="_blank"&gt;Bluesky&lt;/a&gt; uses. As I...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Our EEG group discussion on 'useful' AI tools</title><link href="https://anil.recoil.org/notes/the-state-of-ai-tools" rel="alternate"></link><published>2025-03-07T00:00:00Z</published><updated>2025-03-07T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/the-state-of-ai-tools</id><summary type="html">&lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; organised this week's &lt;a href="https://www.cst.cam.ac.uk/research/eeg" target="_blank"&gt;EEG&lt;/a&gt; group &lt;a href="https://www.cst.cam.ac.uk/seminars/list/229027" target="_blank"&gt;discussion&lt;/a&gt; on what AI tools we use for our daily work. I was immediately struck by how few tools there are that are actually making us more productive, so I jotted down notes as the discussion was going on. Personally, the only tool I've found that's (only just recently) making me more productive is agentic coding, which I &lt;a href="https://anil.recoil.org/notes/claude-copilot-sandbox" target="_blank"&gt;wrote about a few days ago&lt;/a&gt; . Since then, I've been mildly obsessively forking off ideas I've wanted to try for years (like converting RFCs to OCaml code) and greatly enjoying myself. &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; and I have been looking for how to do this more ethically, and the best I ran across was the &lt;a href="https://www.ibm.com/impact/ai-ethics" target="_blank"&gt;IBM AI ethics&lt;/a&gt; guidance and their &lt;a href="https://github.com/ibm-granite/granite-code-models" target="_blank"&gt;granite models&lt;/a&gt; , but not much else. Any pointers to other models that don't violate open source licensing norms would be...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Are you still using OCaml 4.08 or earlier? If so, we need to know</title><link href="https://anil.recoil.org/notes/deprecating-ocaml-408" rel="alternate"></link><published>2025-03-05T00:00:00Z</published><updated>2025-03-05T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/deprecating-ocaml-408</id><summary type="html">I started pushing OCaml Docker images over to the &lt;a href="https://hub.docker.com/r/ocaml/opam" target="_blank"&gt;Docker Hub&lt;/a&gt; in around 2017, to support the burgeoning automated build infrastructure around the use of the language. Back then, OCaml 4.06 was the latest release, and so I wrote an &lt;a href="https://github.com/ocurrent/ocaml-version/blob/master/CHANGES.md" target="_blank"&gt;ocaml-version&lt;/a&gt; library to track the release metadata. It has been a bit of a success disaster, as that library now &lt;a href="https://github.com/ocurrent/ocaml-version/blob/master/CHANGES.md" target="_blank"&gt;tracks&lt;/a&gt; every release of OCaml in the modern era, and also backs the &lt;a href="https://github.com/ocurrent/docker-base-images" target="_blank"&gt;automatic building&lt;/a&gt; of a huge array of compiler versions and variants across &lt;a href="https://images.ci.ocaml.org/?distro=debian-12&amp;" target="_blank"&gt;Linux&lt;/a&gt; and &lt;a href="https://images.ci.ocaml.org/?distro=windows-msvc&amp;" target="_blank"&gt;Windows&lt;/a&gt; . The problem is...we're now building the full set of images from OCaml 4.02 onwards through to the latest OCaml 5.3.0 release, which is unsustainable for obvious reasons; despite the hosting being kindly &lt;a href="https://www.docker.com/community/open-source/application/" target="_blank"&gt;sponsored by Docker&lt;/a&gt; , we must also consider the &lt;a href="https://ocaml.org/policies/carbon-footprint" target="_blank"&gt;carbon footprint&lt;/a&gt; of our infrastructure. So the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Weeknotes: 3rd March 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-03-03/" rel="alternate"></link><published>2025-03-03T09:07:12Z</published><updated>2025-03-03T09:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-03-03/</id><summary type="html">Last week Using Go with Wasm and Web Workers As indicated &lt;a href="/weeknotes/2025-02-24/" target="_blank"&gt;last week&lt;/a&gt; , I spent some time learning how to use both &lt;a href="https://go.dev" target="_blank"&gt;Go&lt;/a&gt; for &lt;a href="https://webassembly.github.io/spec/core/index.html" target="_blank"&gt;Web Assembly&lt;/a&gt; and with &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers" target="_blank"&gt;Web Workers&lt;/a&gt; for parallelism in the browser. I &lt;a href="/blog/go-wasm-workers/" target="_blank"&gt;wrote a long post&lt;/a&gt; about the details if that's of any interest. Webplats To make the above post I had to actually do tweaks to &lt;a href="https://github.com/mdales/webplats/" target="_blank"&gt;Webplats&lt;/a&gt; , the software I wrote that hosts this site. The technical details aren't that exciting, but it's just nice to observe how liberating it is to be able to hit a limitation of the hosting tool you're using and be able to quickly change it to remove that limitation. I did however also have to disable code syntax highlighting as &lt;a href="https://github.com/patricoferris/hilite" target="_blank"&gt;hilite&lt;/a&gt; (or possibly one the libraries it uses to tokenise the code) is struggling with Go, and no syntax-highlighting seemed a better fallback...</summary><category term="Digital Flapjack"></category></entry><entry><title>Mon 3 Mar 2025</title><link href="https://ryan.freumh.org/2025-03-03.html" rel="alternate"></link><published>2025-03-03T00:00:00Z</published><updated>2025-03-03T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-03-03.html</id><summary type="html">Previous: &lt;a href="2025-02-25.html" target="_blank"&gt;Tue 25 Feb 2025&lt;/a&gt; Next: &lt;a href="2025-03-10.html" target="_blank"&gt;Mon 10 Mar 2025&lt;/a&gt; &lt;a href="https://github.com/RyanGibb/babel" target="_blank"&gt;Babel&lt;/a&gt; A Debian encoding in PubGrub DONE &lt;a href="https://www.debian.org/doc/debian-policy/ch-relationships.html#virtual-packages-provides" target="_blank"&gt;provides&lt;/a&gt; with virtual packages &lt;a href="https://github.com/RyanGibb/pubgrub-debian/commit/0e1b76fd89b8773b555905858e3e3ed3796e78a3" target="_blank"&gt;here&lt;/a&gt; DONE cross ecosystem resolutions between opam and debian Done in &lt;a href="https://github.com/RyanGibb/babel" target="_blank"&gt;babel&lt;/a&gt; . Some examples follow. conf-gmp #[test] fn test_conf_gmp_variables() -&gt; Result&lt;(), Box&lt;dyn Error&gt;&gt; { let root = OpamPackage::Root(vec![ ( OpamPackage::Base("conf-gmp".to_string()), Range::singleton(OpamVersion("4".to_string())), ), ( OpamPackage::Var("os-family".to_string()), Range::singleton(OpamVersion("debian".to_string())), ), ( OpamPackage::Var("os-distribution".to_string()), Range::singleton(OpamVersion("debian".to_string())), ), ]); solve_repo( BabelPackage::Opam(root), BabelVersion::Opam(OpamVersion("".to_string())), "../pubgrub_opam/opam-repository/packages",...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Oh my Claude, we need agentic copilot sandboxing right now</title><link href="https://anil.recoil.org/notes/claude-copilot-sandbox" rel="alternate"></link><published>2025-03-02T00:00:00Z</published><updated>2025-03-02T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/claude-copilot-sandbox</id><summary type="html">&lt;a href="https://github.com/yminsky" target="_blank"&gt;Yaron Minsky&lt;/a&gt; nerdsniped me last week into getting OCaml to drive the 80s-retro &lt;a href="https://www.adafruit.com/product/2345" target="_blank"&gt;RGB Matrix&lt;/a&gt; displays. I grabbed one from the local Pi Store and soldered it together with help from &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; . But instead of writing OCaml bindings by hand, we thought we'd try out the latest agentic CLI called &lt;a href="https://github.com/kodu-ai/claude-code" target="_blank"&gt;Claude Code&lt;/a&gt; released &lt;a href="https://ai-claude.net/" target="_blank"&gt;last week&lt;/a&gt; to see if we could entirely autogenerate the bindings. TL;DR: Claude Coder generated working OCaml code almost from scratch, ranging from C bindings to high-level OCaml interface files and even Cmdliner terms, but needs a more sophisticated sandboxing model before something goes horribly wrong. So much potential and so much danger awaits us. Coincidentally &lt;a href="https://web.eecs.umich.edu/~comar/" target="_blank"&gt;Cyrus Omar&lt;/a&gt; and &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; and I &lt;a href="https://anil.recoil.org/papers/2024-hope-bastion" target="_blank"&gt;wrote&lt;/a&gt; about this a few months ago. Read on... Wiring up the display to my...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>A hardware description language using OCaml effects</title><link href="https://anil.recoil.org/ideas/tracing-hdl-with-effects" rel="alternate"></link><published>2025-03-01T00:00:00Z</published><updated>2025-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/tracing-hdl-with-effects</id><summary type="html">A hardware description language using OCaml effects This is an idea proposed in 2025 as a Cambridge Computer Science Part III or MPhil project, and is available for being worked on. It may be co-supervised with &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; and &lt;a href="https://github.com/andrewray" target="_blank"&gt;Andy Ray&lt;/a&gt; . Programming FPGAs using functional programming languages is a very good fit for the problem domain. OCaml has the &lt;a href="https://anil.recoil.org/notes/fpgas-hardcaml" target="_blank"&gt;HardCaml ecosystem&lt;/a&gt; to express hardware designs in OCaml, make generic designs using the power of the language, then simulate designs and convert them to Verilog or VHDL. HardCaml is very successfully used in production at places like &lt;a href="https://janestreet.com" target="_blank"&gt;Jane 17Street&lt;/a&gt; , but needs quite a lot of prerequisite knowledge about the full OCaml language. In particular, it makes very heavy use of the &lt;a href="https://github.com/janestreet/hardcaml/blob/master/docs/hardcaml_interfaces.md" target="_blank"&gt;module 18system&lt;/a&gt; in order to build up the circuit description as an OCaml data...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>An Introductory Guide on How to Create Beautiful Slides</title><link href="https://watch.eeg.cl.cam.ac.uk/w/dFShkouits1FFyUctiSSH5" rel="alternate"></link><published>2025-02-28T17:59:20Z</published><updated>2025-02-28T17:59:20Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/dFShkouits1FFyUctiSSH5</id><summary type="html">Frank Feng is a first-year Ph.D. student in the Department of Computer Science and Technology at the University of Cambridge. His research interests lie at the intersection of machine learning and earth sciences, with a particular focus on the application of self-supervised learning in remote sensing.</summary><category term="EEG Seminars"></category></entry><entry><title>2025-02-28 Weekly Notes</title><link href="https://ancazugo.github.io/research/outreach/2025/02/28/weekly-notes.html" rel="alternate"></link><published>2025-02-28T00:00:00Z</published><updated>2025-02-28T00:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/research/outreach/2025/02/28/weekly-notes</id><summary type="html">This week I focused mostly on checking why I had some empty rows in the estimation of the canopy cover and the tree count from the Vegetation Object Model. After investigating the code, I found that the issue was behind a try/except clause that was masking corrupted files. Now, this was the intended behaviour originally, as some files can’t be read, however, because the data processing is done at the geographic statistical level (read &lt;a href="https://www.ons.gov.uk/census/census2021dictionary/areatypedefinitions" target="_blank"&gt;ONS&lt;/a&gt; ), and the VOM tiles come in 5x5 km files (following GB National Grid), even when one file can’t be read, the other ones wouldn’t be processed either. With the new small correction, only the corrupted files are not processed and the rest of the files are processed as intended. So from the 5402 tiles, only 26 can’t be read. In addition to this, I...</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>The AIETF arrives, and not a moment too soon</title><link href="https://anil.recoil.org/notes/ai-ietf-aiprefs" rel="alternate"></link><published>2025-02-28T00:00:00Z</published><updated>2025-02-28T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ai-ietf-aiprefs</id><summary type="html">The &lt;a href="https://ietf.org" target="_blank"&gt;IETF&lt;/a&gt; &lt;a href="https://bsky.app/profile/ietf.org/post/3lj6w5fpjx22u" target="_blank"&gt;announced&lt;/a&gt; their new &lt;a href="https://www.ietf.org/blog/aipref-wg/" target="_blank"&gt;AI Preferences Working Group&lt;/a&gt; (AIPREF), which will "work on standardizing building blocks that allow for the expression of preferences about how content is collected and processed for Artificial Intelligence models" . This is quite well timed; the IETF tries not to standardise too early before there is &lt;a href="https://www.ietf.org/runningcode/" target="_blank"&gt;running code&lt;/a&gt; but also needs to move before it's too late and a bad defacto standard is &lt;a href="https://datatracker.ietf.org/doc/html/rfc7282" target="_blank"&gt;chosen&lt;/a&gt; . The AI world seems to be at that nexus point right about now, with &lt;a href="https://openai.com/index/introducing-gpt-4-5/" target="_blank"&gt;GPT 4.5&lt;/a&gt; seemingly hitting a &lt;a href="https://www.newscientist.com/article/2470327-is-openai-hitting-a-wall-with-huge-and-expensive-gpt-4-5-model/" target="_blank"&gt;scaling wall&lt;/a&gt; and possibly triggering the start of a renewed data scraping frenzy. How do websites interact with AI crawlers right now? I've found when developing my own website there are a number of approaches to interacting with automated data crawlers. For the record, over 90% of...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Blogging BIOSPACE25!</title><link href="http://localhost:4000/2025/02/28/biospace.html" rel="alternate"></link><published>2025-02-28T00:00:00Z</published><updated>2025-02-28T00:00:00Z</updated><author><name>OnkarG</name></author><id>http://localhost:4000/2025/02/28/biospace</id><summary type="html">Blogging BIOSPACE25! 28th February, 2025 Hello world , this is my first Jekyll blog post. With that formality out the way… a couple weeks ago I headed off to the Biospace conference at the ESA-ESRIN Observation Center in Frascati, Italy. While I was only there for 2 days, there was a lot to be excited about. Just past the entrance to the ESA-ESRIN Observation Center, and also past some fairly intense security! My big takeaway from the opening speeches was that this is the first year that the ESA is spending more on building out its data science capabilities than it is on putting satellites into space. To me, this is indicative of the fact that the marginal benefit from putting effort into effectively wrangling huge amounts of data is now greater than that from collecting huge amounts of...</summary><category term="Onkar Gulati"></category></entry><entry><title>Tue 25 Feb 2025</title><link href="https://ryan.freumh.org/2025-02-25.html" rel="alternate"></link><published>2025-02-25T00:00:00Z</published><updated>2025-02-25T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-02-25.html</id><summary type="html">Previous: &lt;a href="2025-02-17.html" target="_blank"&gt;Mon 17 Feb 2025&lt;/a&gt; Next: &lt;a href="2025-03-03.html" target="_blank"&gt;Mon 3 Mar 2025&lt;/a&gt; Babel: opam repository with &lt;a href="https://github.com/RyanGibb/pubgrub-opam" target="_blank"&gt;pubgrub-opam&lt;/a&gt; A Debian/Alpine encoding in PubGrub, which I think should be much simpler than Opam DONE Got the basics in &lt;a href="https://github.com/RyanGibb/pubgrub-debian" target="_blank"&gt;pubgrub-debian&lt;/a&gt; Here’s a solve of openssh-server: (openssh-server, 1:7.9p1-10+deb10u2) -&gt; (libssl1.1, &gt;=1.1.1), (openssh-client, 1:7.9p1-10+deb10u2), (libc6, &gt;=2.26), (libcom-err2, &gt;=1.43.9), (procps, *), (lsb-base, &gt;=4.1+Debian3), (libaudit1, &gt;=1:2.2.1), (dpkg, &gt;=1.9.0), (ucf, &gt;=0.28), (libselinux1, &gt;=1.32), (libgssapi-krb5-2, &gt;=1.17), (libsystemd0, *), (debconf: &gt;=0.5 | debconf-2.0: *, *), (libpam0g, &gt;=0.99.7.1), (openssh-sftp-server, *), (libpam-runtime, &gt;=0.76-14), (libpam-modules, &gt;=0.72-9), (zlib1g, &gt;=1:1.1.4), (adduser, &gt;=3.9), (libkrb5-3, &gt;=1.13~alpha1+dfsg), (libwrap0, &gt;=7.6-4~) (libssl1.1,...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Using Go with Wasm and Web Workers</title><link href="https://digitalflapjack.com/blog/go-wasm-workers/" rel="alternate"></link><published>2025-02-24T15:08:58Z</published><updated>2025-02-24T15:08:58Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/go-wasm-workers/</id><summary type="html">These are some notes for myself about trying to use Wasm and Web Workers to achieve some level of parallelisation in the browser. This isn't meant to be a comprehensive tutorial, but there are so many broken tutorials or half bits of documentation out there, I thought I should leave myself a note here. This is just the result of an afternoon of spelunking to try and work out how to do this, and should not be considered comprehensive. Example If you're viewing this page directly (rather than via an RSS reader) and your browser supports Wasm, then below you should see a &lt;a href="https://en.wikipedia.org/wiki/Mandelbrot_set" target="_blank"&gt;Mandelbrot fractal&lt;/a&gt; render into place above, with different chunks appearing at different points (and on Safari you might see some banding, which is it failing to align the canvas tiles properly rather than being an issue with the...</summary><category term="Digital Flapjack"></category></entry><entry><title>Weeknotes: 24th February 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-02-24/" rel="alternate"></link><published>2025-02-24T09:07:12Z</published><updated>2025-02-24T09:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-02-24/</id><summary type="html">Last Week LIFE As started &lt;a href="/weeknotes/2025-02-17/" target="_blank"&gt;last week&lt;/a&gt; , I finished the changes to let you run the &lt;a href="https://github.com/quantifyearth/life/" target="_blank"&gt;LIFE pipeline&lt;/a&gt; using the bulk data downloads from the &lt;a href="https://iucnredlist.org/" target="_blank"&gt;IUCN Red List&lt;/a&gt; website, which give you a bunch of CSV files of species data and then some shapefiles of range data. Previously I'd been using a PostGIS database with all the data in, but not everyone has one of those to hand, and I want to make it was easy as possible for others to run the pipeline to reproduce our work. After being very impressed last week at the behaviour of &lt;a href="https://duckdb.org/" target="_blank"&gt;DuckDB&lt;/a&gt; , particularly in the way it'd let me do spatial queries, I did realise that the performance of ST_UNION_AGG , it's version of PostGIS's ST_UNION was significantly slower than just pulling the different ranges for a species and using &lt;a href="https://shapely.readthedocs.io/en/stable/manual.html" target="_blank"&gt;shapely&lt;/a&gt; to unify them in Python. It's still...</summary><category term="Digital Flapjack"></category></entry><entry><title>Robotics and Sensing for Sustainable Crop Production</title><link href="https://watch.eeg.cl.cam.ac.uk/w/9hADtA5Fov2vdDt9iNVjJQ" rel="alternate"></link><published>2025-02-21T16:26:06Z</published><updated>2025-02-21T16:26:06Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/9hADtA5Fov2vdDt9iNVjJQ</id><summary type="html">Abstract: Crop farming is essential in our society, providing food, feed, fiber, and fuel. We heavily rely on crop production, but at the same time, we need to reduce the production footprint. We aim to address this key challenge by investigating new solutions to produce crops more sustainably. We study novel technology-driven approaches to move toward sustainable crop production. Agricultural robots offer promising directions to address management challenges in agricultural fields or support plant breeding efforts through large-scale trait acquisition. For that, field robots need the ability to perceive and model their environment, predict possible future developments, and make appropriate decisions in complex and changing situations. This talk will showcase our recent developments in...</summary><category term="EEG Seminars"></category></entry><entry><title>2025-02-21 Weekly Notes</title><link href="https://ancazugo.github.io/research/outreach/2025/02/21/weekly-notes.html" rel="alternate"></link><published>2025-02-21T00:00:00Z</published><updated>2025-02-21T00:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/research/outreach/2025/02/21/weekly-notes</id><summary type="html">So back to the routine after coming from Italy for BIOSPACE25. It was a really great experience in the ESA HQ but I got a cold from Italy 😷. This week started by going to the Social and Spatial Epidemiology Module from the &lt;a href="https://www.phs.group.cam.ac.uk/" target="_blank"&gt;PHS MPhil&lt;/a&gt; in the Biomedical Campus. It’s originally desgined to help public health students understand that it is a spatial domain, with all that it means. I really enjoyed the course in that I was exposed to things that I wasn’t aware of like redlining and gerrymandering in the US. Special shoutout to &lt;a href="https://health.usnews.com/doctors/james-lewis-291573" target="_blank"&gt;Dr James Lewis&lt;/a&gt; , invited speaker to the module, who is an active nephrologist in Atlanta, Georgia. His lecture is one of the most engaging I’ve ever seen here in Cambridge. I really enjoyed how he initiated with the story about his aunt and ended with his daughter. He also...</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>A trio of papers I read on biodiversity and forests this week</title><link href="https://anil.recoil.org/notes/forest-apps-and-benchmarks" rel="alternate"></link><published>2025-02-20T00:00:00Z</published><updated>2025-02-20T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/forest-apps-and-benchmarks</id><summary type="html">This week I've been reading three really nice pieces of work by my colleagues, in the form of a &lt;a href="https://www.nature.com/articles/s44358-025-00022-3" target="_blank"&gt;review paper&lt;/a&gt; on biodiversity and AI, a &lt;a href="https://besjournals.onlinelibrary.wiley.com/doi/10.1111/2041-210X.14503" target="_blank"&gt;benchmark&lt;/a&gt; for 3D forest reconstruction using laser scanners and a &lt;a href="https://github.com/MingyueX/GreenLens" target="_blank"&gt;mobile app&lt;/a&gt; for measuring the width of tree trunks. A real bonanza for forest lovers! Review paper on mapping opportunities for AI in biodiversity A paper on ' &lt;a href="https://www.nature.com/articles/s44358-025-00022-3" target="_blank"&gt;Harnessing AI to fill global shortfalls in biodiversity knowledge&lt;/a&gt; ' just came out in Nature Biodiversity today (via &lt;a href="http://oisin.info" target="_blank"&gt;Oisin Mac Aodha&lt;/a&gt; ). They start with the baseline present uses of AI (camera traps, acoustic monitoring and improved data analysis) which are pretty well known to anyone in the field, but then introduce &lt;a href="https://www.nature.com/articles/s44358-025-00022-3/figures/1" target="_blank"&gt;a lovely diagram of future uses&lt;/a&gt; of AI for biodiversity which includes: Rapid retrieval of existing information means both looking into existing literature, but also the digitisation of existing museum...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Weeknotes: 17th February 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-02-17/" rel="alternate"></link><published>2025-02-17T09:07:12Z</published><updated>2025-02-17T09:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-02-17/</id><summary type="html">Last Week LIFE For the &lt;a href="https://github.com/quantifyearth/life/" target="_blank"&gt;LIFE extinction-risk metric pipeline&lt;/a&gt; , all the species data comes from the &lt;a href="https://www.iucnredlist.org/" target="_blank"&gt;IUCN Red List&lt;/a&gt; , and this week I began a job I'd been intending to do for a while to make that stage pragmatically accessible to people trying to run our pipeline externally. Originally, as LIFE was being developed, the species data was manually downloaded from the Red List website using their bulk download facility, which gives you a ZIP file of CSVs for the empirical data, and then another set of ZIPs that contain the polygon range data. These had then been run through a mixture of hand processing and Python scripting to filter it down to the appropriate species for the LIFE metric. As we came to publication I wanted to automate this, which I did, but at that stage, because I was working closely with the IUCN on...</summary><category term="Digital Flapjack"></category></entry><entry><title>Vpnkit, Void Processes, LSP Servers</title><link href="https://patrick.sirref.org/weekly-2025-02-17/" rel="alternate"></link><published>2025-02-17T00:00:00Z</published><updated>2025-02-17T00:00:00Z</updated><author><name>PatrickF</name></author><id>https://patrick.sirref.org/weekly-2025-02-17/</id><summary type="html">Previous &lt;a href="https://patrick.sirref.org/weeklies/" target="_blank"&gt;weeklies&lt;/a&gt; used strong emphasis to distinguish sections. This comes from &lt;a href="https://patrick.sirref.org/forester/" target="_blank"&gt;Forester&lt;/a&gt; 's philosophy about atomicity of the content in your forest . However, subtrees are supported! I quickly hacked together the ability to use subheadings to indicate subtrees . This is strictly less expressive than the \subtree{} of &lt;a href="https://patrick.sirref.org/forester/" target="_blank"&gt;Forester&lt;/a&gt; 's default syntax as we cannot close heading sections in Markdown. This weekly uses subtrees. Vpnkit I spent some time this week trying to upgrade vpnkit to OCaml 5. I was originally working on &lt;a href="https://patrick.sirref.org/vpnkit-er/" target="_blank"&gt;a paper idea&lt;/a&gt; which might need benchmarks, but &lt;a href="https://patrick.sirref.org/anilmadhavapeddy/" target="_blank"&gt;Anil&lt;/a&gt; and I decided we could simply point to the port I did and show how it has simplified much of the code. Void Processes Work continued on implementing (and fully exploring) &lt;a href="https://patrick.sirref.org/void-process/" target="_blank"&gt;void processes&lt;/a&gt; . A lot of the groundwork already...</summary><category term="Weeklies"></category></entry><entry><title>Mon 17 Feb 2025</title><link href="https://ryan.freumh.org/2025-02-17.html" rel="alternate"></link><published>2025-02-17T00:00:00Z</published><updated>2025-02-17T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-02-17.html</id><summary type="html">Previous: &lt;a href="2025-02-10.html" target="_blank"&gt;Mon 10 Feb 2025&lt;/a&gt; Next: &lt;a href="2025-02-25.html" target="_blank"&gt;Tue 25 Feb 2025&lt;/a&gt; Babel: opam repository with &lt;a href="https://github.com/RyanGibb/pubgrub-opam" target="_blank"&gt;pubgrub-opam&lt;/a&gt; DONE &lt;a href="https://github.com/RyanGibb/pubgrub-opam/tree/main/example-repo" target="_blank"&gt;tests&lt;/a&gt; DONE &lt;a href="https://crates.io/crates/pubgrub/0.3.0-alpha.1" target="_blank"&gt;PubGrub 190.3.0&lt;/a&gt; &lt;a href="https://github.com/astral-sh/uv" target="_blank"&gt;Uv&lt;/a&gt; is using the development branch of PubGrub. There’s a lot of improvements to be had since the last release was 4 years ago. The new version bounds will cleanly express version constraints, e.g. stop converting &lt;= 1.0.0 to &lt; 1.0.0.1 It looks like we might be able to manually add conflicts with &lt;a href="https://github.com/pubgrub-rs/pubgrub/blob/23357967c6473b358ffb7c0092e9c3fc4e4c972b/src/internal/core.rs#L94" target="_blank"&gt;add_incompatibility&lt;/a&gt; Ah, actually this is an internal thing. Completed &lt;a href="https://github.com/RyanGibb/pubgrub-opam/commit/d67fcfcfd02fc1e5fb720d5f89986d895693dce4" target="_blank"&gt;here&lt;/a&gt; . DONE conjunctions and disjunctions in filtered package formula Take "D" { test &amp; &gt; "2.0.0"} as an example. We encode this as, (filtered-package-formula-variable-version, 1.0.0) -&gt; (D {(test &amp; = &gt;2.0.0)}, *) (D {(test &amp; = &gt;2.0.0)}, false) -&gt; (`test`, false) (D {(test &amp; = &gt;2.0.0)}, true) -&gt; (`test`, true), (A,...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Thoughts on the National Data Library and private research data</title><link href="https://anil.recoil.org/notes/uk-national-data-lib" rel="alternate"></link><published>2025-02-17T00:00:00Z</published><updated>2025-02-17T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/uk-national-data-lib</id><summary type="html">Over the past year, &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; and I have been getting an object lesson in how the modern Internet handles researcher access to data, as we've been downloading tens of millions of research papers towards our &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;Conservation Evidence&lt;/a&gt; project. This is legally possible via our &lt;a href="https://www.lib.cam.ac.uk/stories/student-guide-libraries" target="_blank"&gt;institutional subscriptions&lt;/a&gt; that give us license to fulltexts, and the incredibly helpful &lt;a href="https://uk.linkedin.com/in/james-caudwell-60681766" target="_blank"&gt;head of electronic services&lt;/a&gt; at the University Library who wields encyclopedic knowledge of each of our agreements with the hundreds of publishers out there. My thoughts on this then segwayed into recent conversations I've been having about the emerging &lt;a href="https://takes.jamesomalley.co.uk/p/wtf-is-the-national-data-library" target="_blank"&gt;National Data Library&lt;/a&gt; and also with the UK &lt;a href="https://www.wildlifetrusts.org/" target="_blank"&gt;Wildlife Trusts&lt;/a&gt; ... The difficulty of access controlled bulk data downloads In late 2023, once we got past the legal aspects of downloading closed access papers &lt;a href="https://anil.recoil.org/#fn-1" target="_blank"&gt;[1]&lt;/a&gt; it was still remarkably...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using Low-cost, Research-led, Decentralised Networks</title><link href="https://watch.eeg.cl.cam.ac.uk/w/8PhivRm85jZuFg8v55yo7F" rel="alternate"></link><published>2025-02-14T16:25:58Z</published><updated>2025-02-14T16:25:58Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/8PhivRm85jZuFg8v55yo7F</id><summary type="html">Full Title: Using Low-cost, Research-led, Decentralised Networks to Increase Access to High Quality Microspatial Data on Building Stocks, and the Built and Natural Infrastructure Abstract: The Colouring Cities Research Programme (CCRP) is overseen by an informal, international academic consortium that uses its decentralized research-led network, to co-create and manage, permanent open data/visualisation platforms across countries. These provide standardised, open microspatial data on the characteristics, performance, and short/long-term dynamics of building stocks, and built and natural infrastructure. They also test feedback loops between live streaming, computational inference, and crowdsourcing approaches to improve coverage and reliability of data, and to support cross...</summary><category term="EEG Seminars"></category></entry><entry><title>BIOSPACE25 Blog</title><link href="https://ancazugo.github.io/research/outreach/2025/02/14/biospace25-blog.html" rel="alternate"></link><published>2025-02-14T00:00:00Z</published><updated>2025-02-14T00:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/research/outreach/2025/02/14/biospace25-blog</id><summary type="html">Day 2 My presentation (available to watch &lt;a href="https://www.youtube.com/live/e-eQ8XhRrsE?si=lv0p4CV3kdKGxmTk&amp;t=14326" target="_blank"&gt;here&lt;/a&gt; ) A couple of people approached me about deploying the Terracorder, particularly an organisation that works in training Indigenous communities in the Amazon and Kenya. (Diana Mastracci) Got asked about the technical components of the terracorder (how far can two devices be from each other?) Several people scanned the QR code, so hopefully, they will contact me. A representative of the European Commission asked about the urban tree map (Have to watch the recording because he ran away after the presentation) Poster Session Onkar did really great in his presentation. There are people who are working on using GeoFM for sustainable goals. There is a trend on using as much RS data as possible for different applications. Michael Munk from DHI...</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>`nmcli` connection to internal WiFi</title><link href="https://mort.io/blog/internalcl-wifi/" rel="alternate"></link><published>2025-02-14T00:00:00Z</published><updated>2025-02-14T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/internalcl-wifi/</id><summary type="html">Using my fancy (?) new(-ish) Linux laptop running &lt;a href="https://nixos.org/" target="_blank"&gt;NixOS&lt;/a&gt; , I finally had cause to connect to our internal Wi-Fi network. This was not entirely trivial due to the various configuration options required. So here goes, for the record, what I did as an aide memoir for me and in case it’s useful for anyone else… First, create the connection – the Wi-Fi network in question is named Internal-CL : $ sudo nmcli connection add type wifi con-name Internal-CL ssid Internal-CL Connection ' Internal-CL ' (8f1ddcc9-4b1f-4e5d-9992-522714685eb4 ) successfully added. Then, configure it: $ sudo nmcli connection edit Internal-CL = == | nmcli interactive connection editor | = == Editing existing ' 802-11-wireless ' connection: ' Internal-CL ' Type ' help ' or ' ? ' for available commands. Type ' print '...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Updated preprint on quantifying biodiversity cost of food consumption</title><link href="https://anil.recoil.org/news/2024-food-life-2" rel="alternate"></link><published>2025-02-12T00:00:00Z</published><updated>2025-02-12T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-food-life-2</id><summary type="html">We've uploaded a revised preprint on our ongoing work on quantifying the &lt;a href="https://anil.recoil.org/papers/2024-food-life" target="_blank"&gt;biodiversity cost of global food consumption&lt;/a&gt; , lead by &lt;a href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball" target="_blank"&gt;Thomas Ball&lt;/a&gt; . This is based on the &lt;a href="https://anil.recoil.org/news/2024-life-3" target="_blank"&gt;recently published&lt;/a&gt; &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;LIFE&lt;/a&gt; metric, combined with supply chain data and provenance modeling. [… &lt;a href="https://anil.recoil.org/news/2024-food-life-2" target="_blank"&gt;196 words&lt;/a&gt; ] &lt;a href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball" target="_blank"&gt;Thomas Ball&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/staff/dr-alison-eyres" target="_blank"&gt;Alison Eyres&lt;/a&gt; , &lt;a href="https://www.york.ac.uk/sei/staff/jonathan-green/" target="_blank"&gt;Jonathan Green&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , David Williams and &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; . Working paper at &lt;a href="https://www.cambridge.org/engage/coe/article-details/67a21eac81d2151a0225692b" target="_blank"&gt;Cambridge Open Engage&lt;/a&gt; . &lt;a href="https://www.cambridge.org/engage/coe/article-details/67a21eac81d2151a0225692b" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.33774/coe-2024-fl5fk-v2" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-food-life.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-food-life.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Weeknotes: 10th February 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-02-10/" rel="alternate"></link><published>2025-02-10T09:07:12Z</published><updated>2025-02-10T09:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-02-10/</id><summary type="html">Last week Yirgacheffe I hand't planned this, but I spent a day reworking the &lt;a href="https://github.com/quantifyearth/yirgacheffe/" target="_blank"&gt;Yigacheffe&lt;/a&gt; APIs towards what I've always thought of as the next major version interface, and had filed under "mañana" due to other work being more important. But inspired by one of the part II projects I'm supervising (final year undergrad for those not from Cambridge), I decided I really needed to fix up the APIs to make them cleaner. Yirgacheffe has some clunky parts to the API where it fails to meet the aim I have that working on maps should result in Python code that clearly follows the methodology rather than dealing with house keeping around the data. In a lot of areas I like to think I've been successful; for example, it will deal with loading in data in small chunks to as to fit within memory. But other...</summary><category term="Digital Flapjack"></category></entry><entry><title>Teaching, teaching, teaching...</title><link href="https://patrick.sirref.org/weekly-2025-02-10/" rel="alternate"></link><published>2025-02-10T00:00:00Z</published><updated>2025-02-10T00:00:00Z</updated><author><name>PatrickF</name></author><id>https://patrick.sirref.org/weekly-2025-02-10/</id><summary type="html">On paper, I don't have that many students. I teach four undergraduates (first year students at Pembroke College) &lt;a href="https://patrick.sirref.org/discrete-maths/" target="_blank"&gt;Discrete Maths&lt;/a&gt; . I supervise three third year students for their &lt;a href="https://patrick.sirref.org/part-ii-2024/" target="_blank"&gt;final year project&lt;/a&gt; and another one I co-supervise with &lt;a href="https://patrick.sirref.org/mdales/" target="_blank"&gt;Michael Dales&lt;/a&gt; . However, I do end up spending at least two full days a week on teaching. Something I really enjoy and take seriously. The time it takes is also quite unpredictable; last week for instance all the third year students had their mid-project demonstrations (a five-minute presentation in front of their peers and a few professor-types). My first year students also found two slides particularly challenging to understand from their lectures and asked if I could help explain what was going on, so I &lt;a href="https://patrick.sirref.org/dm-note.pdf" target="_blank"&gt;produced some materials for that&lt;/a&gt; . OCaml Within the OCaml universe I spent a good bit of...</summary><category term="Weeklies"></category></entry><entry><title>Mon 10 Feb 2025</title><link href="https://ryan.freumh.org/2025-02-10.html" rel="alternate"></link><published>2025-02-10T00:00:00Z</published><updated>2025-02-10T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-02-10.html</id><summary type="html">Previous: &lt;a href="2025-02-03.html" target="_blank"&gt;Mon 3 Feb 2025&lt;/a&gt; Next: &lt;a href="2025-02-17.html" target="_blank"&gt;Mon 17 Feb 2025&lt;/a&gt; Babel: solve the opam repository with &lt;a href="https://github.com/RyanGibb/pubgrub-opam" target="_blank"&gt;pubgrub-opam&lt;/a&gt; While converting the whole repository I fixed a bug in a package &lt;a href="https://github.com/ocaml/opam-repository/pull/27429" target="_blank"&gt;definition&lt;/a&gt; DONE &lt;a href="https://github.com/RyanGibb/pubgrub-opam/commit/2cb66fe1ae13bc16e1b5116948de5ee2dcba990a" target="_blank"&gt;on-demand 20dependency provider&lt;/a&gt; opam-repository has a lot of packages, so we only load packages we need TODO add a &lt;a href="https://pubgrub-rs-guide.pages.dev/pubgrub_crate/caching" target="_blank"&gt;caching 21dependency provider&lt;/a&gt; with interior mutation DONE parse &lt;a href="https://opam.ocaml.org/doc/Manual.html#Package-Formulas" target="_blank"&gt;filtered 22package formula&lt;/a&gt; While the grammar allows for it I can’t actually find any booleans or integers in the dependency formula of Opam. Why are they there? I’m just ignoring them for now so I don’t need to complement logic for comparing them etc. DONE encode filtered package formula in pubgrub Take (A, 1) depending on B {build} as a minimal example. We encode this in the ‘package calculus’ as (A, 1) -&gt; (B {build}, *) (B {build}, lhs) -&gt; (B, *), (`build`, false) (B {build}, rhs) -&gt; (`build`, true)...</summary><category term="ryan.freumh.org"></category></entry><entry><title>The Cambridge "Green Blue" competition to reduce emissions</title><link href="https://anil.recoil.org/notes/cambridge-green-blue" rel="alternate"></link><published>2025-02-10T00:00:00Z</published><updated>2025-02-10T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/cambridge-green-blue</id><summary type="html">&lt;a href="https://mlg.eng.cam.ac.uk/carl/" target="_blank"&gt;Carl Edward Rasmussen&lt;/a&gt; recently gave a great &lt;a href="https://watch.eeg.cl.cam.ac.uk/w/qEsMt2Ayk37SaKgxrfwoBt" target="_blank"&gt;talk&lt;/a&gt; in our group about his thoughts on &lt;a href="https://mlg.eng.cam.ac.uk/carl/words/mechanisms.pdf" target="_blank"&gt;mechanisms against climate change&lt;/a&gt; . He persuasively argued that the &lt;a href="https://unfccc.int/process-and-meetings/the-paris-agreement" target="_blank"&gt;Paris Agreement&lt;/a&gt; was doing more harm than good by giving the illusion of being a concrete agreement, but is in reality a huge distraction. Our actual &lt;a href="https://ourworldindata.org/co2-emissions" target="_blank"&gt;emissions&lt;/a&gt; have increased since the Paris agreement was signed! Carl &lt;a href="https://www.youtube.com/watch?v=naFaQsFxs1g" target="_blank"&gt;argues&lt;/a&gt; that a climate system ultimately only responds to collective actions, and without a global cooperative incentive each nation will spring back to their own isolated short-term incentives that lead to an increase in fossil fuel burning. He has just published the " &lt;a href="https://mlg.eng.cam.ac.uk/carl/climate/themis0.pdf" target="_blank"&gt;Themis Mechanism&lt;/a&gt; " as a simple alternative for equitable global emission reduction ( &lt;a href="https://mlg.eng.cam.ac.uk/carl/climate/themis.pdf" target="_blank"&gt;long form&lt;/a&gt; ). This got me brainstorming with Carl about how to test his theories out and we came up with an...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using AT Proto for more than just Bluesky posts</title><link href="https://anil.recoil.org/notes/atproto-for-fun-and-blogging" rel="alternate"></link><published>2025-02-09T00:00:00Z</published><updated>2025-02-09T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/atproto-for-fun-and-blogging</id><summary type="html">While &lt;a href="https://bsky.app" target="_blank"&gt;Bluesky&lt;/a&gt; is taking off like a rocket, a number of us &lt;a href="https://anil.recoil.org/notes/enter-the-matrix-hookshot" target="_blank"&gt;moving&lt;/a&gt; towards &lt;a href="https://anil.recoil.org/" target="_blank"&gt;self sovereign&lt;/a&gt; digital infrastructure have been looking at how to use the Bluesky network for other uses than just short-form notes. This is possible because of my colleague &lt;a href="https://martin.kleppmann.com" target="_blank"&gt;Martin Kleppmann&lt;/a&gt; 's hard work on the " &lt;a href="https://atproto.com/" target="_blank"&gt;AT Protocol&lt;/a&gt; " that underpins the Bluesky network. Martin recently gave us a &lt;a href="https://talks.cam.ac.uk/talk/index/224767" target="_blank"&gt;deep-dive into the AT proto&lt;/a&gt; in the Cambridge &lt;a href="https://www.cl.cam.ac.uk/research/security/" target="_blank"&gt;security group&lt;/a&gt; , which made me look into other uses of it more closely. As background, you may wish to read &lt;a href="https://arxiv.org/abs/2402.03239" target="_blank"&gt;his paper&lt;/a&gt; on the subject which explains the technical architecture extremely clearly. __LINK_8__ One of the key problems this solves is one I'm having with using my &lt;a href="https://en.wikipedia.org/wiki/ActivityPub" target="_blank"&gt;ActivityPub&lt;/a&gt; -based services at the moment. Each of these services (like my &lt;a href="https://crank.recoil.org" target="_blank"&gt;video&lt;/a&gt; or &lt;a href="https://amok.recoil.org" target="_blank"&gt;microblog&lt;/a&gt; sites) do not share a common...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Sway</title><link href="https://ryan.freumh.org/sway.html" rel="alternate"></link><published>2025-02-07T00:00:00Z</published><updated>2025-02-07T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/sway.html</id><summary type="html">Published Fri 7 Feb 2025. Tags: &lt;a href="/technology.html" target="_blank"&gt;technology&lt;/a&gt; . I use the &lt;a href="https://github.com/swaywm/sway" target="_blank"&gt;sway&lt;/a&gt; Wayland compositor, which is a clone of the X11 &lt;a href="https://i3wm.org/" target="_blank"&gt;i3&lt;/a&gt; window manager for &lt;a href="https://wayland.freedesktop.org/" target="_blank"&gt;Wayland&lt;/a&gt; . Wayland is a communications protocol for next-generation display servers used in Unix-like systems which has been adopted as the default display server by Linux distributions including Fedora with KDE, and Ubuntu and Debian with GNOME. I use the sway Wayland compositor. It aims to replace the venerable X display server with a modern alternative. X leaves logic such as window management to application software, which has allowed the proliferation of different approaches. Wayland, however, centralises this logic in the ‘compositor’, which assumes both display server and window manager roles. Status In lieu of a status bar I invoke a...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Entering the Matrix with Hookshot</title><link href="https://anil.recoil.org/notes/enter-the-matrix-hookshot" rel="alternate"></link><published>2025-02-07T00:00:00Z</published><updated>2025-02-07T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/enter-the-matrix-hookshot</id><summary type="html">We've been happy users of &lt;a href="https://matrix.org" target="_blank"&gt;Matrix&lt;/a&gt; for our group communications in the &lt;a href="https://www.cst.cam.ac.uk/research/eeg" target="_blank"&gt;EEG&lt;/a&gt; . Today we've been bringing in more members of the wider group to using it instead of Slack. As part of that, I've set up a cool bot called &lt;a href="https://github.com/matrix-org/matrix-hookshot" target="_blank"&gt;Hookshot&lt;/a&gt; which allows Matrix to be connected to external services such as GitHub and Atom/RSS feeds. This is a test post to demonstrate to the members of the EEG how Matrix and Atom work! The basic idea behind Hookshot is to provide a bridging service to communications rooms hosted on Matrix, in such a way that it can exert administrative control over a room to intercept requests for services (such as adding an Atom feed). The setup for Hookshot can be a little involved as there are lots of encryption keys flying around. In a nutshell, I have a Docker container...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Programming FPGAs using OCaml</title><link href="https://anil.recoil.org/notes/fpgas-hardcaml" rel="alternate"></link><published>2025-02-07T00:00:00Z</published><updated>2025-02-07T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/fpgas-hardcaml</id><summary type="html">With the vast amount of data we have these days for our &lt;a href="https://anil.recoil.org/projects/plancomp" target="_blank"&gt;planetary computing&lt;/a&gt; processing, it's naturally tempting to use more hardware offload. The obvious choice, GPGPUs, are not a great fit for the problem due to the difficulty of unlocking high data parallelism for geospatial data. So it's back to an old technology I worked on &lt;a href="https://anil.recoil.org/papers/2011-fccm-cloudfpga" target="_blank"&gt;twelve years ago&lt;/a&gt; in the form of &lt;a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array" target="_blank"&gt;FPGAs&lt;/a&gt; ! FPGAs are a very flexible way to execute boolean combinatorial logic, but are notoriously difficult to program. We have two possible angles to explore to address this. One is to design more declarative DSLs for data processing that compile to the FPGAs, such as &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; work on &lt;a href="https://github.com/quantifyearth/yirgacheffe" target="_blank"&gt;Yirgacheffe&lt;/a&gt; or &lt;a href="https://github.com/omarathon" target="_blank"&gt;Omar Tanner&lt;/a&gt; 's work on in-memory &lt;a href="https://anil.recoil.org/ideas/compressive-geospatial" target="_blank"&gt;compressive computation&lt;/a&gt; . The other angle is to work on the low-level API to programming the FPGAs, to get away from...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>`just` OCaml</title><link href="https://mort.io/blog/just-ocaml/" rel="alternate"></link><published>2025-02-07T00:00:00Z</published><updated>2025-02-07T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/just-ocaml/</id><summary type="html">In similar vein to a &lt;a href="https://mort.io/blog/just-latex" target="_blank"&gt;recent post&lt;/a&gt; , I have also started using &lt;a href="https://just.systems/" target="_blank"&gt;just&lt;/a&gt; when I periodically need to rebuild my &lt;a href="https://ocaml.org/" target="_blank"&gt;OCaml&lt;/a&gt; tool &lt;a href="https://mort.io/blog/just-ocaml/#1" target="_blank"&gt;1&lt;/a&gt; &lt;a href="https://github.com/mor1/ocal" target="_blank"&gt;ocal&lt;/a&gt; . So I ended up replacing the old &lt;a href="https://github.com/mor1/ocal/blob/6bb129627f9d1f27ab31cee810013b362ab80067/Makefile" target="_blank"&gt;Makefile&lt;/a&gt; with a shiny new &lt;a href="https://github.com/mor1/ocal/blob/8ef8631ae5bbe0315e359d725d467e7d0403fd31/Justfile" target="_blank"&gt;Justfile&lt;/a&gt; . As it also proved useful in another (more esoteric) tool I wrote &lt;a href="https://github.com/mor1/cst-tools" target="_blank"&gt;for parsing 23out exam results for my students so I can paste into email 24easily&lt;/a&gt; , I thought I’d put it here for the record. So here it is… 1 Largely due to &lt;a href="https://nixos.org/" target="_blank"&gt;NixOS&lt;/a&gt; upgrades moving tools into different locations. Usual preamble of course: _default : @ just --list Then set some common variables: PWD := env ( " PWD " ) DOCDIR := " _build/default/_doc/_html " BUILDDIR := " _build/install/default/bin " Then set the target — the tool name, in this case ocal (so named as this is an OCaml re-implementation of a tool approximating the trad Unix &lt;a href="https://en.wikipedia.org/wiki/Cal_(command)" target="_blank"&gt;cal&lt;/a&gt; tool): TARGET := " ocal...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Reverse `find`</title><link href="https://mort.io/blog/reverse-find/" rel="alternate"></link><published>2025-02-05T00:00:00Z</published><updated>2025-02-05T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/reverse-find/</id><summary type="html">In the last few days I discovered I needed to search back up the filesystem from $CWD to find the first occurence of a file (specifically, a Justfile but that’s by-the-by). Got bored of doing it by hand so wrote a &lt;a href="https://www.gnu.org/software/bash/" target="_blank"&gt;bash&lt;/a&gt; shell function; here ’tis: rf ( ) { local D while ! eza - l " $ { D := . } / $ 1 " ; do # first, check `$CWD` [ " $ ( realpath " $ D / $ 1 " ) " == " / $ 1 " ] &amp;&amp; break # stop if we hit `/` already D = $ D /.. # else, iterate one layer up done } Invoke as (e.g.,) rf Justfile . Alternatively, as a one-liner: F = Justfile ; while ! eza - l $ { D := . } / $ F ; do [ " $ ( realpath $ D / $ F ) " == " / $ F " ] &amp;&amp; break ; D = $ D /.. ; done ; unset D</summary><category term="mort’s mythopœia"></category></entry><entry><title>Fake papers abound in the literature</title><link href="https://anil.recoil.org/notes/ai-contamination-of-papers" rel="alternate"></link><published>2025-02-04T00:00:00Z</published><updated>2025-02-04T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ai-contamination-of-papers</id><summary type="html">&lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; sent along this &lt;a href="https://theconversation.com/fake-papers-are-contaminating-the-worlds-scientific-literature-fueling-a-corrupt-industry-and-slowing-legitimate-lifesaving-medical-research-246224" target="_blank"&gt;piece in The Conversation&lt;/a&gt; last week about the remarkable number of academic papers that are now AI generated. The numbers of these papers are probably underestimated: These papers are absorbed into the worldwide library of research faster than they can be weeded out. About 119,000 scholarly journal articles and conference papers are published globally every week, or more than 6 million a year. Publishers estimate that, at most journals, about 2% of the papers submitted – but not necessarily published – are likely fake, although this number can be much higher at some publications. -- Frederik Joelving et al, &lt;a href="https://theconversation.com/fake-papers-are-contaminating-the-worlds-scientific-literature-fueling-a-corrupt-industry-and-slowing-legitimate-lifesaving-medical-research-246224" target="_blank"&gt;The Conversation&lt;/a&gt; What caught my eye in this article is their development of the &lt;a href="https://asistdl.onlinelibrary.wiley.com/doi/10.1002/asi.24495" target="_blank"&gt;Problematic Paper Screener&lt;/a&gt; , which the good folks at &lt;a href="https://en.wikipedia.org/wiki/Retraction_Watch" target="_blank"&gt;Retraction Watch&lt;/a&gt; developed. It works with high precision to detect...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Weeknotes: 3rd February 2025</title><link href="https://digitalflapjack.com/weeknotes/2025-02-03/" rel="alternate"></link><published>2025-02-03T09:07:12Z</published><updated>2025-02-03T09:07:12Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/weeknotes/2025-02-03/</id><summary type="html">Last week STAR I finally got time to sit down and catch up with trying to recreate &lt;a href="https://iucn.org/resources/conservation-tool/species-threat-abatement-and-restoration-star-metric" target="_blank"&gt;STAR&lt;/a&gt; , the IUCN's Species Threat Abatement and Restoration metric, which is similar to, but different from, the LIFE metric that I work on. Before Christmas I'd been working with &lt;a href="https://www.researchgate.net/profile/Francesca-Ridley" target="_blank"&gt;Chess Ridley&lt;/a&gt; who maintains and runs the current STAR pipeline for the IUCN, trying to match up my species selection process with hers. Since then I'd found out some more nuances to both the IUCN redlist data and to my ability to write SQL that queries JSON fields in Postgres, and I'm now sitting closer to Chess's results, but not quite there yet: AMPHIBIA Total Chess: 3249 Total Michael: 3260 In Chess data, not in Michael data: 0 In Michael data, not in Chess data: 11 AVES Total Chess: 2180 Total Michael: 2214 In Chess data,...</summary><category term="Digital Flapjack"></category></entry><entry><title>Keyboard</title><link href="https://ryan.freumh.org/keyboard.html" rel="alternate"></link><published>2025-02-03T00:00:00Z</published><updated>2025-02-03T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/keyboard.html</id><summary type="html">Published Mon 3 Feb 2025. Tags: &lt;a href="/technology.html" target="_blank"&gt;technology&lt;/a&gt; . I developed RSI symptom’s at the tail of writing my &lt;a href="https://ryan.freumh.org/papers/2022-mphil-sns.pdf" target="_blank"&gt;MPhil 25dissertation&lt;/a&gt; and started looking for ways to work more ergonomically. As someone who’s often typing in one form or anther 8+ hours a day one obvious aspect to look at was my keyboard. I’m using the &lt;a href="https://www.zsa.io/moonlander" target="_blank"&gt;ZSA Moonlander&lt;/a&gt; as my daily driver which I purchased with my PhD stipend machine budget. It’s an &lt;a href="https://en.wikipedia.org/wiki/Ergonomic_keyboard" target="_blank"&gt;ergonomic&lt;/a&gt; &lt;a href="https://en.wiktionary.org/wiki/ortholinear" target="_blank"&gt;ortholinear&lt;/a&gt; split mechanical keyboard. The ortholinear layout has allowed me to learn how to &lt;a href="https://en.wikipedia.org/wiki/Touch_typing" target="_blank"&gt;touch type&lt;/a&gt; (I could just never get the hang of it on a normal keyboard). Using keyboard-centric editors like &lt;a href="vim.html" target="_blank"&gt;Vim&lt;/a&gt; and &lt;a href="emacs.html" target="_blank"&gt;Emacs&lt;/a&gt; , as well as &lt;a href="./firefox.html#tridactyl" target="_blank"&gt;Firefox Tridactyl&lt;/a&gt; , has helped my reduce mouse usage which had also proved aggravating. I was briefly looking at 3D-printing a custom keyboard, like the &lt;a href="https://github.com/joshreve/dactyl-keyboard" target="_blank"&gt;Dactyl-ManuForm&lt;/a&gt; , but...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Firefox</title><link href="https://ryan.freumh.org/firefox.html" rel="alternate"></link><published>2025-02-03T00:00:00Z</published><updated>2025-02-03T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/firefox.html</id><summary type="html">Published Mon 3 Feb 2025. I use Firefox as my default browser. You can see my configuration in &lt;a href="./nix.html" target="_blank"&gt;Nix&lt;/a&gt; OS &lt;a href="https://github.com/RyanGibb/nixos/blob/ed9ff44afef12350c9e2010cc4e76d6802abb65d/home/gui/default.nix#L90-L159" target="_blank"&gt;here&lt;/a&gt; . Having it in Nix is handy so I don’t have to sign into a Firefox account on a live ISO or new machine install in order to get the environment I’m used to. Tridactyl I use &lt;a href="https://github.com/tridactyl/tridactyl/" target="_blank"&gt;Tridactyl&lt;/a&gt; for many useful Vim-like bindings in Firefox. Similar to Firefox you can see my configuration &lt;a href="https://github.com/RyanGibb/nixos/blob/master/home/gui/tridactylrc" target="_blank"&gt;here&lt;/a&gt; . Some useful bindings are: h j k l scroll f enter ‘hint’ mode, using keystrokes to follow a link F opens a link in a new tab ;w open in a new window ;y copy link v highlights an element of text once here we can use caret mode &lt;F7&gt; to select text yd duplicate tab My custom binding i let’s me copy a link to a &lt;a href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.5" target="_blank"&gt;URL 26fragment&lt;/a&gt; with hint mode; bind i hint -JFc [id] e =&gt; {...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 3 Feb 2025</title><link href="https://ryan.freumh.org/2025-02-03.html" rel="alternate"></link><published>2025-02-03T00:00:00Z</published><updated>2025-02-03T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-02-03.html</id><summary type="html">Previous: &lt;a href="2025-01-27.html" target="_blank"&gt;Mon 27 Jan 2025&lt;/a&gt; Next: &lt;a href="2025-02-10.html" target="_blank"&gt;Mon 10 Feb 2025&lt;/a&gt; Babel I’ve been focusing on our new package manager to rule them all, code name `Babel’, this week. PubGrub opam dependency provider I’m making progress so supporting &lt;a href="https://opam.ocaml.org/" target="_blank"&gt;Opam&lt;/a&gt; ’s full feature set with the &lt;a href="https://pubgrub-rs-guide.pages.dev/" target="_blank"&gt;Rust 27implementation of the PubGrub&lt;/a&gt; version solving algorithm, which we’re aiming to use for a cross-ecosystem solver. &lt;a href="https://github.com/RyanGibb/opam-giga-repository" target="_blank"&gt;Previous 28work&lt;/a&gt; has used the Opam semantics for multiple ecosystems. The PubGrub encoding is quite similar to the `HyperRes’ formalism we defined for a minimal subset of functionality between ecosystems.. DONE I’ve added support for the complicated ordering of &lt;a href="https://opam.ocaml.org/doc/Manual.html#Version-ordering" target="_blank"&gt;opam 29versions&lt;/a&gt; - &lt;a href="https://github.com/RyanGibb/pubgrub-opam/commit/7f941e30f5b6ea11c201e667c2aee6984606bb26" target="_blank"&gt;here&lt;/a&gt; DONE I’ve added an encoding of boolean logic in Opam’s &lt;a href="https://opam.ocaml.org/doc/Manual.html#Package-Formulas" target="_blank"&gt;package 30formula&lt;/a&gt; - &lt;a href="https://github.com/RyanGibb/pubgrub-opam/commit/63f12dd256fac440d0c69a079c324855cbee224c" target="_blank"&gt;here&lt;/a&gt; We support version formula with PubGrub’s Range operations (e.g. union, intersection, etc) We support...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Satellites are getting too good for forest carbon?</title><link href="https://anil.recoil.org/notes/forests-spatial-resolution" rel="alternate"></link><published>2025-02-03T00:00:00Z</published><updated>2025-02-03T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/forests-spatial-resolution</id><summary type="html">There's a &lt;a href="https://www.science.org/doi/10.1126/science.adt6811" target="_blank"&gt;letter in Science&lt;/a&gt; today from a bunch of well known remote sensing researchers that make the unusual point that modern satellite resolution is getting too good to be accurate for forest carbon estimation. Many new satellites can resolve fine features on the landscape, and even some individual trees outside forests, but this resolution (0.3-5m) is too high for mapping forest carbon. Forest carbon has a natural resolution constraint: the size of an individual tree. To create these maps, tree data from the ground are required because there is no direct measure of tree carbon nor any way to accurately divide trees into smaller components from space. [...] Because most carbon in a forest is stored in large trees, map resolutions should at minimum exceed the crown diameter of a typical large...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Emacs</title><link href="https://ryan.freumh.org/emacs.html" rel="alternate"></link><published>2025-02-02T00:00:00Z</published><updated>2025-02-02T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/emacs.html</id><summary type="html">Published Sun 2 Feb 2025. Last update Tue 18 Feb 2025. Tags: &lt;a href="/technology.html" target="_blank"&gt;technology&lt;/a&gt; . I started using Emacs for the &lt;a href="https://www.djcbsoftware.nl/code/mu/mu4e/" target="_blank"&gt;mu4e&lt;/a&gt; mail client after using and liking the &lt;a href="https://www.djcbsoftware.nl/code/mu/" target="_blank"&gt;mu&lt;/a&gt; mail indexer on the command line (read more about my &lt;a href="mail-client.html" target="_blank"&gt;mail client 31setup&lt;/a&gt; ). Similarly, I was using the &lt;a href="https://ledger-cli.org/" target="_blank"&gt;ledger-cli&lt;/a&gt; accounting system, and found the Emacs minor mode to be great. Then I got curious about Emacs &lt;a href="https://orgmode.org/" target="_blank"&gt;Org Mode&lt;/a&gt; and started using it for note taking and task management. Now I’m using Emacs as my primary development environment. I realised that configuring Emacs to my liking would be like second job, which I didn’t have the bandwidth for, so I started using the ‘distribution’ &lt;a href="https://github.com/doomemacs/doomemacs" target="_blank"&gt;Doom Emacs&lt;/a&gt; . It enables Vim bindings everywhere with &lt;a href="https://github.com/emacs-evil/evil" target="_blank"&gt;Evil Mode&lt;/a&gt; which, coming from &lt;a href="vim.html" target="_blank"&gt;Vim&lt;/a&gt; , made it much easier to get up to speed. The Emacs philosophy...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Disentangling carbon credits and offsets with contributions</title><link href="https://anil.recoil.org/notes/carbon-credits-vs-offsets" rel="alternate"></link><published>2025-02-02T00:00:00Z</published><updated>2025-02-02T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/carbon-credits-vs-offsets</id><summary type="html">The terms &lt;a href="https://en.wikipedia.org/wiki/Carbon_offsets_and_credits" target="_blank"&gt;carbon credits and carbon offsets&lt;/a&gt; are often used interchangeably, but are in fact two distinct concepts. I've spent a nice Sunday morning reading up on some &lt;a href="https://ssir.org/articles/entry/forest-contributions-carbon-offsets" target="_blank"&gt;recent articles&lt;/a&gt; that &lt;a href="https://en.wikipedia.org/wiki/Bhaskar_Vira" target="_blank"&gt;Bhaskar Vira&lt;/a&gt; sent me which introduce a third term, known as "carbon contributions" . Rather than this adding confusion, I found it helped me clarify my own thoughts on the matter, which I note down here in draft form. (Update 7th Feb: I've revised this several times after many discussions this week, especially with &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; and &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; , with full list of credits in the end) What are carbon credits and offsets? A carbon credit aims to quantify the net climate benefit resulting an intervention that alters some CO2 emissions that would otherwise have gone into the atmosphere in a business-as-usual counterfactual scenario. While...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>(Neo)Vim</title><link href="https://ryan.freumh.org/vim.html" rel="alternate"></link><published>2025-02-01T00:00:00Z</published><updated>2025-02-01T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/vim.html</id><summary type="html">Published Sat 1 Feb 2025. Last update Tue 18 Feb 2025. Tags: &lt;a href="/technology.html" target="_blank"&gt;technology&lt;/a&gt; . I used to use &lt;a href="https://neovim.io/" target="_blank"&gt;Neovim&lt;/a&gt; as my main development environment. I like the fact that it’s small and fast, and that I can use it over an SSH connection. Neovim is a fork of &lt;a href="https://www.vim.org/" target="_blank"&gt;Vim&lt;/a&gt; that I use for the Lua configuration and built-in Language Server Protocol support. However, I mainly use &lt;a href="emacs.html" target="_blank"&gt;Emacs&lt;/a&gt; these days. I extensively use &lt;a href="https://github.com/emacs-evil/evil" target="_blank"&gt;evil&lt;/a&gt; (a Vi(m) compatibility layer for Emacs), so I haven’t really stopped using Vim but instead just use it inside a big Lisp machine. You can find my configuration in my &lt;a href="./nix.html" target="_blank"&gt;Nix&lt;/a&gt; OS repository &lt;a href="https://github.com/RyanGibb/nixos/tree/master/home/nvim" target="_blank"&gt;here&lt;/a&gt; . Below are my working notes on learning and using (Neo)Vim. References: :help usr_toc.txt :help index ZZ / ZQ exit with / without saving basic motions h j k l i I a A 0 $ w e b W E B...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Using computational SSDs for vector databases</title><link href="https://anil.recoil.org/ideas/computational-storage-for-vector-dbs" rel="alternate"></link><published>2025-02-01T00:00:00Z</published><updated>2025-02-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/computational-storage-for-vector-dbs</id><summary type="html">Using computational SSDs for vector databases This is an idea proposed in 2025 as a Cambridge Computer Science Part III or MPhil project, and is available for being worked on. It may be co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . Large &lt;a href="https://en.wikipedia.org/wiki/Foundation_model" target="_blank"&gt;pre-trained models&lt;/a&gt; can be used to embed media/documents into concise vector representations with the property that vectors that are "close" to each other are semantically related. &lt;a href="https://en.wikipedia.org/wiki/Nearest_neighbor_search" target="_blank"&gt;ANN&lt;/a&gt; (Approximate Nearest Neighbour) search on these embeddings is used heavily already in &lt;a href="https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/" target="_blank"&gt;RAG&lt;/a&gt; systems for LLMs or search-by-example for satellite imagery. Right now, most ANN databases almost exclusively use memory-resident indexes to accelerate this searching. This is a showstopper for larger datasets, such as the terabytes of PDFs we have for our &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;big evidence synthesis&lt;/a&gt; project, each of which...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Deepdive into Deepseek advances</title><link href="https://anil.recoil.org/notes/deepseek-r1-advances" rel="alternate"></link><published>2025-02-01T00:00:00Z</published><updated>2025-02-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/deepseek-r1-advances</id><summary type="html">&lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; posted a link to this excellent deepdive by &lt;a href="https://www.linkedin.com/in/prasadraje/" target="_blank"&gt;Prasad Raje&lt;/a&gt; of Udemy into the advances that &lt;a href="https://deepseek.com" target="_blank"&gt;DeepSeek&lt;/a&gt; R1 has made from a perspective of the core technology. Multi-headed Latent Attention (MLA). In the famous Google " &lt;a href="https://arxiv.org/abs/1706.03762" target="_blank"&gt;Attention is all you need&lt;/a&gt; " paper, the attention block is responsible for a lot of the magic of LLMs but is also compute heavy [...] Deepseek has innovated here with Multi-headed latent attention - which essentially reduces the size of matrix multiplication applied to generate the K,V vectors that are inputs into the attention block. Combined with KV Caching, this reduces the memory needs [...] Mixture of Experts (MoE). The key idea here is that instead of feeding each token through one massive &lt;a href="https://en.wikipedia.org/wiki/Feedforward_neural_network" target="_blank"&gt;FFN&lt;/a&gt; , break down the single FFN into a number of smaller FFNs and route each token...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Affordable digitisation of insect collections using photogrammetry</title><link href="https://anil.recoil.org/ideas/digitisation-of-insects" rel="alternate"></link><published>2025-02-01T00:00:00Z</published><updated>2025-02-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/digitisation-of-insects</id><summary type="html">Affordable digitisation of insect collections using photogrammetry This is an idea proposed in 2025 as a Cambridge Computer Science Part III or MPhil project, and is available for being worked on. It may be co-supervised with &lt;a href="https://www.cambridgephilosophicalsociety.org/funding/henslow-fellows/dr-tiffany-ki" target="_blank"&gt;Tiffany Ki&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/dr-edgar-turner" target="_blank"&gt;Edgar Turner&lt;/a&gt; . Insects dominate animal biodiversity and are sometimes called " &lt;a href="https://faculty.washington.edu/timbillo/Readings%20and%20documents/ABRIDGED%20READINGS%20for%20PERU/Wilson_1987_Little_things_that_run.pdf" target="_blank"&gt;the little things that run the world&lt;/a&gt; ". They play a disproportionate role in ecosystem functioning, are highly sensitive to environmental change and often considered to be early indicators of responses in other taxa. There is widespread concern about global insect declines &lt;a href="https://anil.recoil.org/#fn-1" target="_blank"&gt;[1]&lt;/a&gt; yet the evidence behind such declines is highly biassed towards the Global North and much is drawn from short-term biodiversity datasets &lt;a href="https://anil.recoil.org/#fn-2" target="_blank"&gt;[2]&lt;/a&gt; &lt;a href="https://anil.recoil.org/#fn-3" target="_blank"&gt;[3]&lt;/a&gt; . The &lt;a href="https://www.museum.zoo.cam.ac.uk/insects" target="_blank"&gt;Insect Collection&lt;/a&gt; at the University Museum of Zoology, Cambridge...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>How to publish custom Homebrew taps for OCaml</title><link href="https://anil.recoil.org/notes/custom-homebrew-taps" rel="alternate"></link><published>2025-01-31T00:00:00Z</published><updated>2025-01-31T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/custom-homebrew-taps</id><summary type="html">Now that I've &lt;a href="https://anil.recoil.org/notes/bushel-lives" target="_blank"&gt;switched&lt;/a&gt; to a new website, I'm working on open-sourcing its components. I've got a lot of small OCaml scripts that are all work-in-progress, and so not quite suitable to be published to the &lt;a href="https://github.com/ocaml/opam-repository" target="_blank"&gt;central opam-repository&lt;/a&gt; but I still need be able to run them conveniently on my own &lt;a href="https://anil.recoil.org/" target="_blank"&gt;self-hosted&lt;/a&gt; infrastructure. I mainly use a variety of macOS and Linux hosts &lt;a href="https://anil.recoil.org/#fn-1" target="_blank"&gt;[1]&lt;/a&gt; and I want a workflow as simple as " brew install avsm/ocaml/srcsetter " and have it install a working binary version of my CLI utility. In this case, it's &lt;a href="https://github.com/avsm/srcsetter" target="_blank"&gt;srcsetter&lt;/a&gt; , a simple tool I knocked up to generate the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Responsive_images" target="_blank"&gt;responsive images&lt;/a&gt; on this website. Luckily, Homebrew has made this really easy for us! They have a &lt;a href="https://docs.brew.sh/BrewTestBot" target="_blank"&gt;BrewTestBot&lt;/a&gt; that integrates with GitHub Actions to automate the compilation of binary packages for us, all from a convenient PR-like...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>PhD viva, UK style</title><link href="https://mort.io/blog/phd-viva/" rel="alternate"></link><published>2025-01-31T00:00:00Z</published><updated>2025-01-31T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/phd-viva/</id><summary type="html">Having recently, happily, had several PhD students completing in short order, I’ve been approaching external PhD examiners. Occasionally I find myself asking someone who’s not done any / many in the UK previously. As our system – as all such systems! – is a bit different to those in other parts of the world, I’ve written a few notes on a couple of occasions about what to expect. So I figured I might as well publish them. What follows is my impression / understanding based on experience here in the &lt;a href="https://www.cst.cam.ac.uk/" target="_blank"&gt;Department of Computer Science &amp; Technology&lt;/a&gt; , &lt;a href="https://www.cam.ac.uk/" target="_blank"&gt;Cambridge University&lt;/a&gt; ca. 2025. Your Mileage May Vary anywhen and anywhere else, including anywhere else in the UK – check local regulations to be sure. In terms of process, the system here is that candidates submit their complete dissertation and then undergo a “viva voce” (oral examination)....</summary><category term="mort’s mythopœia"></category></entry><entry><title>Position paper on scientifically credible carbon credits</title><link href="https://anil.recoil.org/notes/credible-credit-principles" rel="alternate"></link><published>2025-01-30T00:00:00Z</published><updated>2025-01-30T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/credible-credit-principles</id><summary type="html">My colleagues &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; and &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; lead the publication of a comprehensive &lt;a href="https://www.cambridge.org/engage/coe/article-details/679385946dde43c9082f7009" target="_blank"&gt;report&lt;/a&gt; of the steps the voluntary carbon market needs to take to restore its scientific credibility, with input from many of us in &lt;a href="https://anil.recoil.org/projects/4c" target="_blank"&gt;4C&lt;/a&gt; and beyond. establishing common standards for carbon quantification and accounting, to cover additionality, leakage and permanence. avoiding perverse incentives and align the motivations of all stakeholders with high-integrity outcomes. [...] issuing all carbon credits based on trusted primary observations. making all the data needed to reproduce carbon calculations available in standard file formats. [...] reporting social and biodiversity dimensions of projects separately from carbon calculations. integrating DMRV methods into carbon and biodiversity accounting...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Arise Bushel, my sixth generation oxidised website</title><link href="https://anil.recoil.org/notes/bushel-lives" rel="alternate"></link><published>2025-01-29T00:00:00Z</published><updated>2025-01-29T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/bushel-lives</id><summary type="html">This website has been through quite a few iterations over the years. The first version in 1998 was written in Perl and hosted on &lt;a href="https://anil.recoil.org/" target="_blank"&gt;OpenBSD&lt;/a&gt; ; the second was rewritten in 2000 when I &lt;a href="https://anil.recoil.org/notes/commit-access-to-php" target="_blank"&gt;got commit access to PHP&lt;/a&gt; ; the third rewrite became a hybrid OCaml/PHP/Perl special in 2004 in &lt;a href="https://en.wikipedia.org/wiki/Blosxom" target="_blank"&gt;Blosxom&lt;/a&gt; ; then the forth rewrite around 2013 got turned into a &lt;a href="https://anil.recoil.org/projects/unikernels" target="_blank"&gt;unikernel&lt;/a&gt; in MirageOS; then the &lt;a href="https://web.archive.org/web/20220118200046/https://anil.recoil.org/" target="_blank"&gt;fifth&lt;/a&gt; in 2019 then transitioned to an OCaml static site generator hosted on a prerelease &lt;a href="https://github.com/avsm/eeww" target="_blank"&gt;multicore OCaml webserver&lt;/a&gt; . So the sixth generation now needs something to continue the grand &lt;a href="https://en.wikipedia.org/wiki/Rube_Goldberg_machine" target="_blank"&gt;Rube Goldberg&lt;/a&gt; tradition of helping me learn the latest and greatest in systems technology. And so here it is! The site is now written in a bleeding-edge unreleased variant of OCaml with extensions based around &lt;a href="https://blog.janestreet.com/icfp-2024-index/" target="_blank"&gt;Rust-like type system features&lt;/a&gt; activated, including rather exciting...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>AT Protocol and an IR for Wikis</title><link href="https://patrick.sirref.org/weekly-2025-01-27/" rel="alternate"></link><published>2025-01-27T00:00:00Z</published><updated>2025-01-27T00:00:00Z</updated><author><name>PatrickF</name></author><id>https://patrick.sirref.org/weekly-2025-01-27/</id><summary type="html">AT Protocol This week I've been diving into the &lt;a href="https://atproto.com/" target="_blank"&gt;AT Protocol&lt;/a&gt; . The Authenticated Transfer Protocol, aka atproto, is a decentralized protocol for large-scale social web applications. The protocol could be a candidate for the glue that holds together a distributed, computational wiki network. The protocol, it seems, is very similar to &lt;a href="https://patrick.sirref.org/ipfs/" target="_blank"&gt;IPFS&lt;/a&gt; . Thankfully, a few years ago, I was working on building out a suite of OCaml libraries for working with &lt;a href="https://patrick.sirref.org/ipfs/" target="_blank"&gt;IPFS&lt;/a&gt; . For example, &lt;a href="https://github.com/patricoferris/ocaml-cid" target="_blank"&gt;ocaml-cid&lt;/a&gt; , self-describing content-addressed identifiers. # let s = " zb2rhe5P4gXftAwvA4eXQ5HJwsER2owDyS9sKaQRRVQPn93bA " ; ; val s : string = " zb2rhe5P4gXftAwvA4eXQ5HJwsER2owDyS9sKaQRRVQPn93bA " # let cid = Cid . of_string s |&gt; Result . get_ok ; ; val cid : Cid . t = &lt; abstr &gt; # Cid . pp_human Format . std_formatter...</summary><category term="Weeklies"></category></entry><entry><title>Mon 27 Jan 2025</title><link href="https://ryan.freumh.org/2025-01-27.html" rel="alternate"></link><published>2025-01-27T00:00:00Z</published><updated>2025-01-27T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-01-27.html</id><summary type="html">Previous: &lt;a href="2025-01-20.html" target="_blank"&gt;Mon 20 Jan 2025&lt;/a&gt; Next: &lt;a href="2025-02-03.html" target="_blank"&gt;Mon 3 Feb 2025&lt;/a&gt; babel DONE &lt;a href="https://github.com/RyanGibb/hyperres-pubgrub/tree/main/multiversion-features" target="_blank"&gt;multi-version 32optional dependencies&lt;/a&gt; for PubGrub Which as far as I can tell hasn’t been done before. PubGrub opam dependency provider DONE json representation of opam repositories using &lt;a href="https://github.com/tweag/opam2json" target="_blank"&gt;opam2json&lt;/a&gt; DONE parse json representation to rust using &lt;a href="https://serde.rs/" target="_blank"&gt;serde&lt;/a&gt; TODO minimal example DONE &lt;a href="https://github.com/RyanGibb/pubgrub-opam/blob/main/src/opam_version.rs" target="_blank"&gt;opam_version.rs&lt;/a&gt; done and MVP with integer versions, but the full ordering is complicated DONE &lt;a href="https://github.com/RyanGibb/pubgrub-opam/blob/main/src/index.rs" target="_blank"&gt;index.rs&lt;/a&gt; DONE &lt;a href="https://github.com/RyanGibb/pubgrub-opam/blob/main/src/opam_deps.rs" target="_blank"&gt;opam_deps.rs&lt;/a&gt; DONE &lt;a href="https://github.com/RyanGibb/pubgrub-opam/blob/main/src/main.rs" target="_blank"&gt;main.rs&lt;/a&gt; TODO proper opam version parsing (a la Debian) &lt;a href="https://opam.ocaml.org/doc/Manual.html#Version-ordering" target="_blank"&gt;https://opam.ocaml.org/doc/Manual.html#Version-ordering&lt;/a&gt; TODO conflicts TODO boolean logic (package formula) TODO features (optional dependencies) TODO parse repo on the fly in the dependency provider TODO create babel-repository and babel-solver TODO explore error reporting in these exotic encodings what is the research advance here? tool to solve across...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Fontsizing in LaTeX</title><link href="https://mort.io/blog/fontsizing/" rel="alternate"></link><published>2025-01-24T00:00:00Z</published><updated>2025-01-24T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/fontsizing/</id><summary type="html">I recently had colleagues hit an issue that I have hit myself in the past, and so I finally decided to figure out a fix. Specifically, when building EPSRC research proposals in LaTeX, getting a complaint that the font size is non compliant – it should be 11pt Arial, but the standard LaTeX options generate something slightly smaller, with Adobe Acrobat and Microsoft tools both reporting a size of 10.45pt or so. One proposed solution was the to add the following in the preamble: \ usepackage { anyfontsize } \ AtBeginDocument { \ fontsize { 11bp } { 13.35bp } \ selectfont } …but that did not work unfortunately. After some poking about and staring at output and searching the interwebs, it appears that this was triggered, at least for me, by the &lt;a href="https://ctan.org/pkg/fontspec" target="_blank"&gt;fontspec&lt;/a&gt; package that was being used to sort...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Updated preprint on LLMs for evidence-based decision support</title><link href="https://anil.recoil.org/news/2024-ce-llm-2" rel="alternate"></link><published>2025-01-23T00:00:00Z</published><updated>2025-01-23T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-ce-llm-2</id><summary type="html">We have just updated our &lt;a href="https://anil.recoil.org/papers/2024-ce-llm" target="_blank"&gt;preprint&lt;/a&gt; on using LLMs for evidence decision support with more evaluation results and corrections from peer review. Our findings suggest that, with careful domain-specific design, LLMs could potentially be powerful tools for enabling expert-level use of evidence syntheses and databases. However, general LLMs used "out-of-the-box" are likely to perform poorly and misinform decision-makers. By establishing that LLMs exhibit comparable performance with human synthesis experts on providing restricted responses to queries of evidence syntheses and databases, future work can build on our approach to quantify LLM performance in providing open-ended responses. See also the fantastic &lt;a href="https://watch.eeg.cl.cam.ac.uk/w/ijC1E36q7fn2qwxs7opSJq" target="_blank"&gt;EEG seminar talk&lt;/a&gt; that the student group who worked on this over the summer gave towards the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Forester, ICFP, Wikis</title><link href="https://patrick.sirref.org/weekly-2025-01-20/" rel="alternate"></link><published>2025-01-20T00:00:00Z</published><updated>2025-01-20T00:00:00Z</updated><author><name>PatrickF</name></author><id>https://patrick.sirref.org/weekly-2025-01-20/</id><summary type="html">This week was my first full week back from the break and I found it challenging trying to get back into what I had been working on previously. ICFP Papers In conversation with &lt;a href="https://patrick.sirref.org/anilmadhavapeddy/" target="_blank"&gt;Anil&lt;/a&gt; , we looked at options for submitting a paper to ICFP. I wrote up some notes on some options &lt;a href="https://patrick.sirref.org/icfp25-ideas/" target="_blank"&gt;we discussed&lt;/a&gt; . Forester I spent some time this week converting this website to using &lt;a href="https://www.jonmsterling.com/foreign-forester-jms-005P.xml" target="_blank"&gt;Forester&lt;/a&gt; . I'm not a huge fan of the syntax, especially as a lot of my site's content was already in markdown. So I wrote a markdown frontend to forester which is &lt;a href="https://github.com/patricoferris/ocaml-forester/tree/markdown" target="_blank"&gt;available on Github&lt;/a&gt; . The markdown frontend integrates very nicely and only a few changes were needed in the core logic of &lt;a href="https://patrick.sirref.org/forester/" target="_blank"&gt;Forester&lt;/a&gt; itself. Additionally, for any features not directly supported in markdown there is an escape hatch using code blocks such as: ```forester...</summary><category term="Weeklies"></category></entry><entry><title>Mon 20 Jan 2025</title><link href="https://ryan.freumh.org/2025-01-20.html" rel="alternate"></link><published>2025-01-20T00:00:00Z</published><updated>2025-01-20T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-01-20.html</id><summary type="html">Previous: &lt;a href="2025-01-13.html" target="_blank"&gt;Mon 13 Jan 2025&lt;/a&gt; Next: &lt;a href="2025-01-27.html" target="_blank"&gt;Mon 27 Jan 2025&lt;/a&gt; babel DONE PubGrub multi-version optional dependencies TODO reread &lt;a href="2024-splash-hyperres-review.html" target="_blank"&gt;file:2024-splash-hyperres-review.md&lt;/a&gt; TODO spatial DSL paragraphs for Roy met with Roy and gave him the gist bidirectional lens uv PubGrub index uv toolchains - special cross compiling get rid of conflicts name fusing - 1 to n home url metadata source archive many to many hashes download them all – find a backdoor explore and splunk keep eyes open demons lurking in this Spatial Name System Sensor Networks TODO try capnproto esp32 if that doesn’t work try ocaml-esp32 on ocaml 4 if that doesn’t work try ocaml 5 for risc-v Spatial DLS ICFP functional perl TODO read &lt;a href="#ref-elliottFunctionalReactiveAnimation1997" target="_blank"&gt;[1]&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/Functional_reactive_programming" target="_blank"&gt;https://en.wikipedia.org/wiki/Functional_reactive_programming&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/Reactive_programming" target="_blank"&gt;https://en.wikipedia.org/wiki/Reactive_programming&lt;/a&gt; TODO create a spatial DSL afternoon write out a DSL cotrol lights DSL capnroto vs DNS dsl walk lights effects capnproto...</summary><category term="ryan.freumh.org"></category></entry><entry><title>`just` LaTeX it!</title><link href="https://mort.io/blog/just-latex/" rel="alternate"></link><published>2025-01-18T00:00:00Z</published><updated>2025-01-18T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/just-latex/</id><summary type="html">I have recently become a fan of &lt;a href="https://just.systems/" target="_blank"&gt;just&lt;/a&gt; as a replacement for the venerable &lt;a href="https://www.gnu.org/software/make/manual/make.html" target="_blank"&gt;make&lt;/a&gt; . I find that nowadays I rarely need the built-in dependency rules that &lt;a href="https://www.gnu.org/software/make/manual/make.html" target="_blank"&gt;make&lt;/a&gt; provides. Perhaps more radically, I also rarely need to write my own as the prevelance of format-specific build tools such as &lt;a href="https://doc.rust-lang.org/stable/cargo/" target="_blank"&gt;cargo&lt;/a&gt; , &lt;a href="https://docs.astral.sh/uv/" target="_blank"&gt;uv&lt;/a&gt; , &lt;a href="https://ctan.org/pkg/latexmk/" target="_blank"&gt;latexmk&lt;/a&gt; and the like mean I don’t need to write my own either. Recently, while writing references and then helping out get submissions for &lt;a href="https://www.cl.cam.ac.uk/events/rossfest/" target="_blank"&gt;Rossfest&lt;/a&gt; consistently formatted and building cleanly, I found myself extending my various &lt;a href="https://just.systems/" target="_blank"&gt;just&lt;/a&gt; targets for &lt;a href="https://www.latex-project.org/" target="_blank"&gt;LaTeX&lt;/a&gt; . So I thought I’d document them here. I always begin my Justfile with the apparently idiomatic “just show me the targets and associated help text” target: _default : @ just --list This seems considerably...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Mon 13 Jan 2025</title><link href="https://ryan.freumh.org/2025-01-13.html" rel="alternate"></link><published>2025-01-13T00:00:00Z</published><updated>2025-01-13T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-01-13.html</id><summary type="html">Previous: &lt;a href="2025-01-06.html" target="_blank"&gt;Mon 6 Jan 2025&lt;/a&gt; Next: &lt;a href="2025-01-20.html" target="_blank"&gt;Mon 20 Jan 2025&lt;/a&gt; babel TODO opam-repo maps [2/3] DONE &lt;a href="https://github.com/mtelvers/pacman2opam/" target="_blank"&gt;https://github.com/mtelvers/pacman2opam/&lt;/a&gt; it seems like firefox doesn’t install _build/default/bin/main.exe --repo /dev/shm/packages pacman-firefox [ERROR] No solution Can't find all required versions. Selected: pacman-acl.2.3.2-1 pacman-adobe-source-code-pro-fonts.2.042u+1.062i+1.026vf-2 pacman-adwaita-cursors.47.0-1 pacman-adwaita-icon-theme.47.0-1 pacman-adwaita-icon-theme-legacy.46.2-3 pacman-alsa-lib.1.2.13-1 pacman-alsa-topology-conf.1.2.5.1-4 pacman-alsa-ucm-conf.1.2.13-2 pacman-aom.3.11.0-1 pacman-at-spi2-core.2.54.1-1 pacman-attr.2.5.2-1 pacman-audit.4.0.2-3 pacman-avahi.1_0.8+r194+g3f79789-3 pacman-bash.5.2.037-1 pacman-brotli.1.1.0-3 pacman-bzip2.1.0.8-6 pacman-ca-certificates.20240618-1 pacman-ca-certificates-mozilla.3.107-1...</summary><category term="ryan.freumh.org"></category></entry><entry><title>LIFE metric published in Royal Society Phil Trans B</title><link href="https://anil.recoil.org/news/2024-life-3" rel="alternate"></link><published>2025-01-09T00:00:00Z</published><updated>2025-01-09T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-life-3</id><summary type="html">After some years of hard work, our &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;Mapping LIFE on Earth&lt;/a&gt; biodiversity metric was published today in a &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2023.0327" target="_blank"&gt;special issue&lt;/a&gt; of the Royal Society Philosophical Transactions B! The idea behind LIFE is that although human-driven habitat loss is known to be the greatest cause of the &lt;a href="https://www.unep.org/facts-about-nature-crisis" target="_blank"&gt;biodiversity crisis&lt;/a&gt; , we do not yet have robust spatially explicit metrics that quantify the relative impacts of human actions on species extinctions. And that's what LIFE provides: a way to compare the relative impacts of some landuse anywhere in the world, in a manner that is globally applicable. [… &lt;a href="https://anil.recoil.org/news/2024-life-3" target="_blank"&gt;409 words&lt;/a&gt; ] &lt;a href="https://www.conservation.cam.ac.uk/staff/dr-alison-eyres" target="_blank"&gt;Alison Eyres&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball" target="_blank"&gt;Thomas Ball&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/andy-arnell/" target="_blank"&gt;Andy Arnell&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/daniele-baisero/" target="_blank"&gt;Daniele Baisero&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/paz-duran/" target="_blank"&gt;América Paz Durán&lt;/a&gt; , &lt;a href="https://www.york.ac.uk/sei/staff/jonathan-green/" target="_blank"&gt;Jonathan Green&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/rhys-green" target="_blank"&gt;Rhys Green&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; . Journal paper in &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2023.0327" target="_blank"&gt;Philosophical Transactions of the Royal Society&lt;/a&gt; (vol 380 issue 1917). &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2023.0327" target="_blank"&gt;URL&lt;/a&gt;...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 6 Jan 2025</title><link href="https://ryan.freumh.org/2025-01-06.html" rel="alternate"></link><published>2025-01-06T00:00:00Z</published><updated>2025-01-06T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2025-01-06.html</id><summary type="html">Previous: &lt;a href="2024-12-30.html" target="_blank"&gt;Mon 30 Dec 2024&lt;/a&gt; Next: &lt;a href="2025-01-13.html" target="_blank"&gt;Mon 13 Jan 2025&lt;/a&gt; STRT read PubGrub docs &lt;a href="https://github.com/dart-lang/pub/blob/master/doc/solver.md" target="_blank"&gt;https://github.com/dart-lang/pub/blob/master/doc/solver.md&lt;/a&gt; is this actually being used for cargo? &lt;a href="https://rust-lang.zulipchat.com/#narrow/channel/260232-t-cargo.2FPubGrub/topic/feature.20resolution" target="_blank"&gt;feature 33resolution&lt;/a&gt; ah, &lt;a href="https://github.com/astral-sh/uv" target="_blank"&gt;uv&lt;/a&gt; TODO read &lt;a href="#ref-cabreraSelfsustainingSoftwareSystems2024" target="_blank"&gt;[1]&lt;/a&gt; [1] C. Cabrera, A. Paleyes, and N. D. Lawrence, “Self-sustaining Software Systems ( S4 ): Towards Improved Interpretability and Adaptation ,” Jan. 21, 2024. [Online]. Available: &lt;a href="http://arxiv.org/abs/2401.11370" target="_blank"&gt;http://arxiv.org/abs/2401.11370&lt;/a&gt; . [Accessed: Jan. 15, 2025]</summary><category term="ryan.freumh.org"></category></entry><entry><title>Introducing `bibtox`</title><link href="https://mort.io/blog/bibtox/" rel="alternate"></link><published>2025-01-03T00:00:00Z</published><updated>2025-01-03T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/bibtox/</id><summary type="html">After some time using various tools and scripts to format and sort my files of BibTeX/BibLaTeX entries, I finally gave up back in March and &lt;a href="https://github.com/mor1/bibtox" target="_blank"&gt;wrote one myself 34– bibtox&lt;/a&gt; . This replaced some very nasty combination of server-side &lt;a href="https://github.com/mor1/bibtox/blob/83eda34bc9e79bd5251b1ae9623b5e905532c599/bib2json.py" target="_blank"&gt;Python&lt;/a&gt; and in-page &lt;a href="https://github.com/mor1/bibtox/blob/83eda34bc9e79bd5251b1ae9623b5e905532c599/papers.coffee" target="_blank"&gt;CoffeeScript&lt;/a&gt; , plus a third-party tool &lt;a href="https://github.com/backtracking/bibtex2html" target="_blank"&gt;bib2bib&lt;/a&gt; I would run on an ad hoc basis. Per the &lt;a href="https://github.com/mor1/bibtox/blob/main/README.md" target="_blank"&gt;README&lt;/a&gt; , this processes either a stream of entries on stdin or a set of files arranged into sections specified by a simple configuration file. It outputs sorted or unsorted, either as canonicalised entries or marked up HTML. And it means that, hopefully, finally, my list of publications on this site is consistently formatted and sorted. Completeness is, of course, a process rather than a state so achieving that is left for other times and places. &lt;a href="https://github.com/mor1/bibtox/issues" target="_blank"&gt;Issues&lt;/a&gt; or...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Mon 30 Dec 2024</title><link href="https://ryan.freumh.org/2024-12-30.html" rel="alternate"></link><published>2024-12-30T00:00:00Z</published><updated>2024-12-30T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-12-30.html</id><summary type="html">Previous: &lt;a href="2024-12-16.html" target="_blank"&gt;Mon 16 Dec 2024&lt;/a&gt; Next: &lt;a href="2025-01-06.html" target="_blank"&gt;Mon 6 Jan 2025&lt;/a&gt; TODO Spatial Name System camera traps on 4g network no local connectivity what if we could resolve our location to a domain which we could resolve to link local addresses? naming discoverability</summary><category term="ryan.freumh.org"></category></entry><entry><title>Retreat from TUM</title><link href="https://mort.io/blog/tum-retreat/" rel="alternate"></link><published>2024-12-18T00:00:00Z</published><updated>2024-12-18T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/tum-retreat/</id><summary type="html">Ok, ok, I exaggerate – it’s not really that far. But any time I have to set the alarm for 02.30, it feels like it’s a long long way away! &lt;a href="https://www.ce.cit.tum.de/cm/research-group/" target="_blank"&gt;TU Munchen&lt;/a&gt; host an &lt;a href="https://www.ce.cit.tum.de/cm/events/mir3/" target="_blank"&gt;annual 35retreat&lt;/a&gt; , and thanks to &lt;a href="https://www.ce.cit.tum.de/cm/research-group/joerg-ott/" target="_blank"&gt;Prof. Joerg 36Ott&lt;/a&gt; I was invited this year for the first time. It’s held in TUM’s &lt;a href="https://www.raitenhaslach.tum.de/en/raitenhaslach/home/" target="_blank"&gt;Retreat Centre at 37Raitenhaslach&lt;/a&gt; , originally a Cistercian monastery which is a lovely location except that it’s a bus ride from the hotel used and a bus and three trains from the nearest airport – which is, mildly confusingly, &lt;a href="https://www.salzburg-airport.com/en/" target="_blank"&gt;Salzburg&lt;/a&gt; not &lt;a href="https://www.munich-airport.com/" target="_blank"&gt;Munich&lt;/a&gt; . The latter point made me assume that there would be good directions via public transport from Salzburg, but that turned out not to be the case. And as Google Maps is, at best, patchy in terms of public transport coverage in this part of the world – it doesn’t know about all the buses at least – I thought...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Mon 16 Dec 2024</title><link href="https://ryan.freumh.org/2024-12-16.html" rel="alternate"></link><published>2024-12-16T00:00:00Z</published><updated>2024-12-16T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-12-16.html</id><summary type="html">Previous: &lt;a href="2024-12-02.html" target="_blank"&gt;Mon 2 Dec 2024&lt;/a&gt; Next: &lt;a href="2024-12-30.html" target="_blank"&gt;Mon 30 Dec 2024&lt;/a&gt; babel opam-repo maps TODO hyperres needs a file format TODO get a JSON format, including version formula opam formulas variables as packages boolean algebra represeted with disjuntions etc I’m wrestling with the problem of expressivity of package managers. What is representable in a SAT problem is consistent across package managers, but there are varying degrees of pre-processing in DSL in different ecosystems. For example, Debian has a pretty simple language for expressing dependency constraints, but Nix has the Nix DSL, opam has filters and variables. These are basically a way of expressing the constraint language with various degrees of pre-processing. It’s fine to unify the decision problem representations, but how can we unify the different...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Optimising Sustainable Energy with Functional Programming</title><link href="https://watch.eeg.cl.cam.ac.uk/w/feDup1JutmgQkC6ipGF9r5" rel="alternate"></link><published>2024-12-13T18:23:12Z</published><updated>2024-12-13T18:23:12Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/feDup1JutmgQkC6ipGF9r5</id><summary type="html">Abstract: This talk describes some results from a collaboration between Computer Science, Physics, and Climate Impact Research on theories and tools for performance optimisation of strongly coupled physical systems with a large parameter space. The first part of the talk discusses computing optimal policies; we have used these techniques for climate decisions and for fusion energy designs. The second part of the talk will focus on one particularly important concept: the Pareto-front, which mathematically captures the trade-offs between two (or more) conflicting objectives. The core object of study is an expensive black-box function computing multiple objectives, for which we approximate the Pareto front using adaptive mesh refinement. Bio: Patrik Jansson is a professor in the Computer...</summary><category term="EEG Seminars"></category></entry><entry><title>The Partially Dynamic Web</title><link href="https://digitalflapjack.com/blog/the-partially-dynamic-web/" rel="alternate"></link><published>2024-12-08T11:59:48Z</published><updated>2024-12-08T11:59:48Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/the-partially-dynamic-web/</id><summary type="html">Background I have three websites (this one, my &lt;a href="https://mynameismwd.org/" target="_blank"&gt;personal site&lt;/a&gt; , and one for &lt;a href="https://mwdales-guitars.uk/" target="_blank"&gt;my luthiery endeavours&lt;/a&gt; ), and despite each starting out with a different technology stack, for the last few years I’d migrated them all to the &lt;a href="https://gohugo.io" target="_blank"&gt;Hugo static site generator&lt;/a&gt; , as a way of making it easier for me to mess around with. Without a fixed database, I could more easily readily structure the content as I wanted it, I had more freedom over templating, and ultimately it’s less resource intensive to compile the site occasionally and just serve static files than keep dynamic infrastructure running for what is a set of low traffic websites. At least in theory, we’ll come back to this last point. Like most static site generators, Hugo uses a system called &lt;a href="https://gohugo.io/content-management/front-matter/" target="_blank"&gt;Front matter&lt;/a&gt; , where you store each page as a &lt;a href="https://en.wikipedia.org/wiki/Markdown" target="_blank"&gt;markdown file&lt;/a&gt; of content, and some &lt;a href="https://en.wikipedia.org/wiki/YAML" target="_blank"&gt;YAML&lt;/a&gt; at the...</summary><category term="Digital Flapjack"></category></entry><entry><title>Smart Grid Trust Assessment</title><link href="https://watch.eeg.cl.cam.ac.uk/w/uFyApvuvALLv66D7x36FEr" rel="alternate"></link><published>2024-12-06T16:40:43Z</published><updated>2024-12-06T16:40:43Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/uFyApvuvALLv66D7x36FEr</id><summary type="html">Abstract: Energy systems are highly complex. State determination and detection of anomalies, faults or even attacks are only possible to a limited extent with traditional approaches. This talk will investigate how such systems can be planned and operated in the future in the area of conflict between high automation and trust by human operators. Bio: Sebastian Lehnhoff is a Full Professor of Energy Informatics at the University of Oldenburg. He received his doctorate at the TU Dortmund University in 2009. Prof. Lehnhoff is chairman of the board of the OFFIS Institute for Information Technology and speaker of its Energy R&amp;D division. He is a board member of the section „Energy Informatics“ within the German Informatics Society (GI) as well as an active member of numerous committees and...</summary><category term="EEG Seminars"></category></entry><entry><title>Horizon scan on AI and conservation published</title><link href="https://anil.recoil.org/news/2024-ai-conhorizon-1" rel="alternate"></link><published>2024-12-05T00:00:00Z</published><updated>2024-12-05T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-ai-conhorizon-1</id><summary type="html">Back in July 2024, a large group of conservation and computer scientists got together in the &lt;a href="https://conservation.cam.ac.uk" target="_blank"&gt;CCI&lt;/a&gt; to prioritise the storm of AI-related projects that have been kicking off around the world. Our key goal was to harness AI to accelerate the positive impact of conservation efforts, while minimising harm caused through either the direct or indirect use of AI technologies. The first horizon scan resulting from this has just been published in Trends in Ecology and Evolution. If you're looking for a gentle introduction to some of the terms in AI from a non-experts perspective, the first section does a good job of defining a glossary as well. [… &lt;a href="https://anil.recoil.org/news/2024-ai-conhorizon-1" target="_blank"&gt;118 words&lt;/a&gt; ] &lt;a href="https://samreynolds.org/" target="_blank"&gt;Sam Reynolds&lt;/a&gt; , &lt;a href="https://beerys.github.io" target="_blank"&gt;Sara Beery&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/professor-neil-burgess/" target="_blank"&gt;Neil Burgess&lt;/a&gt; , &lt;a href="https://profiles.imperial.ac.uk/m.burgman" target="_blank"&gt;Mark Burgman&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/stuart-butchart" target="_blank"&gt;Stuart Butchart&lt;/a&gt; , &lt;a href="https://carleton.ca/biology/people/steven-j-cooke/" target="_blank"&gt;Steven J. Cooke&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://www.framework-biodiversity.eu/team/dr-finn-danielsen" target="_blank"&gt;Finn Danielsen&lt;/a&gt; , &lt;a href="https://researchportal.helsinki.fi/en/persons/enrico-di-minin" target="_blank"&gt;Enrico Di Minin&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/paz-duran/" target="_blank"&gt;América Paz Durán&lt;/a&gt; ,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 2 Dec 2024</title><link href="https://ryan.freumh.org/2024-12-02.html" rel="alternate"></link><published>2024-12-02T00:00:00Z</published><updated>2024-12-02T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-12-02.html</id><summary type="html">Previous: &lt;a href="2024-11-18.html" target="_blank"&gt;Mon 18 Nov 2024&lt;/a&gt; Next: &lt;a href="2024-12-16.html" target="_blank"&gt;Mon 16 Dec 2024&lt;/a&gt; got dodo working again &lt;a href="https://github.com/RyanGibb/eon/commit/02176dcb6bd05ae13c0e4187c0dd8873ceff979f" target="_blank"&gt;https://github.com/RyanGibb/eon/commit/02176dcb6bd05ae13c0e4187c0dd8873ceff979f&lt;/a&gt; but reflecting on it, I don’t think it’s a good use of time eon capability interface added a shell capability to eon &lt;a href="https://github.com/RyanGibb/eon/commit/f6c3b13855b0ff9e09b96ccfd2b0b27591390f14#diff-b498faffd1d896b75bce4fc925bfaa48934b8cdb9de9f52d9e8d276ab9161fca" target="_blank"&gt;https://github.com/RyanGibb/eon/commit/f6c3b13855b0ff9e09b96ccfd2b0b27591390f14#diff-b498faffd1d896b75bce4fc925bfaa48934b8cdb9de9f52d9e8d276ab9161fca&lt;/a&gt; now if we could add stun/turn etc…</summary><category term="ryan.freumh.org"></category></entry><entry><title>Towards verifiable, privacy-preserving carbon emissions claims</title><link href="https://anil.recoil.org/news/2024-loco-emissions-1" rel="alternate"></link><published>2024-12-01T00:00:00Z</published><updated>2024-12-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-loco-emissions-1</id><summary type="html">Customers of online services may want to take carbon emissions into account when deciding which service to use, but it's currently difficult to do so due to the lack of reliable emissions data that is comparable across online services. There's a lot of muddled data out there, and calculating accurate carbon emissions across a computing pipeline involves a number of stakeholders, none of whom are incentivised to accurately report their emissions for competitive reasons! In this &lt;a href="https://locos.codeberg.page/loco2024/" target="_blank"&gt;LOCO&lt;/a&gt; paper, &lt;a href="https://www.cst.cam.ac.uk/people/psjm3" target="_blank"&gt;Jessica Man&lt;/a&gt; lead our exploration of mechanisms to support verifiable and privacy-preserving emissions reporting across a chain of energy suppliers, cloud data centres, virtual machine hosting services providers and cloud services providers. The idea is that all of this can ultimately be exposed to...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Towards a frugal userspace for Linux</title><link href="https://anil.recoil.org/news/2024-loco-shark-1" rel="alternate"></link><published>2024-12-01T00:00:00Z</published><updated>2024-12-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-loco-shark-1</id><summary type="html">All the work we've been doing on biodiversity (such as &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;LIFE&lt;/a&gt; ) comes at a fairly large computation and storage cost due to the amount of data that we churn through. This gets worse when you consider the exploratory nature of science -- we sometimes just need to mess around with the large dataset to test hypotheses which are often shown to be wrong. So then, when the &lt;a href="https://www.sicsa.ac.uk/loco/loco2024/" target="_blank"&gt;LOCO&lt;/a&gt; conference came around, we wrote up our thoughts on what a frugal Linux userspace might look like. The key insight is that the Linux kernel already exposes a number of namespace mechanisms (that we use in Docker, for example), and so we explore a new OS architecture which defaults to deterministic, reusable computation with the careful recording of side-effects. This in turn allows Linux to guide complex...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Prototyping carbon-aware domain name resolution</title><link href="https://anil.recoil.org/news/2024-loco-carbonres-1" rel="alternate"></link><published>2024-12-01T00:00:00Z</published><updated>2024-12-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-loco-carbonres-1</id><summary type="html">&lt;a href="https://ryan.freumh.org" target="_blank"&gt;Ryan Gibb&lt;/a&gt; and I have been thinking about how the current Internet architecture fails to treat the carbon emissions associated with networked services as a first-class metric. So when the &lt;a href="https://locos.codeberg.page/loco2024/" target="_blank"&gt;LOCO&lt;/a&gt; conference came up, we tried extending the DNS with load balancing techniques to consider the carbon cost of scheduling decisions. A next step was then to build a custom &lt;a href="https://github.com/RyanGibb/eon" target="_blank"&gt;DNS server written in OCaml&lt;/a&gt; to actively wake machines running networked services as a side effect of the name resolution. Extending DNS means that we maintain compatibility with existing Internet infrastructure, unlocking the ability for existing applications to be carbon-aware. This is very much a spiritual follow on to the &lt;a href="https://anil.recoil.org/papers/2013-foci-signposts" target="_blank"&gt;Signposts&lt;/a&gt; project that I worked on back in 2013, and have always wanted to return to! &lt;a href="https://ryan.freumh.org" target="_blank"&gt;Ryan Gibb&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; and...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Cooperative Sensor Networks for Long-Term Biodiversity Monitoring</title><link href="https://anil.recoil.org/news/2024-loco-terracorder-1" rel="alternate"></link><published>2024-12-01T00:00:00Z</published><updated>2024-12-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-loco-terracorder-1</id><summary type="html">&lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; and I have been having great fun designing embedded systems for cooperative biodiversity monitoring. Josh presented our work over at &lt;a href="https://www.sicsa.ac.uk/loco/loco2024/" target="_blank"&gt;LOCO 382024&lt;/a&gt; with an abstract on the Terracorder project. Read more if you enjoy a combination of machine learning and ESP32 hacking. &lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; , &lt;a href="https://www.imperial.ac.uk/people/sarab.sethi" target="_blank"&gt;Sarab Sethi&lt;/a&gt; , &lt;a href="https://haddadi.github.io/" target="_blank"&gt;Hamed Haddadi&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Abstract in the &lt;a href="https://www.sicsa.ac.uk/wp-content/uploads/2024/11/LOCO2024_paper_30.pdf" target="_blank"&gt;1st International Workshop on Low Carbon Computing&lt;/a&gt; . &lt;a href="https://www.sicsa.ac.uk/wp-content/uploads/2024/11/LOCO2024_paper_30.pdf" target="_blank"&gt;URL&lt;/a&gt; (sicsa.ac.uk) &lt;a href="https://anil.recoil.org/papers/2024-loco-terracorder.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-loco-terracorder.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Conservation Evidence</title><link href="https://watch.eeg.cl.cam.ac.uk/w/ijC1E36q7fn2qwxs7opSJq" rel="alternate"></link><published>2024-11-29T17:39:54Z</published><updated>2024-11-29T17:39:54Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/ijC1E36q7fn2qwxs7opSJq</id><summary type="html">Grey literature’s inherent nature means that it is a difficult form of media to discover, typically being hidden deep within websites, analyse, following no standard file formats or structures, and process, due to the sheer volume of existing and actively produced literature, this forms a massive cost and time problem for organisations that require such literature in their function. We devise and implement a pipeline that uses Common Crawl internet archives to locate &amp; scrape potential grey literature; then process it for use in a multistage machine learning pipeline to classify and output relevant media. Bios: Shrey Biswas is a second-year Computer Science Student at Pembroke College. Radhika Iyer is a second-year Computer Science Student at Murray Edwards College. Kacper Michalik is a...</summary><category term="EEG Seminars"></category></entry><entry><title>Mon 18 Nov 2024</title><link href="https://ryan.freumh.org/2024-11-18.html" rel="alternate"></link><published>2024-11-18T00:00:00Z</published><updated>2024-11-18T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-11-18.html</id><summary type="html">Previous: &lt;a href="2024-10-14.html" target="_blank"&gt;Mon 14 Oct 2024&lt;/a&gt; Next: &lt;a href="2024-12-02.html" target="_blank"&gt;Mon 2 Dec 2024&lt;/a&gt; Mon [x] eon capnp-rpc requires mirage-crypto &gt; 1.0.0 so had to fix ocaml-letsencrypt and ocaml-dns to get ocaml-dns with mirage-crypto &gt; 1.0.0 we have to use &gt; 9.0.0 which switches from cstructs to bytes now have to port eon to use strings for DNS library should try &lt;a href="https://github.com/patricoferris/eio/tree/bstruct" target="_blank"&gt;https://github.com/patricoferris/eio/tree/bstruct&lt;/a&gt; at some point [x] opam nix &lt;a href="https://github.com/ocaml/opam/pull/5982#issuecomment-2486565207" target="_blank"&gt;https://github.com/ocaml/opam/pull/5982#issuecomment-2486565207&lt;/a&gt; wierd bubblewrap issues see patrick messages todo debug env babel [x] edit splash submission &lt;a href="https://github.com/fn06/2024-splash-solving-package-management/commit/9c9826d60121dd38d7e8c5d801c754bb0a2621d6" target="_blank"&gt;https://github.com/fn06/2024-splash-solving-package-management/commit/9c9826d60121dd38d7e8c5d801c754bb0a2621d6&lt;/a&gt; is a hypergraph the correct formalism? or should we have a calculus to express dependencies? a lambda calculus normal form? todo confusion around section 2 read related work Sat DONE debug eon [x] add dkim record to eon with capability in eilean &lt;a href="https://github.com/RyanGibb/eilean-nix/commit/bba3719f32b57b853247e299ea44500938d69166" target="_blank"&gt;https://github.com/RyanGibb/eilean-nix/commit/bba3719f32b57b853247e299ea44500938d69166&lt;/a&gt; [x] fix intial syncing of primary trie to secondaries by creating a separate update...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Royal Society and DeepMind host AI for Science Forum</title><link href="https://anil.recoil.org/notes/ai-for-science-2024" rel="alternate"></link><published>2024-11-18T00:00:00Z</published><updated>2024-11-18T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ai-for-science-2024</id><summary type="html">I got invited to join the Royal Society and DeepMind to a summit on how AI is revolutionising scientific discovery and trotted along with &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . This event is hot on the heels of the excellent RS report on &lt;a href="https://royalsociety.org/news-resources/projects/science-in-the-age-of-ai/" target="_blank"&gt;Science in the Age of AI&lt;/a&gt; and, of course, the Nobel prize for Demis Hassabis which was the &lt;a href="https://www.cst.cam.ac.uk/news/nobel-prize-our-alumnus-sir-demis-hassabis" target="_blank"&gt;first ever 39for my department&lt;/a&gt; ! The event was held at the BAFTA today, and what follows are my quick livenotes as there was just so much to absorb. The RS and Deepmind will have the full sessions online sometime soon, so I'll update this with those more polished outputs when they're out! Update: Proper notes now available from &lt;a href="https://blog.google/technology/ai/ai-science-forum-2024/" target="_blank"&gt;Google&lt;/a&gt; and the &lt;a href="https://royalsociety.org/news-resources/projects/science-in-the-age-of-ai/" target="_blank"&gt;Royal Society&lt;/a&gt; . Hannah Fry doing a great job emceeing The summit was a day-long exploration of how artificial intelligence is transforming science and society, and the overall theme...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Long-term Biodiversity Monitoring at Scale</title><link href="https://watch.eeg.cl.cam.ac.uk/w/pMzCFQKTrRtQ6jotF1z12V" rel="alternate"></link><published>2024-11-15T16:16:36Z</published><updated>2024-11-15T16:16:36Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/pMzCFQKTrRtQ6jotF1z12V</id><summary type="html">Abstract: Comprehensive data on global biodiversity patterns is only obtainable through in-situ distributed sensor networks. However, these multi-device networks are constrained by battery lifetimes, must gather rich data from power-hungry sensors, and yet must be deployed in remote environments for long periods. We look at the feasibility of a prototype multi-sensor device using on-device reinforcement learning for power management. Bio: Josh Millar is a PhD based at the NetSys Lab at Imperial-X. Their current research interests include: energy-aware ML IoT and on-device ML applied ML for sustainability</summary><category term="EEG Seminars"></category></entry><entry><title>A CarbonFirst Approach for Decarbonizing Cloud Computing</title><link href="https://watch.eeg.cl.cam.ac.uk/w/pxkLZ4jgVJMqjwZuhWicrK" rel="alternate"></link><published>2024-11-01T15:46:48Z</published><updated>2024-11-01T15:46:48Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/pxkLZ4jgVJMqjwZuhWicrK</id><summary type="html">Abstract: The exponential growth of cloud computing has been a defining trend of our time, fueled by rapidly growing demands from data-intensive and machine learning workloads. Despite the end of Dennard scaling, the cloud's energy demand grew more slowly than expected over the past decade due to the aggressive implementation of energy-efficiency optimizations. Unfortunately, there are few significant remaining optimization opportunities using traditional methods, and moving forward, the cloud's continued exponential growth will translate into rising energy demand, which, if left unchecked, will translate to increasing carbon emissions. In this talk, I will argue for a CarbonFirst approach to designing cloud computing systems by making carbon efficiency a first-class design metric,...</summary><category term="EEG Seminars"></category></entry><entry><title>Published a legal perspective on high integrity forest carbon credits</title><link href="https://anil.recoil.org/news/2024-cclr-carbon-1" rel="alternate"></link><published>2024-11-01T00:00:00Z</published><updated>2024-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-cclr-carbon-1</id><summary type="html">&lt;a href="https://www.cst.cam.ac.uk/people/smc70" target="_blank"&gt;Sophie Chapman&lt;/a&gt; lead an &lt;a href="https://anil.recoil.org/ideas/legal-aspects-of-credits" target="_blank"&gt;effort&lt;/a&gt; to explore a novel legal framework for forest carbon credits that separates carbon tenure (i.e. title and associated property rights to the land and trees which store the carbon) from the carbon rights (i.e. title and associated rights to monetise and manage the credits which symbolically represent the carbon stored in the trees), while also specifying the relationship between the carbon tenure and the carbon rights. The resulting &lt;a href="https://anil.recoil.org/papers/2024-cclr-carbon" target="_blank"&gt;paper&lt;/a&gt; has just been published in the Climate and Carbon Law Review journal, and is available as open access for your perusal. &lt;a href="https://www.cst.cam.ac.uk/people/smc70" target="_blank"&gt;Sophie Chapman&lt;/a&gt; , &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.wolfson.cam.ac.uk/people/dr-robin-daniels" target="_blank"&gt;Robin Daniels&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Journal paper in &lt;a href="https://cclr.lexxion.eu/article/CCLR/2024/3/5" target="_blank"&gt;Carbon &amp; Climate Law Review&lt;/a&gt; (vol 18 issue 3). &lt;a href="https://cclr.lexxion.eu/article/CCLR/2024/3/5" target="_blank"&gt;URL&lt;/a&gt; (cclr.lexxion.eu) &lt;a href="https://doi.org/10.21552/cclr/2024/3/5" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-cclr-carbon.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-cclr-carbon.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Presented poster at Sensys on low-power biodiversity monitoring</title><link href="https://anil.recoil.org/news/2024-sensys-terracorder-1" rel="alternate"></link><published>2024-11-01T00:00:00Z</published><updated>2024-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-sensys-terracorder-1</id><summary type="html">&lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; presented our work on biodiversity sensing over at &lt;a href="http://sensys.acm.org/2024/" target="_blank"&gt;ACM Sensys 2024&lt;/a&gt; in China. The &lt;a href="http://sensys.acm.org/2024/demos/" target="_blank"&gt;full set&lt;/a&gt; of papers and demos has a range of impressive work on sensor networks, and some that stood out to me follow. [… &lt;a href="https://anil.recoil.org/news/2024-sensys-terracorder-1" target="_blank"&gt;140 words&lt;/a&gt; ] &lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; , &lt;a href="https://www.imperial.ac.uk/people/sarab.sethi" target="_blank"&gt;Sarab Sethi&lt;/a&gt; , &lt;a href="https://haddadi.github.io/" target="_blank"&gt;Hamed Haddadi&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Abstract in the &lt;a href="https://dl.acm.org/doi/10.1145/3666025.3699400" target="_blank"&gt;proceedings of the 22nd ACM Conference on Embedded Networked Sensor Systems&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/3666025.3699400" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/3666025.3699400" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-sensys-terracorder.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-sensys-terracorder.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Preprint on using LLMs to for evidence-based decision support</title><link href="https://anil.recoil.org/news/2024-ce-llm-1" rel="alternate"></link><published>2024-11-01T00:00:00Z</published><updated>2024-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-ce-llm-1</id><summary type="html">We have just uploaded a preprint on using LLMs for conservation evidence, based on our &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;work&lt;/a&gt; on large-scale crawling of the academic literature. Well done in particular to &lt;a href="mailto:ri301@cam.ac.uk" target="_blank"&gt;Radhika Iyer&lt;/a&gt; for having done the bulk of the evaluation on this as part of a very productive summer internship with us! &lt;a href="mailto:ri301@cam.ac.uk" target="_blank"&gt;Radhika Iyer&lt;/a&gt; , &lt;a href="https://profiles.imperial.ac.uk/a.christie" target="_blank"&gt;Alec Christie&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://samreynolds.org/" target="_blank"&gt;Sam Reynolds&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/bill-sutherland" target="_blank"&gt;Bill Sutherland&lt;/a&gt; and &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . Working paper at &lt;a href="https://www.researchsquare.com/article/rs-5409185/v2" target="_blank"&gt;Research Square&lt;/a&gt; . &lt;a href="https://www.researchsquare.com/article/rs-5409185/v2" target="_blank"&gt;URL&lt;/a&gt; (researchsquare.com) &lt;a href="https://doi.org/10.21203/rs.3.rs-5409185/v2" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-ce-llm.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Paper on scheduling for reduced tail task latencies</title><link href="https://anil.recoil.org/news/2024-socc-murmuration-1" rel="alternate"></link><published>2024-11-01T00:00:00Z</published><updated>2024-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-socc-murmuration-1</id><summary type="html">&lt;a href="https://www.cl.cam.ac.uk/~sv440/" target="_blank"&gt;Smita Vijayakumar&lt;/a&gt; went along to Seattle to &lt;a href="https://acmsocc.org/2024/" target="_blank"&gt;SOCC 2024&lt;/a&gt; to present her PhD research on Murmuration. This is a new scheduler for Kubernetes that allows for 15%--25% faster job completion times than the default scheduler for different job arrival characteristics in datacenters that are very busy. [… &lt;a href="https://anil.recoil.org/news/2024-socc-murmuration-1" target="_blank"&gt;71 words&lt;/a&gt; ] &lt;a href="https://www.cl.cam.ac.uk/~sv440/" target="_blank"&gt;Smita Vijayakumar&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.cst.cam.ac.uk/people/ek264" target="_blank"&gt;Evangelia Kalyvianaki&lt;/a&gt; . Paper in the &lt;a href="https://acmsocc.org/2024/" target="_blank"&gt;proceedings of the 2024 ACM Symposium on Cloud Computing&lt;/a&gt; . &lt;a href="https://acmsocc.org/2024/" target="_blank"&gt;URL&lt;/a&gt; (acmsocc.org) &lt;a href="https://doi.org/10.1145/3698038.3698522" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-socc-murmuration.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-socc-murmuration.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Building OCaml on Haiku</title><link href="https://digitalflapjack.com/blog/building-ocaml-on-haiku/" rel="alternate"></link><published>2024-10-27T09:01:41Z</published><updated>2024-10-27T09:01:41Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/building-ocaml-on-haiku/</id><summary type="html">What has to be a niche of a niche post wise, I was intrigued when I spotted &lt;a href="https://www.haiku-os.org/blog/anarchos/2024-04-09_an_odissey_to_port_compcert/" target="_blank"&gt;this post&lt;/a&gt; recently that someone had built &lt;a href="https://ocaml.org" target="_blank"&gt;OCaml&lt;/a&gt; for &lt;a href="https://www.haiku-os.org/" target="_blank"&gt;Haiku&lt;/a&gt; . I'd been playing with Haiku a little recently, as I wanted to understand its file-system, and so I thought I'd have a go. I turns out it's quite simple, and although the above post does kinda tell you what you need, there's a few gaps, so this post is just recording what I did. But all credit has to go to Sylvain Kerjean for that original post which gets you most the way, this is just trying to make it easier for me to cut and paste later! First up: Ensure /boot/home/config/non-packaged/bin is on your PATH variable. Get a checkout of OCaml from &lt;a href="https://github.com/ocaml/ocaml" target="_blank"&gt;https://github.com/ocaml/ocaml&lt;/a&gt; . Configure it with the appropriate prefix, make, and install. It really does just work! $...</summary><category term="Digital Flapjack"></category></entry><entry><title>Mapping greener futures with planetary computing</title><link href="https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1" rel="alternate"></link><published>2024-10-24T01:00:00Z</published><updated>2024-10-24T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1</id><summary type="html">I got invited by &lt;a href="https://profiles.ucl.ac.uk/78591-serta%C3%A7-sehlikoglu" target="_blank"&gt;Sertaç Sehlikoglu&lt;/a&gt; to deliver a lecture to the Masters students down at the &lt;a href="https://www.ucl.ac.uk/bartlett/igp/" target="_blank"&gt;UCL Institute for Global Prosperity&lt;/a&gt; . I talked about the recent work on &lt;a href="https://anil.recoil.org/projects/plancomp" target="_blank"&gt;planetary computing&lt;/a&gt; , with an overview of the &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;LIFE&lt;/a&gt; and &lt;a href="https://anil.recoil.org/papers/2024-food-life" target="_blank"&gt;FOOD&lt;/a&gt; papers.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Challenges in Cyber-Physical Energy Systems - of Agents and Data</title><link href="https://watch.eeg.cl.cam.ac.uk/w/7XijwZ8ZtKtnLgRXKgt9G1" rel="alternate"></link><published>2024-10-18T16:03:59Z</published><updated>2024-10-18T16:03:59Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/7XijwZ8ZtKtnLgRXKgt9G1</id><summary type="html">Abstract: In this talk, first, some special challenges in cyber-physical energy systems will be reflected. Then, examples from research projects and field tests will be discussed to show how multi-agent systems can be used to tackle these challenges. Finally, the topic of research data management and its role in open research will be discussed. Bio: Prof. Dr.-Ing. Astrid Nieße has been Professor for Digitalized Energy Systems at the University of Oldenburg since 2020 and a member of the Energy Division Board of the OFFIS - Institute of Computer Science. From 2018 to 2020 she was Professor for Energy Informatics at Leibniz University Hannover. Astrid Nieße received her doctorate from the University of Oldenburg in 2015; her doctoral thesis dealt with the application of distributed...</summary><category term="EEG Seminars"></category></entry><entry><title>Mon 14 Oct 2024</title><link href="https://ryan.freumh.org/2024-10-14.html" rel="alternate"></link><published>2024-10-14T01:00:00Z</published><updated>2024-10-14T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-10-14.html</id><summary type="html">Previous: &lt;a href="2024-10-07.html" target="_blank"&gt;Mon 7 Oct 2024&lt;/a&gt; Next: &lt;a href="2024-11-18.html" target="_blank"&gt;Mon 18 Nov 2024&lt;/a&gt; datalog bigraphs, formalism, lambda calc next: CACM: History of Package Managers Systems Paper: Implementing it all DoDO</summary><category term="ryan.freumh.org"></category></entry><entry><title>Visual Digital Twins of Forests</title><link href="https://watch.eeg.cl.cam.ac.uk/w/9CqWsuQQykVtbuDPwuLwZs" rel="alternate"></link><published>2024-10-11T20:45:49Z</published><updated>2024-10-11T20:45:49Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/9CqWsuQQykVtbuDPwuLwZs</id><summary type="html">Abstract: Methods developed by the computer graphics community allow for the photorealistic rendering of complex geometry. In this talk we explore how such mathematical procedures can be leveraged to describe the growth, biomechanics, and combustion of trees at a detailed spatial level. These models facilitate a realistic 3D visualization of these processes at forest scale which allows exploring illustratively a variety of hypothetical environmental scenarios. Potential applications of such methods include the educational dissemination of environmental concepts, the generation of synthetic image data for training vision-based AI models, and the evaluation of ecological hypotheses expressed at plant organ scale. Bio: Wojtek Palubicki is a Professor at Adam Mickiewicz University where he...</summary><category term="EEG Seminars"></category></entry><entry><title>On the SOCC 2024 PC</title><link href="https://anil.recoil.org/notes/socc-pc" rel="alternate"></link><published>2024-10-08T01:00:00Z</published><updated>2024-10-08T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/socc-pc</id><summary type="html">After some time away from cloud computing (due to my new focus on &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;conservation research&lt;/a&gt; ), I served on the &lt;a href="https://acmsocc.org/2024/" target="_blank"&gt;ACM SOCC 2024&lt;/a&gt; program committee. It was quite interesting seeing the massive shift away from "traditional" cloud research (such as consensus protocols) towards many submissions aimed at accelerating machine learning workloads. I also had a paper accepted there on &lt;a href="https://anil.recoil.org/papers/2024-socc-murmuration" target="_blank"&gt;decentralised scheduling&lt;/a&gt; , thanks to my former PhD student &lt;a href="https://www.cl.cam.ac.uk/~sv440/" target="_blank"&gt;Smita Vijayakumar&lt;/a&gt; and her hard work on Murmuration!</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 7 Oct 2024</title><link href="https://ryan.freumh.org/2024-10-07.html" rel="alternate"></link><published>2024-10-07T01:00:00Z</published><updated>2024-10-07T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-10-07.html</id><summary type="html">Previous: &lt;a href="2024-09-30.html" target="_blank"&gt;Mon 30 Sep 2024&lt;/a&gt; Next: &lt;a href="2024-10-14.html" target="_blank"&gt;Mon 14 Oct 2024&lt;/a&gt; Mon package management paper DONE cite go rox blog post DOING add citations for all package managers DONE syntax -&gt; bundle format DONE vesion formula DONE src vs bin -&gt; binary caching in features column DONE repo release in description; ecosystem and name together DOING add order of magnitude packages (and order by) DONE packaging language cabal - &lt;a href="https://cabal.readthedocs.io/en/stable/cabal-package-description-file.html#package-descriptions" target="_blank"&gt;https://cabal.readthedocs.io/en/stable/cabal-package-description-file.html#package-descriptions&lt;/a&gt; packaging language - dsl or edsl (with power of host language) DSL/eDSL DONE add sandboxing field DONE add subsections links to section 2 DONE add dune DONE add B/P/C to toolchain field DONE concurrent versions - be clear about solving DONE Resolution hypergraph annd Resolved graph DONE tigher footnotes DONE binary bundles and provisioning, reorder figure 1 before table to talk about provisioning...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Partner-driven Environmental Sensing:</title><link href="https://watch.eeg.cl.cam.ac.uk/w/pQBnfPWJi9kxLdeHY9YAA7" rel="alternate"></link><published>2024-10-04T19:15:38Z</published><updated>2024-10-04T19:15:38Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/pQBnfPWJi9kxLdeHY9YAA7</id><summary type="html">Full Title: Partner-driven Environmental Sensing: Co-design with Indigenous Ojibwe Scientists and Malagasy Conservationists Abstract: Evolving environmental sensing technologies present a myriad of opportunities for gathering data to understand and promote environmental justice, biodiversity, and climate change mitigation. However, technical development from academic and commercial settings often struggle to translate to accessible solutions for marginalized communities. In this talk, I will explore the opportunities of partner-driven co-design, share the findings from a qualitative study of field scientists’ use of technology, and present two case studies: (1) designing environmental sensors with Indigenous Ojibwe scientists for manoomin (wild rice) conservation and (2) partnering with...</summary><category term="EEG Seminars"></category></entry><entry><title>Royal Society meeting on ecological/commercial risks</title><link href="https://anil.recoil.org/notes/rs-ecorisk-day1" rel="alternate"></link><published>2024-10-03T01:00:00Z</published><updated>2024-10-03T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/rs-ecorisk-day1</id><summary type="html">I'm at the Royal Society this morning for the 2 day programme on &lt;a href="https://royalsociety.org/science-events-and-lectures/2024/10/ecological-and-commercial-risk/" target="_blank"&gt;"How does ecological risk related to commercial risk?"&lt;/a&gt; , and am reporting on the &lt;a href="https://royalsociety.org/-/media/events/2024/10/ecological-risk/programme-booklet.pdf" target="_blank"&gt;morning session&lt;/a&gt; . The full program is being &lt;a href="https://www.youtube.com/watch?v=gVuxzand8RE" target="_blank"&gt;livestreamed&lt;/a&gt; so please do dial in if the below notes seem interesting to you. I put this note up almost live, so any errors below are my own. (Update: partial &lt;a href="https://anil.recoil.org/#daytwo" target="_blank"&gt;day 2 notes&lt;/a&gt; now available below) Opening Keynote by Sir Partha Dasgupta The summit kicked off with a keynote by economist &lt;a href="https://en.wikipedia.org/wiki/Partha_Dasgupta" target="_blank"&gt;Sir Partha Dasgupta&lt;/a&gt; . The focus was on the intersection of nature and economics, covering how markets fail to account for the ecosystems that sustain them. His &lt;a href="https://www.gov.uk/government/publications/final-report-the-economics-of-biodiversity-the-dasgupta-review" target="_blank"&gt;landmark report&lt;/a&gt; covered ecosystem services, freshwater, tipping points, and physical risk, bringing to light the urgent need to reframe economic activities around the services provided by nature. Sir Partha Dasgupta opening the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Workshopping, across the universe</title><link href="https://mort.io/blog/workshopping-edgeless/" rel="alternate"></link><published>2024-10-02T01:00:00Z</published><updated>2024-10-02T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/workshopping-edgeless/</id><summary type="html">One of the pleasures of being an academic is to travel to nice places to meet interesting people, and interesting places to meet nice people. In one of my first such trips for a few years I recently went to Sweden to participate in the &lt;a href="https://cloudresearch.org/workshops/17th/" target="_blank"&gt;17th Cloud Control Workshop&lt;/a&gt; . __LINK_1__ I’d previously attended the &lt;a href="https://cloudresearch.org/workshops/15th/" target="_blank"&gt;15th Cloud Control 40Workshop&lt;/a&gt; shortly before the pandemic happened, causing the series to pause briefly. This was the reboot, and as before, it was a great deal of fun: good company, good food, beautiful location. If you get the chance to go, take it if you can! The workshop is a really nice mix of keynote presentations – not too many and not too long at 20 minutes (mostly) – and discussion sessions proposed beforehand or on site by participants. I gave one of the keynotes, talking about the challenges posed and...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Mon 30 Sep 2024</title><link href="https://ryan.freumh.org/2024-09-30.html" rel="alternate"></link><published>2024-09-30T01:00:00Z</published><updated>2024-09-30T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-09-30.html</id><summary type="html">Previous: &lt;a href="2024-09-23.html" target="_blank"&gt;Mon 23 Sep 2024&lt;/a&gt; Next: &lt;a href="2024-10-07.html" target="_blank"&gt;Mon 7 Oct 2024&lt;/a&gt; Mon wrote out some of the formalisations in OCaml worked on LOCO submission Tue LOCO submission package management paper cargo feature formalisation Wed package management paper finished the cargo feature formalisation described singular versions with conflicts Thur submitted second year report package management paper I’ve thought of another complication with the source vs binary dichotomy – dependencies might result language vs system package manager source vs binary Why NixOS? Reproducibility? No. Atomicity. Fri package management paper high-level representation - hypergraph low-level representation - graph CANCELED change depends order to match topological sort, Nix thesis, and build systems a la carte DONE rename package calculus DONE process...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 23 Sep 2024</title><link href="https://ryan.freumh.org/2024-09-23.html" rel="alternate"></link><published>2024-09-23T01:00:00Z</published><updated>2024-09-23T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-09-23.html</id><summary type="html">Previous: &lt;a href="2024-09-16.html" target="_blank"&gt;Mon 16 Sep 2024&lt;/a&gt; Next: &lt;a href="2024-09-30.html" target="_blank"&gt;Mon 30 Sep 2024&lt;/a&gt; Mon Added a SAT expression of the dependancy resolution problem, and added some example graphs. Tue more package management Wed some package management loco Thur finished loco chatted with patrick about the splash paper Fri added conflicts and optional dependencies to the package management calculus</summary><category term="ryan.freumh.org"></category></entry><entry><title>Being on the HotNets 2024 program committee</title><link href="https://anil.recoil.org/notes/hotnets-pc-2024" rel="alternate"></link><published>2024-09-22T01:00:00Z</published><updated>2024-09-22T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/hotnets-pc-2024</id><summary type="html">I was on the program committee for &lt;a href="https://conferences.sigcomm.org/hotnets/2024/" target="_blank"&gt;HotNets 412024&lt;/a&gt; this year, which was a thoroughly enjoyable experience. The &lt;a href="https://conferences.sigcomm.org/hotnets/2024/accepted.html" target="_blank"&gt;list of accepted 42papers&lt;/a&gt; is now out, and it's a diverse program -- with my personal favourites being the ones on space communications networks using low earth orbit satellites. Well done to &lt;a href="https://www.microsoft.com/en-us/research/people/bearzani/" target="_blank"&gt;Behnaz 43Arzani&lt;/a&gt; and &lt;a href="https://www.cs.cornell.edu/~jnfoster/" target="_blank"&gt;Nate 44Foster&lt;/a&gt; for really excellent general chairing and ensuring the PC maintained a constructive, positive tone while doing the difficult job of selecting papers from a crowded set of submissions. The structure of of the program committee was also somewhat novel, and one I'd like to replicate in other conferences I organise in the future. The spectacular view from Jane Street's 18th floor! Two Review Rounds. There were two rounds of reviewing, with any clear decisions from the first set of reviewers...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Part II Projects</title><link href="https://mort.io/blog/part-ii-projects/" rel="alternate"></link><published>2024-09-20T01:00:00Z</published><updated>2024-09-20T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/part-ii-projects/</id><summary type="html">Undergraduate final-year (“Part II”) project supervision goes in fits and starts. After a couple of years of having almost no interest, this year I’ve had several enquiries and it seems I might end supervising 3–4 projects. So herewith a record of the things I’ve found myself repeating! &lt;a href="https://mort.io/blog/part-ii-projects/#project-structure" target="_blank"&gt;Project structure&lt;/a&gt; The key thing for the structure of the project is to make sure that there is a core piece that is (essentially) guaranteed to be deliverable. This is the piece that you know you can do, and once done and written up, you know you can get an adequate (if not great) mark. Ensuring this takes the risk out of the project. On top of this core piece, it’s then usually sensible to build “a few” (2? 3? 4?) extensions which will make the project spicy if done well. You may wish to phrase these extensions...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Mon 16 Sep 2024</title><link href="https://ryan.freumh.org/2024-09-16.html" rel="alternate"></link><published>2024-09-16T01:00:00Z</published><updated>2024-09-16T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-09-16.html</id><summary type="html">Previous: &lt;a href="2024-09-09.html" target="_blank"&gt;Mon 9 Sep 2024&lt;/a&gt; Next: &lt;a href="2024-09-23.html" target="_blank"&gt;Mon 23 Sep 2024&lt;/a&gt; Mon cabal2opam it looks like we can use &lt;a href="https://hackage.haskell.org/01-index.tar" target="_blank"&gt;https://hackage.haskell.org/01-index.tar&lt;/a&gt; similar to cargo’s package index! oh no, this is just a bundle of cabal files also, if we want to depend on projects outside of the repository we’ll need to parse cargo files package management abstract second year report met with anil package management abstract However, inadequacies in software deployment technologies used for spatial devices often leads to scenarios such as running software vulnerable to exploits. There is a proliferation of package managers with varying degrees of expressivity and reproducibility using formats that aren’t interoperable. Multi-lingual projects can’t provide their dependencies in a unified way, and dependencies from one package manager ecosystem can’t express a...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 9 Sep 2024</title><link href="https://ryan.freumh.org/2024-09-09.html" rel="alternate"></link><published>2024-09-09T01:00:00Z</published><updated>2024-09-09T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-09-09.html</id><summary type="html">Previous: &lt;a href="2024-09-02.html" target="_blank"&gt;Mon 2 Sep 2024&lt;/a&gt; Next: &lt;a href="2024-09-16.html" target="_blank"&gt;Mon 16 Sep 2024&lt;/a&gt; Mon &lt;a href="https://srl.cs.jhu.edu/pubs/SRL2003-02.pdf" target="_blank"&gt;https://srl.cs.jhu.edu/pubs/SRL2003-02.pdf&lt;/a&gt; commented on Roy’s project proposal DONE second year report cabal to opam translation Wed second year report KILL read &lt;a href="http://www.chriswarbo.net/projects/nixos/nix_dependencies.html" target="_blank"&gt;http://www.chriswarbo.net/projects/nixos/nix_dependencies.html&lt;/a&gt; created &lt;a href="https://github.com/RyanGibb/ocaml-purl" target="_blank"&gt;https://github.com/RyanGibb/ocaml-purl&lt;/a&gt; Thu second year report Fri got cabal2opam working! tomorrow: we try with a full repository</summary><category term="ryan.freumh.org"></category></entry><entry><title>Post-COVID19 TPC experience</title><link href="https://mort.io/blog/post-covid-tpc/" rel="alternate"></link><published>2024-09-09T01:00:00Z</published><updated>2024-09-09T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/post-covid-tpc/</id><summary type="html">I do not participate in a huge number of TPCs (Technical Programme Committees) as a general rule– partly time constraints but mostly no-one knows who I am so I don’t often get asked… (!) I have done a few though, some big (e.g., &lt;a href="https://www.usenix.org/conference/nsdi15" target="_blank"&gt;USENIX NSDI&lt;/a&gt; , &lt;a href="https://conferences.sigcomm.org/imc/2018/" target="_blank"&gt;ACM IMC&lt;/a&gt; ), some small ( &lt;a href="https://uksystems.org/" target="_blank"&gt;UK Systems&lt;/a&gt; , &lt;a href="https://link.springer.com/conference/pam" target="_blank"&gt;PAM&lt;/a&gt; ), and perhaps because I only do a couple every few years, while doing &lt;a href="https://conferences2.sigcomm.org/co-next/" target="_blank"&gt;ACM 45CoNEXT&lt;/a&gt; and &lt;a href="https://acm-ieee-sec.org/list/" target="_blank"&gt;ACM/IEEE 46SEC&lt;/a&gt; this week, I found myself particularly noticing some changes in practice since that last TPCs I recall (notably &lt;a href="https://www.usenix.org/conference/nsdi15" target="_blank"&gt;NSDI&lt;/a&gt; and &lt;a href="https://conferences.sigcomm.org/imc/2018/" target="_blank"&gt;IMC&lt;/a&gt; ). So here are three observations. &lt;a href="https://mort.io/blog/post-covid-tpc/#1-online-first-and-only" target="_blank"&gt;1. Online, first and only&lt;/a&gt; The biggest obvious change is that TPC meetings are now online rather than in-person. This has one big disadvantage for me: I really enjoyed travelling to the meeting to meet colleagues and (usually) participate in some...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Mitigating credit reversal risks in nature-based solutions</title><link href="https://anil.recoil.org/notes/mitigating-nbs-risk-paper" rel="alternate"></link><published>2024-09-08T01:00:00Z</published><updated>2024-09-08T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/mitigating-nbs-risk-paper</id><summary type="html">Many of the questions around our recent &lt;a href="https://anil.recoil.org/papers/2023-naturecredits" target="_blank"&gt;Nature Sustainability commentary on NbS credits&lt;/a&gt; revolve around how to finance new projects if credible credits need to be ex-post. Our latest paper published in Carbon Management on " &lt;a href="https://anil.recoil.org/papers/2024-nbs-risk" target="_blank"&gt;Mitigating risk of credit reversal in nature-based climate solutions by optimally anticipating carbon release&lt;/a&gt; " tries to address this. The problem with selling ex-ante (future) carbon credits for (e.g.) a deforestation avoidance scheme is that project reversals can happen in the future ("deforestation has increased") thus rendering any credits issued previously useless. On the flip side though, an overly conservative view of the future ("the entire forest will disappear overnight!") is clearly so conservative that it doesn't serve the best interests of the project developer. So ideally, a project would make realistic but conservative ex-ante predictions that is safe for both project developer (who gets...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Towards security specifications for agentic AIs</title><link href="https://anil.recoil.org/news/2024-hope-bastion-1" rel="alternate"></link><published>2024-09-04T01:00:00Z</published><updated>2024-09-04T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-hope-bastion-1</id><summary type="html">A very fun talk at &lt;a href="https://icfp24.sigplan.org/home/hope-2024" target="_blank"&gt;ACM HOPE 2024&lt;/a&gt; on some new work with &lt;a href="https://web.eecs.umich.edu/~comar/" target="_blank"&gt;Cyrus Omar&lt;/a&gt; and &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; on how we can formally specify systems to be robust to code generation by AI agents. For instance, if you were to ask GitHub Copilot to generate you code to filter endangered animals out of a folder of images, it might interpret that as to delete the image, or to move it to another folder (which might be public), or just remove it from the index. Any of those options are potentially valid, so what do we do? Our idea is to use F* to specify a rich set of allowable behaviours which can then be dynamically enforced in less expressive languages, and thus offer layers of protection against over-eager (or rogue) AI agents. [… &lt;a href="https://anil.recoil.org/news/2024-hope-bastion-1" target="_blank"&gt;183 words&lt;/a&gt; ] &lt;a href="https://web.eecs.umich.edu/~comar/" target="_blank"&gt;Cyrus Omar&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://icfp24.sigplan.org/home/hope-2024" target="_blank"&gt;the 12th ACM SIGPLAN Workshop on Higher-Order Programming with Effects (HOPE)&lt;/a&gt; . &lt;a href="https://icfp24.sigplan.org/home/hope-2024" target="_blank"&gt;URL&lt;/a&gt;...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>New teaching page with my Computer Science courses</title><link href="https://anil.recoil.org/notes/new-teaching-page" rel="alternate"></link><published>2024-09-03T01:00:00Z</published><updated>2024-09-03T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/new-teaching-page</id><summary type="html">There's a new &lt;a href="https://anil.recoil.org/notes/teaching" target="_blank"&gt;teaching&lt;/a&gt; page with my past and present courses, and links to the associated teaching materials. One of the nice things about most Cambridge courses is that all the teaching materials are public, except for video recordings of the lectures themselves.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 2 Sep 2024</title><link href="https://ryan.freumh.org/2024-09-02.html" rel="alternate"></link><published>2024-09-02T01:00:00Z</published><updated>2024-09-02T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-09-02.html</id><summary type="html">Previous: &lt;a href="2024-08-26.html" target="_blank"&gt;Mon 26 Aug 2024&lt;/a&gt; Next: &lt;a href="2024-09-09.html" target="_blank"&gt;Mon 9 Sep 2024&lt;/a&gt; Tue Try dumping the SAT graph to see how big we make it hmm, magic trace traces are empty Spent some trying to understand the SAT solving Wed sat: TRYING: not(cargo-quote.1.0.32) sat: enqueue: not(cargo-quote.1.0.32) (considering) sat: TRYING: not(cargo-quote.1.0.33) sat: enqueue: not(cargo-quote.1.0.33) (considering) sat: TRYING: not(cargo-quote.1.0.34) sat: enqueue: not(cargo-quote.1.0.34) (considering) sat: TRYING: not(cargo-quote.1.0.35) sat: enqueue: not(cargo-quote.1.0.35) (considering) sat: TRYING: not(cargo-quote.1.0.36) sat: enqueue: not(cargo-quote.1.0.36) (considering) sat: TRYING: not(cargo-quote.1.0.37) sat: enqueue: not(cargo-quote.1.0.37) (considering) sat: TRYING: not() sat: enqueue: not() (considering) sat: enqueue:...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Building species models of the planet</title><link href="https://anil.recoil.org/notes/ukri-grant-terra" rel="alternate"></link><published>2024-09-02T01:00:00Z</published><updated>2024-09-02T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ukri-grant-terra</id><summary type="html">I don't normally announce funded grants (preferring to focus on outcomes), but I'm really excited by this one and couldn't resist! Myself and my colleagues &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; (from computer science), &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; (from Plant Sciences), &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; (from Zoology) and &lt;a href="https://www.cambridgeconservation.org/about/people/professor-neil-burgess/" target="_blank"&gt;Neil Burgess&lt;/a&gt; (the Head of Science at &lt;a href="https://www.unep-wcmc.org/en/the-team" target="_blank"&gt;UNEP-WCMC&lt;/a&gt; ) have just received a £1.2m grant from the UKRI to work on &lt;a href="https://www.cst.cam.ac.uk/news/meet-terra-ai-aiming-map-terrestrial-life-planet" target="_blank"&gt;building foundation models for planetary intelligence&lt;/a&gt; . Now, normally a grant isn't news, but I wanted to highlight the scheme that it came under. UKRI announced an &lt;a href="https://www.ukri.org/news/first-projects-from-ukris-new-interdisciplinary-scheme-announced/" target="_blank"&gt;interdisciplinary program&lt;/a&gt; specifically for projects that don't normally get funded by just one research council. In our case, this work usually falls between the cracks of EPSRC ("too much nature") or NERC ("too much engineering") or STFC ("not enough satellites") . But this interdisciplinary program expressly assembled a panel...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Parallel traversal effect handlers for OCaml</title><link href="https://anil.recoil.org/ideas/effect-parallel-strategies" rel="alternate"></link><published>2024-09-01T01:00:00Z</published><updated>2024-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/effect-parallel-strategies</id><summary type="html">Parallel traversal effect handlers for OCaml This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently being worked on by &lt;a href="mailto:sb2634@cam.ac.uk" target="_blank"&gt;Sky Batchelor&lt;/a&gt; . It is co-supervised with &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; . Most existing uses of effect handlers perform synchronous execution of handled effects. Xie et al proposed a traverse handler for parallelisation of independent effectful computations whose effect handlers are outside the parallel part of the program. The paper &lt;a href="https://anil.recoil.org/#fn-1" target="_blank"&gt;[1]&lt;/a&gt; gives a sample implementation as a Haskell library with an associated λp calculus that formalises the parallel handlers. This project aims to: implement the traverse handler in OCaml 5, using single-shot handlers &lt;a href="https://anil.recoil.org/#fn-2" target="_blank"&gt;[2]&lt;/a&gt; identify a selection of parallel-friendly data structures that might benefit from such...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Gradually debugging type errors</title><link href="https://anil.recoil.org/ideas/gradual-type-error-debugging" rel="alternate"></link><published>2024-09-01T01:00:00Z</published><updated>2024-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/gradual-type-error-debugging</id><summary type="html">Gradually debugging type errors This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently being worked on by &lt;a href="mailto:mc2372@cam.ac.uk" target="_blank"&gt;Max Carroll&lt;/a&gt; . It is co-supervised with &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; . Reasoning about type errors is very difficult, and requires shifting between static and dynamic types. In OCaml, the type checker asserts ill-typedness but provides little in the way of understanding why the type checker inferred such types. These direct error messages are difficult to understand even for experienced programmers working on larger codebases. This project will explore how to use gradual types to reason more effectively about such ill-typed programs, by introducing more dynamic types to help some users build an intuition about the problem in their code. The intention is to...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Paper published on ex-ante forecasts of nature-based solutions</title><link href="https://anil.recoil.org/news/2024-nbs-risk-2" rel="alternate"></link><published>2024-08-31T01:00:00Z</published><updated>2024-08-31T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-nbs-risk-2</id><summary type="html">Our paper on ex-ante projection for nature-based solutions has been published in the &lt;a href="https://www.tandfonline.com/journals/tcmt20" target="_blank"&gt;Journal of Carbon Management&lt;/a&gt; . I also wrote up some &lt;a href="https://anil.recoil.org/notes/mitigating-nbs-risk-paper" target="_blank"&gt;long-form thoughts&lt;/a&gt; on it here. &lt;a href="https://www.plantsci.cam.ac.uk/staff/dr-e-ping-rau" target="_blank"&gt;E.-Ping Rau&lt;/a&gt; , &lt;a href="https://www.jamesgross.org" target="_blank"&gt;James Gross&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; and &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; . Journal paper in &lt;a href="https://www.tandfonline.com/doi/full/10.1080/17583004.2024.2390854" target="_blank"&gt;Carbon Management&lt;/a&gt; (vol 15 issue 1). &lt;a href="https://www.tandfonline.com/doi/full/10.1080/17583004.2024.2390854" target="_blank"&gt;URL&lt;/a&gt; (tandfonline.com) &lt;a href="https://doi.org/10.1080/17583004.2024.2390854" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-nbs-risk.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-nbs-risk.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Stop, Start</title><link href="https://mort.io/blog/stop-start/" rel="alternate"></link><published>2024-08-30T01:00:00Z</published><updated>2024-08-30T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/stop-start/</id><summary type="html">Well, here we go again, again. Having stalled out back in 2013 to restart in 2015, I stalled out again in 2017, so am finally restarting seven years later. Again. I do have a dozen or more half-written posts from that period that may leak out slowly, in &lt;a href="https://mort.io/tags/old" target="_blank"&gt;backdated form&lt;/a&gt; . The stack for the blog has been updated again, naturally – the tools got better after all. So now this is using &lt;a href="https://www.getzola.org" target="_blank"&gt;Zola&lt;/a&gt; with, initially, the &lt;a href="https://github.com/jieiku/abridge/" target="_blank"&gt;abridge theme&lt;/a&gt; . I think it’s shinier, and hopefully also involves (almost) no JavaScript, is finally accessible, and not too heavyweight. In removing the excessive JavaScript, I also updated my &lt;a href="https://mort.io/blog/stop-start/./research#publications" target="_blank"&gt;publication list&lt;/a&gt; &lt;a href="https://github.com/mor1/bib2html" target="_blank"&gt;generation 47process&lt;/a&gt; : no more CoffeeScript and JavaScript, just some plain ol’ &lt;a href="https://www.python.org/" target="_blank"&gt;Python&lt;/a&gt; using the slick new &lt;a href="https://github.com/astral-sh/uv" target="_blank"&gt;uv&lt;/a&gt; tooling. The &lt;a href="https://github.com/casey/just" target="_blank"&gt;Justfile&lt;/a&gt; incantation is something like: papers :=...</summary><category term="mort’s mythopœia"></category></entry><entry><title>PACT Tropical Moist Forest Accreditation Methodology</title><link href="https://anil.recoil.org/news/2023-pact-tmf-3" rel="alternate"></link><published>2024-08-29T01:00:00Z</published><updated>2024-08-29T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-pact-tmf-3</id><summary type="html">We have just released the Tropical Moist Forest v2.1 specification, to follow up the now-expired &lt;a href="https://anil.recoil.org/news/2023-pact-tmf-2" target="_blank"&gt;v2.0&lt;/a&gt; from six months ago. The key updates are a new &lt;a href="https://tinyurl.com/PACTTMFexplainer" target="_blank"&gt;high-level explainer&lt;/a&gt; , as well as clarifiations for buffer zones and base tiles. &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://www.liverpool.ac.uk/geography-and-planning/research/environmental-change/postgraduates/" target="_blank"&gt;James Hartup&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; , &lt;a href="https://uk.linkedin.com/in/miranda-lam-a088561b4" target="_blank"&gt;Miranda Lam&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://www.lambdacambridge.com/robin-message" target="_blank"&gt;Robin Message&lt;/a&gt; , &lt;a href="https://www.plantsci.cam.ac.uk/staff/dr-e-ping-rau" target="_blank"&gt;E.-Ping Rau&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.plantsci.cam.ac.uk/staff/dr-charlotte-wheeler" target="_blank"&gt;Charlotte Wheeler&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/abigail-williams" target="_blank"&gt;Abby Williams&lt;/a&gt; . Working paper at &lt;a href="https://www.cambridge.org/engage/coe/article-details/66b9d9345101a2ffa813e37c" target="_blank"&gt;Cambridge Open Engage&lt;/a&gt; . &lt;a href="https://www.cambridge.org/engage/coe/article-details/66b9d9345101a2ffa813e37c" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.33774/coe-2024-gvslq" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-pact-tmf.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-pact-tmf.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 26 Aug 2024</title><link href="https://ryan.freumh.org/2024-08-26.html" rel="alternate"></link><published>2024-08-26T01:00:00Z</published><updated>2024-08-26T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-08-26.html</id><summary type="html">Previous: &lt;a href="2024-08-12.html" target="_blank"&gt;Mon 12 Aug 2024&lt;/a&gt; Next: &lt;a href="2024-09-02.html" target="_blank"&gt;Mon 2 Sep 2024&lt;/a&gt; Mon ok, so we’re going to try and modify opam-0install-solver to have different `roles` per implementation for every cargo package so there’s no restrictions on a single version of a package. where are the roles defined? Model.role where are the implementations defined? Model.implementations Okay, so what’s the problem? If we have a role as an OpamPackage (name + version) how do we specify the versions to solve in the first instance? Can we just say any of them? Maybe as constraints? Or do you know what, let’s just specify a version up front. How do we minimise duplicated dependancies? How do we do express version constraints with each role a different version? This is trickier than I anticipated. How do we express dependencies when we have each...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Discovering `restic`</title><link href="https://mort.io/blog/restic-discovery/" rel="alternate"></link><published>2024-08-26T01:00:00Z</published><updated>2024-08-26T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/restic-discovery/</id><summary type="html">I recently had cause to try to recover some files from my &lt;a href="https://restic.net/" target="_blank"&gt;restic&lt;/a&gt; backups. These go back for over a year now, and I could not remember at which point I’d mistakenly nuked the directory I now wanted to recover. restic find purports to be able to do this by searching through snapshots but I found that it’s quite slow, and can only search within a time range which is not that helpful when you don’t know the time range you need. So I did it by hand, which turned out to be rather faster. RESTIC_PASSWORD_FILE = /your/backup/password/file RESTIC_REPOSITORY = /your/backup/repository/ \ # list snapshots, filtering by DATE regex, grabbing just the snapshot hash sudo - E restic snapshots - c \ | rg DATE \ | cut - b1-8 \ | while read ss ; do echo " === $ ss " sudo - E restic ls $ ss | rg...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Nature Sustainability commentary on carbon and biodiversity credits</title><link href="https://anil.recoil.org/notes/nature-crossroads" rel="alternate"></link><published>2024-08-15T01:00:00Z</published><updated>2024-08-15T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/nature-crossroads</id><summary type="html">Our &lt;a href="https://anil.recoil.org/papers/2023-naturecredits" target="_blank"&gt;commentary on nature-based credits&lt;/a&gt; has been published in &lt;a href="https://www.nature.com/articles/s41893-024-01403-w" target="_blank"&gt;Nature 48Sustainability&lt;/a&gt; , lead expertly by my colleagues &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; and &lt;a href="https://www.naturerecovery.ox.ac.uk/people/sophus-zu-ermgassen/" target="_blank"&gt;Sophus zu Ermgassen&lt;/a&gt; . In our view the carbon credits markets are vitally important for forest conservation, but the key is to only transact these credits after they have been proven to be demonstrably additional using robust statistical techniques , so that we know before a sale that each credit represents real gains that would not otherwise have occurred without the carbon finance. A more scientific approach that supports transparent, third-party validation could absolutely transform these markets. And given the rapid rate of tropical forest loss, such upscaling of credibility is vitally necessary to raise investor confidence in protecting nature, since we can now be confident that every "credit" sold...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Debugging Electron apps</title><link href="https://mort.io/blog/electron-cli/" rel="alternate"></link><published>2024-08-14T01:00:00Z</published><updated>2024-08-14T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/electron-cli/</id><summary type="html">Another short one, this time the magic flags to get debug output and access to webdev tools under Electron apps such as Slack and whatnot on Wayland: APPLICATION -- enable-logging -- devtools \ -- platform = wayland -- enable-features = UseOzonePlatform -- password-store = " gnome_libsecret "</summary><category term="mort’s mythopœia"></category></entry><entry><title>Mon 12 Aug 2024</title><link href="https://ryan.freumh.org/2024-08-12.html" rel="alternate"></link><published>2024-08-12T01:00:00Z</published><updated>2024-08-12T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-08-12.html</id><summary type="html">Previous: &lt;a href="2024-08-05.html" target="_blank"&gt;Mon 5 Aug 2024&lt;/a&gt; Next: &lt;a href="2024-08-26.html" target="_blank"&gt;Mon 26 Aug 2024&lt;/a&gt; Tue apk-tree-sitter dependancy in opam-repository might need debian contrib KILL add translated opam-repository to opam-giga-repository KILL look at all the solving failures Wed trying to modify the zeroinstall solver to support solving multiple versions for e.g. cargo &lt;a href="http://roscidus.com/blog/blog/2014/09/17/simplifying-the-solver-with-functors/" target="_blank"&gt;http://roscidus.com/blog/blog/2014/09/17/simplifying-the-solver-with-functors/&lt;/a&gt; where does the CUDF conflict between multiple versions of the same package come from? so the fundamental problem here is we have different solving semantics for different parts of the dependency tree I wonder if it would be possible to have a depth first search for cargo’s portion of the dependency tree, and sat solving for the rest Thu where does the CUDF conflict between multiple versions of the same package come from? &lt;a href="https://github.com/ocaml/opam/blob/6cbdfbbb0b05c449e2e98eb81216f8cd2335e351/src/solver/opamSolver.ml#L295-L302" target="_blank"&gt;https://github.com/ocaml/opam/blob/6cbdfbbb0b05c449e2e98eb81216f8cd2335e351/src/solver/opamSolver.ml#L295-L302&lt;/a&gt; okay, what if we just modify the version...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 5 Aug 2024</title><link href="https://ryan.freumh.org/2024-08-05.html" rel="alternate"></link><published>2024-08-05T01:00:00Z</published><updated>2024-08-05T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-08-05.html</id><summary type="html">Previous: &lt;a href="2024-07-08.html" target="_blank"&gt;Mon 8 Jul 2024&lt;/a&gt; Next: &lt;a href="2024-08-12.html" target="_blank"&gt;Mon 12 Aug 2024&lt;/a&gt; Mon Package Management Test with `opam install –dry-run` you can emulate it by encoding their dependencies and then solving in that order with a real client, you would just invoke cargo once cargo depexts 0install memo bug getting latest ones solve for cargo equivalent to cargo install what if we did this for nix flakes? &lt;a href="https://github.com/snowfallorg/thaw" target="_blank"&gt;https://github.com/snowfallorg/thaw&lt;/a&gt; Eon So, interesting Eon problem: Patrick’s server failed to connect to mine, presumably after a restart of both, as it was querying itself for `freumh.org`: Aug 05 10:37:31 sirref capd[1761828]: capd: [INFO] Connecting to tcp:freumh.org:7000... Aug 05 10:37:31 sirref capd[1761828]: +Failed to connnect to primary: Unknown host "freumh.org" Aug 05 10:37:31 sirref capd[1761828]: +Retrying in 60.000000 I think I’ve just...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Building a Low-Powered NAS</title><link href="https://ryan.freumh.org/nas.html" rel="alternate"></link><published>2024-08-03T01:00:00Z</published><updated>2024-08-03T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/nas.html</id><summary type="html">Published Sat 3 Aug 2024. Tags: &lt;a href="/technology.html" target="_blank"&gt;technology&lt;/a&gt; . At the start of this year I built a Network-Attached Storage (NAS) server to store backups, photos &amp; videos, digitised VHS tapes, cached builds, and more. Having a dedicated machine has allowed me to use it in ways that wouldn’t be feasible with cloud storage, such as live transcoding of media playback to different resolutions or codecs, and having it physically co-located makes it resilient to network outages. I had a look at some of the pre-built solutions out there, but they seemed expensive for what they were, often having architectures a few generations behind. So I decided to build my own. With the price of energy in the UK power efficiency was a primary concern and informed many of the decisions made when building it. Hardware The...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Using wasm to locally explore geospatial layers</title><link href="https://anil.recoil.org/ideas/life-explorer-wasm" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/life-explorer-wasm</id><summary type="html">Using wasm to locally explore geospatial layers This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently being worked on by &lt;a href="mailto:sf729@cam.ac.uk" target="_blank"&gt;Sam Forbes&lt;/a&gt; . It is co-supervised with &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; . Some of my projects like &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;Mapping LIFE on Earth&lt;/a&gt; or &lt;a href="https://anil.recoil.org/projects/rsn" target="_blank"&gt;Remote Sensing of Nature&lt;/a&gt; involve geospatial base maps with gigabytes or even terabytes of data. This data is usually split up into multiple GeoTIFFs, each of which has a slice of information. For example, the LIFE persistence maps have around 30000 maps for individual species, and then an aggregated GeoTIFF for mammals, birds, reptiles and so forth. This project will explore how to build a WebAssembly-based visualisation tool for geospatial ecology data. This existing data is in the form of GeoTIFF files, which are image files with embedded...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Towards reproducible URLs with provenance</title><link href="https://anil.recoil.org/ideas/urls-with-provenance" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/urls-with-provenance</id><summary type="html">Towards reproducible URLs with provenance This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is available for being worked on. It may be co-supervised with &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; . Vurls are an attempt to add versioning to URI resolution. For example, what should happen when we request https://doi.org/10.1109/SASOW.2012.14 and how do we track the chain of events that leads to an answer coming back? The prototype &lt;a href="https://github.com/quantifyearth/vurl" target="_blank"&gt;vurl&lt;/a&gt; library written in OCaml outputs the following: # Eio_main.run @@ fun env -&gt; Vurl_eio.with_default ~net:env#net env#cwd @@ fun () -&gt; let vurl = Vurl.of_uri "https://doi.org/10.1109/SASOW.2012.14" in let vurl, file = Vurl.file vurl in Vurl.pp Format.std_formatter vurl;; { "intentional_uri": "https://doi.org/10.1109/SASOW.2012.14", "segments": [ {...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Real-time mapping of changes in species extinction risks</title><link href="https://anil.recoil.org/ideas/mapping-species-extinction-risks" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/mapping-species-extinction-risks</id><summary type="html">Real-time mapping of changes in species extinction risks This is an idea proposed in 2024 as a Cambridge Computer Science PhD topic, and is currently being worked on by &lt;a href="https://emiliolr.github.io" target="_blank"&gt;Emilio Luz-Ricca&lt;/a&gt; . It is co-supervised with &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; . Loss of habitat represents the most significant threat to wildlife overall, but advances in satellite sensing have enabled the assessment of habitat extent with comprehensive spatial coverage and reasonable temporal resolution. To address rising demand for metrics to quantify biodiversity, we have developed the LIFE metric (see &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;Mapping LIFE on Earth&lt;/a&gt; ) that models the effect of landuse changes on species extinction risk as a function of Areas of Habitat (AoH). This PhD work explores how to deal with the anthropogenic threats beyond simple habitat loss, including hunting, agricultural...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Preprint on Terracorder sensing now available</title><link href="https://anil.recoil.org/news/2024-terracorder-1" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-terracorder-1</id><summary type="html">Our preprint on the Terracorder ground sensing platform I've been working with &lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; at Imperial on is now available on arXiv. It's a heady combination of ESP32 very low power hardware, combined with Q-learning to build cooperative networks of them that can run for long periods of time without wasting energy on redundant operations. &lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; , &lt;a href="https://www.imperial.ac.uk/people/sarab.sethi" target="_blank"&gt;Sarab Sethi&lt;/a&gt; , &lt;a href="https://haddadi.github.io/" target="_blank"&gt;Hamed Haddadi&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Working paper at &lt;a href="http://arxiv.org/abs/2408.02407" target="_blank"&gt;arXiv&lt;/a&gt; . &lt;a href="http://arxiv.org/abs/2408.02407" target="_blank"&gt;URL&lt;/a&gt; (arxiv.org) &lt;a href="https://doi.org/10.48550/arXiv.2408.02407" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-terracorder.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-terracorder.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Nature Sustainability article on carbon/biodiversity credits</title><link href="https://anil.recoil.org/news/2023-naturecredits-1" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-naturecredits-1</id><summary type="html">Our commentary on nature-based credits has been published in &lt;a href="https://www.nature.com/natsustain/" target="_blank"&gt;Nature Sustainability&lt;/a&gt; . I wrote some &lt;a href="https://anil.recoil.org/notes/nature-crossroads" target="_blank"&gt;thoughts&lt;/a&gt; about it here as well. &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://uk.linkedin.com/in/siddarthshrikanth" target="_blank"&gt;Siddarth Shrikanth&lt;/a&gt; , &lt;a href="https://www.biology.ox.ac.uk/people/joseph-bull" target="_blank"&gt;Joseph Bull&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.naturerecovery.ox.ac.uk/people/sophus-zu-ermgassen/" target="_blank"&gt;Sophus zu Ermgassen&lt;/a&gt; . Journal paper in &lt;a href="https://www.nature.com/articles/s41893-024-01403-w" target="_blank"&gt;Nature Sustainability&lt;/a&gt; . &lt;a href="https://www.nature.com/articles/s41893-024-01403-w" target="_blank"&gt;URL&lt;/a&gt; (nature.com) &lt;a href="https://doi.org/10.1038/s41893-024-01403-w" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-naturecredits.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-naturecredits.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mapping hunting risks for wild meat in protected areas</title><link href="https://anil.recoil.org/ideas/mapping-hunting-risks-for-wild-meat" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/mapping-hunting-risks-for-wild-meat</id><summary type="html">Mapping hunting risks for wild meat in protected areas This is an idea proposed in 2024 as a postdoctoral project, and is currently being worked on by &lt;a href="https://charlesemogor.com" target="_blank"&gt;Charles Emogor&lt;/a&gt; . It is co-supervised with &lt;a href="https://teamcore.seas.harvard.edu/tambe" target="_blank"&gt;Milind Tambe&lt;/a&gt; . There is an important balance needed between the biodiversity damage caused by hunting in protected areas and the well-being of local communities that depend on it. One understudied driver of overly damaging hunting in these areas is &lt;a href="https://en.wikipedia.org/wiki/Trapping" target="_blank"&gt;snaring&lt;/a&gt; (as opposed to gun hunting) which potentially increases carcass wastage and hence causing biodiversity harm without proportionate benefit to the community. This project examines how to improve the efficacy of anti-poaching ranger patrols while also plugging the knowledge gap around wild meat snaring. Both of these research topics can be tackled in a...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Implementing a higher-order choreographic language</title><link href="https://anil.recoil.org/ideas/choregraphic-programming-ocaml" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/choregraphic-programming-ocaml</id><summary type="html">Implementing a higher-order choreographic language This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://github.com/Rokcas" target="_blank"&gt;Rokas Urbonas&lt;/a&gt; . It was co-supervised with &lt;a href="https://www.cst.cam.ac.uk/people/ds709" target="_blank"&gt;Dmirtij Szamozvancev&lt;/a&gt; . This project aims to implement a functional choreographic language inspired by the &lt;a href="https://dl.acm.org/doi/pdf/10.1145/3498684" target="_blank"&gt;Pirouette calculus&lt;/a&gt; . This language was meant to make the notoriously difficult process of implementing distributed algorithms easier, while offering a practical execution model for multi-participant programs. Additionally, it aimed to match the expressiveness and performance of similar existing solutions. The project completed very successfully, and resulted in &lt;a href="https://github.com/Rokcas/chorcaml" target="_blank"&gt;ChorCaml&lt;/a&gt; , an embedded DSL for choreographic programming in OCaml. The language facilitates the implementation of distributed algorithms, while...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Foundation models for complex geospatial tasks</title><link href="https://anil.recoil.org/ideas/ssl-for-geospatial-tasks" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/ssl-for-geospatial-tasks</id><summary type="html">Foundation models for complex geospatial tasks This is an idea proposed in 2024 as a Cambridge Computer Science PhD topic, and is currently being worked on by &lt;a href="https://www.cst.cam.ac.uk/people/og309" target="_blank"&gt;Onkar Gulati&lt;/a&gt; . It is co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; and &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; . Self-supervised learning (SSL) represents a shift in machine learning that enables versatile pretrained models to leverage the complex relationships present in dense–oftentimes multispectral and multimodal–remote sensing data. This in turn can accelerate how we address sophisticated downstream geospatial tasks for which current methodologies prove insufficient, ranging from land cover classification to urban building segmentation to crop yield measurement and wildfire forecasting. This PhD project explores the question of how current SSL methodologies may be altered...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>An imperative, pure and effective specification language</title><link href="https://anil.recoil.org/ideas/effective-specification-languages" rel="alternate"></link><published>2024-08-01T01:00:00Z</published><updated>2024-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/effective-specification-languages</id><summary type="html">An imperative, pure and effective specification language This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently being worked on by &lt;a href="mailto:ms2922@cam.ac.uk" target="_blank"&gt;Max Smith&lt;/a&gt; . It is co-supervised with &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; . Formal specification languages are conventionally rather functional looking, and not hugely amenable to iterative development. In contrast, real world specifications for geospatial algorithms tend to developed with "holes" in the logic which is then filled in by a domain expert as they explore the datasets through small pieces of exploratory code and visualisations. This project seeks to investigate the design of a specification language that looks and feels like Python, but that supports typed holes and the robust semantic foundations of a typed functional language...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Self Hosting - 2024 edition</title><link href="https://digitalflapjack.com/blog/hosting24/" rel="alternate"></link><published>2024-07-18T17:39:22Z</published><updated>2024-07-18T17:39:22Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/hosting24/</id><summary type="html">Starting in around 2018 or so I decided to start reclaiming my Internet. Before then, as most people had I suspect, I'd drifted into relying on cloud services for just about everything I could possibly want, but by that year I think it'd become apparent to me that I didn't like relying on other companies as the main host of my digital legacy. There was no one thing, but it seems time and time again large internet service providers like to make sure I feel glad that I've done this by finding new ways to exploit their users' data. That said, I'm somewhat pragmatic about it, as hosting all the things is hard and time consuming, and I really don't like doing system administration. There's nothing wrong with it, and I know many people who enjoy doing that, but it doesn't really bring me joy....</summary><category term="Digital Flapjack"></category></entry><entry><title>New set of ideas for incoming students</title><link href="https://anil.recoil.org/notes/student-ideas" rel="alternate"></link><published>2024-07-15T01:00:00Z</published><updated>2024-07-15T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/student-ideas</id><summary type="html">I've refreshed the set of project &lt;a href="https://anil.recoil.org/ideas" target="_blank"&gt;ideas&lt;/a&gt; for incoming &lt;a href="https://www.cst.cam.ac.uk/teaching/part-ii" target="_blank"&gt;CST Part II&lt;/a&gt; and &lt;a href="https://www.cst.cam.ac.uk/teaching/masters" target="_blank"&gt;MPhil&lt;/a&gt; and PhD student projects for 2024-2025. These are not an exhaustive list, but intended to kickstart conversations for things we could work on together. Do get in touch if you're an incoming student and see something that grabs your interest.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Real-time Wildlife Monitoring</title><link href="https://watch.eeg.cl.cam.ac.uk/w/tyPqbNvp3isgTDZVVoLFD1" rel="alternate"></link><published>2024-07-12T19:52:48Z</published><updated>2024-07-12T19:52:48Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/tyPqbNvp3isgTDZVVoLFD1</id><summary type="html">Abstract: This research introduces an AI-based alert system to reduce human-wildlife conflicts in the Romanian Carpathian Mountains. Globally, conflicts between people and wildlife are rising due to population growth, shifting land use patterns and climate change. In Romania, mountain communities are impacted by bears and wild boars, which damage livestock, crops and property. These conflicts can undermine conservation efforts and may result in the killing of problematic animals. In collaboration with Fundația Conservation Carpathia, this research supports Rapid Intervention Teams who respond to wildlife activity in mountain villages. Six years of camera trap data are used to train and test AI models to detect and classify European mammals. These models are integrated into an alert system...</summary><category term="EEG Seminars"></category></entry><entry><title>Mon 8 Jul 2024</title><link href="https://ryan.freumh.org/2024-07-08.html" rel="alternate"></link><published>2024-07-08T01:00:00Z</published><updated>2024-07-08T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-07-08.html</id><summary type="html">Previous: &lt;a href="2024-06-24.html" target="_blank"&gt;Mon 24 Jun 2024&lt;/a&gt; Next: &lt;a href="2024-08-05.html" target="_blank"&gt;Mon 5 Aug 2024&lt;/a&gt; &lt;a href="https://github.com/RyanGibb/opam-apk-repository" target="_blank"&gt;https://github.com/RyanGibb/opam-apk-repository&lt;/a&gt; a27b6fb1f2ab# opam repo add opam-apk-repository /opam-apk-repository a27b6fb1f2ab# opam update a27b6fb1f2ab# opam update [WARNING] Running as root is not recommended &lt;&gt;&lt;&gt; Updating package repositories &gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt; [opam-apk-repository] synchronised from file:///opam-apk-repository [default] no changes from https://opam.ocaml.org Now run 'opam upgrade' to apply any package updates. a27b6fb1f2ab# opam install nano [WARNING] Running as root is not recommended The following actions will be performed: - install ncurses-dev 6.4_p20240420-r0 [required by nano] - install ocaml-base-compiler 5.2.0 - install nano 8.0-r0 - install ocaml-config 3 - install ocaml 5.2.0 - install base-domains base - install base-nnp base...</summary><category term="ryan.freumh.org"></category></entry><entry><title>COMPASS 2024 report on the CoRE stack RIC meeting</title><link href="https://anil.recoil.org/notes/compass2024-ric-tripreport" rel="alternate"></link><published>2024-07-08T01:00:00Z</published><updated>2024-07-08T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/compass2024-ric-tripreport</id><summary type="html">This is a trip report of &lt;a href="https://compass.acm.org" target="_blank"&gt;ACM COMPASS 2024&lt;/a&gt; held in New Delhi, which had a novel track of &lt;a href="https://compass.acm.org/research-impact-collaboratives/" target="_blank"&gt;"Research to Impact Collaboratives"&lt;/a&gt; that drew me in. The general chair, &lt;a href="https://www.cse.iitd.ac.in/~aseth/" target="_blank"&gt;Aadi Seth&lt;/a&gt; wrote a fantastic book on " &lt;a href="https://www.cse.iitd.ac.in/~aseth/act.html" target="_blank"&gt;Technology and Disempowerment&lt;/a&gt; " a few years ago, and he organised one RIC session on the CoRE Stack -- a climate adaptation stack for rural communities. This was a must-visit for me as it is closely related to the work we've been doing on &lt;a href="https://anil.recoil.org/projects/rsn" target="_blank"&gt;Remote Sensing of Nature&lt;/a&gt; and &lt;a href="https://anil.recoil.org/projects/plancomp" target="_blank"&gt;Planetary Computing&lt;/a&gt; . The following notes are somewhat raw as they have only been lightly edited, but please refer to the more polished documents on the &lt;a href="https://docs.google.com/document/d/1MJ-Nw_P3z6gI9rvh4OcjJmdZRE83D_OXedgEeDZDnm8/edit" target="_blank"&gt;agenda for ACM COMPASS RIC&lt;/a&gt; and the overall &lt;a href="https://core-stack.org" target="_blank"&gt;CoRE Stack&lt;/a&gt; initiative on commoning technologies for resilience and equality The conference itself was held at &lt;a href="http://iiitd.ac.in/" target="_blank"&gt;IIIT-D&lt;/a&gt; in New Delhi, right at the cusp of the monsoon season and after record-breaking temperatures. Luckily,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Grid-friendly Energy Community Coordination for Reducing Grid Reinforcement Needs</title><link href="https://watch.eeg.cl.cam.ac.uk/w/iSPamqxUdmP2CwNNdGyQSN" rel="alternate"></link><published>2024-07-05T18:14:38Z</published><updated>2024-07-05T18:14:38Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/iSPamqxUdmP2CwNNdGyQSN</id><summary type="html">Abstract: This talk discusses how market mechanisms and automated trading strategies can be used to control the flexible consumption and generation units of the community members in such a way that they make the best possible use of existing distribution networks and support the network operator in avoiding and eliminating congestion situations. This ultimately helps avoiding grid reinforcements or allows to provide a better service with the existing grid, keeping in mind that it takes much longer to reinforce the grid than to build and connect many new (fluctuating) decentralized renewable generators and new loads such as heat pumps and electric vehicles. Bio: Since 2017: Professor of Control and Integration of Grids at INATECH; before: Professor for Energy Systems Technology and Energy...</summary><category term="EEG Seminars"></category></entry><entry><title>Second preprint of the LIFE biodiversity metric available</title><link href="https://anil.recoil.org/news/2024-life-2" rel="alternate"></link><published>2024-07-01T01:00:00Z</published><updated>2024-07-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-life-2</id><summary type="html">We have made an update to the &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;LIFE&lt;/a&gt; biodiversity metric based on reviewer feedback, and are very please that it has been accepted for publication early next year as part of a special issue from the Royal Society. Any comments would be most welcome before we submit the final proofs in a few months. &lt;a href="https://www.conservation.cam.ac.uk/staff/dr-alison-eyres" target="_blank"&gt;Alison Eyres&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball" target="_blank"&gt;Thomas Ball&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/andy-arnell/" target="_blank"&gt;Andy Arnell&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/daniele-baisero/" target="_blank"&gt;Daniele Baisero&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/paz-duran/" target="_blank"&gt;América Paz Durán&lt;/a&gt; , &lt;a href="https://www.york.ac.uk/sei/staff/jonathan-green/" target="_blank"&gt;Jonathan Green&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/rhys-green" target="_blank"&gt;Rhys Green&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; . Journal paper in &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2023.0327" target="_blank"&gt;Philosophical Transactions of the Royal Society&lt;/a&gt; (vol 380 issue 1917). &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2023.0327" target="_blank"&gt;URL&lt;/a&gt; (royalsocietypublishing.org) &lt;a href="https://doi.org/10.1098/rstb.2023.0327" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-life.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-life.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Annual Monitoring of Forest AGB</title><link href="https://watch.eeg.cl.cam.ac.uk/w/2kgatqvAtb6XUAgF2UoKZz" rel="alternate"></link><published>2024-06-28T18:13:31Z</published><updated>2024-06-28T18:13:31Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/2kgatqvAtb6XUAgF2UoKZz</id><summary type="html">Title: Annual Monitoring of Forest AGB over a Period of 10 years Using SSL-derived Representations from Optical Time Series Abstract: I recap the functioning of our fully self-supervised learning pipeline based on the spectral-temporal Barlow Twins. The SSL approach generates highly informative representations at 10m spatial resolution from cloud-corrupted optical time series. The resulting representations are well correlated with GEDI-derived relative height measurements so that an AGB model for vegetation/forest of up to 300-500 t/ha can be derived. I show that the model transfers well between years making it possible to train the model on (for example) one year of Sentinel-2 data together with the corresponding GEDI measurements, and applying the frozen model to Landsat data acquired...</summary><category term="EEG Seminars"></category></entry><entry><title>HyWay: Enabling Mingling in the Hybrid World</title><link href="https://watch.eeg.cl.cam.ac.uk/w/pUULKS4bi9hG9uUy9prhF2" rel="alternate"></link><published>2024-06-28T18:13:11Z</published><updated>2024-06-28T18:13:11Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/pUULKS4bi9hG9uUy9prhF2</id><summary type="html">We present HyWay, short for “Hybrid Hallway”, to enable mingling and informal interaction among in-person and remote users in semi-structured and unstructured hybrid settings. Key to the design of HyWay is bridging the awareness gap between physical and virtual users and providing the virtual users the same agency as physical users. We explain how HyWay achieves these goals with an agile, light touch approach that centers on commodity hardware, frictionless bootstrapping, and a deploy-learn-refine flywheel to improve the system continually. We present our learnings from multiple deployments and discuss ongoing research aimed at weaving together more tightly the virtual and the physical realms. Bio: Venkat Padmanabhan is the Managing Director of Microsoft Research India in Bengaluru. He...</summary><category term="EEG Seminars"></category></entry><entry><title>Reinstalling `maestral`</title><link href="https://mort.io/blog/reinstall-maestral/" rel="alternate"></link><published>2024-06-28T01:00:00Z</published><updated>2024-06-28T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/reinstall-maestral/</id><summary type="html">A short one this; just a crib of commands to redo maestral (unofficial &lt;a href="https://dropbox.com/" target="_blank"&gt;Dropbox&lt;/a&gt; client) configuration. # remove existing configuration rm ~ /.config/maestral/maestral.ini # appears to fail with `/usr/bin/env 'bash': No such file or directory` maestral autostart &amp;&amp; systemctl -- user daemon-reload # ...so instead, just remmeber to do the following on restart maestral stop &amp;&amp; maestral start # if desired, add autocompletion for `maestral` in bash [[ $ ( which maestral 2 &gt; /dev/null ) ]] &amp;&amp; source &lt; ( maestral completion bash )</summary><category term="mort’s mythopœia"></category></entry><entry><title>Speaking at CCI workshop on conservation evidence</title><link href="https://anil.recoil.org/news/80795e06-ac75-4015-b178-3cfcbb233685-1" rel="alternate"></link><published>2024-06-25T01:00:00Z</published><updated>2024-06-25T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/80795e06-ac75-4015-b178-3cfcbb233685-1</id><summary type="html">&lt;a href="https://www.zoo.cam.ac.uk/directory/bill-sutherland" target="_blank"&gt;Bill Sutherland&lt;/a&gt; organised a workshop at the CCI on how to bring about an &lt;a href="https://about.conservationevidence.com/2024/07/12/the-next-steps-for-transforming-conservation-ideas-from-the-effectiveness-revolution-workshop/" target="_blank"&gt;Effectiveness Revolution&lt;/a&gt; for transforming conservation into an evidence-driven discipline. The aim was to discuss the "Evidence Emergency" (The Wildlife Trusts' term), the urgent need to embed evidence into decision-making and to create additional evidence to fill the considerable gaps in the evidence base, to improve conservation practice. I gave a talk about our early results with the &lt;a href="https://anil.recoil.org/papers/2024-ce-llm" target="_blank"&gt;conservation copilots&lt;/a&gt; work.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 24 Jun 2024</title><link href="https://ryan.freumh.org/2024-06-24.html" rel="alternate"></link><published>2024-06-24T01:00:00Z</published><updated>2024-06-24T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-06-24.html</id><summary type="html">Previous: &lt;a href="2024-05-27.html" target="_blank"&gt;Mon 27 May 2024&lt;/a&gt; Next: &lt;a href="2024-07-08.html" target="_blank"&gt;Mon 8 Jul 2024&lt;/a&gt; Coding TLS get eon to provision it’s own certificate</summary><category term="ryan.freumh.org"></category></entry><entry><title>Tackling the Hidden Costs of Computational Science</title><link href="https://watch.eeg.cl.cam.ac.uk/w/nfXCsAiyawBPM2qzdpRCfB" rel="alternate"></link><published>2024-06-21T16:03:59Z</published><updated>2024-06-21T16:03:59Z</updated><author><name>Seminars</name></author><id>https://watch.eeg.cl.cam.ac.uk/w/nfXCsAiyawBPM2qzdpRCfB</id><summary type="html">Title: Tackling the Hidden Costs of Computational Science: GREENER Principles for Environmentally Sustainable Research Abstract: From genetic studies and astrophysics simulations to AI, scientific computing has enabled amazing discoveries and there is no doubt it will continue to do so. However, the corresponding energy usage and environmental impacts are a growing concern in light of the urgency of the climate crisis, so what can we all do about it? Tackling this issue and making it easier for scientists to engage with sustainable computing is what motivated the Green Algorithms project. Through the prism of the GREENER principles for environmentally sustainable science, we will discuss what we learned along the way, how to estimate the impact of our work and what levers scientists and...</summary><category term="EEG Seminars"></category></entry><entry><title>Interview with AI@CAM about conservation</title><link href="https://anil.recoil.org/notes/aicam-interview-ce" rel="alternate"></link><published>2024-06-09T01:00:00Z</published><updated>2024-06-09T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/aicam-interview-ce</id><summary type="html">I talked to the &lt;a href="https://ai.cam.ac.uk" target="_blank"&gt;AI@Cam&lt;/a&gt; team to discuss our &lt;a href="https://anil.recoil.org/notes/aicn-in-aicam" target="_blank"&gt;AICN&lt;/a&gt; project and what we're planning to do in the &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;Conservation Evidence Copilots&lt;/a&gt; team. Over the last two decades, the University of Cambridge-based project Conservation Evidence has screened more than 1.6 million scientific papers on conservation, as well as manually summarising 8,600+ studies relating to conservation actions. However, the current project’s work is limited by the specialised skills needed to screen and summarise relevant studies. It took more than 75 person years to manually curate the current database and only a few 100 papers can be added each year. By accelerating these efforts, AI has the potential to transform the impact this database has on biodiversity conservation. What we’re aiming to do through the ai@cam project – bringing...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Hyperspectrally identifying trees in tropical forests</title><link href="https://anil.recoil.org/news/2024-hyper-tropical-mapping-1" rel="alternate"></link><published>2024-06-01T01:00:00Z</published><updated>2024-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-hyper-tropical-mapping-1</id><summary type="html">A preprint on using &lt;a href="https://en.wikipedia.org/wiki/Hyperspectral_imaging" target="_blank"&gt;hyperspectral sensors&lt;/a&gt; to perform tree species identification across the tropics is now available on bioarxiv. This study introduces a new approach for mapping tree species linking a multi-temporal implementation of the CNN method detectree2 to segment tree-crowns from aerial photographs to machine learning classifiers to identify species from hyperspectral data. &lt;a href="https://patball1.github.io" target="_blank"&gt;James G. C. Ball&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://scholar.google.com/citations?user=gQYhlDYAAAAJ&amp;hl=fr" target="_blank"&gt;Anthony Laybros&lt;/a&gt; , &lt;a href="https://www.researchgate.net/profile/Colin-Prieur" target="_blank"&gt;Colin Prieur&lt;/a&gt; , &lt;a href="https://www.bristol.ac.uk/people/person/Toby-Jackson-0f0cc27a-9b35-479c-b2a6-7459834ca871/" target="_blank"&gt;Toby Jackson&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://orcid.org/0000-0002-5323-3866" target="_blank"&gt;Nicolas Barbier&lt;/a&gt; , &lt;a href="https://scholar.google.ca/citations?user=bc4TxdsAAAAJ" target="_blank"&gt;Gregoire Vincent&lt;/a&gt; and &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; . Working paper at &lt;a href="https://www.biorxiv.org/content/10.1101/2024.06.24.600405v1" target="_blank"&gt;bioRxiv&lt;/a&gt; . &lt;a href="https://www.biorxiv.org/content/10.1101/2024.06.24.600405v1" target="_blank"&gt;URL&lt;/a&gt; (biorxiv.org) &lt;a href="https://doi.org/10.1101/2024.06.24.600405" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-hyper-tropical-mapping.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-hyper-tropical-mapping.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 27 May 2024</title><link href="https://ryan.freumh.org/2024-05-27.html" rel="alternate"></link><published>2024-05-27T01:00:00Z</published><updated>2024-05-27T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-05-27.html</id><summary type="html">Previous: &lt;a href="2024-05-20.html" target="_blank"&gt;Mon 20 May 2024&lt;/a&gt; Next: &lt;a href="2024-06-24.html" target="_blank"&gt;Mon 24 Jun 2024&lt;/a&gt; NixOS Modules On Friday we were talking about doing something alternative to Nix, but without a clear statement of the problems with Nix. One clear problem I have with the NixOS ecosytem is the module system. From section 5.1 of the &lt;a href="https://edolstra.github.io/pubs/nixos-jfp-final.pdf" target="_blank"&gt;NixOS 49paper&lt;/a&gt; , the module system allows ‘separation of concerns: each module defines a single, “logical” part of the system (e.g., some system service, support for a certain kind of hardware device, or an aspect such as the system path), even though its implementation might cross-cut many “physical” parts (e.g., the derivations that build the boot scripts)’. In one place I can define everything needed for a particular application; I can describe a matrix setup server, reverse proxy, postgres database, dns records, and TLS...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Programming for the Planet</title><link href="https://anil.recoil.org/news/d592bf17-c835-435f-9469-f0f65e926975-1" rel="alternate"></link><published>2024-05-27T01:00:00Z</published><updated>2024-05-27T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/d592bf17-c835-435f-9469-f0f65e926975-1</id><summary type="html">I was invited by Mary Sheeran to deliver a keynoted at &lt;a href="https://www.lambdadays.org/" target="_blank"&gt;Lambda Days&lt;/a&gt; , and I decided to go along to talk about my work on &lt;a href="https://anil.recoil.org/videos/981c00b5-32c0-4cac-a387-6c945dfa9934" target="_blank"&gt;Programming for the Planet&lt;/a&gt; . The conference was a really vibrant crowd and I would definitely go along in future years. It's best summarised via an &lt;a href="https://www.youtube.com/watch?v=Kao-LguvYDU&amp;list=PLvL2NEhYV4ZtX2TurK0BIlKD_cHct0rSs" target="_blank"&gt;interview video&lt;/a&gt; they took of all the speakers.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 20 May 2024</title><link href="https://ryan.freumh.org/2024-05-20.html" rel="alternate"></link><published>2024-05-20T01:00:00Z</published><updated>2024-05-20T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-05-20.html</id><summary type="html">Previous: &lt;a href="2024-05-13.html" target="_blank"&gt;Mon 13 May 2024&lt;/a&gt; Next: &lt;a href="2024-05-27.html" target="_blank"&gt;Mon 27 May 2024&lt;/a&gt; Mon: Met with Anil We skimmed the Carbon-aware name resolution paper. Anil said it was a narrow contribution, we’re making too many points in one paper, and that it needs to be framed in a research style with a hypothesis and experimentation attempting to disprove the hypothesis. He liked the mailserver redundancy example (powering up the backup when the primary goes down), which he likened to self-scaling applications managing the power state of machines. He said that the carbon-aware load balancing (Patrick’s section) seems more general than specific to emissions. Anil also said carbon isn’t the best terminology. I agree – we were following HotCarbon’s wording. We talked about doing a simulation to disprove the hypothesis. And how there’s a pareto...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 13 May 2024</title><link href="https://ryan.freumh.org/2024-05-13.html" rel="alternate"></link><published>2024-05-13T01:00:00Z</published><updated>2024-05-13T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-05-13.html</id><summary type="html">Previous: &lt;a href="2024-05-06.html" target="_blank"&gt;Mon 6 May 2024&lt;/a&gt; Next: &lt;a href="2024-05-20.html" target="_blank"&gt;Mon 20 May 2024&lt;/a&gt; Wrote ‘Carbon-aware Name Resolution’ with Patrick for HotCarbon but ultimately decided not to submit it as the conference doesn’t seem to align with our interests and the paper could use more polishing. We’re planning on polishing it up and sticking it on arxiv as a basis for a HotNets submission. We spoke to Anil about this and came away with a bunch of ideas, including Managing the power schedule of resource-constrained devices. Re-visiting the idea of giving each service a unique IPv6 address. Store-and-forward energy budgeting for low powered sensor networks. Why isn’t the whole Internet a Filesytem (could the DNS encode file paths?). Providing TLS to MQTT. Having a BGP IPv6 testbed for this with Mythic Beasts. Workload scheduling in a compute...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 6 May 2024</title><link href="https://ryan.freumh.org/2024-05-06.html" rel="alternate"></link><published>2024-05-06T01:00:00Z</published><updated>2024-05-06T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-05-06.html</id><summary type="html">Previous: &lt;a href="2024-04-29.html" target="_blank"&gt;Mon 29 Apr 2024&lt;/a&gt; Next: &lt;a href="2024-05-13.html" target="_blank"&gt;Mon 13 May 2024&lt;/a&gt; My Tarides contract is progressing nicely, and we now have Opam setting an environment built from Nix to provide external dependencies. I’ve also indexed all of Nixpkgs history in order to do version solving across it. Spoke to Roy about a possible Part II project, and wrote another proposal on an ‘OCaml Wayland Compositor’; something I’ve been meaning to do for a while but have yet to find the time. Wayland &lt;a href="#fn1" target="_blank"&gt;1&lt;/a&gt; is a communications protocol for next-generation display servers used in Unix-like systems which has been adopted as the default display server by Linux distributions including Fedora with KDE, and Ubuntu and Debian with GNOME. It aims to replace the venerable X display server with a modern alternative. X leaves logic such as window...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Quantifying the impact of the food we eat on species extinctions</title><link href="https://anil.recoil.org/news/2024-food-life-1" rel="alternate"></link><published>2024-05-01T01:00:00Z</published><updated>2024-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-food-life-1</id><summary type="html">Submitted preprint on quantifying the biodiversity cost of global food consumption for peer review &lt;a href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball" target="_blank"&gt;Thomas Ball&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/staff/dr-alison-eyres" target="_blank"&gt;Alison Eyres&lt;/a&gt; , &lt;a href="https://www.york.ac.uk/sei/staff/jonathan-green/" target="_blank"&gt;Jonathan Green&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , David Williams and &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; . Working paper at &lt;a href="https://www.cambridge.org/engage/coe/article-details/67a21eac81d2151a0225692b" target="_blank"&gt;Cambridge Open Engage&lt;/a&gt; . &lt;a href="https://www.cambridge.org/engage/coe/article-details/67a21eac81d2151a0225692b" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.33774/coe-2024-fl5fk-v2" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-food-life.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-food-life.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Predicting species using machine learning at CCAI</title><link href="https://anil.recoil.org/news/2024-sdm-sa-1" rel="alternate"></link><published>2024-05-01T01:00:00Z</published><updated>2024-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-sdm-sa-1</id><summary type="html">&lt;a href="https://github.com/emorris7" target="_blank"&gt;Emily Morris&lt;/a&gt; did some great MPhil work here in her Masters on using &lt;a href="https://anil.recoil.org/ideas/sdms-with-cnns" target="_blank"&gt;CNNs with satellite data&lt;/a&gt; to do species predictions in South Africa better. She presented it at the &lt;a href="https://www.climatechange.ai/events/iclr2024" target="_blank"&gt;ICLR CCAI&lt;/a&gt; workshop in Vienna, and is now off to do a PhD at Oxford! Species distribution models are crucial tools that predict species locations by interpolating observed field data with environmental information. We develop an improved, scalable method for species distribution modelling by proposing a dataset pipeline that incorporates global remote sensing imagery, land use classification data, environmental variables, and observation data, and utilising this with CNN models to predict species presence at higher spatial and temporal resolutions than well-established species distribution modelling methods. &lt;a href="https://github.com/emorris7" target="_blank"&gt;Emily Morris&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; ,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Low-latency wayland compositor in OCaml</title><link href="https://anil.recoil.org/ideas/wayland" rel="alternate"></link><published>2024-05-01T01:00:00Z</published><updated>2024-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/wayland</id><summary type="html">Low-latency wayland compositor in OCaml This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently being worked on by &lt;a href="mailto:tt492@cam.ac.uk" target="_blank"&gt;Tom Thorogood&lt;/a&gt; . It is co-supervised with &lt;a href="https://ryan.freumh.org" target="_blank"&gt;Ryan Gibb&lt;/a&gt; . When building situated displays and hybrid streaming systems, we need fine-grained composition over what to show on the displays. Wayland is a communications protocol for next-generation display servers used in Unix-like systems. &lt;a href="https://anil.recoil.org/#fn-0" target="_blank"&gt;[1]&lt;/a&gt; It has been adopted as the default display server by Linux distributions including Fedora with KDE, and Ubuntu and Debian with GNOME. It aims to replace the venerable X display server with a modern alternative. X leaves logic such as window management to application software, which has allowed the proliferation of different approaches. Wayland,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Diffusion models for terrestrial predictions about land use change</title><link href="https://anil.recoil.org/ideas/diffusion-model-satellites" rel="alternate"></link><published>2024-05-01T01:00:00Z</published><updated>2024-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/diffusion-model-satellites</id><summary type="html">Diffusion models for terrestrial predictions about land use change This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is available for being worked on. It may be co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . This project investigates how to build remote sensing data-driven models for the evolution of landscapes, which we can use to better predict deforestation, flooding and fire risks. Diffusion models are now widespread for image generation and are now being applied to video. &lt;a href="https://anil.recoil.org/#fn-3" target="_blank"&gt;[1]&lt;/a&gt; In addition the GenCast project from Google Deepmind used a diffusion model ensemble for weather forecasting, resulting in a high degree of accuracy compared to traditional methods. &lt;a href="https://anil.recoil.org/#fn-2" target="_blank"&gt;[2]&lt;/a&gt; The goal of this project is to train a video diffusion model on time series of...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 29 Apr 2024</title><link href="https://ryan.freumh.org/2024-04-29.html" rel="alternate"></link><published>2024-04-29T01:00:00Z</published><updated>2024-04-29T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-04-29.html</id><summary type="html">Previous: &lt;a href="2024-04-22.html" target="_blank"&gt;Mon 22 Apr 2024&lt;/a&gt; Next: &lt;a href="2024-05-06.html" target="_blank"&gt;Mon 6 May 2024&lt;/a&gt; Attended the MirageOS retreat. Spoke to Hannes’ about the DNS library and he asked me to upstream a few things, and talked about my Capnp approach to updates and secondary-ing. Had some productive conversations with Jules which led to an Opam NixOS depext approach Paul-Elliot helped me make my DNS transport library a bit more idiomatically functional, which we presented. Created a gravity-body simulation with Emile using an as-of-yet released OCaml game engine, which we presented. Got some nice window manager and vim tips. Went for a hike in the Atlas mountains. I also had some thoughts on offline operation of networked applications. One of the attendees showed me a video calling application for use in a mesh network that identifies clients by an IP...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 22 Apr 2024</title><link href="https://ryan.freumh.org/2024-04-22.html" rel="alternate"></link><published>2024-04-22T01:00:00Z</published><updated>2024-04-22T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-04-22.html</id><summary type="html">Previous: &lt;a href="2024-04-15.html" target="_blank"&gt;Mon 15 Apr 2024&lt;/a&gt; Next: &lt;a href="2024-04-29.html" target="_blank"&gt;Mon 29 Apr 2024&lt;/a&gt; I deployed Eon certificate provisioning to my server to my server, and promptly got rate limited by Let’s Encrypt (staging). It was a combination of not limiting the amount of concurrent certificates being provisioned and a bug in the Cap’N Proto OCaml RPC Eio port that Patrick purportedly has a &lt;a href="https://github.com/patricoferris/capnp-rpc/commit/6c95e771eb1345dcc6d31b959b1a5a8ca45e8a92" target="_blank"&gt;fix&lt;/a&gt; for. I’ve ended up using systemd services &lt;a href="https://github.com/RyanGibb/eon/blob/a831b4fdfa54767edf439047e87564a883c099eb/acme.nix#L219-L227" target="_blank"&gt;extensively&lt;/a&gt; to support provisioning certificates. I also added a CalDAV server to Eilean.</summary><category term="ryan.freumh.org"></category></entry><entry><title>Green Urban Equity in the UK</title><link href="https://ancazugo.github.io/python/carto/uk-3-30-300.html" rel="alternate"></link><published>2024-04-19T01:00:00Z</published><updated>2024-04-19T01:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/python/carto/uk-3-30-300</id><summary type="html">This is part of my presentation at EGU24 in Vienna that was about mapping green spaces in the UK using the 3-30-300 rule. You can find out more about the abstract &lt;a href="https://meetingorganizer.copernicus.org/EGU24/EGU24-20833.html" target="_blank"&gt;here&lt;/a&gt; .</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>Mon 15 Apr 2024</title><link href="https://ryan.freumh.org/2024-04-15.html" rel="alternate"></link><published>2024-04-15T01:00:00Z</published><updated>2024-04-15T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-04-15.html</id><summary type="html">Previous: &lt;a href="2024-04-08.html" target="_blank"&gt;Mon 8 Apr 2024&lt;/a&gt; Next: &lt;a href="2024-04-22.html" target="_blank"&gt;Mon 22 Apr 2024&lt;/a&gt; I’ve been doing a lot of hacking on Eon to get it to a state where I can use it to provision certificates in production. I’ve written a capnproto schema file that exposes a capability to a domain. When we run a nameserver it outputs a capability for each domain for which it is authoritative. $ cap -z cl.freumh.org --capnp-secret-key-file /var/lib/eon/capnp-secret.pem --capnp-listen-address tcp:cl.freumh.org:7000 --state-dir /var/lib/eon $ sudo ls /var/lib/eon/caps/ cl.freumh.org.cap zone.cap This capability can then be provided to a client. $ capc get-name cl.freumh.org.cap cl.freumh.org The client can create a new capability for a subdomain, which could be passed to a service. NB this is persisted to disk so it can be referenced across reboots. $...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 8 Apr 2024</title><link href="https://ryan.freumh.org/2024-04-08.html" rel="alternate"></link><published>2024-04-08T01:00:00Z</published><updated>2024-04-08T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-04-08.html</id><summary type="html">Previous: &lt;a href="2024-04-01.html" target="_blank"&gt;Mon 1 Apr 2024&lt;/a&gt; Next: &lt;a href="2024-04-15.html" target="_blank"&gt;Mon 15 Apr 2024&lt;/a&gt; Tue some rough working notes for eon’s capability interface to provision TLS certificates: modified the client to read the capability from a file and write the certs to a directory. todo: persistence account key wildcard certs should we do CSR on the client or server? should we do renewals on the client or server? let’s store everything on the server renewals keep the same private key? no, new certificate renewals: studryrefs for capabilities mapped to domains keep track of expiry update interface do we mimic DNS UPDATE? yes do we pass binary blob? no todo provisioning a cert for root https://github.com/mirage/ca-certs-nss https://github.com/suri-framework/castore multiple domains SAN CN extensions Thu done: subject alternative name generate caps for...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Teaching 1A Security and Software Engineering</title><link href="https://anil.recoil.org/notes/swseng" rel="alternate"></link><published>2024-04-04T01:00:00Z</published><updated>2024-04-04T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/swseng</id><summary type="html">We're still reeling from the shocking and unexpected &lt;a href="https://www.cst.cam.ac.uk/news/ross-anderson" target="_blank"&gt;passing of Ross Anderson&lt;/a&gt; last week. You can read a lovely &lt;a href="https://raintown.org/ross_anderson/" target="_blank"&gt;tribute&lt;/a&gt; to him by &lt;a href="https://raintown.org" target="_blank"&gt;Satnam Singh&lt;/a&gt; , and I still getting my thoughts together on all the guidance, advice and prods in the right direction that Ross has given me over the years. In pragmatic news, I'll be emergency lecturing part of Ross' 1A &lt;a href="https://www.cl.cam.ac.uk/teaching/2324/SWSecEng/" target="_blank"&gt;Software and Security Engineering&lt;/a&gt; course here at Cambridge, along with my colleagues Martin, Alastair, Mort and Rob who have all stepped up at short notice. I have absolutely no idea how we'll live up to Ross' standard, but we'll do our very best in his memory!</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Global, robust and comparable digital carbon assets</title><link href="https://anil.recoil.org/news/2024-cc-blockchain-1" rel="alternate"></link><published>2024-04-04T01:00:00Z</published><updated>2024-04-04T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-cc-blockchain-1</id><summary type="html">Paper on smart contracts for carbon credits at &lt;a href="http://icbc2024.ieee-icbc.org" target="_blank"&gt;ICBC 2024&lt;/a&gt; in Dublin &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://derekhsorensen.com" target="_blank"&gt;Derek Sorensen&lt;/a&gt; , &lt;a href="https://www.lambdacambridge.com/robin-message" target="_blank"&gt;Robin Message&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="http://arxiv.org/abs/2403.14581" target="_blank"&gt;proceedings of the 6th IEEE International Conference on Blockchain and Cryptocurrency&lt;/a&gt; . &lt;a href="http://arxiv.org/abs/2403.14581" target="_blank"&gt;URL&lt;/a&gt; (arxiv.org) &lt;a href="https://doi.org/10.48550/arXiv.2403.14581" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-cc-blockchain.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-cc-blockchain.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 1 Apr 2024</title><link href="https://ryan.freumh.org/2024-04-01.html" rel="alternate"></link><published>2024-04-01T01:00:00Z</published><updated>2024-04-01T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-04-01.html</id><summary type="html">Previous: &lt;a href="2024-03-25.html" target="_blank"&gt;Mon 25 Mar 2024&lt;/a&gt; Next: &lt;a href="2024-04-08.html" target="_blank"&gt;Mon 8 Apr 2024&lt;/a&gt; I read &lt;a href="https://datatracker.ietf.org/doc/draft-many-dnsop-dns-isolated-networks/" target="_blank"&gt;datatracker.ietf.org/doc/draft-many-dnsop-dns-isolated-networks/&lt;/a&gt; which discussed some considerations for DNS in networks with delayed and/or intermittent connectivity. This reminded me of another &lt;a href="./2024-03-18.html#eon" target="_blank"&gt;scenario to consider for Eon&lt;/a&gt; : Bootstrap a network in a remote isolated environment. As well as, moving more into the service management territory again, keeping track of service logs.</summary><category term="ryan.freumh.org"></category></entry><entry><title>Rolling out a new site design</title><link href="https://anil.recoil.org/notes/bushel-step1" rel="alternate"></link><published>2024-04-01T01:00:00Z</published><updated>2024-04-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/bushel-step1</id><summary type="html">I've done a redesign of my site after about 20 years since the last one &lt;a href="https://anil.recoil.org/notes/opening-anil-recoil-org" target="_blank"&gt;back in 2003&lt;/a&gt; . The site design is based on my upcoming Bushel content manager, which I'll post about more once I get the data model in place and try it out properly using this site as a guinea pig. &lt;a href="https://nick.recoil.org" target="_blank"&gt;Nick Ludlam&lt;/a&gt; also refreshed &lt;a href="https://nick.recoil.org" target="_blank"&gt;his website&lt;/a&gt; since we were chatting about how outdated our web presences were, and he also put up a main &lt;a href="https://recoil.org" target="_blank"&gt;recoil.org&lt;/a&gt; page for the main server.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 25 Mar 2024</title><link href="https://ryan.freumh.org/2024-03-25.html" rel="alternate"></link><published>2024-03-25T00:00:00Z</published><updated>2024-03-25T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-03-25.html</id><summary type="html">Previous: &lt;a href="2024-03-18.html" target="_blank"&gt;Mon 18 Mar 2024&lt;/a&gt; Next: &lt;a href="2024-04-01.html" target="_blank"&gt;Mon 1 Apr 2024&lt;/a&gt; Writing Scientific method: My thesis is that the DNS is the root of the Internet. That is, every network request starts off with a DNS resolution. The DNS is in a great position to manage resources in the Network, like certificates, keys, services, etc. But for some reason people don’t do this now. One advantage Eon has over the state-of-the-art dynamic DNS updates for the ACME DNS challenge is the principle of least privilege. We can provide a capability to only a subdomain, with the thread model a rough service or machine. Regarding scenario 5, the DNS is a very small key value store. “The DNS is a general (if somewhat limited) hierarchical database, and can store almost any kind of data, for almost any purpose,” RFC2181. We can keep track of what...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 18 Mar 2024</title><link href="https://ryan.freumh.org/2024-03-18.html" rel="alternate"></link><published>2024-03-18T00:00:00Z</published><updated>2024-03-18T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-03-18.html</id><summary type="html">Previous: &lt;a href="2024-03-11.html" target="_blank"&gt;Mon 11 Mar 2024&lt;/a&gt; Next: &lt;a href="2024-03-25.html" target="_blank"&gt;Mon 25 Mar 2024&lt;/a&gt; Eon Some scenarios we could solve with a client-server API for Eon: We could keep track of the proliferation of federated services in an Eilean deployment including matrix, mastodon, and email. Currently, we need to manually provision DNS records like an A record at mastodon.example.org . We need to run a certbot to respond to a ACME HTTP challenge by configuring a path to serve by a webserver, or respond to a DNS challenge using dynamic DNS UPDATES to update a nameserver. The HTTP challenge pretty heavyweight and doesn’t work so well when e.g. load balancing accross a webserver, and the DNS challenge typically requires providing access to the whole domain. To demultiplex multiple HTTP services on the same machine we typically use a reverse proxy...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 11 Mar 2024</title><link href="https://ryan.freumh.org/2024-03-11.html" rel="alternate"></link><published>2024-03-11T00:00:00Z</published><updated>2024-03-11T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-03-11.html</id><summary type="html">Previous: &lt;a href="2024-02-26.html" target="_blank"&gt;Mon 26 Feb 2024&lt;/a&gt; Next: &lt;a href="2024-03-18.html" target="_blank"&gt;Mon 18 Mar 2024&lt;/a&gt; I reworked the EON project structure and Capnp Schema file too: struct Record { name @0 :Text; type @1 :Int32; value @2 :Text; } struct Prereq { union { exists @0 :Record; existsData @1 :Record; notExists @2 :Record; nameInuse @3 :Record; notnameInuse @4 :Record; } } struct Update { union { add @0 :Record; remove @1 :Record; removeAll @2 :Record; removeSingle @3 :Record; } } struct CertReq { # Used to request a certificate for a service union { callback @0 :CertCallback; none @1 :Void; } } interface Zone { # Capability to initalize a Zone for which the nameserver is authorative init @0 (name :Text) -&gt; (domain :Domain); } interface Domain { # Capability for a domain getName @0 () -&gt; (name :Text); # Get the domain name delegate @1 (subdomain :Text) -&gt;...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Preprint available on insuring against variability of NbS</title><link href="https://anil.recoil.org/news/2024-nbs-risk-1" rel="alternate"></link><published>2024-03-01T00:00:00Z</published><updated>2024-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-nbs-risk-1</id><summary type="html">A new preprint is available on our work on ex-ante pricing models for nature-based solutions. It is currently under review, so any feedback is most welcome! &lt;a href="https://www.plantsci.cam.ac.uk/staff/dr-e-ping-rau" target="_blank"&gt;E.-Ping Rau&lt;/a&gt; , &lt;a href="https://www.jamesgross.org" target="_blank"&gt;James Gross&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; and &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; . Journal paper in &lt;a href="https://www.tandfonline.com/doi/full/10.1080/17583004.2024.2390854" target="_blank"&gt;Carbon Management&lt;/a&gt; (vol 15 issue 1). &lt;a href="https://www.tandfonline.com/doi/full/10.1080/17583004.2024.2390854" target="_blank"&gt;URL&lt;/a&gt; (tandfonline.com) &lt;a href="https://doi.org/10.1080/17583004.2024.2390854" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-nbs-risk.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-nbs-risk.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Green Urban Equity: Analyzing the 3-30-300 Rule in UK Cities and Its Socioeconomic Implications</title><link href="https://anil.recoil.org/news/2024-green-urban-eq-1" rel="alternate"></link><published>2024-03-01T00:00:00Z</published><updated>2024-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-green-urban-eq-1</id><summary type="html">Abstract on urban biodiversity and human health at &lt;a href="https://meetingorganizer.copernicus.org/EGU24/EGU24-20833.html" target="_blank"&gt;EGU 24&lt;/a&gt; &lt;a href="https://ancazugo.github.io/" target="_blank"&gt;Andres Zuñiga-Gonzalez&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.arct.cam.ac.uk/people/dr-ronita-bardhan" target="_blank"&gt;Ronita Bardhan&lt;/a&gt; . Technical report (EGU24-20833) at &lt;a href="https://meetingorganizer.copernicus.org/EGU24/EGU24-20833.html" target="_blank"&gt;Copernicus Meetings&lt;/a&gt; . &lt;a href="https://meetingorganizer.copernicus.org/EGU24/EGU24-20833.html" target="_blank"&gt;URL&lt;/a&gt; (meetingorganizer.copernicus.org) &lt;a href="https://doi.org/10.5194/egusphere-egu24-20833" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-green-urban-eq.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>A Case for Planetary Computing</title><link href="https://anil.recoil.org/news/2024-planetary-computing-2" rel="alternate"></link><published>2024-03-01T00:00:00Z</published><updated>2024-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-planetary-computing-2</id><summary type="html">Revision of planetary computing preprint &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://ameliaholcomb.github.io" target="_blank"&gt;Amelia Holcomb&lt;/a&gt; , &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/staff/dr-alison-eyres" target="_blank"&gt;Alison Eyres&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Working paper at &lt;a href="http://arxiv.org/abs/2303.04501" target="_blank"&gt;arXiv&lt;/a&gt; . &lt;a href="http://arxiv.org/abs/2303.04501" target="_blank"&gt;URL&lt;/a&gt; (arxiv.org) &lt;a href="https://doi.org/10.48550/arXiv.2303.04501" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-planetary-computing.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 26 Feb 2024</title><link href="https://ryan.freumh.org/2024-02-26.html" rel="alternate"></link><published>2024-02-26T00:00:00Z</published><updated>2024-02-26T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-02-26.html</id><summary type="html">Previous: &lt;a href="2024-02-19.html" target="_blank"&gt;Mon 19 Feb 2024&lt;/a&gt; Next: &lt;a href="2024-03-11.html" target="_blank"&gt;Mon 11 Mar 2024&lt;/a&gt; Shark We’ve got an obuilder runc container using Linux network namespaces with VPNkit forwarding outgoing http requests to a cohttp-proxy-lwt. I’ve created a monorepo assembling obuilder, VPNkit, and cohttp and got them building. Some issues were VPNkit having an outdated version of cohttp and having it’s own dune dns library which collides with the Mirage DNS library. Next is assembling a binary to do the container, namespace, VPNkit, and http proxy orchestration. I’m thinking about the UI of what this will look like. Something like $ shark create &lt;name&gt; $ shark attach &lt;name&gt; $ ... We also need to implement some kind of store to cache and replay http queries. Some technical nodes on reproducing this prototype separate-binary setup follow: build...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 19 Feb 2024</title><link href="https://ryan.freumh.org/2024-02-19.html" rel="alternate"></link><published>2024-02-19T00:00:00Z</published><updated>2024-02-19T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-02-19.html</id><summary type="html">Previous: &lt;a href="2024-02-12.html" target="_blank"&gt;Mon 12 Feb 2024&lt;/a&gt; Next: &lt;a href="2024-02-26.html" target="_blank"&gt;Mon 26 Feb 2024&lt;/a&gt; Anil Meeting Anil mentioned with QUIC and DNS SVCB records traffic can be UDP-only. We described a service manager using capability DNS with ‘naming’ and ‘livecycle’ at the DNS level. Anil likened this to docker compose service manager for a collection of services. It seems like systemd’s service management plus container and network management. This would allow things like IP-based load balancing, certificate provisioning, Jitsi-spinning up services on request. I need to extend the lenscap to support service management APIs as well as certificate provisioning. OCluster might be a place to look for this. It could do something really simple like just map to systemd. Anil likened it to Tailscale’s new service management dashboard. I brought up...</summary><category term="ryan.freumh.org"></category></entry><entry><title>FOSDEM</title><link href="https://ryan.freumh.org/fosdem.html" rel="alternate"></link><published>2024-02-13T00:00:00Z</published><updated>2024-02-13T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/fosdem.html</id><summary type="html">Published Tue 13 Feb 2024. Last update Tue 13 Feb 2024. Tags: &lt;a href="/conferences.html" target="_blank"&gt;conferences&lt;/a&gt; . I attended the Free and Open source Software Developers’ European Meeting (FOSDEM) in Brussels, Belgium last weekend. There are hundreds of hours of talks in 35 rooms over a period of two days, and rooms are often full to capacity, so it’s impossible to see everything! Thankfully every room is live-streamed and recordings made available after the fact, so you can catch up on anything you miss. Friday On the Eurostar over my travelling companion and I were lamenting about the Nix DSL, and we heard a French accent from behind: Ah, NixOS. See you at FOSDEM then! Saturday The day started with a coffee and a banana (probably not substantial enough in hindsight), an absolutely packed number 71 bus to the ULB Solbosch...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 12 Feb 2024</title><link href="https://ryan.freumh.org/2024-02-12.html" rel="alternate"></link><published>2024-02-12T00:00:00Z</published><updated>2024-02-12T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-02-12.html</id><summary type="html">Previous: &lt;a href="2024-02-05.html" target="_blank"&gt;Mon 5 Feb 2024&lt;/a&gt; Next: &lt;a href="2024-02-19.html" target="_blank"&gt;Mon 19 Feb 2024&lt;/a&gt; Capability DNS We have this nameserver that can provision TLS certificates with ACME using the DNS challenge, and expose a Cap’NP proto interface &lt;a href="https://github.com/RyanGibb/eon/blob/a442c424ea06b2c819dd48c9e69838e09675b22b/bin/acme/capnp/service_api.capnp" target="_blank"&gt;https://github.com/RyanGibb/eon/blob/main/bin/acme/capnp/service_api.capnp&lt;/a&gt; . We also have logic to tunnel Cap’NP over DNS &lt;a href="https://github.com/RyanGibb/eon/tree/a442c424ea06b2c819dd48c9e69838e09675b22b/lib/transport" target="_blank"&gt;https://github.com/RyanGibb/eon/tree/main/lib/transport&lt;/a&gt; , and indeed tunnel arbitrary data such as IP-traffic &lt;a href="https://github.com/RyanGibb/eon/tree/a442c424ea06b2c819dd48c9e69838e09675b22b/bin/transport/tunnel" target="_blank"&gt;https://github.com/RyanGibb/eon/tree/main/bin/transport/tunnel&lt;/a&gt; . Two ideas we had relating to this were exposing a shell interface &lt;a href="https://github.com/RyanGibb/eon/tree/a442c424ea06b2c819dd48c9e69838e09675b22b/bin/transport/sod" target="_blank"&gt;https://github.com/RyanGibb/eon/tree/main/bin/transport/sod&lt;/a&gt; over DNS and tunneling DNS traffic itself over DNS for query privacy a la Oblivious DNS &lt;a href="https://github.com/RyanGibb/eon/tree/a442c424ea06b2c819dd48c9e69838e09675b22b/bin/transport/dodo" target="_blank"&gt;https://github.com/RyanGibb/eon/tree/main/bin/transport/dodo&lt;/a&gt; . I’ve had a look for any related work to ‘de-risk’ a paper. The most obvious is &lt;a href="https://dl.acm.org/doi/pdf/10.1145/2377677.2377692" target="_blank"&gt;Signposts&lt;/a&gt; , which performs an ‘effectful’ name resolution to establish a communication channel through features of edge networks that break the end-to-end principle like NATs and proxies. It relies on DNSSEC to secure...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 5 Feb 2024</title><link href="https://ryan.freumh.org/2024-02-05.html" rel="alternate"></link><published>2024-02-05T00:00:00Z</published><updated>2024-02-05T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-02-05.html</id><summary type="html">Previous: &lt;a href="2024-01-29.html" target="_blank"&gt;Mon 29 Jan 2024&lt;/a&gt; Next: &lt;a href="2024-02-12.html" target="_blank"&gt;Mon 12 Feb 2024&lt;/a&gt; Shark I spoke to Michael about VanillaOS: It uses OCI images and ABRoot to provide immutability and atomic updates. Iirc it’s similar to Fedora Silverblue in that it’s an ‘immutable’ operating system, but Silverblue uses OST which is a ’git for binaries (keeps track of metadata and I think GCs). This is also used by flatpak. Nix is a bit more general in that is allows two packages to have different versions of a dependency by specifying them be absolute path rather than hard linking like ABRoot/OSTree. NixOS modules make it system configuration version controlled and rollback-able, and you don’t have to deal with ‘configuration updates’ like e.g. Ubuntu prompt you with. The downside is that you need to write your system config in this esoteric DSL. I...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Selected in the AI@CAM challenge for conservation research</title><link href="https://anil.recoil.org/notes/aicn-in-aicam" rel="alternate"></link><published>2024-02-05T00:00:00Z</published><updated>2024-02-05T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/aicn-in-aicam</id><summary type="html">We won the &lt;a href="https://www.cam.ac.uk/stories/AI-deas-launch" target="_blank"&gt;AI@CAM challenge&lt;/a&gt; that was sent out University wide to find research projects that use AI to tackle society's biggest challenges. Our project on using &lt;a href="https://www.cam.ac.uk/stories/AI-deas-launch#section-9RKgEyI2LZ" target="_blank"&gt;AI for climate and nature&lt;/a&gt; is one of the five selected. The twin climate and biodiversity crises are two of the world’s most complex challenges to tackle. This project aims to develop AI approaches for bringing together a wide range of datasets and accelerating the collation of information. This work will provide up to date, relevant and robust information for researchers and decision-makers working on climate and biodiversity conservation – opening up the possibility for more targeted and effective solutions to some of our world’s most pressing climate and biodiversity challenges. &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , AI-deas challenge co-lead, said: 'Mitigating the impacts...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Uncertainty at scale: how CS hinders climate research</title><link href="https://anil.recoil.org/news/2024-uncertainty-cs-1" rel="alternate"></link><published>2024-02-01T00:00:00Z</published><updated>2024-02-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-uncertainty-cs-1</id><summary type="html">Paper on uncertainty in climate science in &lt;a href="https://undonecs.sciencesconf.org" target="_blank"&gt;Undone CS&lt;/a&gt; &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Working paper at &lt;a href="https://undonecs.sciencesconf.org/data/Undonecs_2024_abstract_43.pdf" target="_blank"&gt;Undone Computer Science&lt;/a&gt; . &lt;a href="https://undonecs.sciencesconf.org/data/Undonecs_2024_abstract_43.pdf" target="_blank"&gt;URL&lt;/a&gt; (undonecs.sciencesconf.org) &lt;a href="https://anil.recoil.org/papers/2024-uncertainty-cs.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-uncertainty-cs.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 29 Jan 2024</title><link href="https://ryan.freumh.org/2024-01-29.html" rel="alternate"></link><published>2024-01-29T00:00:00Z</published><updated>2024-01-29T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-01-29.html</id><summary type="html">Previous: &lt;a href="2024-01-22.html" target="_blank"&gt;Mon 22 Jan 2024&lt;/a&gt; Next: &lt;a href="2024-02-05.html" target="_blank"&gt;Mon 5 Feb 2024&lt;/a&gt; Interspatial Networking Got a Zigbee2MQTT bridge deployed via NixOS on a Raspberry Pi 5. This required installing an EDK2 raspberry Pi 5 EFI implementation as a bootloader pending U-boot support &lt;a href="https://github.com/NixOS/nixpkgs/issues/260754#issuecomment-1908664693" target="_blank"&gt;https://github.com/NixOS/nixpkgs/issues/260754#issuecomment-1908664693&lt;/a&gt; . Had lots of false starts trying to cross-compile aarch64 (and arvm6 for the raspberry pi 1) on x86_64. I got pretty far with aarch64 but I think nixos-install doesn’t support a cross-compiled grub installation. I’m playing around with different ways of exposing this over HTTP, DNS, RPCs, and maybe Matrix. EON To support RPCs over DNS as a bootstapping mechanism for Jess and I’s idea of an identity service I resurrected the DNS tunnelling in EON. There’s a few kinks to work out with payload lengths fitting into domain names, and an odd failure mode...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 22 Jan 2024</title><link href="https://ryan.freumh.org/2024-01-22.html" rel="alternate"></link><published>2024-01-22T00:00:00Z</published><updated>2024-01-22T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-01-22.html</id><summary type="html">Previous: &lt;a href="2024-01-15.html" target="_blank"&gt;Mon 15 Jan 2024&lt;/a&gt; Next: &lt;a href="2024-01-29.html" target="_blank"&gt;Mon 29 Jan 2024&lt;/a&gt; It’s been 4 weeks since I updated this log! I fell off the bandwagon after returning from Boston, getting sidetracked adding a capability-based RPC to provision TLS certs with ACME on a nameserver. Interspatial networking: Andrew Moore dumped a whole bunch of Zigbee smart lights and plugs on my desk. I got a Zigbee bridge to MQTT bridge working and hooked &lt;a href="fn06.orb" target="_blank"&gt;fn06.org&lt;/a&gt; up to toggle the lights. This is basically me returning to the original vision of my MPhil project! If I can get a website to control the lights there’s no reason an AR headset couldn’t do the same. I’m also envisioning a DNS-based control interface with access control, e.g. dig toggle._lights.fn06.org . If I want to try the Hololens development environment I’ll need to get a GPU windows...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 15 Jan 2024</title><link href="https://ryan.freumh.org/2024-01-15.html" rel="alternate"></link><published>2024-01-15T00:00:00Z</published><updated>2024-01-15T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-01-15.html</id><summary type="html">Previous: &lt;a href="2024-01-08.html" target="_blank"&gt;Mon 8 Jan 2024&lt;/a&gt; Next: &lt;a href="2024-01-22.html" target="_blank"&gt;Mon 22 Jan 2024&lt;/a&gt; Figured out how to use ZFS for my NAS and shark.</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 8 Jan 2024</title><link href="https://ryan.freumh.org/2024-01-08.html" rel="alternate"></link><published>2024-01-08T00:00:00Z</published><updated>2024-01-08T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-01-08.html</id><summary type="html">Previous: &lt;a href="2024-01-01.html" target="_blank"&gt;Mon 1 Jan 2024&lt;/a&gt; Next: &lt;a href="2024-01-15.html" target="_blank"&gt;Mon 15 Jan 2024&lt;/a&gt; Took some time off to see friends and family. Bult a low-power (12W idle) NAS with 32TB storage on &lt;a href="https://github.com/RyanGibb/nixos/blob/master/hosts/elephant/default.nix" target="_blank"&gt;NixOS&lt;/a&gt; with ZFS. Blog post TODO. I still think there’s something here with &lt;a href="./2023-10-16.html#hibernia" target="_blank"&gt;using a low-powered board to wake a 50higher powered computer&lt;/a&gt; on e.g. a DNS resolution. Anil mentioned &lt;a href="https://github.com/stalwartlabs/mail-server" target="_blank"&gt;stalwart&lt;/a&gt; which might be worth looking at for Eilean.</summary><category term="ryan.freumh.org"></category></entry><entry><title>Tiny Code Christmas - part 2: learning OCaml and that demos are mostly functional</title><link href="https://digitalflapjack.com/blog/tcc-part2/" rel="alternate"></link><published>2024-01-03T09:57:06Z</published><updated>2024-01-03T09:57:06Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/tcc-part2/</id><summary type="html">This post is a follow on to the previous &lt;a href="/blog/tcc/" target="_blank"&gt;part 1 about Tiny Code Christmas 2022&lt;/a&gt; , and is about what I did for TCC 2023. In order to get more info on what TCC is and why it's a fun thing to do, I recommend you start there, but if you're just interested in me messing around with &lt;a href="https://ocaml.org/" target="_blank"&gt;OCaml&lt;/a&gt; , then you're in the right place. There were two things that motivated me to tackle this years TCC in the OCaml language. Firstly, a bunch of my colleagues at work use OCaml, and indeed work on language, and so there's been a bunch of encouragement from them that I should join in. However, I find I have two modes when it comes to working with programming languages: I can either work on a problem I'm not familiar with in a language I'm comfortable with, or I can do the inverse and tackle problems that I'm comfortable with in a...</summary><category term="Digital Flapjack"></category></entry><entry><title>Tiny Code Christmas - part 1: making coding fun through constraints and community</title><link href="https://digitalflapjack.com/blog/tcc/" rel="alternate"></link><published>2024-01-02T13:00:56Z</published><updated>2024-01-02T13:00:56Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/tcc/</id><summary type="html">Normally, as someone who codes for a living, xmas is a time for me to down tools and step away from the computer for a bit, spent time with family, spend some time in the &lt;a href="https://electricflapjack.com/" target="_blank"&gt;workshop&lt;/a&gt; and generally not stare at a computer so much. But this last two years I've had a lot of fun doing some small amounts of coding for fun. In this and the next post, I'm going to go through what got me doing this, what I learned from it, and why I recommend it to others. But the TL;DR is along the lines of: small regular constrained challenges, community, and exploration. Your browser does not support the video element. In an post I wrote a couple of years ago I &lt;a href="/blog/a-journey-into-minimal-computing-or-my-slow-evolving-2021-side-project/" target="_blank"&gt;mentioned in passing&lt;/a&gt; the idea of fantasy consoles like &lt;a href="https://tic80.com" target="_blank"&gt;TIC80&lt;/a&gt; : these are programs that pretend to emulate a retro computer from the 8 or 16 bit era of...</summary><category term="Digital Flapjack"></category></entry><entry><title>Mon 1 Jan 2024</title><link href="https://ryan.freumh.org/2024-01-01.html" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2024-01-01.html</id><summary type="html">Previous: &lt;a href="2023-12-25.html" target="_blank"&gt;Mon 25 Dec 2023&lt;/a&gt; Next: &lt;a href="2024-01-08.html" target="_blank"&gt;Mon 8 Jan 2024&lt;/a&gt; Set up a local plaintext email setup with mbsync/goimapnotify/aerc/mu/msmtp/gpgp/ldapsearch &lt;a href="https://github.com/RyanGibb/nixos/tree/7f303f5ff5283d31aa98f88574bfc85f4634afed/modules/personal/home/mail" target="_blank"&gt;nix&lt;/a&gt; .</summary><category term="ryan.freumh.org"></category></entry><entry><title>Spatial and multi-modal extraction from conservation literature</title><link href="https://anil.recoil.org/ideas/spatial-summarisation-of-llms" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/spatial-summarisation-of-llms</id><summary type="html">Spatial and multi-modal extraction from conservation literature This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is available for being worked on. It may be co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://profiles.imperial.ac.uk/a.christie" target="_blank"&gt;Alec Christie&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/bill-sutherland" target="_blank"&gt;Bill Sutherland&lt;/a&gt; . The &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;Conservation Evidence Copilots&lt;/a&gt; database contains information on numerous conservation actions and their supporting evidence. We also have access to a large corpus of academic literature detailing species presence and threats which we have assembled in Cambridge in collaboration with the various journal publishers. This MPhil project aims to combine these published literature resources with geographic information to propose conservation interventions. The goal is to identify actions that are likely to be effective based on prior evidence and have...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Privacy preserving emissions disclosure techniques</title><link href="https://anil.recoil.org/ideas/tardis" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/tardis</id><summary type="html">Privacy preserving emissions disclosure techniques This is an idea proposed in 2024 as a Cambridge Computer Science PhD topic, and is currently being worked on by &lt;a href="https://www.cst.cam.ac.uk/people/psjm3" target="_blank"&gt;Jessica Man&lt;/a&gt; . It is co-supervised with &lt;a href="https://martin.kleppmann.com" target="_blank"&gt;Martin Kleppmann&lt;/a&gt; . Customers of online services may want to take carbon emissions into account when deciding which service to use, but are currently hindered by a lack of reliable emissions data that is comparable across services. Calculating accurate carbon emissions across a cloud computing pipeline involves a number of stakeholders, none of whom are incentivised to accurately report their emissions for competitive reasons. This PhD explores mechanisms to support verifiable and privacy-preserving emissions reporting across a chain of energy suppliers, cloud data centres, virtual machine hosting...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Low-power sensing infrastructure for biodiversity</title><link href="https://anil.recoil.org/ideas/recording-nature" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/recording-nature</id><summary type="html">Low-power sensing infrastructure for biodiversity This is an idea proposed in 2024 as a Cambridge Computer Science PhD topic, and is currently being worked on by &lt;a href="https://profiles.imperial.ac.uk/joshua.millar22" target="_blank"&gt;Josh Millar&lt;/a&gt; . It is co-supervised with &lt;a href="https://haddadi.github.io/" target="_blank"&gt;Hamed Haddadi&lt;/a&gt; . In-situ sensing devices need to be deployed in remote environments for long periods of time, and minimizing their power consumption is vital for maximising both their operational lifetime and coverage. We are exploring the construction of a versatile multi-sensor device (initially based around the ESP32 chipset) and designing an exceptionally low power consumption model by using an on-device reinforcement learning scheduler that can learn to cooperate with other nearby devices. Our prototype device setup for learning schedules for biodiversity monitoring does pretty well against...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Legal perspectives on integrity issues in forest carbon</title><link href="https://anil.recoil.org/ideas/legal-aspects-of-credits" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/legal-aspects-of-credits</id><summary type="html">Legal perspectives on integrity issues in forest carbon This is an idea proposed in 2024 as a postdoctoral project, and has been completed by &lt;a href="https://www.cst.cam.ac.uk/people/smc70" target="_blank"&gt;Sophie Chapman&lt;/a&gt; . It was co-supervised with &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; . Carbon finance offers a vital way to fund urgently needed forest conservation, but there are integrity issues on the supply side. &lt;a href="https://anil.recoil.org/#fn-1" target="_blank"&gt;[1]&lt;/a&gt; Besides the known issues with carbon quantification, &lt;a href="https://anil.recoil.org/#fn-2" target="_blank"&gt;[2]&lt;/a&gt; carbon credits are often poorly designed and implemented from a legal perspective. Specifically, in the absence of a clear legal framework for forest carbon credits, contracts tend to conceptualise credits in similar terms to the products of extractive industries, such as mineral mining. This is a factually inaccurate model for carbon credits, since the carbon is not extracted but on the contrary...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Generating chunk-free embeddings for LLMs</title><link href="https://anil.recoil.org/ideas/chunk-free-embeddings" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/chunk-free-embeddings</id><summary type="html">Generating chunk-free embeddings for LLMs This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is currently being worked on by &lt;a href="mailto:mj651@cam.ac.uk" target="_blank"&gt;Mark Jacobsen&lt;/a&gt; . It is co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . This project aims to explore the development of a chunk-free approach for generating embeddings in Retrieval-Augmented Generation (RAG) models. Traditional RAG workflows often involve manual or predefined chunking of documents, and we seek to bypass this requirement. Instead, our approach involves generating multiple embeddings for unchunked text using a synthetic dataset created by (e.g.) a 7b parameter LLM. This dataset would feature structured, point-by-point summaries of each paragraph. An off-the-shelf embedding model could then be modified by removing its mean...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Evaluating RAG pipelines for conservation evidence</title><link href="https://anil.recoil.org/ideas/rag-evaluation-for-ce" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/rag-evaluation-for-ce</id><summary type="html">Evaluating RAG pipelines for conservation evidence This is an idea proposed in 2024 as a good starter project, and has been completed by &lt;a href="mailto:ri301@cam.ac.uk" target="_blank"&gt;Radhika Iyer&lt;/a&gt; . It was co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . At the &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;Conservation Evidence Copilots&lt;/a&gt; project, we are interested in finding and synthesising evidence for conservation interventions. Once we have this evidence, it needs to be synthesised into a form that can be used to inform policy and practice via natural language query interfaces. One way to do this is to use a &lt;a href="https://anil.recoil.org/14768" target="_blank"&gt;RAG (Retrieval Augmented Generation)&lt;/a&gt; pipeline, which can automatically retrieve relevant information from a large corpus of documents, analyse it to extract key information relevant to CE, and generate a summary of the key findings. This project involved involve evaluating the performance of RAG pipelines for conservation evidence,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Effective geospatial code in OCaml</title><link href="https://anil.recoil.org/ideas/effective-geospatial-code" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/effective-geospatial-code</id><summary type="html">Effective geospatial code in OCaml This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently being worked on by &lt;a href="mailto:gp528@cam.ac.uk" target="_blank"&gt;George Pool&lt;/a&gt; . It is co-supervised with &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; and &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; . Geospatial data processing is a critical component of many scientific and engineering workflows, from environmental monitoring to urban planning. However, writing geospatial code that scales to multiple cores and makes best use of available memory can be challenging due to the scale of the data involved. To deal with this, we have been developing some domain-specific tools to improve the state of affairs. &lt;a href="https://github.com/quantifyearth/yirgacheffe" target="_blank"&gt;Yirgacheffe&lt;/a&gt; is a wrapper to the GDAL library that provides high-level Python APIs that take care of figuring out if datasets overlap, and if vector layers need to be...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Deep learning for decomposing sound into vector audio</title><link href="https://anil.recoil.org/ideas/decomposing-audio-with-dl" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/decomposing-audio-with-dl</id><summary type="html">Deep learning for decomposing sound into vector audio This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is available for being worked on. It may be co-supervised with &lt;a href="https://pure.qub.ac.uk/en/persons/trevor-agus" target="_blank"&gt;Trevor Agus&lt;/a&gt; . All that we hear is mediated through cues transmitted to the brain from the cochlea, which acts like a bank of auditory filters centred at a wide range of centre frequencies. A lot of our knowledge of hearing comes from psychoacoustical experiments that involve simple sounds, like sine waves, whose synthesis parameters are closely related to cues available beyond the cochlea. However, for recorded sounds, many types of cue are available, but our use of these cues is limited by the extent that these cues can be manipulated in a controlled fashion. &lt;a href="https://anil.recoil.org/#fn-1" target="_blank"&gt;[1]&lt;/a&gt;...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Crawling grey literature for conservation evidence</title><link href="https://anil.recoil.org/ideas/grey-lit-crawl" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/grey-lit-crawl</id><summary type="html">Crawling grey literature for conservation evidence This is an idea proposed in 2024 as a good starter project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Shrey Biswas&lt;/a&gt; and &lt;a href="https://github.com/Kacper-M-Michalik" target="_blank"&gt;Kacper Michalik&lt;/a&gt; . It was co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . At the &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;Conservation Evidence Copilots&lt;/a&gt; project, we are interested in finding and synthesising evidence for conservation interventions. Much of this evidence is published in academic journals, but there is a large body of &lt;a href="https://en.wikipedia.org/wiki/Grey_literature" target="_blank"&gt;grey literature&lt;/a&gt; that is not indexed in academic databases. This includes reports from NGOs, government agencies, and other organisations that are not peer-reviewed, but can still contain valuable information. This project involved developing a web crawler to search for grey literature on conservation interventions, tracking the provenance and license information, and extracting relevant...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Conservation Evidence Copilots</title><link href="https://anil.recoil.org/projects/ce" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/ce</id><summary type="html">Conservation Evidence Copilots The &lt;a href="https://conservationevidence.com" target="_blank"&gt;Conservation Evidence&lt;/a&gt; team at the University of Cambridge has spent years screening 1.6m+ scientific papers on conservation, as well as manually summarising 8600+ studies relating to conservation actions. However, progress is limited by the specialised skills needed to screen and summarise relevant studies -- it took more than 75 person years to manually curate the current database and only a few 100 papers can be added each year! We are working on AI-driven techniques to accelerate addition of robust evidence to the CE database via automated literature scanning, &lt;a href="https://anil.recoil.org/papers/2024-ce-llm" target="_blank"&gt;LLM-based copilots&lt;/a&gt; and scanning of grey literature. We aim to provide co-pilots that augment human decision making to figure out how to categorise interventions much more quickly and accurately, and ultimately...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Composable diffing for heterogenous file formats</title><link href="https://anil.recoil.org/ideas/functional-diffs" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/functional-diffs</id><summary type="html">Composable diffing for heterogenous file formats This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is available for being worked on. It may be co-supervised with &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; . When dealing with large scale geospatial data, we also have to deal with a variety of file formats, such as CSV, JSON, GeoJSON, or GeoTIFFs, etc. Each of these file formats has its own structure and semantics, and it is often necessary to compare and merge data across different file formats. The conventional solution with source code would be to use a tool such as Git to compare and merge data across different file formats. However, this approach is not always feasible, as it requires the data to be in a text-based format and the data to be structured in a way that can be...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Building bigraphs of the real world</title><link href="https://anil.recoil.org/ideas/bigraphs-real-world" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/bigraphs-real-world</id><summary type="html">Building bigraphs of the real world This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently being worked on by &lt;a href="mailto:ra652@cam.ac.uk" target="_blank"&gt;Roy Ang&lt;/a&gt; . It is co-supervised with &lt;a href="https://ryan.freumh.org" target="_blank"&gt;Ryan Gibb&lt;/a&gt; . Bigraphs were originally proposed as a model for the behaviour of ubiquitous systems since interaction between mobile devices is dependent on both placing (locality) and linking (connectivity). However, there has yet to be a bigraph that represents the complete physical world. Such a bigraph will enhance the computer's representation of its location from a simple latitude-longitude pair to a context more familiar to humans: the room it is in, the street the building is on, and the town the street is in. This will allow for location-aware applications and policies about connectivity of...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Assessing mangrove literature for conservation evidence</title><link href="https://anil.recoil.org/ideas/mangrove-literature-for-ce" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/mangrove-literature-for-ce</id><summary type="html">Assessing mangrove literature for conservation evidence This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is available for being worked on. It may be co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/dr-thomas-worthington" target="_blank"&gt;Tom Worthington&lt;/a&gt; . At the &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;Conservation Evidence Copilots&lt;/a&gt; project, we are interested in finding and synthesising evidence for conservation interventions. Mangrove forests are one of the most threatened ecosystems in the world, and there is a large body of literature on the topic. However, this literature is spread across a wide range of sources, including academic journals, reports, and grey literature, and it can be difficult to identify and synthesise the key findings. Moreover, there is a need to assess the quality of the evidence, perhaps from remote sensing data or field studies, to inform...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Accurate summarisation of threats for conservation evidence literature</title><link href="https://anil.recoil.org/ideas/accurate-summarisation-for-ce" rel="alternate"></link><published>2024-01-01T00:00:00Z</published><updated>2024-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/accurate-summarisation-for-ce</id><summary type="html">Accurate summarisation of threats for conservation evidence literature This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is currently being worked on by &lt;a href="mailto:kh807@cam.ac.uk" target="_blank"&gt;Kittson Hamill&lt;/a&gt; . It is co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . At the &lt;a href="https://anil.recoil.org/projects/ce" target="_blank"&gt;Conservation Evidence Copilots&lt;/a&gt; project, we are interested in constructing a taxonomy of threats to wildlife from the literature. This involves scanning the body of conservation literature and gathering/synthesising evidence for conservation interventions from a threats perspective. Once the text has been retrieved, it needs to be summarised in a way that is accurate, concise and relevant and verified with human experts. This is particularly important for conservation evidence, where the key findings need to be communicated clearly to inform policy and...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 25 Dec 2023</title><link href="https://ryan.freumh.org/2023-12-25.html" rel="alternate"></link><published>2023-12-25T00:00:00Z</published><updated>2023-12-25T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-12-25.html</id><summary type="html">Previous: &lt;a href="2023-12-18.html" target="_blank"&gt;Mon 18 Dec 2023&lt;/a&gt; Next: &lt;a href="2024-01-01.html" target="_blank"&gt;Mon 1 Jan 2024&lt;/a&gt; Added Let’s Encrypt Nameserver Daemon ( lend ) and client ( lenc ) to eon, which provisions TLS certs with the ACME DNS challenge inside the nameserver modifying the trie directly. Required porting ocaml/letsencrypt to Eio 0.12. Added a Capnp RPC interface to provision certificates using this creating Let’s Encrypt Nameserver Cap’n Proto ( lenscap ). There’s still work to do including supporting renewals with capnp callbacks which will probably require sturdy refs, the story for which persisting seems complicated. Read &lt;a href="https://www.mnot.net/blog/2023/12/19/standards-and-centralization" target="_blank"&gt;RFC9518&lt;/a&gt; on the train up to Scotland. It talks about how technical decentralisation is necessary but not sufficient. &lt;a href="https://www.rfc-editor.org/rfc/rfc9518.html#name-federation" target="_blank"&gt;Section 513.1&lt;/a&gt; talks about issues with federation in the &lt;a href="https://www.usenix.org/system/files/atc22-holzbauer.pdf" target="_blank"&gt;centralisation 52of SMTP providers&lt;/a&gt; and how XMPP federation is voluntary. Matrix bridges...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 18 Dec 2023</title><link href="https://ryan.freumh.org/2023-12-18.html" rel="alternate"></link><published>2023-12-18T00:00:00Z</published><updated>2023-12-18T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-12-18.html</id><summary type="html">Previous: &lt;a href="2023-12-11.html" target="_blank"&gt;Mon 11 Dec 2023&lt;/a&gt; Next: &lt;a href="2023-12-25.html" target="_blank"&gt;Mon 25 Dec 2023&lt;/a&gt; Majorly refactored eon including porting to Eio 0.12 moving from objects to polymorphic varients.</summary><category term="ryan.freumh.org"></category></entry><entry><title>NixOS channels</title><link href="https://mort.io/blog/nixos-channels/" rel="alternate"></link><published>2023-12-13T00:00:00Z</published><updated>2023-12-13T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/nixos-channels/</id><summary type="html">I don’t pretend to understand &lt;a href="https://nixos.org/" target="_blank"&gt;NixOS&lt;/a&gt; configuration fully yet, what with Flakes and channels and so forth. But I did find the following usful to setup channels consistently so that I could have a single config that used both. sudo nix-channel -- list # to list known channels sudo nix-channel -- remove nixos # to remove a channel sudo nix-channel -- add https://nixos.org/channels/nixos-unstable nixos # to go bleeding edge …ultimately resulting in: $ nix-channel -- list # channels are stored per-user, and $(whoami) != root $ sudo nix-channel -- list nixos https://nixos.org/channels/nixos-unstable nixpkgs https://nixos.org/channels/nixos-unstable Upgrading to the latest release is then something like: pushd ~ /rc-files/nixos/ sudo nix-channel -- update nix flake update sudo nixos-rebuild...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Mon 11 Dec 2023</title><link href="https://ryan.freumh.org/2023-12-11.html" rel="alternate"></link><published>2023-12-11T00:00:00Z</published><updated>2023-12-11T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-12-11.html</id><summary type="html">Previous: &lt;a href="2023-12-04.html" target="_blank"&gt;Mon 4 Dec 2023&lt;/a&gt; Next: &lt;a href="2023-12-18.html" target="_blank"&gt;Mon 18 Dec 2023&lt;/a&gt; Report for Huwawi Studentship Update Sent to Ben Karniely. My research over the past year has focused on addressing a fundamental limitation in the current Internet architecture - the lack of support for naming physical locations and resolving them to various addressing mechanisms beyond IP. To address this gap, we have proposed the Spatial Name System (SNS), which enables the assignment of hierarchical location-based names and provides global and local resolution schemes. The SNS extends the Domain Name System (DNS), allowing the integration of spatial names into existing applications and opening up new possibilities for sensor networks and augmented reality. Thanks to Huawei’s Hisilicon Studentship I had the opportunity to present this &lt;a href="https://ryan.freumh.org/papers/2023-hotnets-sns.pdf" target="_blank"&gt;research&lt;/a&gt; at...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 4 Dec 2023</title><link href="https://ryan.freumh.org/2023-12-04.html" rel="alternate"></link><published>2023-12-04T00:00:00Z</published><updated>2023-12-04T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-12-04.html</id><summary type="html">Previous: &lt;a href="2023-11-27.html" target="_blank"&gt;Mon 27 Nov 2023&lt;/a&gt; Next: &lt;a href="2023-12-11.html" target="_blank"&gt;Mon 11 Dec 2023&lt;/a&gt; Arrived in Cambridge and finialised my HotNets presentation adding some new slides to expand on how existing DNS mechanisms like DNS-SD can interoperate, illustrating the interface to a geodetic query, etc. Attended the HotNets Conference. Met with Jane Street. HotNets Conference It was great! Feedback on the SNS First and foremost, I recieved some really useful questions, thoughts, and feedback on the SNS. While presenting I was asked: Joshua Smith, Uni of Washington: Q: does this support mobile device? A: that is not our primary use case with these device with their functional primarily defined by their location, though a limitted form of mobility could be supported through existing mechanisms like CNAMEs. Q: what about devices that are inbetween…...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Joined the Royal Society fellowships committee</title><link href="https://anil.recoil.org/notes/royal-society-newton" rel="alternate"></link><published>2023-12-02T00:00:00Z</published><updated>2023-12-02T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/royal-society-newton</id><summary type="html">I joined the &lt;a href="https://royalsociety.org" target="_blank"&gt;Royal Society&lt;/a&gt; &lt;a href="https://royalsociety.org/grants/newton-international/" target="_blank"&gt;Newton International Fellowships&lt;/a&gt; &lt;a href="https://royalsociety.org/people/anil-madhavapeddy-36582/" target="_blank"&gt;committee&lt;/a&gt; to help with selecting bright new scientists from abroad who wish to conduct research in the UK. The Newton International Fellowship (NIF) programme provides support for outstanding early career researchers to make a first step towards developing an independent research career through gaining experience across international borders. The fellowships enable researchers to access expertise, gain new perspectives and build long-lasting collaborative relationships. -- &lt;a href="https://royalsociety.org/grants/newton-international/" target="_blank"&gt;The Royal Society&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>PACT Tropical Moist Forest Accreditation Methodology</title><link href="https://anil.recoil.org/news/2023-pact-tmf-2" rel="alternate"></link><published>2023-12-01T00:00:00Z</published><updated>2023-12-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-pact-tmf-2</id><summary type="html">We have just released the Tropical Moist Forest v2.0 specification, to update the &lt;a href="https://anil.recoil.org/news/2023-pact-tmf-1" target="_blank"&gt;v1.1&lt;/a&gt; released earlier in the year. There are significant updates to the methodology to better match the scheme described in &lt;a href="https://anil.recoil.org/papers/2023-ncc-permanence" target="_blank"&gt;Realizing the social value of impermanent carbon credits&lt;/a&gt; . &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://www.liverpool.ac.uk/geography-and-planning/research/environmental-change/postgraduates/" target="_blank"&gt;James Hartup&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; , &lt;a href="https://uk.linkedin.com/in/miranda-lam-a088561b4" target="_blank"&gt;Miranda Lam&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://www.lambdacambridge.com/robin-message" target="_blank"&gt;Robin Message&lt;/a&gt; , &lt;a href="https://www.plantsci.cam.ac.uk/staff/dr-e-ping-rau" target="_blank"&gt;E.-Ping Rau&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.plantsci.cam.ac.uk/staff/dr-charlotte-wheeler" target="_blank"&gt;Charlotte Wheeler&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/abigail-williams" target="_blank"&gt;Abby Williams&lt;/a&gt; . Working paper at &lt;a href="https://www.cambridge.org/engage/coe/article-details/66b9d9345101a2ffa813e37c" target="_blank"&gt;Cambridge Open Engage&lt;/a&gt; . &lt;a href="https://www.cambridge.org/engage/coe/article-details/66b9d9345101a2ffa813e37c" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.33774/coe-2024-gvslq" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-pact-tmf.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-pact-tmf.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 27 Nov 2023</title><link href="https://ryan.freumh.org/2023-11-27.html" rel="alternate"></link><published>2023-11-27T00:00:00Z</published><updated>2023-11-27T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-11-27.html</id><summary type="html">Previous: &lt;a href="2023-11-20.html" target="_blank"&gt;Mon 20 Nov 2023&lt;/a&gt; Next: &lt;a href="2023-12-04.html" target="_blank"&gt;Mon 4 Dec 2023&lt;/a&gt; Sorted HotNets travel, accomadation, insurance, etc. Travelled to Boston. Recovered from jetlag and had thanksgiving with my American family. Visited Newton, Ludlow, Springfield, North Hampton, Shirley, Boston, and Cambridge. Spent a couple of days preparing for my presentation. Wrote a 2000 word script that I cut to about 1500 words. Ran through presenting it 3 or 4 times, timing it to make sure I wasn’t overrunning.</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 20 Nov 2023</title><link href="https://ryan.freumh.org/2023-11-20.html" rel="alternate"></link><published>2023-11-20T00:00:00Z</published><updated>2023-11-20T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-11-20.html</id><summary type="html">Previous: &lt;a href="2023-11-13.html" target="_blank"&gt;Mon 13 Nov 2023&lt;/a&gt; Next: &lt;a href="2023-11-27.html" target="_blank"&gt;Mon 27 Nov 2023&lt;/a&gt; HotNets I sent an email out to the SRG mailing list asking if anyone knew anyone at MIT. Jörg Ott said I “may wanna talk to Karen Sollins and John Wroclawski”. Malte said he will be there, and can introduce me to “some of the MIT people who will likely attend from [his] time in PDOS”.</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 13 Nov 2023</title><link href="https://ryan.freumh.org/2023-11-13.html" rel="alternate"></link><published>2023-11-13T00:00:00Z</published><updated>2023-11-13T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-11-13.html</id><summary type="html">Previous: &lt;a href="2023-11-06.html" target="_blank"&gt;Mon 6 Nov 2023&lt;/a&gt; Next: &lt;a href="2023-11-20.html" target="_blank"&gt;Mon 20 Nov 2023&lt;/a&gt; New Collaborators? Justas Justas suggested collaborating on something with the Adaptive City project sensors. Grenoble Andrzej Duda and Simon Fernandez from Grenoble INP Ensimag LIG Lab are &lt;a href="https://dl.acm.org/doi/pdf/10.1145/2980147.2980152" target="_blank"&gt;working&lt;/a&gt; &lt;a href="https://arxiv.org/pdf/2110.11766.pdf" target="_blank"&gt;on&lt;/a&gt; very similar things to the SNS. They reached out to Jon and are keen to collaborate. HotNets I can’t seem to find PDFs for a lot of the HotNets papers. The ACM proceedings doesn’t seem to have PDFs, neither does the conference website (and the publishing chair has not got back to me about the availablility on the website like in previous years), so if the author hasn’t put it up on their personal website it’s not available. Teaching Marked and supervised the last concurrent exercise sheet for Pembroke part IBs. We’ve done 4 supervisions for...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 6 Nov 2023</title><link href="https://ryan.freumh.org/2023-11-06.html" rel="alternate"></link><published>2023-11-06T00:00:00Z</published><updated>2023-11-06T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-11-06.html</id><summary type="html">Previous: &lt;a href="2023-10-30.html" target="_blank"&gt;Mon 30 Oct 2023&lt;/a&gt; Next: &lt;a href="2023-11-13.html" target="_blank"&gt;Mon 13 Nov 2023&lt;/a&gt; EEG Matrix Server &lt;a href="matrix-synapse-authentication-with-raven-shibboleth" target="_blank"&gt;Following 53up&lt;/a&gt; on Matrix Shibboleth integration I deployed an EEG Matrix server. Configure synapse for saml2 &lt;a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#saml2_config" target="_blank"&gt;https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#saml2_config&lt;/a&gt; Had some issues with synapse detecting the pysaml2 module… my personal nixos nixpkgs revision seemed to work. Cambridge raven identity provider (IdP) attributes: &lt;a href="https://wiki.cam.ac.uk/raven/Attributes_released_by_the_Raven_IdP" target="_blank"&gt;https://wiki.cam.ac.uk/raven/Attributes_released_by_the_Raven_IdP&lt;/a&gt; How to configure pysaml2 attribute mapping (to map to those synapse &lt;a href="https://github.com/matrix-org/synapse/blob/develop/synapse/handlers/saml_handler.py" target="_blank"&gt;expects&lt;/a&gt; ) &lt;a href="https://pysaml2.readthedocs.io/en/latest/howto/config.html#attribute-map-dir" target="_blank"&gt;https://pysaml2.readthedocs.io/en/latest/howto/config.html#attribute-map-dir&lt;/a&gt; Register our service provider (SP) with the university &lt;a href="https://wiki.cam.ac.uk/raven/SP_registration" target="_blank"&gt;https://wiki.cam.ac.uk/raven/SP_registration&lt;/a&gt; at &lt;a href="https://metadata.raven.cam.ac.uk/" target="_blank"&gt;https://metadata.raven.cam.ac.uk/&lt;/a&gt; . Got the site XML from the path /_matrix/saml2/metadata.xml . In future, maybe we’d want to register with the UK federation. Got the remote url from &lt;a href="https://docs.raven.cam.ac.uk/en/latest/reference-apache-saml2/" target="_blank"&gt;https://docs.raven.cam.ac.uk/en/latest/reference-apache-saml2/&lt;/a&gt; Got the flu Unfortunately, the rest of the week was a write-off with the flu.</summary><category term="ryan.freumh.org"></category></entry><entry><title>BBC report on the new Cambridge supercomputer ("Dawn") announced at the 2023 AI Summit</title><link href="https://anil.recoil.org/news/48a7ab10-3f49-4978-a00f-c26b64c2cae7-1" rel="alternate"></link><published>2023-11-02T00:00:00Z</published><updated>2023-11-02T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/48a7ab10-3f49-4978-a00f-c26b64c2cae7-1</id><summary type="html">On the BBC briefly about the Dawn supercomputer</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>More on Icons</title><link href="https://digitalflapjack.com/blog/more-on-icons/" rel="alternate"></link><published>2023-11-01T19:12:03Z</published><updated>2023-11-01T19:12:03Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/more-on-icons/</id><summary type="html">This is a sort of follow on to a post I wrote about &lt;a href="/blog/old-icons/" target="_blank"&gt;how icons becoming homogenous and hard to distinguish&lt;/a&gt; , and inspired by this image &lt;a href="https://twitter.com/flarup/status/1717578963684364578" target="_blank"&gt;posted to social media&lt;/a&gt; by &lt;a href="https://www.pixelresort.com" target="_blank"&gt;Michael Flarup&lt;/a&gt; showing the evolution of the macOS default dock over many versions: Whilst I'd be the first to admit to not being a fan of the heavily skeuomorphic apps like the old Notes.app with its faux leather titlebar and the old game center app, I also think that the older icons for notes and such were much more distinctive when you could recognise items by external shape as well as the content. This reminder of what we've lost in terms of both usability and character in our icons inspired me to go back to this vibe with my placeholder icon for a little desktop app I've been writing for myself. The app has the working title of "BAM", and so a literal explosion of shape and colour...</summary><category term="Digital Flapjack"></category></entry><entry><title>Where on Earth is the Spatial Name System?</title><link href="https://anil.recoil.org/news/2023-hotnets-sns-1" rel="alternate"></link><published>2023-11-01T00:00:00Z</published><updated>2023-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-hotnets-sns-1</id><summary type="html">Paper on spatial networks on DNS at &lt;a href="https://dl.acm.org/doi/10.1145/3626111.3628210" target="_blank"&gt;HotNets 2023&lt;/a&gt; &lt;a href="https://ryan.freumh.org" target="_blank"&gt;Ryan Gibb&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/3626111.3628210" target="_blank"&gt;proceedings of the 22nd ACM Workshop on Hot Topics in Networks&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/3626111.3628210" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/3626111.3628210" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-hotnets-sns.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-hotnets-sns.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Nature Climate Change paper on impermanent carbon credits</title><link href="https://anil.recoil.org/news/2023-ncc-permanence-2" rel="alternate"></link><published>2023-11-01T00:00:00Z</published><updated>2023-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-ncc-permanence-2</id><summary type="html">Our paper on valuing impermanent carbon credits has been published at &lt;a href="https://www.nature.com/articles/s41558-023-01815-0" target="_blank"&gt;Nature Climate Change&lt;/a&gt; . It has received a bunch of press coverage, including &lt;a href="https://phys.org/news/2023-10-offset-approach-tropical-forests-faith.html" target="_blank"&gt;phys.org&lt;/a&gt; , &lt;a href="https://www.cam.ac.uk/research/news/offset-markets-new-approach-could-help-save-tropical-forests-by-restoring-faith-in-carbon-credits" target="_blank"&gt;cam.ac.uk&lt;/a&gt; , and &lt;a href="https://www.miragenews.com/new-method-may-boost-trust-in-carbon-credits-1113599/" target="_blank"&gt;Mirage&lt;/a&gt; . &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; , &lt;a href="https://www.lse.ac.uk/granthaminstitute/profile/frank-venmans/" target="_blank"&gt;Frank Venmans&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://business-school.exeter.ac.uk/economics/research/subject-themes/profile/index.php?web_id=ben_groom" target="_blank"&gt;Ben Groom&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; . Journal paper in &lt;a href="https://www.nature.com/articles/s41558-023-01815-0" target="_blank"&gt;Nature Climate Change&lt;/a&gt; (vol 13 issue 11). &lt;a href="https://www.nature.com/articles/s41558-023-01815-0" target="_blank"&gt;URL&lt;/a&gt; (nature.com) &lt;a href="https://doi.org/10.1038/s41558-023-01815-0" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-ncc-permanence.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-ncc-permanence.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>First preprint of LIFE biodiversity metric available</title><link href="https://anil.recoil.org/news/2024-life-1" rel="alternate"></link><published>2023-11-01T00:00:00Z</published><updated>2023-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-life-1</id><summary type="html">The first preprint on our new &lt;a href="https://anil.recoil.org/projects/life" target="_blank"&gt;LIFE&lt;/a&gt; metric for global biodiversity is now available. It is under review, so feedback would be very welcome. &lt;a href="https://www.conservation.cam.ac.uk/staff/dr-alison-eyres" target="_blank"&gt;Alison Eyres&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball" target="_blank"&gt;Thomas Ball&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/andy-arnell/" target="_blank"&gt;Andy Arnell&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/daniele-baisero/" target="_blank"&gt;Daniele Baisero&lt;/a&gt; , &lt;a href="https://www.cambridgeconservation.org/about/people/paz-duran/" target="_blank"&gt;América Paz Durán&lt;/a&gt; , &lt;a href="https://www.york.ac.uk/sei/staff/jonathan-green/" target="_blank"&gt;Jonathan Green&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/rhys-green" target="_blank"&gt;Rhys Green&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; . Journal paper in &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2023.0327" target="_blank"&gt;Philosophical Transactions of the Royal Society&lt;/a&gt; (vol 380 issue 1917). &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2023.0327" target="_blank"&gt;URL&lt;/a&gt; (royalsocietypublishing.org) &lt;a href="https://doi.org/10.1098/rstb.2023.0327" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-life.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-life.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 30 Oct 2023</title><link href="https://ryan.freumh.org/2023-10-30.html" rel="alternate"></link><published>2023-10-30T00:00:00Z</published><updated>2023-10-30T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-10-30.html</id><summary type="html">Previous: &lt;a href="2023-10-23.html" target="_blank"&gt;Mon 23 Oct 2023&lt;/a&gt; Next: &lt;a href="2023-11-06.html" target="_blank"&gt;Mon 6 Nov 2023&lt;/a&gt; HotNets Organised travel dates, travel, and accommodation for HotNets. I was awarded a Queens’ College Perry Travel Award to the value of £740! Met with Anil Agreed to schedule dates to visit NYC and then find a time to meet Jane Street to discuss the polyglot package management project proposal. I’m going to take the train from Boston to NYC! Anil said I’ve got to get a &lt;a href="https://en.wikipedia.org/wiki/Junior_Ranger_Program" target="_blank"&gt;Junior Ranger 54Badge&lt;/a&gt; from a &lt;a href="https://en.wikipedia.org/wiki/List_of_National_Park_System_areas_in_New_York" target="_blank"&gt;National 55Park in NYC&lt;/a&gt; . Anil recommended live blogging the conference on Mastodon. Talked about what a HotNets presentation could look like, and whether a live demo was feasible. Maybe I could pull AEON and Patrick’s OCaml R-Tree together into something workable. I think while very cool the APIs just aren’t there for the AR demo on a hololens. A smartphone (e.g. iPhone LIDAR)...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 23 Oct 2023</title><link href="https://ryan.freumh.org/2023-10-23.html" rel="alternate"></link><published>2023-10-23T01:00:00Z</published><updated>2023-10-23T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-10-23.html</id><summary type="html">Previous: &lt;a href="2023-10-16.html" target="_blank"&gt;Mon 16 Oct 2023&lt;/a&gt; Next: &lt;a href="2023-10-30.html" target="_blank"&gt;Mon 30 Oct 2023&lt;/a&gt; HotNets, HotNets, HotNets Don’t try and rewrite your whole paper a day before the deadline. Got it in, and need to think about travel and accomadation next. The &lt;a href="https://conferences.sigcomm.org/hotnets/2023/program.html" target="_blank"&gt;program&lt;/a&gt; has been published, and I’m on the first day at 1:15pm - 2:45pm in ‘Session 3: The architecture of the Internet, and datacenter networks’. SIGCOMM SNS Magnus and I threw some ideas around on Thurday morning. Apple’s ARKit might be something to look at in lieu of a Vision Pro. We also discussed getting some experience with iPhone’s lidar precision, how to bootstrap a connection, the issues with civic name encodings, and the necessity to get some estimation of load. Regarding an implementation, once we have a bit more of an idea of what it might look like, &lt;a href="https://github.com/RyanGibb/aeon" target="_blank"&gt;github.com/RyanGibb/aeon&lt;/a&gt; would be a good...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Cambridge Zero highlights University efforts at Climate Week NYC</title><link href="https://anil.recoil.org/notes/mission-possible" rel="alternate"></link><published>2023-10-18T01:00:00Z</published><updated>2023-10-18T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/mission-possible</id><summary type="html">I was on stage in New York for &lt;a href="https://www.cam.ac.uk/news/cambridge-zero-highlights-university-efforts-at-climate-week-nyc" target="_blank"&gt;Mission Possible&lt;/a&gt; during &lt;a href="https://www.climateweeknyc.org" target="_blank"&gt;NYC Climate Week&lt;/a&gt; . I was there with &lt;a href="https://www.cisl.cam.ac.uk/directory/emily-shuckburgh" target="_blank"&gt;Emily Shuckburgh&lt;/a&gt; and we met with a lot of Cambridge alumni who are all engaged with climate change related activities -- either directly in their careers, or through a side interest. The major highlights on the discussions with alumni centred around agency: a lot of them were wondering how to combine the evidence coming out Cambridge research and combine it with real policy action. A number of the alumni are obviously highly successful in their individual careers, and so the University helping to glue this together would potentially result in valuable actions that might not otherwise come together. This reminded me strongly of the discussions we had in Pembroke a little while back when &lt;a href="https://www.cisl.cam.ac.uk/directory/emily-shuckburgh" target="_blank"&gt;Emily Shuckburgh&lt;/a&gt; chaired my talk...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mon 16 Oct 2023</title><link href="https://ryan.freumh.org/2023-10-16.html" rel="alternate"></link><published>2023-10-16T01:00:00Z</published><updated>2023-10-16T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-10-16.html</id><summary type="html">Previous: &lt;a href="2023-10-09.html" target="_blank"&gt;Mon 9 Oct 2023&lt;/a&gt; Next: &lt;a href="2023-10-23.html" target="_blank"&gt;Mon 23 Oct 2023&lt;/a&gt; HotNets Converted the SNS paper to the ACM final format. Spent way to long figuring out how to make the paper open access. While trying to figure this out I spoke to Jon, Chris, Ardwin, Justas, Sadiq, Helen, and Mort. Mort explained the difference between the copyright, licensing publishing rights, and open access. In the end, we had to use our institutional email addresses to have the ACM’s open access policy kick in. Addressed Magnus’ comments on the paper, and fixed some citations. Pulled the discussion into the introduction. Hibernia Had an idea regarding the &lt;a href="./2023-10-09.html#energy" target="_blank"&gt;energy&lt;/a&gt; saving ‘wake-up’ device: the network infrastructure has to be running anyway, so why not push this functionality into the router, which are mostly running Linux now anyway. We...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Mon 9 Oct 2023</title><link href="https://ryan.freumh.org/2023-10-09.html" rel="alternate"></link><published>2023-10-09T01:00:00Z</published><updated>2023-10-09T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/2023-10-09.html</id><summary type="html">Next: &lt;a href="2023-10-16.html" target="_blank"&gt;Mon 16 Oct 2023&lt;/a&gt; After trying to use Obsidian, a remarkable E-ink tablet, Logseq, emacs org-mode, and plaintext files, I’m using a paper notebook research log for the upcoming academic year and hopefully beyond. I’ve tried this before without much success, but this time I plan to use it more thoughtfully. I’m also trying something new in typing up my weekly notes in a web log. So last week… Eilean I’ve had a couple of requests to get &lt;a href="https://github.com/RyanGibb/eilean-nix" target="_blank"&gt;Eilean&lt;/a&gt; into a useable state, so I’ve tested (and fixed a bunch of bugs in) it’s deployment on a fresh VM from the NixOS template provided, and added a comprehensive getting started document. Work to be done includes using ACME DNS-01 challenges to provision TLS certificates and automatically incrementing the DNS SOA serial number. Having a modular and...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Information Flow Tracking for Heterogeneous Compartmentalized Software</title><link href="https://anil.recoil.org/news/2023-raid-deluminator-1" rel="alternate"></link><published>2023-10-01T01:00:00Z</published><updated>2023-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-raid-deluminator-1</id><summary type="html">Paper on DIFC Deluminator interface at &lt;a href="https://dl.acm.org/doi/10.1145/3607199.3607235" target="_blank"&gt;RAID 2023&lt;/a&gt; &lt;a href="https://zatkh.github.io/" target="_blank"&gt;Zahra Tarkhani&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/3607199.3607235" target="_blank"&gt;proceedings of the 26th International Symposium on Research in Attacks, Intrusions and Defenses&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/3607199.3607235" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/3607199.3607235" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-raid-deluminator.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-raid-deluminator.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Enabling Lightweight Privilege Separation in Applications with MicroGuards</title><link href="https://anil.recoil.org/news/2023-acns-microguards-1" rel="alternate"></link><published>2023-10-01T01:00:00Z</published><updated>2023-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-acns-microguards-1</id><summary type="html">Paper on microgrounds memory API at &lt;a href="https://link.springer.com/chapter/10.1007/978-3-031-41181-6_31" target="_blank"&gt;ACNSW&lt;/a&gt; &lt;a href="https://zatkh.github.io/" target="_blank"&gt;Zahra Tarkhani&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://link.springer.com/10.1007/978-3-031-41181-6_31" target="_blank"&gt;applied Cryptography and Network Security Workshops&lt;/a&gt; . &lt;a href="https://link.springer.com/10.1007/978-3-031-41181-6_31" target="_blank"&gt;URL&lt;/a&gt; (link.springer.com) &lt;a href="https://doi.org/10.1007/978-3-031-41181-6_31" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-acns-microguards.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-acns-microguards.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Functional Programming for the Planet</title><link href="https://anil.recoil.org/news/981c00b5-32c0-4cac-a387-6c945dfa9934-1" rel="alternate"></link><published>2023-09-05T01:00:00Z</published><updated>2023-09-05T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/981c00b5-32c0-4cac-a387-6c945dfa9934-1</id><summary type="html">Keynoted at ICFP 2023 on Functional Programming for the Planet</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>State of the OCaml Platform 2023</title><link href="https://anil.recoil.org/news/2023-ocaml-platform-1" rel="alternate"></link><published>2023-09-01T01:00:00Z</published><updated>2023-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-ocaml-platform-1</id><summary type="html">We deliver the annual presentation about the OCaml Platform in the OCaml Workshop at ICFP 2023. This paper reflects on a decade of progress and developments within the OCaml Platform, from its inception in 2013 with the release of opam 1.0, to today where it stands as a robust toolchain for OCaml developers. We review the last three years in detail, emphasizing the advancements and innovations that have shaped the OCaml development landscape and highlighting key milestones such as the migration to Dune as the primary build system, and the development of a Language Server Protocol (LSP) server for OCaml. &lt;a href="https://github.com/tmattio" target="_blank"&gt;Thibaut Mattio&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; and &lt;a href="https://github.com/dra27" target="_blank"&gt;David Allsopp&lt;/a&gt; . Paper in the &lt;a href="https://icfp23.sigplan.org/details/ocaml-2023-papers/15/State-of-the-OCaml-Platform-2023" target="_blank"&gt;proceedings of the 2023 OCaml Users and Developers Workshop&lt;/a&gt; . &lt;a href="https://icfp23.sigplan.org/details/ocaml-2023-papers/15/State-of-the-OCaml-Platform-2023" target="_blank"&gt;URL&lt;/a&gt; (icfp23.sigplan.org) &lt;a href="https://anil.recoil.org/papers/2023-ocaml-platform.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-ocaml-platform.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Scheduling for Reduced Tail Latencies in Highly Utilised Datacenters</title><link href="https://anil.recoil.org/ideas/murmuration" rel="alternate"></link><published>2023-09-01T01:00:00Z</published><updated>2023-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/murmuration</id><summary type="html">Scheduling for Reduced Tail Latencies in Highly Utilised Datacenters This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and has been completed by &lt;a href="https://www.cl.cam.ac.uk/~sv440/" target="_blank"&gt;Smita Vijayakumar&lt;/a&gt; . It was co-supervised with &lt;a href="https://www.cst.cam.ac.uk/people/ek264" target="_blank"&gt;Evangelia Kalyvianaki&lt;/a&gt; . Modern datacenters have become the backbone for running diverse workloads that increas- ingly comprise data-parallel computational jobs. Due to the ease of use and diversity of resources they host there has been an exponential rise in the demand for datacenters leading to high volume of traffic. Datacenters execute thousands of jobs by scheduling billions of tasks every day. To meet these demands, datacenters providers operate their clusters at levels of high utilisation. We show that under such conditions existing scheduling designs impose large wait times on tail...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Eio 1.0 – Effects-based IO for OCaml 5</title><link href="https://anil.recoil.org/news/2023-ocaml-eio-1" rel="alternate"></link><published>2023-09-01T01:00:00Z</published><updated>2023-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-ocaml-eio-1</id><summary type="html">An update on the OCaml EIO library at the OCaml Workshop 2023 &lt;a href="https://github.com/https://roscidus.com" target="_blank"&gt;Thomas Leonard&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://github.com/haesbaert" target="_blank"&gt;Christiano Haesbaert&lt;/a&gt; , &lt;a href="https://www.lortex.org" target="_blank"&gt;Lucas Pluvinage&lt;/a&gt; , &lt;a href="https://github.com/polytypic" target="_blank"&gt;Vesa Karvonen&lt;/a&gt; , &lt;a href="https://github.com/Sudha247" target="_blank"&gt;Sudha Parimala&lt;/a&gt; , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; , &lt;a href="https://github.com/balat" target="_blank"&gt;Vincent Balat&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://icfp23.sigplan.org/details/ocaml-2023-papers/5/Eio-1-0-Effects-based-IO-for-OCaml-5" target="_blank"&gt;proceedings of the 2023 OCaml Users and Developers Workshop&lt;/a&gt; . &lt;a href="https://icfp23.sigplan.org/details/ocaml-2023-papers/5/Eio-1-0-Effects-based-IO-for-OCaml-5" target="_blank"&gt;URL&lt;/a&gt; (icfp23.sigplan.org) &lt;a href="https://anil.recoil.org/papers/2023-ocaml-eio.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-ocaml-eio.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OneDrive and NixOS</title><link href="https://mort.io/blog/nixos-onedrive/" rel="alternate"></link><published>2023-08-22T01:00:00Z</published><updated>2023-08-22T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/nixos-onedrive/</id><summary type="html">https://github.com/abraunegg/onedrive/blob/master/docs/SharePoint-Shared-Libraries.md https://github.com/NixOS/nixpkgs/pull/77734#issuecomment-575874225 FWIW I also use that package on a NixOS system (via a Nix package that can presumably be installed on other systems if you add nix as a package manager), https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FNixOS%2Fnixpkgs%2Fblob%2Fmaster%2Fnixos%2Fmodules%2Fservices%2Fnetworking%2Fonedrive.nix&amp;data=05%7C02%7Crmm1002%40universityofcambridgecloud.onmicrosoft.com%7C8792d760606b4a3e80d108dcbd47b53a%7C49a50445bdfa4b79ade3547b4f3986e9%7C1%7C0%7C638593362895323916%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&amp;sdata=qPJyO0hTLRnrkbssZ0Y4cLfhaygDiEQtlQ0pwAjgMwM%3D&amp;r...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Pandas vs Efficiency</title><link href="https://digitalflapjack.com/blog/pandas-vs-efficiency/" rel="alternate"></link><published>2023-08-07T11:21:45Z</published><updated>2023-08-07T11:21:45Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/pandas-vs-efficiency/</id><summary type="html">As part of my role at the &lt;a href="https://4c.cst.cam.ac.uk" target="_blank"&gt;Cambridge Center for Carbon Credits (4C)&lt;/a&gt; , working closely with ecologists in processing of data, I've become an accidental data scientist, by which I mean instead of loading CSV files directly I now use &lt;a href="https://pandas.pydata.org" target="_blank"&gt;pandas&lt;/a&gt; . Pandas is a popular library that makes working with large arrays of data easier. Unlike &lt;a href="https://numpy.org" target="_blank"&gt;numpy&lt;/a&gt; , which is there to make it easy to process data in multidimensional arrays, pandas works one abstraction higher, giving columns names and treating the data as tabular, rather than just raw numbers. But similar to numpy, it provides nice syntax to help you work with that data without worrying about individual elements, you tend to work at that tabular level, and that makes it particularly powerful for someone who isn't a native programmer, rather someone who is a domain expert in...</summary><category term="Digital Flapjack"></category></entry><entry><title>Why using Slack is bad for GeoTIFF Rasters</title><link href="https://digitalflapjack.com/blog/slack-bad-for-gis-rasters/" rel="alternate"></link><published>2023-08-03T14:48:18Z</published><updated>2023-08-03T14:48:18Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/slack-bad-for-gis-rasters/</id><summary type="html">In the past &lt;a href="/blog/some-notes-on-processing-and-display-geospatial-data/" target="_blank"&gt;I've written about&lt;/a&gt; how &lt;a href="https://www.ogc.org/standard/geotiff/" target="_blank"&gt;GeoTIFF&lt;/a&gt; is one of the most common datas formats used for geospatial data. A GeoTIFF is just a standard TIFF image with a few extra fields on it that mean geospatial tools such as &lt;a href="https://qgis.org/en/site/" target="_blank"&gt;QGIS&lt;/a&gt; or libraries such as &lt;a href="https://gdal.org" target="_blank"&gt;GDAL&lt;/a&gt; know what geographic region this data is referring to, and what map projection system its stored relative to. For example, here is a GeoTIFF I generated showing me where in Sweden you might find moose (meese?): Perhaps I'm sufficiently excited by the notion of where the moose can be found that I want to share this with one of my colleagues via our workplace &lt;a href="https://slack.com/" target="_blank"&gt;Slack&lt;/a&gt; channel. So I drop the file in, they download it, but then they complain that the image is now all wrong: If we zoom out a bit, we find not only does the image look funny, it's...</summary><category term="Digital Flapjack"></category></entry><entry><title>Meta Properties of Financial Smart Contracts</title><link href="https://anil.recoil.org/ideas/metaproperties-for-smart-contracts" rel="alternate"></link><published>2023-08-01T01:00:00Z</published><updated>2023-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/metaproperties-for-smart-contracts</id><summary type="html">Meta Properties of Financial Smart Contracts This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and has been completed by &lt;a href="https://derekhsorensen.com" target="_blank"&gt;Derek Sorensen&lt;/a&gt; . It was co-supervised with &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; . Financial smart contracts routinely manage billions of US dollars worth of digital assets, making bugs in smart contracts extremely costly, and are also increasingly being used in other areas of endeavour such as carbon credit tracking. Because of this, much work has been done in formal verification of smart contracts to prove a contract correct with regards to its specification. However, financial smart contracts have complicated specifications, and it is not all straightforward for humans to write one which correctly captures all of its intended high-level behaviors. To mitigate this...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Computational Models for Scientific Exploration</title><link href="https://anil.recoil.org/ideas/computational-scientific-methods" rel="alternate"></link><published>2023-08-01T01:00:00Z</published><updated>2023-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/computational-scientific-methods</id><summary type="html">Computational Models for Scientific Exploration This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and is currently being worked on by &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; . It is co-supervised with &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; . The modern scientific method has become highly computational, but computer science hasn't entirely caught up and is sometimes hindering research progress. We use climate science and ecology computation needs as a case study, we are conducting a systematic study in the sources of uncertainty in these fields. We are also designing and implementing a specification language and hermetic computation environment that empowers climate scientists and ecologists to create less ambiguous, more precise and testable scientific methodologies and results, while preserving the ability to explore...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Preprint on the social value of impermanent carbon credits</title><link href="https://anil.recoil.org/news/2023-ncc-permanence-1" rel="alternate"></link><published>2023-07-01T01:00:00Z</published><updated>2023-07-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-ncc-permanence-1</id><summary type="html">We have uploaded a preprint of our &lt;a href="https://anil.recoil.org/projects/4c" target="_blank"&gt;4C&lt;/a&gt; paper on valuing impermanent carbon credits, by using the &lt;a href="https://en.wikipedia.org/wiki/Social_cost_of_carbon" target="_blank"&gt;Social Cost of Carbon&lt;/a&gt; as a basis for a discount function into the future. Comments and feedback are most welcome. &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; , &lt;a href="https://www.lse.ac.uk/granthaminstitute/profile/frank-venmans/" target="_blank"&gt;Frank Venmans&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://business-school.exeter.ac.uk/economics/research/subject-themes/profile/index.php?web_id=ben_groom" target="_blank"&gt;Ben Groom&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; . Journal paper in &lt;a href="https://www.nature.com/articles/s41558-023-01815-0" target="_blank"&gt;Nature Climate Change&lt;/a&gt; (vol 13 issue 11). &lt;a href="https://www.nature.com/articles/s41558-023-01815-0" target="_blank"&gt;URL&lt;/a&gt; (nature.com) &lt;a href="https://doi.org/10.1038/s41558-023-01815-0" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-ncc-permanence.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-ncc-permanence.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml wins the ACM Programming Language Software award</title><link href="https://anil.recoil.org/notes/acm-sigplan-award" rel="alternate"></link><published>2023-06-19T01:00:00Z</published><updated>2023-06-19T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/acm-sigplan-award</id><summary type="html">I was honoured to be included in the OCaml team that won the &lt;a href="https://www.cst.cam.ac.uk/news/acm-programming-languages-software-award-goes-ocaml-researchers" target="_blank"&gt;ACM Programming Languages Software Award for 2023&lt;/a&gt; . The Association for Computing Machinery (ACM), the world's largest association of computing professionals, today gave the 2023 SIGPLAN Award to a group of developers for their work on the functional programming language OCaml. The award was presented at the annual SIGPLAN Programming Language Design and Implementation Conference to a group of researchers and developers including our colleague Anil Madhavapeddy, Professor of Planetary Computing here. The prestigious Programming Languages Software Award is given annually "to an institution or individual(s) to recognise the development of a software system that has had a significant impact on programming language research, implementations, and tools," ACM says. --...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Developing OCaml with Nix</title><link href="https://ryan.freumh.org/ocaml-nix.html" rel="alternate"></link><published>2023-06-07T01:00:00Z</published><updated>2023-06-07T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/ocaml-nix.html</id><summary type="html">Published Wed 7 Jun 2023. Last update Wed 7 Jun 2023. Lately, I’ve been writing a significant amount of OCaml as part of my PhD. Instead of using the OCaml package manager (opam) command-line interface (CLI) for these projects, I prefer to use &lt;a href="./nix.html" target="_blank"&gt;Nix&lt;/a&gt; to provide declarative and reproducible development environments and builds. However I still want to be able to interoperate with opam’s file format and access packages from the opam repository. In this blog post we’ll walk through creating a flake.nix file to do this for a hello world project at &lt;a href="https://github.com/RyanGibb/ocaml-nix-hello" target="_blank"&gt;github.com/RyanGibb/ocaml-nix-hello&lt;/a&gt; . Our aim is to make building an OCaml project, and setting up a development environment, as simple as one command. Nix? I’ve said that Nix can provide declarative and reproducible environments and builds. Let’s break down what this...</summary><category term="ryan.freumh.org"></category></entry><entry><title>PACT Tropical Moist Forest Accreditation Methodology</title><link href="https://anil.recoil.org/news/2023-pact-tmf-1" rel="alternate"></link><published>2023-06-01T01:00:00Z</published><updated>2023-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-pact-tmf-1</id><summary type="html">We have just published the Tropical Moist Forest v1.0 specification, which is a detailed description of the methodology we are using for counterfactual dynamic baselines to calculate the additionality, leakage and permanence behind REDD+ projects. I explained some of the background behind this in a seminar last year. &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://www.liverpool.ac.uk/geography-and-planning/research/environmental-change/postgraduates/" target="_blank"&gt;James Hartup&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; , &lt;a href="https://uk.linkedin.com/in/miranda-lam-a088561b4" target="_blank"&gt;Miranda Lam&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://www.lambdacambridge.com/robin-message" target="_blank"&gt;Robin Message&lt;/a&gt; , &lt;a href="https://www.plantsci.cam.ac.uk/staff/dr-e-ping-rau" target="_blank"&gt;E.-Ping Rau&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.plantsci.cam.ac.uk/staff/dr-charlotte-wheeler" target="_blank"&gt;Charlotte Wheeler&lt;/a&gt; and &lt;a href="https://www.zoo.cam.ac.uk/directory/abigail-williams" target="_blank"&gt;Abby Williams&lt;/a&gt; . Working paper at &lt;a href="https://www.cambridge.org/engage/coe/article-details/66b9d9345101a2ffa813e37c" target="_blank"&gt;Cambridge Open Engage&lt;/a&gt; . &lt;a href="https://www.cambridge.org/engage/coe/article-details/66b9d9345101a2ffa813e37c" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.33774/coe-2024-gvslq" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-pact-tmf.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2023-pact-tmf.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Build your own Stacks Project in 10 minutes</title><link href="https://www.forester-notes.org/jms-0052/" rel="alternate"></link><published>2023-05-14T01:00:00Z</published><updated>2023-05-14T01:00:00Z</updated><author><name>JonS</name></author><id>https://www.forester-notes.org/jms-0052/</id><summary type="html">&lt;a href="https://www.forester-notes.org/stacks-project/" target="_blank"&gt;The Stacks project&lt;/a&gt; is the most successful scientific hypertext project in history. Its goal is to lay the foundations for the theory of algebraic stacks; to facilitate its scalable and sustainable development, several important innovations have been introduced, with the tags system being the most striking. Each tag refers to a unique item (section, lemma, theorem, etc.) in order for this project to be referenceable. These tags don't change even if the item moves within the text. ( &lt;a href="https://stacks.math.columbia.edu/tags" target="_blank"&gt;Tags explained&lt;/a&gt; , &lt;a href="https://www.forester-notes.org/stacks-project/" target="_blank"&gt;The Stacks Project&lt;/a&gt; ). Many working scientists, students, and hobbyists have wished to create their own tag-based hypertext knowledge base, but the combination of tools historically required to make this happen are extremely daunting. Both the &lt;a href="https://www.forester-notes.org/stacks-project/" target="_blank"&gt;Stacks project&lt;/a&gt; and &lt;a href="https://www.forester-notes.org/kerodon/" target="_blank"&gt;Kerodon&lt;/a&gt; use a cluster of software called &lt;a href="https://www.forester-notes.org/gerby/" target="_blank"&gt;Gerby&lt;/a&gt; ,...</summary><category term="Forester Blog"></category></entry><entry><title>Credit credibility threatens forests</title><link href="https://anil.recoil.org/news/2023-carbon-credibility-1" rel="alternate"></link><published>2023-05-01T01:00:00Z</published><updated>2023-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2023-carbon-credibility-1</id><summary type="html">Our perspective in &lt;a href="https://science.org" target="_blank"&gt;Science&lt;/a&gt; magazine appeared this week on the credibility of carbon credits and its importance for tropical forest protection. Addressing global warming requires increased investment in conserving and restoring carbon-dense natural habitats. Some companies that emit carbon have turned to certified carbon credits to offset their environmental impact. However, the effectiveness of carbon credits depends on the methods used to quantify them. If carbon credits do not accurately represent their environmental benefits, relying on them could exacerbate climate change. To ensure that carbon credits are robust, the methods used to calculate them must be improved. &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , Pedro H. S. Brancalion , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://www.cccep.ac.uk/profile/ben-filewod/" target="_blank"&gt;Ben Filewod&lt;/a&gt; , &lt;a href="https://business-school.exeter.ac.uk/economics/research/subject-themes/profile/index.php?web_id=ben_groom" target="_blank"&gt;Ben Groom&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/alejandro-guizar-coutino" target="_blank"&gt;Alejandro Guizar-Coutiño&lt;/a&gt; , &lt;a href="https://www.bangor.ac.uk/staff/sens/julia-patricia-gordon-jones-010356/en" target="_blank"&gt;Julia P.G. Jones&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; ,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>WSL2 / Windows 11</title><link href="https://mort.io/blog/windows-wsl2/" rel="alternate"></link><published>2023-03-13T00:00:00Z</published><updated>2023-03-13T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/windows-wsl2/</id><summary type="html">I naively thought I could just use WSL2 on Windows on my new laptop. But it turned out this was the year of Linux on the Laptop for me. For posterity here’s the crib sheet though. wsl -- set-default-version 2 sudo apt update &amp;&amp; sudo apt upgrade - yy sudo apt install locales sudo locale-gen en_GB.UTF-8 sudo apt install - yy emacs-gtk direnv gedit git clone ./..rc-files ./scripts/install.sh Some Windows native packages using &lt;a href="https://chocolatey.org/" target="_blank"&gt;Chocolatey&lt;/a&gt; choco install signal skype wire slack zoom choco install git choco install rustup.install rust-analyzer python choco install docker choco install powertyos dropbox googledrive wiztree However, choco install texlive didn’t work so well, so I fell back to WSL2: sudo apt install latexmk texlive-latex-base texlive-xetex ttf-mscorefonts-installer . Use MS...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Leveraging Scientific Innovation and AI to Scale Carbon Markets</title><link href="https://anil.recoil.org/news/ce64a918-ff52-4116-b1ee-256f08e6e7f1-1" rel="alternate"></link><published>2023-03-07T00:00:00Z</published><updated>2023-03-07T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/ce64a918-ff52-4116-b1ee-256f08e6e7f1-1</id><summary type="html">Discussion with Mantle Labs about carbon credits</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>A Case for Planetary Computing</title><link href="https://anil.recoil.org/news/2024-planetary-computing-1" rel="alternate"></link><published>2023-03-01T00:00:00Z</published><updated>2023-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2024-planetary-computing-1</id><summary type="html">Preprint of planetary computing paper &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://mynameismwd.org" target="_blank"&gt;Michael Dales&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://ameliaholcomb.github.io" target="_blank"&gt;Amelia Holcomb&lt;/a&gt; , &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , &lt;a href="https://www.conservation.cam.ac.uk/staff/dr-alison-eyres" target="_blank"&gt;Alison Eyres&lt;/a&gt; , &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Working paper at &lt;a href="http://arxiv.org/abs/2303.04501" target="_blank"&gt;arXiv&lt;/a&gt; . &lt;a href="http://arxiv.org/abs/2303.04501" target="_blank"&gt;URL&lt;/a&gt; (arxiv.org) &lt;a href="https://doi.org/10.48550/arXiv.2303.04501" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2024-planetary-computing.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml operators</title><link href="https://mort.io/blog/ocaml-operators/" rel="alternate"></link><published>2023-02-26T00:00:00Z</published><updated>2023-02-26T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/ocaml-operators/</id><summary type="html">An &lt;a href="https://www.brendanlong.com/ocaml-operator-cheatsheet.html" target="_blank"&gt;OCaml operator 56cheatsheet&lt;/a&gt; for &lt;a href="https://ocaml.org/" target="_blank"&gt;OCaml&lt;/a&gt; operators that I have found useful.</summary><category term="mort’s mythopœia"></category></entry><entry><title>Software folklore</title><link href="https://mort.io/blog/software-folklore/" rel="alternate"></link><published>2023-02-26T00:00:00Z</published><updated>2023-02-26T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/software-folklore/</id><summary type="html">Truly cursed bugs that have become &lt;a href="http://beza1e1.tuxen.de/lore/" target="_blank"&gt;software 57folklore&lt;/a&gt; .</summary><category term="mort’s mythopœia"></category></entry><entry><title>Species distribution modelling using CNNs</title><link href="https://anil.recoil.org/ideas/sdms-with-cnns" rel="alternate"></link><published>2023-02-01T00:00:00Z</published><updated>2023-02-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/sdms-with-cnns</id><summary type="html">Species distribution modelling using CNNs This is an idea proposed in 2023 as a Cambridge Computer Science Part III or MPhil project, and has been completed by &lt;a href="https://github.com/emorris7" target="_blank"&gt;Emily Morris&lt;/a&gt; . It was co-supervised with &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; . The goal of this project is to compare the performance of &lt;a href="https://biodiversityinformatics.amnh.org/open_source/maxent/" target="_blank"&gt;MaxEnt&lt;/a&gt; techniques to the performance of a CNN model for the task of species distribution modeling. The CNN model will use remote sensing data as part of the input features. The remote sensing data we plan on using is a combination of LULC data (e.g. Dynamic World) and satellite imagery (Planet/Landsat 8/Sentinel 2). We will also use more classical environmental variables from WorldClim and soil data. To evaluate it, we will focus on &lt;a href="https://en.wikipedia.org/wiki/Protea" target="_blank"&gt;proteas&lt;/a&gt; for the species distribution modeling task. We have two observation data...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>How to update a Tezos Smart-Contract</title><link href="https://digitalflapjack.com/blog/tezos-contract-upgrades/" rel="alternate"></link><published>2023-01-25T11:28:59Z</published><updated>2023-01-25T11:28:59Z</updated><author><name>MichaelD</name></author><id>https://digitalflapjack.com/blog/tezos-contract-upgrades/</id><summary type="html">How to update a Smart-Contract The &lt;a href="https://4c.cst.cam.ac.uk" target="_blank"&gt;Cambridge Center for Carbon Credits&lt;/a&gt; (4C) has been looking at using a distributed ledger, aka blockchain, to make a public, immutable, verifiable store of information about carbon-offsets as a way of providing traceability into the validity of that offset. Whilst blockchains are not my domain of expertise, I was tasked earlier this year with getting the project's smart contract ready for production, being the experienced generalist software-engineer on the team. I've &lt;a href="https://digitalflapjack.com/blog/getting-started-with-tezos/" target="_blank"&gt;previously written up&lt;/a&gt; some of the trials of getting started with the Tezos blockchain platform from a software-engineering perspective, and this post is more of the same, but focussed on one particular area: how do you ship updates to your smart-contract once you've shipped it? The problem is this: any bit of software evolves...</summary><category term="Digital Flapjack"></category></entry><entry><title>Bibliography Management</title><link href="https://ryan.freumh.org/bibliography-management.html" rel="alternate"></link><published>2023-01-17T00:00:00Z</published><updated>2023-01-17T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/bibliography-management.html</id><summary type="html">Published Tue 17 Jan 2023. Last update Wed 7 Jun 2023. I recently received a request to outline my process for managing bibliographies. Here’s a breakdown of my approach. Bibliography Generation I &lt;a href="https://git.freumh.org/ryan/nixos/src/commit/19e643e3117d8d83dc86e5cf7a7cecc668f68a49/modules/personal/gui/extra.nix#L12" target="_blank"&gt;use&lt;/a&gt; the &lt;a href="https://www.zotero.org/" target="_blank"&gt;Zotero&lt;/a&gt; application as a reference manager. The Zotero Firefox &lt;a href="https://www.zotero.org/download/connectors" target="_blank"&gt;connector&lt;/a&gt; &lt;a href="#fn1" target="_blank"&gt;1&lt;/a&gt; lets me add papers from URLs. Zotero is quite smart about grabbing the metadata from the URL or PDF itself. The view I have from Zotero is: While Zotero is great for storing local copies of papers and generating bibliographies, I don’t find it to be optimal for organisation and note-taking. Instead, I use the &lt;a href="https://retorque.re/zotero-better-bibtex/" target="_blank"&gt;Zotero Better 58Bibtex&lt;/a&gt; plugin to export all the items in my library &lt;a href="#fn2" target="_blank"&gt;2&lt;/a&gt; into a &lt;a href="https://ctan.org/pkg/biblatex" target="_blank"&gt;BibLaTeX&lt;/a&gt; file that I reference items in with another application. Note-taking I’m using &lt;a href="https://obsidian.md/" target="_blank"&gt;Obsidian&lt;/a&gt; as a...</summary><category term="ryan.freumh.org"></category></entry><entry><title>OCaml.org: recapping 2022 and queries on the Fediverse</title><link href="https://anil.recoil.org/notes/recapping-ocaml-22" rel="alternate"></link><published>2023-01-02T00:00:00Z</published><updated>2023-01-02T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/recapping-ocaml-22</id><summary type="html">I recap the OCaml community progress in 2022, which covers a number of bases ranging from the release of OCaml 5.0, the launch of a new website with integrated documentation for 20000+ packages, prototyping new developer workflows that are better integrated into editors, and the launch of ActivityPub based services such as &lt;a href="https://watch.ocaml.org" target="_blank"&gt;https://watch.ocaml.org&lt;/a&gt; .</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The role of urban vegetation in human health</title><link href="https://anil.recoil.org/ideas/urban-vegetation" rel="alternate"></link><published>2023-01-01T00:00:00Z</published><updated>2023-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/urban-vegetation</id><summary type="html">The role of urban vegetation in human health This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and is currently being worked on by &lt;a href="https://ancazugo.github.io/" target="_blank"&gt;Andres Zuñiga-Gonzalez&lt;/a&gt; . It is co-supervised with &lt;a href="https://www.arct.cam.ac.uk/people/dr-ronita-bardhan" target="_blank"&gt;Ronita Bardhan&lt;/a&gt; . Cities around the globe have experienced unprecedented growth in recent years, becoming centres of economic, cultural, and social hubs for human activity. Rapid urbanisation has transformed the physical landscape and significantly altered local climates, with predictions stating that cities will harbour more than 70% of the population by the middle of the 21st century. This has also changed the climatic variables to which humans are most directly exposed. Combining global climatic changes with localised human activities has created new challenges that cities must solve to be...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Reverse emulating agent-based models for policy simulation</title><link href="https://anil.recoil.org/ideas/rev-abm" rel="alternate"></link><published>2023-01-01T00:00:00Z</published><updated>2023-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/rev-abm</id><summary type="html">Reverse emulating agent-based models for policy simulation This is an idea proposed in 2023 as a Cambridge Computer Science Part III or MPhil project, and has been completed by &lt;a href="https://www.linkedin.com/in/pedro-marques-sousa/" target="_blank"&gt;Pedro Sousa&lt;/a&gt; . It was co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . Governments increasingly rely on simulation tools to inform policy design. Agent-based models (ABMs) simulate complex systems to study the emergent phenomena of individual behaviours and interactions in agent populations. However, these ABMs force an iterative, time-consuming, unmethodical parameter tuning of key policy "levers" (or input parameters) to steer the model towards the envisioned outcomes. To unlock a more natural workflow, this project investigates reverse emulation , a novel approach that streamlines policy design using probabilistic machine learning...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Remote Sensing of Nature</title><link href="https://anil.recoil.org/projects/rsn" rel="alternate"></link><published>2023-01-01T00:00:00Z</published><updated>2023-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/rsn</id><summary type="html">Remote Sensing of Nature Measuring the world's forest carbon and biodiversity is made possible by remote sensing instruments, ranging from satellites in space (Landsat, Sentinel, GEDI) to ground-based sensors (ecoacoustics, camera traps, moisture sensors) that take regular samples and are processed into time-series metrics and actionable insights for conservation and human development. However, the algorithms for processing this data are challenging as the data is highly multimodal (multispectral, hyperspectral, synthetic aperture radar, or lidar), often sparsely sampled spatially, and not in a continuous time series. I work on various algorithms and software and hardware systems we are developing to improve the datasets we have about the surface of the earth. Mapping nature on earth...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mapping LIFE on Earth</title><link href="https://anil.recoil.org/projects/life" rel="alternate"></link><published>2023-01-01T00:00:00Z</published><updated>2023-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/life</id><summary type="html">Mapping LIFE on Earth Human-driven habitat loss is recognised as the greatest cause of biodiversity loss, but we lack robust, spatially explicit metrics quantifying the impacts of anthropogenic changes in habitat extent on species' extinctions. LIFE is our new metric that uses a persistence score approach that combines ecologies and land-cover data whilst considering the cumulative non-linear impact of past habitat loss on species' probability of extinction. We apply large-scale computing to map ~30k species of terrestrial vertebrates and provide quantitative estimates of the marginal changes in the expected number of extinctions caused by converting remaining natural vegetation to agriculture, and also by restoring farmland to natural habitat. We are also investigating many of the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Interspatial Networking with DNS</title><link href="https://anil.recoil.org/ideas/interspatial-networking" rel="alternate"></link><published>2023-01-01T00:00:00Z</published><updated>2023-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/interspatial-networking</id><summary type="html">Interspatial Networking with DNS This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and is currently being worked on by &lt;a href="https://ryan.freumh.org" target="_blank"&gt;Ryan Gibb&lt;/a&gt; . It is co-supervised with &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . The existing Internet architecture lacks support for naming locations and resolving them to the myriad addressing mechanisms we use beyond IP. While there have been many advances in addressing locations via multiple routing schemes , it remains difficult to refer to location-based services via logical names . This in turn makes it difficult to deploy network services that can be referred to by a stable name that specifies a given location, and that resolves to the addresses of the devices in that space. This matters because there are a broad class of network-connected devices with a physical...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Improving Resilience of ActivityPub Services</title><link href="https://anil.recoil.org/ideas/activitypub-resilience" rel="alternate"></link><published>2023-01-01T00:00:00Z</published><updated>2023-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/activitypub-resilience</id><summary type="html">Improving Resilience of ActivityPub Services This is an idea proposed in 2023 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Gediminas Lelešius&lt;/a&gt; . The original goal of the project was to improve the resilience of the distributed social networking protocol "ActivityPub", by caching the content on multiple instances and serving them in case the origin instance goes down. The project uses public-key cryptography to ensure data integrity, build a network of public key servers and verifiers and use that consensus instead of relying on individual servers to provide trustworthy data. The core deliverable is a key server gathering and serving public keys, a verifier checking the entries of that server, and a modified Mastodon server rescuing failed ActivityPub requests using an...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Assessing high-performance lightweight compression formats for geospatial computation</title><link href="https://anil.recoil.org/ideas/compressive-geospatial" rel="alternate"></link><published>2023-01-01T00:00:00Z</published><updated>2023-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/compressive-geospatial</id><summary type="html">Assessing high-performance lightweight compression formats for geospatial computation This is an idea proposed in 2023 as a Cambridge Computer Science Part III or MPhil project, and has been completed by &lt;a href="https://github.com/omarathon" target="_blank"&gt;Omar Tanner&lt;/a&gt; . It was co-supervised with &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; . Geospatial data processing can benefit from by applying lightweight compression techniques to data in GeoTIFF format, addressing the challenge of modern CPU bandwidth surpassing RAM bandwidths. This project will explore how to mitigate the impact of poor cache locality and the resulting memory bottlenecks by leveraging CPU superscalar capabilities and SIMD instructions. By implementing SIMD-optimised compression, data can remain compressed in RAM and closer to the CPU caches, facilitating faster access and alleviating memory constraints....</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Hacking on the Remarkable 2</title><link href="https://ryan.freumh.org/remarkable2.html" rel="alternate"></link><published>2022-12-17T00:00:00Z</published><updated>2022-12-17T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/remarkable2.html</id><summary type="html">Published Sat 17 Dec 2022. Last update Wed 7 Jun 2023. I’ve recently had the good fortune to come into possession of a &lt;a href="https://remarkable.com/store/remarkable-2" target="_blank"&gt;reMarkable 2&lt;/a&gt; E-Ink writing tablet. This device runs a modified version of Linux, and contains the following message in the copyrights and licenses information: GPLv3 Compliance The General Public License version 3 and the Lesser General Public License version 3 also requires you as an end-user to be able to access your device to be able to modify the copyrighted software licensed under these licenses running on it. To do so, this device acts as an USB ethernet device, and you can connect using the SSH protocol using the username ‘root’ and the password ‘&lt;password&gt;’. As a result of this, there is a vibrant community of hacking for the remarkable. This blog post will walk...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Nix</title><link href="https://ryan.freumh.org/nix.html" rel="alternate"></link><published>2022-12-14T00:00:00Z</published><updated>2022-12-14T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/nix.html</id><summary type="html">Published Wed 14 Dec 2022. Last update Mon 3 Feb 2025. Tags: &lt;a href="/technology.html" target="_blank"&gt;technology&lt;/a&gt; . Nix snowflake &lt;a href="#fn1" target="_blank"&gt;1&lt;/a&gt; Nix is a deployment system that uses cryptographic hashes to compute unique paths for components &lt;a href="#fn2" target="_blank"&gt;2&lt;/a&gt; that are stored in a read-only directory: the Nix store, at /nix/store/&lt;hash&gt;-&lt;name&gt; . This provides several benefits, including concurrent installation of multiple versions of a package, atomic upgrades, and multiple user environments &lt;a href="#ref-dolstraNixSafePolicyFree2004" target="_blank"&gt;[1]&lt;/a&gt; . Nix uses a declarative domain-specific language (DSL), also called Nix, to build and configure software. The snippet used to deploy the DNS server is in fact a Nix expression. This example doesn’t demonstrate it, but Nix is Turing complete. Nix does not, however, have a type system. We use the DSL to write derivations for software, which...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Hillingar: MirageOS Unikernels on NixOS</title><link href="https://ryan.freumh.org/hillingar.html" rel="alternate"></link><published>2022-12-14T00:00:00Z</published><updated>2022-12-14T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/hillingar.html</id><summary type="html">Published Wed 14 Dec 2022. Last update Mon 3 Feb 2025. Tags: &lt;a href="/projects.html" target="_blank"&gt;projects&lt;/a&gt; . A version of this blog post can be found on the Tarides website: &lt;a href="https://tarides.com/blog/2022-12-14-hillingar-mirageos-unikernels-on-nixos" target="_blank"&gt;https://tarides.com/blog/2022-12-14-hillingar-mirageos-unikernels-on-nixos&lt;/a&gt; . An arctic mirage &lt;a href="#ref-lehnNovayaZemlyaEffect1979" target="_blank"&gt;[1]&lt;/a&gt; &lt;a href="#fn1" target="_blank"&gt;1&lt;/a&gt; Introduction The Domain Name System (DNS) is a critical component of the modern Internet, allowing domain names to be mapped to IP addresses, mailservers, and more &lt;a href="#fn2" target="_blank"&gt;2&lt;/a&gt; . This allows users to access services independent of their location in the Internet using human-readable names. We can host a DNS server ourselves to have authoritative control over our domain, protect the privacy of those using our server, increase reliability by not relying on a third party DNS provider, and allow greater customization of the records served (or the behaviour of the server itself). However, it can be quite...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Financing Forests: A Credible Approach towards Halting Tropical Deforestation</title><link href="https://anil.recoil.org/news/bc9da6fc-9419-4f18-9db9-c13b1a4a859f-1" rel="alternate"></link><published>2022-11-16T00:00:00Z</published><updated>2022-11-16T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/bc9da6fc-9419-4f18-9db9-c13b1a4a859f-1</id><summary type="html">Wednesday seminar on financing forests using carbon credits</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>17th William Pitt Seminar - Who's in Charge?</title><link href="https://anil.recoil.org/news/a26475b5-c169-478e-b88e-be5cd1f2aff8-1" rel="alternate"></link><published>2022-11-01T00:00:00Z</published><updated>2022-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/a26475b5-c169-478e-b88e-be5cd1f2aff8-1</id><summary type="html">I opened the 17th William Pitt Seminar at Pembroke College on climate change with a brief talk about the status of the world's biodiversity, and how we have more agency than ever before to take matters into our own hands.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The 2nd ed of Real World OCaml is available in shops</title><link href="https://anil.recoil.org/news/rwo-2" rel="alternate"></link><published>2022-10-01T01:00:00Z</published><updated>2022-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/rwo-2</id><summary type="html">I'm delighted to report that the second edition of &lt;a href="https://realworldocaml.org" target="_blank"&gt;Real World OCaml&lt;/a&gt; is now available from Cambridge University Press! It's also freely available &lt;a href="https://realworldocaml.org" target="_blank"&gt;online&lt;/a&gt; , and CUP also kindly agreed that the PDF version could be freely available online thanks to sponsorship from &lt;a href="https://tarides.com" target="_blank"&gt;Tarides&lt;/a&gt; . [… &lt;a href="https://anil.recoil.org/news/rwo-2" target="_blank"&gt;105 words&lt;/a&gt; ] &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://github.com/yminsky" target="_blank"&gt;Yaron Minsky&lt;/a&gt; . Book published by &lt;a href="https://www.cambridge.org/core/books/real-world-ocaml-functional-programming-for-the-masses/052E4BCCB09D56A0FE875DD81B1ED571" target="_blank"&gt;Cambridge University Press&lt;/a&gt; . &lt;a href="https://www.cambridge.org/core/books/real-world-ocaml-functional-programming-for-the-masses/052E4BCCB09D56A0FE875DD81B1ED571" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.1017/9781009129220" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/rwo.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Homogeneous Builds with OBuilder and OCaml</title><link href="https://anil.recoil.org/news/2022-oud-ocurrent-1" rel="alternate"></link><published>2022-09-01T01:00:00Z</published><updated>2022-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2022-oud-ocurrent-1</id><summary type="html">Paper on our incremental computation DSL ocurrent presented in OCaml Workshop 2022 Tim McGilchrist , &lt;a href="https://github.com/dra27" target="_blank"&gt;David Allsopp&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://github.com/MisterDA" target="_blank"&gt;Antonin Décimo&lt;/a&gt; , &lt;a href="https://github.com/https://roscidus.com" target="_blank"&gt;Thomas Leonard&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://github.com/kit-ty-kate" target="_blank"&gt;Kate Deplaix&lt;/a&gt; . Paper in the &lt;a href="https://icfp22.sigplan.org/details/ocaml-2022-papers/8/Homogeneous-builds-with-OBuilder-and-OCaml" target="_blank"&gt;proceedings of the 2022 OCaml Users and Developers Workshop&lt;/a&gt; . &lt;a href="https://icfp22.sigplan.org/details/ocaml-2022-papers/8/Homogeneous-builds-with-OBuilder-and-OCaml" target="_blank"&gt;URL&lt;/a&gt; (icfp22.sigplan.org) &lt;a href="https://anil.recoil.org/papers/2022-oud-ocurrent.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Nim</title><link href="https://ryan.freumh.org/nim.html" rel="alternate"></link><published>2022-08-30T01:00:00Z</published><updated>2022-08-30T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/nim.html</id><summary type="html">Published Tue 30 Aug 2022. Last update Tue 30 Aug 2022. Tags: &lt;a href="/projects.html" target="_blank"&gt;projects&lt;/a&gt; . I recently had the good fortune to attended a talk by Simon Peyton Jones titled “Immutability changes everything: 40 years of functional programming” which chronologic Simon’s life and research career. Simon is a self-described one trick pony, where that trick is functional programming. However, this trick has taken him from being a major instigator in Haskell - he remains a lead developer of the Glasgow Haskell Compiler to this day - to Microsoft research, and more recently to Epic Games working on a new programming language dubbed ‘ &lt;a href="https://discourse.haskell.org/t/an-epic-future-for-spj/3573" target="_blank"&gt;Verse&lt;/a&gt; ’. In this talk Simon described how he first got interested in Computer Science through a problem posed to him: the game Nim. &lt;a href="#fn1" target="_blank"&gt;1&lt;/a&gt; The game Picture the scene: you and...</summary><category term="ryan.freumh.org"></category></entry><entry><title>A DSL for decentralised identity in OCaml</title><link href="https://anil.recoil.org/ideas/dsl-for-decentralised-id" rel="alternate"></link><published>2022-08-01T01:00:00Z</published><updated>2022-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/dsl-for-decentralised-id</id><summary type="html">A DSL for decentralised identity in OCaml This is an idea proposed in 2022 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://www.linkedin.com/in/michal-mgeladze-arciuch" target="_blank"&gt;Michał Mgeładze-Arciuch&lt;/a&gt; . It was co-supervised with &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; . There are currently multiple identity providers without direct incentives to cooperate. This leads to many redundant implementations of the identity handling logic, many of which are not immediately compatible with each other, leading to additional increases in friction when eventual agreement needs to be reached to perform user actions. Furthermore, from the perspective of the user of the identity service, they need to keep track of identity documents from multiple sources, which leads to more security attack surface. Solving the problem of partial identity proofs allows for many possible...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Trusted Carbon Credits</title><link href="https://anil.recoil.org/news/4c-1" rel="alternate"></link><published>2022-05-06T01:00:00Z</published><updated>2022-05-06T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/4c-1</id><summary type="html">With the recent controversies over low-integrity carbon credits, I spoke to Vox magazine about my skepticism about Adam Neumann's new startup. "The problem with the current markets is nothing to do with how we can trade these more effectively," said Anil Madhavapeddy, who is an associate professor of computer science and technology at Cambridge University and the director of the Cambridge Center for Carbon Credits. "We just do not have enough supply." -- &lt;a href="https://www.vox.com/recode/23142106/adam-neumann-crypto-carbon-credit-offset-flowcarbon" target="_blank"&gt;Vox&lt;/a&gt; The Cambridge Centre for Carbon Credits is an initiative I started with &lt;a href="https://www.zoo.cam.ac.uk/directory/andrew-balmford" target="_blank"&gt;Andrew Balmford&lt;/a&gt; , &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; and &lt;a href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield" target="_blank"&gt;Thomas Swinfield&lt;/a&gt; , aimed at issuing trusted and verifiable carbon credits towards the prevention of nature destruction due to anthropogenic actions. We researched a combination of large-scale data processing (satellite and...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Secure Programming with Dispersed Compartments</title><link href="https://anil.recoil.org/ideas/dispersed-compartments" rel="alternate"></link><published>2022-05-01T01:00:00Z</published><updated>2022-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/dispersed-compartments</id><summary type="html">Secure Programming with Dispersed Compartments This is an idea proposed in 2022 as a Cambridge Computer Science PhD topic, and has been completed by &lt;a href="https://zatkh.github.io/" target="_blank"&gt;Zahra Tarkhani&lt;/a&gt; . This PhD project proposes novel approaches and mechanisms for application compartmentalization and isolation to reduce their ever-growing attack surfaces. Our approach is motivated by the key observation that while hardware vendors compete to provide security features (notably memory safety and privilege separation) existing systems software like commodity OSs fail to utilize such features to improve application security and privacy properly. We propose a novel principled approach to privilege separation and isolation, enabling application security to be designed and enforced within and across different isolation boundaries, and...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml Multicore Monthly: heading towards OCaml 5.0</title><link href="https://anil.recoil.org/notes/multicore-monthly-mar22" rel="alternate"></link><published>2022-04-19T01:00:00Z</published><updated>2022-04-19T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/multicore-monthly-mar22</id><summary type="html">We're getting closer to a stable release of OCaml 5.0, including reenabling support for the BSDs and introducing ARM64 multicore support.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Virtual and Augmented Reality</title><link href="https://ryan.freumh.org/vr-ar.html" rel="alternate"></link><published>2022-04-18T01:00:00Z</published><updated>2022-04-18T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/vr-ar.html</id><summary type="html">Published Mon 18 Apr 2022. Last update Tue 19 Apr 2022. I’ve been interested in virtual reality (VR) and augmented reality (AR) recently as the use case for the system(s) I’m working on in my MPhil project. This blog post will cover my development experience in porting my &lt;a href="../cubes/" target="_blank"&gt;cubes&lt;/a&gt; game to both VR and AR, and give a small demo for the latter. Microsoft Windows was used for ease of development with &lt;a href="https://unity.com/" target="_blank"&gt;Unity&lt;/a&gt; and as it’s a hard requirement for the AR headset made by Microsoft. VR The &lt;a href="https://www.oculus.com/quest-2/" target="_blank"&gt;Oculus Quest 2&lt;/a&gt; from Meta (formally Facebook) is a VR headset running an Android derivative. This means you can do cool stuff like run &lt;a href="https://www.reddit.com/r/cyberDeck/comments/fc5sfr/oculus_quest_termux_selfcontained_hmd_cyberdeck/" target="_blank"&gt;Termux&lt;/a&gt; on it (an Android terminal emulator and unvirtualised Linux environment). It’s nowhere near as flexible as something like what &lt;a href="https://simulavr.com/" target="_blank"&gt;SimulaVR&lt;/a&gt; are doing, which features a...</summary><category term="ryan.freumh.org"></category></entry><entry><title>OCaml Multicore Monthly: post merge activites</title><link href="https://anil.recoil.org/notes/multicore-monthly-jan22" rel="alternate"></link><published>2022-02-09T00:00:00Z</published><updated>2022-02-09T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/multicore-monthly-jan22</id><summary type="html">After we got the massive OCaml 5.0 pull request merged, we've taken some time to consolidate the trunk branch of OCaml and start down the release path towards getting OCaml 5.0 out of the door.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>DNS LOC</title><link href="https://ryan.freumh.org/dns-loc-rr.html" rel="alternate"></link><published>2022-01-18T00:00:00Z</published><updated>2022-01-18T00:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/dns-loc-rr.html</id><summary type="html">Published Tue 18 Jan 2022. Last update Sat 21 May 2022. The Domain Name System (DNS) has a little known ‘LOC’ resouce record (RR) defined in 1996 for encoding location information purportedly for hosts, networks, and subnets[0]. It encodes: Latitude Longitude Altitude Size of the referenced sphere Horizontal and vertical precision A number of suggested uses are proposed in the RFC: USENET - a distributed discussion system now ecplised by the World Wide Web - geographic flow maps. A ‘visual traceroute’ application showing geographical flow of IP packet, presumably relying on router responding to both IP TTL timeouts and DNS LOC requests. Network management based using LOC RRs to map hosts and routers. RFC-1876 also describes algorithms for resolving locations for domain names or IP...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Using effect handlers for efficient parallel scheduling</title><link href="https://anil.recoil.org/ideas/parallel-scheduling-with-effects" rel="alternate"></link><published>2022-01-01T00:00:00Z</published><updated>2022-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/parallel-scheduling-with-effects</id><summary type="html">Using effect handlers for efficient parallel scheduling This is an idea proposed in 2022 as a Cambridge Computer Science Part III or MPhil project, and has been completed by &lt;a href="https://github.com/bartoszmodelski" target="_blank"&gt;Bartosz Modelski&lt;/a&gt; . Modern hardware is so parallel and workloads are so concurrent, that there is no single, perfect scheduling strategy across a complex application software stack. Therefore, there are significant performance advantages to be gained from customizing and composing schedulers. Multicore parallelism is here to stay, and in contrast with clock frequency increases, schedulers have to be carefully crafted in order to take full advantage of horizontal scaling of the underlying architecture. That’s because designs need to evolve as synchronization primitives such as locks or atomics do not scale endlessly to many...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Spatial Name System</title><link href="https://anil.recoil.org/ideas/sns" rel="alternate"></link><published>2022-01-01T00:00:00Z</published><updated>2022-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/sns</id><summary type="html">Spatial Name System This is an idea proposed in 2022 as a Cambridge Computer Science Part III or MPhil project, and has been completed by &lt;a href="https://ryan.freumh.org" target="_blank"&gt;Ryan Gibb&lt;/a&gt; . It was co-supervised with &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . The development of emerging classes of hardware such as Internet of Thing devices and Augmented Reality headsets has outpaced the development of Internet infrastructure. We identify problems with latency, security and privacy in the global hierarchical distributed Domain Name System. To remedy this, we propose the Spatial Name System, an alternative network architecture that relies on the innate physicality of this paradigm. Utilizing a device’s pre-existing unique identifier, its location, allows us to identify devices locally based on their physical presence. A naming system tailored to the physical...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Scalable agent-based models for optimized policy design</title><link href="https://anil.recoil.org/ideas/differentiable-abm" rel="alternate"></link><published>2022-01-01T00:00:00Z</published><updated>2022-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/differentiable-abm</id><summary type="html">Scalable agent-based models for optimized policy design This is an idea proposed in 2022 as a Cambridge Computer Science Part III or MPhil project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Sharan Agrawal&lt;/a&gt; . It was co-supervised with &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; . As the world faces twinned crises of climate change and biodiversity loss, the need for integrated policy approaches addressing both is paramount. To help address this, this project investigates a new agent-based model dubbed the VDSK-B. Using Dasgupta's &lt;a href="https://www.gov.uk/government/publications/final-report-the-economics-of-biodiversity-the-dasgupta-review" target="_blank"&gt;review of the economics of biodiversity&lt;/a&gt; , it builds on the &lt;a href="https://www.sciencedirect.com/science/article/pii/S0921800917314623" target="_blank"&gt;Dystopian Schumpeter meets Keynes&lt;/a&gt; (DSK) climate economics model to link together the climate, economy and biosphere. This is the first ABM proposed that integrates all 3 key elements. The project also investigates how to scale such ABMs to be applicable for global policy design and scale to planetary-sized...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Planetary Computing</title><link href="https://anil.recoil.org/projects/plancomp" rel="alternate"></link><published>2022-01-01T00:00:00Z</published><updated>2022-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/plancomp</id><summary type="html">Planetary Computing Planetary computing is our research into the systems required to handle the ingestion, transformation, analysis and publication of global data products for furthering environmental science and enabling better informed policy-making. We apply computer science to problem domains such as forest carbon and biodiversity preservation, and design solutions that can scalably processing geospatial data that build trust in the results via traceability and reproducibility. Key problems include how to handle continuously changing datasets that are often collected across decades and require careful access and version control. "Planetary computing" originated as a term back in 2020 when a merry band of us from Computer Science ( &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; and me, later joined by &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; ,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Enhancing the Security &amp; Privacy of Wearable Brain-Computer Interfaces</title><link href="https://anil.recoil.org/news/2022-enhancing-brain-security-1" rel="alternate"></link><published>2022-01-01T00:00:00Z</published><updated>2022-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2022-enhancing-brain-security-1</id><summary type="html">Preprint on security vulnerabilities in brain-computer interfaces &lt;a href="https://zatkh.github.io/" target="_blank"&gt;Zahra Tarkhani&lt;/a&gt; , &lt;a href="https://lorenaqendro.github.io" target="_blank"&gt;Lorena Qendro&lt;/a&gt; , Malachy O'Connor Brown , Oscar Hill , &lt;a href="https://www.cl.cam.ac.uk/~cm542/" target="_blank"&gt;Cecilia Mascolo&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Working paper at &lt;a href="http://arxiv.org/abs/2201.07711" target="_blank"&gt;arXiv&lt;/a&gt; . &lt;a href="http://arxiv.org/abs/2201.07711" target="_blank"&gt;URL&lt;/a&gt; (arxiv.org) &lt;a href="https://doi.org/10.48550/arXiv.2201.07711" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2022-enhancing-brain-security.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2022-enhancing-brain-security.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Decentralised Capability-based Code Collaboration using Matrix</title><link href="https://anil.recoil.org/ideas/version-control-matrix" rel="alternate"></link><published>2022-01-01T00:00:00Z</published><updated>2022-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/version-control-matrix</id><summary type="html">Decentralised Capability-based Code Collaboration using Matrix This is an idea proposed in 2022 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://bsky.app/profile/wedg.dev" target="_blank"&gt;Samuel Wedgwood&lt;/a&gt; . In 2005, due to licensing disputes, the team behind Linux parted ways with their proprietary source management tool BitKeeper, and needed a new solution. This prompted the development of Git, an open-source decentralised version control system (DVCS), which was soon used to manage the source code of Linux. Contributions were submitted as patch files, which contained just the differences that the contribution made, to an email list, which were reviewed and applied to the central Git repository for Linux. Git grew in popularity and other projects started using it to manage their source code. Then, in 2008, the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml Multicore Monthly: code review complete with Inria</title><link href="https://anil.recoil.org/notes/multicore-monthly-dec21" rel="alternate"></link><published>2021-12-21T00:00:00Z</published><updated>2021-12-21T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/multicore-monthly-dec21</id><summary type="html">We've been working hard on OCaml multicore support, and went over to Paris to sit down with some core developers from Inria and work through code review of our proposed patches.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>2021 SDG Hackathon</title><link href="https://ancazugo.github.io/r/tidytuesday/sdg-hackathon.html" rel="alternate"></link><published>2021-11-06T00:00:00Z</published><updated>2021-11-06T00:00:00Z</updated><author><name>AndrésZG</name></author><id>https://ancazugo.github.io/r/tidytuesday/sdg-hackathon</id><summary type="html">I participated in the 2021 &lt;a href="https://www.sdghackathon.io/" target="_blank"&gt;SDG Hackathon&lt;/a&gt; hosted by CORELAID Switzerland and the University of Basel. The data used was obtained from text analysis of projects realted to SDGs in Switzerland using five different systems. Each system detected a number of times each SDG in each project. I wanted to show how commonly each SDG is detected by each system from the dataset and for this purpose I created a rank view of the 17 SDGs using ggbump and integrating it with ggtext and several other packages. You can check out the code in the &lt;a href="https://github.com/ancazugo/sdg-hackathon" target="_blank"&gt;GitHub repo&lt;/a&gt; .</summary><category term="Andrés Zúñiga-González’s Blog"></category></entry><entry><title>Launching the Cambridge Centre for Carbon Credits</title><link href="https://anil.recoil.org/notes/4c-launch" rel="alternate"></link><published>2021-11-04T00:00:00Z</published><updated>2021-11-04T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/4c-launch</id><summary type="html">I launched &lt;a href="https://anil.recoil.org/projects/4c" target="_blank"&gt;4C&lt;/a&gt; recently, and Pembroke College covers the launch with an interview with me. The world is facing a large-scale environmental crisis. Two parallel and related strands of this are, first, the crisis in biodiversity and the rapid extinction of many species, recently addressed at the COP15 UN Biodiversity Conference in October, and second, the threat of climate change, the topic of last month’s COP26 summit in Glasgow. Pressure is growing on governments to execute nature-based solutions which will offset some of the most damaging impacts of these crises. While COP26 built some momentum, there is still a long way to go to turn promises into lasting change. More engagement with the private sector is urgently needed. The solution to the crisis is two-pronged: we must engage...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>What is an Operating System?</title><link href="https://anil.recoil.org/notes/signals-and-threads" rel="alternate"></link><published>2021-11-03T00:00:00Z</published><updated>2021-11-03T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/signals-and-threads</id><summary type="html">I am the latest person to feature on the first season of the &lt;a href="https://signalsandthreads.com/what-is-an-operating-system/" target="_blank"&gt;Signals and 59Threads&lt;/a&gt; podcast hosted by &lt;a href="https://github.com/yminsky" target="_blank"&gt;Yaron Minsky&lt;/a&gt; (you may recognise him as my co-author on &lt;a href="https://anil.recoil.org/papers/rwo" target="_blank"&gt;Real World OCaml&lt;/a&gt; ). Anil Madhavapeddy is an academic, author, engineer, entrepreneur, and OCaml aficionado. In this episode, Anil and Ron consider the evolving role of operating systems, security on the internet, and the pending arrival (at last!) of OCaml 5.0. They also discuss using Raspberry Pis to fight climate change; the programming inspiration found in British pubs and on Moroccan beaches; and the time Anil went to a party, got drunk, and woke up with a job working on the Mars Polar Lander. -- &lt;a href="https://signalsandthreads.com/what-is-an-operating-system/" target="_blank"&gt;Signals and Threads&lt;/a&gt; I think I might be the first non- Jane Street person to be on their podcast! Quite the honour.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Hosting HotCRP</title><link href="https://mort.io/blog/setup-hotcrp/" rel="alternate"></link><published>2021-10-17T01:00:00Z</published><updated>2021-10-17T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/setup-hotcrp/</id><summary type="html">I once had cause to setup &lt;a href="https://read.seas.harvard.edu/~kohler/hotcrp/" target="_blank"&gt;HotCRP&lt;/a&gt; for local hosting. Specifically on a local Lab-hosted VM image. Some of what follows is specific to the CUCL VM hosting service, but I think most of it is HotCRP generic and so may be of use. Anyway, here’s the crib sheet, starting from &lt;a href="https://mbtech.github.io/Setting-up-hotcrp/" target="_blank"&gt;https://mbtech.github.io/Setting-up-hotcrp/&lt;/a&gt; … # setup some variables YOUR-DOMAIN = " hotcrp-test.cl.cam.ac.uk " YOUR-WORKSHOP = " sysws18 " YOUR-PASSWORD = " mybestpassword " YOUR-EMAIL = " postmaster@example.com " &lt;a href="https://mort.io/blog/setup-hotcrp/#lab-specifics" target="_blank"&gt;Lab specifics&lt;/a&gt; Assume we start from a default Ubuntu template VM, and then… Configure the VM cl-asuser passwd # set UNIX password for sudo # create some space for d in /usr/src/ * ; do export K = $ ( uname - r | sed ' s/-generic$// ' ) echo - n $ K $ d ... case $ d in " /usr/src/linux-headers- $ K " | " /usr/src/linux-headers- $ { K } -generic "...</summary><category term="mort’s mythopœia"></category></entry><entry><title>ILNP Interface</title><link href="https://ryan.freumh.org/ilnp-interface.html" rel="alternate"></link><published>2021-10-16T01:00:00Z</published><updated>2021-10-16T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/ilnp-interface.html</id><summary type="html">Published Sat 16 Oct 2021. Last update Sat 22 Oct 2022. Tags: &lt;a href="/projects.html" target="_blank"&gt;projects&lt;/a&gt; . My &lt;a href="./network-layer-mobility.html" target="_blank"&gt;dissertation&lt;/a&gt; involved implementing an &lt;a href="./network-layer-mobility.html#ilnp" target="_blank"&gt;Identifier-Locator Network 60Protocol&lt;/a&gt; (ILNP) &lt;a href="./network-layer-mobility.html#overlay-network" target="_blank"&gt;overlay network&lt;/a&gt; in Python which can be found at &lt;a href="https://github.com/RyanGibb/ilnp-overlay-network" target="_blank"&gt;github.com/RyanGibb/ilnp-overlay-network&lt;/a&gt; . As part of this, I wanted to add an application layer interface to the overlay to support existing applications. (To those who still want to know why I posit, why not?) That is, applications other than those written in python specifically for the overlay. This would also allow multiple applications to run over one overlay network stack. However, this wasn’t a priority for my dissertation as it wasn’t necessary to obtain experimental results. Since graduating I’ve found a few weekends to work on this and a solution will be explored in this blog post. Datagrams First up, how can we send a datagram over...</summary><category term="ryan.freumh.org"></category></entry><entry><title>OCaml Multicore Monthly: effect handling confirmed for 5.0</title><link href="https://anil.recoil.org/notes/multicore-monthly-sep21" rel="alternate"></link><published>2021-10-01T01:00:00Z</published><updated>2021-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/multicore-monthly-sep21</id><summary type="html">We're making steady progress on getting multicore support merged into OCaml, including some great developer meetings where we achieved consensus with the core team to include support for effect handlers in the 5.0 release.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Forest preservation and restoration</title><link href="https://anil.recoil.org/notes/forests" rel="alternate"></link><published>2021-09-25T01:00:00Z</published><updated>2021-09-25T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/forests</id><summary type="html">I track external notes and media articles here on forest preservation and restoration as part of my work on &lt;a href="https://anil.recoil.org/projects/4c" target="_blank"&gt;Trusted Carbon Credits&lt;/a&gt; . Not complete, just a reading list. &lt;a href="https://www.youtube.com/watch?v=yiw6_JakZFc" target="_blank"&gt;Can YOU Fix Climate Change?&lt;/a&gt; (great short summary of the overall issues) Rewilding &lt;a href="https://www.theguardian.com/environment/2021/sep/24/vast-area-of-scottish-highlands-to-be-rewilded-in-ambitious-30-year-project-aoe" target="_blank"&gt;Affric Highlands initiative&lt;/a&gt; to rewild Scotland over 30 years &lt;a href="https://www.bloomberg.com/news/articles/2021-09-14/gabon-s-climate-law-brings-it-closer-to-carbon-trade-ambition" target="_blank"&gt;Gabon's Climate Law&lt;/a&gt; &lt;a href="https://www.soilassociation.org/blogs/2021/august/3/pairing-agroforestry-with-livestock-the-major-benefits/" target="_blank"&gt;Pairing agroforestry with livestock: the major benefits&lt;/a&gt; &lt;a href="https://www.nationalparks.uk/2021/10/06/press-release-major-global-companies-to-fund-vital-nature-restoration-projects-in-the-uks-national-parks-through-innovative-new-financing-facility/" target="_blank"&gt;Major global companies to fund nature restoration projects in UK's national parks&lt;/a&gt; (via &lt;a href="https://www.thepalladiumgroup.com" target="_blank"&gt;Palladium group&lt;/a&gt; ) Remote sensing &lt;a href="https://www.kiss.caltech.edu/papers/biodiversity/papers/2020_Book_RemoteSensingOfPlantBiodiversi.pdf" target="_blank"&gt;Remote sensing of plant biodiversity&lt;/a&gt; &lt;a href="https://geobon.org" target="_blank"&gt;Geobon&lt;/a&gt; - global researcher network working on above. &lt;a href="https://earthi.space/" target="_blank"&gt;Earth-i&lt;/a&gt; - sub-1m sensing satellite constellation &lt;a href="https://www.mantle-labs.com" target="_blank"&gt;Mantle Labs&lt;/a&gt; - earth observation + machine learning for farmers &lt;a href="https://www.cgi.com/uk/en-gb/news/climate/cgi-announces-strategic-partnership-project-seagrass-reduce-co2" target="_blank"&gt;Seagrass from space&lt;/a&gt; Keshav's &lt;a href="http://blizzard.cs.uwaterloo.ca/iss4e/wp-content/uploads/2017/10/Communication-technologies-for-energy-informatics.pdf" target="_blank"&gt;comms technologies for energy informatics&lt;/a&gt; Carbon Credits &lt;a href="https://www.cis.upenn.edu/~bcpierce/papers/carbon-offsets.pdf" target="_blank"&gt;Notes on Carbon offsets for scientific societies&lt;/a&gt; &lt;a href="https://vcmintegrity.org/" target="_blank"&gt;Voluntary Carbon Markets integrity initiative&lt;/a&gt; &lt;a href="https://www.ecosystemmarketplace.com/articles/press-release-voluntary-carbon-markets-rocket-in-2021-on-track-to-break-1b-for-first-time/" target="_blank"&gt;Voluntary Carbon Markets Rocket in 2021, On Track to Break $1B for First Time&lt;/a&gt; Biodiversity &lt;a href="https://kiss.caltech.edu/lectures/2019_biodiversity.html" target="_blank"&gt;Biodiversity: Perspectives of a Techie&lt;/a&gt; - Dave Thau - Data and Technology Global Lead Scientist, WWF Valuing climate change &lt;a href="https://www.sciencedirect.com/science/article/pii/S001671851930051X" target="_blank"&gt;Cryptocarbon: The promises and pitfalls of forest protection on a blockchain&lt;/a&gt; &lt;a href="https://www.nature.com/articles/s41558-018-0285-8" target="_blank"&gt;Valuing climate damages at the country level&lt;/a&gt; - nature climate change, 2018 &lt;a href="https://www.nature.com/articles/s41558-018-0282-y" target="_blank"&gt;Country-level social cost of carbon&lt;/a&gt; , nature climate change...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Decentralised tech on Recoil</title><link href="https://anil.recoil.org/notes/decentralised-stack" rel="alternate"></link><published>2021-09-19T01:00:00Z</published><updated>2021-09-19T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/decentralised-stack</id><summary type="html">&lt;a href="https://nick.recoil.org" target="_blank"&gt;Nick Ludlam&lt;/a&gt; and I have self-hosted recoil.org since around 1996, typically for email and web. These days, there are a number of interesting software stacks around decentralised communication that we deploy. This note keeps track of them. Email (active) Currently Postfix and DKIM/SPIF relays Till 2019, was OpenSMTPD and would like to return to it but waiting on filter support. Till around 2016, was qmail but finally gave up due to difficulty of spam filtering. Next step will be to try out the MirageOS email stack that dinosaure has been leading the development of. Web (active) This website is an OCaml webserver running a custom multicore OCaml &lt;a href="https://github.com/avsm/eeww" target="_blank"&gt;webserver&lt;/a&gt; Next step will be to go solar powered with a custom DNS server. DNS (inactive) MirageOS DNS server. Currently offline due to a hosting...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Roadmap for OCaml's online presence</title><link href="https://anil.recoil.org/notes/roadmap-ocamlorg-v3" rel="alternate"></link><published>2021-08-27T01:00:00Z</published><updated>2021-08-27T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/roadmap-ocamlorg-v3</id><summary type="html">After a decade of good service, it's time to overhaul OCaml's online presence to more modern technologies. This post lays out the roadmap for the third edition of the OCaml.org website.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Tarballing some files</title><link href="https://mort.io/blog/tar-includes/" rel="alternate"></link><published>2021-08-25T01:00:00Z</published><updated>2021-08-25T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/tar-includes/</id><summary type="html">I recently discovered, to some irritation, that the --include PATTERN option to tar seems only to apply to directories – and if the PATTERN doesn’t match, it won’t traverse subdirectories. But I wanted to include *.php for some reason. So instead pipe the output of find , or better these days, &lt;a href="https://github.com/sharkdp/fd" target="_blank"&gt;fd&lt;/a&gt; : fd - e php - 0 | tar - cvjf TARBALL.bz2 -- null -- files-from -</summary><category term="mort’s mythopœia"></category></entry><entry><title>How Computer Science Can Aid Forest Restoration</title><link href="https://anil.recoil.org/news/2021-arxiv-forestrycs-1" rel="alternate"></link><published>2021-08-01T01:00:00Z</published><updated>2021-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2021-arxiv-forestrycs-1</id><summary type="html">Preprint about our working notes on how CS might contribute to forest preservation Gemma Gordon , &lt;a href="https://ameliaholcomb.github.io" target="_blank"&gt;Amelia Holcomb&lt;/a&gt; , &lt;a href="https://github.com/ctk21" target="_blank"&gt;Tom Kelly&lt;/a&gt; , &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; , &lt;a href="https://github.com/jonludlam" target="_blank"&gt;Jon Ludlam&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Working paper at &lt;a href="http://arxiv.org/abs/2109.07898" target="_blank"&gt;arXiv&lt;/a&gt; . &lt;a href="http://arxiv.org/abs/2109.07898" target="_blank"&gt;URL&lt;/a&gt; (arxiv.org) &lt;a href="https://doi.org/10.48550/arXiv.2109.07898" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2021-arxiv-forestrycs.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2021-arxiv-forestrycs.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Experiences with Effects</title><link href="https://anil.recoil.org/news/2021-oud-effects-1" rel="alternate"></link><published>2021-08-01T01:00:00Z</published><updated>2021-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2021-oud-effects-1</id><summary type="html">Paper on programming with effects in OCaml &lt;a href="https://github.com/https://roscidus.com" target="_blank"&gt;Thomas Leonard&lt;/a&gt; , &lt;a href="https://craigfe.io" target="_blank"&gt;Craig Ferguson&lt;/a&gt; , &lt;a href="https://patrick.sirref.org" target="_blank"&gt;Patrick Ferris&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://github.com/ctk21" target="_blank"&gt;Tom Kelly&lt;/a&gt; , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://icfp21.sigplan.org/details/ocaml-2021-papers/16/Experiences-with-Effects" target="_blank"&gt;proceedings of the 2021 OCaml Users and Developers Workshop&lt;/a&gt; . &lt;a href="https://icfp21.sigplan.org/details/ocaml-2021-papers/16/Experiences-with-Effects" target="_blank"&gt;URL&lt;/a&gt; (icfp21.sigplan.org) &lt;a href="https://anil.recoil.org/papers/2021-oud-effects.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2021-oud-effects.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Cubes</title><link href="https://ryan.freumh.org/cubes.html" rel="alternate"></link><published>2021-06-03T01:00:00Z</published><updated>2021-06-03T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/cubes.html</id><summary type="html">Published Thu 3 Jun 2021. Last update Thu 3 Mar 2022. Tags: &lt;a href="/projects.html" target="_blank"&gt;projects&lt;/a&gt; . I was teaching myself Unity the week after the last exam for my undergrad and ended up creating this. It’s an infinite runner with cubes created in unity. Play it &lt;a href="resources/cubes/" target="_blank"&gt;here&lt;/a&gt; . The repo can be found at &lt;a href="https://github.com/RyanGibb/cubes" target="_blank"&gt;github.com/RyanGibb/cubes&lt;/a&gt; . Re-rooting To allow the game to be infinite, whilst also avoiding floating point errors, the game world is periodically ‘re-rooted’. This involves moving the player and all objects back a certain distance in one frame. Objects behind the player can be safely removed. However, it may prove challenging to get to a distance where floating point errors occur! World Generation The world is generated using a Markov Chain containing transitions from segments to segments. Segments may be prefabricated or...</summary><category term="ryan.freumh.org"></category></entry><entry><title>Retrofitting effect handlers onto OCaml</title><link href="https://anil.recoil.org/news/2021-pldi-retroeff-1" rel="alternate"></link><published>2021-06-01T01:00:00Z</published><updated>2021-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2021-pldi-retroeff-1</id><summary type="html">Paper on retrofitting effects in OCaml presented in PLDI 2024 &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; , &lt;a href="https://github.com/stedolan" target="_blank"&gt;Stephen Dolan&lt;/a&gt; , &lt;a href="https://github.com/lpw25" target="_blank"&gt;Leo White&lt;/a&gt; , &lt;a href="https://github.com/ctk21" target="_blank"&gt;Tom Kelly&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/3453483.3454039" target="_blank"&gt;proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/3453483.3454039" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/3453483.3454039" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2021-pldi-retroeff.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2021-pldi-retroeff.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Network layer mobility</title><link href="https://ryan.freumh.org/network-layer-mobility.html" rel="alternate"></link><published>2021-05-10T01:00:00Z</published><updated>2021-05-10T01:00:00Z</updated><author><name>RyanG</name></author><id>https://ryan.freumh.org/network-layer-mobility.html</id><summary type="html">Published Mon 10 May 2021. Last update Mon 24 Mar 2025. Tags: &lt;a href="/projects.html" target="_blank"&gt;projects&lt;/a&gt; , &lt;a href="/research.html" target="_blank"&gt;research&lt;/a&gt; . My undergraduate dissertation, “Ubiquitous Communication for the Internet of Things: An Identifier-Locator addressing split overlay network”, explored how we can modify the Internet Protocol to better support resource-constrained highly mobile embedded devices. A copy can be found &lt;a href="papers/2021-bsc-ubicomm.pdf" target="_blank"&gt;here&lt;/a&gt; (or &lt;a href="https://studres.cs.st-andrews.ac.uk/Library/ProjectLibrary/cs4099/2021/rtg2-Final_Report.pdf" target="_blank"&gt;here&lt;/a&gt; for St Andrews folk), and the associated implementation can be found at &lt;a href="https://github.com/RyanGibb/ilnp-overlay-network" target="_blank"&gt;ilnp-overlay-network&lt;/a&gt; . Network stack First, some prerequisite networking knowledge. A network protocol stack is a view of how protocols are organised into layers. The &lt;a href="https://en.wikipedia.org/wiki/OSI_model" target="_blank"&gt;OSI model&lt;/a&gt; describes named layers; including the physical, link, network, transport, and application layers. Note the OSI model and TCP/IP have &lt;a href="https://en.wikipedia.org/wiki/Internet_protocol_suite#Layer_names_and_number_of_layers_in_the_literature" target="_blank"&gt;differing 61semantics&lt;/a&gt; , but this is...</summary><category term="ryan.freumh.org"></category></entry><entry><title>25 years of OCaml!</title><link href="https://www.dra27.uk/blog/platform/2021/05/09/ocaml-at-25.html" rel="alternate"></link><published>2021-05-09T01:00:00Z</published><updated>2021-05-09T01:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2021/05/09/ocaml-at-25</id><summary type="html">On this day in 1996, Xavier Leroy &lt;a href="https://sympa.inria.fr/sympa/arc/caml-list/1996-05/msg00003.html" target="_blank"&gt;announced Objective Caml 1.00&lt;/a&gt; (the language wasn’t officially called OCaml until &lt;a href="https://sympa.inria.fr/sympa/arc/caml-list/2012-07/msg00179.html" target="_blank"&gt;4.00.0 in July 2012&lt;/a&gt; ). I wouldn’t start using OCaml for another 7 years; I think I may have dropped Research Machines Basic by then and was mucking around with a mix of Visual Basic, Turbo Pascal and Delphi, but I hadn’t yet got an email address either. For whatever reason, the 1.00 tag deletes the boot images, but they can be taken from the &lt;a href="https://github.com/dra27/ocaml/tree/2de35753f7b43b11098f7d25a09b8cb904c1a2ca/boot" target="_blank"&gt;commit before&lt;/a&gt; . I could get the runtime to build quite easily on Ubuntu, but alas while it appeared to be able to run boot/ocamllex , boot/ocamlc was just segfaulting. I debated firing up my old dual-Pentium III which apparently had Slackware 10 on it, but I thought I’d give the Windows port a go first! According to the docs, the Windows compiler used to be...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>Void Processes: Minimising privilege by default</title><link href="https://anil.recoil.org/ideas/void-processes" rel="alternate"></link><published>2021-01-01T00:00:00Z</published><updated>2021-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/void-processes</id><summary type="html">Void Processes: Minimising privilege by default This is an idea proposed in 2021 as a Cambridge Computer Science Part III or MPhil project, and has been completed by &lt;a href="https://blog.hillion.co.uk" target="_blank"&gt;Jake Hillion&lt;/a&gt; . Void processes intend to make it easier for all developers to produce effectively privilege separated applications. The project has two primary goals: show the merits of starting from zero privilege, and provide the utilities to make this feasible for the average developer. Building void processes involves first reliably removing all privilege from a process then systematically adding back in what is required, and no more. This project utilises Linux namespaces to revoke privilege from an application, showing how this can be done and why its easier in some domains than others. It then shows how to inject...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Security analysis of brain-computing interfaces</title><link href="https://anil.recoil.org/ideas/brain-interface-security" rel="alternate"></link><published>2021-01-01T00:00:00Z</published><updated>2021-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/brain-interface-security</id><summary type="html">Security analysis of brain-computing interfaces This is an idea proposed in 2021 as a good starter project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Malachy O'Connor Brown&lt;/a&gt; and &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Oscar Hill&lt;/a&gt; . It was co-supervised with &lt;a href="https://zatkh.github.io/" target="_blank"&gt;Zahra Tarkhani&lt;/a&gt; and &lt;a href="https://lorenaqendro.github.io" target="_blank"&gt;Lorena Qendro&lt;/a&gt; . Brain Computing Interface (BCI) technologies, both invasive and non-invasive, are increasingly used in a wide range of applications, from health-care to smart communication and control. Most BCI applications are safety-critical or privacy-sensitive. However, the infinite potentials of BCI and its ever-growing market size have been distracted the BCI community from significant security and privacy threats. In this research, we first investigate the security and privacy threats of various BCI devices and applications, from machine learning adversarial threats to untrusted...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Exploring Concurrency in Agent-Based Modelling with Multicore OCaml</title><link href="https://anil.recoil.org/ideas/ocaml-forest-sim" rel="alternate"></link><published>2021-01-01T00:00:00Z</published><updated>2021-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/ocaml-forest-sim</id><summary type="html">Exploring Concurrency in Agent-Based Modelling with Multicore OCaml This is an idea proposed in 2021 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Martynas Sinkievič&lt;/a&gt; . Computational modelling techniques such as ABMs are used to understand the dynamics of ecosystems and predict their behaviour in response to climate change and ecological disturbances, while also searching for optimal paths towards solutions to these problems. Terrestrial biosphere models are one such model which simulate the vegetation and soil life cycle. There have been two approaches taken with such modelling: The top-down approach take coarse-grained dynamic models that simulate environments in large chunks and scale to large areas as needed, but with a lack of accuracy in the simulated environment...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Banyan: Coordination-Free Distributed Transactions over Mergeable Types</title><link href="https://anil.recoil.org/news/2020-asplas-banyan-1" rel="alternate"></link><published>2020-11-01T00:00:00Z</published><updated>2020-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2020-asplas-banyan-1</id><summary type="html">Paper on Banyan for coordination-free distributed transactions in ASPLAS 2020 Shashank Shekhar Dubey , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://link.springer.com/10.1007/978-3-030-64437-6_12" target="_blank"&gt;proceedings of the Asian Symposium on Programming Languages and Systems&lt;/a&gt; . &lt;a href="https://link.springer.com/10.1007/978-3-030-64437-6_12" target="_blank"&gt;URL&lt;/a&gt; (link.springer.com) &lt;a href="https://doi.org/10.1007/978-3-030-64437-6_12" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2020-asplas-banyan.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2020-asplas-banyan.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using memtrace on Windows</title><link href="https://www.dra27.uk/blog/platform/2020/10/08/windows-memtrace.html" rel="alternate"></link><published>2020-10-08T01:00:00Z</published><updated>2020-10-08T01:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2020/10/08/windows-memtrace</id><summary type="html">It is said that good things come to those who wait. Jacques-Henri Jourdan demonstrated &lt;a href="https://ocaml.org/meetings/ocaml/2016/Jourdan-statistically_profiling_memory_in_OCaml.pdf" target="_blank"&gt;Statistically profiling memory in OCaml&lt;/a&gt; at the 2016 OCaml Workshop and experimental branches of it existed for OCaml 4.03–4.07 in opam. Parts of the work were merged in OCaml 4.10 and the final sections landed with 4.11. The compiler provides support in the form of a series of hooks in various parts of the runtime’s allocation and garbage collection routines. A few weeks ago, Jane Street released &lt;a href="https://github.com/janestreet/memtrace" target="_blank"&gt;memtrace&lt;/a&gt; and &lt;a href="https://github.com/janestreet/memtrace_viewer" target="_blank"&gt;Memtrace viewer&lt;/a&gt; and earlier this week &lt;a href="https://blog.janestreet.com/finding-memory-leaks-with-memtrace/" target="_blank"&gt;blogged about its use&lt;/a&gt; . I thought I’d quickly share the experience of using it on native Windows. At present, although the memtrace library is portable, the memtrace-viewer itself is not (as it happens, this is simply down to Core’s command line parser pulling in a little too much Unix-specific stuff,...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>Data visualisation links</title><link href="https://mort.io/blog/dataviz/" rel="alternate"></link><published>2020-09-07T01:00:00Z</published><updated>2020-09-07T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/dataviz/</id><summary type="html">Some possibly useful data visualisation links: &lt;a href="https://medium.economist.com/why-you-sometimes-need-to-break-the-rules-in-data-viz-4d8ece284919" target="_blank"&gt;https://medium.economist.com/why-you-sometimes-need-to-break-the-rules-in-data-viz-4d8ece284919&lt;/a&gt; &lt;a href="https://colororacle.org/" target="_blank"&gt;https://colororacle.org/&lt;/a&gt;</summary><category term="mort’s mythopœia"></category></entry><entry><title>The OCaml Platform: 2020</title><link href="https://anil.recoil.org/news/2020-oud-platform-1" rel="alternate"></link><published>2020-09-01T01:00:00Z</published><updated>2020-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2020-oud-platform-1</id><summary type="html">Annual update on the OCaml Platform at the OCaml Workshop &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://icfp20.sigplan.org/home/ocaml-2020" target="_blank"&gt;the 10th ACM OCaml Users and Developers Workshop&lt;/a&gt; . &lt;a href="https://icfp20.sigplan.org/home/ocaml-2020" target="_blank"&gt;URL&lt;/a&gt; (icfp20.sigplan.org) &lt;a href="https://anil.recoil.org/papers/2020-oud-platform.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>State of the OCaml Platform 2020</title><link href="https://anil.recoil.org/news/b11188ba-0f97-4ec4-b372-fa3cea0821ab-1" rel="alternate"></link><published>2020-08-28T01:00:00Z</published><updated>2020-08-28T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/b11188ba-0f97-4ec4-b372-fa3cea0821ab-1</id><summary type="html">Talk on the state of the OCaml Platform in 2020</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Renovating an old media PC</title><link href="https://mort.io/blog/mediapc/" rel="alternate"></link><published>2020-08-28T01:00:00Z</published><updated>2020-08-28T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/mediapc/</id><summary type="html">Some notes from my first attempt to renovate an old media PC that had a SYSLINUX install without any package management, and a crufty BIOS. Probably outdated now, but I may go back to it one day… First, some background links: &lt;a href="https://en.wikipedia.org/wiki/Cylinder-head-sector" target="_blank"&gt;https://en.wikipedia.org/wiki/Cylinder-head-sector&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/FAT_boot_sector" target="_blank"&gt;https://en.wikipedia.org/wiki/FAT_boot_sector&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/Logical_Block_Addressing#CHS_conversion" target="_blank"&gt;https://en.wikipedia.org/wiki/Logical_Block_Addressing#CHS_conversion&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/Master_Boot_Record" target="_blank"&gt;https://en.wikipedia.org/wiki/Master_Boot_Record&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/Volume_boot_record" target="_blank"&gt;https://en.wikipedia.org/wiki/Volume_boot_record&lt;/a&gt; &lt;a href="https://wiki.archlinux.org/index.php/Syslinux" target="_blank"&gt;https://wiki.archlinux.org/index.php/Syslinux&lt;/a&gt; &lt;a href="https://wiki.syslinux.org/wiki/index.php?title=Common_Problems#Failed_to_load_ldlinux" target="_blank"&gt;https://wiki.syslinux.org/wiki/index.php?title=Common_Problems#Failed_to_load_ldlinux&lt;/a&gt; &lt;a href="https://wiki.syslinux.org/wiki/index.php?title=Hardware_Compatibility#USB_related_problems" target="_blank"&gt;https://wiki.syslinux.org/wiki/index.php?title=Hardware_Compatibility#USB_related_problems&lt;/a&gt; &lt;a href="https://wiki.syslinux.org/wiki/index.php?title=Hdt_(Hardware_Detection_Tool)" target="_blank"&gt;https://wiki.syslinux.org/wiki/index.php?title=Hdt_(Hardware_Detection_Tool)&lt;/a&gt; I explored two ways forward: &lt;a href="https://www.syslinux.org/" target="_blank"&gt;SYSLINUX&lt;/a&gt; and &lt;a href="https://www.gnu.org/software/grub/index.html" target="_blank"&gt;GRUB&lt;/a&gt; . &lt;a href="https://mort.io/blog/mediapc/#syslinux" target="_blank"&gt;SYSLINUX&lt;/a&gt; I found that getting SYSLINUX working required moving the partition to 0/1/1 – using sectors per track of 63 or 32, and heads per cylinder or 16 or 64 with appropriate cylinder values simply didn’t help. Diagnosed by observing that console displayed only CRLF but no banner – SYSLINUX code ends up with the banner to be displayed just falling into the second sector on the disk, so it can’t be read...</summary><category term="mort’s mythopœia"></category></entry><entry><title>OCaml Multicore Monthly: systhreads compatibility merged</title><link href="https://anil.recoil.org/notes/multicore-monthly-sep20" rel="alternate"></link><published>2020-08-20T01:00:00Z</published><updated>2020-08-20T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/multicore-monthly-sep20</id><summary type="html">The big advance in the multicore OCaml branch is that we restored compatibility with the traditional OCaml systhreads. This in turn means that many existing software packages just work out of the box on the new runtime. Big news this month is that the systhreads compatibility support PR has been merged, which means that Dune (and other users of the Thread module) can compile out of the box. You can now compile the multicore OCaml fork conveniently using the new opam compiler plugin (see announcement). -- &lt;a href="https://discuss.ocaml.org/t/multicore-ocaml-september-2020/6565" target="_blank"&gt;me, on the discussion forum&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Retrofitting parallelism onto OCaml</title><link href="https://anil.recoil.org/news/2020-icfp-retropar-1" rel="alternate"></link><published>2020-08-01T01:00:00Z</published><updated>2020-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2020-icfp-retropar-1</id><summary type="html">Won best paper award at ICFP 2020 for our paper on retrofitting parallelism onto OCaml! &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; , &lt;a href="https://github.com/stedolan" target="_blank"&gt;Stephen Dolan&lt;/a&gt; , &lt;a href="https://github.com/lpw25" target="_blank"&gt;Leo White&lt;/a&gt; , &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://github.com/ctk21" target="_blank"&gt;Tom Kelly&lt;/a&gt; , Anmol Sahoo , &lt;a href="https://github.com/Sudha247" target="_blank"&gt;Sudha Parimala&lt;/a&gt; , Atul Dhiman and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Journal paper in &lt;a href="https://dl.acm.org/doi/10.1145/3408995" target="_blank"&gt;Proceedings of the ACM on Programming Languages&lt;/a&gt; (vol 4 issue ICFP). &lt;a href="https://dl.acm.org/doi/10.1145/3408995" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/3408995" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2020-icfp-retropar.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2020-icfp-retropar.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Parallelising your OCaml Code with Multicore OCaml</title><link href="https://anil.recoil.org/news/2020-oud-parallelising-1" rel="alternate"></link><published>2020-08-01T01:00:00Z</published><updated>2020-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2020-oud-parallelising-1</id><summary type="html">Paper on how to parallelise OCaml code at the OCaml Workshop &lt;a href="https://toao.com" target="_blank"&gt;Sadiq Jaffer&lt;/a&gt; , &lt;a href="https://github.com/Sudha247" target="_blank"&gt;Sudha Parimala&lt;/a&gt; , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; , &lt;a href="https://github.com/ctk21" target="_blank"&gt;Tom Kelly&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://github.com/ocaml-multicore/multicore-talks/tree/master/ocaml2020-workshop-parallel" target="_blank"&gt;proceedings of the 2020 OCaml Users and Developers Workshop&lt;/a&gt; . &lt;a href="https://github.com/ocaml-multicore/multicore-talks/tree/master/ocaml2020-workshop-parallel" target="_blank"&gt;URL&lt;/a&gt; (github.com) &lt;a href="https://anil.recoil.org/papers/2020-oud-parallelising.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2020-oud-parallelising.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml-CI: A Zero-Configuration CI</title><link href="https://anil.recoil.org/news/2020-oud-ci-1" rel="alternate"></link><published>2020-08-01T01:00:00Z</published><updated>2020-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2020-oud-ci-1</id><summary type="html">Presented the new OCaml DSL for continuous integration at the OCaml Workshop &lt;a href="https://github.com/https://roscidus.com" target="_blank"&gt;Thomas Leonard&lt;/a&gt; , &lt;a href="https://craigfe.io" target="_blank"&gt;Craig Ferguson&lt;/a&gt; , &lt;a href="https://github.com/kit-ty-kate" target="_blank"&gt;Kate Deplaix&lt;/a&gt; , &lt;a href="http://www.skjegstad.com/about/" target="_blank"&gt;Magnus Skjegstad&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://icfp20.sigplan.org/details/ocaml-2020-papers/6/OCaml-CI-A-Zero-Configuration-CI" target="_blank"&gt;proceedings of the 2020 OCaml Users and Developers Workshop&lt;/a&gt; . &lt;a href="https://icfp20.sigplan.org/details/ocaml-2020-papers/6/OCaml-CI-A-Zero-Configuration-CI" target="_blank"&gt;URL&lt;/a&gt; (icfp20.sigplan.org) &lt;a href="https://anil.recoil.org/papers/2020-oud-ci.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Making GPS accurate in dense forests using sensor fusion</title><link href="https://anil.recoil.org/ideas/sensor-fusion-vslam-forests" rel="alternate"></link><published>2020-08-01T01:00:00Z</published><updated>2020-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/sensor-fusion-vslam-forests</id><summary type="html">Making GPS accurate in dense forests using sensor fusion This is an idea proposed in 2020 as a good starter project, and has been completed by &lt;a href="https://keshav123456.github.io" target="_blank"&gt;Keshav Sivakumar&lt;/a&gt; . It was co-supervised with &lt;a href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page" target="_blank"&gt;Srinivasan Keshav&lt;/a&gt; and &lt;a href="https://coomeslab.org" target="_blank"&gt;David A Coomes&lt;/a&gt; . Current GPS solutions are either very expensive ($8k+) or have relatively poor accuracies (10m+) under dense forest canopy. This project explores how to determine our location accurately in a forest area where we travel by foot under canopy without a GPS signal. What low cost solutions exist to perform localisation under such circumstances? What are the rough accuracies of these solutions? What constraints and advantages do these solutions have (in terms of power, light, cost, etc) We observe that a lot of SLAM algorithms exist these days, but most of the recent research is on...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Discord discord</title><link href="https://mort.io/blog/discord/" rel="alternate"></link><published>2020-08-01T01:00:00Z</published><updated>2020-08-01T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/discord/</id><summary type="html">So for some reason I wanted to do this – use Discord on an iPad without installing the app. This proved surprisingly tricky as Safari on the iPad really wanted to make you use the app and certainly wouldn’t display the desktop site. However, Firefox Focus can though it still forced you into the app from the link in the invite email. However, you can go to the website to signup and then manually invite yourself via a real desktop browser. And this then means that Firefox Focus on the iPad believes in the new account and just lets you in. Seems something of a palaver but hey, these twisted webs we weave.</summary><category term="mort’s mythopœia"></category></entry><entry><title>OCaml Multicore Monthly: preprint paper available</title><link href="https://anil.recoil.org/notes/multicore-monthly-apr20" rel="alternate"></link><published>2020-04-27T01:00:00Z</published><updated>2020-04-27T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/multicore-monthly-apr20</id><summary type="html">In the April OCaml multicore monthly, we have a preprint available of our ICFP submission about the OCaml 5 multicore runtime. (Update: This paper actually won the ICFP best paper award later in the year! Read it at " &lt;a href="https://anil.recoil.org/papers/2020-icfp-retropar" target="_blank"&gt;Retrofitting parallelism onto OCaml&lt;/a&gt; ").</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The First Billion Real Deployments of Unikernels</title><link href="https://anil.recoil.org/news/c09ed36f-6ad5-4254-a0ce-3ca3398f38a3-1" rel="alternate"></link><published>2020-02-26T00:00:00Z</published><updated>2020-02-26T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/c09ed36f-6ad5-4254-a0ce-3ca3398f38a3-1</id><summary type="html">Part 2</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Rebuilding Operating Systems with Functional Principles</title><link href="https://anil.recoil.org/news/d456e4bc-bce6-45ad-9d2e-102f834ec400-1" rel="alternate"></link><published>2020-02-26T00:00:00Z</published><updated>2020-02-26T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/d456e4bc-bce6-45ad-9d2e-102f834ec400-1</id><summary type="html">Delivered the distinguished seminar series at St Andrews on rebuilding Operating Systems with functional principles</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Programming the Next Trillion Embedded Devices</title><link href="https://anil.recoil.org/news/287364fa-b59c-4b9f-812d-d81cc0c992a5-1" rel="alternate"></link><published>2020-02-26T00:00:00Z</published><updated>2020-02-26T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/287364fa-b59c-4b9f-812d-d81cc0c992a5-1</id><summary type="html">Part 3</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml Multicore Monthly: starting upstream to OCaml</title><link href="https://anil.recoil.org/notes/multicore-monthly-jan20" rel="alternate"></link><published>2020-01-29T00:00:00Z</published><updated>2020-01-29T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/multicore-monthly-jan20</id><summary type="html">We started the process of upstreaming our &lt;a href="https://anil.recoil.org/papers/2014-oud-multicore" target="_blank"&gt;multicore OCaml&lt;/a&gt; branch to mainline OCaml, and so I started posting regular updates to the community forum. The most common question we get is how to contribute to the overall multicore effort. As I noted last year, we are now in the process of steadily upstreaming our efforts to mainline OCaml. Therefore, the best way by far to contribute is to test for regressions or opportunities for improvements in the patches that are outstanding in the main OCaml repository. -- &lt;a href="https://discuss.ocaml.org/t/multicore-ocaml-january-2020-update/5090" target="_blank"&gt;me, on the discussion forum&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Information Flow for Trusted Execution</title><link href="https://anil.recoil.org/projects/difc-tee" rel="alternate"></link><published>2020-01-01T00:00:00Z</published><updated>2020-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/difc-tee</id><summary type="html">Information Flow for Trusted Execution There is now increased hardware support for improving the security and performance of privilege separation and compartmentalization techniques such as process-based sandboxes, trusted execution environments, and intra-address space compartments. We dub these "hetero-compartment environments" and observe that existing system stacks still assume single-compartment models (i.e. user space processes), leading to limitations in using, integrating, and monitoring heterogeneous compartments from a security and performance perspective. This project explores how we might deploy techniques such as fine-grained information flow control (DIFC) to allow developers to securely use and combine compartments, define security policies over shared system resources, and...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Setting up a Macbook</title><link href="https://mort.io/blog/setup-new-laptop/" rel="alternate"></link><published>2020-01-01T00:00:00Z</published><updated>2020-01-01T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/setup-new-laptop/</id><summary type="html">This is the set of things that I roughly did to set up my old new Macbook: configurations, packages, etc. Not guaranteed complete, but hopefully captures much of it. &lt;a href="https://mort.io/blog/setup-new-laptop/#keyboard" target="_blank"&gt;Keyboard&lt;/a&gt; Set the touchbar to expanded Turn off various emacs conflicts (e.g., S-M-6 ) Use &lt;a href="https://karabiner-elements.pqrs.org/" target="_blank"&gt;Karabiner Elements&lt;/a&gt; to make CAPSLOCK become ESC on a single press &lt;a href="https://mort.io/blog/setup-new-laptop/#homebrew-packages" target="_blank"&gt;Homebrew packages&lt;/a&gt; Install &lt;a href="https://brew.sh/" target="_blank"&gt;Homebrew&lt;/a&gt; and then # install packages brew install \ aspcud \ aspell \ bash-completion \ coreutils \ direnv \ emacs \ evernote \ ffmpeg \ font-hack-nerd-font \ gawk \ gcc \ get_iplayer \ ghostscript \ git \ git-lfs \ gnupg2 \ gnuplot \ gpg-agent \ graphviz \ imagemagick \ jq \ lua \ mu \ ncftp \ nmap \ ocaml \ offlineimap \ omnigraffle \ opam \ python \ python@2 \ qemu \ rcs \ readline \ rsync \ socat \ sshfs \ telnet \ tmux \ unrar \ wget # install casks brew...</summary><category term="mort’s mythopœia"></category></entry><entry><title>OpenBSD cloud hosting options</title><link href="https://anil.recoil.org/notes/openbsd-hosting" rel="alternate"></link><published>2019-08-29T01:00:00Z</published><updated>2019-08-29T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/openbsd-hosting</id><summary type="html">I &lt;a href="https://twitter.com/avsm/status/1167012354556669952" target="_blank"&gt;asked on Twitter&lt;/a&gt; about hosting options for OpenBSD on cloud providers, so that we could have some alternative options for Recoil. We have a strong preference for bare-metal and not VMs when it comes to OpenBSD. Options that came back were: OpenBSDAMS Dedicated/VMs for openbsd hosting (see &lt;a href="https://twitter.com/OpenBSDAms" target="_blank"&gt;here&lt;/a&gt; ) Mythic Beasts I have provisioned a bare metal server there and they kindly stuck a USB stick in with an OpenBSD installer. DataCentreLite Not tried this yet but &lt;a href="https://twitter.com/NicoSchottelius/status/1167163133024264192" target="_blank"&gt;possible followup&lt;/a&gt; . LiquidWeb Good &lt;a href="https://twitter.com/vphantom/status/1167020959771049984" target="_blank"&gt;recommendation&lt;/a&gt; from Stephane</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The OCaml Platform in 2019</title><link href="https://anil.recoil.org/news/2019-ocaml-platform-1" rel="alternate"></link><published>2019-08-01T01:00:00Z</published><updated>2019-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2019-ocaml-platform-1</id><summary type="html">Annual update on the OCaml Platform in 2019 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and Gemma Gordon . Paper in the &lt;a href="https://icfp19.sigplan.org/home/ocaml-2019" target="_blank"&gt;proceedings of the OCaml Workshop 2019&lt;/a&gt; . &lt;a href="https://icfp19.sigplan.org/home/ocaml-2019" target="_blank"&gt;URL&lt;/a&gt; (icfp19.sigplan.org) &lt;a href="https://anil.recoil.org/papers/2019-ocaml-platform.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>MirageOS 4: the dawn of practical build systems for exotic targets</title><link href="https://anil.recoil.org/news/2019-mirage-build-1" rel="alternate"></link><published>2019-08-01T01:00:00Z</published><updated>2019-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2019-mirage-build-1</id><summary type="html">Paper on the MirageOS 4 build system at OCaml Workshop &lt;a href="https://www.lortex.org" target="_blank"&gt;Lucas Pluvinage&lt;/a&gt; , Romain Calascibetta , Rudi Grinberg and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://icfp19.sigplan.org/home/ocaml-2019#program" target="_blank"&gt;proceedings of the OCaml Workshop 2019&lt;/a&gt; . &lt;a href="https://icfp19.sigplan.org/home/ocaml-2019#program" target="_blank"&gt;URL&lt;/a&gt; (icfp19.sigplan.org) &lt;a href="https://anil.recoil.org/papers/2019-mirage-build.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2019-mirage-build.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Programming Unikernels in the Large via Functor Driven Development</title><link href="https://anil.recoil.org/news/2019-mirage-functors-1" rel="alternate"></link><published>2019-05-01T01:00:00Z</published><updated>2019-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2019-mirage-functors-1</id><summary type="html">Preprint on programming unikernels with ML modules &lt;a href="https://www.irif.fr/~gradanne/" target="_blank"&gt;Gabriel Radanne&lt;/a&gt; , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://www.cst.cam.ac.uk/people/jdy22" target="_blank"&gt;Jeremy Yallop&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="https://github.com/hannesm" target="_blank"&gt;Hannes Mehnert&lt;/a&gt; , &lt;a href="https://github.com/yomimono" target="_blank"&gt;Mindy Preston&lt;/a&gt; and &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; . Working paper at &lt;a href="http://arxiv.org/abs/1905.02529" target="_blank"&gt;arXiv&lt;/a&gt; . &lt;a href="http://arxiv.org/abs/1905.02529" target="_blank"&gt;URL&lt;/a&gt; (arxiv.org) &lt;a href="https://doi.org/10.48550/arXiv.1905.02529" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2019-mirage-functors.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Snape: The Dark Art of Handling Heterogeneous Enclaves</title><link href="https://anil.recoil.org/news/2019-edgesys-snape-1" rel="alternate"></link><published>2019-03-01T00:00:00Z</published><updated>2019-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2019-edgesys-snape-1</id><summary type="html">Paper on a framework to rearchitect applications for better TEE support at EdgeSys 2019 &lt;a href="https://zatkh.github.io/" target="_blank"&gt;Zahra Tarkhani&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/3301418.3313945" target="_blank"&gt;proceedings of the 2nd International Workshop on Edge Systems, Analytics and Networking&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/3301418.3313945" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/3301418.3313945" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2019-edgesys-snape.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2019-edgesys-snape.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Falsehoods</title><link href="https://mort.io/blog/falsehoods/" rel="alternate"></link><published>2019-01-11T00:00:00Z</published><updated>2019-01-11T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/falsehoods/</id><summary type="html">Being a list of some cool “Falsehoods programmers believe about …” sites, now redundant thanks to &lt;a href="https://github.com/kdeldycke/awesome-falsehood" target="_blank"&gt;https://github.com/kdeldycke/awesome-falsehood&lt;/a&gt; : &lt;a href="http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time" target="_blank"&gt;…time&lt;/a&gt; &lt;a href="http://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time" target="_blank"&gt;…time, more&lt;/a&gt; &lt;a href="http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/" target="_blank"&gt;…names&lt;/a&gt; &lt;a href="https://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/" target="_blank"&gt;…addresses&lt;/a&gt; &lt;a href="http://wiesmann.codiferes.net/wordpress/?p=15187&amp;lang=en" target="_blank"&gt;…geography&lt;/a&gt;</summary><category term="mort’s mythopœia"></category></entry><entry><title>Distributed Task Scheduling Framework over Irmin</title><link href="https://anil.recoil.org/ideas/distributed-tasks-irmin" rel="alternate"></link><published>2019-01-01T00:00:00Z</published><updated>2019-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/distributed-tasks-irmin</id><summary type="html">Distributed Task Scheduling Framework over Irmin This is an idea proposed in 2019 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Mohammed Daudali&lt;/a&gt; . Distributed computation and task scheduling frameworks can be decentralised with minimal cost to performance. Furthermore, this decentralisation can provide a significant reduction in the trusted computing base and complexity of the system, affording end consumers a greater level of confidence in the integrity of the results. Moreover, carefully designed persistent and transient data structures can augment this confidence by providing strong isolation guarantees in a multi-tenant system, whilst retaining full transparency over the dynamic data flow graph. This can all be achieved with an API that interfaces directly with...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>A strongly consistent index for email using git and MirageOS</title><link href="https://anil.recoil.org/ideas/git-maildir" rel="alternate"></link><published>2019-01-01T00:00:00Z</published><updated>2019-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/git-maildir</id><summary type="html">A strongly consistent index for email using git and MirageOS This is an idea proposed in 2019 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://github.com/odnh" target="_blank"&gt;Oliver Hope&lt;/a&gt; . It was co-supervised with &lt;a href="https://github.com/dra27" target="_blank"&gt;David Allsopp&lt;/a&gt; . &lt;a href="https://en.wikipedia.org/wiki/Maildir" target="_blank"&gt;Maildir&lt;/a&gt; is a widely used format for storing emails. Its main benefit is that it uses the filesystem in such a way that client programs do not have to handle locking themselves. The downside of this is that it makes it hard to create a consistent index as we cannot guarantee that the filesystem is in a consistent state when we try to update it. If we did have a consistent index, it would allow for safer concurrent support and the implementation of new features. The aim of this project therefore is to solve the consistency problem. This can be done by using git, the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Wipeout</title><link href="https://mort.io/blog/wipeout/" rel="alternate"></link><published>2018-12-17T00:00:00Z</published><updated>2018-12-17T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/wipeout/</id><summary type="html">I recently decided to go through some old PCs and hard disks (yes, actual spinning bits of metal) and recycle or simply junk them. I figured I should wipe them properly first, and given that they had been installed with a range of OSs, setup a bootable USB stick so that I could boot and wipe in one easy motion. Download &lt;a href="https://alpinelinux.org/downloads/" target="_blank"&gt;Alpine Linux&lt;/a&gt; &lt;a href="https://dl-cdn.alpinelinux.org/alpine/v3.8/releases/x86_64/alpine-extended-3.8.1-x86_64.iso" target="_blank"&gt;3.8.1 62ISO&lt;/a&gt; – I had only x86_64 machines, YMMV obviously Write this to a USB stick using dd (on Linux), or &lt;a href="https://etcher.balena.io/" target="_blank"&gt;Balena 63Etcher&lt;/a&gt; on Windows Insert the stick and boot the machine after making any necessary BIOS changes If the machine has been unbooted for too long or (as one of mine) has a flat CMOS clock battery so cannot retain time across reboots, set the time manually: date --set="20181217" automatically: setup-alpine to start configuring things, then CTRL-C after...</summary><category term="mort’s mythopœia"></category></entry><entry><title>The OCaml Platform 1.0 with Reason ML</title><link href="https://crank.recoil.org/videos/watch/13cf3878-7436-4512-844e-f72f36425bc7" rel="alternate"></link><published>2018-12-11T10:57:40Z</published><updated>2018-12-11T10:57:40Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/videos/13cf3878-7436-4512-844e-f72f36425bc7</id><summary type="html">&lt;a href="https://anil.recoil.org/videos/13cf3878-7436-4512-844e-f72f36425bc7" target="_blank"&gt;The OCaml Platform 1.0 with Reason ML&lt;/a&gt; / Dec 2018 Speaking about the OCaml Platform at the ReasonML meetup hosted by Pusher.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>New opam repository layout for large libraries</title><link href="https://anil.recoil.org/notes/ocaml-opam-new-layout" rel="alternate"></link><published>2018-11-19T00:00:00Z</published><updated>2018-11-19T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ocaml-opam-new-layout</id><summary type="html">Managing package manager constraints is getting difficult, particularly given the growth of the number of packages in the &lt;a href="https://github.com/ocaml/opam-repository" target="_blank"&gt;opam repository&lt;/a&gt; . I'm therefore laying out a new mechanism for the OCaml contributors to submit large package sets, such as those from &lt;a href="https://janestreet.com" target="_blank"&gt;Jane Street&lt;/a&gt; .</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>A modular foreign function interface</title><link href="https://anil.recoil.org/news/2018-socp-modular-ffi-1" rel="alternate"></link><published>2018-10-01T01:00:00Z</published><updated>2018-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2018-socp-modular-ffi-1</id><summary type="html">Journal paper on building modular foreign function interfaces &lt;a href="https://www.cst.cam.ac.uk/people/jdy22" target="_blank"&gt;Jeremy Yallop&lt;/a&gt; , David Sheets and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Journal paper in &lt;a href="https://linkinghub.elsevier.com/retrieve/pii/S0167642317300709" target="_blank"&gt;Science of Computer Programming&lt;/a&gt; (vol 164). &lt;a href="https://linkinghub.elsevier.com/retrieve/pii/S0167642317300709" target="_blank"&gt;URL&lt;/a&gt; (linkinghub.elsevier.com) &lt;a href="https://doi.org/10.1016/j.scico.2017.04.002" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2018-socp-modular-ffi.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2018-socp-modular-ffi.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Foundations of Computer Science</title><link href="https://anil.recoil.org/notes/focs" rel="alternate"></link><published>2018-09-02T01:00:00Z</published><updated>2018-09-02T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/focs</id><summary type="html">Here are the various repos used to create the interactive &lt;a href="https://anil.recoil.org/notes/teaching" target="_blank"&gt;teaching&lt;/a&gt; environment we use for 1A Foundations of Computer Science in Cambridge. It may be useful to other professors who are using OCaml in their courses. &lt;a href="https://github.com/avsm/teaching-fcs" target="_blank"&gt;https://github.com/avsm/teaching-fcs&lt;/a&gt; is a private repo, but ping me if are teaching and I'll give you access (it has coursework answers in it). We use a Jupyter notebook, with the course written in Markdown using the &lt;a href="https://github.com/realworldocaml/mdx" target="_blank"&gt;mdx&lt;/a&gt; OCaml parser which evaluates toplevel phrases through the compiler and promotes the output directly into the markdown. We then convert the Markdown into Jupyter format using a &lt;a href="https://github.com/realworldocaml/mdx/pull/124" target="_blank"&gt;fork of mdx&lt;/a&gt; , and then nbconvert it into LaTeX for the printed notes. A &lt;a href="https://jupyter.org/install.html" target="_blank"&gt;JupyterLab&lt;/a&gt; installation with a &lt;a href="https://github.com/akabe/ocaml-jupyter" target="_blank"&gt;custom OCaml kernel&lt;/a&gt; suffices for the live setup. Every student gets their own container on the server and one...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The joys of Dune vendoring</title><link href="https://www.dra27.uk/blog/platform/2018/08/15/dune-vendoring.html" rel="alternate"></link><published>2018-08-15T01:00:00Z</published><updated>2018-08-15T01:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2018/08/15/dune-vendoring</id><summary type="html">Of the many wonderful features provided by &lt;a href="https://github.com/ocaml/dune" target="_blank"&gt;Dune&lt;/a&gt; , my personal favourite remains its composability. It doesn’t gain much mention in the manual because, well, there’s not that much to explain about it beyond the simple fact that if you put separate Dune projects in subdirectories underneath your current project, then Dune will use those projects in preference to opam-installed libraries. This allows for a far superior workflow to developing using opam pins, as can be seen from my own recent addition of features to Mirage’s &lt;a href="https://github.com/hannesm/logs-syslog" target="_blank"&gt;logs-syslog&lt;/a&gt; library, which also required an addition to one of its dependencies, &lt;a href="https://github.com/verbosemode/syslog-message" target="_blank"&gt;syslog-message&lt;/a&gt; . Neither of these libraries are presently built using Dune, however porting &lt;a href="https://github.com/dra27/logs-syslog/tree/dune" target="_blank"&gt;them&lt;/a&gt; &lt;a href="https://github.com/dra27/syslog-message/tree/dune" target="_blank"&gt;both&lt;/a&gt; was not particularly difficult, and I thought it would be interesting to...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>Bounding data races in space and time</title><link href="https://anil.recoil.org/news/2018-pldi-memorymodel-1" rel="alternate"></link><published>2018-06-01T01:00:00Z</published><updated>2018-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2018-pldi-memorymodel-1</id><summary type="html">Paper on the OCaml memory model and underlying theory at PLDI 2018 &lt;a href="https://github.com/stedolan" target="_blank"&gt;Stephen Dolan&lt;/a&gt; , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/3192366.3192421" target="_blank"&gt;proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/3192366.3192421" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/3192366.3192421" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2018-pldi-memorymodel.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2018-pldi-memorymodel.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Urgent problem with camlp5 7.03 and macOS OCaml 4.06.1</title><link href="https://www.dra27.uk/blog/platform/2018/05/04/opam-camlp5-system.html" rel="alternate"></link><published>2018-05-04T01:00:00Z</published><updated>2018-05-04T01:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2018/05/04/opam-camlp5-system</id><summary type="html">This was originally on the posted on the &lt;a href="https://opam.ocaml.org/blog/camlp5-system/" target="_blank"&gt;OCaml Platform Blog&lt;/a&gt; . Packaging problem with opam-repository camlp5 7.03 when upgrading to OCaml 4.06.1 Between 26 Oct 2017 and 17 Feb 2018, the OPAM package for camlp5 7.03 in &lt;a href="https://github.com/ocaml/opam-repository" target="_blank"&gt;opam-repository&lt;/a&gt; was under certain circumstances able to trigger rm -rf / on macOS and other systems which don’t by default prevent recursive root deletion. This article contains advice on how to identify if your OPAM installation is affected and what you can do to fix it. TL;DR If rm --preserve-root gives a message along the lines of unrecognised option rather than missing operand and you are running OPAM 1.2.2, ensure you run opam update before upgrading your system compiler to OCaml 4.06.1. If you have already upgraded your system compiler to OCaml 4.06.1 (e.g. with Homebrew) then...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>Concurrent System Programming with Effect Handlers</title><link href="https://anil.recoil.org/news/2017-tfp-effecthandlers-1" rel="alternate"></link><published>2018-04-01T01:00:00Z</published><updated>2018-04-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2017-tfp-effecthandlers-1</id><summary type="html">Paper on concurrent systems programming with effect handlers at TFP 2017 &lt;a href="https://github.com/stedolan" target="_blank"&gt;Stephen Dolan&lt;/a&gt; , &lt;a href="https://github.com/seliopou" target="_blank"&gt;Spiros Eliopoulos&lt;/a&gt; , Daniel Hillerstrom , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; and &lt;a href="https://github.com/lpw25" target="_blank"&gt;Leo White&lt;/a&gt; . Paper in the &lt;a href="http://link.springer.com/10.1007/978-3-319-89719-6_6" target="_blank"&gt;trends in Functional Programming&lt;/a&gt; . &lt;a href="http://link.springer.com/10.1007/978-3-319-89719-6_6" target="_blank"&gt;URL&lt;/a&gt; (link.springer.com) &lt;a href="https://doi.org/10.1007/978-3-319-89719-6_6" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2017-tfp-effecthandlers.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2017-tfp-effecthandlers.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>An architecture for interspatial communication</title><link href="https://anil.recoil.org/news/2018-hotpost-osmose-1" rel="alternate"></link><published>2018-04-01T01:00:00Z</published><updated>2018-04-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2018-hotpost-osmose-1</id><summary type="html">Paper on the interspatial networking architecture at HotPOST 2018 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; , Gemma Gordon and &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; . Paper in the &lt;a href="https://ieeexplore.ieee.org/document/8406931/" target="_blank"&gt;proceedings of the HotPOST 2018 workshop at the IEEE Conference on Computer Communications&lt;/a&gt; . &lt;a href="https://ieeexplore.ieee.org/document/8406931/" target="_blank"&gt;URL&lt;/a&gt; (ieeexplore.ieee.org) &lt;a href="https://doi.org/10.1109/INFCOMW.2018.8406931" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2018-hotpost-osmose.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2018-hotpost-osmose.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Founded Tarides and looking to hire OCaml hackers</title><link href="https://anil.recoil.org/notes/founded-tarides" rel="alternate"></link><published>2018-03-02T00:00:00Z</published><updated>2018-03-02T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/founded-tarides</id><summary type="html">I'm delighted to report that I'm helping my long-time collaborator &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; to return to his OCaml roots from Docker. He has just founded Tarides, a startup in Paris with the goal of advancing the open source OCaml ecosystem. Founded in Paris in early 2018, Tarides helps developers and companies build secure, performant and resource-efficient network and storage services. We are using MirageOS to run applications without the overhead of a traditional operating system and Irmin to create scalable distributed applications. Tarides offers commercial support and commercial development services for companies interested to run MirageOS or Irmin as part of their technology stack. -- &lt;a href="https://discuss.ocaml.org/t/tarides-is-looking-for-software-engineers-to-work-on-mirageos-and-irmin/1690" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>A pain in the num</title><link href="https://www.dra27.uk/blog/platform/2018/01/31/num-system.html" rel="alternate"></link><published>2018-01-31T00:00:00Z</published><updated>2018-01-31T00:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2018/01/31/num-system</id><summary type="html">Fixing a packaging error with num on OCaml 4.06.0 system switches Back in July 2012, the release of OCaml 4.00.0 marked the start of a slow process to remove libraries and tools from the distribution which are not directly related to the compiler and the OCaml Standard Library. For &lt;a href="https://github.com/ocaml/ocaml/tree/4.06.0" target="_blank"&gt;OCaml 4.06.0&lt;/a&gt; it was the turn of the &lt;a href="https://github.com/ocaml/num" target="_blank"&gt;Num&lt;/a&gt; library. It is now available as the &lt;a href="https://opam.ocaml.org/packages/num" target="_blank"&gt;num package&lt;/a&gt; in opam for OCaml 4.06.0 and with a dummy .0 version which is “installed” for prior versions of the compiler which include the library in the distribution. It has always been possible to link with the num library using the num package in &lt;a href="http://projects.camlcity.org/projects/findlib.html" target="_blank"&gt;ocamlfind&lt;/a&gt; , but in order to maintain compatibility with build systems which don’t use ocamlfind, the standalone Num library files are still installed to OCaml’s lib directory, rather...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>Probabilistic Programming in OCaml</title><link href="https://anil.recoil.org/ideas/prob-programming-owl" rel="alternate"></link><published>2018-01-01T00:00:00Z</published><updated>2018-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/prob-programming-owl</id><summary type="html">Probabilistic Programming in OCaml This is an idea proposed in 2018 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Hari Chandrasekaran&lt;/a&gt; . It was co-supervised with &lt;a href="https://github.com/ctk21" target="_blank"&gt;Tom Kelly&lt;/a&gt; and &lt;a href="https://github.com/ryanrhymes" target="_blank"&gt;Liang Wang&lt;/a&gt; . With increasing use of machine learning, it is useful to develop frameworks that support rapid development and functional specification of probabilistic models for inference and reasoning. Probabilistic Programming Languages aim to support concise syntax for specifying models and consequently making inference easier. This can pave way to improvements of the model created, more data gathering and further model refinement in an iterative sense. PPL enables easier development of statistical models and allows decoupling inference from modelling. There is a lot of recent work on PPLs,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Interspatial OS</title><link href="https://anil.recoil.org/projects/osmose" rel="alternate"></link><published>2018-01-01T00:00:00Z</published><updated>2018-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/osmose</id><summary type="html">Interspatial OS Digital infrastructure in modern urban environments is currently very Internet-centric, and involves transmitting data to physically remote environments. The cost for this is data insecurity, high response latency and unpredictable reliability of services. I am working on Osmose -- a new OS architecture that inverts the current model by building an operating system designed to securely connect physical spaces with extremely low latency, high bandwidth local-area computation capabilities and service discovery. In 2018, I was starting to wrap up a multi-year focus on &lt;a href="https://anil.recoil.org/projects/unikernels" target="_blank"&gt;Unikernels&lt;/a&gt; , and I went back to look over the state of personal data handling (as I'd finished working on &lt;a href="https://anil.recoil.org/projects/perscon" target="_blank"&gt;Personal Containers&lt;/a&gt; in 2016). Things had regressed fairly dramatically -- central cloud providers and particularly...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>CausalRPC: a traceable distributed computation framework</title><link href="https://anil.recoil.org/ideas/causal-rpc" rel="alternate"></link><published>2018-01-01T00:00:00Z</published><updated>2018-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/causal-rpc</id><summary type="html">CausalRPC: a traceable distributed computation framework This is an idea proposed in 2018 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://craigfe.io" target="_blank"&gt;Craig Ferguson&lt;/a&gt; . The project aims to implement an RPC framework in OCaml using the &lt;a href="https://github.com/mirage/irmin" target="_blank"&gt;Irmin&lt;/a&gt; distributed database library as a network substrate. It will explore the trade-offs of a novel data-oriented approach to RPC in which race conditions between clients are resolved automatically by the middleware layer. The core deliverable is a demonstration of an RPC client remotely executing functions with Irmin-serialisable parameters on a server capable of handling concurrent client requests. The project was completed successfully, with an implementation of &lt;a href="https://github.com/craigfe/causal-rpc" target="_blank"&gt;CausalRPC&lt;/a&gt; , a distributed computation framework satisfying the above criteria....</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Back to the Future</title><link href="https://mort.io/blog/back-to-the-future/" rel="alternate"></link><published>2017-12-14T00:00:00Z</published><updated>2017-12-14T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/back-to-the-future/</id><summary type="html">Ed: the first in a likely series, this is one of the posts I drafted but never published during my seven years in the blogging wilderness I have been having persistent issues on MacOS with Time Machine backups interacting badly with several configuration elements and other services. This is exacerbated by my use of maildirs to backup emails, with my Gmail account leading to a directory with some millions of files. (Yeah, ok, maybe not wise but hey, we are where we are.) So in the course of trying to get backups to work reliably, I found the following commands useful to at least some degree: mdutil -sav to get info about spotlight indexing status sudo mdutil -Ea -i [off|on] to turn off|on spotlight indexing where possible sudo fs_usage -w mdworker mds_stores backupd obtain the current...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Quelle dommage</title><link href="https://mort.io/blog/quelle-dommage/" rel="alternate"></link><published>2017-11-05T00:00:00Z</published><updated>2017-11-05T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/quelle-dommage/</id><summary type="html">Ed: this tool is perhaps less relevant now that both &lt;a href="https://mirage.io/" target="_blank"&gt;Mirage&lt;/a&gt; and &lt;a href="https://ocaml.org/opam/" target="_blank"&gt;OPAM&lt;/a&gt; have moved on. But perhaps it’ll be resurrected one day so here it is. Largely because I wanted to make a feeble attempt at a French pun, &lt;a href="https://github.com/mor1/dommage/" target="_blank"&gt;dommage&lt;/a&gt; is a tool for &lt;a href="https://docker.com/" target="_blank"&gt;Docker&lt;/a&gt; containerising Mirage unikernels. From the &lt;a href="https://github.com/mor1/dommage" target="_blank"&gt;README&lt;/a&gt; : &lt;a href="https://mort.io/blog/quelle-dommage/#dommage-dockerised-mirage" target="_blank"&gt;Dommage, Dockerised Mirage&lt;/a&gt; dommage is a shell script that wraps the &lt;a href="https://mirage.io" target="_blank"&gt;Mirage&lt;/a&gt; CLI to make use of Docker containers meaning that: you can cache the OPAM build artefacts in the container image, speeding up local builds; you can re-use the build container image in Travis builds by publishing it, speeding those up considerably; and you can easily test build -t xen targets on OSX. I’ve tried to minimise interference with the normal operation of &lt;a href="https://mirage.io" target="_blank"&gt;Mirage&lt;/a&gt; CLI so simply replacing mirage with dommage is...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Spring Loading Karabiner in the Autumn</title><link href="https://mort.io/blog/mess-with-my-keyboard/" rel="alternate"></link><published>2017-10-30T00:00:00Z</published><updated>2017-10-30T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/mess-with-my-keyboard/</id><summary type="html">I recently took the plunge and upgraded my OS X. Not to vN of Sierra as I’d hoped, but to v0 High Sierra – the perils of waiting too long… Unfortunately, this toasted &lt;a href="https://mort.io/blog/mess-with-my-keyboard/#1" target="_blank"&gt;1&lt;/a&gt; my carefully curated keyboard remappings as &lt;a href="https://pqrs.org/osx/karabiner/" target="_blank"&gt;Karabiner&lt;/a&gt; used a kernel extension, for which everything changed. All was not lost however, as the rewrite to support Sierra/High Sierra was well underway. Or so I thought until I realised that the configuration file had changed from XML to JSON. And so my configuration journey began. (But it all ends well, so that’s good.) 1 To be honest, I suspect even the Sierra upgrade would’ve done this. &lt;a href="https://mort.io/blog/mess-with-my-keyboard/#controlling-the-config" target="_blank"&gt;Controlling the config&lt;/a&gt; The first thing was to get the new configuration matters under control. I did this per the documentation, symlinking the config subdirectory from my rc-files repo: cd ~...</summary><category term="mort’s mythopœia"></category></entry><entry><title>A bug-fix 12 years in the making</title><link href="https://www.dra27.uk/blog/platform/2017/10/30/ocaml-unicode.html" rel="alternate"></link><published>2017-10-30T00:00:00Z</published><updated>2017-10-30T00:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2017/10/30/ocaml-unicode</id><summary type="html">Windows Unicode Support in OCaml 4.06.0 In August 2005, &lt;a href="https://caml.inria.fr/mantis/view.php?id=3771" target="_blank"&gt;Mantis Report #3771&lt;/a&gt; was opened against OCaml 3.08.4 reporting that Windows applications could not read filenames containing Unicode characters. Various patches have been proposed over the last twelve years leading to &lt;a href="https://github.com/ocaml/ocaml/pull/153" target="_blank"&gt;GitHub Pull Request #153&lt;/a&gt; almost exactly 2 years ago. This last spring, Clément Franchini at &lt;a href="http://www.altair.com" target="_blank"&gt;Altair&lt;/a&gt; rebased the patch and added tests. Finally, Nicolás Ojeda Bär at &lt;a href="https://www.lexifi.com" target="_blank"&gt;LexiFi&lt;/a&gt; took on the challenge of completing the patch and minimising the diff with a view to merging in OCaml 4.06.0. The resulting &lt;a href="https://github.com/ocaml/ocaml/pull/1200" target="_blank"&gt;GitHub Pull Request #1200&lt;/a&gt; just made it in time for the feature freeze last month, with a few follow-up pull requests since to polish things up. With luck (and testing!), we have a good working story with the 4.06.0 release candidate, which was pushed yesterday....</summary><category term="Notes from the Windows corner"></category></entry><entry><title>Setting up OCaml’s GitHub CI for user forks</title><link href="https://www.dra27.uk/blog/platform/2017/09/27/ocaml-github-ci.html" rel="alternate"></link><published>2017-09-27T01:00:00Z</published><updated>2017-09-27T01:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2017/09/27/ocaml-github-ci</id><summary type="html">There are various Continuous Integration (CI) systems monitoring OCaml. The most publicly visible of these are the two which run on our GitHub repository: &lt;a href="https://travis-ci.org/ocaml/ocaml/branches" target="_blank"&gt;Travis&lt;/a&gt; , which tests GNU/Linux in 32-bit and 64-bit configurations and also performs a few sanity checks on pull requests, and &lt;a href="https://ci.appveyor.com/project/avsm/ocaml/history" target="_blank"&gt;AppVeyor&lt;/a&gt; which tests some of the native Windows ports. OCaml 4.06 was branched on 18 September. One of the problems that we face during the weeks between branching and a release of OCaml is that the increased activity creates huge pressure on our CI systems. This is particularly noticeable on AppVeyor, since the build takes 40–50 minutes and we can only have 1 build running at a time across all pull requests and branches. Travis builds actually take around the same amount of overall time, but they are more...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>State of the OCaml Platform</title><link href="https://anil.recoil.org/news/2f824dde-e112-4f4f-890d-1825572ea1c4-1" rel="alternate"></link><published>2017-09-08T01:00:00Z</published><updated>2017-09-08T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2f824dde-e112-4f4f-890d-1825572ea1c4-1</id><summary type="html">Talk on the state of the OCaml Platform</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Windows Console Performance (or lack thereof)</title><link href="https://www.dra27.uk/blog/platform/2017/09/06/windows-console-fun.html" rel="alternate"></link><published>2017-09-06T01:00:00Z</published><updated>2017-09-06T01:00:00Z</updated><author><name>DavidA</name></author><id>https://www.dra27.uk/blog/platform/2017/09/06/windows-console-fun</id><summary type="html">I spent a few days at the weekend refreshing my native Windows fork of Opam and while doing so, found an interesting performance issue for console applications on Windows. One of the jobs porting both Opam and opam-repository for native Windows is updating all the OCaml compiler packages themselves to have Windows build commands. It’s quite extensive, since the instructions have varied across versions and there are also a lot of &lt;a href="https://github.com/metastack/ocaml-legacy" target="_blank"&gt;patches&lt;/a&gt; which need to be applied, so this is done using an opam-admin.top script. This little helper program in the Opam developer tools includes a useful function Opam_admin_top.iter_packages which passes every package definition in a repository along with its opam file to a function you provide and writes any changes to that opam back to the repository. There...</summary><category term="Notes from the Windows corner"></category></entry><entry><title>The State of the OCaml Platform: Sep 2017</title><link href="https://anil.recoil.org/news/2017-oud-platform-1" rel="alternate"></link><published>2017-09-01T01:00:00Z</published><updated>2017-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2017-oud-platform-1</id><summary type="html">Annual update on the OCaml Pltform at ICFP &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the the 7th ACM OCaml Users and Developers Workshop. &lt;a href="https://anil.recoil.org/papers/2017-oud-platform.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2017-oud-platform.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Effectively tackling the awkward squad</title><link href="https://anil.recoil.org/news/2017-ml-effects-1" rel="alternate"></link><published>2017-09-01T01:00:00Z</published><updated>2017-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2017-ml-effects-1</id><summary type="html">Paper on how to tackle awkward IO patterns with effect handlers &lt;a href="https://github.com/stedolan" target="_blank"&gt;Stephen Dolan&lt;/a&gt; , &lt;a href="https://github.com/seliopou" target="_blank"&gt;Spiros Eliopoulos&lt;/a&gt; , Daniel Hillerstrom , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; and &lt;a href="https://github.com/lpw25" target="_blank"&gt;Leo White&lt;/a&gt; . Paper in the the ACM ML Workshop. &lt;a href="https://anil.recoil.org/papers/2017-ml-effects.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2017-ml-effects.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Platforms, Packaging, Progress— Addendum</title><link href="https://mort.io/blog/topkg-addendum/" rel="alternate"></link><published>2017-09-01T01:00:00Z</published><updated>2017-09-01T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/topkg-addendum/</id><summary type="html">This is a short addendum to my &lt;a href="http://mort.io/blog/2017/08/28/past-present-future/" target="_blank"&gt;post of a couple of days 64ago&lt;/a&gt; caused by my carelessness in writing the &lt;a href="https://github.com/mor1/ocal/blob/13a9a7f5b8f2e0be4c2b55941a00a885df202cf8/ocal.opam#L16-L22" target="_blank"&gt;OPAM 65file&lt;/a&gt; . Careful readers will observe the lack of any dependency on &lt;a href="https://github.com/pqwy/notty/" target="_blank"&gt;notty&lt;/a&gt; . Read on for what happened next… The result of this carelessness was that everything worked just fine locally, but &lt;a href="https://github.com/ocaml/opam-repository/pull/10176" target="_blank"&gt;my PR to the OPAM package 66repository&lt;/a&gt; failed. Cue much wailing and gnashing of teeth. However, thanks to a moment’s assistance from &lt;a href="http://erratique.ch/contact.en" target="_blank"&gt;Daniel Bünzli&lt;/a&gt; , this was easy to fix: $ git checkout 0.2.0 # checkout the relevant release version tag $ topkg opam pkg # create the release metadata $ e _build/ocal.0.2.0/opam # invoke editor so I can add the missing dep $ topkg opam submit # submit the updated OPAM metadata, updating the PR Submitting _build/ocal.0.2.0 [ocal-0.2.0.tbz] http://github.com/mor1/ocal/releases/download/0.2.0/ocal-0.2.0.tbz...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Platforms, Packaging, Progress</title><link href="https://mort.io/blog/past-present-future/" rel="alternate"></link><published>2017-08-28T01:00:00Z</published><updated>2017-08-28T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/past-present-future/</id><summary type="html">I recently decided to refresh and update my &lt;a href="https://github.com/mor1/ocal/" target="_blank"&gt;ocal&lt;/a&gt; package, &lt;a href="https://mort.io/blog/past-present-future/#1" target="_blank"&gt;1&lt;/a&gt; primarily to port it to use the excellent &lt;a href="https://github.com/pqwy/notty/" target="_blank"&gt;notty&lt;/a&gt; before adding support for indicating week-of-year. At the same time, I took the opportunity to update the build infrastructure now that the OCaml world has some shiny new packaging and build tools to go with &lt;a href="https://github.com/ocaml/opam/" target="_blank"&gt;OPAM&lt;/a&gt; , namely &lt;a href="https://github.com/dbuenzli/topkg/" target="_blank"&gt;topkg&lt;/a&gt; and &lt;a href="https://github.com/janestreet/jbuilder/" target="_blank"&gt;jbuilder&lt;/a&gt; . So, starting from &lt;a href="http://github.com/djs55/" target="_blank"&gt;Dave Scott’s&lt;/a&gt; &lt;a href="https://mirage.io/wiki/packaging" target="_blank"&gt;wiki entry&lt;/a&gt; about how to package &lt;a href="https://mirage.io/" target="_blank"&gt;Mirage&lt;/a&gt; libraries, here’s what I had to do… 1 A somewhat over-featured replacement for the standard UNIX cal utility, because I got irritated by its American-centricity and my initial &lt;a href="https://github.com/mor1/python-scripts/blob/master/cal.py" target="_blank"&gt;Python replacement&lt;/a&gt; was just too slow… &lt;a href="https://mort.io/blog/past-present-future/#remove-oasis-remnants" target="_blank"&gt;Remove Oasis remnants&lt;/a&gt; git rm _oasis setup.ml Makefile * _tags myocamlbuild.ml .merlin mv ocal.opam/opam o &amp;&amp; git rm - rf ocal.opam &amp;&amp; mv o...</summary><category term="mort’s mythopœia"></category></entry><entry><title>ARMing LinuxKit</title><link href="https://mort.io/blog/arming-linuxkit/" rel="alternate"></link><published>2017-06-02T01:00:00Z</published><updated>2017-06-02T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/arming-linuxkit/</id><summary type="html">As some may know, following the &lt;a href="https://unikernels.com" target="_blank"&gt;Unikernel Systems&lt;/a&gt; acquisition, I currently do contract work for &lt;a href="https://docker.com" target="_blank"&gt;Docker Inc.&lt;/a&gt; in addition to my day job here at the &lt;a href="https://www.cl.cam.ac.uk" target="_blank"&gt;Cambridge University Computer Laboratory&lt;/a&gt; . Recently this has centred on &lt;a href="https://github.com/linuxkit/linuxkit" target="_blank"&gt;LinuxKit&lt;/a&gt; , “ A toolkit for building secure, portable and lean operating systems for containers ” and, specifically, enabling ARM64 support. I’m pleased to say that a basic proof-of-concept is now complete, and we’re working towards getting support merged upstream. The proof-of-concept was developed using the great ARM64 support provided by &lt;a href="https://packet.net" target="_blank"&gt;packet.net&lt;/a&gt; , on one of their type 2A boxes. If you fancy trying it out, then hopefully the following instructions will be of use – or just bug me on the &lt;a href="https://slack.packet.net/" target="_blank"&gt;packet.net Slack&lt;/a&gt; ! &lt;a href="https://mort.io/blog/arming-linuxkit/#building" target="_blank"&gt;Building&lt;/a&gt; Start by getting an ARM64 box setup. If you have one to hand, great! If not, you could head over...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Opening discuss.ocaml.org for the community</title><link href="https://anil.recoil.org/notes/opening-discuss-ocaml" rel="alternate"></link><published>2017-05-13T01:00:00Z</published><updated>2017-05-13T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/opening-discuss-ocaml</id><summary type="html">I opened up a &lt;a href="https://discourse.org" target="_blank"&gt;Discourse&lt;/a&gt; forum for the OCaml community to use, which is running successfully on https://discuss.ocaml.org. This forum thread collates the feedback and discussions about it.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Docker Docker</title><link href="https://mort.io/blog/docker-docker/" rel="alternate"></link><published>2017-05-06T01:00:00Z</published><updated>2017-05-06T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/docker-docker/</id><summary type="html">&lt;a href="https://mort.io/blog/docker-docker/#bootstrapping-docker-for-arm64-aka-aarch64" target="_blank"&gt;Bootstrapping Docker for ARM64 (aka AARCH64)&lt;/a&gt; Basic process is: bootstrap ARM64 go toolchain on x86, and install build ARM64 go1.7.5 toolchain needed for docker build bootstrap ARM64 docker v1.10.3 use bootstrapped docker to provide containerised build environment for building later versions Instructions below are for CentOS 7 for Reasons(tm). Package details and so on will vary on other distros. &lt;a href="https://mort.io/blog/docker-docker/#build-go-bootstrap-toolchain" target="_blank"&gt;Build go bootstrap toolchain&lt;/a&gt; On x86 host: build basic go1.4 sufficient to bootstrap cd curl - O https://storage.googleapis.com/golang/go1.4-bootstrap-20161024.tar.gz tar xzvf go1.4-bootstrap-20161024.tar.gz mv go go1.4 cd go1.4/src ./make.bash cross-compile go1.7 (latest) mkdir - p ~ /go/src cd ~ /go/src git clone https://go.googlesource.com/go cd go git checkout go1.7.5 cd src GOOS = linux GOARCH = arm64 ./bootstrap.bash transfer cross-compiled...</summary><category term="mort’s mythopœia"></category></entry><entry><title>DaLi: Database as a Library</title><link href="https://anil.recoil.org/news/2017-snapl-dali-1" rel="alternate"></link><published>2017-05-01T01:00:00Z</published><updated>2017-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2017-snapl-dali-1</id><summary type="html">Position paper on building databases-as-a-library at SNAPL 2017 &lt;a href="https://gowthamk.github.io" target="_blank"&gt;Gowtham Kaki&lt;/a&gt; , &lt;a href="https://kcsrk.info" target="_blank"&gt;KC Sivaramakrishnan&lt;/a&gt; , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.cs.purdue.edu/people/faculty/sjaganna.html" target="_blank"&gt;Suresh Jagannathan&lt;/a&gt; . Paper in the 2nd Summit on Advances in Programming Languages (SNAPL). &lt;a href="https://anil.recoil.org/papers/2017-snapl-dali.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2017-snapl-dali.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Lab GitLab</title><link href="https://mort.io/blog/lab-gitlab/" rel="alternate"></link><published>2017-04-19T01:00:00Z</published><updated>2017-04-19T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/lab-gitlab/</id><summary type="html">Recently had cause to do this as part of the &lt;a href="https://www.cl.cam.ac.uk/research/srg/" target="_blank"&gt;SRG’s&lt;/a&gt; and &lt;a href="https://ocamllabs.io/" target="_blank"&gt;OCaml Labs&lt;/a&gt; infrastructure. Thought it might be useful to make some notes, so here they are! Assuming your local sys-admin has kindly created you a suitable VM running Ubuntu with login credentials, etc, read on… Note that several commands that follow must be run as root , via use of sudo below. Given that, think twice before just cutting and pasting them in, obviously… And I am not held responsible for anything either way! &lt;a href="https://mort.io/blog/lab-gitlab/#install-docker" target="_blank"&gt;Install Docker&lt;/a&gt; On a new Ubuntu stretch/sid (testing) VM: $ lsb_release - drc Description: Ubuntu 16.04.1 LTS Release: 16.04 Codename: xenial Next, install up-to-date &lt;a href="https://docker.com/" target="_blank"&gt;Docker&lt;/a&gt; : sudo apt-get install apt-transport-https ca-certificates apt-key adv -- keyserver hkp://p80.pool.sks-keyservers.net:80 \ -- recv-keys...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Google screening</title><link href="https://mort.io/blog/google-screening/" rel="alternate"></link><published>2017-01-29T00:00:00Z</published><updated>2017-01-29T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/google-screening/</id><summary type="html">Some time ago, for reasons best known to themselves, a Google recruiter decided to “reach out” on the basis of &lt;a href="https://github.com/mor1/" target="_blank"&gt;my GitHub profile&lt;/a&gt; to see if I were interested in a role as a Site-Reliability Engineer or possibly a Software Engeering. This entailed a short (~30min) telephone interview to answer some questions. I made a note of those I recalled, in case anyone’s interested. The hawk-eyed and keen-minded among you may discern a certain amount of ambiguity in answers to some of the questions – e.g., is the opposite of malloc() , free() or a garbage collector? are we assuming an Ethernet MAC address? – which the recruiter did not seem to be happy to deal with. But so long as my answer included a reasonable approximation to (presumably) the string they had written down, all was well. What is the Big-O...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Customising Homebrew service</title><link href="https://mort.io/blog/brew-plist/" rel="alternate"></link><published>2017-01-04T00:00:00Z</published><updated>2017-01-04T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/brew-plist/</id><summary type="html">As I could never remember the command to start the offlineimap service using my customised configuration, here it is: brew services start offlineimap ~ /rc-files/homebrew.mxcl.offlineimap.plist</summary><category term="mort’s mythopœia"></category></entry><entry><title>Building Up Your ARMs</title><link href="https://mort.io/blog/building-up-your-arms/" rel="alternate"></link><published>2016-11-16T00:00:00Z</published><updated>2016-11-16T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/building-up-your-arms/</id><summary type="html">Due to the impending finish of the EU FP7 funded &lt;a href="https://usercentricnetworking.eu" target="_blank"&gt;User Centric 67Networking&lt;/a&gt; &lt;a href="https://mort.io/blog/building-up-your-arms/#1" target="_blank"&gt;1&lt;/a&gt; I recently had cause to revisit the excellent work that [Thomas Leonard][talex5] did for the project in getting Xen/ARM running on the [Cubieboard2][cb2] and [Cubietruck][cb3] (aka [Cubieboard3][cb3]). The resulting repo, [mirage/xen-arm-builder][xab], had languished for several months and the past SD card images had some problems and had been allowed to drop off the ’Net as a result. However, sterling work by [Ian Campbell][ijc] at a recent Mirage [hackathon][] had started to resurrect this work based on the [Alpine Linux][alpine] distribution. This seemed a promising place to start, so I did :) &lt;a href="https://mort.io/blog/building-up-your-arms/#building-an-image" target="_blank"&gt;Building an Image&lt;/a&gt; The end result was an enormous [pull request][pr] that splatted a Brave New World on top of [Thomas’][talex5]...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Debugging with jQuery</title><link href="https://mort.io/blog/jquery-console/" rel="alternate"></link><published>2016-11-16T00:00:00Z</published><updated>2016-11-16T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/jquery-console/</id><summary type="html">I had cause to do this recently, so here’re the runes from &lt;a href="http://stackoverflow.com/questions/7474354/include-jquery-in-the-javascript-console" target="_blank"&gt;http://stackoverflow.com/questions/7474354/include-jquery-in-the-javascript-console&lt;/a&gt; for the record: var script = document . createElement ( ' script ' ) ; script . src = " https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js " ; document . getElementsByTagName ( ' head ' ) [ 0 ] . appendChild ( script ) ;</summary><category term="mort’s mythopœia"></category></entry><entry><title>Zen and the Art of Research Management</title><link href="https://mort.io/blog/zen-and-the-art-of-research-management/" rel="alternate"></link><published>2016-11-11T00:00:00Z</published><updated>2016-11-11T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/zen-and-the-art-of-research-management/</id><summary type="html">I think this is a bit of a classic, the first written form of which I came across in &lt;a href="https://www.cl.cam.ac.uk/misc/obituaries/needham/" target="_blank"&gt;Prof. Roger Needham&lt;/a&gt; ’s &lt;a href="https://www.cl.cam.ac.uk/events/50+5/" target="_blank"&gt;50+5 Festschrift&lt;/a&gt; celebrating his time at the &lt;a href="https://www.cl.cam.ac.uk/" target="_blank"&gt;Cambridge University Computer Lab&lt;/a&gt; and &lt;a href="https://www.microsoft.com/en-us/research/lab/microsoft-research-cambridge/" target="_blank"&gt;Microsoft Research Cambridge&lt;/a&gt; . I don’t know who originated it, but the copy there is certainly due to &lt;a href="https://memex.naughtons.org/" target="_blank"&gt;John Naughton&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Robert_Taylor_(computer_scientist)" target="_blank"&gt;Bob Taylor&lt;/a&gt; . I suppose one might quibble point 12, in that I seem to recall Roger did a lot of pacing about, but a good chair is certainly a worthwhile thing to provide. Anyway, I find myself wanting to point at it from time-to-time, so here it is! By &lt;a href="https://memex.naughtons.org/" target="_blank"&gt;John Naughton&lt;/a&gt; ( Open University, Milton Keynes, England ), and &lt;a href="https://en.wikipedia.org/wiki/Robert_Taylor_(computer_scientist)" target="_blank"&gt;Robert 68W. Taylor&lt;/a&gt; ( Woodside, California, USA ). HIRE ONLY THE VERY BEST PEOPLE, EVEN IF THEY ARE CUSSED. Perhaps especially if they are cussed. Your guiding principle should be to employ people who are smarter than you. One superb researcher...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Evolving the Unikernel Revolution</title><link href="https://mort.io/blog/unikernel-revolution/" rel="alternate"></link><published>2016-11-10T00:00:00Z</published><updated>2016-11-10T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/unikernel-revolution/</id><summary type="html">I’ve had the pleasure of giving a couple of talks at some fun venues recently, extolling both the virtues of &lt;a href="http://unikernel.org/" target="_blank"&gt;unikernels&lt;/a&gt; and talking a bit about where we currently see them as usefully being deployed. Specifically, &lt;a href="https://operability.io/" target="_blank"&gt;Operability.io 2016&lt;/a&gt; a couple of weeks ago was enlightening about some of the problems faced in operating production systems. Some great audience questions and follow-ups after the talk, including some who were even wondering when we’ll see unikernels as ready for the desktop! Of course, with the release of the &lt;a href="https://docker.com/..." target="_blank"&gt;Docker for Mac&lt;/a&gt; and [Docker for Windows][dfw] products, it’s arguable that we’ve beaten Linux to that accolade, as both products make extensive use of &lt;a href="https://mirage.io" target="_blank"&gt;MirageOS&lt;/a&gt; unikernel libraries. Having said that, I was pleased to be told that the message about unikernels having a range of...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Rat Racing Jetlag</title><link href="https://mort.io/blog/jetlag-fasting/" rel="alternate"></link><published>2016-11-04T00:00:00Z</published><updated>2016-11-04T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/jetlag-fasting/</id><summary type="html">As I’ve found myself repeating the same information several times recently, and have to dig out the links in question every time, I figured it’d be useful to write this down once so I can point at it. Jetlag is a first-world problem but can be an annoying one– in recent years I’ve found I have a particular problem getting up in the morning when flying east. So, one day, bored in an airport in the US and with only the entire Internet to hand, I thought I’d look around for an explanation at least. I ended up coming across reports of some physiological research – in rats of course – that suggested a way to avoid jetlag. I’ve since tried it over a dozen times, and found it to work in all cases. At this point I no longer care if it’s placebo affect or a genuine explanation or something else :)...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Unikernels: the rise of the library hypervisor in MirageOS</title><link href="https://anil.recoil.org/news/725dda70-b12b-4b1a-a8ae-fa9c22683ff2-1" rel="alternate"></link><published>2016-10-14T01:00:00Z</published><updated>2016-10-14T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/725dda70-b12b-4b1a-a8ae-fa9c22683ff2-1</id><summary type="html">DockerCon talk on unikernels and MirageOS</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Grubbing Around</title><link href="https://mort.io/blog/grubbing-around/" rel="alternate"></link><published>2016-09-13T01:00:00Z</published><updated>2016-09-13T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/grubbing-around/</id><summary type="html">Nothing earth-shattering here: I recently had the “pleasure” of setting up an ARM64 server. After considerable support, several firmware upgrades, corruption of the main HDD, reinstallation of CentOS7 (recommended, somewhat to my surprise), all that remained was to get an up-to-date Linux built and installed with 32 bit binary support. This took a bit of make config fiddling, but got there after a few tries. And then I had to relearn how grub / grub2 works in this brave new (to me) UEFI CentOS7 world. Herewith some brief commands I found useful while doing so… {% highlight bash %} sudo grep “^menu entry” /boot/efi/EFI/centos/grub.cfg | tr -s “ “ | cut -f 2 -d “’” | cat -n {% endhighlight %} Edit /etc/default/grub to set GRUB_DEFAULT=N for desired value of N Temporarily set the default for...</summary><category term="mort’s mythopœia"></category></entry><entry><title>MirageOS Summer 2016 hack retreat</title><link href="https://mirage.io/blog/2016-summer-hackathon" rel="alternate"></link><published>2016-06-29T01:00:00Z</published><updated>2016-06-29T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/mirageos-hack-retreat-2016</id><summary type="html"></summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The functional innards of Docker for Mac and Windows</title><link href="https://anil.recoil.org/news/dbd7546a-95d8-40af-b286-3cf930767682-1" rel="alternate"></link><published>2016-06-24T01:00:00Z</published><updated>2016-06-24T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/dbd7546a-95d8-40af-b286-3cf930767682-1</id><summary type="html">I gave a talk at the &lt;a href="https://functional.works-hub.com" target="_blank"&gt;Functional Works&lt;/a&gt; meetup, held in &lt;a href="https://janestreet.com" target="_blank"&gt;Jane Street London&lt;/a&gt; about how Docker for Mac and Windows use OCaml and unikernels &lt;a href="https://www.docker.com/blog/docker-unikernels-open-source/" target="_blank"&gt;under the hood&lt;/a&gt; .</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Ian Eyberg, Joshua Bernstein, Anil Madhavapeddy at OSCON in Austin</title><link href="https://anil.recoil.org/news/8c92d6cf-3e05-429f-8c8e-094f77be61c6-1" rel="alternate"></link><published>2016-06-06T01:00:00Z</published><updated>2016-06-06T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/8c92d6cf-3e05-429f-8c8e-094f77be61c6-1</id><summary type="html">Interviewed by The New Stack at OSCON in Austin, Texas</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>FLICK: Developing and Running Application-Specific Network Services</title><link href="https://anil.recoil.org/news/2016-usenix-flick-1" rel="alternate"></link><published>2016-06-01T01:00:00Z</published><updated>2016-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2016-usenix-flick-1</id><summary type="html">Paper on application-specific network services at USENIX ATC 2016 Abdul Alim , &lt;a href="https://www.richardclegg.org/about" target="_blank"&gt;Richard Clegg&lt;/a&gt; , Luo Mai , Lukas Rupprecht , &lt;a href="https://seckler.org" target="_blank"&gt;Eric Seckler&lt;/a&gt; , Paolo Costa , &lt;a href="https://profiles.imperial.ac.uk/prp" target="_blank"&gt;Peter Pietzuch&lt;/a&gt; , Alexander L Wolf , Nik Sultana , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Andrew W. Moore , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , Masoud Koleni , Luis Oviedo , Matteo Miliavacca and &lt;a href="https://drdrmc.github.io/about/" target="_blank"&gt;Derek McAuley&lt;/a&gt; . Paper in the &lt;a href="https://www.usenix.org/conference/atc16/technical-sessions/presentation/alim" target="_blank"&gt;2016 USENIX Annual Technical Conference (USENIX ATC 16)&lt;/a&gt; . &lt;a href="https://www.usenix.org/conference/atc16/technical-sessions/presentation/alim" target="_blank"&gt;URL&lt;/a&gt; (usenix.org) &lt;a href="https://anil.recoil.org/papers/2016-usenix-flick.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2016-usenix-flick.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Improving Docker with Unikernels</title><link href="https://anil.recoil.org/notes/vpnkit-hyperkit" rel="alternate"></link><published>2016-05-18T01:00:00Z</published><updated>2016-05-18T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/vpnkit-hyperkit</id><summary type="html">I announce the release of three big components that form the basis for &lt;a href="https://docker.com" target="_blank"&gt;Docker for Desktop&lt;/a&gt; : a hypervisor framework called HyperKit, a networking framework for host translation called VPNKit, and a versioned data management store called DataKit.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Local Knowledge</title><link href="https://mort.io/blog/local-knowledge/" rel="alternate"></link><published>2016-03-11T00:00:00Z</published><updated>2016-03-11T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/local-knowledge/</id><summary type="html">A relatively long hiatus this time – blame the Cambridge housing market and the need to simultaneously act both incredibly quickly and mind-numbingly slowly. Also obtaining a &lt;a href="http://www.christs.cam.ac.uk/content/dr-richard-mortier" target="_blank"&gt;College 69Fellowship&lt;/a&gt; and experiencing a &lt;a href="https://blog.docker.com/2016/01/unikernel/" target="_blank"&gt;Company Acquisition&lt;/a&gt; were considerable (interesting, welcome) distractions… :) As an interim measure, and because I’ve been asked relatively frequently over the last few months, I thought I’d collect some local knowledge^Wopinion, garnered over many long hard years of hanging about in both Cambridge and Nottingham. What follows should be viewed as indicating nothing more than my lack of imagination. Both Cambridge and Nottingham are blessed with many fine pubs, as well as several truly terrible ones. Less said about the latter the better. But among those that I like, and will occasionally drag...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Declarative Foreign Function Binding Through Generic Programming</title><link href="https://anil.recoil.org/news/2016-flops-cmeleon-1" rel="alternate"></link><published>2016-02-01T00:00:00Z</published><updated>2016-02-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2016-flops-cmeleon-1</id><summary type="html">Paper on declarative approaches to foreign function bindings at FLOPS 2016 &lt;a href="https://www.cst.cam.ac.uk/people/jdy22" target="_blank"&gt;Jeremy Yallop&lt;/a&gt; , David Sheets and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="http://link.springer.com/10.1007/978-3-319-29604-3_13" target="_blank"&gt;the proceedings of Functional and Logic Programming (FLOPS)&lt;/a&gt; . &lt;a href="http://link.springer.com/10.1007/978-3-319-29604-3_13" target="_blank"&gt;URL&lt;/a&gt; (link.springer.com) &lt;a href="https://doi.org/10.1007/978-3-319-29604-3_13" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2016-flops-cmeleon.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2016-flops-cmeleon.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Unikernel Systems is now part of Docker</title><link href="https://anil.recoil.org/news/a612e810-d56c-48af-b43e-2893a96b9120-1" rel="alternate"></link><published>2016-01-21T00:00:00Z</published><updated>2016-01-21T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/a612e810-d56c-48af-b43e-2893a96b9120-1</id><summary type="html">Announced that Unikernel Systems is now part of Docker</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Unikernel Systems acquired by Docker</title><link href="https://anil.recoil.org/notes/docker-buys-unikernel-systems" rel="alternate"></link><published>2016-01-21T00:00:00Z</published><updated>2016-01-21T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/docker-buys-unikernel-systems</id><summary type="html">My startup &lt;a href="https://anil.recoil.org/projects/unikernels" target="_blank"&gt;Unikernel Systems&lt;/a&gt; was acquired by &lt;a href="https://anil.recoil.org/docker.com" target="_blank"&gt;Docker&lt;/a&gt; , and I'll be joining and setting up a UK branch of Docker along with the rest of my team. 'Just like we did with containers, we are interested is democratizing that technology, making it available and useful to the millions of developers and IT pros out there, said &lt;a href="https://www.linkedin.com/in/solomonhykes" target="_blank"&gt;Solomon Hykes&lt;/a&gt; , founder and chief technology officer for Docker. 'Unikernels allow you to basically get rid of the operating system, and instead compile into the application the small bits of the operating system it really needs.' -- &lt;a href="https://thenewstack.io/docker-buys-unikernel-systems-plans-bring-unikernels-data-center/" target="_blank"&gt;The New Stack&lt;/a&gt; You can also see an announcement from me explaining the background story:</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Of Mice and Keyboards</title><link href="https://mort.io/blog/elcapitan-maps/" rel="alternate"></link><published>2015-11-21T00:00:00Z</published><updated>2015-11-21T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/elcapitan-maps/</id><summary type="html">A bit of a delay since the last post – lots going on! But anyway: I (relatively) recently upgraded my old skool Macbook Pro (look! built-in Ethernet port! DVD drive!) to El Capitan. This was generally rather less faff that the previous upgrade, though it did seem to take rather more reboots than might have been assumed to be strictly necessary before it settled down, and I’d remembered to fix up permissions for Homebrew with sudo chown -R $(whoami):admin /usr/local . So that was ok. ![Macbook Pro UK Keyboard]({{ site.url }}/images/keyboard-small.png “Macbook Pro UK Keyboard”) Except… I have a slightly odd keyboard and mouse setup. It’s a UK Macbook which means a slightly tweaked keyboard layout compared to the standard US Macbook keyboard. At my desk, I also use a Microsoft Digital Media...</summary><category term="mort’s mythopœia"></category></entry><entry><title>SibylFS: formal specification and oracle-based testing for POSIX and real-world file systems</title><link href="https://anil.recoil.org/news/2015-sosp-sibylfs-1" rel="alternate"></link><published>2015-10-01T01:00:00Z</published><updated>2015-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2015-sosp-sibylfs-1</id><summary type="html">Paper on formal specificaiton and testing of filesystems at SOSP 2015 &lt;a href="https://www.tom-ridge.com" target="_blank"&gt;Tom Ridge&lt;/a&gt; , David Sheets , Thomas Tuerk , &lt;a href="https://www.cs.le.ac.uk/people/ag400/" target="_blank"&gt;Andrea Giugliano&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.cl.cam.ac.uk/~pes20/" target="_blank"&gt;Peter Sewell&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/2815400.2815411" target="_blank"&gt;proceedings of the 25th Symposium on Operating Systems Principles&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/2815400.2815411" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/2815400.2815411" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-sosp-sibylfs.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-sosp-sibylfs.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Personal Data: Thinking Inside the Box</title><link href="https://anil.recoil.org/news/2015-aarhus-databox-1" rel="alternate"></link><published>2015-10-01T01:00:00Z</published><updated>2015-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2015-aarhus-databox-1</id><summary type="html">Paper on personal databoxes at the one-in-a-decade Aarhus conference Amir Chaudhry , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; , Heidi Howard , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="https://haddadi.github.io/" target="_blank"&gt;Hamed Haddadi&lt;/a&gt; and &lt;a href="https://drdrmc.github.io/about/" target="_blank"&gt;Derek McAuley&lt;/a&gt; . Journal paper in &lt;a href="https://tidsskrift.dk/ashcc/article/view/21312" target="_blank"&gt;Aarhus Series on Human Centered Computing&lt;/a&gt; (vol 1 issue 1). &lt;a href="https://tidsskrift.dk/ashcc/article/view/21312" target="_blank"&gt;URL&lt;/a&gt; (tidsskrift.dk) &lt;a href="https://doi.org/10.7146/aahcc.v1i1.21312" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-aarhus-databox.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-aarhus-databox.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Immutable Distributed Infrastructure with Unikernels</title><link href="https://anil.recoil.org/news/d5fbd6a4-bef2-4fbc-9d02-cb9935e50d8e-1" rel="alternate"></link><published>2015-09-29T01:00:00Z</published><updated>2015-09-29T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/d5fbd6a4-bef2-4fbc-9d02-cb9935e50d8e-1</id><summary type="html">Invited talk at NetPL on Immutable Distributed Infrastructure with Unikernels</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The State of the OCaml Platform</title><link href="https://anil.recoil.org/news/35e1a70d-0fb4-49b1-86ce-dd6266b812de-1" rel="alternate"></link><published>2015-09-04T01:00:00Z</published><updated>2015-09-04T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/35e1a70d-0fb4-49b1-86ce-dd6266b812de-1</id><summary type="html">Update on the state of the OCaml Platform</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Not-Quite-So-Broken TLS</title><link href="https://anil.recoil.org/news/2015-usenixsec-nqsb-1" rel="alternate"></link><published>2015-08-01T01:00:00Z</published><updated>2015-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2015-usenixsec-nqsb-1</id><summary type="html">Paper on rebuilding TLS securely but practically at USENIX Security 2015 &lt;a href="https://github.com/pqwy" target="_blank"&gt;David Kaloper-Mersinjak&lt;/a&gt; , &lt;a href="https://github.com/hannesm" target="_blank"&gt;Hannes Mehnert&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.cl.cam.ac.uk/~pes20/" target="_blank"&gt;Peter Sewell&lt;/a&gt; . Paper in the &lt;a href="https://www.usenix.org/conference/usenixsecurity15/technical-sessions/presentation/kaloper-mersinjak" target="_blank"&gt;24th USENIX Security Symposium (USENIX Security 15)&lt;/a&gt; . &lt;a href="https://www.usenix.org/conference/usenixsecurity15/technical-sessions/presentation/kaloper-mersinjak" target="_blank"&gt;URL&lt;/a&gt; (usenix.org) &lt;a href="https://anil.recoil.org/papers/2015-usenixsec-nqsb.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-usenixsec-nqsb.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Fame and Fortune!</title><link href="https://mort.io/blog/bigtechday-mirage/" rel="alternate"></link><published>2015-06-24T01:00:00Z</published><updated>2015-06-24T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/bigtechday-mirage/</id><summary type="html">After a slew of HDI related items, a quick &lt;a href="http://openmirage.org/" target="_blank"&gt;MirageOS&lt;/a&gt; note. I was invited to give a presentation on MirageOS at the &lt;a href="https://www.tngtech.com/en.html" target="_blank"&gt;TNG&lt;/a&gt; &lt;a href="https://www.tngtech.com/en/big-techday.html" target="_blank"&gt;Big TechDay 8&lt;/a&gt; conference. This was an interesting, and very broad based, event. It brought together about 500 people with about 25 speakers over one day, on topics from cognitive science to AI to chess playing algorithms to obviating testing through proof reasoning. And, of course, operating systems and &lt;a href="http://openmirage.org/" target="_blank"&gt;MirageOS&lt;/a&gt; ! If you’re interested, the slides used are available at &lt;a href="http://decks.openmirage.org/bigtechday8" target="_blank"&gt;decks.openmirage.org&lt;/a&gt; in the usual way, and if you really want to hear me droning on, TNG are making the video (with synchronised slides) &lt;a href="http://www.techcast.com/events/bigtechday8/salvator-1130/?q=salvator-1130" target="_blank"&gt;available&lt;/a&gt; . As ever, comments welcome!</summary><category term="mort’s mythopœia"></category></entry><entry><title>Actual HCI Papers!</title><link href="https://mort.io/blog/ecscw-and-aarhus/" rel="alternate"></link><published>2015-06-17T01:00:00Z</published><updated>2015-06-17T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/ecscw-and-aarhus/</id><summary type="html">I have to confess to being quite pleased to having a couple of &lt;a href="http://hdiresearch.org/" target="_blank"&gt;HDI&lt;/a&gt; -related papers accepted recently (even if we can’t even get proper reviews on the &lt;a href="http://ssrn.com/abstract=2508051" target="_blank"&gt;original HDI paper&lt;/a&gt; – recently judged out-of-scope for the third time, even though the Special Issue in question seemed bang on target!). The first is a full paper to &lt;a href="http://www.ecscw2015.no/" target="_blank"&gt;ECSCW’15&lt;/a&gt; titled &lt;a href="http://mor1.github.io/publications/pdf/ecscw15-hdi.pdf" target="_blank"&gt;Human Data Interaction: Historical Lessons from Social Studies and CSCW&lt;/a&gt; . A collaboration with &lt;a href="http://www.andy-crabtree.com/" target="_blank"&gt;Dr Andy Crabtree&lt;/a&gt; , it examines particularly the role of interaction in HDI and explores how past technical approaches, such as &lt;a href="http://mor1.github.io/publications/pdf/comsnets11-dataware.pdf" target="_blank"&gt;Dataware&lt;/a&gt; , to the challenges posed by HDI haven’t fully considered the inherently social nature of data. The second is a short paper to the decennial – seriously: every ten years! – &lt;a href="http://aarhus2015.org" target="_blank"&gt;Aarhus 2015&lt;/a&gt; conference titled &lt;a href="http://mor1.github.io/publications/pdf/aarhus15-databox.pdf" target="_blank"&gt;Personal Data: Thinking Inside the Box&lt;/a&gt; . This sets out a vision for an embodiment of a Databox : a physical device supported...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Rescuing a Shattered Nexus 4</title><link href="https://mort.io/blog/nexus-4-rescue/" rel="alternate"></link><published>2015-05-21T01:00:00Z</published><updated>2015-05-21T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/nexus-4-rescue/</id><summary type="html">A little while ago, before I’d done the smart thing and got myself a case for my Nexus 4, I dropped it a couple of inches onto a hard surface at the wrong angle. The screen promptly shattered – and this was bad because without the touch screen, I couldn’t interact with it, I had some photos on it from son#1 birthday party that hadn’t been copied off, and I hadn’t got round to enabling USB access to the filesystem or any of the debug/developer options. So what to do? I really didn’t want to lose those photos. A couple of hours searching the Interwebs and a little bit of experimentation later, and I managed it. Basically, download and apply the clockwork mod bootloader, and this turns on the developer options that allow access to the filesystem via the Android SDK tools. To find out the...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Moving Onto Mirage</title><link href="https://mort.io/blog/moving-onto-mirage/" rel="alternate"></link><published>2015-05-20T01:00:00Z</published><updated>2015-05-20T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/moving-onto-mirage/</id><summary type="html">For a little while I’ve had &lt;a href="http://github.com/mor1/mor1.github.io" target="_blank"&gt;this site&lt;/a&gt; running as a &lt;a href="http://openmirage.org/" target="_blank"&gt;MirageOS&lt;/a&gt; unikernel, shadowing the main site hosted on &lt;a href="http://github.com/" target="_blank"&gt;GitHub&lt;/a&gt; . I’ve finally decided to make the switch, as part of moving over to take advantage of Mirage’s DNS and TLS libraries. Following the usual pattern, as previously explained by &lt;a href="http://amirchaudhry.com/from-jekyll-to-unikernel-in-fifty-lines/" target="_blank"&gt;Amir&lt;/a&gt; , &lt;a href="http://www.somerandomidiot.com/blog/2014/08/19/i-am-unikernel/" target="_blank"&gt;Mindy&lt;/a&gt; and others, the process is: Construct a static &lt;a href="http://jekyllrb.com" target="_blank"&gt;Jekyll&lt;/a&gt; site. Write a &lt;a href="http://travis-ci.com/" target="_blank"&gt;Travis&lt;/a&gt; YAML file to cause &lt;a href="http://travis-ci.com/" target="_blank"&gt;Travis&lt;/a&gt; to build the unikernel image and commit it back to the deployment repository. Write a Git post-merge hook for the deployment repository, so that the latest unikernel is automatically booted when a merge is detected, i.e., there is a new unikernel image. Write a cron job that periodically polls the deployment repository, pulling any changes. Building a &lt;a href="http://jekyllrb.com" target="_blank"&gt;Jekyll&lt;/a&gt;...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Unikernels: Functional Infrastructure with Mirage OS</title><link href="https://anil.recoil.org/news/55852136-843d-4043-98e7-6b46c6d39b01-1" rel="alternate"></link><published>2015-05-12T01:00:00Z</published><updated>2015-05-12T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/55852136-843d-4043-98e7-6b46c6d39b01-1</id><summary type="html">Talk at Esper on functional programming with unikernels</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Jitsu: Just-In-Time Summoning of Unikernels</title><link href="https://anil.recoil.org/news/ad4658f5-ca4f-42f3-b61a-58f13dcdeb1a-1" rel="alternate"></link><published>2015-05-04T01:00:00Z</published><updated>2015-05-04T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/ad4658f5-ca4f-42f3-b61a-58f13dcdeb1a-1</id><summary type="html">NSDI 2015 talk on Jitsu</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Kadupul: Livin' on the Edge with Virtual Currencies and Time-Locked Puzzles</title><link href="https://anil.recoil.org/news/2015-diynet-kadupul-1" rel="alternate"></link><published>2015-05-01T01:00:00Z</published><updated>2015-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2015-diynet-kadupul-1</id><summary type="html">Workshop paper on DIY networking using timelock puzzles &lt;a href="http://www.skjegstad.com/about/" target="_blank"&gt;Magnus Skjegstad&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/2753488.2753492" target="_blank"&gt;proceedings of the 2015 Workshop on Do-it-yourself Networking: an Interdisciplinary Approach&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/2753488.2753492" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/2753488.2753492" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-diynet-kadupul.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-diynet-kadupul.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Jitsu: Just-In-Time Summoning of Unikernels</title><link href="https://anil.recoil.org/news/2015-nsdi-jitsu-1" rel="alternate"></link><published>2015-05-01T01:00:00Z</published><updated>2015-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2015-nsdi-jitsu-1</id><summary type="html">Paper on spinning up low-latency unikernels per-connection at NSDI 2015 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/https://roscidus.com" target="_blank"&gt;Thomas Leonard&lt;/a&gt; , &lt;a href="http://www.skjegstad.com/about/" target="_blank"&gt;Magnus Skjegstad&lt;/a&gt; , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; , David Sheets , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , Amir Chaudhry , Balraj Singh , &lt;a href="https://github.com/jonludlam" target="_blank"&gt;Jon Ludlam&lt;/a&gt; , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; and Ian Leslie . Paper in the &lt;a href="https://www.usenix.org/conference/nsdi15/technical-sessions/presentation/madhavapeddy" target="_blank"&gt;12th USENIX Symposium on Networked Systems Design and Implementation (NSDI 15)&lt;/a&gt; . &lt;a href="https://www.usenix.org/conference/nsdi15/technical-sessions/presentation/madhavapeddy" target="_blank"&gt;URL&lt;/a&gt; (usenix.org) &lt;a href="https://anil.recoil.org/papers/2015-nsdi-jitsu.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-nsdi-jitsu.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Diamonds are a Chap's Best Friend</title><link href="https://mort.io/blog/inconstant-ruby/" rel="alternate"></link><published>2015-04-09T01:00:00Z</published><updated>2015-04-09T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/inconstant-ruby/</id><summary type="html">As &lt;a href="https://mort.io/blog/2015/01/15/begin-again/" target="_blank"&gt;noted previously&lt;/a&gt; , this site is basically a &lt;a href="https://github.com/" target="_blank"&gt;Github&lt;/a&gt; -hosted &lt;a href="http://jekyllrb.com/" target="_blank"&gt;Jekyll&lt;/a&gt; site at present, though one that can be built as a &lt;a href="http://openmirage.org/" target="_blank"&gt;Mirage&lt;/a&gt; unikernel. Part of the &lt;a href="http://openmirage.org/" target="_blank"&gt;Mirage&lt;/a&gt; workflow to publish a new post involves using &lt;a href="https://travis-ci.org/" target="_blank"&gt;Travis CI&lt;/a&gt; to build and then commit back a new unikernel image. Thus it is currently necessary to run &lt;a href="http://jekyllrb.com/" target="_blank"&gt;Jekyll&lt;/a&gt; in the &lt;a href="https://travis-ci.org/" target="_blank"&gt;Travis&lt;/a&gt; build scripts, and the dynamism of the Ruby environment meant that this broke (again) recently as one of the github-pages gem’s dependencies now depends on Ruby &gt;= 2.0 while the default Rubies on the &lt;a href="https://travis-ci.org/" target="_blank"&gt;Travis&lt;/a&gt; Ubuntu image for C language builds is 1.8 (via Ubuntu packaging) or, if you remove that one, 1.9 (via &lt;a href="https://rvm.io/" target="_blank"&gt;rvm&lt;/a&gt; ). Read on to find out how to fix this… The fix that currently works for me turns out to be relatively simple: remove all the...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Taking it to the People People</title><link href="https://mort.io/blog/hdi-seminar/" rel="alternate"></link><published>2015-04-08T01:00:00Z</published><updated>2015-04-08T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/hdi-seminar/</id><summary type="html">Looks like I get a chance to run my mouth off again :) Upcoming &lt;a href="http://hdiresearch.org/" target="_blank"&gt;HDI&lt;/a&gt; &lt;a href="http://www.crassh.cam.ac.uk/events/26198" target="_blank"&gt;research 70seminar&lt;/a&gt; , organised by &lt;a href="http://www.bigdata.cam.ac.uk/" target="_blank"&gt;Cambridge Big 71Data&lt;/a&gt; / &lt;a href="http://www.digitalhumanities.cam.ac.uk/" target="_blank"&gt;Digital 72Humanities&lt;/a&gt; . In short, details are: 20th April 2015, 14:00–16:00 in S1, Alison Richard Building, West Road, Cambridge . If you’d like to attend, please do register at &lt;a href="http://www.eventbrite.co.uk/e/human-data-interaction-cambridge-big-datadigital-humanities-seminar-tickets-16337148852" target="_blank"&gt;http://www.eventbrite.co.uk/e/human-data-interaction-cambridge-big-datadigital-humanities-seminar-tickets-16337148852&lt;/a&gt; . And just because pixels are, in some loose sense, nearly free, here’s the abstract from the seminar link above: The increasing generation and collection of personal data has created a complex ecosystem, often collaborative but sometimes combative, around companies and individuals engaging in the use of these data. We propose that the interactions between these agents warrant a new topic of study: Human-Data Interaction (HDI), that sits at the intersection of various disciplines, including computer...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Reviewing the second year of OCaml Labs in 2014</title><link href="https://anil.recoil.org/notes/ocamllabs-2014-review" rel="alternate"></link><published>2015-04-02T01:00:00Z</published><updated>2015-04-02T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ocamllabs-2014-review</id><summary type="html">The &lt;a href="https://anil.recoil.org/projects/ocamllabs" target="_blank"&gt;OCaml Labs&lt;/a&gt; initiative within the &lt;a href="http://www.cl.cam.ac.uk" target="_blank"&gt;Cambridge 73Computer Laboratory&lt;/a&gt; is now just over two years old, and it is time for an update about our activities since the last update at the &lt;a href="http://www.cl.cam.ac.uk/projects/ocamllabs/news/index.html#Dec%202013" target="_blank"&gt;end of 742013&lt;/a&gt; and &lt;a href="https://anil.recoil.org/2012/10/19/announcing-ocaml-labs.html" target="_blank"&gt;2012&lt;/a&gt; . The theme of our group was not to be pure research, but rather a hybrid group that takes on some of the load of day-to-day OCaml maintenance from &lt;a href="http://caml.inria.fr/" target="_blank"&gt;INRIA&lt;/a&gt; , as well as help grow the wider community and meet our own research agendas around topics such as &lt;a href="https://queue.acm.org/detail.cfm?id=2566628" target="_blank"&gt;unikernels&lt;/a&gt; . To this end, all of our projects have been highly collaborative, often involving colleagues from &lt;a href="http://ocamlpro.com" target="_blank"&gt;OCamlPro&lt;/a&gt; , &lt;a href="http://caml.inria.fr/" target="_blank"&gt;INRIA&lt;/a&gt; , &lt;a href="http://janestreet.com" target="_blank"&gt;Jane Street&lt;/a&gt; , &lt;a href="http://lexifi.com" target="_blank"&gt;Lexifi&lt;/a&gt; and &lt;a href="http://citrix.com" target="_blank"&gt;Citrix&lt;/a&gt; . This post covers our progress in tooling, the compiler and language, community efforts, research projects and concludes with our priorities for 2015. OCaml: it's a dog's life. In...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>I Think Someone Else Is Also Following Me...</title><link href="https://mort.io/blog/being-followed-postscript/" rel="alternate"></link><published>2015-03-16T00:00:00Z</published><updated>2015-03-16T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/being-followed-postscript/</id><summary type="html">Turns out others were listening too – notably the USA’s &lt;a href="http://www.darpa.mil/" target="_blank"&gt;DARPA&lt;/a&gt; . The recent announcement of the &lt;a href="http://www.darpa.mil/NewsEvents/Releases/2015/03/11.aspx" target="_blank"&gt;Brandeis&lt;/a&gt; programme makes explicit reference to &lt;a href="http://ssrn.com/abstract=2508051" target="_blank"&gt;HDI&lt;/a&gt; and &lt;a href="http://hdiresearch.org/" target="_blank"&gt;our website&lt;/a&gt; . This has been picked up by &lt;a href="http://gcn.com/articles/2015/03/12/darpa-brandeis.aspx" target="_blank"&gt;GCN&lt;/a&gt; , &lt;a href="http://www.usatoday.com/story/nation/2015/03/16/data-privacy-darpa-brandeis/70222556/" target="_blank"&gt;USAToday&lt;/a&gt; , &lt;a href="http://www.nbcnews.com/tech/security/darpa-unexpectedly-announces-program-improve-online-piracy-n322601" target="_blank"&gt;NBCNews&lt;/a&gt; , &lt;a href="http://www.engadget.com/2015/03/12/darpa-is-trying-to-reinvent-online-privacy/" target="_blank"&gt;Engadget&lt;/a&gt; among others. With $60M potentially on the table, I hope that there’ll be many more who get interested in pushing HDI forwards now :)</summary><category term="mort’s mythopœia"></category></entry><entry><title>I Think Someone's Following Me...</title><link href="https://mort.io/blog/someones-following-me/" rel="alternate"></link><published>2015-03-02T00:00:00Z</published><updated>2015-03-02T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/someones-following-me/</id><summary type="html">It’s always &lt;a href="https://mort.io/blog/someones-following-me/#1" target="_blank"&gt;1&lt;/a&gt; nice when someone notices what you’re doing, and I was pleasantly surprised recently to find that someone had indeed been watching. &lt;a href="https://mort.io/blog/someones-following-me/#2" target="_blank"&gt;2&lt;/a&gt; 1 Well, usually. Unless you’re doing something embarrassing like, e.g., dancing. 2 Though in fact, given the pattern involved, I suspect it may be my colleague, &lt;a href="http://www.eecs.qmul.ac.uk/~hamed/" target="_blank"&gt;Dr Hamed Haddadi&lt;/a&gt; who’s actually being followed. To whit, the fact that they also picked up on &lt;a href="https://www.technologyreview.com/2014/09/12/171400/the-murky-world-of-third-party-web-tracking/" target="_blank"&gt;a 75study&lt;/a&gt; of third-party web-tracking from last year. Specifically, it appears that someone at MIT Technology Review has noticed the work of me and some of my pals: our work on &lt;a href="https://www.technologyreview.com/2015/01/05/169715/the-emerging-science-of-human-data-interaction/" target="_blank"&gt;HDI&lt;/a&gt; and a recent sketch of some follow-on work we’re pursuing around building a personal &lt;a href="https://www.technologyreview.com/2015/01/26/169495/how-a-box-could-solve-the-personal-data-conundrum/" target="_blank"&gt;Databox&lt;/a&gt; . Independently of that, the latter also happened to get picked up by &lt;a href="http://www.theguardian.com/profile/johnnaughton" target="_blank"&gt;John Naughton&lt;/a&gt; in the &lt;a href="http://www.theguardian.com/technology/2015/feb/01/control-personal-data-databox-end-user-agreement" target="_blank"&gt;Guardian&lt;/a&gt;...</summary><category term="mort’s mythopœia"></category></entry><entry><title>ICFP 2015 - a call for sponsorship and how you can help</title><link href="https://anil.recoil.org/notes/icfp15-call-for-sponsorships" rel="alternate"></link><published>2015-02-18T00:00:00Z</published><updated>2015-02-18T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/icfp15-call-for-sponsorships</id><summary type="html">The call for papers for this year’s &lt;a href="http://icfpconference.org/icfp2015/" target="_blank"&gt;International Conference on Functional 76Programming&lt;/a&gt; is about to close in two weeks, and over a hundred cutting-edge research papers will be submitted on the theory, application, and experiences behind functional programming and type theory. In addition to the main conference, there are also over 10 big &lt;a href="http://icfpconference.org/icfp2015/affiliated.html" target="_blank"&gt;affiliated workshops&lt;/a&gt; that run throughout the week on topics ranging from specific languages ( &lt;a href="http://www.erlang.org/workshop/2014/" target="_blank"&gt;Erlang&lt;/a&gt; , &lt;a href="http://www.haskell.org/haskellwiki/HaskellImplementorsWorkshop" target="_blank"&gt;Haskell&lt;/a&gt; , &lt;a href="http://ocaml.org/meetings/ocaml/2014/" target="_blank"&gt;OCaml&lt;/a&gt; ), the broader &lt;a href="http://cufp.org/" target="_blank"&gt;commercial 77community&lt;/a&gt; , and even &lt;a href="http://functional-art.org/" target="_blank"&gt;art and 78music&lt;/a&gt; . The ICFP conference experience can be a remarkable one for students. Some great ideas have emerged from random corridor conversations between talks with the likes of &lt;a href="http://homepages.inf.ed.ac.uk/wadler/" target="_blank"&gt;Phil Wadler&lt;/a&gt; , or from rain-soaked discussions with &lt;a href="http://research.microsoft.com/en-us/people/simonpj/" target="_blank"&gt;Simon PJ&lt;/a&gt; at &lt;a href="http://mikkeller.dk/" target="_blank"&gt;Mikeller&lt;/a&gt; , or in my case, from being convinced to &lt;a href="https://blogs.janestreet.com/the-making-of-real-world-ocaml/" target="_blank"&gt;write a book&lt;/a&gt; while in a smoky Tokyo bar. This...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Looping the Loop</title><link href="https://mort.io/blog/looping-the-loop/" rel="alternate"></link><published>2015-02-17T00:00:00Z</published><updated>2015-02-17T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/looping-the-loop/</id><summary type="html">In a fit of blogging mania, here’s another one literally barely days after the previous one. Maybe I’ll crack this yet. Anyway, this is just a short one with what verges on a Technical Contribution. To whit: I recently sorted out &lt;a href="http://mort.io/" target="_blank"&gt;this domain&lt;/a&gt; and was having some issues getting some consistency between what dig , Chrome and my &lt;a href="http://gandi.net" target="_blank"&gt;domain provider&lt;/a&gt; believed to be the correct state. In particular, I was switching over to make the domain properly live rather than simply a 301 Moved Permanently redirect to my old pages at Nottingham. It turns out this was probably mostly Chrome being confused. It seems that it caches 301 Moved Permanently redirects fairly aggressively and the cached entries are not discarded when you go through the standard mechanisms to clear caches. After a bit of experimentation and...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Talks, Old and New</title><link href="https://mort.io/blog/talks-old-and-new/" rel="alternate"></link><published>2015-02-14T00:00:00Z</published><updated>2015-02-14T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/talks-old-and-new/</id><summary type="html">Thanks to an invitation from &lt;a href="http://research.microsoft.com/en-us/um/people/hiballan/" target="_blank"&gt;Hitesh&lt;/a&gt; , I recently got the chance to revisit my old stomping ground at &lt;a href="http://research.microsoft.com/en-us/labs/cambridge/" target="_blank"&gt;Microsoft Research Cambridge&lt;/a&gt; . Well, I say “old” – in the intervening 7 years, they’ve moved to a rather splendid new building at the other end of Cambridge, just next to the station. (And improved the coffee too, not that it wasn’t pretty good to start with!) Anyway, this was a pleasant chance to catch up with some old colleagues, meet some new ones, and even speak to my most recently graduated Ph.D. student, &lt;a href="http://research.microsoft.com/en-us/people/a-ewluge/" target="_blank"&gt;Dr Ewa Luger&lt;/a&gt; – and who’d’ve thought that I’d ever end up supervising someone coming from the discipline of Political Science too! The ostensible reason was to talk about the &lt;a href="http://homenetworks.ac.uk/" target="_blank"&gt;Homework&lt;/a&gt; project – a talk I’ve given a &lt;a href="https://www.youtube.com/watch?v=AdtVSrazVaQ" target="_blank"&gt;few times now&lt;/a&gt; – and to lead from that into discussing some of my current agenda, around...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Delivered keynote at BOB 2015 on MirageOS</title><link href="https://anil.recoil.org/news/0bc235e0-b154-4cbf-a84a-61240f16d60a-1" rel="alternate"></link><published>2015-01-23T00:00:00Z</published><updated>2015-01-23T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/0bc235e0-b154-4cbf-a84a-61240f16d60a-1</id><summary type="html">I hopped over to Berlin to give the keynote at &lt;a href="https://bobkonf.de/2015/en/" target="_blank"&gt;BOB 2015&lt;/a&gt; keynote on functional operating systems. If you're in the region, I highly recommend attending BOB as a superbly organised conference with a diverse and interesting crowd of functional programmers.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Begin, Again!</title><link href="https://mort.io/blog/begin-again/" rel="alternate"></link><published>2015-01-15T00:00:00Z</published><updated>2015-01-15T00:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/begin-again/</id><summary type="html">Specifically, I’ve left &lt;a href="http://www.horizon.ac.uk" target="_blank"&gt;Horizon&lt;/a&gt; and the &lt;a href="http://www.cs.nott.ac.uk" target="_blank"&gt;School of Computer Science&lt;/a&gt; at the &lt;a href="http://www.nottingham.ac.uk" target="_blank"&gt;University of Nottingham&lt;/a&gt; to (re-)join the &lt;a href="http://www.cam.ac.uk" target="_blank"&gt;Cambridge University&lt;/a&gt; &lt;a href="http://www.cl.cam.ac.uk" target="_blank"&gt;Computer Laboratory&lt;/a&gt; . In celebration, and frankly because it was long overdue anyway, I’ve reworked my website. What do you think? For the curious, or the technically inclined, the site now uses &lt;a href="http://foundation.zurb.com/" target="_blank"&gt;ZURB Foundation&lt;/a&gt; 5.5.0 (the current downloadable release as of yesterday), with some slightly customised CSS. The site itself is largely written in &lt;a href="http://daringfireball.net/projects/markdown/" target="_blank"&gt;Markdown&lt;/a&gt; and currently generated using &lt;a href="http://jekyllrb.com/" target="_blank"&gt;Jekyll&lt;/a&gt; to be hosted on &lt;a href="http://github.com" target="_blank"&gt;Github&lt;/a&gt; . It’s actually gone through an interim phase where it was parsed by the OCaml &lt;a href="https://github.com/pw347/omd" target="_blank"&gt;OMD&lt;/a&gt; parser before being crunched into a &lt;a href="https://github.com/mirage/mirage-types" target="_blank"&gt;Mirage KV_RO&lt;/a&gt; filesystem which is then compiled into a type-safe, self-contained web appliance that serves these pages and no other using the OCaml &lt;a href="https://github.com/mirage/cowabloga" target="_blank"&gt;Cowabloga&lt;/a&gt; ,...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Raft Refloated: Do We Have Consensus?</title><link href="https://anil.recoil.org/news/2014-sigops-raft-1" rel="alternate"></link><published>2015-01-01T00:00:00Z</published><updated>2015-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2014-sigops-raft-1</id><summary type="html">Paper on reproducing the raft consensus protocol Heidi Howard , &lt;a href="https://cs.brown.edu/people/malte/" target="_blank"&gt;Malte Schwarzkopf&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . Journal paper in &lt;a href="https://dl.acm.org/doi/10.1145/2723872.2723876" target="_blank"&gt;ACM SIGOPS Operating Systems Review&lt;/a&gt; (vol 49 issue 1). &lt;a href="https://dl.acm.org/doi/10.1145/2723872.2723876" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/2723872.2723876" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2014-sigops-raft.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2014-sigops-raft.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mergeable persistent data structures</title><link href="https://anil.recoil.org/news/2015-jfla-irmin-1" rel="alternate"></link><published>2015-01-01T00:00:00Z</published><updated>2015-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2015-jfla-irmin-1</id><summary type="html">Paper on mergeable data structures using Irmin (nee Irminsule) at JFLA 2015 Benjamin Farinier , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the vingt-sixiemes Journees Francophones des Langages Applicatifs (JFLA 2015). &lt;a href="https://anil.recoil.org/papers/2015-jfla-irmin.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2015-jfla-irmin.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>CUFP'13 scribe's report</title><link href="https://anil.recoil.org/news/2013-cufp-scribe-1" rel="alternate"></link><published>2015-01-01T00:00:00Z</published><updated>2015-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2013-cufp-scribe-1</id><summary type="html">Published the scribe's report for CUFP 2013 in JFP &lt;a href="https://monkey.org/~marius/" target="_blank"&gt;Marius Eriksen&lt;/a&gt; , &lt;a href="https://www.deinprogramm.de/sperber/" target="_blank"&gt;Michael Sperber&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Journal paper in &lt;a href="https://www.cambridge.org/core/journals/journal-of-functional-programming/article/cufp13-scribes-report/F38AAE60DA9AD95E1737E3F863075C13" target="_blank"&gt;Journal of Functional Programming&lt;/a&gt; (vol 25). &lt;a href="https://www.cambridge.org/core/journals/journal-of-functional-programming/article/cufp13-scribes-report/F38AAE60DA9AD95E1737E3F863075C13" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.1017/S0956796815000052" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2013-cufp-scribe.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Codemesh 2014: Nymote: Git Your Own Cloud Here</title><link href="https://anil.recoil.org/news/644914a5-a40b-4ef7-bb17-cea43c95dd09-1" rel="alternate"></link><published>2014-12-17T00:00:00Z</published><updated>2014-12-17T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/644914a5-a40b-4ef7-bb17-cea43c95dd09-1</id><summary type="html">Gave Codemesh 2014 talk on Nymote</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Jitsu: Just-in-Time Summoning of Unikernels (new directions in operating systems)</title><link href="https://anil.recoil.org/news/46968fa0-e5bd-4df8-98e1-3cf88d9b31e5-1" rel="alternate"></link><published>2014-11-25T00:00:00Z</published><updated>2014-11-25T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/46968fa0-e5bd-4df8-98e1-3cf88d9b31e5-1</id><summary type="html">New Directions in Operating Systems talk on Jitsu</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Regional clouds: technical considerations</title><link href="https://anil.recoil.org/news/2014-regional-clouds-1" rel="alternate"></link><published>2014-11-01T00:00:00Z</published><updated>2014-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2014-regional-clouds-1</id><summary type="html">Report on regional cloud computing law available &lt;a href="https://www.cl.cam.ac.uk/~js573/" target="_blank"&gt;Jatinder Singh&lt;/a&gt; , &lt;a href="https://www.cl.cam.ac.uk/~jmb25/" target="_blank"&gt;Jean Bacon&lt;/a&gt; , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://tfjmp.org" target="_blank"&gt;Thomas Pasquier&lt;/a&gt; , &lt;a href="https://www.kuan0.com" target="_blank"&gt;W. Kuan Hon&lt;/a&gt; and &lt;a href="https://www.qmul.ac.uk/law/people/academic-staff/items/millard.html" target="_blank"&gt;Christopher Millard&lt;/a&gt; . Technical report (UCAM-CL-TR-863) at &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-863.html" target="_blank"&gt;University of Cambridge, Computer Laboratory&lt;/a&gt; . &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-863.html" target="_blank"&gt;URL&lt;/a&gt; (cl.cam.ac.uk) &lt;a href="https://doi.org/10.48456/tr-863" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2014-regional-clouds.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2014-regional-clouds.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>MirageOS 2.0: branch consistency for Xen Stub Domains</title><link href="https://anil.recoil.org/news/c9273fa0-802f-4d2b-8f0d-db383943564e-1" rel="alternate"></link><published>2014-10-17T01:00:00Z</published><updated>2014-10-17T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/c9273fa0-802f-4d2b-8f0d-db383943564e-1</id><summary type="html">At the Xen Summit speaking about branch consistency for Xen Stub Domains</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml 2014: The OCaml Platform v1.0</title><link href="https://anil.recoil.org/news/4390c1d0-ed4f-4c01-9e10-dab2a3faed7a-1" rel="alternate"></link><published>2014-09-05T01:00:00Z</published><updated>2014-09-05T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/4390c1d0-ed4f-4c01-9e10-dab2a3faed7a-1</id><summary type="html">Talk on the OCaml Platform reaching v1.0</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Haskell Symposium 2014 Keynote on functional OS design</title><link href="https://anil.recoil.org/news/ed84b2eb-1b93-4dc3-b746-63a4af13d4ea-1" rel="alternate"></link><published>2014-09-05T01:00:00Z</published><updated>2014-09-05T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/ed84b2eb-1b93-4dc3-b746-63a4af13d4ea-1</id><summary type="html">Gave Haskell Symposium 2014 Keynote on functional OS design</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The OCaml Platform v1.0</title><link href="https://anil.recoil.org/news/2014-oud-platform-1" rel="alternate"></link><published>2014-09-01T01:00:00Z</published><updated>2014-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2014-oud-platform-1</id><summary type="html">Paper on the OCaml Platform status &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Amir Chaudhry , Jeremie Dimino , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; , Louis Gesbert , &lt;a href="https://github.com/https://roscidus.com" target="_blank"&gt;Thomas Leonard&lt;/a&gt; , David Sheets , &lt;a href="https://github.com/mshinwell" target="_blank"&gt;Mark Shinwell&lt;/a&gt; , &lt;a href="https://github.com/lpw25" target="_blank"&gt;Leo White&lt;/a&gt; and &lt;a href="https://www.cst.cam.ac.uk/people/jdy22" target="_blank"&gt;Jeremy Yallop&lt;/a&gt; . Paper in the the 4th ACM OCaml Users and Developers Workshop. &lt;a href="https://anil.recoil.org/papers/2014-oud-platform.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2014-oud-platform.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Multicore OCaml</title><link href="https://anil.recoil.org/news/2014-oud-multicore-1" rel="alternate"></link><published>2014-09-01T01:00:00Z</published><updated>2014-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2014-oud-multicore-1</id><summary type="html">First paper on multicore OCaml's design at the OCaml Workshop &lt;a href="https://github.com/stedolan" target="_blank"&gt;Stephen Dolan&lt;/a&gt; , &lt;a href="https://github.com/lpw25" target="_blank"&gt;Leo White&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the the 4th ACM OCaml Users and Developers Workshop. &lt;a href="https://anil.recoil.org/papers/2014-oud-multicore.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2014-oud-multicore.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Irminsule: a branch-consistent distributed library database</title><link href="https://anil.recoil.org/news/2014-oud-irminsule-1" rel="alternate"></link><published>2014-09-01T01:00:00Z</published><updated>2014-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2014-oud-irminsule-1</id><summary type="html">Paper at the OCaml Workshop on the Irmin database library &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; , Amir Chaudhry , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; , David Sheets and Gregory Tsipenyuk . Paper in the the 4th ACM OCaml Users and Developers Workshop. &lt;a href="https://anil.recoil.org/papers/2014-oud-irminsule.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2014-oud-irminsule.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Talks from OCaml Labs during ICFP 2014</title><link href="https://anil.recoil.org/notes/ocaml-labs-at-icfp-2014" rel="alternate"></link><published>2014-08-31T01:00:00Z</published><updated>2014-08-31T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ocaml-labs-at-icfp-2014</id><summary type="html">It's the ever-exciting week of the &lt;a href="https://icfpconference.org/" target="_blank"&gt;International Conference on 79Functional Programming&lt;/a&gt; again in Sweden, and this time &lt;a href="http://ocaml.io" target="_blank"&gt;OCaml Labs&lt;/a&gt; has a variety of talks, tutorials and keynotes to deliver throughout the week. This post summarises all them so you can navigate your way to the right session. Remember that once you register for a particular day at ICFP, you can move between workshops and tutorials as you please. Gothenburg, the location of this year's ICFP conference. Quick links to the below in date order: Talk on &lt;a href="https://anil.recoil.org/#coeffects" target="_blank"&gt;Coeffects, a Calculus of Context-dependent 80Computation&lt;/a&gt; , Monday 1st September, 16:30-17:20, ICFP Day 1. Talk on &lt;a href="https://anil.recoil.org/#implicits" target="_blank"&gt;Modular Implicits&lt;/a&gt; , Thu 4th September, 14:25-14:50, ML Workshop. Talk on &lt;a href="https://anil.recoil.org/#modulealiases" target="_blank"&gt;Module Aliases&lt;/a&gt; , Thu 4th September, 09:35-10:00, ML Workshop. Talk on &lt;a href="https://anil.recoil.org/#metamirage" target="_blank"&gt;Metaprogramming in the Mirage OS&lt;/a&gt; , Thu 4th September, 14:50-15:10, ML Workshop. Keynote talk on &lt;a href="https://anil.recoil.org/#unikernels" target="_blank"&gt;Unikernels&lt;/a&gt; , Fri 5th September, 09:00-10:00,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>FLOSS Weekly 302: Open Mirage</title><link href="https://anil.recoil.org/news/5cdf2eef-9053-428e-b8b3-ab5ae274c129-1" rel="alternate"></link><published>2014-07-23T01:00:00Z</published><updated>2014-07-23T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/5cdf2eef-9053-428e-b8b3-ab5ae274c129-1</id><summary type="html">Appeared on FLOSS Weekly 302 about Open Mirage</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>MirageOS v2.0: a recap of new features</title><link href="https://anil.recoil.org/notes/announcing-mirageos-2" rel="alternate"></link><published>2014-07-22T01:00:00Z</published><updated>2014-07-22T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/announcing-mirageos-2</id><summary type="html">This is a big release for us; after the first version came out earlier in the year, we added in support for ARM devices, a new storage subsystem called &lt;a href="https://irmin.org" target="_blank"&gt;Irmin&lt;/a&gt; and even a pure OCaml TLS stack.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>MirageOS v1.2 released and the runup to 2.0</title><link href="https://anil.recoil.org/notes/announcing-mirageos-1-2" rel="alternate"></link><published>2014-07-08T01:00:00Z</published><updated>2014-07-08T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/announcing-mirageos-1-2</id><summary type="html">I announce a point release of MirageOS 1.x, and the exciting run up to the major MirageOS 2.0 release which has lots of new features. The number of Mirage users is growing steadily!</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>SE Radio Episode 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language</title><link href="https://anil.recoil.org/news/d5411e25-7845-41e8-b3ec-ab3c33ce13c8-1" rel="alternate"></link><published>2014-05-01T01:00:00Z</published><updated>2014-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/d5411e25-7845-41e8-b3ec-ab3c33ce13c8-1</id><summary type="html">Appeared on SE Radio Episode 204 about Mirage and OCaml</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Codio: build Mirage unikernels from a browser</title><link href="https://anil.recoil.org/notes/codio-now-has-opam-support" rel="alternate"></link><published>2014-03-26T00:00:00Z</published><updated>2014-03-26T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/codio-now-has-opam-support</id><summary type="html">I noticed an offhand tweet from Phil Tomson about &lt;a href="http://codio.com/" target="_blank"&gt;Codio&lt;/a&gt; adding OPAM support, and naturally had to take a quick look. I was really impressed by the whole process, and ended up building the &lt;a href="https://web.archive.org/web/20170914182531/http://www.openmirage.org/wiki/mirage-www" target="_blank"&gt;Mirage Xen website&lt;/a&gt; unikernel directly from my web browser in less than a minute, including registration! I signed up to Codio for free (since it’s &lt;a href="https://web.archive.org/web/20170914182531/https://codio.com/avsm/Mirage-WWW/" target="_blank"&gt;a public project&lt;/a&gt; ) using GitHub oAuth (only public identity access required at first, no repository access). Selected a git project and pointed it at the &lt;a href="https://web.archive.org/web/20170914182531/https://github.com/mirage/mirage-www" target="_blank"&gt;mirage-www&lt;/a&gt; repository. At this point, you get the usual file explorer and code editor view in your browser. The magic begins when you go to “Tools/Terminal”, and an interactive Ubuntu shell pops up. Since Codio added &lt;a href="https://web.archive.org/web/20170914182531/https://codio.com/s/blog/2014/03/new-parts/" target="_blank"&gt;opam support&lt;/a&gt; , setting up the Mirage environment is a breeze: I notice Codio supports OCaml and opam on...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Easily OPAM switching to any OCaml feature request</title><link href="https://anil.recoil.org/notes/ocaml-github-and-opam" rel="alternate"></link><published>2014-03-25T00:00:00Z</published><updated>2014-03-25T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ocaml-github-and-opam</id><summary type="html">Gabriel Scherer &lt;a href="http://gallium.inria.fr/blog/patch-review-on-github/" target="_blank"&gt;announced an 81experiment&lt;/a&gt; to host OCaml compiler pull requests on &lt;a href="https://github.com/ocaml/ocaml/pulls" target="_blank"&gt;GitHub&lt;/a&gt; for six months. There is a general feeling that GitHub would be a more modern hosting platform than the venerable but reliable &lt;a href="http://caml.inria.fr/mantis/changelog_page.php" target="_blank"&gt;Mantis&lt;/a&gt; setup that has in place for over a decade, but the only way to find out for sure is by trying it out for a while. One of the great benefits of using GitHub is their excellent &lt;a href="http://developer.github.com/v3/" target="_blank"&gt;API&lt;/a&gt; to easily automate workflows around issues and pull requests. After a suggestion from Jeremy Yallop and David Sheets over lunch, I decided to use this to make it easier to locally apply compiler patches. OPAM has a great &lt;a href="https://opam.ocaml.org/doc/Advanced_Usage.html#h2-Usingadifferentcompiler" target="_blank"&gt;compiler 82switch&lt;/a&gt; feature that lets you run simultaneous OCaml installations and swap between them easily. For instance, the default setting gives you access to: $ opam switch system...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>ICFP 2014 - a call for sponsorship and how you can help</title><link href="https://anil.recoil.org/notes/icfp-call-for-sponsorships" rel="alternate"></link><published>2014-03-03T00:00:00Z</published><updated>2014-03-03T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/icfp-call-for-sponsorships</id><summary type="html">The call for papers for this year’s &lt;a href="http://icfpconference.org/icfp2014/" target="_blank"&gt;International Conference on Functional Programming&lt;/a&gt; has just closed, with around a hundred cutting-edge research papers submitted on the theory, application, and experiences behind functional programming. This marks just the beginning of sorting out the program, as there are also over 10 big &lt;a href="http://icfpconference.org/icfp2014/affiliated.html" target="_blank"&gt;affiliated workshops&lt;/a&gt; that run throughout the week on topics ranging from specific languages ( &lt;a href="http://www.erlang.org/workshop/2014/" target="_blank"&gt;Erlang&lt;/a&gt; , &lt;a href="http://www.haskell.org/haskellwiki/HaskellImplementorsWorkshop" target="_blank"&gt;Haskell&lt;/a&gt; , &lt;a href="http://ocaml.org/meetings/ocaml/2014/" target="_blank"&gt;OCaml&lt;/a&gt; ), the broader &lt;a href="http://cufp.org/" target="_blank"&gt;commercial community&lt;/a&gt; , and even &lt;a href="http://functional-art.org/" target="_blank"&gt;art and music&lt;/a&gt; . The ICFP conference experience can be a remarkable one for students. Some great ideas have emerged from random corridor conversations between talks with the likes of &lt;a href="http://homepages.inf.ed.ac.uk/wadler/" target="_blank"&gt;Phil Wadler&lt;/a&gt; , or from rain-soaked discussions with &lt;a href="http://research.microsoft.com/en-us/people/simonpj/" target="_blank"&gt;Simon PJ&lt;/a&gt; at &lt;a href="http://mikkeller.dk/" target="_blank"&gt;Mikeller&lt;/a&gt; , or in my case, from being convinced to &lt;a href="https://blogs.janestreet.com/the-making-of-real-world-ocaml/" target="_blank"&gt;write a book&lt;/a&gt; while in a smoky Tokyo bar. Functional...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using Dust Clouds to Enhance Anonymous Communication</title><link href="https://anil.recoil.org/news/2010-iswp-dustclouds-1" rel="alternate"></link><published>2014-03-01T00:00:00Z</published><updated>2014-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2010-iswp-dustclouds-1</id><summary type="html">Paper on building dust clouds for anonymous communication &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Theodore Hong , &lt;a href="https://github.com/mrry" target="_blank"&gt;Derek Murray&lt;/a&gt; and &lt;a href="https://cs.brown.edu/people/malte/" target="_blank"&gt;Malte Schwarzkopf&lt;/a&gt; . Paper in the &lt;a href="http://link.springer.com/10.1007/978-3-662-45921-8_10" target="_blank"&gt;security Protocols XVIII&lt;/a&gt; . &lt;a href="http://link.springer.com/10.1007/978-3-662-45921-8_10" target="_blank"&gt;URL&lt;/a&gt; (link.springer.com) &lt;a href="https://doi.org/10.1007/978-3-662-45921-8_10" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-iswp-dustclouds.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-iswp-dustclouds.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Unikernels, and the Rise of the Virtual Library Operating System</title><link href="https://anil.recoil.org/notes/unikernels-in-cacm" rel="alternate"></link><published>2014-01-13T00:00:00Z</published><updated>2014-01-13T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/unikernels-in-cacm</id><summary type="html">The Communications of the ACM have just published an article that &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; and I wrote providing a broader background on the concept of &lt;a href="http://anil.recoil.org/papers/2013-asplos-mirage.pdf" target="_blank"&gt;Unikernels&lt;/a&gt; that we’ve been working on since about 2003, when we started building &lt;a href="http://anil.recoil.org/papers/2007-eurosys-melange.pdf" target="_blank"&gt;Melange&lt;/a&gt; and the &lt;a href="http://anil.recoil.org/papers/2010-icfp-xen.pdf" target="_blank"&gt;Xen toolstack&lt;/a&gt; . You can read either the &lt;a href="http://cacm.acm.org/magazines/2014/1/170866-unikernels" target="_blank"&gt;print article&lt;/a&gt; (requires an ACM subscription) or the &lt;a href="http://queue.acm.org/detail.cfm?id=2566628" target="_blank"&gt;open access version&lt;/a&gt; on the ACM Queue. There's been some interesting discussion about it already online: On &lt;a href="http://www.reddit.com/r/programming/comments/1upy41/mirage_os_10_released_last_december/" target="_blank"&gt;Reddit&lt;/a&gt; , a number of queries about how it fits into the space of containers, microkernels, and other experimental operating systems. Coverage from &lt;a href="http://www.eweek.com/cloud/xen-project-builds-its-own-cloud-os-mirage.html" target="_blank"&gt;eWeek&lt;/a&gt; , &lt;a href="http://www.infoworld.com/t/operating-systems/xen-mirage-the-less-more-cloud-os-233823" target="_blank"&gt;InfoWorld&lt;/a&gt; , and &lt;a href="http://www.linux.com/news/enterprise/cloud-computing/751156-are-cloud-operating-systems-the-next-big-thing" target="_blank"&gt;Linux.com&lt;/a&gt; , and a couple of interviews on InfoQ covering &lt;a href="http://www.infoq.com/news/2013/12/mirageos" target="_blank"&gt;Mirage&lt;/a&gt; and my &lt;a href="http://www.infoq.com/articles/real-world-ocaml-interview" target="_blank"&gt;book on OCaml&lt;/a&gt; that give more background on the project. Two of the most interesting bits of feedback for me personally...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Not-quite-so-broken TLS in OCaml</title><link href="https://anil.recoil.org/ideas/nqsb-tls" rel="alternate"></link><published>2014-01-01T00:00:00Z</published><updated>2014-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/nqsb-tls</id><summary type="html">Not-quite-so-broken TLS in OCaml This is an idea proposed in 2014 as a good starter project, and has been completed by &lt;a href="https://github.com/hannesm" target="_blank"&gt;Hannes Mehnert&lt;/a&gt; and &lt;a href="https://github.com/pqwy" target="_blank"&gt;David Kaloper-Mersinjak&lt;/a&gt; . It was co-supervised with &lt;a href="https://www.cl.cam.ac.uk/~pes20/" target="_blank"&gt;Peter Sewell&lt;/a&gt; . Transport Layer Security (TLS) implementations have a history of security flaws. The immediate causes of these are often programming errors, e.g. in memory manage- ment, but the root causes are more fundamental: the challenges of interpreting the ambiguous prose specification, the complexities inherent in large APIs and code bases, inherently unsafe programming choices, and the impossibility of directly testing conformance between implementations and the specification. This internship was to work on nqsb-TLS, our re-engineered approach to security protocol specification and implementation that addresses...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Consolidating Trust for Client Groups that use TLS to Secure Connections</title><link href="https://anil.recoil.org/ideas/scaling-tls-trust" rel="alternate"></link><published>2014-01-01T00:00:00Z</published><updated>2014-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/scaling-tls-trust</id><summary type="html">Consolidating Trust for Client Groups that use TLS to Secure Connections This is an idea proposed in 2014 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Johann Beleites&lt;/a&gt; . It was co-supervised with &lt;a href="https://anil.recoil.org/" target="_blank"&gt;David Sheets&lt;/a&gt; . This project aimed to develop a framework that allows administrators to centrally manage trust in CAs and certificates across a large number of clients. The framework should be responsive and changes in trust should not require any software updates or reboots of client devices. Further, no cooperation from CAs or domain owners should be necessary for a security gain. Performance optimisations should be implemented such that it is usable on a daily basis and this project could integrate with other existing attempts at improving the TLS trust model. Related...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Reviewing the first year of OCaml Labs in 2013</title><link href="https://anil.recoil.org/notes/the-year-in-ocamllabs" rel="alternate"></link><published>2013-12-29T00:00:00Z</published><updated>2013-12-29T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/the-year-in-ocamllabs</id><summary type="html">This time last year in 2012, I had just &lt;a href="https://anil.recoil.org/2012/10/19/announcing-ocaml-labs.html" target="_blank"&gt;announced&lt;/a&gt; the formation of a new group called &lt;a href="http://www.cl.cam.ac.uk/projects/ocamllabs/" target="_blank"&gt;OCaml 83Labs&lt;/a&gt; in the &lt;a href="http://www.cl.cam.ac.uk" target="_blank"&gt;Cambridge 84Computer Lab&lt;/a&gt; that would combine research and community work towards the practical application of functional programming. An incredible year has absolutely flown by, and I’ve put together this post to summarise what’s gone on, and point to our future directions for 2014. The theme of our group was not to be pure research, but rather a hybrid group that would take on some of the load of day-to-day OCaml maintenance from &lt;a href="http://caml.inria.fr" target="_blank"&gt;INRIA&lt;/a&gt; , as well as help grow the wider OCaml community. To this end, all of our projects have been highly collaborative, often involving colleagues from &lt;a href="http://ocamlpro.com" target="_blank"&gt;OCamlPro&lt;/a&gt; , &lt;a href="http://gallium.inria.fr/" target="_blank"&gt;INRIA&lt;/a&gt; , &lt;a href="http://janestreet.com" target="_blank"&gt;Jane Street&lt;/a&gt; , &lt;a href="http://www.lexifi.com/" target="_blank"&gt;Lexifi&lt;/a&gt; and &lt;a href="http://citrix.com" target="_blank"&gt;Citrix&lt;/a&gt; . This post covers progress in &lt;a href="https://anil.recoil.org/#tooling" target="_blank"&gt;tooling&lt;/a&gt; , the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using Docker to bulk-build OPAM packages on Linux</title><link href="https://anil.recoil.org/notes/docker-and-opam" rel="alternate"></link><published>2013-11-15T00:00:00Z</published><updated>2013-11-15T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/docker-and-opam</id><summary type="html">Now that OCaml 4.01 has been released, there is a frenzy of commit activity in the &lt;a href="https://github.com/ocaml/ocaml" target="_blank"&gt;development trunk&lt;/a&gt; of OCaml as the new features for 4.02 are all integrated. These include some enhancements to the type system such as &lt;a href="http://ocaml.org/meetings/ocaml/2013/slides/garrigue.pdf" target="_blank"&gt;injectivity&lt;/a&gt; , &lt;a href="http://caml.inria.fr/mantis/view.php?id=6063" target="_blank"&gt;module aliases&lt;/a&gt; and &lt;a href="http://ocaml.org/meetings/ocaml/2013/slides/white.pdf" target="_blank"&gt;extension 85points&lt;/a&gt; as a simpler alternative to syntax extensions. The best way to ensure that these all play well together is to test against the ever-growing OPAM package database as early as possible. While we’re working on more elaborate &lt;a href="https://web.archive.org/web/20181114154831/https://anil.recoil.org/2013/09/30/travis-and-ocaml.html" target="_blank"&gt;continuous 86building&lt;/a&gt; solutions, it’s far easier if a developer can quickly run a bulk build on their own system. The difficulty with doing this is that you also need to install all the external dependencies (e.g. libraries and header files for bindings) needed by the thousands of packages in OPAM. Enter a hip new lightweight container...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>MirageOS and XAPI project update at XenSummit</title><link href="https://anil.recoil.org/news/cf9fcf6b-de5d-4a23-a00d-cceadea5b668-1" rel="alternate"></link><published>2013-11-13T00:00:00Z</published><updated>2013-11-13T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/cf9fcf6b-de5d-4a23-a00d-cceadea5b668-1</id><summary type="html">MirageOS and XAPI project update at XenSummit</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Notes from PL and OS 2013 workshop</title><link href="https://anil.recoil.org/notes/liveblog-plos-2013" rel="alternate"></link><published>2013-11-03T00:00:00Z</published><updated>2013-11-03T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/liveblog-plos-2013</id><summary type="html">I co-chaired the Programming Languages and Operating Systems workshop at SOSP 2013, and made livenotes about the (many) papers presented there.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Unikernels: Rise of the Virtual Library Operating System</title><link href="https://anil.recoil.org/news/rise-of-libos-1" rel="alternate"></link><published>2013-11-01T00:00:00Z</published><updated>2013-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/rise-of-libos-1</id><summary type="html">Article on the Communications of the ACM on unikernels is published &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; . Journal paper in &lt;a href="https://dl.acm.org/doi/10.1145/2557963.2566628" target="_blank"&gt;ACM Queue&lt;/a&gt; (vol 11 issue 11). &lt;a href="https://dl.acm.org/doi/10.1145/2557963.2566628" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/2557963.2566628" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/rise-of-libos.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Trevi: watering down storage hotspots with cool fountain codes</title><link href="https://anil.recoil.org/news/2013-hotnets-trevi-1" rel="alternate"></link><published>2013-11-01T00:00:00Z</published><updated>2013-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2013-hotnets-trevi-1</id><summary type="html">Paper on fountain coding for datacentre networking at HotNets 2013 &lt;a href="http://georgeparisis.github.io" target="_blank"&gt;George Parisis&lt;/a&gt; , Toby Moncaster , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/2535771.2535781" target="_blank"&gt;proceedings of the Twelfth ACM Workshop on Hot Topics in Networks&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/2535771.2535781" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/2535771.2535781" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2013-hotnets-trevi.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2013-hotnets-trevi.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>First edition of Real World OCaml published</title><link href="https://anil.recoil.org/news/rwo-1" rel="alternate"></link><published>2013-11-01T00:00:00Z</published><updated>2013-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/rwo-1</id><summary type="html">The 1st Edition of Real World OCaml by O'Reilly associates has been released! There have been flurry of signing events, including an upcoming one at OSCON in Austin. &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://github.com/yminsky" target="_blank"&gt;Yaron Minsky&lt;/a&gt; . Book published by &lt;a href="https://www.cambridge.org/core/books/real-world-ocaml-functional-programming-for-the-masses/052E4BCCB09D56A0FE875DD81B1ED571" target="_blank"&gt;Cambridge University Press&lt;/a&gt; . &lt;a href="https://www.cambridge.org/core/books/real-world-ocaml-functional-programming-for-the-masses/052E4BCCB09D56A0FE875DD81B1ED571" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.1017/9781009129220" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/rwo.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Commercial users of functional programming workshop report</title><link href="https://anil.recoil.org/news/2012-cufp-scribe-1" rel="alternate"></link><published>2013-11-01T00:00:00Z</published><updated>2013-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2012-cufp-scribe-1</id><summary type="html">Published the scribe's report for CUFP 2012 &lt;a href="https://www.deinprogramm.de/sperber/" target="_blank"&gt;Michael Sperber&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Journal paper in &lt;a href="https://www.cambridge.org/core/journals/journal-of-functional-programming/article/commercial-users-of-functional-programming-workshop-report/7B8E5D99E6C0D40D45B37D972B82598D" target="_blank"&gt;Journal of Functional Programming&lt;/a&gt; (vol 23 issue 6). &lt;a href="https://www.cambridge.org/core/journals/journal-of-functional-programming/article/commercial-users-of-functional-programming-workshop-report/7B8E5D99E6C0D40D45B37D972B82598D" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.1017/S0956796813000257" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-cufp-scribe.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>A 21st Century IDE</title><link href="https://mort.io/blog/21st-century-ide/" rel="alternate"></link><published>2013-10-13T01:00:00Z</published><updated>2013-10-13T01:00:00Z</updated><author><name>RichardM</name></author><id>https://mort.io/blog/21st-century-ide/</id><summary type="html">I finally decided to sit down and get the shiny new &lt;a href="http://kiwi.iuwt.fr/~asmanur/blog/merlin/" target="_blank"&gt;merlin&lt;/a&gt; mode for OCaml working with my emacs configuration. Basically, really rather simple in the end although (in the usual fashion!) I did end up spending considerable time tweaking various other customisations… Most of the information below is based on the following sources: &lt;a href="http://github.com/def-lkb/merlin#emacs-interface" target="_blank"&gt;http://github.com/def-lkb/merlin#emacs-interface&lt;/a&gt; &lt;a href="http://zheng.li/buzzlogs-ocaml/2013/08/23/irc.html" target="_blank"&gt;http://zheng.li/buzzlogs-ocaml/2013/08/23/irc.html&lt;/a&gt; &lt;a href="http://www.ocamlpro.com/blog/2013/03/18/monthly-03.html" target="_blank"&gt;http://www.ocamlpro.com/blog/2013/03/18/monthly-03.html&lt;/a&gt; Before we begin, install merlin : $ opam install merlin The complete &lt;a href="https://github.com/mor1/rc-files/commit/4a2b0be59081d6df0640af39b48c75c20443c8dc" target="_blank"&gt;commit&lt;/a&gt; change is in my &lt;a href="http://github.com/mor1" target="_blank"&gt;github&lt;/a&gt; account (combined with a large cleanup of various other aborted OCaml configurations). Breaking it down a bit, first setup some paths: where to find ocp-indent , merlin.el for merlin-mode , and the ocamlmerlin command itself. Note that this relies on the current state of opam , so when you start emacs be sure to have...</summary><category term="mort’s mythopœia"></category></entry><entry><title>Notes on the first Human Data Interaction workshop</title><link href="https://anil.recoil.org/notes/hdi-workshop-2013-liveblog" rel="alternate"></link><published>2013-10-02T01:00:00Z</published><updated>2013-10-02T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/hdi-workshop-2013-liveblog</id><summary type="html">We held the first &lt;a href="https://hdi-network.org" target="_blank"&gt;Human Data Interaction&lt;/a&gt; workshop over in Cambridge, with lots of discussion about social networks and the state of play with decentralising them.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml 2013 workshop liveblog</title><link href="https://anil.recoil.org/notes/ocaml-2013-liveblog" rel="alternate"></link><published>2013-09-24T01:00:00Z</published><updated>2013-09-24T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ocaml-2013-liveblog</id><summary type="html">I attended the OCaml 2013 workshop and took live notes of the event. There was a lot going on here, which you can learn more about in the " &lt;a href="https://anil.recoil.org/notes/the-year-in-ocamllabs" target="_blank"&gt;Reviewing the first year of OCaml Labs in 2013&lt;/a&gt; " roundup as well that I published later in the year.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Liveblogging CUFP 2013</title><link href="https://anil.recoil.org/notes/cufp-2013-liveblog" rel="alternate"></link><published>2013-09-22T01:00:00Z</published><updated>2013-09-22T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/cufp-2013-liveblog</id><summary type="html">The &lt;a href="https://cufp.org" target="_blank"&gt;Commercial Uses of Functional Programming&lt;/a&gt; workshop is one of the best industry/academia crossover workshops to attend, and these are my livenotes from the 2013 edition.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OPAM 1.1 beta available, with pretty colours</title><link href="https://anil.recoil.org/notes/opam-1-1-beta" rel="alternate"></link><published>2013-09-20T01:00:00Z</published><updated>2013-09-20T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/opam-1-1-beta</id><summary type="html">&lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; just announced the availability of the &lt;a href="http://opam.ocamlpro.com" target="_blank"&gt;OPAM&lt;/a&gt; beta release. This has been a huge amount of work for him and &lt;a href="http://louis.gesbert.fr/" target="_blank"&gt;Louis&lt;/a&gt; , so I’m excited to see this release! Aside from general stability, the main highlights for me are: A switch to the &lt;a href="http://creativecommons.org/publicdomain/zero/1.0/" target="_blank"&gt;CC0&lt;/a&gt; public-domain-like license for the repository, and LGPL2+linking exception for OPAM itself. The &lt;a href="https://github.com/OCamlPro/opam-repository/issues/955" target="_blank"&gt;cutover to the new 87license&lt;/a&gt; was the first non-gratuitous use of GitHub’s fancy issue lists I’ve seen, too! As part of this, we’re also beginning a transition over to hosting it at opam.ocaml.org , to underline our committment to maintaining it as an OCaml community resource. Much-improved support for package pinning and updates. This is the feature that makes OPAM work well with &lt;a href="http://openmirage.org" target="_blank"&gt;MirageOS&lt;/a&gt; , since we often need to do development work on a low-level...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The OCaml Platform v0.1</title><link href="https://anil.recoil.org/news/2013-oud-platform-1" rel="alternate"></link><published>2013-09-01T01:00:00Z</published><updated>2013-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2013-oud-platform-1</id><summary type="html">Paper on the OCaml Platform at the OCaml Workshop 2013 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Amir Chaudhry , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; , David Sheets , Phillipe Wang , &lt;a href="https://github.com/lpw25" target="_blank"&gt;Leo White&lt;/a&gt; and &lt;a href="https://www.cst.cam.ac.uk/people/jdy22" target="_blank"&gt;Jeremy Yallop&lt;/a&gt; . Paper in the the 2nd ACM OCaml Users and Developers Workshop. &lt;a href="https://anil.recoil.org/papers/2013-oud-platform.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2013-oud-platform.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Ocamlot: Online OCaml Testing</title><link href="https://anil.recoil.org/news/2013-ocamlot-1" rel="alternate"></link><published>2013-09-01T01:00:00Z</published><updated>2013-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2013-ocamlot-1</id><summary type="html">Presented an OCaml ecosystem testing system David Sheets , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Amir Chaudhry and &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; . Paper in the &lt;a href="https://github.com/ocaml/v2.ocaml.org/blob/master/site/meetings/ocaml/2013/proposals/ocamlot.pdf" target="_blank"&gt;the 3rd ACM OCaml Users and Developers Workshop&lt;/a&gt; . &lt;a href="https://github.com/ocaml/v2.ocaml.org/blob/master/site/meetings/ocaml/2013/proposals/ocamlot.pdf" target="_blank"&gt;URL&lt;/a&gt; (github.com) &lt;a href="https://anil.recoil.org/papers/2013-ocamlot.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2013-ocamlot.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Lost in the Edge: Finding Your Way with DNSSEC Signposts</title><link href="https://anil.recoil.org/news/2013-foci-signposts-1" rel="alternate"></link><published>2013-08-01T01:00:00Z</published><updated>2013-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2013-foci-signposts-1</id><summary type="html">Paper on DNSSEC-based Signpost servers for better p2p communications at USENIX FOCI &lt;a href="https://www.lancaster.ac.uk/scc/about-us/people/charalampos-rotsos" target="_blank"&gt;Charalampos Rotsos&lt;/a&gt; , Heidi Howard , David Sheets , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Amir Chaudhry and &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . Paper in the &lt;a href="https://www.usenix.org/conference/foci13/workshop-program/presentation/rotsos" target="_blank"&gt;3rd USENIX Workshop on Free and Open Communications on the Internet (FOCI 13)&lt;/a&gt; . &lt;a href="https://www.usenix.org/conference/foci13/workshop-program/presentation/rotsos" target="_blank"&gt;URL&lt;/a&gt; (usenix.org) &lt;a href="https://anil.recoil.org/papers/2013-foci-signposts.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2013-foci-signposts.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mirage Developer Preview 1 screencast</title><link href="https://anil.recoil.org/news/762795c5-9f3b-499b-a054-b2af37d1ddd2-1" rel="alternate"></link><published>2013-07-26T01:00:00Z</published><updated>2013-07-26T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/762795c5-9f3b-499b-a054-b2af37d1ddd2-1</id><summary type="html">Mirage Developer Preview 1 screencast</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Grepping the source of every OCaml package in OPAM</title><link href="https://anil.recoil.org/notes/grepping-every-known-ocaml-package-source" rel="alternate"></link><published>2013-04-08T01:00:00Z</published><updated>2013-04-08T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/grepping-every-known-ocaml-package-source</id><summary type="html">A regular question that comes up from OCaml developers is how to use &lt;a href="http://opam.ocaml.org" target="_blank"&gt;OPAM&lt;/a&gt; as a hypothesis testing tool against the known corpus of OCaml source code. In other words: can we quickly and simply run grep over every source archive in OPAM? So that’s the topic of today’s 5 minute blog post: git clone git://github.com/ocaml/opam-repository cd opam-repository opam-admin make cd archives for i in *.tar.gz; \ do tar -zxOf $i | grep caml_stat_alloc_string; \ done In this particular example we’re looking for instances of caml_stat_alloc_string , so just replace that with the regular expression of your choice. The opam-admin tool repacks upstream archives into a straightforward tarball, so you don’t need to worry about all the different &lt;a href="http://opam.ocaml.org/doc/Packaging.html#h1-CreatingOPAMpackages#Notes" target="_blank"&gt;archival 88formats&lt;/a&gt; that OPAM supports (such as git or Darcs). It...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Unikernels: library operating systems for the cloud</title><link href="https://anil.recoil.org/news/2013-asplos-mirage-1" rel="alternate"></link><published>2013-03-01T00:00:00Z</published><updated>2013-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2013-asplos-mirage-1</id><summary type="html">The first paper on unikernels is pubished at ASPLOS 2013 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="https://www.lancaster.ac.uk/scc/about-us/people/charalampos-rotsos" target="_blank"&gt;Charalampos Rotsos&lt;/a&gt; , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; , Balraj Singh , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; , &lt;a href="https://github.com/sos22" target="_blank"&gt;Steven Smith&lt;/a&gt; , &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; and &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/2451116.2451167" target="_blank"&gt;proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/2451116.2451167" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/2451116.2451167" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2013-asplos-mirage.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2013-asplos-mirage.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Perceived risks of personal data sharing</title><link href="https://anil.recoil.org/news/de13-dataware-1" rel="alternate"></link><published>2013-02-01T00:00:00Z</published><updated>2013-02-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/de13-dataware-1</id><summary type="html">Paper on dataware computing in the digital economy Anya Skatova , Jaspreet Johal , Robert Houghton , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , Neelam Bhandari , &lt;a href="https://www.tomlodge.info/cv" target="_blank"&gt;Tom Lodge&lt;/a&gt; , Christian Wagner , &lt;a href="https://www.nottingham.ac.uk/business/people/psxjog.phtml" target="_blank"&gt;James Goulding&lt;/a&gt; , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Journal paper in Digital Economy: Open Digital. &lt;a href="https://anil.recoil.org/papers/de13-dataware.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/de13-dataware.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Concurrent revisions for OCaml</title><link href="https://anil.recoil.org/ideas/concurrent-revisions" rel="alternate"></link><published>2013-01-01T00:00:00Z</published><updated>2013-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/concurrent-revisions</id><summary type="html">Concurrent revisions for OCaml This is an idea proposed in 2013 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Dimitar Popov&lt;/a&gt; . The biggest challenge when using parallel programming is typically how to keep track of the side effects of computations that are executed in parallel and that involve shared mutable state. Traditional methods for dealing with this issue often limit concurrency, do not provide sufficient determinism and are error prone. Ideally, we would like a concept where all conflicts between parallel tasks are resolved deterministically with minimized effort from the programmer. This project aims to design and build a library for OCaml that implements the concept of &lt;a href="https://www.microsoft.com/en-us/research/project/concurrent-revisions/" target="_blank"&gt;concurrent 89revisions&lt;/a&gt; . Concurrent revisions as initially proposed highlight these design...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Evolving TCP: how hard can it be?</title><link href="https://anil.recoil.org/news/2012-conext-pvtcp-1" rel="alternate"></link><published>2012-12-01T00:00:00Z</published><updated>2012-12-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2012-conext-pvtcp-1</id><summary type="html">Paper on extending TCP in a backwards compatible way at CoNeXT 2013 Zubair Nabi , Toby Moncaster , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; and &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/2413247.2413270" target="_blank"&gt;proceedings of the 2012 ACM conference on CoNEXT student workshop&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/2413247.2413270" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/2413247.2413270" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-conext-pvtcp.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-conext-pvtcp.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Announcing OCaml Labs</title><link href="https://anil.recoil.org/notes/announcing-ocaml-labs" rel="alternate"></link><published>2012-10-19T01:00:00Z</published><updated>2012-10-19T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/announcing-ocaml-labs</id><summary type="html">I’m very excited to announce &lt;a href="https://anil.recoil.org/projects/ocamllabs" target="_blank"&gt;OCaml Labs&lt;/a&gt; , the latest project to hit the Cambridge Computer Lab. As anyone that hangs out near me probably realises, I very much enjoy functional programming. My weapon of choice tends to be &lt;a href="http://www.ocaml-lang.org" target="_blank"&gt;OCaml&lt;/a&gt; , as it condenses &lt;a href="http://events.inf.ed.ac.uk/Milner2012/X_Leroy-html5-mp4.html" target="_blank"&gt;decades of 90research&lt;/a&gt; into a pragmatic blend of functional, imperative and object-oriented programming styles. What’s perhaps less well known are the steady &lt;a href="http://www.ocaml-lang.org/companies.html" target="_blank"&gt;inroads&lt;/a&gt; that OCaml has been making into mission-critical areas of industry. At &lt;a href="http://ocaml.janestreet.com" target="_blank"&gt;Jane 91Street&lt;/a&gt; , billions of dollars of transactions are routed through a huge ML code-base that is designed to catch bugs &lt;a href="http://vimeo.com/14313378" target="_blank"&gt;at compile-time&lt;/a&gt; . At &lt;a href="http://github.com/xen-org/xen-api" target="_blank"&gt;Citrix&lt;/a&gt; , the Xen management toolstack that powers &lt;a href="http://blogs.citrix.com/2012/10/09/one-in-a-million/" target="_blank"&gt;millions&lt;/a&gt; of hosts in the cloud is &lt;a href="https://anil.recoil.org/papers/2010-icfp-xen.pdf" target="_blank"&gt;largely written in 92OCaml&lt;/a&gt; . Facebook does sophisticated &lt;a href="https://github.com/facebook/pfff/wiki/Main" target="_blank"&gt;static 93analysis&lt;/a&gt; using OCaml over their vast PHP codebase to...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Breaking up is easy (with OPAM)</title><link href="https://anil.recoil.org/notes/breaking-up-mirageos" rel="alternate"></link><published>2012-10-17T01:00:00Z</published><updated>2012-10-17T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/breaking-up-mirageos</id><summary type="html">Once the main advantages of having hypervisors is that you can have strongly isolated services within a single machine. But it's really hard to actually build these specialised services; that is, until MirageOS came along. This post discusses how to build so-called "stub domains" for Xen using MirageOS.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OUD 2012: Towards an OCaml Platform and Introducing OCaml Labs</title><link href="https://anil.recoil.org/news/dd8b1f58-c43c-4422-9963-d3a980529e57-1" rel="alternate"></link><published>2012-09-17T01:00:00Z</published><updated>2012-09-17T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/dd8b1f58-c43c-4422-9963-d3a980529e57-1</id><summary type="html">Recording of the OCaml Labs announcement</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Building a Xenstore stub domain with MirageOS</title><link href="https://mirage.io/blog/xenstore-stub-domain" rel="alternate"></link><published>2012-09-12T01:00:00Z</published><updated>2012-09-12T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/xenstore-stub-domain</id><summary type="html"></summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Signposts: end-to-end networking in a world of middleboxes</title><link href="https://anil.recoil.org/news/2012-sigcomm-signposts-1" rel="alternate"></link><published>2012-09-01T01:00:00Z</published><updated>2012-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2012-sigcomm-signposts-1</id><summary type="html">Demoed the Signposts DNSSEC system at SIGCOMM Amir Chaudhry , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://www.lancaster.ac.uk/scc/about-us/people/charalampos-rotsos" target="_blank"&gt;Charalampos Rotsos&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , Andrius Aucinas , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; , &lt;a href="https://about.me/sebastianprobsteide" target="_blank"&gt;Sebastian Probst Eide&lt;/a&gt; , &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; , Andrew W. Moore and Narseo Vallina-Rodriguez . Journal paper in &lt;a href="https://dl.acm.org/doi/10.1145/2377677.2377692" target="_blank"&gt;ACM SIGCOMM Computer Communication Review&lt;/a&gt; (vol 42 issue 4). &lt;a href="https://dl.acm.org/doi/10.1145/2377677.2377692" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/2377677.2377692" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-sigcomm-signposts.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Programming the Xen cloud using OCaml</title><link href="https://anil.recoil.org/news/2012-oud-xen-1" rel="alternate"></link><published>2012-09-01T01:00:00Z</published><updated>2012-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2012-oud-xen-1</id><summary type="html">Paper on programming the Xen cloud using OCaml at the OCaml Workshop &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; , &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the the 1st ACM OCaml Users and Developers Workshop. &lt;a href="https://anil.recoil.org/papers/2012-oud-xen.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-oud-xen.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Exploring Compartmentalisation Hypotheses with SOAAP</title><link href="https://anil.recoil.org/news/2012-ahans-soapp-1" rel="alternate"></link><published>2012-09-01T01:00:00Z</published><updated>2012-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2012-ahans-soapp-1</id><summary type="html">Paper on control flow analysis to break up applications into compartments &lt;a href="https://www.khilan.com/" target="_blank"&gt;Khilan Gudka&lt;/a&gt; , &lt;a href="http://www.watson.org/~robert/" target="_blank"&gt;Robert M Watson&lt;/a&gt; , &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; , &lt;a href="https://en.wikipedia.org/wiki/Ben_Laurie" target="_blank"&gt;Ben Laurie&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://ieeexplore.ieee.org/document/6498375/" target="_blank"&gt;2012 IEEE Sixth International Conference on Self-Adaptive and Self-Organizing Systems Workshops&lt;/a&gt; . &lt;a href="https://ieeexplore.ieee.org/document/6498375/" target="_blank"&gt;URL&lt;/a&gt; (ieeexplore.ieee.org) &lt;a href="https://doi.org/10.1109/SASOW.2012.14" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-ahans-soapp.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-ahans-soapp.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Cost, Performance &amp; Flexibility in OpenFlow: Pick three</title><link href="https://anil.recoil.org/news/2012-iccsdn-mirageflow-1" rel="alternate"></link><published>2012-06-01T01:00:00Z</published><updated>2012-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2012-iccsdn-mirageflow-1</id><summary type="html">Paper on using MirageOS for better SDN infrastructure with OpenFlow &lt;a href="https://www.lancaster.ac.uk/scc/about-us/people/charalampos-rotsos" target="_blank"&gt;Charalampos Rotsos&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Balraj Singh and Andrew W. Moore . Paper in the &lt;a href="https://ieeexplore.ieee.org/document/6364690/" target="_blank"&gt;2012 IEEE International Conference on Communications (ICC)&lt;/a&gt; . &lt;a href="https://ieeexplore.ieee.org/document/6364690/" target="_blank"&gt;URL&lt;/a&gt; (ieeexplore.ieee.org) &lt;a href="https://doi.org/10.1109/ICC.2012.6364690" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-iccsdn-mirageflow.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-iccsdn-mirageflow.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Confidential carbon commuting: exploring a privacy-sensitive architecture for incentivising 'greener' commuting</title><link href="https://anil.recoil.org/news/2012-mpm-caware-1" rel="alternate"></link><published>2012-04-01T01:00:00Z</published><updated>2012-04-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2012-mpm-caware-1</id><summary type="html">Paper on our use of data lockers within Cambridge to incentivise more green commuting patterns Chris Elsmore , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Ian Leslie and Amir Chaudhry . Paper in the &lt;a href="https://doi.org/10.1145/2181196.2181201" target="_blank"&gt;proceedings of the First Workshop on Measurement, Privacy, and Mobility&lt;/a&gt; . &lt;a href="https://doi.org/10.1145/2181196.2181201" target="_blank"&gt;URL&lt;/a&gt; (doi.org) &lt;a href="https://doi.org/10.1145/2181196.2181201" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-mpm-caware.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-mpm-caware.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The case for reconfigurable I/O channels</title><link href="https://anil.recoil.org/news/2012-resolve-fable-1" rel="alternate"></link><published>2012-03-01T00:00:00Z</published><updated>2012-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2012-resolve-fable-1</id><summary type="html">Paper on a new design for reconfigurable IO that copes with heterogenous software/hardware &lt;a href="https://github.com/sos22" target="_blank"&gt;Steven Smith&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Christopher Smowton , &lt;a href="https://cs.brown.edu/people/malte/" target="_blank"&gt;Malte Schwarzkopf&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="http://www.watson.org/~robert/" target="_blank"&gt;Robert M Watson&lt;/a&gt; and &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; . Paper in the rESoLVE workshop at ASPLOS. &lt;a href="https://anil.recoil.org/papers/2012-resolve-fable.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2012-resolve-fable.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Dreaming of an ARM OCaml</title><link href="https://anil.recoil.org/notes/dreamplug-debian-and-ocaml" rel="alternate"></link><published>2012-02-25T00:00:00Z</published><updated>2012-02-25T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/dreamplug-debian-and-ocaml</id><summary type="html">I’ve been meaning to play with &lt;a href="http://www.plugcomputer.org/" target="_blank"&gt;Plug 94Computers&lt;/a&gt; for some time now, as I need a low-power embedded system around the house. I recently bought a &lt;a href="http://soekris.com/products/net6501.html" target="_blank"&gt;Soekris 95Net6501&lt;/a&gt; (a pretty powerful Intel CPU, that even has VT support), but had annoying &lt;a href="http://marc.info/?l=soekris-tech&amp;m=132915532912206&amp;w=2" target="_blank"&gt;issues&lt;/a&gt; getting it working reliably. I ordered an ARM-based &lt;a href="http://www.newit.co.uk/shop/products.php?cat=21" target="_blank"&gt;Dreamplug&lt;/a&gt; as an alternative (and as a bonus, the Dreamplug is 6x cheaper than the Soekris!). Here are my notes on getting it to work. __LINK_4__ Requirements: Aside from the Dreamplug itself, make sure you order the optional JTAG module. This provides a serial console that is essential to getting any development done with it. I also grabbed the extra 16GB Class 10 SLC SD Card, to act as my home directory. You will also need another functional system running Debian (or a VM on your Mac; whatever is easiest)....</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml Labs</title><link href="https://anil.recoil.org/projects/ocamllabs" rel="alternate"></link><published>2012-01-01T00:00:00Z</published><updated>2012-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/ocamllabs</id><summary type="html">OCaml Labs I founded a research group called OCaml Labs at the University of Cambridge, with the goal of pushing OCaml and functional programming forward as a platform, making it a more effective tool for all users (including large-scale industrial deployments), while at the same time growing the appeal of the language, broadening its applicability and popularity. Over a decade, we retrofitted multicore parallelism into the mainline OCaml manager, wrote a popular book on the language, and helped start and grow an OCaml package and tooling ecosystem that is thriving today. Background In my PhD work on &lt;a href="https://anil.recoil.org/projects/melange" target="_blank"&gt;Functional Internet Services&lt;/a&gt; in around 2003-2007, I developed high performance and reliable protocol implementations in OCaml. Subsequently from 2010, I worked on &lt;a href="https://anil.recoil.org/projects/perscon" target="_blank"&gt;Personal Containers&lt;/a&gt; to build high assurance private...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Macro- and Micro-benchmarking in OCaml</title><link href="https://anil.recoil.org/ideas/macro-micro-benchmarking" rel="alternate"></link><published>2012-01-01T00:00:00Z</published><updated>2012-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/macro-micro-benchmarking</id><summary type="html">Macro- and Micro-benchmarking in OCaml This is an idea proposed in 2012 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Sebastian Funk&lt;/a&gt; . Benchmarking involves the measurement of statistics such as run-time, memory allocations, garbage collections in a running program in order to analyze its performance and behaviour. To scientifically evaluate and understand the performance of a program, there is often a cycle of: making performance observations about the program finding a potential hypothesis, i.e. a cause for this performance behaviour making predictions on experiments based on this hypothesis comparing the predictions against the actual benchmark results to evaluate the hypothesis. To be able to do all this, there is a need for an effective and robust framework...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>CUFP 2011 Workshop Report</title><link href="https://anil.recoil.org/news/2011-cufp-scribe-1" rel="alternate"></link><published>2012-01-01T00:00:00Z</published><updated>2012-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2011-cufp-scribe-1</id><summary type="html">Published the scribe's report for CUFP 2011 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/yminsky" target="_blank"&gt;Yaron Minsky&lt;/a&gt; and &lt;a href="https://monkey.org/~marius/" target="_blank"&gt;Marius Eriksen&lt;/a&gt; . Journal paper in &lt;a href="https://www.cambridge.org/core/journals/journal-of-functional-programming/article/cufp-2011-workshop-report/F22A5B087C6DD9A382D518F6DE08477A" target="_blank"&gt;Journal of Functional Programming&lt;/a&gt; (vol 22 issue 1). &lt;a href="https://www.cambridge.org/core/journals/journal-of-functional-programming/article/cufp-2011-workshop-report/F22A5B087C6DD9A382D518F6DE08477A" target="_blank"&gt;URL&lt;/a&gt; (cambridge.org) &lt;a href="https://doi.org/10.1017/S0956796812000020" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2011-cufp-scribe.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Analysis of the Raft Consensus Protocol</title><link href="https://anil.recoil.org/ideas/raft-consensus" rel="alternate"></link><published>2012-01-01T00:00:00Z</published><updated>2012-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/raft-consensus</id><summary type="html">Analysis of the Raft Consensus Protocol This is an idea proposed in 2012 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Heidi Howard&lt;/a&gt; . The Paxos algorithm, despite being synonymous with distributed consensus for a decade, is famously difficult to reason about and implement due to its non-intuitive approach and underspecification. In response, this project aimed to implement and evaluate a framework for constructing fault-tolerant applications, utilising the recently proposed Raft algorithm for distributed consensus. Constructing a simulation framework for our implementation would enable us to evaluate the protocol on everything from understandability and efficiency to correctness and performance in diverse network environments. In retrospect, the complexity of...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OCaml Meeting 2011 - MirageOS</title><link href="https://anil.recoil.org/news/7d949597-b864-4ada-ab1a-81ff8c0463e2-1" rel="alternate"></link><published>2011-10-19T01:00:00Z</published><updated>2011-10-19T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/7d949597-b864-4ada-ab1a-81ff8c0463e2-1</id><summary type="html">At the OCaml Meeting 2011 speaking about MirageOS</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>An outing to CUFP 2011 for Mirage</title><link href="https://anil.recoil.org/notes/cufp-2011-mirage" rel="alternate"></link><published>2011-09-29T01:00:00Z</published><updated>2011-09-29T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/cufp-2011-mirage</id><summary type="html">We signed up to do a MirageOS tutorial at ICFP, which is a bit daunting: we had to get all the embedded ARM hardware and laptop support in shape, as well as make it work for a bunch of discerning hackers.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Extending 64-bit MIPS support for LLVM</title><link href="https://anil.recoil.org/ideas/mips-llvm" rel="alternate"></link><published>2011-08-01T01:00:00Z</published><updated>2011-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/mips-llvm</id><summary type="html">Extending 64-bit MIPS support for LLVM This is an idea proposed in 2011 as a good starter project, and has been completed by &lt;a href="https://github.com/wmorland" target="_blank"&gt;William Morland&lt;/a&gt; . It was co-supervised with &lt;a href="http://www.watson.org/~robert/" target="_blank"&gt;Robert M Watson&lt;/a&gt; . In the summer of 2011, we hosted &lt;a href="https://github.com/wmorland" target="_blank"&gt;William Morland&lt;/a&gt; to do an internship in the Computer Lab just as the &lt;a href="https://www.cl.cam.ac.uk/research/security/ctsrd/" target="_blank"&gt;CTSRD/CHERI&lt;/a&gt; project kicked off. I was interested in MIPS as a potential target for MirageOS, and &lt;a href="http://www.watson.org/~robert/" target="_blank"&gt;Robert M Watson&lt;/a&gt; in using it for the future CHERI processor. &lt;a href="https://github.com/wmorland" target="_blank"&gt;William Morland&lt;/a&gt; hacked on the gxemul MIPS simulator, validating (and often creating) the CHERI test suite against the gxemul simulator. He then shifted gears into the (then experimental) LLVM/MIPS backend, filling in missing instructions and finding bugs via exercising the test suite. His LLVM repository is up at &lt;a href="https://github.com/wmorland/LLVM-Mips" target="_blank"&gt;GitHub&lt;/a&gt; , along with the discussions from back in 2011 on the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Control flow analysis for privilege separation</title><link href="https://anil.recoil.org/ideas/soapp-privgrind" rel="alternate"></link><published>2011-08-01T01:00:00Z</published><updated>2011-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/soapp-privgrind</id><summary type="html">Control flow analysis for privilege separation This is an idea proposed in 2011 as a good starter project, and has been completed by &lt;a href="https://uk.linkedin.com/in/hardingcj" target="_blank"&gt;Chris Harding&lt;/a&gt; and &lt;a href="https://research.google/people/ross-mcilroy/" target="_blank"&gt;Ross McIlroy&lt;/a&gt; . It was co-supervised with &lt;a href="http://www.watson.org/~robert/" target="_blank"&gt;Robert M Watson&lt;/a&gt; . In the summer of 2011, we hosted &lt;a href="https://uk.linkedin.com/in/hardingcj" target="_blank"&gt;Chris Harding&lt;/a&gt; and &lt;a href="https://research.google/people/ross-mcilroy/" target="_blank"&gt;Ross McIlroy&lt;/a&gt; to do an internship in the Computer Lab working just as the &lt;a href="https://www.cl.cam.ac.uk/research/security/ctsrd/soaap/" target="_blank"&gt;CTSRD/SOAPP&lt;/a&gt; project kicked off. &lt;a href="https://research.google/people/ross-mcilroy/" target="_blank"&gt;Ross McIlroy&lt;/a&gt; built a tool called &lt;a href="https://github.com/rmcilroy/Privgrind" target="_blank"&gt;privgrind&lt;/a&gt; , using valgrind that tracks, for all data addresses touched, the list of functions that wrote or read from the address and how much they wrote or read. &lt;a href="https://uk.linkedin.com/in/hardingcj" target="_blank"&gt;Chris Harding&lt;/a&gt; then built a visualiser for this that output the complex control flow graph that results from this as a &lt;a href="https://github.com/chris838/privsep-visualiser" target="_blank"&gt;privsep-visualiser&lt;/a&gt; which would then form a guideline for future compartmentalisation activities. CFG of OpenBSD's syslogd The results of this work...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Dynamics for ML using Meta-Programming</title><link href="https://anil.recoil.org/news/2011-dynamics-ml-1" rel="alternate"></link><published>2011-07-01T01:00:00Z</published><updated>2011-07-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2011-dynamics-ml-1</id><summary type="html">Published dyntype at the Workshop on Generative Technologies &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Journal paper in &lt;a href="https://linkinghub.elsevier.com/retrieve/pii/S1571066111000739" target="_blank"&gt;Electronic Notes in Theoretical Computer Science&lt;/a&gt; (vol 264 issue 5). &lt;a href="https://linkinghub.elsevier.com/retrieve/pii/S1571066111000739" target="_blank"&gt;URL&lt;/a&gt; (linkinghub.elsevier.com) &lt;a href="https://doi.org/10.1016/j.entcs.2011.06.002" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2011-dynamics-ml.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2011-dynamics-ml.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Dynamics for ML using Meta-Programming</title><link href="https://anil.recoil.org/news/2010-dyntype-wgt-1" rel="alternate"></link><published>2011-07-01T01:00:00Z</published><updated>2011-07-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2010-dyntype-wgt-1</id><summary type="html">Paper on statically typed value persistence for OCaml in ENTCS 2011 &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Journal paper in &lt;a href="https://linkinghub.elsevier.com/retrieve/pii/S1571066111000739" target="_blank"&gt;Electronic Notes in Theoretical Computer Science&lt;/a&gt; (vol 264 issue 5). &lt;a href="https://linkinghub.elsevier.com/retrieve/pii/S1571066111000739" target="_blank"&gt;URL&lt;/a&gt; (linkinghub.elsevier.com) &lt;a href="https://doi.org/10.1016/J.ENTCS.2011.06.002" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-dyntype-wgt.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-dyntype-wgt.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Delimited continuations vs Lwt for threads</title><link href="https://mirage.io/blog/delimcc-vs-lwt" rel="alternate"></link><published>2011-06-18T01:00:00Z</published><updated>2011-06-18T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/delimited-cont-vs-lwt</id><summary type="html"></summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>DataCaml: distributed dataflow programming in OCaml</title><link href="https://anil.recoil.org/notes/datacaml-with-ciel" rel="alternate"></link><published>2011-06-11T01:00:00Z</published><updated>2011-06-11T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/datacaml-with-ciel</id><summary type="html">Distributed programming frameworks like &lt;a href="http://wiki.apache.org/hadoop" target="_blank"&gt;Hadoop&lt;/a&gt; and &lt;a href="http://research.microsoft.com/en-us/projects/dryad/" target="_blank"&gt;Dryad&lt;/a&gt; are popular for performing computation over large amounts of data. The reason is programmer convenience: they accept a query expressed in a simple form such as &lt;a href="http://wiki.apache.org/hadoop/HadoopMapReduce" target="_blank"&gt;MapReduce&lt;/a&gt; , and automatically take care of distributing computation to multiple hosts, ensuring the data is available at all nodes that need it, and dealing with host failures and stragglers. A major limitation of Hadoop and Dryad is that they are not well-suited to expressing &lt;a href="http://en.wikipedia.org/wiki/Iterative_method" target="_blank"&gt;iterative 96algorithms&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Dynamic_programming" target="_blank"&gt;dynamic 97programming&lt;/a&gt; problems. These are very commonly found patterns in many algorithms, such as &lt;a href="http://en.wikipedia.org/wiki/K-means_clustering" target="_blank"&gt;k-means clustering&lt;/a&gt; , &lt;a href="http://en.wikipedia.org/wiki/Binomial_options_pricing_model" target="_blank"&gt;binomial options 98pricing&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm" target="_blank"&gt;Smith Waterman&lt;/a&gt; for sequence alignment. Over in the SRG in Cambridge, &lt;a href="http://www.cl.cam.ac.uk/research/srg/netos/ciel/who-we-are/" target="_blank"&gt;we&lt;/a&gt; developed a Turing-powerful distributed execution engine called &lt;a href="http://www.cl.cam.ac.uk/research/srg/netos/ciel/" target="_blank"&gt;CIEL&lt;/a&gt; that addresses...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Reconfigurable Data Processing for Clouds</title><link href="https://anil.recoil.org/news/2011-fccm-cloudfpga-1" rel="alternate"></link><published>2011-05-01T01:00:00Z</published><updated>2011-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2011-fccm-cloudfpga-1</id><summary type="html">Paper on what a Xen+FPGA cloud would look like at FCCM &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://raintown.org" target="_blank"&gt;Satnam Singh&lt;/a&gt; . Paper in the &lt;a href="https://ieeexplore.ieee.org/document/5771265/" target="_blank"&gt;2011 IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines&lt;/a&gt; . &lt;a href="https://ieeexplore.ieee.org/document/5771265/" target="_blank"&gt;URL&lt;/a&gt; (ieeexplore.ieee.org) &lt;a href="https://doi.org/10.1109/FCCM.2011.35" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2011-fccm-cloudfpga.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2011-fccm-cloudfpga.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Functional programming gone wild in the SRG</title><link href="https://anil.recoil.org/notes/srg-fp" rel="alternate"></link><published>2011-04-18T01:00:00Z</published><updated>2011-04-18T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/srg-fp</id><summary type="html">We've been doing loads of OCaml programming in the Systems Research Group, and this blog post lays out some of the things going on. It ranges from OCaml hacking, over to the CIEL distributed execution engine, and even some Haskell hacking ongoing for distributed execution.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Camel Spotting in Paris</title><link href="https://anil.recoil.org/notes/ocaml-users-group" rel="alternate"></link><published>2011-04-15T01:00:00Z</published><updated>2011-04-15T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/ocaml-users-group</id><summary type="html">I'm at the &lt;a href="https://forge.ocamlcore.org/plugins/mediawiki/wiki/ocaml-meeting/index.php/OCamlMeeting2011" target="_blank"&gt;2011 OCaml Users Group&lt;/a&gt; in Paris, reporting on some splendid talks this year. It looked like around 60-70 people in the room, and I had the pleasure of meeting users all the way from &lt;a href="http://ru.linkedin.com/pub/dmitry-bely/4/955/717" target="_blank"&gt;Russia&lt;/a&gt; to &lt;a href="http://ashishagarwal.org/about/" target="_blank"&gt;New York&lt;/a&gt; as well as all the Europeans! Js_of_ocaml First up was &lt;a href="http://www.lsv.ens-cachan.fr/~chambart/" target="_blank"&gt;Pierre Chambart&lt;/a&gt; talking about the &lt;a href="http://ocsigen.org/js_of_ocaml/" target="_blank"&gt;js_of_ocaml&lt;/a&gt; compiler. It compiles OCaml bytecode directly to Javascript, with few external dependencies. Since the bytecode format changes very rarely, it is simpler to maintain than alternatives (such as Jake Donham’s &lt;a href="https://github.com/jaked/ocamljs" target="_blank"&gt;ocamljs&lt;/a&gt; ) that require patching the compiler tool-chain. Javascript objects are mapped to dynamic OCaml objects via a light-weight ## operator, so you can simply write code like: class type window = object method alert : js_string t -&gt; unit meth method name : js_string t prop end let...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>CIEL: A universal execution engine for distributed data-flow computing</title><link href="https://anil.recoil.org/news/2011-nsdi-ciel-1" rel="alternate"></link><published>2011-03-01T00:00:00Z</published><updated>2011-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2011-nsdi-ciel-1</id><summary type="html">Paper on CIEL, a distributed dataflow engine, at USENIX NSDI 2011 &lt;a href="https://research.google/people/derekmurray/?&amp;type=google" target="_blank"&gt;Derek G Murray&lt;/a&gt; , &lt;a href="https://cs.brown.edu/people/malte/" target="_blank"&gt;Malte Schwarzkopf&lt;/a&gt; , Christopher Smowton , &lt;a href="https://github.com/sos22" target="_blank"&gt;Steven Smith&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; . Paper in the &lt;a href="https://www.usenix.org/legacy/event/nsdi11/tech/full_papers/Murray.pdf" target="_blank"&gt;8th USENIX Symposium on Networked Systems Design and Implementation (NSDI 11)&lt;/a&gt; . &lt;a href="https://www.usenix.org/legacy/event/nsdi11/tech/full_papers/Murray.pdf" target="_blank"&gt;URL&lt;/a&gt; (usenix.org) &lt;a href="https://anil.recoil.org/papers/2011-nsdi-ciel.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2011-nsdi-ciel.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Unclouded vision</title><link href="https://anil.recoil.org/news/2011-icdcn-droplets-1" rel="alternate"></link><published>2011-01-01T00:00:00Z</published><updated>2011-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2011-icdcn-droplets-1</id><summary type="html">Paper on a vision for a semi-federated cloud for personal data at ICDCN &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://cs.brown.edu/people/malte/" target="_blank"&gt;Malte Schwarzkopf&lt;/a&gt; , Theodore Hong and &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; . Paper in the proceedings of the 12th International Conference on Distributed Computing and Networking. &lt;a href="https://anil.recoil.org/papers/2011-icdcn-droplets.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2011-icdcn-droplets.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Simulating XMPP Group Communication</title><link href="https://anil.recoil.org/ideas/xmpp-group-comms" rel="alternate"></link><published>2011-01-01T00:00:00Z</published><updated>2011-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/xmpp-group-comms</id><summary type="html">Simulating XMPP Group Communication This is an idea proposed in 2011 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://farhanmannan.com" target="_blank"&gt;Farhān Mannān&lt;/a&gt; . The problem of getting a digital message from one place to another has a staggering range of possible scenarios, constraints and applications. Humans and devices are in constant dialogue, with various constraints and contracts being invisibly maintained. Even the most flippant instant message sets layers of protocols in motion, all straining to resolve identities and propagate information transparently across disparate physical components that must present a logically unified front to users. Subtleties like authentication, encryption and anonymity abound. This project aims to build an OCaml-based simulator (using the ocamlgraph...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Functional ABNF parser generators</title><link href="https://anil.recoil.org/ideas/functional-imap" rel="alternate"></link><published>2011-01-01T00:00:00Z</published><updated>2011-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/functional-imap</id><summary type="html">Functional ABNF parser generators This is an idea proposed in 2011 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://github.com/ns476" target="_blank"&gt;Nicholas Skehin&lt;/a&gt; . Writing internet servers is a difficult proposition. On some levels it seems as though we haven’t made much progress since the 1970s, as popular servers such as Apache and nginx for HTTP, BIND for DNS and qmail for IMAP for many Internet protocols still tend to be written in C. While it is not impossible to write robust software in C, it does tend to be extremely difficult and almost all of the above have suffered from their fair share of security vulnerabilities. With the advent of higher level programming languages, this does not need to be the case any longer. Modern functional languages such as OCaml and Haskell can be competitive...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Building the Xen toolstack using OCaml</title><link href="https://anil.recoil.org/news/43ab3ae0-9ffc-474f-aa02-3cc1139f54d1-1" rel="alternate"></link><published>2010-11-05T00:00:00Z</published><updated>2010-11-05T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/43ab3ae0-9ffc-474f-aa02-3cc1139f54d1-1</id><summary type="html">Talk on building the Xen toolstack using OCaml</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Mirage: A New Multi-Scale Operating System for Clouds and Crowds (2014)</title><link href="https://anil.recoil.org/news/be2f049b-174a-4e5b-b30e-0319793487c7-1" rel="alternate"></link><published>2010-10-25T01:00:00Z</published><updated>2010-10-25T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/be2f049b-174a-4e5b-b30e-0319793487c7-1</id><summary type="html">At LinkedIn giving tech talk about Mirage</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Self-hosting MirageOS website</title><link href="https://anil.recoil.org/notes/mirage-self-hosting" rel="alternate"></link><published>2010-10-11T01:00:00Z</published><updated>2010-10-11T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/mirage-self-hosting</id><summary type="html">I managed to get early &lt;a href="https://mirage.io" target="_blank"&gt;MirageOS&lt;/a&gt; suitably feature-complete enough that we could run the Mirage website using Mirage. This was all very satisfying after hacking on the &lt;a href="https://github.com/mirage/mirage-tcpip" target="_blank"&gt;TCP/IP&lt;/a&gt; stack for ages.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The personal container, or your life in bits</title><link href="https://anil.recoil.org/news/de10-perscon-1" rel="alternate"></link><published>2010-10-01T01:00:00Z</published><updated>2010-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/de10-perscon-1</id><summary type="html">Paper on personal containers for data management at the UK Digital Economy meeting &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="https://www.nottingham.ac.uk/computerscience/people/chris.greenhalgh" target="_blank"&gt;Chris Greenhalgh&lt;/a&gt; , &lt;a href="https://drdrmc.github.io/about/" target="_blank"&gt;Derek McAuley&lt;/a&gt; , &lt;a href="https://www.nottingham.ac.uk/psychology/people/alexa.spence" target="_blank"&gt;Alexa Spence&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; and &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; . Journal paper in &lt;a href="http://mort.io/publications/pdf/de10-perscon.pdf" target="_blank"&gt;Digital Futures&lt;/a&gt; (vol 10). &lt;a href="http://mort.io/publications/pdf/de10-perscon.pdf" target="_blank"&gt;URL&lt;/a&gt; (mort.io) &lt;a href="https://anil.recoil.org/papers/de10-perscon.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/de10-perscon.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using functional programming within an industrial product group: perspectives and perceptions</title><link href="https://anil.recoil.org/news/2010-icfp-xen-1" rel="alternate"></link><published>2010-09-01T01:00:00Z</published><updated>2010-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2010-icfp-xen-1</id><summary type="html">Paper on our experiences with writing the Xen control stack in OCaml at ICFP 2010 &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; , &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/1863543.1863557" target="_blank"&gt;proceedings of the 15th ACM SIGPLAN international conference on Functional programming&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/1863543.1863557" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/1863543.1863557" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-icfp-xen.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-icfp-xen.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Turning Down the LAMP: Software Specialisation for the Cloud</title><link href="https://anil.recoil.org/news/4957325f-d7f5-4a29-95b6-a1e1f61ea5cf-1" rel="alternate"></link><published>2010-06-22T01:00:00Z</published><updated>2010-06-22T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/4957325f-d7f5-4a29-95b6-a1e1f61ea5cf-1</id><summary type="html">At HotCloud for the first talk about MirageOS</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Turning Down the LAMP: Software Specialisation for the Cloud</title><link href="https://anil.recoil.org/news/2010-hotcloud-lamp-1" rel="alternate"></link><published>2010-06-01T01:00:00Z</published><updated>2010-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2010-hotcloud-lamp-1</id><summary type="html">Workshop paper on the early MirageOS architecture and evaluation at HotCloud 2010 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="mailto:ripduman.sohan@gmail.com" target="_blank"&gt;Ripduman Sohan&lt;/a&gt; , &lt;a href="https://github.com/samoht" target="_blank"&gt;Thomas Gazagnaire&lt;/a&gt; , &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; , &lt;a href="mailto:tjd@phlegethon.org" target="_blank"&gt;Tim Deegan&lt;/a&gt; , &lt;a href="https://drdrmc.github.io/about/" target="_blank"&gt;Derek McAuley&lt;/a&gt; and &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; . Paper in the &lt;a href="https://www.usenix.org/conference/hotcloud-10/turning-down-lamp-software-specialisation-cloud" target="_blank"&gt;2nd USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 10)&lt;/a&gt; . &lt;a href="https://www.usenix.org/conference/hotcloud-10/turning-down-lamp-software-specialisation-cloud" target="_blank"&gt;URL&lt;/a&gt; (usenix.org) &lt;a href="https://anil.recoil.org/papers/2010-hotcloud-lamp.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-hotcloud-lamp.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Creating high-performance, statically type-safe network applications</title><link href="https://anil.recoil.org/news/anil-phd-thesis-2" rel="alternate"></link><published>2010-05-01T01:00:00Z</published><updated>2010-05-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/anil-phd-thesis-2</id><summary type="html">My PhD thesis is now also published as a print book &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Technical report (UCAM-CL-TR-775) at &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-775.pdf" target="_blank"&gt;University of Cambridge, Computer Laboratory&lt;/a&gt; . &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-775.pdf" target="_blank"&gt;URL&lt;/a&gt; (cl.cam.ac.uk) &lt;a href="https://doi.org/10.48456/tr-775" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/anil-phd-thesis.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/anil-phd-thesis.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Yurts for Digital Nomads</title><link href="https://anil.recoil.org/notes/yurts-for-digital-nomads" rel="alternate"></link><published>2010-04-29T01:00:00Z</published><updated>2010-04-29T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/yurts-for-digital-nomads</id><summary type="html">The App Engine data collector for Personal Containers is coming on nicely, and is on track for an alpha preview release &lt;a href="http://github.com/avsm/perscon/blob/master/README.md" target="_blank"&gt;fairly soon&lt;/a&gt; . Working with AppEngine has been interesting; it’s got excellent availability and you can’t beat the price (free), but coding robust Python that doesn’t trip over the tight resource limits for individual requests, asynchronous tasks and queries is tricky. While it is good for small records such as my &lt;a href="http://github.com/avsm/perscon/tree/master/plugins/iPhone/" target="_blank"&gt;iPhone&lt;/a&gt; or Find My iPhone &lt;a href="http://github.com/avsm/perscon/blob/master/appengine/perscon/drivers/fmi.py" target="_blank"&gt;GPS traces&lt;/a&gt; traces, it doesn’t work so well with my gigabytes of photographs or decades of e-mail. This confirmed our earlier intuition that there is no one perfect solution for personal data handling; instead, we need to embrace diversity and construct an infrastructure that can cope with change over the coming decades. Mobile...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Pulling together a user interface</title><link href="https://anil.recoil.org/notes/uiprototype" rel="alternate"></link><published>2010-04-15T01:00:00Z</published><updated>2010-04-15T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/uiprototype</id><summary type="html">We’ve been &lt;a href="http://github.com/avsm/perscon" target="_blank"&gt;hacking&lt;/a&gt; away on fleshing out the &lt;a href="http://code.google.com/appengine" target="_blank"&gt;App Engine&lt;/a&gt; node for personal containers. We’re building this node first because, crucially, deploying an App Engine VM is free to anyone with a Google account. The service itself is limited since you can only respond to HTTP or XMPP requests and do HTTP fetches, and so its primary use is as an always-on data collection service with a webmail-style UI written using &lt;a href="http://www.extjs.com/" target="_blank"&gt;extjs&lt;/a&gt; . Personal containers gather data from a wide variety of sources, and normalise them into a format which understands people (address book entries, with a set of services such as e-mail, phone, IM and online IDs), places (GPS, WOEID), media (photos, movies) and messages (Tweets, emails, Facebook messages). I’ll post more about the data model behind personal containers in a...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Multiscale not multicore: efficient heterogeneous cloud computing</title><link href="https://anil.recoil.org/news/2010-bcs-visions-1" rel="alternate"></link><published>2010-04-01T01:00:00Z</published><updated>2010-04-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2010-bcs-visions-1</id><summary type="html">Paper on our vision for multiscale programming at the BCS Visions 2010 conference &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/mor1" target="_blank"&gt;Richard Mortier&lt;/a&gt; , &lt;a href="mailto:jon.crowcroft@cl.cam.ac.uk" target="_blank"&gt;Jon Crowcroft&lt;/a&gt; and &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.5555/1811182.1811191" target="_blank"&gt;proceedings of the 2010 ACM-BCS Visions of Computer Science Conference&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.5555/1811182.1811191" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://anil.recoil.org/papers/2010-bcs-visions.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-bcs-visions.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Opening a website</title><link href="https://anil.recoil.org/notes/opening-a-website" rel="alternate"></link><published>2010-03-29T01:00:00Z</published><updated>2010-03-29T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/opening-a-website</id><summary type="html">We've been working away at building a new type of database to help individuals keep reigns on their ever-increasing personal digital information. The first prototypes run freely on &lt;a href="https://web.archive.org/web/20110509135538/http://code.google.com/appengine" target="_blank"&gt;Google App Engine&lt;/a&gt; to gather your data behind-the-scenes, and we are working on more advanced versions that run on embedded devices and the cloud. If you’re interested in keeping track of your personal data, you can start off with the &lt;a href="https://web.archive.org/web/20110509135538/http://perscon.net/install.html" target="_blank"&gt;installation&lt;/a&gt; instructions to clone your own version. After that, read up on the &lt;a href="https://web.archive.org/web/20110509135538/http://perscon.net/design.html" target="_blank"&gt;design&lt;/a&gt; of the system (which is still changing as we research new ideas around it). When you find something you want to fix, or add a new plugin data source, just clone the &lt;a href="https://github.com/avsm/perscon" target="_blank"&gt;code&lt;/a&gt; and send us back fixes!</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Privacy Butler: A Personal Privacy Rights Manager for Online Presence</title><link href="https://anil.recoil.org/news/2010-smarte-privacybutler-1" rel="alternate"></link><published>2010-03-01T00:00:00Z</published><updated>2010-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2010-smarte-privacybutler-1</id><summary type="html">Paper on privacy butler services for more private data management Ryan Wishart , Domenico Corapi and Morris Sloman . Paper in the &lt;a href="https://ieeexplore.ieee.org/document/5470519" target="_blank"&gt;2010 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops)&lt;/a&gt; . &lt;a href="https://ieeexplore.ieee.org/document/5470519" target="_blank"&gt;URL&lt;/a&gt; (ieeexplore.ieee.org) &lt;a href="https://doi.org/10.1109/PERCOMW.2010.5470519" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-smarte-privacybutler.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2010-smarte-privacybutler.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Creating high-performance, statically type-safe network applications</title><link href="https://anil.recoil.org/news/anil-phd-thesis-1" rel="alternate"></link><published>2010-03-01T00:00:00Z</published><updated>2010-03-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/anil-phd-thesis-1</id><summary type="html">PhD thesis now available as a technical report &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Technical report (UCAM-CL-TR-775) at &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-775.pdf" target="_blank"&gt;University of Cambridge, Computer Laboratory&lt;/a&gt; . &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-775.pdf" target="_blank"&gt;URL&lt;/a&gt; (cl.cam.ac.uk) &lt;a href="https://doi.org/10.48456/tr-775" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/anil-phd-thesis.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/anil-phd-thesis.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Unikernels</title><link href="https://anil.recoil.org/projects/unikernels" rel="alternate"></link><published>2010-01-01T00:00:00Z</published><updated>2010-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/unikernels</id><summary type="html">Unikernels I proposed the concept of "unikernels" -- single-purpose appliances that are compile-time specialised into standalone bootable kernels, and sealed against modification when deployed to a cloud platform. In return they offer significant reduction in image sizes, improved efficiency and security, and reduce operational costs. I also co-founded the MirageOS project which is one of the first complete unikernel frameworks, and also integrated them to create the Docker for Desktop apps that are used by hundreds of millions of users daily. While working on &lt;a href="https://anil.recoil.org/projects/perscon" target="_blank"&gt;Personal Containers&lt;/a&gt; in late 2008, I had a need to run lots of distributed edge nodes holding personal data. The state of computer security is generally a disaster when it comes to leaving software unupgraded for even a few months, so...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Functional Reactive Web Applications</title><link href="https://anil.recoil.org/ideas/frp-web-ocaml" rel="alternate"></link><published>2010-01-01T00:00:00Z</published><updated>2010-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/ideas/frp-web-ocaml</id><summary type="html">Functional Reactive Web Applications This is an idea proposed in 2010 as a Cambridge Computer Science Part II project, and has been completed by &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Henry Hughes&lt;/a&gt; . There are a variety of programming languages which can be used to create desktop applications, and each provides different tradeoffs. This could be anything from the runtime guarantees the programming language provides to rapid development and prototyping. It does not make much difference to the user which of these languages was used, as all they want to do is run their favourite application reliably. When writing an application for the web, however, the programmer is forced to use a specific set of APIs that come under the umbrella term AJAX (Asynchronous JavaScript and XML). AJAX involves writing client-side code in JavaScript and...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Combining Static Model Checking with Dynamic Enforcement Using the Statecall Policy Language</title><link href="https://anil.recoil.org/news/2009-icfem-spl-1" rel="alternate"></link><published>2009-11-01T00:00:00Z</published><updated>2009-11-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2009-icfem-spl-1</id><summary type="html">Paper on a DSL for specifying temporal protocol automata at ICFEM 2009 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Paper in the &lt;a href="http://link.springer.com/10.1007/978-3-642-10373-5_23" target="_blank"&gt;formal Methods and Software Engineering&lt;/a&gt; . &lt;a href="http://link.springer.com/10.1007/978-3-642-10373-5_23" target="_blank"&gt;URL&lt;/a&gt; (link.springer.com) &lt;a href="https://doi.org/10.1007/978-3-642-10373-5_23" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2009-icfem-spl.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2009-icfem-spl.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Personal Containers</title><link href="https://anil.recoil.org/projects/perscon" rel="alternate"></link><published>2009-01-01T00:00:00Z</published><updated>2009-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/perscon</id><summary type="html">Personal Containers As cloud computing empowered the creation of vast data silos, I investigated how decentralised technologies might be deployed to allow individuals more vertical control over their own data. Personal containers was the prototype we built to learn how to stem the flow of our information out to the ad-driven social tarpits. We also deployed personal containers in an experimental data locker system at the University of Cambridge in order to incentivise lower-carbon travel schemes. I've had a passion for self-hosted, decentralised computing for many years since &lt;a href="https://nick.recoil.org" target="_blank"&gt;Nick Ludlam&lt;/a&gt; and I set up the recoil.org collective in the late 90s. In late 2008, I'd been working on early cloud computing as part of the &lt;a href="https://anil.recoil.org/projects/xen" target="_blank"&gt;Xen Hypervisor&lt;/a&gt; project and already seeing the rapid rise of centralised data...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Peeking under the hood of High Availability</title><link href="https://anil.recoil.org/notes/peeking-under-the-hood-of-high-availability" rel="alternate"></link><published>2008-09-17T01:00:00Z</published><updated>2008-09-17T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/peeking-under-the-hood-of-high-availability</id><summary type="html">Well, the big launch of &lt;a href="http://www.xenserver5.com/" target="_blank"&gt;XenServer 5&lt;/a&gt; has gone smoothly, and with it have arrived a flood of questions about how exactly the new &lt;a href="https://web.archive.org/web/20081121042533/https://xenserver5.com/ha.php" target="_blank"&gt;High Availability&lt;/a&gt; functionality works. I’ll use this post to explain the overall architecture of HA in XenServer 5, and also how some of the fault detection and failure planning works. Fundamentally, HA is about making sure important VMs are always running on a resource pool. There are two aspects to this: reliably detecting host failure , and computing a failure plan to deal with swift recovery. Detecting host failure reliably is difficult since you need to remotely distinguish between a host disappearing for a while versus exploding in a ball of flames. If we mistakenly decide that a master host has broken down and elect a new master in its place, there may be...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Shedding light on XenApp on XenServer performance tuning</title><link href="https://anil.recoil.org/notes/shedding-some-light-on-xenapp-on-xenserver-performance-tuning" rel="alternate"></link><published>2008-08-04T01:00:00Z</published><updated>2008-08-04T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/shedding-some-light-on-xenapp-on-xenserver-performance-tuning</id><summary type="html">You won’t be surprised to hear that we spend a lot of time improving &lt;a href="http://www.citrix.com/XenApp" target="_blank"&gt;XenApp&lt;/a&gt; performance when running on &lt;a href="http://www.citrix.com/XenServer" target="_blank"&gt;XenServer&lt;/a&gt; . Although there are some good benchmark comparisons available (such as the &lt;a href="http://community.citrix.com/x/_4ENAg" target="_blank"&gt;Tolly 99Group&lt;/a&gt; report), I still get a lot of customers asking about what the “secret sauce” is. I sat down with George Dunlap, the lead XenServer performance engineer to chat about the very first optimisation we did back in XenServer 4.0 last year. Before we dive in, we first need to explain how a normal operating system handles memory. George explains: Modern desktop and server processors don’t access memory directly using its physical address. They use ‘ &lt;a href="http://en.wikipedia.org/Virtual_Memory" target="_blank"&gt;virtual 100memory&lt;/a&gt; ’ to separate the addresses that processes use to read and write memory from the actual memory itself. This allows operating systems to...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Installing Ubuntu on XenServer</title><link href="https://anil.recoil.org/notes/installing-ubuntu-on-xenserver" rel="alternate"></link><published>2008-07-02T01:00:00Z</published><updated>2008-07-02T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/installing-ubuntu-on-xenserver</id><summary type="html">I thought I’d kick off my Citrix blog with a question I get pretty often from Linux enthusiasts: how to install unsupported Linux distributions on &lt;a href="https://xenserver.com" target="_blank"&gt;XenServer&lt;/a&gt; 4.1. The most common solution people find is to use the "Other Install Media" template, insert the distribution installation CD, and find that the mouse cursor doesn’t work when they boot into X11. The reason for this is that they are using the hardware-assisted emulation mode of installing Linux. In this mode (dubbed “HVM”), all input and output is emulated, and in particular the mouse interface uses the USB tablet interface. If the distribution doesn’t include a driver for USB tablets, then no mouse will appear. Windows guests run at high-speed in HVM mode due to the installation of the XenServer tools which install &lt;a href="http://xen.org/files/summit_3/xen-pv-drivers.pdf" target="_blank"&gt;high-speed 101drivers&lt;/a&gt; ,...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Enhancing web browsing security on public terminals using mobile composition</title><link href="https://anil.recoil.org/news/2008-mobisys-splittrust-1" rel="alternate"></link><published>2008-06-01T01:00:00Z</published><updated>2008-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2008-mobisys-splittrust-1</id><summary type="html">Paper on splitting trust between smartphones and webrowsers at MobiSys 2008 &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Roy Want and Trevor Pering . Paper in the &lt;a href="https://dl.acm.org/doi/10.1145/1378600.1378612" target="_blank"&gt;proceedings of the 6th international conference on Mobile systems, applications, and services&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.1145/1378600.1378612" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/1378600.1378612" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2008-mobisys-splittrust.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2008-mobisys-splittrust.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Melange: creating a "functional" internet</title><link href="https://anil.recoil.org/news/2007-eurosys-melange-1" rel="alternate"></link><published>2007-06-01T01:00:00Z</published><updated>2007-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2007-eurosys-melange-1</id><summary type="html">Won best student paper for my PhD work on a high-performance functional packet parsing DSL at Eurosys 2007! &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://hoiho.net" target="_blank"&gt;Alex Ho&lt;/a&gt; , &lt;a href="mailto:tjd@phlegethon.org" target="_blank"&gt;Tim Deegan&lt;/a&gt; , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; and &lt;a href="mailto:ripduman.sohan@gmail.com" target="_blank"&gt;Ripduman Sohan&lt;/a&gt; . Journal paper in &lt;a href="https://dl.acm.org/doi/10.1145/1272998.1273009" target="_blank"&gt;ACM SIGOPS Operating Systems Review&lt;/a&gt; (vol 41 issue 3). &lt;a href="https://dl.acm.org/doi/10.1145/1272998.1273009" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://doi.org/10.1145/1272998.1273009" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2007-eurosys-melange.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2007-eurosys-melange.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Interacting with mobile services: an evaluation of camera-phones and visual tags</title><link href="https://anil.recoil.org/news/2006-puc-tags-1" rel="alternate"></link><published>2007-02-01T00:00:00Z</published><updated>2007-02-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2006-puc-tags-1</id><summary type="html">Journal paper on interacting with mobile services using camera-phones &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; , &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; , &lt;a href="mailto:eben@phlegethon.org" target="_blank"&gt;Eben Upton&lt;/a&gt; and &lt;a href="mailto:alan.blackwell@cl.cam.ac.uk" target="_blank"&gt;Alan Blackwell&lt;/a&gt; . Journal paper in &lt;a href="https://doi.org/10.1007/s00779-006-0064-9" target="_blank"&gt;Personal and Ubiquitous Computing&lt;/a&gt; (vol 11 issue 2). &lt;a href="https://doi.org/10.1007/s00779-006-0064-9" target="_blank"&gt;URL&lt;/a&gt; (doi.org) &lt;a href="https://doi.org/10.1007/s00779-006-0064-9" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2006-puc-tags.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2006-puc-tags.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Fighting Crimeware: An Architecture for Split-Trust Web Applications</title><link href="https://anil.recoil.org/news/2006-fighting-crimeware-1" rel="alternate"></link><published>2006-04-01T01:00:00Z</published><updated>2006-04-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2006-fighting-crimeware-1</id><summary type="html">New paper &lt;a href="https://anil.recoil.org/papers/2006-fighting-crimeware" target="_blank"&gt;Fighting Crimeware: An Architecture for Split-Trust Web Applications&lt;/a&gt; available &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Roy Want , Trevor Pering and &lt;a href="https://ieeexplore.ieee.org/author/37549829000" target="_blank"&gt;John Light&lt;/a&gt; . Technical report (IRC-TR-06-053) at Intel Research. &lt;a href="https://anil.recoil.org/papers/2006-fighting-crimeware.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2006-fighting-crimeware.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>SPLAT: A Tool for Model-Checking and Dynamically-Enforcing Abstractions</title><link href="https://anil.recoil.org/news/2005-spin-splat-1" rel="alternate"></link><published>2005-08-01T01:00:00Z</published><updated>2005-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2005-spin-splat-1</id><summary type="html">Workshop paper on temporal automata for protocol specifications at SPIN 2005 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; and &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; . Paper in the &lt;a href="http://link.springer.com/10.1007/11537328_23" target="_blank"&gt;model Checking Software&lt;/a&gt; . &lt;a href="http://link.springer.com/10.1007/11537328_23" target="_blank"&gt;URL&lt;/a&gt; (link.springer.com) &lt;a href="https://doi.org/10.1007/11537328_23" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-spin-splat.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-spin-splat.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Ubiquitious Computing needs to catch up with Ubiquitous Media</title><link href="https://anil.recoil.org/news/2005-ubiapp-ubimedia-1" rel="alternate"></link><published>2005-07-01T01:00:00Z</published><updated>2005-07-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2005-ubiapp-ubimedia-1</id><summary type="html">Position paper on ubiquitous computing approaches to emerging stream media appliances &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; and Kasim Rehman . Journal paper in &lt;a href="https://ieeexplore.ieee.org/document/1495397/" target="_blank"&gt;IEEE Pervasive Computing&lt;/a&gt; (vol 4 issue 3). &lt;a href="https://ieeexplore.ieee.org/document/1495397/" target="_blank"&gt;URL&lt;/a&gt; (ieeexplore.ieee.org) &lt;a href="https://doi.org/10.1109/MPRV.2005.69" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-ubiapp-ubimedia.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-ubiapp-ubimedia.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Audio networking: the forgotten wireless technology</title><link href="https://anil.recoil.org/news/2005-ieee-audio-1" rel="alternate"></link><published>2005-07-01T01:00:00Z</published><updated>2005-07-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2005-ieee-audio-1</id><summary type="html">New paper &lt;a href="https://anil.recoil.org/papers/2005-ieee-audio" target="_blank"&gt;Audio networking: the forgotten wireless technology&lt;/a&gt; available &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; and &lt;a href="https://liquidx.net" target="_blank"&gt;Alastair Tse&lt;/a&gt; . Journal paper in &lt;a href="https://ieeexplore.ieee.org/document/1495392/" target="_blank"&gt;IEEE Pervasive Computing&lt;/a&gt; (vol 4 issue 3). &lt;a href="https://ieeexplore.ieee.org/document/1495392/" target="_blank"&gt;URL&lt;/a&gt; (ieeexplore.ieee.org) &lt;a href="https://doi.org/10.1109/MPRV.2005.50" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-ieee-audio.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-ieee-audio.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>A Study of Bluetooth Propagation Using Accurate Indoor Location Mapping</title><link href="https://anil.recoil.org/news/2005-ubicomp-bluetooth-1" rel="alternate"></link><published>2005-07-01T01:00:00Z</published><updated>2005-07-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2005-ubicomp-bluetooth-1</id><summary type="html">Ubicomp paper on a study of indoor bluetooth propagation using the Active Bat system &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://liquidx.net" target="_blank"&gt;Alastair Tse&lt;/a&gt; . Paper in the ubiComp 2005: Ubiquitous Computing. &lt;a href="https://doi.org/10.1007/11551201_7" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-ubicomp-bluetooth.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-ubicomp-bluetooth.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>OpenBSD C2K5 thoughts</title><link href="https://anil.recoil.org/notes/c2k5-thoughts" rel="alternate"></link><published>2005-06-04T01:00:00Z</published><updated>2005-06-04T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/c2k5-thoughts</id><summary type="html">Finally had some time to get back from the OpenBSD hackathon and take stock of what I worked on. It was pretty interesting one this year, as I went without having much idea of what to work on (unlike last year, when I had a mad backlog to catch up on). Some stuff I did during the week included: Clean up the &lt;a href="http://www.openbsd.org/cgi-bin/cvsweb.cgi/src/usr.bin/ssh/atomicio.c" target="_blank"&gt;atomicio&lt;/a&gt; interface used in &lt;a href="http://www.openssh.com" target="_blank"&gt;OpenSSH&lt;/a&gt; and &lt;a href="http://www.openbsd.org/cgi-bin/man.cgi?query=nc" target="_blank"&gt;nc(1)&lt;/a&gt; to provide simpler semantics. Error checking from read/write functions are a real headache in C, as the functions return -1 on error, which means a signed ssize_t is returned. However, they accept an unsigned value as the size of the buffer to process, which means they could potentially return a value outside the range of the return value. This means you have to check if the return is -1 , which indicates an error, and otherwise...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>On the challenge of delivering high-performance, dependable, model-checked internet servers</title><link href="https://anil.recoil.org/news/2005-hotdep-spl-1" rel="alternate"></link><published>2005-06-01T01:00:00Z</published><updated>2005-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2005-hotdep-spl-1</id><summary type="html">Paper on temporal automata for protocol implementations at HotDep 2005 &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; . Paper in the &lt;a href="https://dl.acm.org/doi/10.5555/1973400.1973406" target="_blank"&gt;proceedings of the First Conference on Hot Topics in System Dependability&lt;/a&gt; . &lt;a href="https://dl.acm.org/doi/10.5555/1973400.1973406" target="_blank"&gt;URL&lt;/a&gt; (dl.acm.org) &lt;a href="https://anil.recoil.org/papers/2005-hotdep-spl.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-hotdep-spl.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using visual tags to bypass Bluetooth device discovery</title><link href="https://anil.recoil.org/news/2005-mc2r-visualtags-1" rel="alternate"></link><published>2005-01-01T00:00:00Z</published><updated>2005-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2005-mc2r-visualtags-1</id><summary type="html">While designing &lt;a href="https://anil.recoil.org/projects/ubiqinteraction" target="_blank"&gt;Spotcodes&lt;/a&gt; , we realised that visual tags are a much better mechanism to advertise security keys to users instead of the error prone and much more difficult to use Bluetooth device discovery protocol. We duly implemented the direct system, and conducted a user study with &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; who was down the corridor working with the HCI group in the Computer Lab. The resulting journal paper on our SpotCode visual tag login system is a fun blend of systems and human factors. We do not believe that printed tags are competing with RFID and NFC for the prize of "universally accepted connection establishment technology". Instead we observe that each offers complementary tradeoffs in terms of cost, data capacity, interaction distance, client-device compatibility and visibility. We...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using smart phones to access site-specific services</title><link href="https://anil.recoil.org/news/2005-ieee-smartphones-1" rel="alternate"></link><published>2005-01-01T00:00:00Z</published><updated>2005-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2005-ieee-smartphones-1</id><summary type="html">Article on using cameraphones to access site-specific services in IEEE Pervasive Computing &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; , &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; . Journal paper in &lt;a href="https://ieeexplore.ieee.org/document/1427650/" target="_blank"&gt;IEEE Pervasive Computing&lt;/a&gt; (vol 4 issue 2). &lt;a href="https://ieeexplore.ieee.org/document/1427650/" target="_blank"&gt;URL&lt;/a&gt; (ieeexplore.ieee.org) &lt;a href="https://doi.org/10.1109/MPRV.2005.44" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-ieee-smartphones.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-ieee-smartphones.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The Broadband Phone Network: Experiences with Context-Aware Telephony</title><link href="https://anil.recoil.org/news/2005-bbphone-1" rel="alternate"></link><published>2005-01-01T00:00:00Z</published><updated>2005-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2005-bbphone-1</id><summary type="html">Report on our hacking on the AT&amp;T Broadband Phone &lt;a href="mailto:ripduman.sohan@gmail.com" target="_blank"&gt;Ripduman Sohan&lt;/a&gt; , &lt;a href="https://liquidx.net" target="_blank"&gt;Alastair Tse&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Technical report (CUED/F INFENG/TR.533) at &lt;a href="https://cam-orl.co.uk/bphone/" target="_blank"&gt;Cambridge University Engineering Department&lt;/a&gt; . &lt;a href="https://cam-orl.co.uk/bphone/" target="_blank"&gt;URL&lt;/a&gt; (cam-orl.co.uk) &lt;a href="https://anil.recoil.org/papers/2005-bbphone.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2005-bbphone.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using camera-phones to interact with context-aware mobile services</title><link href="https://anil.recoil.org/news/2004-spotcodes-1" rel="alternate"></link><published>2004-12-01T00:00:00Z</published><updated>2004-12-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2004-spotcodes-1</id><summary type="html">A technical report is now available on our SpotCode visual tag system, and includes a user study lead by &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; which tested its benefits against conventional mobile interfaces. &lt;a href="https://www.cst.cam.ac.uk/people/eft20" target="_blank"&gt;Eleanor Toye Scott&lt;/a&gt; , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; , &lt;a href="mailto:alan.blackwell@cl.cam.ac.uk" target="_blank"&gt;Alan Blackwell&lt;/a&gt; and &lt;a href="mailto:eben@phlegethon.org" target="_blank"&gt;Eben Upton&lt;/a&gt; . Technical report (UCAM-CL-TR-609) at &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-609.html" target="_blank"&gt;University of Cambridge, Computer Laboratory&lt;/a&gt; . &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-609.html" target="_blank"&gt;URL&lt;/a&gt; (cl.cam.ac.uk) &lt;a href="https://doi.org/10.48456/tr-609" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2004-spotcodes.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2004-spotcodes.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Connecting Paper and Online Worlds by Cellphone</title><link href="https://anil.recoil.org/notes/spotcodes-nytimes" rel="alternate"></link><published>2004-10-07T01:00:00Z</published><updated>2004-10-07T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/spotcodes-nytimes</id><summary type="html">In what is definitely our most exciting media coverage yet, &lt;a href="https://anil.recoil.org/projects/ubiqinteraction" target="_blank"&gt;Spotcodes&lt;/a&gt; are featured in the New York Times! When you think of a public information kiosk, your mental picture might include greasy touch screens, broken trackballs and frozen monitors. But researchers at an Intel-financed lab at Cambridge University have developed a way to replace displays like those with something portable, not to mention personal: a cellphone's built-in camera and screen. They and others plan to use commercially available hardware to turn the camera-equipped cellphone into a mouse, remote control, keyboard and more. -- &lt;a href="https://www.nytimes.com/2004/10/07/technology/circuits/connecting-paper-and-online-worlds-by-cellphone-camera.html" target="_blank"&gt;New York Times&lt;/a&gt; &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; got cited as I wasn't in the department that day when the journalist showed up at Intel Research! "Instead of having all the hassle of putting things out in the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Using Camera-Phones to Enhance Human-Computer Interaction</title><link href="https://anil.recoil.org/news/2004-ubicomp-camera-1" rel="alternate"></link><published>2004-09-01T01:00:00Z</published><updated>2004-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/2004-ubicomp-camera-1</id><summary type="html">We gave a demo at &lt;a href="https://www.ubicomp.org/ubicomp2004/" target="_blank"&gt;UbiComp 2004&lt;/a&gt; all the way in Tokyo on our SpotCode visual tag system. It went very well, including some time to do some sightseeing in Japan and visit the sumo wrestling championships! &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; , &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; and &lt;a href="mailto:eben@phlegethon.org" target="_blank"&gt;Eben Upton&lt;/a&gt; . Paper in the &lt;a href="https://ubicomp.org/ubicomp2004/adjunct/demos/madhavapeddy.pdf" target="_blank"&gt;adjunct Proceedings of Ubicomp 2004 (Demo Track)&lt;/a&gt; . &lt;a href="https://ubicomp.org/ubicomp2004/adjunct/demos/madhavapeddy.pdf" target="_blank"&gt;URL&lt;/a&gt; (ubicomp.org) &lt;a href="https://anil.recoil.org/papers/2004-ubicomp-camera.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/2004-ubicomp-camera.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>MIT Technology review covers SpotCodes</title><link href="https://anil.recoil.org/notes/mit-spotcodes" rel="alternate"></link><published>2004-09-01T01:00:00Z</published><updated>2004-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/mit-spotcodes</id><summary type="html">We got more coverage of &lt;a href="https://en.wikipedia.org/wiki/ShotCode" target="_blank"&gt;SpotCodes&lt;/a&gt; and our startup &lt;a href="https://anil.recoil.org/projects/ubiqinteraction" target="_blank"&gt;High Energy Magic&lt;/a&gt; , leading to lots of interest in the technology. Public touch-screen displays such as airport check-in kiosks aren’t known for having versatile interfaces; they usually lack keyboards or pointing devices, limiting users to a few navigational buttons. But new software from High Energy Magic of Cambridge, England, turns a camera phone with a Bluetooth wireless connection into a portable mouse and keyboard that can take full command of public displays, doing away with the old touch screen. Working with Intel’s Cambridge research lab, High Energy Magic has developed a set of circular symbols, similar in concept to bar codes, that can be displayed by public terminals. Camera phones loaded with the company’s software can translate...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Exploring tradeoffs in location-aware gaming using smartphones</title><link href="https://anil.recoil.org/news/netgames04-ctf-1" rel="alternate"></link><published>2004-08-01T01:00:00Z</published><updated>2004-08-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/netgames04-ctf-1</id><summary type="html">The summer of 2004 was sufficient full of procrastination that the members of the &lt;a href="https://web.archive.org/web/20041212123550/http://sn17.org/" target="_blank"&gt;SN17 collective&lt;/a&gt; in the Computer Lab decided to build a computer game. But it wasn't enough to just play the game on our phones -- instead, we combined all the public displays in the corridors, and then added in a cutting-edge 5cm-accurate &lt;a href="https://en.wikipedia.org/wiki/Active_Bat" target="_blank"&gt;ActiveBAT&lt;/a&gt; , and built a Symbian-based Capture The Flag game where we all had to run around and tag each other physically while tracking the flag virtually. Was it mad? Yes. Was it fun? Yes. Did it get us a paper into the SIGCOMM NetGames workshop? Yes! Our novel contributions include: (i) creating a fast-paced, close quarters, location-aware game, (ii) exploring the tradeoffs between the accuracy of a location system, the I/O capabilities of current mobile hardware, and the...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>From the prawn of time</title><link href="https://anil.recoil.org/notes/wired-spotcode" rel="alternate"></link><published>2004-06-07T01:00:00Z</published><updated>2004-06-07T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/wired-spotcode</id><summary type="html">I gave a talk at &lt;a href="https://web.archive.org/web/20050204012820/http://www.quernstone.com/notcon04/" target="_blank"&gt;NotCon 2004&lt;/a&gt; on SpotCodes, and it got covered in Wired Magazine! Of course, I shared the stage with a man telling the time &lt;a href="https://www.wired.com/2004/06/from-the-prawn-of-time/" target="_blank"&gt;via a prawn sandwich&lt;/a&gt; , so the limelight wasn't all just mine... Anil Madhavapeddy and his colleagues at High Energy Magic think camera phones should be used for more than taking bad pictures. The company's SpotCode reader software lets camera phones recognize a circular tag and then communicate via Bluetooth with a local server. -- &lt;a href="https://roxannekhamsi.com" target="_blank"&gt;Roxanne Khamsi&lt;/a&gt; for &lt;a href="https://www.wired.com/2004/06/from-the-prawn-of-time/" target="_blank"&gt;Wired&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Cellphone as a virtual mouse/keyboard</title><link href="https://anil.recoil.org/notes/hem" rel="alternate"></link><published>2004-05-27T01:00:00Z</published><updated>2004-05-27T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/hem</id><summary type="html">The &lt;a href="https://anil.recoil.org/projects/ubiqinteraction" target="_blank"&gt;SpotCode&lt;/a&gt; cellphone software was spun out into a startup called High Energy Magic Ltd, and was covered on Slashdot. Check this out! High Energy Magic have announced a public beta of software to let you use your camera-phone as a physical mouse by just pointing and clicking and rotating it in the air. There were also articles on &lt;a href="https://web.archive.org/web/20060505171702/http://www.linuxdevices.com/news/NS3157166681.html" target="_blank"&gt;DeviceForge&lt;/a&gt; that were picked up by quite a few outlets. Update: You can see some of the videos under &lt;a href="https://anil.recoil.org/projects/ubiqinteraction" target="_blank"&gt;Ubiquitous Interaction Devices&lt;/a&gt; as well.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Context-Aware Computing with Sound</title><link href="https://anil.recoil.org/news/audio-networking-1" rel="alternate"></link><published>2003-10-01T01:00:00Z</published><updated>2003-10-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/audio-networking-1</id><summary type="html">While working as an intern at Intel Research Cambridge, &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; and &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; and I put together a fun system based on the emerging new class of smartphones. The project kicked off when we randomly experimented with our fancy Nokia smartphones and discovered that they didn't have anti-aliasing filters on the microphones! We argued that [...] audio networking can be used as the basis for developing context-aware applications. Audio networking allows standard devices fitted with speakers and microphones (e.g. PDAs, laptops, desktop PCs and mobile phones) to exchange data and infer information about their environment. One of the key advantages of audio networking is that it enables context-aware applications to be immediately deployed on a large scale without requiring users to purchase...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>My static C bounds checker extension merged into OpenBSD</title><link href="https://anil.recoil.org/notes/gcc-bounds" rel="alternate"></link><published>2003-06-27T01:00:00Z</published><updated>2003-06-27T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/gcc-bounds</id><summary type="html">After many rounds of review and helpful feedback from fellow developers, I merged my &lt;a href="https://man.openbsd.org/gcc-local.1" target="_blank"&gt;GCC static bounds checking extension&lt;/a&gt; into OpenBSD today! Introduce a simple static checker for making sure that the bounds length passed to common functions such as strlcpy/strlcat match the real length of the buffer. It also checks to make sure that the bound length was not incorrectly derived from a sizeof(pointer) operation. Functions must be marked with the new attribute bounded , and warnings are turned on by -Wbounded. Specifying -Wformat also enables bounds checking for scanf(3) bounds to '%s' format variables. -Wall now turns on -Wbounded also. The checking is pretty limited right now to constant parameters, and the buffers must be statically declared, and not inside a record type. This simple checking still found hundreds...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>The Case for Abstracting Security Policies</title><link href="https://anil.recoil.org/news/sam03-secpol-1" rel="alternate"></link><published>2003-06-01T01:00:00Z</published><updated>2003-06-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/sam03-secpol-1</id><summary type="html">My first ever academic paper, written with the expert guidance of &lt;a href="https://www.cl.cam.ac.uk/~am21/" target="_blank"&gt;Alan Mycroft&lt;/a&gt; and my PhD colleagues &lt;a href="https://github.com/djs55" target="_blank"&gt;Dave Scott&lt;/a&gt; and &lt;a href="mailto:richard.sharp@gmail.com" target="_blank"&gt;Richard Sharp&lt;/a&gt; ! We worked on a system call policy language to help constrain application access to privileged resources, and implemented this on OpenBSD using &lt;a href="https://man.openbsd.org/OpenBSD-5.1/systrace.1" target="_blank"&gt;systrace&lt;/a&gt; . The paper describing the declarative language was presented at SAM 2003 in Las Vegas. "Untrusted code" is just as much a social problem as it is a technical problem. Looking for a complete solution is unrealistic: it is analogous to looking for a solution to crime in general. With this in mind, we do not claim that our proposed framework is a panacea. However, although a number of security problems remain (e.g. covert channel leakage), we claim that our system offers the potential to raise the security level of...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Moving to anil.recoil.org</title><link href="https://anil.recoil.org/notes/opening-anil-recoil-org" rel="alternate"></link><published>2003-05-16T01:00:00Z</published><updated>2003-05-16T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/opening-anil-recoil-org</id><summary type="html">I've taken the opportunity to redesign my homepage and switch to its hopefully-permanent URL on anil.recoil.org . Many thanks to Jon Parise for giving me permission to base my HTML upon his homepage's, saving me lots of design trouble!</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Xen 2002</title><link href="https://anil.recoil.org/news/xen02-1" rel="alternate"></link><published>2003-01-04T00:00:00Z</published><updated>2003-01-04T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/xen02-1</id><summary type="html">The first technical report on the &lt;a href="https://anil.recoil.org/projects/xen" target="_blank"&gt;Xen Hypervisor&lt;/a&gt; hypervisor is now available. I mainly contributed to the early NetBSD port (but have run into a snag with the lack of linear page tables in our paravirtual page implementation). Paul R. Barham , Boris Dragovic , Keir Fraser , &lt;a href="https://research.google/people/steven-hand/" target="_blank"&gt;Steven Hand&lt;/a&gt; , &lt;a href="https://timharris.uk/" target="_blank"&gt;Tim Harris&lt;/a&gt; , &lt;a href="https://hoiho.net" target="_blank"&gt;Alex Ho&lt;/a&gt; , Evangelos Kotsovinos , &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; , Rolf Neugebauer , Ian Pratt and Andrew Warfield . Technical report (UCAM-CL-TR-553) at &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-553.pdf" target="_blank"&gt;University of Cambridge, Computer Laboratory&lt;/a&gt; . &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-553.pdf" target="_blank"&gt;URL&lt;/a&gt; (cl.cam.ac.uk) &lt;a href="https://doi.org/10.48456/tr-553" target="_blank"&gt;DOI&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/xen02.bib" target="_blank"&gt;BIB&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Ubiquitous Interaction Devices</title><link href="https://anil.recoil.org/projects/ubiqinteraction" rel="alternate"></link><published>2003-01-01T00:00:00Z</published><updated>2003-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/ubiqinteraction</id><summary type="html">Ubiquitous Interaction Devices I investigated how to interface the new emerging class of smartphone devices (circa 2002) with concepts from ubiquitous computing such as location-aware interfaces or context-aware computing. I discovered the surprisingly positive benefits of piggybacking on simple communications medium such as audible sound and visual tags. Our implementations of some of these ended up with new audio ringtone and visual smart tags that worked on the widely deployed mobile phones of the era. In 2003, the mobile phone market had grown tremendously and given the average consumer access to cheap, small, low-powered and constantly networked devices that they could reliably carry around. Similarly, laptop computers and PDAs became a common accessory for businesses to equip their...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Functional Internet Services</title><link href="https://anil.recoil.org/projects/melange" rel="alternate"></link><published>2003-01-01T00:00:00Z</published><updated>2003-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/melange</id><summary type="html">Functional Internet Services My PhD dissertation work proposed an architecture for constructing new implementations of standard Internet protocols with integrated formal methods such as model checking and functional programming that were then not used in deployed servers. A more informal summary is "rewrite all the things in OCaml from C!", which lead to a merry adventure into implementing many networks protocols from scratch in a functional style, and learning lots about how to enforce specifications without using a full blown proof assistant. In the late 90s while working at MVACS on the Mars Polar Lander, I found myself using the secure OpenBSD operating system to deploy the self-hosted service that @nickludlam and I have run together ever since. I became an OpenBSD developer with...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Started PhD at Cambridge</title><link href="https://anil.recoil.org/notes/starting-phd" rel="alternate"></link><published>2002-09-01T01:00:00Z</published><updated>2002-09-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/starting-phd</id><summary type="html">I started my PhD at the Systems Research Group in Cambridge this week, based in the &lt;a href="https://www.cl.cam.ac.uk" target="_blank"&gt;Computer Laboratory&lt;/a&gt; and &lt;a href="https://robinson.cam.ac.uk" target="_blank"&gt;Robinson 102College&lt;/a&gt; . I'll still be working part-time at &lt;a href="https://netapp.com" target="_blank"&gt;NetApp&lt;/a&gt; , but my primary focus will be on the &lt;a href="https://anil.recoil.org/projects/xen" target="_blank"&gt;Xen&lt;/a&gt; hypervisor and other systems research topics.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Streamlining PHP on OpenBSD</title><link href="https://anil.recoil.org/notes/php-port-layout-openbsd" rel="alternate"></link><published>2002-06-24T01:00:00Z</published><updated>2002-06-24T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/php-port-layout-openbsd</id><summary type="html">I've committed a big improvement to the PHP port on OpenBSD, by switching from a complex set of FLAVOR tags over to a set of independently installing "multi packages". The first thing I did was to import the core PHP without any extensions. commit 15dc0f67ef5fd0cae9fb841e608b90b9f51c71ca Author: avsm &lt;avsm@openbsd.org&gt; Date: Mon Jun 24 19:23:41 2002 +0000 Import php4-core-4.2.1 Installs the barebones php4 with only the gettext, iconv and recode modules compiled in. All of the other modules have to be installed as shared modules on top of this. In addition to the Apache module, this package also includes a php command-line binary which can be used in shell scripts. The binary uses the same /var/www/conf/php.ini file as the Apache module. There is some non-i386 breakage at the moment...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Streaming U2 live across the Internet</title><link href="https://anil.recoil.org/news/netapp-tr-3152-1" rel="alternate"></link><published>2002-04-01T01:00:00Z</published><updated>2002-04-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/netapp-tr-3152-1</id><summary type="html">After the &lt;a href="https://anil.recoil.org/notes/mars-polar-lander" target="_blank"&gt;Mars Polar Lander crashed&lt;/a&gt; , I took a job at NetApp working as the product architect for &lt;a href="https://en.wikipedia.org/wiki/NetCache" target="_blank"&gt;NetCache&lt;/a&gt; . Among the hundreds of deployments that I help setup across the world, the most fun was figuring out how to scale one of the biggest bands in the world at the time wanting to stream their concert live to a global audience. [… &lt;a href="https://anil.recoil.org/news/netapp-tr-3152-1" target="_blank"&gt;158 words&lt;/a&gt; ] &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/alberto-crivelli-459209" target="_blank"&gt;Alberto Crivelli&lt;/a&gt; . Technical report (TR-3152) at &lt;a href="http://tr.netapp.link/tr-3152.pdf" target="_blank"&gt;NetApp&lt;/a&gt; . &lt;a href="http://tr.netapp.link/tr-3152.pdf" target="_blank"&gt;URL&lt;/a&gt; (tr.netapp.link) &lt;a href="https://anil.recoil.org/papers/netapp-tr-3152.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/netapp-tr-3152.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Xen Hypervisor</title><link href="https://anil.recoil.org/projects/xen" rel="alternate"></link><published>2002-01-01T00:00:00Z</published><updated>2002-01-01T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/projects/xen</id><summary type="html">Xen Hypervisor I was on the original team at Cambridge that built the Xen hypervisor in 2002 -- the first open-source "type-1" hypervisor that ushered in the age of cloud computing and virtual machines. Xen emerged from the Xenoservers project at the CL SRG, where I started my PhD and hacked on the emerging codebase and subsequently worked on the development of the commercial distribution of XenServer. Back at the turn of the century, the Computer Lab SRG faculty at the time (led by my first PhD supervisor &lt;a href="https://anil.recoil.org/" target="_blank"&gt;Ian Pratt&lt;/a&gt; ) decided to start the &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-552.pdf" target="_blank"&gt;XenoServers&lt;/a&gt; project, which would build a public infrastructure for wide-area distributed computing. An &lt;a href="https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=GR/S01894/01" target="_blank"&gt;EPSRC grant&lt;/a&gt; lead to a number of graduate students all surging into the SRG in around 2002 to work on the project, including me. The later history of Xen...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Added a caching subsystem to Horde</title><link href="https://anil.recoil.org/notes/horde-cache" rel="alternate"></link><published>2001-08-20T01:00:00Z</published><updated>2001-08-20T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/horde-cache</id><summary type="html">While hacking on making Chora performant enough to work as the official PHP CVS web-viewer, I added in a general caching subsystem into the Horde PHP framework. Do let me know if you end up finding a use for it in your own applications. Add in a Cache framework for persistent storage and retrieval of cached objects. Consider it experimental for now. Basically works for Chora's needs ... implements a filesystem driver which tries to act sensibly (writes to a tmp file, then does an atomic rename to the cache object), to avoid synchronization issues. It does not cleanup the cached repository at the moment - needs to have a garbage collection function done at some point. -- &lt;a href="https://lists.horde.org/archives/cvs/Week-of-Mon-20010820/003116.html" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Chora now the production CVS viewer for PHP</title><link href="https://anil.recoil.org/notes/chora-live-on-php" rel="alternate"></link><published>2001-08-05T01:00:00Z</published><updated>2001-08-05T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/chora-live-on-php</id><summary type="html">I spent a chunk of time through the year working on the &lt;a href="https://horde.org" target="_blank"&gt;Horde&lt;/a&gt; project. I began when I got commit to &lt;a href="https://www.horde.org/apps/imp/" target="_blank"&gt;IMP webmail&lt;/a&gt; to fix some bugs in the MIME rendering for our Recoil deployment. You can see my code commits on the &lt;a href="https://marc.info/?a=97359997900001&amp;r=6" target="_blank"&gt;horde-cvs&lt;/a&gt; mailing list archive. After getting to grips with the PHP code, I then went on to totally rewrite the &lt;a href="https://www.horde.org/apps/chora/" target="_blank"&gt;Chora&lt;/a&gt; version control viewer so that the CVS repositories for Horde could be browsed online instead of only via the command line. I'm extremely proud to report that the &lt;a href="http://php.net" target="_blank"&gt;PHP project&lt;/a&gt; has &lt;a href="https://lists.horde.org/archives/dev/Week-of-Mon-20010806/002886.html" target="_blank"&gt;now deployed Chora&lt;/a&gt; for production use to serve up cvs.php.net , making it our biggest user by far. Thanks for making my day, Rasmus! I switched Chora over to be the default web cvs system behind cvs.php.net now. The old viewcvs site is still available at viewcvs.php.net (dns may not have...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Added internationalisation to the Chora viewer</title><link href="https://anil.recoil.org/notes/chora-internationalised" rel="alternate"></link><published>2001-08-03T01:00:00Z</published><updated>2001-08-03T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/chora-internationalised</id><summary type="html">One of the coolest things about hacking on the &lt;a href="https://horde.org" target="_blank"&gt;Horde&lt;/a&gt; framework is that it gives me lots of features for free that I can use in my web applications. The latest thing I added to the Chora CVS viewer today is the internationalisation framework, so that the frontend can be translated to multiple languages. I've added in a simple &lt;a href="https://lists.horde.org/archives/cvs/Week-of-Mon-20010730/002975.html" target="_blank"&gt;German translation&lt;/a&gt; to start with, but please contribute your own strings if you get the opportunity.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>GPL release of OpenFX</title><link href="https://anil.recoil.org/notes/openfx" rel="alternate"></link><published>2001-02-10T00:00:00Z</published><updated>2001-02-10T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/openfx</id><summary type="html">Slashdot covers the GPL release of &lt;a href="http://openfx.org" target="_blank"&gt;OpenFX&lt;/a&gt; , which I worked on with Stuart Ferguson (my brother's PhD supervisor in Queen's University Belfast). It has a renderer and raytrace engine, NURBS support, kinematics-based animation, morphing, a plugin API - and it's under the GPL. Currently only for Windows, but they're working on a Linux and FreeBSD port.</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>I am now a core PHP developer</title><link href="https://anil.recoil.org/notes/commit-access-to-php" rel="alternate"></link><published>2001-01-09T00:00:00Z</published><updated>2001-01-09T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/commit-access-to-php</id><summary type="html">I've been maintaining &lt;a href="http://php.net" target="_blank"&gt;PHP&lt;/a&gt; on OpenBSD for a while now, including the core package distributed as binary packages. So as of today, the core team has decided I'm trustworthy enough to have my own commit bit to the central PHP repository, where I can commit code fixes and also maintain the &lt;a href="https://www.php.net/manual/en/install.unix.openbsd.php" target="_blank"&gt;OpenBSD on PHP&lt;/a&gt; official instructions. You can contact me on avsm@php.net if you need any help!</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>I'm now an OpenBSD developer</title><link href="https://anil.recoil.org/notes/openbsd-developer" rel="alternate"></link><published>2000-12-26T00:00:00Z</published><updated>2000-12-26T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/openbsd-developer</id><summary type="html">I've been using OpenBSD for a few years now as the primary OS for &lt;a href="https://anil.recoil.org/news?t=recoil" target="_blank"&gt;recoil&lt;/a&gt; and have been contributing fixes and ports when I get a chance. So I'm incredibly excited to report that the project leader, Theo de Raadt, has invited me to become an OpenBSD developer. I've registered my keys now, and will be known as avsm@openbsd.org ! My first commit is to start fixing up the PHP port, which I have been working on in &lt;a href="https://news-web.php.net/php.qa/652" target="_blank"&gt;PHP-land&lt;/a&gt; for a while now. commit 93d5cc5ae56b22b19aa3bce34d38fa260b882d16 Author: avsm &lt;avsm@openbsd.org&gt; Date: Tue Dec 26 23:35:43 2000 +0000 - update to php-4.0.4 - bump NEED_VERSION - no longer need extra distfile number4.tar.gz since it has been integrated into the main distribution - ltconfig, mysql socket patches are in main distribution now, so they are removed. Note...</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>I'm now a Horde core team member</title><link href="https://anil.recoil.org/notes/horde-developer" rel="alternate"></link><published>2000-10-16T01:00:00Z</published><updated>2000-10-16T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/horde-developer</id><summary type="html">After contributing some patches, I've now got the honour of becoming a &lt;a href="https://www.horde.org/community/team" target="_blank"&gt;core team&lt;/a&gt; member of the &lt;a href="https://horde.org" target="_blank"&gt;Horde&lt;/a&gt; project. Many thanks to Chuck Hagenbuch and Jon Parise for their trust in me! I'm planning on fixing bugs in IMP and the webmail subsystem, and am getting interested in version control and CVS as well, so I'm going to look at Whups and Chora ore. You can follow my commits on the &lt;a href="https://lists.horde.org/archives/cvs/Week-of-Mon-20001016/author.html" target="_blank"&gt;Horde-CVS&lt;/a&gt; commit archives, where I am avsm@horde.org !</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Paper on the NASA Mars Polar Lander website architecture</title><link href="https://anil.recoil.org/news/netapp-tr-3071-1" rel="alternate"></link><published>2000-07-01T01:00:00Z</published><updated>2000-07-01T01:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/news/netapp-tr-3071-1</id><summary type="html">Although the Mars Polar Lander ended up &lt;a href="https://en.wikipedia.org/wiki/Mars_Polar_Lander#See_also" target="_blank"&gt;crashing&lt;/a&gt; , the website itself was one of the busiest websites in the world at the time during the approach to the landing. I was the person handling the website architecture and the amazing webmaster@mars.nasa.gov account at the time. I worked closely &lt;a href="https://anil.recoil.org/notes/mars-polar-lander" target="_blank"&gt;with Sun&lt;/a&gt; and NetApp and wrote up a technical report on how the Mars Polar Lander website acceleration architecture worked. &lt;a href="https://www.linkedin.com/in/ndoherty" target="_blank"&gt;Niall Doherty&lt;/a&gt; and &lt;a href="https://anil.recoil.org" target="_blank"&gt;Anil Madhavapeddy&lt;/a&gt; . Technical report (TR-3071) at &lt;a href="http://tr.netapp.link/tr-3071.pdf" target="_blank"&gt;NetApp&lt;/a&gt; . &lt;a href="http://tr.netapp.link/tr-3071.pdf" target="_blank"&gt;URL&lt;/a&gt; (tr.netapp.link) &lt;a href="https://anil.recoil.org/papers/netapp-tr-3071.bib" target="_blank"&gt;BIB&lt;/a&gt; &lt;a href="https://anil.recoil.org/papers/netapp-tr-3071.pdf" target="_blank"&gt;PDF&lt;/a&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry><entry><title>Slashdot covers the Mars Polar Lander</title><link href="https://anil.recoil.org/notes/mars-polar-lander" rel="alternate"></link><published>1999-12-03T00:00:00Z</published><updated>1999-12-03T00:00:00Z</updated><author><name>AnilM</name></author><id>https://anil.recoil.org/notes/mars-polar-lander</id><summary type="html">In my capacity as &lt;a href="https://anil.recoil.org/papers/netapp-tr-3071" target="_blank"&gt;webmaster&lt;/a&gt; of the Mars Polar Lander, I submitted a note to Slashdot. Although our amazing distributed website took quite a beating (with some estimated 1 in 4 Internet users trying to access it simultaneously), the Lander itself &lt;a href="https://www.wired.com/1999/12/mars-lander-wont-phone-home/" target="_blank"&gt;sadly crashed&lt;/a&gt; . On the bright side, I got mentioned in a &lt;a href="https://web.archive.org/web/20020106163651/http://www.sun.com/smi/Press/sunflash/1999-12/sunflash.991202.1.html" target="_blank"&gt;Sun press release&lt;/a&gt; because of the Sun Netra T1 servers they gave us to host the website! You can read more about the architecture behind the site in " &lt;a href="https://anil.recoil.org/papers/netapp-tr-3071" target="_blank"&gt;Application of a Distributed Web Site Acceleration: Mars Polar Lander&lt;/a&gt; ".</summary><category term="Anil Madhavapeddy's feed"></category></entry></feed>