this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

threads

+8919 -330
+330 -330
eeg.xml
··· 96 96 97 97 &lt;p&gt;This week my work will be focused on integrating the modules into one table, aggregating by the geographic level, which means calculating the Gini Coefficient at the same geographic level of the canopy cover and the spectral indexes (NDVI, NDBI, NDWI). Moreover, I will continue working with the document as some other groups and organisations are working similar goals. Just this past Saturday, &lt;a href="https://www.forestresearch.gov.uk/tools-and-resources/fthr/trees-outside-woodland-map/"&gt;Forest Research&lt;/a&gt; introduced a new map for trees outside woodland, which uses a similar approach to &lt;a href="https://ancazugo.github.io/research/outreach/2025/03/23/weekly-notes.html"&gt;mine&lt;/a&gt;, but my objective is beyond mapping as I want to evaluate green equity. The image is comparison of my map and theirs.&lt;/p&gt; 98 98 99 - &lt;p&gt;On my side project with the Estates division, I managed to automate the AutoCAD workflow to reformat floor plan files for further use in the ArcGIS ecosystem to build a floor-aware geodatabase. This will save me (and the Estates team) a ton of time when preprocessing DWG files. Following what I’ve been doing for my own code, I’ve also implemented good software enginneering practices for this project, which will hopefully become a package for internal use in the University. I’ve been using uv as a package manager for this project and it’s ridiculously fast compared to poetry and the docstring is so easily written by VS Code and Copilot. The next step is to implement the Building class for the geodatabase and create the visualization for occupancy.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/syncoid-sanoid-zfs</id><summary type="html">&lt;p&gt;Over in my &lt;a href="https://www.cst.cam.ac.uk/research/eeg"&gt;EEG&lt;/a&gt; group, we have a &lt;em&gt;lot&lt;/em&gt; of primary and secondary datasets lying around: 100s of terabytes of &lt;a href="https://anil.recoil.org/projects/rsn"&gt;satellite imagery&lt;/a&gt;, &lt;a href="https://anil.recoil.org/projects/life"&gt;biodiversity data&lt;/a&gt;, &lt;a href="https://anil.recoil.org/projects/ce"&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"&gt;TrueNAS&lt;/a&gt; stores data in &lt;a href="https://en.wikipedia.org/wiki/ZFS"&gt;ZFS&lt;/a&gt; and serves it over &lt;a href="https://en.wikipedia.org/wiki/Network_File_System"&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 class="contact" href="https://tarides.com/blog/author/mark-elvers/"&gt;Mark Elvers&lt;/a&gt; has been steadily adding &lt;a href="https://www.tunbury.org/kingston-drives/"&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.&lt;/p&gt; 99 + &lt;p&gt;On my side project with the Estates division, I managed to automate the AutoCAD workflow to reformat floor plan files for further use in the ArcGIS ecosystem to build a floor-aware geodatabase. This will save me (and the Estates team) a ton of time when preprocessing DWG files. Following what I’ve been doing for my own code, I’ve also implemented good software enginneering practices for this project, which will hopefully become a package for internal use in the University. I’ve been using uv as a package manager for this project and it’s ridiculously fast compared to poetry and the docstring is so easily written by VS Code and Copilot. The next step is to implement the Building class for the geodatabase and create the visualization for occupancy.&lt;/p&gt;</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">&lt;p&gt;Over in my &lt;a href="https://www.cst.cam.ac.uk/research/eeg"&gt;EEG&lt;/a&gt; group, we have a &lt;em&gt;lot&lt;/em&gt; of primary and secondary datasets lying around: 100s of terabytes of &lt;a href="https://anil.recoil.org/projects/rsn"&gt;satellite imagery&lt;/a&gt;, &lt;a href="https://anil.recoil.org/projects/life"&gt;biodiversity data&lt;/a&gt;, &lt;a href="https://anil.recoil.org/projects/ce"&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"&gt;TrueNAS&lt;/a&gt; stores data in &lt;a href="https://en.wikipedia.org/wiki/ZFS"&gt;ZFS&lt;/a&gt; and serves it over &lt;a href="https://en.wikipedia.org/wiki/Network_File_System"&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 class="contact" href="https://tarides.com/blog/author/mark-elvers/"&gt;Mark Elvers&lt;/a&gt; has been steadily adding &lt;a href="https://www.tunbury.org/kingston-drives/"&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.&lt;/p&gt; 100 100 &lt;h2&gt;Why get rid of NFS?&lt;/h2&gt; 101 101 &lt;p&gt;The first design constraint is to get rid of centralised network storage. This is both slow when compared to a modern NVMEs, and also hard to extend beyond the &lt;a href="https://anil.recoil.org/papers/2015-sosp-sibylfs"&gt;POSIX-ish&lt;/a&gt; API to take advantage of filesystem-specific features like snapshots or &lt;a href="https://docs.rs/reflink/latest/reflink/"&gt;reflink clones&lt;/a&gt;. We also don't take much advantage of the simultaneous use of the network storage. Instead, we'd like to just make every host materialise the portion of storage it needs locally by cloning it from the remote server.&lt;/p&gt; 102 102 &lt;p&gt;The alternative I'm considering here is to use ZFS filesystems on the nodes themselves rather than NFS. This has the upside of having the cloned data be directly available on the local disk of the host that's using it, meaning that there's no performance impact as with networked storage. ZFS also scales fairly enormous sizes, and so it seems likely that we won't run into an upper bound due to this choice of filesystem in the medium term.&lt;/p&gt; ··· 342 342 343 343 &lt;p&gt;Musing on this issue with David, the idea of using the latest tag rather than head commit seemed like a good compromise. This allowed us to specifically test pre-release versions of opam when they were tagged but not be at the cutting edge with the risk of impacting a key service.&lt;/p&gt; 344 344 345 - &lt;p&gt;We need the latest tag by version number, not by date, as we wouldn’t want to revert to testing on, for example, 2.1.7 if something caused a new release of the 2.1 series. The result was a function which runs &lt;code class="language-plaintext highlighter-rouge"&gt;git tag --format %(objectname) %(refname:strip=2)&lt;/code&gt; and semantically sorts the version numbers using &lt;code class="language-plaintext highlighter-rouge"&gt;OpamVersion.compare&lt;/code&gt;. See &lt;a href="https://github.com/ocurrent/docker-base-images/pull/318"&gt;PR#318&lt;/a&gt;.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/propl-at-splash</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://dorchard.github.io"&gt;Dominic Orchard&lt;/a&gt; and I had a blast &lt;a href="https://plas4sci.github.io/conference/2024/01/22/propl.html"&gt;running&lt;/a&gt; the first &lt;a href="https://propl.dev"&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/"&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"&gt;second outing&lt;/a&gt; in October, co-located with &lt;a href="https://icfp25.sigplan.org/"&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"&gt;call for papers&lt;/a&gt; here (deadline 3rd July 2025).&lt;/p&gt; 345 + &lt;p&gt;We need the latest tag by version number, not by date, as we wouldn’t want to revert to testing on, for example, 2.1.7 if something caused a new release of the 2.1 series. The result was a function which runs &lt;code class="language-plaintext highlighter-rouge"&gt;git tag --format %(objectname) %(refname:strip=2)&lt;/code&gt; and semantically sorts the version numbers using &lt;code class="language-plaintext highlighter-rouge"&gt;OpamVersion.compare&lt;/code&gt;. See &lt;a href="https://github.com/ocurrent/docker-base-images/pull/318"&gt;PR#318&lt;/a&gt;.&lt;/p&gt;</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;p&gt;&lt;a class="contact" href="https://dorchard.github.io"&gt;Dominic Orchard&lt;/a&gt; and I had a blast &lt;a href="https://plas4sci.github.io/conference/2024/01/22/propl.html"&gt;running&lt;/a&gt; the first &lt;a href="https://propl.dev"&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/"&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"&gt;second outing&lt;/a&gt; in October, co-located with &lt;a href="https://icfp25.sigplan.org/"&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"&gt;call for papers&lt;/a&gt; here (deadline 3rd July 2025).&lt;/p&gt; 346 346 &lt;p&gt;&lt;figure class="image-right"&gt;&lt;img alt="Dominic prepping for the first PROPL in the rather delightful venue" class="content-image" src="https://anil.recoil.org/images/propl-1.webp" title="Dominic prepping for the first PROPL in the rather delightful venue" /&gt;&lt;figcaption&gt;Dominic prepping for the first PROPL in the rather delightful venue&lt;/figcaption&gt;&lt;/figure&gt; 347 347 &lt;/p&gt; 348 348 &lt;p&gt;We'd love to get wider participation in computer science interacting with matters of climate and biodiversity:&lt;/p&gt; ··· 747 747 748 748 &lt;p&gt;To deal with folders of any size, we should use the marker system. For this, we pass &lt;code class="language-plaintext highlighter-rouge"&gt;?usemarker=true&lt;/code&gt; to the first GET request, which causes the API to return &lt;code class="language-plaintext highlighter-rouge"&gt;next_marker&lt;/code&gt; and &lt;code class="language-plaintext highlighter-rouge"&gt;prev_marker&lt;/code&gt; as required as additional JSON properties. Subsequent calls would use &lt;code class="language-plaintext highlighter-rouge"&gt;?usemarker=true&amp;amp;marker=XXX&lt;/code&gt;. The end is detected by the absence of the &lt;code class="language-plaintext highlighter-rouge"&gt;next_marker&lt;/code&gt; when no more entries are available.&lt;/p&gt; 749 749 750 - &lt;p&gt;The project can be found on GitHub in &lt;a href="https://github.com/mtelvers/ocaml-box-diff"&gt;mtelvers/ocaml-box-diff&lt;/a&gt;.&lt;/p&gt;</summary><category term="Tunbury.ORG"></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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2025-npu-bench-1</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&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"&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"&gt;ESP32&lt;/a&gt;-based boards over to &lt;a href="https://arm.com"&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;/p&gt; 750 + &lt;p&gt;The project can be found on GitHub in &lt;a href="https://github.com/mtelvers/ocaml-box-diff"&gt;mtelvers/ocaml-box-diff&lt;/a&gt;.&lt;/p&gt;</summary><category term="Tunbury.ORG"></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;p&gt;&lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&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"&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"&gt;ESP32&lt;/a&gt;-based boards over to &lt;a href="https://arm.com"&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;/p&gt; 751 751 752 752 &lt;blockquote class="paper noquote"&gt; 753 753 &lt;div class="paper-info"&gt; ··· 1664 1664 &lt;/section&gt; 1665 1665 &lt;/article&gt;</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">&lt;p&gt;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 generate the partitions. The result is the map below where all the trees are shown with radius meaning the crown area and the colour the height. I want to improve it because at the moment the layers represent the partitions of the parquet files, but I know you can store the files in BigQuery or S3 and then use CARTO to visualize them (anyone willing to help, I’ll buy a beer and if the weather is good, an ice cream). Nonetheless, I will try that after the paper is done. Speaking of, I realised that I didn’t want to just present correlations between the tree data, remote sensing metrics and deprivation. That seems only descriptive statistics, but following the advice of &lt;a href="https://anil.recoil.org/"&gt;Anil&lt;/a&gt; from previous meetings, I’ve also worked on a metric that combines all of the variables into one. My original idea was to represent environmental deprivation, as the IMD does, but my variables don’t measure that intrinsecally, they just present where more nature is “available”, so I guess it will be more of a nature availability index. It relies on green and blue infrastructure and it is built on the weights from the first two components of a PCA for the entire country. The cool thing is that it can actually tell which geographic areas are urban or rural and you can see the deprivation pattern in the data. However, the logic behind them is just additive, as in it’s just following the form $y = a_1x_1 + … + a_ix_i$, where each $x$ is the “nature metric” for a given geographical area, and each coefficient $a$ is associated with said metric. This would be a-dimensional as variables were normalised. Then, after this I would build a Gini Coefficient of green disparity per Local Authority (this could be done at greater geographic scales such as region). This is based on this &lt;a href="https://www.sciencedirect.com/science/article/pii/S0169204624002305#s0025"&gt;paper&lt;/a&gt;, but also comments made by &lt;a href="https://www.sustainabledesign.arct.cam.ac.uk/"&gt;Ronita&lt;/a&gt; on how to represent my metrics, as the Gini Coefficient is widely used in economics when talking about wealth inequality.&lt;/p&gt; 1666 1666 1667 - &lt;p&gt;Finally, on a lighter note, Saturday morning after a good tennis session, I went to the Computer Lab to attend a workshop on &lt;a href="https://sonic-pi.net/"&gt;Sonic Pi by its creator Sam Aaron&lt;/a&gt;, as part of the Cambridge Festival. It turned out, the attendants were just as old as the first movie in the Star Wars Sequel Trilogy (The Force Awakens in 2015). 😅 However, I ended up enjoying other activities during the festival, namely the Insomia AI project and the earphones that uses AI to monitor your heart rate. More importantly, expect my appearance in the CST social media channels as I answer questions on super computers, asked by none other than my dear friend and fellow PhD student &lt;a href="https://www.onkargulati.com/"&gt;Onkar Gulati&lt;/a&gt;.&lt;/p&gt;</summary><category term="Andrés Zúñiga-González’s Blog"></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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/life-official-statistic</id><summary type="html">&lt;p&gt;Our &lt;a href="https://anil.recoil.org/papers/2024-life"&gt;recently published&lt;/a&gt; &lt;a href="https://anil.recoil.org/projects/life"&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/"&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"&gt;food provenance data&lt;/a&gt; to track the environmental impacts of our consumption habits.&lt;/p&gt; 1667 + &lt;p&gt;Finally, on a lighter note, Saturday morning after a good tennis session, I went to the Computer Lab to attend a workshop on &lt;a href="https://sonic-pi.net/"&gt;Sonic Pi by its creator Sam Aaron&lt;/a&gt;, as part of the Cambridge Festival. It turned out, the attendants were just as old as the first movie in the Star Wars Sequel Trilogy (The Force Awakens in 2015). 😅 However, I ended up enjoying other activities during the festival, namely the Insomia AI project and the earphones that uses AI to monitor your heart rate. More importantly, expect my appearance in the CST social media channels as I answer questions on super computers, asked by none other than my dear friend and fellow PhD student &lt;a href="https://www.onkargulati.com/"&gt;Onkar Gulati&lt;/a&gt;.&lt;/p&gt;</summary><category term="Andrés Zúñiga-González’s Blog"></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">&lt;p&gt;Our &lt;a href="https://anil.recoil.org/papers/2024-life"&gt;recently published&lt;/a&gt; &lt;a href="https://anil.recoil.org/projects/life"&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/"&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"&gt;food provenance data&lt;/a&gt; to track the environmental impacts of our consumption habits.&lt;/p&gt; 1668 1668 &lt;p&gt;I must admit that I'd not heard of &amp;quot;Official Statistics&amp;quot; before this, so I did a bit of research. The UK &lt;a href="https://osr.statisticsauthority.gov.uk/"&gt;Office for Statistics Regulation&lt;/a&gt; says that:&lt;/p&gt; 1669 1669 &lt;blockquote&gt; 1670 1670 &lt;p&gt;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. ··· 1806 1806 &lt;/article&gt;</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">&lt;p&gt;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 hundreds of millions range for England. Urban Cambridge apparently has ~66K 😉), I had to increase the memory requirements of the Sedona config but then it didn’t run, so what I ended up doing was iteratating over each Local Authority and querying the trees for that area, while counting the number of trees in each LSOA (Local Authorities are made by many LSOAs). This takes about 2 hours to run but was the best solution I found to overcome the Spark errors. Also, I realised that for ~300 LSOAs, I wasn’t getting any trees but it’s because their raster files, even though read by Rasterio, are corrupted due to inlavid values. It was very tricky to find the solution to this but a simple call to the object’s values can be caught by the &lt;code class="language-plaintext highlighter-rouge"&gt;try/except&lt;/code&gt; clause so that solved it for now. The good news is that all of these corrections are done and now I (hope to) finally have a clean and complete dataset for analysis which will be my main goal for this week, so I can complete the results and discussion of this paper. And right on time because it´s the end of the term so my focus will be this on for the start of the Easter break. Speaking of, at some point in the next weeks I will write an in-depth blog about working with Sedona after the paper is done, because I feel that a lot of people (academics in particular) would benefit from it since the tool is in its early adoption phase in the industry, while very few academics use it in their workflow.&lt;/p&gt; 1807 1807 1808 1808 &lt;p&gt;On a side note, my supervisions for the academic year finished last week. I was teaching the Maths and Programming course for the new design tripos in the Department of Architecture. It was a very nurturing experience that allowed me to teach in the Cambridge system, which is very unique, but also gave me the chance to re-learn some of the mathematical concepts, notably linear algebra and differential calculus that are behind ML algorithms. I had learned those more than 10 years ago when I was in Uni, and I was surprised of how rusty I was with my math. Related to this, I just started reading &lt;a href="https://www.penguin.co.uk/books/446849/why-machines-learn-by-ananthaswamy-anil/9780241586488"&gt;Why Machines Learn&lt;/a&gt; by Anil Ananthaswamy, for a more in-depth refresher on Maths. Will come back to this with my comments once I finish it. 1809 - Finally, I successfully finished the intermediate 1 French course (sort of B1), which means that I can say &lt;em&gt;Je ne sais pas&lt;/em&gt; when I don’t understand why my code behaves in a unexpected way. 🤣&lt;/p&gt;</summary><category term="Andrés Zúñiga-González’s Blog"></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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop</id><summary type="html">&lt;p&gt;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/"&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"&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"&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"&gt;DSIT&lt;/a&gt; and thinktanks about how to approach this rapidly moving area.&lt;/p&gt; 1809 + Finally, I successfully finished the intermediate 1 French course (sort of B1), which means that I can say &lt;em&gt;Je ne sais pas&lt;/em&gt; when I don’t understand why my code behaves in a unexpected way. 🤣&lt;/p&gt;</summary><category term="Andrés Zúñiga-González’s Blog"></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">&lt;p&gt;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/"&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"&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"&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"&gt;DSIT&lt;/a&gt; and thinktanks about how to approach this rapidly moving area.&lt;/p&gt; 1810 1810 &lt;p&gt;&lt;em&gt;(The following notes are adapted from jottings from &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/jkm40"&gt;Jessica Montgomery&lt;/a&gt;, 1811 1811 &lt;a class="contact" href="https://samreynolds.org/"&gt;Sam Reynolds&lt;/a&gt;, &lt;a class="contact" href="https://ai.cam.ac.uk/people/annabelle-scott"&gt;Annabelle Scott&lt;/a&gt; and myself. They are not at all complete, but hopefully useful!)&lt;/em&gt;&lt;/p&gt; 1812 1812 &lt;p&gt;We invited a range of participants to the workshop and held it at Pembroke College (the choice of the centuries-old location felt appropriate). ··· 2194 2194 &lt;h2&gt;Request for comment&lt;/h2&gt; 2195 2195 &lt;/header&gt; 2196 2196 &lt;p&gt;I am hoping to hear other people’s thoughts on this proposal, including any constructive criticisms or suggestions for how we might go about implementing it. You can write to me or the &lt;a href="mailto:~jonsterling/forester-discuss@lists.sr.ht"&gt;mailing list&lt;/a&gt; with your feedback.&lt;/p&gt; 2197 - &lt;/section&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/disentangling-git-with-bluesky</id><summary type="html">&lt;p&gt;I've been an avid user of &lt;a href="https://github.com"&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"&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"&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.&lt;/p&gt; 2197 + &lt;/section&gt;</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">&lt;p&gt;I've been an avid user of &lt;a href="https://github.com"&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"&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"&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.&lt;/p&gt; 2198 2198 &lt;p&gt;This has also come up persistently over the years in the &lt;a href="https://ocaml.org"&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"&gt;requires a GitHub account&lt;/a&gt; ever since the &lt;a href="https://anil.recoil.org/notes/opam-1-1-beta"&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"&gt;new service&lt;/a&gt; that's built over the same protocol that &lt;a href="https://bsky.app"&gt;Bluesky&lt;/a&gt; uses. 2199 2199 As I &lt;a href="https://anil.recoil.org/notes/atproto-for-fun-and-blogging"&gt;noted&lt;/a&gt; a few weeks ago, the &lt;a href="https://atproto.com/"&gt;ATProto&lt;/a&gt; can be used for more than just microblogging. It can also be an &lt;em&gt;identity&lt;/em&gt; layer, across which other applications can be built which reuse the social fabric from Bluesky accounts.&lt;/p&gt; 2200 2200 &lt;p&gt;&amp;quot;&lt;a href="https://tangled.sh"&gt;Tangled&lt;/a&gt;&amp;quot; is a new service launched (just yesterday!) by &lt;a href="https://tangled.sh/@oppili.bsky.social"&gt;@opilli&lt;/a&gt; and &lt;a href="https://tangled.sh/@icyphox.sh"&gt;@icyphox&lt;/a&gt; to manage Git repositories. I'm having a lot of fun trying it out, even in its early alpha stages! The coolest thing about Tangled is that you can self-host your own &lt;a href="https://blog.tangled.sh/intro"&gt;knots&lt;/a&gt;, which control where the source code repositories are actually stored.&lt;/p&gt; ··· 2255 2255 &lt;p&gt;If you'd like to try this out, then the &lt;a href="https://tangled.sh/@anil.recoil.org/knot-docker/"&gt;Knot Docker&lt;/a&gt; repository welcomes your issues!&lt;/p&gt; 2256 2256 &lt;small class="credits"&gt; 2257 2257 &lt;p&gt;Many thanks to Zicklag and icyphox on &lt;a href="https://web.libera.chat/#tangled"&gt;tangled IRC&lt;/a&gt; for helping me out with debugging the Knot setup and &lt;a href="https://tangled.sh/@tangled.sh/core/commit/477da124ad0bdeeab5b621b81999683256ab7a4b"&gt;fixing bugs in real-time&lt;/a&gt;. 12th Mar 2025: updated with &lt;a class="contact" href="https://bsky.app/profile/wedg.dev"&gt;Samuel Wedgwood&lt;/a&gt; comments.&lt;/p&gt; 2258 - &lt;/small&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/the-state-of-ai-tools</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; organised this week's &lt;a href="https://www.cst.cam.ac.uk/research/eeg"&gt;EEG&lt;/a&gt; group &lt;a href="https://www.cst.cam.ac.uk/seminars/list/229027"&gt;discussion&lt;/a&gt; on what AI tools we use for our daily work. I was immediately struck by how &lt;em&gt;few&lt;/em&gt; tools there are that are actually making us more productive, so I jotted down notes as the discussion was going on.&lt;/p&gt; 2258 + &lt;/small&gt;</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;p&gt;&lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; organised this week's &lt;a href="https://www.cst.cam.ac.uk/research/eeg"&gt;EEG&lt;/a&gt; group &lt;a href="https://www.cst.cam.ac.uk/seminars/list/229027"&gt;discussion&lt;/a&gt; on what AI tools we use for our daily work. I was immediately struck by how &lt;em&gt;few&lt;/em&gt; tools there are that are actually making us more productive, so I jotted down notes as the discussion was going on.&lt;/p&gt; 2259 2259 &lt;ul&gt; 2260 2260 &lt;li&gt;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"&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 class="contact" href="https://patrick.sirref.org"&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"&gt;IBM AI ethics&lt;/a&gt; guidance and their &lt;a href="https://github.com/ibm-granite/granite-code-models"&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 gratefully accepted; I'm using Claude 3.7 here, but don't feel great doing so!&lt;/li&gt; 2261 2261 &lt;li&gt;&lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; described his use of &lt;a href="https://fathom.video/"&gt;Fathom&lt;/a&gt; for note-taking, and (having been on the receiving end) can confirm it does a very good transcription job.&lt;/li&gt; ··· 2269 2269 &lt;li&gt;And for something completely different, another team released their &lt;a href="https://google-research.github.io/self-organising-systems/difflogic-ca/"&gt;Differentiable Logic Cellular Automata&lt;/a&gt; paper which describes how to go from the &lt;a href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life"&gt;Game of Life&lt;/a&gt; to full pattern generation using learned recurrent circuits. This one should really be read in its entirity to appreciate how incredible it might become in the future, as it would allow us to generate distributed systems that can build a very complex end-goal pattern by following a set of simple rules. &lt;a class="contact" href="https://coomeslab.org"&gt;David A Coomes&lt;/a&gt; pointed out to me recently that the question of &lt;a href="https://www.wired.com/story/mystery-solved-how-plant-cells-know-when-to-stop-growing/"&gt;why cells stop growing&lt;/a&gt; has only very recently been understood in traditional biology, and yet here we are applying ML to the case.&lt;/li&gt; 2270 2270 &lt;li&gt;&lt;a href="https://mistral.ai/fr/news/mistral-ocr"&gt;Mistral OCR&lt;/a&gt; came out today and seems to be the state of the art in multi-modally breaking down documents into a consistent linear structure. Their results show that they can break down complex PDFs in multiple languages into seemingly clean HTML with semantic structure (such as tables, equations, figures and so on). I've only just finished running &lt;a href="https://anil.recoil.org/projects/ce"&gt;millions of papers&lt;/a&gt; through &lt;a href="https://grobid.readthedocs.io/en/latest/"&gt;Grobid&lt;/a&gt;, so this is next on the queue to try out...&lt;/li&gt; 2271 2271 &lt;/ul&gt; 2272 - &lt;p&gt;So, I guess the TL;DR of our discussion was that current AI tools are the first generation, but we're heading rather rapidly into new frontiers of discovery, so there's only going to be more of them coming up...&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/deprecating-ocaml-408</id><summary type="html">&lt;p&gt;I started pushing OCaml Docker images over to the &lt;a href="https://hub.docker.com/r/ocaml/opam"&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"&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"&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"&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;amp;"&gt;Linux&lt;/a&gt; and &lt;a href="https://images.ci.ocaml.org/?distro=windows-msvc&amp;amp;"&gt;Windows&lt;/a&gt;.&lt;/p&gt; 2272 + &lt;p&gt;So, I guess the TL;DR of our discussion was that current AI tools are the first generation, but we're heading rather rapidly into new frontiers of discovery, so there's only going to be more of them coming up...&lt;/p&gt;</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">&lt;p&gt;I started pushing OCaml Docker images over to the &lt;a href="https://hub.docker.com/r/ocaml/opam"&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"&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"&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"&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;amp;"&gt;Linux&lt;/a&gt; and &lt;a href="https://images.ci.ocaml.org/?distro=windows-msvc&amp;amp;"&gt;Windows&lt;/a&gt;.&lt;/p&gt; 2273 2273 &lt;p&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/"&gt;sponsored by Docker&lt;/a&gt;, we must also consider the &lt;a href="https://ocaml.org/policies/carbon-footprint"&gt;carbon footprint&lt;/a&gt; of our infrastructure. 2274 2274 So the question for the OCaml community: &lt;strong&gt;are there are any remaining users who still need images earlier than OCaml 4.08 or can we can stop pushing those now?&lt;/strong&gt;&lt;/p&gt; 2275 2275 &lt;p&gt;&lt;a class="contact" href="https://github.com/hannesm"&gt;Hannes Mehnert&lt;/a&gt; lead an effort to deprecate compilers earlier than 4.08 &lt;a href="https://discuss.ocaml.org/t/opam-repository-archival-phase-2-ocaml-4-08-is-the-lower-bound/15965"&gt;in the opam-repo&lt;/a&gt;, and now &lt;a class="contact" href="https://tarides.com/blog/author/mark-elvers/"&gt;Mark Elvers&lt;/a&gt; is asking the same question &lt;a href="https://discuss.ocaml.org/t/docker-base-images-and-ocaml-ci-support-for-ocaml-4-08/16229"&gt;on the OCaml discussion forum&lt;/a&gt; about the Docker image infrastructure. The latter lags the opam repository since there still may be operational usecases of industrial users who depend on older compilers, even if they don't use the latest package repository. So if you &lt;em&gt;are&lt;/em&gt; using a really old OCaml and depend on our infrastructure, we'd appreciate you chiming in on the &lt;a href="https://discuss.ocaml.org/t/docker-base-images-and-ocaml-ci-support-for-ocaml-4-08/16229"&gt;forum thread&lt;/a&gt; or just contact &lt;a class="contact" href="https://tarides.com/blog/author/mark-elvers/"&gt;Mark Elvers&lt;/a&gt; or myself directly to let us know.&lt;/p&gt; ··· 2651 2651 &lt;h3 id="contributions-cross-ecosystem-tooling-partial-evaluation"&gt;contributions: 2652 2652 cross-ecosystem, tooling, partial evaluation&lt;/h3&gt; 2653 2653 &lt;/section&gt; 2654 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/claude-copilot-sandbox</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://github.com/yminsky"&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"&gt;RGB Matrix&lt;/a&gt; displays. I grabbed one from the local Pi Store and soldered it together with help from &lt;a class="contact" href="https://mynameismwd.org"&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"&gt;Claude Code&lt;/a&gt; released &lt;a href="https://ai-claude.net/"&gt;last week&lt;/a&gt; to see if we could entirely autogenerate the bindings.&lt;/p&gt; 2654 + &lt;/article&gt;</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;p&gt;&lt;a class="contact" href="https://github.com/yminsky"&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"&gt;RGB Matrix&lt;/a&gt; displays. I grabbed one from the local Pi Store and soldered it together with help from &lt;a class="contact" href="https://mynameismwd.org"&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"&gt;Claude Code&lt;/a&gt; released &lt;a href="https://ai-claude.net/"&gt;last week&lt;/a&gt; to see if we could entirely autogenerate the bindings.&lt;/p&gt; 2655 2655 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt; 2656 2656 &lt;p&gt;&lt;em&gt;TL;DR:&lt;/em&gt; 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 class="contact" href="https://web.eecs.umich.edu/~comar/"&gt;Cyrus Omar&lt;/a&gt; and &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt; and I &lt;a href="https://anil.recoil.org/papers/2024-hope-bastion"&gt;wrote&lt;/a&gt; about this a few months ago. Read on...&lt;/p&gt; 2657 2657 &lt;h2&gt;Wiring up the display to my Raspberry Pi&lt;/h2&gt; ··· 2793 2793 &lt;p&gt;Once you have this specification, then it's a matter of implementing fine-grained OS-level sandboxing policies to interpret and enforce them. Spoiler: we're working on such a system, so I'll write about that just as soon as it's more self-hosting; this area is moving incredibly fast.&lt;/p&gt; 2794 2794 &lt;small class="credits"&gt; 2795 2795 &lt;p&gt;Thanks to &lt;a class="contact" href="https://mynameismwd.org"&gt;Michael Dales&lt;/a&gt; for help soldering. For the curious, here's the &lt;a href="https://github.com/yminsky/rpi-rgb-led-matrix/pull/3"&gt;PR with the code&lt;/a&gt;, but it shouldn't go anywhere near any real use until we've had a chance to review the bindings carefully. There needs to be a new, even more buyer-beware no-warranty license for AI generated code!&lt;/p&gt; 2796 - &lt;/small&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/tracing-hdl-with-effects</id><summary type="html">&lt;h1&gt;A hardware description language using OCaml effects&lt;/h1&gt; 2796 + &lt;/small&gt;</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">&lt;h1&gt;A hardware description language using OCaml effects&lt;/h1&gt; 2797 2797 &lt;p&gt;This is an idea proposed in 2025 as a Cambridge Computer Science Part III or MPhil project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://kcsrk.info"&gt;KC Sivaramakrishnan&lt;/a&gt; and &lt;a class="contact" href="https://github.com/andrewray"&gt;Andy Ray&lt;/a&gt;.&lt;/p&gt; 2798 2798 &lt;p&gt;Programming FPGAs using functional programming languages is a very good fit for 2799 2799 the problem domain. OCaml has the &lt;a href="https://anil.recoil.org/notes/fpgas-hardcaml"&gt;HardCaml ecosystem&lt;/a&gt; to ··· 2840 2840 2841 2841 &lt;p&gt;In other news, I got rejected from the IPCC Chapter Scientist application I sent a couple of weeks ago 😕, but I got a follow up email to fill in a form for a visitng student position in one of the big tech companies 🤓 for the summer, which doesn’t mean that I passed a filter round, it just means that they are collecting more info than there is in the CV.&lt;/p&gt; 2842 2842 2843 - &lt;p&gt;Finally, I also attended a workshop organised by London Data Visualisation on how to make 3D maps in Blender. It was taught by &lt;a href="https://www.julian-hoffmann-anton.com/"&gt;Julian Hoffman Anton&lt;/a&gt; in the Canva HQ in London. It was pretty cool to see what you can do when you combine GIS data with Blender. I’m not sure if I will use it in the future, but it was a nice experience to see how you can make 3D maps with minimal coding and a lot of creativity. The picture below is my attempt at trying to visualize the tallest coastal mountain in the world (Sierra Nevada de Santa Marta) using Google imagery and open topography data.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ai-ietf-aiprefs</id><summary type="html">&lt;p&gt;The &lt;a href="https://ietf.org"&gt;IETF&lt;/a&gt; &lt;a href="https://bsky.app/profile/ietf.org/post/3lj6w5fpjx22u"&gt;announced&lt;/a&gt; their new &lt;a href="https://www.ietf.org/blog/aipref-wg/"&gt;AI Preferences Working Group&lt;/a&gt; (AIPREF), which will &lt;em&gt;&amp;quot;work on standardizing building blocks that allow for the expression of preferences about how content is collected and processed for Artificial Intelligence models&amp;quot;&lt;/em&gt;. This is quite well timed; the IETF tries not to standardise too early before there is &lt;a href="https://www.ietf.org/runningcode/"&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"&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/"&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/"&gt;scaling wall&lt;/a&gt; and possibly triggering the start of a renewed data scraping frenzy.&lt;/p&gt; 2843 + &lt;p&gt;Finally, I also attended a workshop organised by London Data Visualisation on how to make 3D maps in Blender. It was taught by &lt;a href="https://www.julian-hoffmann-anton.com/"&gt;Julian Hoffman Anton&lt;/a&gt; in the Canva HQ in London. It was pretty cool to see what you can do when you combine GIS data with Blender. I’m not sure if I will use it in the future, but it was a nice experience to see how you can make 3D maps with minimal coding and a lot of creativity. The picture below is my attempt at trying to visualize the tallest coastal mountain in the world (Sierra Nevada de Santa Marta) using Google imagery and open topography data.&lt;/p&gt;</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">&lt;p&gt;The &lt;a href="https://ietf.org"&gt;IETF&lt;/a&gt; &lt;a href="https://bsky.app/profile/ietf.org/post/3lj6w5fpjx22u"&gt;announced&lt;/a&gt; their new &lt;a href="https://www.ietf.org/blog/aipref-wg/"&gt;AI Preferences Working Group&lt;/a&gt; (AIPREF), which will &lt;em&gt;&amp;quot;work on standardizing building blocks that allow for the expression of preferences about how content is collected and processed for Artificial Intelligence models&amp;quot;&lt;/em&gt;. This is quite well timed; the IETF tries not to standardise too early before there is &lt;a href="https://www.ietf.org/runningcode/"&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"&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/"&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/"&gt;scaling wall&lt;/a&gt; and possibly triggering the start of a renewed data scraping frenzy.&lt;/p&gt; 2844 2844 &lt;h2&gt;How do websites interact with AI crawlers right now?&lt;/h2&gt; 2845 2845 &lt;p&gt;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 the traffic to this site is from automated sources, so it's a material concern for &lt;a href="https://anil.recoil.org/news?t=selfhosting"&gt;selfhosting&lt;/a&gt; infrastructure.&lt;/p&gt; 2846 2846 &lt;ol&gt; ··· 3387 3387 3388 3388 &lt;p&gt;In other endeavors, I started working on the side project of building a digital twin for the university for which I’m going to use the proprietary software by Esri, since all the spatial infrastructure in the University is handled with ArcGIS. It’s a very exciting project with Ramit Debnath and Emily So and will write about it once everything is in a working stage.&lt;/p&gt; 3389 3389 3390 - &lt;p&gt;Finally, I redveloped my interactive map of the 3-30-300 rule in England using the updated methodology. I used CARTO for this one and included a couple of widgets that allow the user to filter the map by local authorities or regions in England. It turns out that building these dashboards is more straightforward than I thought in this platform than it is in other platform (looking at you Esri). The power of visualizing the data and not the numbers is that you see patterns or mistakes in your data processing pipeline. Check the map &lt;a href="https://pinea.app.carto.com/map/f4087ee0-7565-4902-bd8f-eb8fe30c0b37"&gt;here&lt;/a&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/forest-apps-and-benchmarks</id><summary type="html">&lt;p&gt;This week I've been reading three really nice pieces of work by my 3390 + &lt;p&gt;Finally, I redveloped my interactive map of the 3-30-300 rule in England using the updated methodology. I used CARTO for this one and included a couple of widgets that allow the user to filter the map by local authorities or regions in England. It turns out that building these dashboards is more straightforward than I thought in this platform than it is in other platform (looking at you Esri). The power of visualizing the data and not the numbers is that you see patterns or mistakes in your data processing pipeline. Check the map &lt;a href="https://pinea.app.carto.com/map/f4087ee0-7565-4902-bd8f-eb8fe30c0b37"&gt;here&lt;/a&gt;&lt;/p&gt;</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">&lt;p&gt;This week I've been reading three really nice pieces of work by my 3391 3391 colleagues, in the form of a &lt;a href="https://www.nature.com/articles/s44358-025-00022-3"&gt;review paper&lt;/a&gt; on biodiversity and AI, 3392 3392 a &lt;a href="https://besjournals.onlinelibrary.wiley.com/doi/10.1111/2041-210X.14503"&gt;benchmark&lt;/a&gt; for 3D forest reconstruction using laser scanners and a &lt;a href="https://github.com/MingyueX/GreenLens"&gt;mobile app&lt;/a&gt; for measuring the width of tree trunks. A real bonanza for forest lovers!&lt;/p&gt; 3393 3393 &lt;h2&gt;Review paper on mapping opportunities for AI in biodiversity&lt;/h2&gt; ··· 3783 3783 &lt;h3 id="supervision-2-of-robinson-computer-networking"&gt;Supervision 2 of 3784 3784 Robinson Computer Networking&lt;/h3&gt; 3785 3785 &lt;/section&gt; 3786 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/uk-national-data-lib</id><summary type="html">&lt;p&gt;Over the past year, &lt;a class="contact" href="https://toao.com"&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"&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"&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"&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"&gt;National Data Library&lt;/a&gt; and also with the UK &lt;a href="https://www.wildlifetrusts.org/"&gt;Wildlife Trusts&lt;/a&gt;...&lt;/p&gt; 3786 + &lt;/article&gt;</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">&lt;p&gt;Over the past year, &lt;a class="contact" href="https://toao.com"&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"&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"&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"&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"&gt;National Data Library&lt;/a&gt; and also with the UK &lt;a href="https://www.wildlifetrusts.org/"&gt;Wildlife Trusts&lt;/a&gt;...&lt;/p&gt; 3787 3787 &lt;h2&gt;The difficulty of access controlled bulk data downloads&lt;/h2&gt; 3788 3788 &lt;p&gt;In late 2023, once we got past the legal aspects of downloading closed access papers&lt;sup&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#fn-1" id="ref-1-fn-1"&gt;[1]&lt;/a&gt;&lt;/sup&gt; it was still remarkably difficult to &lt;em&gt;actually&lt;/em&gt; gain access to the actual paper datasets themselves. For instance, a select few hurdles include:&lt;/p&gt; 3789 3789 &lt;ul&gt; ··· 3982 3982 &lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;nmcli&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-keyword z-operator z-assignment z-redirection z-shell"&gt;&amp;gt;&lt;/span&gt; quit&lt;/span&gt; 3983 3983 &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; 3984 3984 &lt;p&gt;Obviously you will need to provide your own values for &lt;code&gt;YOUR-IDENTITY&lt;/code&gt; and 3985 - &lt;code&gt;YOUR-PASSWORD&lt;/code&gt; :)&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-food-life-2</id><summary type="html">&lt;p&gt;We've uploaded a revised preprint on our ongoing work on quantifying the &lt;a href="https://anil.recoil.org/papers/2024-food-life"&gt;biodiversity cost of global food consumption&lt;/a&gt;, lead by &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball"&gt;Thomas Ball&lt;/a&gt;. This is based on the &lt;a href="https://anil.recoil.org/news/2024-life-3"&gt;recently published&lt;/a&gt; &lt;a href="https://anil.recoil.org/projects/life"&gt;LIFE&lt;/a&gt; metric, combined with supply chain data and provenance modeling. &lt;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-food-life-2"&gt;196 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 3985 + &lt;code&gt;YOUR-PASSWORD&lt;/code&gt; :)&lt;/p&gt;</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">&lt;p&gt;We've uploaded a revised preprint on our ongoing work on quantifying the &lt;a href="https://anil.recoil.org/papers/2024-food-life"&gt;biodiversity cost of global food consumption&lt;/a&gt;, lead by &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball"&gt;Thomas Ball&lt;/a&gt;. This is based on the &lt;a href="https://anil.recoil.org/news/2024-life-3"&gt;recently published&lt;/a&gt; &lt;a href="https://anil.recoil.org/projects/life"&gt;LIFE&lt;/a&gt; metric, combined with supply chain data and provenance modeling. &lt;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-food-life-2"&gt;196 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 3986 3986 3987 3987 &lt;blockquote class="paper noquote"&gt; 3988 3988 &lt;div class="paper-info"&gt; ··· 4190 4190 &lt;h2 id="misc"&gt;Misc&lt;/h2&gt; 4191 4191 &lt;h3 id="write-up-research-ideas-for-website"&gt;&lt;span class="todo TODO"&gt;TODO&lt;/span&gt; write up research ideas for website&lt;/h3&gt; 4192 4192 &lt;/section&gt; 4193 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/cambridge-green-blue</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://mlg.eng.cam.ac.uk/carl/"&gt;Carl Edward Rasmussen&lt;/a&gt; recently gave a great &lt;a href="https://watch.eeg.cl.cam.ac.uk/w/qEsMt2Ayk37SaKgxrfwoBt"&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"&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"&gt;Paris Agreement&lt;/a&gt; was doing more harm than good by giving the &lt;em&gt;illusion&lt;/em&gt; of being a concrete agreement, but is in reality a huge distraction. Our actual &lt;a href="https://ourworldindata.org/co2-emissions"&gt;emissions&lt;/a&gt; have increased since the Paris agreement was signed!&lt;/p&gt; 4193 + &lt;/article&gt;</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;p&gt;&lt;a class="contact" href="https://mlg.eng.cam.ac.uk/carl/"&gt;Carl Edward Rasmussen&lt;/a&gt; recently gave a great &lt;a href="https://watch.eeg.cl.cam.ac.uk/w/qEsMt2Ayk37SaKgxrfwoBt"&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"&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"&gt;Paris Agreement&lt;/a&gt; was doing more harm than good by giving the &lt;em&gt;illusion&lt;/em&gt; of being a concrete agreement, but is in reality a huge distraction. Our actual &lt;a href="https://ourworldindata.org/co2-emissions"&gt;emissions&lt;/a&gt; have increased since the Paris agreement was signed!&lt;/p&gt; 4194 4194 &lt;p&gt;Carl &lt;a href="https://www.youtube.com/watch?v=naFaQsFxs1g"&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 &amp;quot;&lt;a href="https://mlg.eng.cam.ac.uk/carl/climate/themis0.pdf"&gt;Themis Mechanism&lt;/a&gt;&amp;quot; as a simple alternative for equitable global emission reduction (&lt;a href="https://mlg.eng.cam.ac.uk/carl/climate/themis.pdf"&gt;long form&lt;/a&gt;).&lt;/p&gt; 4195 4195 &lt;p&gt;This got me brainstorming with Carl about how to test his theories out and we came up with an idea that is either terrible or awesome; please read on and judge appropriately. I think we should take advantage of Cambridge's unique structure to trial the Themis mechanism via a new &lt;strong&gt;competitive decarbonisation sporting league among Colleges that I dub the &amp;quot;Cambridge Green Blue&amp;quot;&lt;/strong&gt;. Given the Chancellor's recent unveiling of an &lt;a href="https://www.theguardian.com/business/2025/jan/28/reeves-plans-to-create-silicon-valley-between-oxford-and-cambridge"&gt;innovation corridor&lt;/a&gt; between Oxford and Cambridge, the timing could not be better for an initiative like this. &lt;em&gt;(TL;DR sign up at the bottom of this post if you'd like to participate)&lt;/em&gt;&lt;/p&gt; 4196 4196 &lt;h2&gt;The basics of the Themis mechanism&lt;/h2&gt; ··· 4324 4324 &lt;p&gt;I promise I'm not a JMK shill, despite being a &lt;a href="https://www.cshss.cam.ac.uk/research-info/j-m-keynes-fellowship-fund/j-m-keynes-fellows"&gt;JMK Fellow&lt;/a&gt;.&lt;/p&gt; 4325 4325 &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-2"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li id="fn-1"&gt; 4326 4326 &lt;p&gt;The keen boardgame player will probably observe that there's always one player who decides to cause trouble just for fun, making everyone lose. This can be dealt with by social means.&lt;/p&gt; 4327 - &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-1"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/atproto-for-fun-and-blogging</id><summary type="html">&lt;p&gt;While &lt;a href="https://bsky.app"&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"&gt;moving&lt;/a&gt; towards &lt;a href="https://anil.recoil.org/"&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 class="contact" href="https://martin.kleppmann.com"&gt;Martin Kleppmann&lt;/a&gt;'s hard work on the &amp;quot;&lt;a href="https://atproto.com/"&gt;AT Protocol&lt;/a&gt;&amp;quot; that underpins the Bluesky network. Martin recently gave us a &lt;a href="https://talks.cam.ac.uk/talk/index/224767"&gt;deep-dive into the AT proto&lt;/a&gt; in the Cambridge &lt;a href="https://www.cl.cam.ac.uk/research/security/"&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"&gt;his paper&lt;/a&gt; on the subject which explains the technical architecture extremely clearly.&lt;/p&gt; 4327 + &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-1"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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">&lt;p&gt;While &lt;a href="https://bsky.app"&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"&gt;moving&lt;/a&gt; towards &lt;a href="https://anil.recoil.org/"&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 class="contact" href="https://martin.kleppmann.com"&gt;Martin Kleppmann&lt;/a&gt;'s hard work on the &amp;quot;&lt;a href="https://atproto.com/"&gt;AT Protocol&lt;/a&gt;&amp;quot; that underpins the Bluesky network. Martin recently gave us a &lt;a href="https://talks.cam.ac.uk/talk/index/224767"&gt;deep-dive into the AT proto&lt;/a&gt; in the Cambridge &lt;a href="https://www.cl.cam.ac.uk/research/security/"&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"&gt;his paper&lt;/a&gt; on the subject which explains the technical architecture extremely clearly.&lt;/p&gt; 4328 4328 &lt;p&gt;&lt;a href="https://arxiv.org/pdf/2402.03239"&gt; &lt;figure class="image-center"&gt;&lt;img alt="" class="content-image" src="https://anil.recoil.org/images/atproto-paper-ss-1.webp" title="" /&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt; 4329 4329 &lt;/a&gt;&lt;/p&gt; 4330 4330 &lt;p&gt;One of the key problems this solves is one I'm having with using my &lt;a href="https://en.wikipedia.org/wiki/ActivityPub"&gt;ActivityPub&lt;/a&gt;-based services at the moment. Each of these services (like my &lt;a href="https://crank.recoil.org"&gt;video&lt;/a&gt; or &lt;a href="https://amok.recoil.org"&gt;microblog&lt;/a&gt; sites) do not share a common authentication system, and so each account is different. &lt;a class="contact" href="https://nick.recoil.org"&gt;Nick Ludlam&lt;/a&gt; and I are also thinking of renaming all of our services to go under the cleaner &lt;code&gt;recoil.org&lt;/code&gt; domain rather than a subdomain, but this involves a fairly error-prone &lt;a href="https://digitalflapjack.com/blog/hosting24/"&gt;migration&lt;/a&gt; that lacks &lt;a href="https://anil.recoil.org/ideas/activitypub-resilience"&gt;resilience&lt;/a&gt; to domain change changes since they are baked into the ActivityPub protocol messages. The AT Protocol underpinning Bluesky deals with all these by decoupling the underlying authentication and identity system, and the content that's flowing over the network.&lt;/p&gt; ··· 4504 4504 &lt;p&gt;&lt;span id="conclusion-para-0"&gt;There’s a hundred other tips and tricks 4505 4505 in my configuration which you can find &lt;a href="https://github.com/RyanGibb/nixos/tree/master/home/gui/wm"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt; 4506 4506 &lt;/section&gt; 4507 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/enter-the-matrix-hookshot</id><summary type="html">&lt;p&gt;We've been happy users of &lt;a href="https://matrix.org"&gt;Matrix&lt;/a&gt; for our group communications in the &lt;a href="https://www.cst.cam.ac.uk/research/eeg"&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"&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!&lt;/p&gt; 4507 + &lt;/article&gt;</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">&lt;p&gt;We've been happy users of &lt;a href="https://matrix.org"&gt;Matrix&lt;/a&gt; for our group communications in the &lt;a href="https://www.cst.cam.ac.uk/research/eeg"&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"&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!&lt;/p&gt; 4508 4508 &lt;p&gt;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).&lt;/p&gt; 4509 4509 &lt;p&gt;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 running it with a Yaml config of this nature:&lt;/p&gt; 4510 4510 &lt;pre&gt;&lt;code&gt;bridge: ··· 4556 4556 &lt;/p&gt; 4557 4557 &lt;p&gt;&lt;figure class="image-center"&gt;&lt;img alt="But it picked up my post! First!" class="content-image" src="https://anil.recoil.org/images/hookshot-ss-3.webp" title="But it picked up my post! First!" /&gt;&lt;figcaption&gt;But it picked up my post! First!&lt;/figcaption&gt;&lt;/figure&gt; 4558 4558 &lt;/p&gt; 4559 - &lt;p&gt;Hookshot supports a &lt;a href="https://matrix-org.github.io/matrix-hookshot/latest/index.html"&gt;variety of other&lt;/a&gt; services to bridge to as well, including &lt;a href="https://matrix-org.github.io/matrix-hookshot/latest/setup/webhooks.html"&gt;webhooks&lt;/a&gt; for arbitrary services. One of the most fun student projects I've supervised recently is &amp;quot;&lt;a href="https://anil.recoil.org/ideas/version-control-matrix"&gt;Decentralised Capability-based Code Collaboration using Matrix&lt;/a&gt;&amp;quot; in which &lt;a class="contact" href="https://bsky.app/profile/wedg.dev"&gt;Samuel Wedgwood&lt;/a&gt; built Git-patches-over-Matrix. If anyone wants to pick up on that and build a &amp;quot;real&amp;quot; version, perhaps we could use this for peer-to-peer coding! It might work really well with coding copilots, as they have a chat based interface anyway...&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/fpgas-hardcaml</id><summary type="html">&lt;p&gt;With the vast amount of data we have these days for our &lt;a href="https://anil.recoil.org/projects/plancomp"&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"&gt;twelve years ago&lt;/a&gt; in the form of &lt;a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array"&gt;FPGAs&lt;/a&gt;!&lt;/p&gt; 4559 + &lt;p&gt;Hookshot supports a &lt;a href="https://matrix-org.github.io/matrix-hookshot/latest/index.html"&gt;variety of other&lt;/a&gt; services to bridge to as well, including &lt;a href="https://matrix-org.github.io/matrix-hookshot/latest/setup/webhooks.html"&gt;webhooks&lt;/a&gt; for arbitrary services. One of the most fun student projects I've supervised recently is &amp;quot;&lt;a href="https://anil.recoil.org/ideas/version-control-matrix"&gt;Decentralised Capability-based Code Collaboration using Matrix&lt;/a&gt;&amp;quot; in which &lt;a class="contact" href="https://bsky.app/profile/wedg.dev"&gt;Samuel Wedgwood&lt;/a&gt; built Git-patches-over-Matrix. If anyone wants to pick up on that and build a &amp;quot;real&amp;quot; version, perhaps we could use this for peer-to-peer coding! It might work really well with coding copilots, as they have a chat based interface anyway...&lt;/p&gt;</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">&lt;p&gt;With the vast amount of data we have these days for our &lt;a href="https://anil.recoil.org/projects/plancomp"&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"&gt;twelve years ago&lt;/a&gt; in the form of &lt;a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array"&gt;FPGAs&lt;/a&gt;!&lt;/p&gt; 4560 4560 &lt;p&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 class="contact" href="https://mynameismwd.org"&gt;Michael Dales&lt;/a&gt; work on &lt;a href="https://github.com/quantifyearth/yirgacheffe"&gt;Yirgacheffe&lt;/a&gt; or &lt;a class="contact" href="https://github.com/omarathon"&gt;Omar Tanner&lt;/a&gt;'s work on in-memory &lt;a href="https://anil.recoil.org/ideas/compressive-geospatial"&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 &lt;a href="https://danluu.com/why-hardware-development-is-hard/"&gt;Verilog&lt;/a&gt; and program in our favourite high-level language...OCaml! &lt;a class="contact" href="https://kcsrk.info"&gt;KC Sivaramakrishnan&lt;/a&gt; and I have started making a list of resources for programming FPGAs in OCaml for our own education.&lt;/p&gt; 4561 4561 &lt;p&gt;HardCaml was originally a side project by &lt;a href="https://www.ujamjar.com"&gt;Andy Ray&lt;/a&gt;. He gave a great presentation about it at &lt;a href="https://www.ujamjar.com/presentations/orconf2015.html"&gt;ORConf 2015&lt;/a&gt;. Later on in the project's lifecycle, he moved it to being maintained by &lt;a href="https://janestreet.com"&gt;Jane Street&lt;/a&gt;, where is used in production and is &lt;a href="https://github.com/janestreet/hardcaml"&gt;open source&lt;/a&gt;. The first two resources to learn about HardCaml are to listen to the &lt;a href="https://www.youtube.com/watch?v=GJX5VbKvh90"&gt;Signals and Threads episode with Andy&lt;/a&gt;, and then to &lt;a href="https://arxiv.org/pdf/2312.15035"&gt;read the 2023 paper&lt;/a&gt;:&lt;/p&gt; 4562 4562 &lt;blockquote&gt; ··· 4702 4702 &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; 4703 4703 &lt;p&gt;Invoke as (e.g.,) &lt;code&gt;rf Justfile&lt;/code&gt;. Alternatively, as a one-liner:&lt;/p&gt; 4704 4704 &lt;pre class="language-bash z-code"&gt;&lt;code class="language-bash"&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-variable z-other z-readwrite z-assignment z-shell"&gt;F&lt;/span&gt;&lt;span class="z-keyword z-operator z-assignment z-shell"&gt;=&lt;/span&gt;&lt;span class="z-string z-unquoted z-shell"&gt;Justfile&lt;/span&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;/span&gt;&lt;span class="z-keyword z-operator z-logical z-continue z-shell"&gt;;&lt;/span&gt; &lt;span class="z-keyword z-control z-loop z-while z-shell"&gt;while&lt;/span&gt; &lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;!&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; eza&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;l&lt;/span&gt; &lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-punctuation z-definition z-variable z-shell"&gt;$&lt;/span&gt;&lt;span class="z-punctuation z-section z-expansion z-parameter z-begin z-shell"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-variable z-other z-readwrite z-shell"&gt;D&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-keyword z-operator z-assignment z-shell"&gt;:=&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;.&lt;/span&gt;&lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-punctuation z-section z-expansion z-parameter z-end z-shell"&gt;}&lt;/span&gt;&lt;/span&gt;/&lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-punctuation z-definition z-variable z-shell"&gt;$&lt;/span&gt;&lt;span class="z-variable z-other z-readwrite z-shell"&gt;F&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="z-keyword z-operator z-logical z-continue z-shell"&gt;;&lt;/span&gt; &lt;span class="z-keyword z-control z-loop z-do z-shell"&gt;do&lt;/span&gt; &lt;span class="z-support z-function z-test z-begin z-shell"&gt;[&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; &lt;span class="z-string z-quoted z-double z-shell"&gt;&lt;span class="z-punctuation z-definition z-string z-begin z-shell"&gt;&amp;quot;&lt;/span&gt;&lt;span class="z-meta z-group z-expansion z-command z-parens z-shell"&gt;&lt;span class="z-punctuation z-definition z-variable z-shell"&gt;$&lt;/span&gt;&lt;span class="z-punctuation z-section z-parens z-begin z-shell"&gt;(&lt;/span&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;realpath&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; &lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-punctuation z-definition z-variable z-shell"&gt;$&lt;/span&gt;&lt;span class="z-variable z-other z-readwrite z-shell"&gt;D&lt;/span&gt;&lt;/span&gt;/&lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-punctuation z-definition z-variable z-shell"&gt;$&lt;/span&gt;&lt;span class="z-variable z-other z-readwrite z-shell"&gt;F&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="z-punctuation z-section z-parens z-end z-shell"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="z-punctuation z-definition z-string z-end z-shell"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="z-keyword z-operator z-logical z-shell"&gt;==&lt;/span&gt; &lt;span class="z-string z-quoted z-double z-shell"&gt;&lt;span class="z-punctuation z-definition z-string z-begin z-shell"&gt;&amp;quot;&lt;/span&gt;/&lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-punctuation z-definition z-variable z-shell"&gt;$&lt;/span&gt;&lt;span class="z-variable z-other z-readwrite z-shell"&gt;F&lt;/span&gt;&lt;/span&gt;&lt;span class="z-punctuation z-definition z-string z-end z-shell"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="z-support z-function z-test z-end z-shell"&gt;]&lt;/span&gt;&lt;/span&gt; &lt;span class="z-keyword z-operator z-logical z-and z-shell"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="z-keyword z-control z-flow z-break z-shell"&gt;break&lt;/span&gt;&lt;span class="z-keyword z-operator z-logical z-continue z-shell"&gt;;&lt;/span&gt; &lt;span class="z-variable z-other z-readwrite z-assignment z-shell"&gt;D&lt;/span&gt;&lt;span class="z-keyword z-operator z-assignment z-shell"&gt;=&lt;/span&gt;&lt;span class="z-string z-unquoted z-shell"&gt;&lt;span class="z-meta z-group z-expansion z-parameter z-shell"&gt;&lt;span class="z-punctuation z-definition z-variable z-shell"&gt;$&lt;/span&gt;&lt;span class="z-variable z-other z-readwrite z-shell"&gt;D&lt;/span&gt;&lt;/span&gt;/..&lt;/span&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;/span&gt;&lt;span class="z-keyword z-operator z-logical z-continue z-shell"&gt;;&lt;/span&gt; &lt;span class="z-keyword z-control z-loop z-end z-shell"&gt;done&lt;/span&gt;&lt;span class="z-keyword z-operator z-logical z-continue z-shell"&gt;;&lt;/span&gt; &lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-support z-function z-unset z-shell"&gt;unset&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; D&lt;/span&gt; 4705 - &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ai-contamination-of-papers</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://toao.com"&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"&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:&lt;/p&gt; 4705 + &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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;p&gt;&lt;a class="contact" href="https://toao.com"&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"&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:&lt;/p&gt; 4706 4706 &lt;blockquote&gt; 4707 4707 &lt;p&gt;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. 4708 4708 &lt;cite&gt;-- 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"&gt;The Conversation&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt; ··· 4997 4997 deployed to ESP32 sensors while Josh continues to hack on the 4998 4998 ESP32.&lt;/span&gt;&lt;/p&gt; 4999 4999 &lt;/section&gt; 5000 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/forests-spatial-resolution</id><summary type="html">&lt;p&gt;There's a &lt;a href="https://www.science.org/doi/10.1126/science.adt6811"&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 &lt;em&gt;too&lt;/em&gt; good to be accurate for forest carbon estimation.&lt;/p&gt; 5000 + &lt;/article&gt;</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">&lt;p&gt;There's a &lt;a href="https://www.science.org/doi/10.1126/science.adt6811"&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 &lt;em&gt;too&lt;/em&gt; good to be accurate for forest carbon estimation.&lt;/p&gt; 5001 5001 &lt;blockquote&gt; 5002 5002 &lt;p&gt;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. 5003 5003 [...] ··· 5448 5448 &lt;h1 id="search-and-replace-in-project"&gt;&lt;span class="todo TODO"&gt;TODO&lt;/span&gt; search and replace in project&lt;/h1&gt; 5449 5449 &lt;p&gt;&lt;span id="search-and-replace-in-project-para-0"&gt;&lt;a href="https://github.com/hungyiloo/hungyi.net/blob/archive-2024/content/posts/doom-emacs-search-replace-project.org"&gt;https://github.com/hungyiloo/hungyi.net/blob/archive-2024/content/posts/doom-emacs-search-replace-project.org&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 5450 5450 &lt;/section&gt; 5451 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/carbon-credits-vs-offsets</id><summary type="html">&lt;p&gt;The terms &lt;a href="https://en.wikipedia.org/wiki/Carbon_offsets_and_credits"&gt;carbon credits and carbon offsets&lt;/a&gt; are often used interchangeably, 5451 + &lt;/article&gt;</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">&lt;p&gt;The terms &lt;a href="https://en.wikipedia.org/wiki/Carbon_offsets_and_credits"&gt;carbon credits and carbon offsets&lt;/a&gt; are often used interchangeably, 5452 5452 but are in fact two distinct concepts. I've spent a nice Sunday morning 5453 5453 reading up on some &lt;a href="https://ssir.org/articles/entry/forest-contributions-carbon-offsets"&gt;recent articles&lt;/a&gt; that &lt;a class="contact" href="https://en.wikipedia.org/wiki/Bhaskar_Vira"&gt;Bhaskar Vira&lt;/a&gt; sent me which introduce a 5454 5454 &lt;em&gt;third&lt;/em&gt; term, known as &lt;em&gt;&amp;quot;carbon contributions&amp;quot;&lt;/em&gt;. Rather than this adding confusion, I ··· 5913 5913 hydra&lt;/a&gt;&lt;/li&gt; 5914 5914 &lt;/ul&gt; 5915 5915 &lt;/section&gt; 5916 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/computational-storage-for-vector-dbs</id><summary type="html">&lt;h1&gt;Using computational SSDs for vector databases&lt;/h1&gt; 5916 + &lt;/article&gt;</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">&lt;h1&gt;Using computational SSDs for vector databases&lt;/h1&gt; 5917 5917 &lt;p&gt;This is an idea proposed in 2025 as a Cambridge Computer Science Part III or MPhil project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;.&lt;/p&gt; 5918 5918 &lt;p&gt;Large &lt;a href="https://en.wikipedia.org/wiki/Foundation_model"&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 &amp;quot;close&amp;quot; to each other are semantically related. &lt;a href="https://en.wikipedia.org/wiki/Nearest_neighbor_search"&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/"&gt;RAG&lt;/a&gt; systems for LLMs or search-by-example for satellite imagery.&lt;/p&gt; 5919 5919 &lt;p&gt;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"&gt;big evidence synthesis&lt;/a&gt; project, each of which generates dozens of embeddings. For global satellite datasets for &lt;a href="https://anil.recoil.org/projects/rsn"&gt;remote sensing of nature&lt;/a&gt; at 10m scale this is easily petabytes per year (the raw data here would need to come from tape drives).&lt;/p&gt; ··· 5927 5927 &lt;p&gt;https://arxiv.org/abs/2405.12497&lt;/p&gt; 5928 5928 &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-1"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li id="fn-2"&gt; 5929 5929 &lt;p&gt;https://arxiv.org/abs/2106.00882&lt;/p&gt; 5930 - &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-2"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/deepseek-r1-advances</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; posted a link to this excellent deepdive by &lt;a href="https://www.linkedin.com/in/prasadraje/"&gt;Prasad Raje&lt;/a&gt; of Udemy into the advances that 5930 + &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-2"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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;p&gt;&lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; posted a link to this excellent deepdive by &lt;a href="https://www.linkedin.com/in/prasadraje/"&gt;Prasad Raje&lt;/a&gt; of Udemy into the advances that 5931 5931 &lt;a href="https://deepseek.com"&gt;DeepSeek&lt;/a&gt; R1 has made from a perspective of the core 5932 5932 technology.&lt;/p&gt; 5933 5933 &lt;blockquote&gt; ··· 5937 5937 &lt;li&gt;Multi-token prediction (MTP): [...] you compute more than 1 token and send the aggregate error to back propagate. The intuition is that you get more changes made to the model weights in each training step, thus reducing the total training steps needed [...] Deepseek took this idea further, added innovations of their own (Sequential vs parallel MTP) and used this to reduce training time. 5938 5938 &lt;cite&gt; -- &lt;a href="https://www.linkedin.com/pulse/deepdive-deepseek-prasad-raje-jakqc"&gt;Prasad Raje&lt;/a&gt;&lt;/li&gt; 5939 5939 &lt;/ul&gt; 5940 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/digitisation-of-insects</id><summary type="html">&lt;h1&gt;Affordable digitisation of insect collections using photogrammetry&lt;/h1&gt; 5940 + &lt;/blockquote&gt;</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">&lt;h1&gt;Affordable digitisation of insect collections using photogrammetry&lt;/h1&gt; 5941 5941 &lt;p&gt;This is an idea proposed in 2025 as a Cambridge Computer Science Part III or MPhil project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://www.cambridgephilosophicalsociety.org/funding/henslow-fellows/dr-tiffany-ki"&gt;Tiffany Ki&lt;/a&gt; and &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/dr-edgar-turner"&gt;Edgar Turner&lt;/a&gt;.&lt;/p&gt; 5942 5942 &lt;p&gt;Insects dominate animal biodiversity and are sometimes called &amp;quot;&lt;a href="https://faculty.washington.edu/timbillo/Readings%20and%20documents/ABRIDGED%20READINGS%20for%20PERU/Wilson_1987_Little_things_that_run.pdf"&gt;the little things that run the world&lt;/a&gt;&amp;quot;. 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;sup&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#fn-1" id="ref-1-fn-1"&gt;[1]&lt;/a&gt;&lt;/sup&gt; yet the evidence behind such declines is highly biassed towards the Global North and much is drawn from short-term biodiversity datasets&lt;sup&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#fn-2" id="ref-1-fn-2"&gt;[2]&lt;/a&gt;&lt;/sup&gt; &lt;sup&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#fn-3" id="ref-1-fn-3"&gt;[3]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; 5943 5943 &lt;p&gt;The &lt;a href="https://www.museum.zoo.cam.ac.uk/insects"&gt;Insect Collection&lt;/a&gt; at the University Museum of Zoology, Cambridge holds over 1.2 million specimens. These include specimens collected from the early 19th century to the present day. Most specimens remain undocumented and unavailable for analysis. However, they contain data that are critical to understanding long-term species and community responses to anthropogenic change, and vital to evaluating whether short-term declines are representative of longer-term trends&lt;sup&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#fn-4" id="ref-1-fn-4"&gt;[4]&lt;/a&gt;&lt;/sup&gt; &lt;sup&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#fn-5" id="ref-1-fn-5"&gt;[5]&lt;/a&gt;&lt;/sup&gt;. As such, unlocking these insect collections is of paramount importance, and the large-scale nature of these collections necessitates the development of an efficient and effective digitisation process.&lt;/p&gt; ··· 5961 5961 &lt;p&gt;Kharouba et al. (2018) &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2017.0405"&gt;Using insect natural history collections to study global change impacts: challenges and opportunities&lt;/a&gt;. Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences, 374, 20170405. DOI: 10.1098/rstb.2017.0405&lt;/p&gt; 5962 5962 &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-4"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li id="fn-5"&gt; 5963 5963 &lt;p&gt;Meineke et al. (2018) &lt;a href="https://royalsocietypublishing.org/doi/10.1098/rstb.2017.0386"&gt;Biological collections for understanding biodiversity in the Anthropocene&lt;/a&gt;. Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences, 374, 20170386. DOI: 10.1098/rstb.2017.0386&lt;/p&gt; 5964 - &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-5"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/custom-homebrew-taps</id><summary type="html">&lt;p&gt;Now that I've &lt;a href="https://anil.recoil.org/notes/bushel-lives"&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"&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/"&gt;self-hosted&lt;/a&gt; infrastructure.&lt;/p&gt; 5964 + &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-5"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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">&lt;p&gt;Now that I've &lt;a href="https://anil.recoil.org/notes/bushel-lives"&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"&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/"&gt;self-hosted&lt;/a&gt; infrastructure.&lt;/p&gt; 5965 5965 &lt;p&gt;I mainly use a variety of macOS and Linux hosts&lt;sup&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#fn-1" id="ref-1-fn-1"&gt;[1]&lt;/a&gt;&lt;/sup&gt; and I want a workflow as simple as &amp;quot;&lt;code&gt;brew install avsm/ocaml/srcsetter&lt;/code&gt;&amp;quot; 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"&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"&gt;responsive images&lt;/a&gt; on this website. Luckily, Homebrew has made this &lt;em&gt;really&lt;/em&gt; easy for us! They have a &lt;a href="https://docs.brew.sh/BrewTestBot"&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 workflow.&lt;/p&gt; 5966 5966 &lt;p&gt;First, we need to set up a GitHub Homebrew &amp;quot;tap&amp;quot; repository. Mine is &lt;a href="https://github.com/avsm/homebrew-ocaml"&gt;avsm/homebrew-ocaml&lt;/a&gt; which allows for the tap to be referred to as &lt;code&gt;avsm/ocaml&lt;/code&gt; (Homebrew special-cases these to expand to the full GitHub repository). We then add in a couple of GitHub Actions to activate the testbot:&lt;/p&gt; 5967 5967 &lt;ul&gt; ··· 6064 6064 final recommendation and providing (if appropriate) a list of corrections that 6065 6065 must be satisfied for the candidate to pass.&lt;/p&gt; 6066 6066 &lt;p&gt;Finally, the University pays a (risibly small) honorarium to the external 6067 - examiner for doing the viva plus reasonable expenses.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/credible-credit-principles</id><summary type="html">&lt;p&gt;My colleagues &lt;a class="contact" href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield"&gt;Thomas Swinfield&lt;/a&gt; and &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/eft20"&gt;Eleanor Toye Scott&lt;/a&gt; lead the publication of a comprehensive 6067 + examiner for doing the viva plus reasonable expenses.&lt;/p&gt;</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">&lt;p&gt;My colleagues &lt;a class="contact" href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield"&gt;Thomas Swinfield&lt;/a&gt; and &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/eft20"&gt;Eleanor Toye Scott&lt;/a&gt; lead the publication of a comprehensive 6068 6068 &lt;a href="https://www.cambridge.org/engage/coe/article-details/679385946dde43c9082f7009"&gt;report&lt;/a&gt; of the steps the voluntary carbon market needs to take 6069 6069 to restore its scientific credibility, with input from many of us in &lt;a href="https://anil.recoil.org/projects/4c"&gt;4C&lt;/a&gt; and beyond.&lt;/p&gt; 6070 6070 &lt;blockquote&gt; ··· 6077 6077 &lt;li&gt;integrating DMRV methods into carbon and biodiversity accounting standards to reduce the financial and administrative burdens on nature-based projects and the local communities participating in or affected by them.&lt;/li&gt; 6078 6078 &lt;/ul&gt; 6079 6079 &lt;/blockquote&gt; 6080 - &lt;p&gt;This paper represents three years of hard work from the team on trying to blend remote sensing with carbon quantification. For more reading on the topic, you may also wish to browse the full &lt;a href="https://4c.cst.cam.ac.uk/publications"&gt;4C publication list&lt;/a&gt; for the firehose of activity from the centre.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/bushel-lives</id><summary type="html">&lt;p&gt;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/"&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"&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"&gt;Blosxom&lt;/a&gt;; then the forth rewrite around 2013 got turned into a &lt;a href="https://anil.recoil.org/projects/unikernels"&gt;unikernel&lt;/a&gt; in MirageOS; then the &lt;a href="https://web.archive.org/web/20220118200046/https://anil.recoil.org/"&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"&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"&gt;Rube Goldberg&lt;/a&gt; tradition of helping me learn the latest and greatest in systems technology.&lt;/p&gt; 6080 + &lt;p&gt;This paper represents three years of hard work from the team on trying to blend remote sensing with carbon quantification. For more reading on the topic, you may also wish to browse the full &lt;a href="https://4c.cst.cam.ac.uk/publications"&gt;4C publication list&lt;/a&gt; for the firehose of activity from the centre.&lt;/p&gt;</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">&lt;p&gt;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/"&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"&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"&gt;Blosxom&lt;/a&gt;; then the forth rewrite around 2013 got turned into a &lt;a href="https://anil.recoil.org/projects/unikernels"&gt;unikernel&lt;/a&gt; in MirageOS; then the &lt;a href="https://web.archive.org/web/20220118200046/https://anil.recoil.org/"&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"&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"&gt;Rube Goldberg&lt;/a&gt; tradition of helping me learn the latest and greatest in systems technology.&lt;/p&gt; 6081 6081 &lt;p&gt;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/"&gt;Rust-like type system features&lt;/a&gt; activated, including rather exciting &lt;a href="https://popl25.sigplan.org/details/POPL-2025-popl-research-papers/23/Data-Race-Freedom-la-Mode"&gt;data-race freedom&lt;/a&gt; work that just won a best paper award at POPL 2025. It's normally difficult to work on continuously moving compilers, but Diana Kalinichenko did a tremendous amount of work into making it usable with opam out of the box, and this post documents the journey to getting this website live.&lt;/p&gt; 6082 6082 &lt;h2&gt;Getting the oxidised compiler&lt;/h2&gt; 6083 6083 &lt;p&gt;Firstly, we did some groundwork a few months ago by adding support into the opam-repository for &lt;a href="https://github.com/ocaml/opam-repository/pull/26471"&gt;bootstrap versions&lt;/a&gt; of dune, menhir and ocamlfind. These are used to build the Jane Street version of the OCaml compiler, which is published as an &lt;a href="https://github.com/janestreet/opam-repository/tree/with-extensions"&gt;opam-repository#with-extensions&lt;/a&gt;.&lt;/p&gt; ··· 6318 6318 a backend, so I have started using the still actively developed 6319 6319 &lt;a href="https://www.luatex.org/"&gt;&lt;code&gt;luatex&lt;/code&gt;&lt;/a&gt; backend driver instead by passing 6320 6320 &lt;code&gt;-lualatex&lt;/code&gt; to &lt;a href="https://mgeier.github.io/latexmk.html"&gt;&lt;code&gt;latexmk&lt;/code&gt;&lt;/a&gt; and that has 6321 - worked fine so far&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-ce-llm-2</id><summary type="html">&lt;p&gt;We have just updated our &lt;a href="https://anil.recoil.org/papers/2024-ce-llm"&gt;preprint&lt;/a&gt; on using LLMs for evidence decision support with more evaluation results and corrections from peer review.&lt;/p&gt; 6321 + worked fine so far&lt;/p&gt;</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">&lt;p&gt;We have just updated our &lt;a href="https://anil.recoil.org/papers/2024-ce-llm"&gt;preprint&lt;/a&gt; on using LLMs for evidence decision support with more evaluation results and corrections from peer review.&lt;/p&gt; 6322 6322 &lt;blockquote&gt; 6323 6323 &lt;p&gt;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 &amp;quot;out-of-the-box&amp;quot; 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.&lt;/p&gt; 6324 6324 &lt;/blockquote&gt; ··· 6856 6856 &lt;/div&gt; 6857 6857 &lt;/div&gt; 6858 6858 &lt;/section&gt; 6859 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-life-3</id><summary type="html">&lt;p&gt;After some years of hard work, our &lt;a href="https://anil.recoil.org/projects/life"&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"&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"&gt;biodiversity crisis&lt;/a&gt;, we do not yet have robust spatially explicit metrics that &lt;em&gt;quantify&lt;/em&gt; 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;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-life-3"&gt;409 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 6859 + &lt;/article&gt;</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">&lt;p&gt;After some years of hard work, our &lt;a href="https://anil.recoil.org/projects/life"&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"&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"&gt;biodiversity crisis&lt;/a&gt;, we do not yet have robust spatially explicit metrics that &lt;em&gt;quantify&lt;/em&gt; 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;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-life-3"&gt;409 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 6860 6860 6861 6861 &lt;blockquote class="paper noquote"&gt; 6862 6862 &lt;div class="paper-info"&gt; ··· 7074 7074 &lt;p&gt;I’m using the &lt;a href="https://aantron.github.io/dream/"&gt;Dream&lt;/a&gt; library for &lt;a href="https//ocaml.org/"&gt;OCaml&lt;/a&gt;, which has both built in routing and templating. I made sure to keep the URL layout that Hugo used as best I could, so in theory the transition shouldn’t be noticed by most people, as all the content remains at the same URL it was.&lt;/p&gt; 7075 7075 &lt;p&gt;Using a functional language for this kind of work actually maps very nicely: all I’m doing is taking data in one format and presenting it in another, so functional transforms are what I need. The way the website is stored on disk for a static site generator means I'm mostly doing a translation of that structure into the URIs for the website, so I was starting from a good place for this project.&lt;/p&gt; 7076 7076 &lt;p&gt;Thanks to Hugo encouraging me to use shortcodes for all resources in a page (I never used the markdown image tags), it was low effort to ensure all resources in a page have their own URL to render them on demand, as I don’t ever need to parse the markdown myself beyond pulling out shortcodes. For images I’m just using &lt;a href="https://gallium.inria.fr/camlimages/"&gt;Camlimages&lt;/a&gt; which is quite an old library and doesn’t support all the image formats I have acquired over 20 plus years, but it’s enough to get started with. Performance wise, this will be a regression, as images are resized and stored in a small cache the first time they’re viewed, but given most people consume my site via RSS, when I add a new page and look at it myself to check it works, it’ll mean for most folk they don’t see that.&lt;/p&gt; 7077 - &lt;p&gt;The aim so far has just been to get as close to the Hugo version as I can without changing the data on disk. What I'm looking forward to doing now I've switched is making changes to the on disk representation to let me simplify the OCaml code, and add some new fun features.&lt;/p&gt;</summary><category term="Digital Flapjack"></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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-ai-conhorizon-1</id><summary type="html">&lt;p&gt;Back in July 2024, a large group of conservation and computer scientists got together in the &lt;a href="https://conservation.cam.ac.uk"&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.&lt;/p&gt; 7077 + &lt;p&gt;The aim so far has just been to get as close to the Hugo version as I can without changing the data on disk. What I'm looking forward to doing now I've switched is making changes to the on disk representation to let me simplify the OCaml code, and add some new fun features.&lt;/p&gt;</summary><category term="Digital Flapjack"></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">&lt;p&gt;Back in July 2024, a large group of conservation and computer scientists got together in the &lt;a href="https://conservation.cam.ac.uk"&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.&lt;/p&gt; 7078 7078 &lt;p&gt;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;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-ai-conhorizon-1"&gt;118 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 7079 7079 7080 7080 &lt;blockquote class="paper noquote"&gt; ··· 7108 7108 &lt;/ul&gt;&lt;/li&gt; 7109 7109 &lt;/ul&gt; 7110 7110 &lt;/section&gt; 7111 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-loco-emissions-1</id><summary type="html">&lt;p&gt;Customers of online services may want to take carbon emissions into account 7111 + &lt;/article&gt;</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">&lt;p&gt;Customers of online services may want to take carbon emissions into account 7112 7112 when deciding which service to use, but it's currently difficult to do so due 7113 7113 to the lack of reliable emissions data that is comparable across online 7114 7114 services. There's a lot of muddled data out there, and calculating accurate ··· 7133 7133 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-loco-emissions.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 7134 7134 &lt;/p&gt; 7135 7135 &lt;/div&gt; 7136 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-loco-shark-1</id><summary type="html">&lt;p&gt;All the work we've been doing on biodiversity (such as &lt;a href="https://anil.recoil.org/projects/life"&gt;LIFE&lt;/a&gt;) comes at 7136 + &lt;/blockquote&gt;</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">&lt;p&gt;All the work we've been doing on biodiversity (such as &lt;a href="https://anil.recoil.org/projects/life"&gt;LIFE&lt;/a&gt;) comes at 7137 7137 a fairly large computation and storage cost due to the amount of data that we 7138 7138 churn through. This gets worse when you consider the exploratory nature of 7139 7139 science -- we sometimes just need to mess around with the large dataset to test ··· 7159 7159 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-loco-shark.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 7160 7160 &lt;/p&gt; 7161 7161 &lt;/div&gt; 7162 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-loco-carbonres-1</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://ryan.freumh.org"&gt;Ryan Gibb&lt;/a&gt; and I have been thinking about how the current Internet architecture fails to treat the carbon emissions 7162 + &lt;/blockquote&gt;</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;p&gt;&lt;a class="contact" href="https://ryan.freumh.org"&gt;Ryan Gibb&lt;/a&gt; and I have been thinking about how the current Internet architecture fails to treat the carbon emissions 7163 7163 associated with networked services as a first-class metric. So when the &lt;a href="https://locos.codeberg.page/loco2024/"&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"&gt;DNS server written in OCaml&lt;/a&gt; to actively wake machines running networked services as a side effect of the name 7164 7164 resolution.&lt;/p&gt; 7165 7165 &lt;p&gt;Extending DNS means that we maintain compatibility with existing Internet ··· 7178 7178 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-loco-carbonres.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 7179 7179 &lt;/p&gt; 7180 7180 &lt;/div&gt; 7181 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-loco-terracorder-1</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&gt;Josh Millar&lt;/a&gt; and I have been having great fun designing embedded systems for 7181 + &lt;/blockquote&gt;</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;p&gt;&lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&gt;Josh Millar&lt;/a&gt; and I have been having great fun designing embedded systems for 7182 7182 cooperative biodiversity monitoring. Josh presented our work over at &lt;a href="https://www.sicsa.ac.uk/loco/loco2024/"&gt;LOCO 7183 7183 2024&lt;/a&gt; with an abstract on the 7184 7184 Terracorder project. Read more if you enjoy a combination of machine learning ··· 7308 7308 &lt;/div&gt; 7309 7309 &lt;/div&gt; 7310 7310 &lt;/section&gt; 7311 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ai-for-science-2024</id><summary type="html">&lt;p&gt;I got invited to join the Royal Society and DeepMind to a summit on 7311 + &lt;/article&gt;</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">&lt;p&gt;I got invited to join the Royal Society and DeepMind to a summit on 7312 7312 how AI is revolutionising scientific discovery and trotted along with 7313 7313 &lt;a class="contact" href="mailto:jon.crowcroft@cl.cam.ac.uk"&gt;Jon Crowcroft&lt;/a&gt;. This event is hot on the heels of the 7314 7314 excellent RS report on &lt;a href="https://royalsociety.org/news-resources/projects/science-in-the-age-of-ai/"&gt;Science in the Age of AI&lt;/a&gt; ··· 7852 7852 &lt;p&gt;These conclude my live notes! Beyond the notes here, the corridor conversations were incredibly 7853 7853 useful for me: I have lots of connections to make next. Any errors in these 7854 7854 notes are all mine, of course; I mainly took them for myself, but I hope it's 7855 - useful for you to have put them online as well.&lt;/p&gt;</summary><category term="Anil Madhavapeddy's feed"></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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-cclr-carbon-1</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://www.cst.cam.ac.uk/people/smc70"&gt;Sophie Chapman&lt;/a&gt; lead an &lt;a href="https://anil.recoil.org/ideas/legal-aspects-of-credits"&gt;effort&lt;/a&gt; to explore a novel legal framework for forest carbon credits 7855 + useful for you to have put them online as well.&lt;/p&gt;</summary><category term="Anil Madhavapeddy's feed"></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;p&gt;&lt;a class="contact" href="https://www.cst.cam.ac.uk/people/smc70"&gt;Sophie Chapman&lt;/a&gt; lead an &lt;a href="https://anil.recoil.org/ideas/legal-aspects-of-credits"&gt;effort&lt;/a&gt; to explore a novel legal framework for forest carbon credits 7856 7856 that separates carbon tenure (i.e. title and associated property rights to the 7857 7857 land and trees which store the carbon) from the carbon rights (i.e. title and 7858 7858 associated rights to monetise and manage the credits which ··· 7872 7872 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-cclr-carbon.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 7873 7873 &lt;/p&gt; 7874 7874 &lt;/div&gt; 7875 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-sensys-terracorder-1</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&gt;Josh Millar&lt;/a&gt; presented our work on biodiversity sensing over at &lt;a href="http://sensys.acm.org/2024/"&gt;ACM Sensys 2024&lt;/a&gt; in China. The &lt;a href="http://sensys.acm.org/2024/demos/"&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;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-sensys-terracorder-1"&gt;140 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 7875 + &lt;/blockquote&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;p&gt;&lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&gt;Josh Millar&lt;/a&gt; presented our work on biodiversity sensing over at &lt;a href="http://sensys.acm.org/2024/"&gt;ACM Sensys 2024&lt;/a&gt; in China. The &lt;a href="http://sensys.acm.org/2024/demos/"&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;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-sensys-terracorder-1"&gt;140 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 7876 7876 7877 7877 &lt;blockquote class="paper noquote"&gt; 7878 7878 &lt;div class="paper-info"&gt; ··· 7885 7885 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-sensys-terracorder.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 7886 7886 &lt;/p&gt; 7887 7887 &lt;/div&gt; 7888 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-ce-llm-1</id><summary type="html">&lt;p&gt;We have just uploaded a preprint on using LLMs for conservation evidence, based on our &lt;a href="https://anil.recoil.org/projects/ce"&gt;work&lt;/a&gt; on large-scale crawling of the academic literature. Well done in particular to &lt;a class="contact" href="mailto:ri301@cam.ac.uk"&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;/p&gt; 7888 + &lt;/blockquote&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">&lt;p&gt;We have just uploaded a preprint on using LLMs for conservation evidence, based on our &lt;a href="https://anil.recoil.org/projects/ce"&gt;work&lt;/a&gt; on large-scale crawling of the academic literature. Well done in particular to &lt;a class="contact" href="mailto:ri301@cam.ac.uk"&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;/p&gt; 7889 7889 7890 7890 &lt;blockquote class="paper noquote"&gt; 7891 7891 &lt;div class="paper-info"&gt; ··· 7897 7897 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-ce-llm.bib"&gt;BIB&lt;/a&gt; 7898 7898 &lt;/p&gt; 7899 7899 &lt;/div&gt; 7900 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-socc-murmuration-1</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://www.cl.cam.ac.uk/~sv440/"&gt;Smita Vijayakumar&lt;/a&gt; went along to Seattle to &lt;a href="https://acmsocc.org/2024/"&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;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-socc-murmuration-1"&gt;71 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 7900 + &lt;/blockquote&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;p&gt;&lt;a class="contact" href="https://www.cl.cam.ac.uk/~sv440/"&gt;Smita Vijayakumar&lt;/a&gt; went along to Seattle to &lt;a href="https://acmsocc.org/2024/"&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;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/2024-socc-murmuration-1"&gt;71 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 7901 7901 7902 7902 &lt;blockquote class="paper noquote"&gt; 7903 7903 &lt;div class="paper-info"&gt; ··· 7952 7952 &lt;/figure&gt; 7953 7953 &lt;/div&gt; 7954 7954 &lt;/div&gt; 7955 - &lt;p&gt;It is however, increadably slow - my graphics library isn't very well optimised, as usually on modern hardware it doesn't need it to push old-school VGA like graphics around, but running natively on my AMD Razen machine it was really quite poor, low single-digit frames per second. In part this I assume is related to Haiku not knowing about my fancy NVIDIA graphics card, and just using the stock framebuffer driver, and in part because OCaml doesn't know about Haiku enough to build a native binary and is instead using the bytecode backend.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1</id><summary type="html">&lt;p&gt;I got invited by &lt;a href="https://profiles.ucl.ac.uk/78591-serta%C3%A7-sehlikoglu"&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/"&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"&gt;planetary computing&lt;/a&gt;, with an overview of the &lt;a href="https://anil.recoil.org/projects/life"&gt;LIFE&lt;/a&gt; and &lt;a href="https://anil.recoil.org/papers/2024-food-life"&gt;FOOD&lt;/a&gt; papers.&lt;/p&gt; 7955 + &lt;p&gt;It is however, increadably slow - my graphics library isn't very well optimised, as usually on modern hardware it doesn't need it to push old-school VGA like graphics around, but running natively on my AMD Razen machine it was really quite poor, low single-digit frames per second. In part this I assume is related to Haiku not knowing about my fancy NVIDIA graphics card, and just using the stock framebuffer driver, and in part because OCaml doesn't know about Haiku enough to build a native binary and is instead using the bytecode backend.&lt;/p&gt;</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">&lt;p&gt;I got invited by &lt;a href="https://profiles.ucl.ac.uk/78591-serta%C3%A7-sehlikoglu"&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/"&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"&gt;planetary computing&lt;/a&gt;, with an overview of the &lt;a href="https://anil.recoil.org/projects/life"&gt;LIFE&lt;/a&gt; and &lt;a href="https://anil.recoil.org/papers/2024-food-life"&gt;FOOD&lt;/a&gt; papers.&lt;/p&gt; 7956 7956 7957 7957 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</summary><category term="Anil Madhavapeddy's feed"></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">&lt;article&gt; 7958 7958 &lt;div class="container"&gt; ··· 7971 7971 it all&lt;/h3&gt; 7972 7972 &lt;h3 id="dodo"&gt;DoDO&lt;/h3&gt; 7973 7973 &lt;/section&gt; 7974 - &lt;/article&gt;</summary><category term="ryan.freumh.org"></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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/socc-pc</id><summary type="html">&lt;p&gt;After some time away from cloud computing (due to my new focus on &lt;a href="https://anil.recoil.org/projects/life"&gt;conservation research&lt;/a&gt;), I served on the &lt;a href="https://acmsocc.org/2024/"&gt;ACM SOCC 2024&lt;/a&gt; program committee. It was quite interesting seeing the massive shift away from &amp;quot;traditional&amp;quot; cloud research (such as consensus protocols) towards many submissions aimed at accelerating machine learning workloads.&lt;/p&gt; 7974 + &lt;/article&gt;</summary><category term="ryan.freumh.org"></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">&lt;p&gt;After some time away from cloud computing (due to my new focus on &lt;a href="https://anil.recoil.org/projects/life"&gt;conservation research&lt;/a&gt;), I served on the &lt;a href="https://acmsocc.org/2024/"&gt;ACM SOCC 2024&lt;/a&gt; program committee. It was quite interesting seeing the massive shift away from &amp;quot;traditional&amp;quot; cloud research (such as consensus protocols) towards many submissions aimed at accelerating machine learning workloads.&lt;/p&gt; 7975 7975 &lt;p&gt;I also had a paper accepted there on &lt;a href="https://anil.recoil.org/papers/2024-socc-murmuration"&gt;decentralised scheduling&lt;/a&gt;, thanks to my former PhD student &lt;a class="contact" href="https://www.cl.cam.ac.uk/~sv440/"&gt;Smita Vijayakumar&lt;/a&gt; and her hard work on Murmuration!&lt;/p&gt;</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">&lt;article&gt; 7976 7976 &lt;div class="container"&gt; 7977 7977 &lt;span&gt; Previous: &lt;a href="2024-09-30.html"&gt;Mon 30 Sep 2024&lt;/a&gt; &lt;/span&gt; ··· 8136 8136 translations, hyper-specialised package managers&lt;/span&gt;&lt;/p&gt;&lt;/li&gt; 8137 8137 &lt;/ol&gt; 8138 8138 &lt;/section&gt; 8139 - &lt;/article&gt;</summary><category term="ryan.freumh.org"></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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/rs-ecorisk-day1</id><summary type="html">&lt;p&gt;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/"&gt;&amp;quot;How does ecological risk related to commercial risk?&amp;quot;&lt;/a&gt;, and am reporting on the &lt;a href="https://royalsociety.org/-/media/events/2024/10/ecological-risk/programme-booklet.pdf"&gt;morning session&lt;/a&gt;. The full program is being &lt;a href="https://www.youtube.com/watch?v=gVuxzand8RE"&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. 8139 + &lt;/article&gt;</summary><category term="ryan.freumh.org"></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">&lt;p&gt;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/"&gt;&amp;quot;How does ecological risk related to commercial risk?&amp;quot;&lt;/a&gt;, and am reporting on the &lt;a href="https://royalsociety.org/-/media/events/2024/10/ecological-risk/programme-booklet.pdf"&gt;morning session&lt;/a&gt;. The full program is being &lt;a href="https://www.youtube.com/watch?v=gVuxzand8RE"&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. 8140 8140 &lt;em&gt;(Update: partial &lt;a href="https://anil.recoil.org/#daytwo"&gt;day 2 notes&lt;/a&gt; now available below)&lt;/em&gt;&lt;/p&gt; 8141 8141 &lt;h2&gt;Opening Keynote by Sir Partha Dasgupta&lt;/h2&gt; 8142 8142 &lt;p&gt;The summit kicked off with a keynote by economist &lt;a href="https://en.wikipedia.org/wiki/Partha_Dasgupta"&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"&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.&lt;/p&gt; ··· 8822 8822 conflicts and optional dependencies to the package management 8823 8823 calculus&lt;/h3&gt; 8824 8824 &lt;/section&gt; 8825 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/hotnets-pc-2024</id><summary type="html">&lt;p&gt;I was on the program committee for &lt;a href="https://conferences.sigcomm.org/hotnets/2024/"&gt;HotNets 8825 + &lt;/article&gt;</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">&lt;p&gt;I was on the program committee for &lt;a href="https://conferences.sigcomm.org/hotnets/2024/"&gt;HotNets 8826 8826 2024&lt;/a&gt; this year, which was a 8827 8827 thoroughly enjoyable experience. The &lt;a href="https://conferences.sigcomm.org/hotnets/2024/accepted.html"&gt;list of accepted 8828 8828 papers&lt;/a&gt; is now out, ··· 9267 9267 completely unjustifiable and purely selfish negative. Which on the whole is a 9268 9268 good thing. Though having come back to this after a break for a couple of years, 9269 9269 I find I am even more sceptical of the whole process than I was. More later 9270 - perhaps, once I get my thoughts in order.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/mitigating-nbs-risk-paper</id><summary type="html">&lt;p&gt;Many of the questions around our recent &lt;a href="https://anil.recoil.org/papers/2023-naturecredits"&gt;Nature Sustainability commentary on NbS credits&lt;/a&gt; revolve around 9270 + perhaps, once I get my thoughts in order.&lt;/p&gt;</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">&lt;p&gt;Many of the questions around our recent &lt;a href="https://anil.recoil.org/papers/2023-naturecredits"&gt;Nature Sustainability commentary on NbS credits&lt;/a&gt; revolve around 9271 9271 &lt;em&gt;how&lt;/em&gt; to finance new projects if credible credits need to be ex-post. Our 9272 9272 latest paper published in Carbon Management on &lt;em&gt;&amp;quot;&lt;a href="https://anil.recoil.org/papers/2024-nbs-risk"&gt;Mitigating risk of credit reversal in nature-based climate solutions by optimally anticipating carbon release&lt;/a&gt;&amp;quot;&lt;/em&gt; tries to address this.&lt;/p&gt; 9273 9273 &lt;p&gt;The problem with selling ex-ante (future) carbon credits for (e.g.) a ··· 9297 9297 &lt;p&gt;There's still plenty of future work to be done -- we focus on avoided 9298 9298 deforestation projects in this paper, but afforestation projects could also be 9299 9299 modelled on similar principles. Do get in touch if you'd like to help assess 9300 - our methods!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-hope-bastion-1</id><summary type="html">&lt;p&gt;A very fun talk at &lt;a href="https://icfp24.sigplan.org/home/hope-2024"&gt;ACM HOPE 2024&lt;/a&gt; 9300 + our methods!&lt;/p&gt;</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">&lt;p&gt;A very fun talk at &lt;a href="https://icfp24.sigplan.org/home/hope-2024"&gt;ACM HOPE 2024&lt;/a&gt; 9301 9301 on some new work with &lt;a class="contact" href="https://web.eecs.umich.edu/~comar/"&gt;Cyrus Omar&lt;/a&gt; and &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt; on how we can formally specify 9302 9302 systems to be robust to code generation by AI agents. For instance, if you were 9303 9303 to ask GitHub Copilot to generate you code to filter endangered animals out of ··· 9318 9318 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-hope-bastion.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 9319 9319 &lt;/p&gt; 9320 9320 &lt;/div&gt; 9321 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/new-teaching-page</id><summary type="html">&lt;p&gt;There's a new &lt;a href="https://anil.recoil.org/notes/teaching"&gt;teaching&lt;/a&gt; page with my past and present courses, and links 9321 + &lt;/blockquote&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">&lt;p&gt;There's a new &lt;a href="https://anil.recoil.org/notes/teaching"&gt;teaching&lt;/a&gt; page with my past and present courses, and links 9322 9322 to the associated teaching materials. One of the nice things about most Cambridge 9323 9323 courses is that all the teaching materials are public, except for video recordings of 9324 9324 the lectures themselves.&lt;/p&gt;</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">&lt;article&gt; ··· 9536 9536 &lt;p&gt;&lt;span id="sun-para-0"&gt;Swapnil says to sell the package management as 9537 9537 the LSP of package management. n*n -&amp;gt; n&lt;/span&gt;&lt;/p&gt; 9538 9538 &lt;/section&gt; 9539 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ukri-grant-terra</id><summary type="html">&lt;p&gt;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 class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; (from computer science), &lt;a class="contact" href="https://coomeslab.org"&gt;David A Coomes&lt;/a&gt; (from Plant Sciences), &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/andrew-balmford"&gt;Andrew Balmford&lt;/a&gt; (from Zoology) and &lt;a class="contact" href="https://www.cambridgeconservation.org/about/people/professor-neil-burgess/"&gt;Neil Burgess&lt;/a&gt; (the Head of Science at &lt;a href="https://www.unep-wcmc.org/en/the-team"&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"&gt;building foundation models for planetary intelligence&lt;/a&gt;.&lt;/p&gt; 9539 + &lt;/article&gt;</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">&lt;p&gt;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 class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; (from computer science), &lt;a class="contact" href="https://coomeslab.org"&gt;David A Coomes&lt;/a&gt; (from Plant Sciences), &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/andrew-balmford"&gt;Andrew Balmford&lt;/a&gt; (from Zoology) and &lt;a class="contact" href="https://www.cambridgeconservation.org/about/people/professor-neil-burgess/"&gt;Neil Burgess&lt;/a&gt; (the Head of Science at &lt;a href="https://www.unep-wcmc.org/en/the-team"&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"&gt;building foundation models for planetary intelligence&lt;/a&gt;.&lt;/p&gt; 9540 9540 &lt;p&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/"&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 &lt;em&gt;(&amp;quot;too much nature&amp;quot;)&lt;/em&gt; or NERC &lt;em&gt;(&amp;quot;too much engineering&amp;quot;)&lt;/em&gt; or STFC &lt;em&gt;(&amp;quot;not enough satellites&amp;quot;)&lt;/em&gt;. But this interdisciplinary program expressly assembled a panel across all these areas, and collectively gave us a shot. I really hope this scheme continues to gather steam within the UKRI.&lt;/p&gt; 9541 9541 &lt;p&gt;As to what we're doing? There'll be the evolution of the work described in &lt;a href="https://anil.recoil.org/projects/rsn"&gt;Remote Sensing of Nature&lt;/a&gt; and &lt;a href="https://anil.recoil.org/projects/life"&gt;Mapping LIFE on Earth&lt;/a&gt;, with lots of domain knowledge that we're pulling together with our partners at UNEP-WCMC (especially &lt;a class="contact" href="https://www.cambridgeconservation.org/about/people/professor-neil-burgess/"&gt;Neil Burgess&lt;/a&gt; and &lt;a class="contact" href="https://www.kew.org/science/our-science/people/ian-ondo"&gt;Ian Ondo&lt;/a&gt;) on plant and animal species distributions across the globe.&lt;/p&gt; 9542 9542 &lt;p&gt;&lt;figure class="image-center"&gt;&lt;img alt="Us freezing in a Scottish August counting heather growth. There&amp;#x27;s got to be a more scalable way of doing this, right?" class="content-image" src="https://anil.recoil.org/images/2024-clr-scotland.webp" title="Us freezing in a Scottish August counting heather growth. There&amp;#x27;s got to be a more scalable way of doing this, right?" /&gt;&lt;figcaption&gt;Us freezing in a Scottish August counting heather growth. There&amp;#x27;s got to be a more scalable way of doing this, right?&lt;/figcaption&gt;&lt;/figure&gt; ··· 9547 9547 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2024-life"&gt;LIFE: A metric for mapping the impact of land-cover change on global extinctions&lt;/a&gt; is our new metric for calculating biodiversity impacts worldwide in a comparable way. We intend to extend it to cover plant species.&lt;/li&gt; 9548 9548 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2024-food-life"&gt;Quantifying the impact of the food we eat on species extinctions&lt;/a&gt; connects up the biodiversity metric to supply chains to figure out the environmental impact of human food consumption on the planet. We intend to increase its resolution significantly with the new foundation models derived from remote sensing data.&lt;/li&gt; 9549 9549 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2024-terracorder"&gt;Terracorder: Sense Long and Prosper&lt;/a&gt; is a battery-efficient sensing platform I'm working on with our Imperial buddies. We need more data about our planet!&lt;/li&gt; 9550 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/effect-parallel-strategies</id><summary type="html">&lt;h1&gt;Parallel traversal effect handlers for OCaml&lt;/h1&gt; 9550 + &lt;/ul&gt;</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">&lt;h1&gt;Parallel traversal effect handlers for OCaml&lt;/h1&gt; 9551 9551 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:sb2634@cam.ac.uk"&gt;Sky Batchelor&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt;.&lt;/p&gt; 9552 9552 &lt;p&gt;Most existing uses of effect handlers perform synchronous execution of handled 9553 9553 effects. Xie &lt;em&gt;et al&lt;/em&gt; proposed a &lt;code&gt;traverse&lt;/code&gt; handler for parallelisation of ··· 9570 9570 &lt;p&gt;&lt;a href="https://anil.recoil.org/papers/2021-pldi-retroeff"&gt;Retrofitting effect handlers onto OCaml&lt;/a&gt;, PLDI 2021 describes how the effect system in OCaml works.&lt;/p&gt; 9571 9571 &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-2"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li id="fn-3"&gt; 9572 9572 &lt;p&gt;&lt;a href="https://github.com/ocaml-multicore/eio"&gt;EIO&lt;/a&gt; is a high-performance direct-style IO library we have been developing for OCaml.&lt;/p&gt; 9573 - &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-3"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/gradual-type-error-debugging</id><summary type="html">&lt;h1&gt;Gradually debugging type errors&lt;/h1&gt; 9573 + &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-3"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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">&lt;h1&gt;Gradually debugging type errors&lt;/h1&gt; 9574 9574 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:mc2372@cam.ac.uk"&gt;Max Carroll&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt;.&lt;/p&gt; 9575 9575 &lt;p&gt;Reasoning about type errors is very difficult, and requires shifting between 9576 9576 static and dynamic types. In OCaml, the type checker asserts ill-typedness but ··· 9586 9586 &lt;li&gt;&lt;a href="https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.SNAPL.2015.274"&gt;Refined Criteria for Gradual Typing&lt;/a&gt;&lt;/li&gt; 9587 9587 &lt;li&gt;&lt;a href="https://arxiv.org/abs/1810.12619"&gt;Dynamic Type Inference for Gradual Hindley-Milner Typing&lt;/a&gt;&lt;/li&gt; 9588 9588 &lt;li&gt;&lt;a href="https://arxiv.org/abs/1606.07557"&gt;Dynamic Witnesses for Static Type Errors (or, Ill-Typed Programs Usually Go Wrong)&lt;/a&gt;&lt;/li&gt; 9589 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-nbs-risk-2</id><summary type="html">&lt;p&gt;Our paper on ex-ante projection for nature-based solutions has been published in the &lt;a href="https://www.tandfonline.com/journals/tcmt20"&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"&gt;long-form thoughts&lt;/a&gt; on it here.&lt;/p&gt; 9589 + &lt;/ul&gt;</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">&lt;p&gt;Our paper on ex-ante projection for nature-based solutions has been published in the &lt;a href="https://www.tandfonline.com/journals/tcmt20"&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"&gt;long-form thoughts&lt;/a&gt; on it here.&lt;/p&gt; 9590 9590 9591 9591 &lt;blockquote class="paper noquote"&gt; 9592 9592 &lt;div class="paper-info"&gt; ··· 9693 9693 &lt;/span&gt;&lt;/span&gt;&lt;span class="z-source z-nix"&gt;&lt;span class="z-string z-quoted z-other z-nix"&gt; &lt;span class="z-punctuation z-definition z-string z-other z-end z-nix"&gt;''&lt;/span&gt;&lt;/span&gt;&lt;span class="z-invalid z-illegal"&gt;;&lt;/span&gt; 9694 9694 &lt;/span&gt;&lt;span class="z-source z-nix"&gt; &lt;span class="z-invalid z-illegal z-reserved z-nix"&gt;in&lt;/span&gt; 9695 9695 &lt;/span&gt;&lt;span class="z-source z-nix"&gt; &lt;span class="z-punctuation z-definition z-list z-nix"&gt;[&lt;/span&gt; &lt;span class="z-punctuation z-definition z-attrset z-nix"&gt;{&lt;/span&gt; &lt;span class="z-entity z-other z-attribute-name z-multipart z-nix"&gt;command&lt;/span&gt; &lt;span class="z-keyword z-operator z-bind z-nix"&gt;=&lt;/span&gt; &lt;span class="z-string z-quoted z-double z-nix"&gt;&lt;span class="z-punctuation z-definition z-string z-double z-start z-nix"&gt;&amp;quot;&lt;/span&gt;&lt;span class="z-markup z-italic"&gt;&lt;span class="z-punctuation z-section z-embedded z-begin z-nix"&gt;${&lt;/span&gt;&lt;span class="z-variable z-parameter z-name z-nix"&gt;startup&lt;/span&gt;&lt;span class="z-punctuation z-section z-embedded z-end z-nix"&gt;}&lt;/span&gt;&lt;/span&gt;/bin/startup.sh&lt;span class="z-punctuation z-definition z-string z-double z-end z-nix"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="z-punctuation z-terminator z-bind z-nix"&gt;;&lt;/span&gt; &lt;span class="z-punctuation z-definition z-attrset z-nix"&gt;}&lt;/span&gt; &lt;span class="z-punctuation z-definition z-list z-nix"&gt;]&lt;/span&gt;&lt;span class="z-invalid z-illegal"&gt;;&lt;/span&gt; 9696 - &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-pact-tmf-3</id><summary type="html">&lt;p&gt;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"&gt;v2.0&lt;/a&gt; from six months ago. The key updates are a new &lt;a href="https://tinyurl.com/PACTTMFexplainer"&gt;high-level explainer&lt;/a&gt;, as well as clarifiations for buffer zones and base tiles.&lt;/p&gt; 9696 + &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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">&lt;p&gt;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"&gt;v2.0&lt;/a&gt; from six months ago. The key updates are a new &lt;a href="https://tinyurl.com/PACTTMFexplainer"&gt;high-level explainer&lt;/a&gt;, as well as clarifiations for buffer zones and base tiles.&lt;/p&gt; 9697 9697 9698 9698 &lt;blockquote class="paper noquote"&gt; 9699 9699 &lt;div class="paper-info"&gt; ··· 10047 10047 &lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt; &lt;span class="z-keyword z-control z-loop z-end z-shell"&gt;done&lt;/span&gt; 10048 10048 &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; 10049 10049 &lt;p&gt;The key thing with the above approach is that it’s also quite amenable to 10050 - bisection, which makes it a lot faster.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/nature-crossroads</id><summary type="html">&lt;p&gt;Our &lt;a href="https://anil.recoil.org/papers/2023-naturecredits"&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"&gt;Nature 10050 + bisection, which makes it a lot faster.&lt;/p&gt;</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">&lt;p&gt;Our &lt;a href="https://anil.recoil.org/papers/2023-naturecredits"&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"&gt;Nature 10051 10051 Sustainability&lt;/a&gt;, 10052 10052 lead expertly by my colleagues &lt;a class="contact" href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield"&gt;Thomas Swinfield&lt;/a&gt; and &lt;a class="contact" href="https://www.naturerecovery.ox.ac.uk/people/sophus-zu-ermgassen/"&gt;Sophus zu Ermgassen&lt;/a&gt;.&lt;/p&gt; 10053 10053 &lt;p&gt;In our view the carbon credits markets are vitally important for forest ··· 10446 10446 a nameserver running on the local router on a DNS resolution for the 10447 10447 NAS’ name.&lt;/span&gt;&lt;/p&gt; 10448 10448 &lt;/section&gt; 10449 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/life-explorer-wasm</id><summary type="html">&lt;h1&gt;Using wasm to locally explore geospatial layers&lt;/h1&gt; 10449 + &lt;/article&gt;</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">&lt;h1&gt;Using wasm to locally explore geospatial layers&lt;/h1&gt; 10450 10450 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:sf729@cam.ac.uk"&gt;Sam Forbes&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://mynameismwd.org"&gt;Michael Dales&lt;/a&gt;.&lt;/p&gt; 10451 10451 &lt;p&gt;Some of my projects like &lt;a href="https://anil.recoil.org/projects/life"&gt;Mapping LIFE on Earth&lt;/a&gt; or &lt;a href="https://anil.recoil.org/projects/rsn"&gt;Remote Sensing of Nature&lt;/a&gt; involve geospatial base maps with 10452 10452 gigabytes or even terabytes of data. This data is usually split up into ··· 10477 10477 real-time application, the implementation will exploit the inherent 10478 10478 parallelisms of the data through concurrency. This can be on a file level, by 10479 10479 concurrently processing multiple files, or on a pixel level when generating 10480 - independent parts of the map.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/urls-with-provenance</id><summary type="html">&lt;h1&gt;Towards reproducible URLs with provenance&lt;/h1&gt; 10480 + independent parts of the map.&lt;/p&gt;</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">&lt;h1&gt;Towards reproducible URLs with provenance&lt;/h1&gt; 10481 10481 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt;.&lt;/p&gt; 10482 10482 &lt;p&gt;Vurls are an attempt to add versioning to URI resolution. For example, what should happen when we request &lt;code&gt;https://doi.org/10.1109/SASOW.2012.14&lt;/code&gt; 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"&gt;vurl&lt;/a&gt; library written in OCaml outputs the following:&lt;/p&gt; 10483 10483 &lt;pre&gt;&lt;code class="language-ocaml"&gt;# Eio_main.run @@ fun env -&amp;gt; ··· 10512 10512 &lt;li&gt;&lt;a href="https://github.com/quantifyearth/vurl"&gt;https://github.com/quantifyearth/vurl&lt;/a&gt; has some prototype code.&lt;/li&gt; 10513 10513 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2024-uncertainty-cs"&gt;Uncertainty at scale: how CS hinders climate research&lt;/a&gt; has relevant background reading on some of the types of diffs that would be useful in a geospatial context.&lt;/li&gt; 10514 10514 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2024-planetary-computing"&gt;Planetary computing for data-driven environmental policy-making&lt;/a&gt; covers the broader data processing pipelines we need to integrate into.&lt;/li&gt; 10515 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/mapping-species-extinction-risks</id><summary type="html">&lt;h1&gt;Real-time mapping of changes in species extinction risks&lt;/h1&gt; 10515 + &lt;/ul&gt;</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">&lt;h1&gt;Real-time mapping of changes in species extinction risks&lt;/h1&gt; 10516 10516 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science PhD topic, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="https://emiliolr.github.io"&gt;Emilio Luz-Ricca&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/andrew-balmford"&gt;Andrew Balmford&lt;/a&gt;.&lt;/p&gt; 10517 10517 &lt;p&gt;Loss of habitat represents the most significant threat to wildlife overall, but 10518 10518 advances in satellite sensing have enabled the assessment of habitat extent ··· 10526 10526 and lower species occupancy, but are extremely difficult to observe directly via 10527 10527 remote sensing. This project will therefore involve a combination of modelling, 10528 10528 machine learning and remote sensing data analysis to understand the impact of these 10529 - additional anthropogenic threats on habitat quality on a per-species basis.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-terracorder-1</id><summary type="html">&lt;p&gt;Our preprint on the Terracorder ground sensing platform I've been working with &lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&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;/p&gt; 10529 + additional anthropogenic threats on habitat quality on a per-species basis.&lt;/p&gt;</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">&lt;p&gt;Our preprint on the Terracorder ground sensing platform I've been working with &lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&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;/p&gt; 10530 10530 10531 10531 &lt;blockquote class="paper noquote"&gt; 10532 10532 &lt;div class="paper-info"&gt; ··· 10539 10539 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-terracorder.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 10540 10540 &lt;/p&gt; 10541 10541 &lt;/div&gt; 10542 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-naturecredits-1</id><summary type="html">&lt;p&gt;Our commentary on nature-based credits has been published in &lt;a href="https://www.nature.com/natsustain/"&gt;Nature Sustainability&lt;/a&gt;. I wrote some &lt;a href="https://anil.recoil.org/notes/nature-crossroads"&gt;thoughts&lt;/a&gt; about it here as well.&lt;/p&gt; 10542 + &lt;/blockquote&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">&lt;p&gt;Our commentary on nature-based credits has been published in &lt;a href="https://www.nature.com/natsustain/"&gt;Nature Sustainability&lt;/a&gt;. I wrote some &lt;a href="https://anil.recoil.org/notes/nature-crossroads"&gt;thoughts&lt;/a&gt; about it here as well.&lt;/p&gt; 10543 10543 10544 10544 &lt;blockquote class="paper noquote"&gt; 10545 10545 &lt;div class="paper-info"&gt; ··· 10552 10552 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2023-naturecredits.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 10553 10553 &lt;/p&gt; 10554 10554 &lt;/div&gt; 10555 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/mapping-hunting-risks-for-wild-meat</id><summary type="html">&lt;h1&gt;Mapping hunting risks for wild meat in protected areas&lt;/h1&gt; 10555 + &lt;/blockquote&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">&lt;h1&gt;Mapping hunting risks for wild meat in protected areas&lt;/h1&gt; 10556 10556 &lt;p&gt;This is an idea proposed in 2024 as a postdoctoral project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="https://charlesemogor.com"&gt;Charles Emogor&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://teamcore.seas.harvard.edu/tambe"&gt;Milind Tambe&lt;/a&gt;.&lt;/p&gt; 10557 10557 &lt;p&gt;There is an important balance needed between the biodiversity damage caused by 10558 10558 hunting in protected areas and the well-being of local communities that depend ··· 10564 10564 research topics can be tackled in a new light with the emergence of machine 10565 10565 learning as a data-driven approach to deriving insights from sparse data, and 10566 10566 particularly from some of the newer base maps being developed in our &lt;a href="https://anil.recoil.org/projects/life"&gt;Mapping LIFE on Earth&lt;/a&gt; 10567 - project.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/choregraphic-programming-ocaml</id><summary type="html">&lt;h1&gt;Implementing a higher-order choreographic language&lt;/h1&gt; 10567 + project.&lt;/p&gt;</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">&lt;h1&gt;Implementing a higher-order choreographic language&lt;/h1&gt; 10568 10568 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://github.com/Rokcas"&gt;Rokas Urbonas&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/ds709"&gt;Dmirtij Szamozvancev&lt;/a&gt;.&lt;/p&gt; 10569 10569 &lt;p&gt;This project aims to implement a functional choreographic language inspired by 10570 10570 the &lt;a href="https://dl.acm.org/doi/pdf/10.1145/3498684"&gt;Pirouette calculus&lt;/a&gt;. This language was meant to make the notoriously ··· 10585 10585 &lt;ul&gt; 10586 10586 &lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=KEkmcXVtFi0"&gt;Video&lt;/a&gt; of his talk&lt;/li&gt; 10587 10587 &lt;li&gt;&lt;a href="https://ocaml2024.hotcrp.com/doc/ocaml2024-paper17.pdf"&gt;PDF&lt;/a&gt; of his writeup.&lt;/li&gt; 10588 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/ssl-for-geospatial-tasks</id><summary type="html">&lt;h1&gt;Foundation models for complex geospatial tasks&lt;/h1&gt; 10588 + &lt;/ul&gt;</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">&lt;h1&gt;Foundation models for complex geospatial tasks&lt;/h1&gt; 10589 10589 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science PhD topic, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/og309"&gt;Onkar Gulati&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt; and &lt;a class="contact" href="https://coomeslab.org"&gt;David A Coomes&lt;/a&gt;.&lt;/p&gt; 10590 10590 &lt;p&gt;Self-supervised learning (SSL) represents a shift in machine learning that 10591 10591 enables versatile &lt;em&gt;pretrained&lt;/em&gt; models to leverage the complex relationships ··· 10597 10597 &lt;p&gt;This PhD project explores the question of how current SSL methodologies may be 10598 10598 altered to tackle remote sensing tasks, and also how to make them amenable 10599 10599 to incremental time-series generation as new data regularly comes in from 10600 - sensing instruments.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/effective-specification-languages</id><summary type="html">&lt;h1&gt;An imperative, pure and effective specification language&lt;/h1&gt; 10600 + sensing instruments.&lt;/p&gt;</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">&lt;h1&gt;An imperative, pure and effective specification language&lt;/h1&gt; 10601 10601 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:ms2922@cam.ac.uk"&gt;Max Smith&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt;.&lt;/p&gt; 10602 10602 &lt;p&gt;Formal specification languages are conventionally rather functional looking, 10603 10603 and not hugely amenable to iterative development. In contrast, real world ··· 10671 10671 &lt;p&gt;Source code we've covered already.&lt;/p&gt; 10672 10672 &lt;h1&gt;Summary&lt;/h1&gt; 10673 10673 &lt;p&gt;As you can see, it's a very mixed bag of solutions I've come up with as I try to keep ownership of my Internet presence. I make not attempt to suggest any of this is optimal - more it's just a mix of pragmatism based on what I need versus how much effort I'm willing to put into it. But still, I see people talking about self hosting often, and so perhaps this'll both show you some options, and normalise the idea that it doesn't need to be perfect or all-or-nothing for you to make some inroads to taking back control of how you exist on the Internet. I don't use Azure or AWS for instance either, for a while I did, but I don't really operate at the scale where the complexity is justified - I'm not really dealing with a lot of traffic for most things. I don't deal with CDNs like Cloudflare either, as I'm not that big, and the few people who do want to see my websites probably don't care if it's a few seconds slower than it could be.&lt;/p&gt; 10674 - &lt;p&gt;I'll perhaps try to do a follow on post in a couple of years to see how much, if anything has changed.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/student-ideas</id><summary type="html">&lt;p&gt;I've refreshed the set of project &lt;a href="https://anil.recoil.org/ideas"&gt;ideas&lt;/a&gt; for incoming &lt;a href="https://www.cst.cam.ac.uk/teaching/part-ii"&gt;CST Part II&lt;/a&gt; and &lt;a href="https://www.cst.cam.ac.uk/teaching/masters"&gt;MPhil&lt;/a&gt; and PhD student projects for 2024-2025.&lt;/p&gt; 10674 + &lt;p&gt;I'll perhaps try to do a follow on post in a couple of years to see how much, if anything has changed.&lt;/p&gt;</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">&lt;p&gt;I've refreshed the set of project &lt;a href="https://anil.recoil.org/ideas"&gt;ideas&lt;/a&gt; for incoming &lt;a href="https://www.cst.cam.ac.uk/teaching/part-ii"&gt;CST Part II&lt;/a&gt; and &lt;a href="https://www.cst.cam.ac.uk/teaching/masters"&gt;MPhil&lt;/a&gt; and PhD student projects for 2024-2025.&lt;/p&gt; 10675 10675 &lt;p&gt;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.&lt;/p&gt;</summary><category term="Anil Madhavapeddy's feed"></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">&lt;article&gt; 10676 10676 &lt;div class="container"&gt; 10677 10677 &lt;span&gt; Previous: &lt;a href="2024-06-24.html"&gt;Mon 24 Jun 2024&lt;/a&gt; &lt;/span&gt; ··· 10753 10753 The former state can be restored with: 10754 10754 /usr/bin/opam switch import &amp;quot;/root/.opam/default/.opam-switch/backup/state-20240711150233.export&amp;quot;&lt;/code&gt;&lt;/pre&gt; 10755 10755 &lt;/section&gt; 10756 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/compass2024-ric-tripreport</id><summary type="html">&lt;p&gt;This is a trip report of &lt;a href="https://compass.acm.org"&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/"&gt;&amp;quot;Research to Impact Collaboratives&amp;quot;&lt;/a&gt; that drew me in. The general chair, &lt;a href="https://www.cse.iitd.ac.in/~aseth/"&gt;Aadi Seth&lt;/a&gt; wrote a fantastic book on &amp;quot;&lt;a href="https://www.cse.iitd.ac.in/~aseth/act.html"&gt;Technology and Disempowerment&lt;/a&gt;&amp;quot; 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"&gt;Remote Sensing of Nature&lt;/a&gt; and &lt;a href="https://anil.recoil.org/projects/plancomp"&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"&gt;agenda for ACM COMPASS RIC&lt;/a&gt; and the overall &lt;a href="https://core-stack.org"&gt;CoRE Stack&lt;/a&gt; initiative on commoning technologies for resilience and equality&lt;/p&gt; 10756 + &lt;/article&gt;</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">&lt;p&gt;This is a trip report of &lt;a href="https://compass.acm.org"&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/"&gt;&amp;quot;Research to Impact Collaboratives&amp;quot;&lt;/a&gt; that drew me in. The general chair, &lt;a href="https://www.cse.iitd.ac.in/~aseth/"&gt;Aadi Seth&lt;/a&gt; wrote a fantastic book on &amp;quot;&lt;a href="https://www.cse.iitd.ac.in/~aseth/act.html"&gt;Technology and Disempowerment&lt;/a&gt;&amp;quot; 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"&gt;Remote Sensing of Nature&lt;/a&gt; and &lt;a href="https://anil.recoil.org/projects/plancomp"&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"&gt;agenda for ACM COMPASS RIC&lt;/a&gt; and the overall &lt;a href="https://core-stack.org"&gt;CoRE Stack&lt;/a&gt; initiative on commoning technologies for resilience and equality&lt;/p&gt; 10757 10757 &lt;p&gt;The conference itself was held at &lt;a href="http://iiitd.ac.in/"&gt;IIIT-D&lt;/a&gt; in New Delhi, right at the cusp of the monsoon season and after record-breaking temperatures. Luckily, as always, the hospitality and welcoming nature of New Delhi overrode all the climate discomfort!&lt;/p&gt; 10758 10758 &lt;p&gt;&lt;figure class="image-center"&gt;&lt;img alt="Arriving at the IIIT-D campus" class="content-image" src="https://anil.recoil.org/images/compass24/compass24-17.webp" title="Arriving at the IIIT-D campus" /&gt;&lt;figcaption&gt;Arriving at the IIIT-D campus&lt;/figcaption&gt;&lt;/figure&gt; 10759 10759 &lt;/p&gt; ··· 10976 10976 10977 10977 &lt;img alt="" class="content-image" src="https://anil.recoil.org/images/compass24/compass24-22.webp" title="Made it back to London in time to catch some tennis" /&gt; 10978 10978 10979 - &lt;/p&gt;</summary><category term="Anil Madhavapeddy's feed"></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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-life-2</id><summary type="html">&lt;p&gt;We have made an update to the &lt;a href="https://anil.recoil.org/projects/life"&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;/p&gt; 10979 + &lt;/p&gt;</summary><category term="Anil Madhavapeddy's feed"></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">&lt;p&gt;We have made an update to the &lt;a href="https://anil.recoil.org/projects/life"&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;/p&gt; 10980 10980 10981 10981 &lt;blockquote class="paper noquote"&gt; 10982 10982 &lt;div class="paper-info"&gt; ··· 10999 10999 &lt;/span&gt;&lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;maestral&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; stop&lt;/span&gt; &lt;span class="z-keyword z-operator z-logical z-and z-shell"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;maestral&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; start &lt;/span&gt; 11000 11000 &lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-comment z-line z-number-sign z-shell"&gt;&lt;span class="z-punctuation z-definition z-comment z-begin z-shell"&gt;#&lt;/span&gt;&lt;/span&gt;&lt;span class="z-comment z-line z-number-sign z-shell"&gt; if desired, add autocompletion for `maestral` in bash&lt;/span&gt;&lt;span class="z-comment z-line z-number-sign z-shell"&gt; 11001 11001 &lt;/span&gt;&lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-support z-function z-double-brace z-begin z-shell"&gt;[[&lt;/span&gt; &lt;span class="z-meta z-group z-expansion z-command z-parens z-shell"&gt;&lt;span class="z-punctuation z-definition z-variable z-shell"&gt;$&lt;/span&gt;&lt;span class="z-punctuation z-section z-parens z-begin z-shell"&gt;(&lt;/span&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;which&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; maestral &lt;span class="z-constant z-numeric z-integer z-decimal z-file-descriptor z-shell"&gt;2&lt;/span&gt;&lt;span class="z-keyword z-operator z-assignment z-redirection z-shell"&gt;&amp;gt;&lt;/span&gt;/dev/null&lt;/span&gt;&lt;span class="z-punctuation z-section z-parens z-end z-shell"&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class="z-support z-function z-double-brace z-end z-shell"&gt;]]&lt;/span&gt;&lt;/span&gt; &lt;span class="z-keyword z-operator z-logical z-and z-shell"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-support z-function z-source z-shell"&gt;source&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; &lt;span class="z-keyword z-operator z-assignment z-redirection z-process z-shell"&gt;&amp;lt;&lt;/span&gt;&lt;span class="z-punctuation z-section z-parens z-begin z-shell"&gt;(&lt;/span&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;maestral&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; completion bash&lt;/span&gt;&lt;span class="z-punctuation z-section z-parens z-end z-shell"&gt;)&lt;/span&gt;&lt;/span&gt; 11002 - &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/80795e06-ac75-4015-b178-3cfcbb233685-1</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/bill-sutherland"&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/"&gt;Effectiveness Revolution&lt;/a&gt; for transforming conservation into an evidence-driven discipline.&lt;/p&gt; 11002 + &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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;p&gt;&lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/bill-sutherland"&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/"&gt;Effectiveness Revolution&lt;/a&gt; for transforming conservation into an evidence-driven discipline.&lt;/p&gt; 11003 11003 &lt;blockquote&gt; 11004 11004 &lt;p&gt;The aim was to discuss the &amp;quot;Evidence Emergency&amp;quot; (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.&lt;/p&gt; 11005 11005 &lt;/blockquote&gt; ··· 11018 11018 &lt;li&gt;get eon to provision it’s own certificate&lt;/li&gt; 11019 11019 &lt;/ul&gt; 11020 11020 &lt;/section&gt; 11021 - &lt;/article&gt;</summary><category term="ryan.freumh.org"></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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/aicam-interview-ce</id><summary type="html">&lt;p&gt;I talked to the &lt;a href="https://ai.cam.ac.uk"&gt;AI@Cam&lt;/a&gt; team to discuss our &lt;a href="https://anil.recoil.org/notes/aicn-in-aicam"&gt;AICN&lt;/a&gt; 11021 + &lt;/article&gt;</summary><category term="ryan.freumh.org"></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">&lt;p&gt;I talked to the &lt;a href="https://ai.cam.ac.uk"&gt;AI@Cam&lt;/a&gt; team to discuss our &lt;a href="https://anil.recoil.org/notes/aicn-in-aicam"&gt;AICN&lt;/a&gt; 11022 11022 project and what we're planning to do in the &lt;a href="https://anil.recoil.org/projects/ce"&gt;Conservation Evidence Copilots&lt;/a&gt; team.&lt;/p&gt; 11023 11023 &lt;blockquote&gt; 11024 11024 &lt;p&gt;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.&lt;/p&gt; 11025 11025 &lt;p&gt;What we’re aiming to do through the ai@cam project – bringing together an interdisciplinary team from across the fields of computer science, ecology, climate and conservation – is to build up models of the world that are really detailed and that can be queried by policy makers to help make informed decisions.&lt;/p&gt; 11026 11026 &lt;p&gt;&lt;cite&gt;-- &lt;a href="https://ai.cam.ac.uk/blog/harnessing-the-power-of-ai-to-help-save-our-planet"&gt;AI@Cam&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt; 11027 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-hyper-tropical-mapping-1</id><summary type="html">&lt;p&gt;A preprint on using &lt;a href="https://en.wikipedia.org/wiki/Hyperspectral_imaging"&gt;hyperspectral sensors&lt;/a&gt; to perform tree species identification across the tropics is now available on bioarxiv.&lt;/p&gt; 11027 + &lt;/blockquote&gt;</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">&lt;p&gt;A preprint on using &lt;a href="https://en.wikipedia.org/wiki/Hyperspectral_imaging"&gt;hyperspectral sensors&lt;/a&gt; to perform tree species identification across the tropics is now available on bioarxiv.&lt;/p&gt; 11028 11028 &lt;blockquote&gt; 11029 11029 &lt;p&gt;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;/p&gt; 11030 11030 &lt;/blockquote&gt; ··· 11194 11194 &lt;li&gt;Use Eon TLS provisioning for a spatial device.&lt;/li&gt; 11195 11195 &lt;/ul&gt; 11196 11196 &lt;/section&gt; 11197 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/d592bf17-c835-435f-9469-f0f65e926975-1</id><summary type="html">&lt;p&gt;I was invited by Mary Sheeran to deliver a keynoted at &lt;a href="https://www.lambdadays.org/"&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"&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;amp;list=PLvL2NEhYV4ZtX2TurK0BIlKD_cHct0rSs"&gt;interview video&lt;/a&gt; they took of all the speakers.&lt;/p&gt; 11197 + &lt;/article&gt;</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">&lt;p&gt;I was invited by Mary Sheeran to deliver a keynoted at &lt;a href="https://www.lambdadays.org/"&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"&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;amp;list=PLvL2NEhYV4ZtX2TurK0BIlKD_cHct0rSs"&gt;interview video&lt;/a&gt; they took of all the speakers.&lt;/p&gt; 11198 11198 11199 11199 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;article&gt; 11200 11200 &lt;div class="container"&gt; ··· 11325 11325 &lt;/ol&gt; 11326 11326 &lt;/section&gt; 11327 11327 &lt;/section&gt; 11328 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-food-life-1</id><summary type="html">&lt;p&gt;Submitted preprint on quantifying the biodiversity cost of global food consumption for peer review&lt;/p&gt; 11328 + &lt;/article&gt;</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">&lt;p&gt;Submitted preprint on quantifying the biodiversity cost of global food consumption for peer review&lt;/p&gt; 11329 11329 11330 11330 &lt;blockquote class="paper noquote"&gt; 11331 11331 &lt;div class="paper-info"&gt; ··· 11338 11338 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-food-life.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 11339 11339 &lt;/p&gt; 11340 11340 &lt;/div&gt; 11341 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-sdm-sa-1</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://github.com/emorris7"&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"&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"&gt;ICLR CCAI&lt;/a&gt; workshop in Vienna, and is now off to do a PhD at Oxford!&lt;/p&gt; 11341 + &lt;/blockquote&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;p&gt;&lt;a class="contact" href="https://github.com/emorris7"&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"&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"&gt;ICLR CCAI&lt;/a&gt; workshop in Vienna, and is now off to do a PhD at Oxford!&lt;/p&gt; 11342 11342 &lt;blockquote&gt; 11343 11343 &lt;p&gt;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;/p&gt; 11344 11344 &lt;/blockquote&gt; ··· 11353 11353 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-sdm-sa.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 11354 11354 &lt;/p&gt; 11355 11355 &lt;/div&gt; 11356 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/wayland</id><summary type="html">&lt;h1&gt;Low-latency wayland compositor in OCaml&lt;/h1&gt; 11356 + &lt;/blockquote&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">&lt;h1&gt;Low-latency wayland compositor in OCaml&lt;/h1&gt; 11357 11357 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:tt492@cam.ac.uk"&gt;Tom Thorogood&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://ryan.freumh.org"&gt;Ryan Gibb&lt;/a&gt;.&lt;/p&gt; 11358 11358 &lt;p&gt;When building situated displays and hybrid streaming 11359 11359 systems, we need fine-grained composition over what to show on the displays. ··· 11395 11395 &lt;p&gt;&lt;a href="https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/master/tinywl/tinywl.c"&gt;https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/master/tinywl/tinywl.c&lt;/a&gt;&lt;/p&gt; 11396 11396 &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-5"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li id="fn-6"&gt; 11397 11397 &lt;p&gt;&lt;a href="https://github.com/talex5/ocaml-wayland"&gt;https://github.com/talex5/ocaml-wayland&lt;/a&gt;&lt;/p&gt; 11398 - &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-6"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/diffusion-model-satellites</id><summary type="html">&lt;h1&gt;Diffusion models for terrestrial predictions about land use change&lt;/h1&gt; 11398 + &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-6"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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">&lt;h1&gt;Diffusion models for terrestrial predictions about land use change&lt;/h1&gt; 11399 11399 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;.&lt;/p&gt; 11400 11400 &lt;p&gt;This project investigates how to build remote sensing data-driven models for 11401 11401 the evolution of landscapes, which we can use to better predict deforestation, ··· 11649 11649 &lt;p&gt;&lt;span id="thu-para-1"&gt;NB &lt;a href="https://github.com/mmaker/ocaml-letsencrypt"&gt;ocaml-letsencrypt&lt;/a&gt; 11650 11650 doesn’t support revocation or deletion&lt;/span&gt;&lt;/p&gt; 11651 11651 &lt;/section&gt; 11652 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/swseng</id><summary type="html">&lt;p&gt;We're still reeling from the shocking and unexpected &lt;a href="https://www.cst.cam.ac.uk/news/ross-anderson"&gt;passing of Ross Anderson&lt;/a&gt; 11652 + &lt;/article&gt;</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">&lt;p&gt;We're still reeling from the shocking and unexpected &lt;a href="https://www.cst.cam.ac.uk/news/ross-anderson"&gt;passing of Ross Anderson&lt;/a&gt; 11653 11653 last week. You can read a lovely &lt;a href="https://raintown.org/ross_anderson/"&gt;tribute&lt;/a&gt; to him by &lt;a class="contact" href="https://raintown.org"&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.&lt;/p&gt; 11654 - &lt;p&gt;In pragmatic news, I'll be emergency lecturing part of Ross' 1A &lt;a href="https://www.cl.cam.ac.uk/teaching/2324/SWSecEng/"&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!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-cc-blockchain-1</id><summary type="html">&lt;p&gt;Paper on smart contracts for carbon credits at &lt;a href="http://icbc2024.ieee-icbc.org"&gt;ICBC 2024&lt;/a&gt; in Dublin&lt;/p&gt; 11654 + &lt;p&gt;In pragmatic news, I'll be emergency lecturing part of Ross' 1A &lt;a href="https://www.cl.cam.ac.uk/teaching/2324/SWSecEng/"&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!&lt;/p&gt;</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">&lt;p&gt;Paper on smart contracts for carbon credits at &lt;a href="http://icbc2024.ieee-icbc.org"&gt;ICBC 2024&lt;/a&gt; in Dublin&lt;/p&gt; 11655 11655 11656 11656 &lt;blockquote class="paper noquote"&gt; 11657 11657 &lt;div class="paper-info"&gt; ··· 11683 11683 logs.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt; 11684 11684 &lt;/ol&gt; 11685 11685 &lt;/section&gt; 11686 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/bushel-step1</id><summary type="html">&lt;p&gt;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"&gt;back in 2003&lt;/a&gt;. 11686 + &lt;/article&gt;</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">&lt;p&gt;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"&gt;back in 2003&lt;/a&gt;. 11687 11687 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;/p&gt; 11688 11688 &lt;p&gt;&lt;a class="contact" href="https://nick.recoil.org"&gt;Nick Ludlam&lt;/a&gt; also refreshed &lt;a href="https://nick.recoil.org"&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"&gt;recoil.org&lt;/a&gt; page for the main server.&lt;/p&gt;</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">&lt;article&gt; 11689 11689 &lt;div class="container"&gt; ··· 12130 12130 &lt;p&gt;&lt;span id="para-2"&gt;Anil recommended I come up with some concrete use 12131 12131 cases to inform the design of a minimal API.&lt;/span&gt;&lt;/p&gt; 12132 12132 &lt;/section&gt; 12133 - &lt;/article&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-nbs-risk-1</id><summary type="html">&lt;p&gt;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;/p&gt; 12133 + &lt;/article&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">&lt;p&gt;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;/p&gt; 12134 12134 12135 12135 &lt;blockquote class="paper noquote"&gt; 12136 12136 &lt;div class="paper-info"&gt; ··· 12143 12143 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-nbs-risk.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 12144 12144 &lt;/p&gt; 12145 12145 &lt;/div&gt; 12146 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-green-urban-eq-1</id><summary type="html">&lt;p&gt;Abstract on urban biodiversity and human health at &lt;a href="https://meetingorganizer.copernicus.org/EGU24/EGU24-20833.html"&gt;EGU 24&lt;/a&gt;&lt;/p&gt; 12146 + &lt;/blockquote&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">&lt;p&gt;Abstract on urban biodiversity and human health at &lt;a href="https://meetingorganizer.copernicus.org/EGU24/EGU24-20833.html"&gt;EGU 24&lt;/a&gt;&lt;/p&gt; 12147 12147 12148 12148 &lt;blockquote class="paper noquote"&gt; 12149 12149 &lt;div class="paper-info"&gt; ··· 12155 12155 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2024-green-urban-eq.bib"&gt;BIB&lt;/a&gt; 12156 12156 &lt;/p&gt; 12157 12157 &lt;/div&gt; 12158 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-planetary-computing-2</id><summary type="html">&lt;p&gt;Revision of planetary computing preprint&lt;/p&gt; 12158 + &lt;/blockquote&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">&lt;p&gt;Revision of planetary computing preprint&lt;/p&gt; 12159 12159 12160 12160 &lt;blockquote class="paper noquote"&gt; 12161 12161 &lt;div class="paper-info"&gt; ··· 12895 12895 &lt;h3 id="fosdem"&gt;FOSDEM&lt;/h3&gt; 12896 12896 &lt;p&gt;&lt;span id="fosdem-para-0"&gt;I attended FOSDEM and wrote up some notes &lt;a href="./fosdem.html"&gt;here&lt;/a&gt;!&lt;/span&gt;&lt;/p&gt; 12897 12897 &lt;/section&gt; 12898 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/aicn-in-aicam</id><summary type="html">&lt;p&gt;We won the &lt;a href="https://www.cam.ac.uk/stories/AI-deas-launch"&gt;AI@CAM challenge&lt;/a&gt; that was sent out 12898 + &lt;/article&gt;</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">&lt;p&gt;We won the &lt;a href="https://www.cam.ac.uk/stories/AI-deas-launch"&gt;AI@CAM challenge&lt;/a&gt; that was sent out 12899 12899 University wide to find research projects that use AI to tackle society's biggest challenges. 12900 12900 Our project on using &lt;a href="https://www.cam.ac.uk/stories/AI-deas-launch#section-9RKgEyI2LZ"&gt;AI for climate and nature&lt;/a&gt; 12901 12901 is one of the five selected.&lt;/p&gt; ··· 12907 12907 &lt;/blockquote&gt; 12908 12908 &lt;p&gt;This project is a collaboration between lots of friendly people at Cambridge Zero, the Cambridge Conservation Initiative, Conservation Evidence, the Institute for Computing for Climate Science, Conservation Research Institute, Centre for Landscape Regeneration, &lt;a href="https://anil.recoil.org/projects/4c"&gt;Cambridge Centre for Carbon Credits&lt;/a&gt; and Cambridge Centre for Earth Observation.&lt;/p&gt; 12909 12909 &lt;p&gt;&lt;figure class="image-center"&gt;&lt;img alt="Team AICN in the CCI building, Feb 2024" class="content-image" src="https://anil.recoil.org/images/aicn-team-feb24.webp" title="Team AICN in the CCI building, Feb 2024" /&gt;&lt;figcaption&gt;Team AICN in the CCI building, Feb 2024&lt;/figcaption&gt;&lt;/figure&gt; 12910 - &lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-uncertainty-cs-1</id><summary type="html">&lt;p&gt;Paper on uncertainty in climate science in &lt;a href="https://undonecs.sciencesconf.org"&gt;Undone CS&lt;/a&gt;&lt;/p&gt; 12910 + &lt;/p&gt;</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">&lt;p&gt;Paper on uncertainty in climate science in &lt;a href="https://undonecs.sciencesconf.org"&gt;Undone CS&lt;/a&gt;&lt;/p&gt; 12911 12911 12912 12912 &lt;blockquote class="paper noquote"&gt; 12913 12913 &lt;div class="paper-info"&gt; ··· 13274 13274 mbsync/goimapnotify/aerc/mu/msmtp/gpgp/ldapsearch &lt;a href="https://github.com/RyanGibb/nixos/tree/7f303f5ff5283d31aa98f88574bfc85f4634afed/modules/personal/home/mail"&gt;nix&lt;/a&gt;.&lt;/li&gt; 13275 13275 &lt;/ul&gt; 13276 13276 &lt;/section&gt; 13277 - &lt;/article&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/spatial-summarisation-of-llms</id><summary type="html">&lt;h1&gt;Spatial and multi-modal extraction from conservation literature&lt;/h1&gt; 13277 + &lt;/article&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">&lt;h1&gt;Spatial and multi-modal extraction from conservation literature&lt;/h1&gt; 13278 13278 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;, &lt;a class="contact" href="https://profiles.imperial.ac.uk/a.christie"&gt;Alec Christie&lt;/a&gt; and &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/bill-sutherland"&gt;Bill Sutherland&lt;/a&gt;.&lt;/p&gt; 13279 13279 &lt;p&gt;The &lt;a href="https://anil.recoil.org/projects/ce"&gt;Conservation Evidence Copilots&lt;/a&gt; database contains information on numerous conservation actions and 13280 13280 their supporting evidence. We also have access to a large corpus of academic ··· 13309 13309 &lt;li&gt;The &lt;a href="https://docs.ragas.io/en/stable/index.html"&gt;Ragas framework&lt;/a&gt; for RAG evaluation&lt;/li&gt; 13310 13310 &lt;li&gt;&lt;a href="https://arxiv.org/abs/2406.02524v2"&gt;CheckEmbed: Effective Verification of LLM Solutions to Open Ended Tasks&lt;/a&gt;, arxiv:2406.02524v2, June 2024&lt;/li&gt; 13311 13311 &lt;li&gt;&lt;a href="https://arxiv.org/abs/2210.00045"&gt;Calibrating Sequence Likelihood Improves Conditional Language Generation&lt;/a&gt;, arxiv:2210.00045, September 2000&lt;/li&gt; 13312 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/tardis</id><summary type="html">&lt;h1&gt;Privacy preserving emissions disclosure techniques&lt;/h1&gt; 13312 + &lt;/ul&gt;</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">&lt;h1&gt;Privacy preserving emissions disclosure techniques&lt;/h1&gt; 13313 13313 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science PhD topic, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/psjm3"&gt;Jessica Man&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://martin.kleppmann.com"&gt;Martin Kleppmann&lt;/a&gt;.&lt;/p&gt; 13314 13314 &lt;p&gt;Customers of online services may want to take carbon emissions into account 13315 13315 when deciding which service to use, but are currently hindered by a lack of ··· 13325 13325 architectures enables providers to compete on the basis of sustainability, 13326 13326 resulting in demand-side pressure on cloud services to shift to renewable 13327 13327 energy sources.&lt;/p&gt; 13328 - &lt;p&gt;We published a workshop paper on this topic in &lt;a href="https://anil.recoil.org/papers/2024-loco-emissions"&gt;Emission Impossible: privacy-preserving carbon emissions claims&lt;/a&gt;.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/recording-nature</id><summary type="html">&lt;h1&gt;Low-power sensing infrastructure for biodiversity&lt;/h1&gt; 13328 + &lt;p&gt;We published a workshop paper on this topic in &lt;a href="https://anil.recoil.org/papers/2024-loco-emissions"&gt;Emission Impossible: privacy-preserving carbon emissions claims&lt;/a&gt;.&lt;/p&gt;</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">&lt;h1&gt;Low-power sensing infrastructure for biodiversity&lt;/h1&gt; 13329 13329 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science PhD topic, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&gt;Josh Millar&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://haddadi.github.io/"&gt;Hamed Haddadi&lt;/a&gt;.&lt;/p&gt; 13330 13330 &lt;p&gt;In-situ sensing devices need to be deployed in remote environments for long 13331 13331 periods of time, and minimizing their power consumption is vital for maximising ··· 13338 13338 does pretty well against a number of fixed schedules; the scheduler captures 13339 13339 more than 80% of events at less than 50% of the number of activations of the 13340 13340 best-performing fixed schedule. You can read more about this in 13341 - &lt;a href="https://anil.recoil.org/papers/2024-terracorder"&gt;Terracorder: Sense Long and Prosper&lt;/a&gt;.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/legal-aspects-of-credits</id><summary type="html">&lt;h1&gt;Legal perspectives on integrity issues in forest carbon&lt;/h1&gt; 13341 + &lt;a href="https://anil.recoil.org/papers/2024-terracorder"&gt;Terracorder: Sense Long and Prosper&lt;/a&gt;.&lt;/p&gt;</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">&lt;h1&gt;Legal perspectives on integrity issues in forest carbon&lt;/h1&gt; 13342 13342 &lt;p&gt;This is an idea proposed in 2024 as a postdoctoral project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/smc70"&gt;Sophie Chapman&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/eft20"&gt;Eleanor Toye Scott&lt;/a&gt;.&lt;/p&gt; 13343 13343 &lt;p&gt;Carbon finance offers a vital way to fund urgently needed forest conservation, 13344 13344 but there are integrity issues on the supply side.&lt;sup&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#fn-1" id="ref-1-fn-1"&gt;[1]&lt;/a&gt;&lt;/sup&gt; ··· 13365 13365 &lt;p&gt;See the note on &lt;a href="https://anil.recoil.org/notes/nature-crossroads"&gt;Nature Sustainability commentary on carbon and biodiversity credits&lt;/a&gt;&lt;/p&gt; 13366 13366 &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-1"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li id="fn-2"&gt; 13367 13367 &lt;p&gt;See the &lt;a href="https://anil.recoil.org/projects/4c"&gt;Trusted Carbon Credits&lt;/a&gt; project and related papers.&lt;/p&gt; 13368 - &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-2"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/chunk-free-embeddings</id><summary type="html">&lt;h1&gt;Generating chunk-free embeddings for LLMs&lt;/h1&gt; 13368 + &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-2"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</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">&lt;h1&gt;Generating chunk-free embeddings for LLMs&lt;/h1&gt; 13369 13369 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:mj651@cam.ac.uk"&gt;Mark Jacobsen&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;.&lt;/p&gt; 13370 13370 &lt;p&gt;This project aims to explore the development of a chunk-free approach for 13371 13371 generating embeddings in Retrieval-Augmented Generation (RAG) models. ··· 13382 13382 &lt;p&gt;Additionally, the research aims to explore adaptive chunking driven by a 13383 13383 trained model, allowing context-aware embedding generation end-to-end. This 13384 13384 method promises a more integrated and efficient approach, eliminating the need 13385 - for separate summarization and embedding processes.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/rag-evaluation-for-ce</id><summary type="html">&lt;h1&gt;Evaluating RAG pipelines for conservation evidence&lt;/h1&gt; 13385 + for separate summarization and embedding processes.&lt;/p&gt;</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">&lt;h1&gt;Evaluating RAG pipelines for conservation evidence&lt;/h1&gt; 13386 13386 &lt;p&gt;This is an idea proposed in 2024 as a good starter project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="mailto:ri301@cam.ac.uk"&gt;Radhika Iyer&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;.&lt;/p&gt; 13387 13387 &lt;p&gt;At the &lt;a href="https://anil.recoil.org/projects/ce"&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"&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.&lt;/p&gt; 13388 13388 &lt;p&gt;This project involved involve evaluating the performance of RAG pipelines for conservation evidence, comparing different models, configurations and benchmark sets, and identifying areas for improvement. The goal is to develop a set of best practices for using RAG pipelines in the context of conservation evidence, and to make recommendations for future work in this area.&lt;/p&gt; ··· 13390 13390 &lt;h2&gt;Related Reading&lt;/h2&gt; 13391 13391 &lt;ul&gt; 13392 13392 &lt;li&gt;&lt;a href="https://arxiv.org/html/2405.13622v1"&gt;Automated Evaluation of Retrieval-Augmented Language Models with Task-Specific Exam Generation&lt;/a&gt;, arXiv:2405.13622v1, May 2024&lt;/li&gt; 13393 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/effective-geospatial-code</id><summary type="html">&lt;h1&gt;Effective geospatial code in OCaml&lt;/h1&gt; 13393 + &lt;/ul&gt;</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">&lt;h1&gt;Effective geospatial code in OCaml&lt;/h1&gt; 13394 13394 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:gp528@cam.ac.uk"&gt;George Pool&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://mynameismwd.org"&gt;Michael Dales&lt;/a&gt; and &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt;.&lt;/p&gt; 13395 13395 &lt;p&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;/p&gt; 13396 13396 &lt;p&gt;&lt;a href="https://github.com/quantifyearth/yirgacheffe"&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 rasterised, and manages memory efficiently for large layers. There is only one problem: we would like to write similar code to this, but in a high level functional language rather than an imperative one!&lt;/p&gt; ··· 13401 13401 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2024-planetary-computing"&gt;Planetary computing for data-driven environmental policy-making&lt;/a&gt; covers the data processing pipelines we need to integrate into.&lt;/li&gt; 13402 13402 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2021-pldi-retroeff"&gt;Retrofitting effect handlers onto OCaml&lt;/a&gt;, PLDI 2021 describes how the effect system in OCaml works.&lt;/li&gt; 13403 13403 &lt;li&gt;&lt;a href="https://github.com/ocaml-multicore/eio"&gt;EIO&lt;/a&gt; is the high-performance direct-style IO library we have been developing for OCaml.&lt;/li&gt; 13404 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/decomposing-audio-with-dl</id><summary type="html">&lt;h1&gt;Deep learning for decomposing sound into vector audio&lt;/h1&gt; 13404 + &lt;/ul&gt;</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">&lt;h1&gt;Deep learning for decomposing sound into vector audio&lt;/h1&gt; 13405 13405 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://pure.qub.ac.uk/en/persons/trevor-agus"&gt;Trevor Agus&lt;/a&gt;.&lt;/p&gt; 13406 13406 &lt;p&gt;All that we hear is mediated through cues transmitted to the brain from the 13407 13407 cochlea, which acts like a bank of auditory filters centred at a wide range of ··· 13429 13429 &lt;p&gt;Agus, T.R., et al., &lt;a href="https://pubmed.ncbi.nlm.nih.gov/22559384/"&gt;Fast recognition of musical sounds based on timbre&lt;/a&gt;. J Acoust Soc Am, 2012. 131(5): p. 4124-33.&lt;/p&gt; 13430 13430 &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-2"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li id="fn-3"&gt; 13431 13431 &lt;p&gt;Famularo, R.L., et al., &lt;a href="https://www.arxiv.org/abs/2409.08997"&gt;Biomimetic frontend for differentiable audio processing&lt;/a&gt;. [pre-print], 2024.&lt;/p&gt; 13432 - &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-3"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/grey-lit-crawl</id><summary type="html">&lt;h1&gt;Crawling grey literature for conservation evidence&lt;/h1&gt; 13432 + &lt;span&gt;&lt;a class="fn-label" href="https://anil.recoil.org/#ref-1-fn-3"&gt;↩︎︎&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&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">&lt;h1&gt;Crawling grey literature for conservation evidence&lt;/h1&gt; 13433 13433 &lt;p&gt;This is an idea proposed in 2024 as a good starter project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Shrey Biswas&lt;/a&gt; and &lt;a class="contact" href="https://github.com/Kacper-M-Michalik"&gt;Kacper Michalik&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;.&lt;/p&gt; 13434 13434 &lt;p&gt;At the &lt;a href="https://anil.recoil.org/projects/ce"&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"&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.&lt;/p&gt; 13435 13435 &lt;p&gt;This project involved developing a web crawler to search for grey literature on conservation interventions, tracking the provenance and license information, and extracting relevant information from these documents. The goal is to make this information more accessible to researchers and practitioners in the field of conservation.&lt;/p&gt; 13436 - &lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Paper in preparation, contact me for more details about followups.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/ce</id><summary type="html">&lt;div&gt; 13436 + &lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Paper in preparation, contact me for more details about followups.&lt;/p&gt;</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">&lt;div&gt; 13437 13437 &lt;h1&gt;Conservation Evidence Copilots&lt;/h1&gt; 13438 13438 &lt;p&gt;&lt;p&gt;The &lt;a href="https://conservationevidence.com"&gt;Conservation Evidence&lt;/a&gt; team at the University 13439 13439 of Cambridge has spent years screening 1.6m+ scientific papers on conservation, as ··· 13463 13463 &lt;p&gt;The collaboration originally began in 2022 as part of the Computer Science &lt;a href="https://www.cst.cam.ac.uk/teaching/part-ib/group-projects"&gt;1B group projects&lt;/a&gt;, when &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/bill-sutherland"&gt;Bill Sutherland&lt;/a&gt;, &lt;a class="contact" href="https://samreynolds.org/"&gt;Sam Reynolds&lt;/a&gt; and &lt;a class="contact" href="https://profiles.imperial.ac.uk/a.christie"&gt;Alec Christie&lt;/a&gt; from Zoology proposed a group project related to CE. A team of undergraduate students (including &lt;a class="contact" href="https://github.com/CaoJamie"&gt;Jamie Cao&lt;/a&gt;) trained an ML model to facilitate searching for papers and indexing relevant articles by species and habitat. After the group project completed with encouraging results, &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt; and I joined the collaboration and -- with help from the Cambridge &lt;a href="https://osc.cam.ac.uk"&gt;Office for Scholarly Communication&lt;/a&gt; -- built up a comprehensive (and legal!) corpus of millions of academic papers related to conservation evidence.&lt;/p&gt; 13464 13464 &lt;p&gt;In the summer of 2024 and beyond, we are performing the first cut of training the classifiers across this corpus, and building out an LLM-based co-pilot that can assist human experts. We were joined in the summer of 2024 by three CST undergraduates: &lt;a class="contact" href="mailto:ri301@cam.ac.uk"&gt;Radhika Iyer&lt;/a&gt;, &lt;a class="contact" href="https://anil.recoil.org/"&gt;Shrey Biswas&lt;/a&gt; and &lt;a class="contact" href="https://github.com/Kacper-M-Michalik"&gt;Kacper Michalik&lt;/a&gt; who are building out various elements of the system.&lt;/p&gt; 13465 13465 &lt;/p&gt; 13466 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/functional-diffs</id><summary type="html">&lt;h1&gt;Composable diffing for heterogenous file formats&lt;/h1&gt; 13466 + &lt;/div&gt;</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">&lt;h1&gt;Composable diffing for heterogenous file formats&lt;/h1&gt; 13467 13467 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt;.&lt;/p&gt; 13468 13468 &lt;p&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 compared line by line.&lt;/p&gt; 13469 13469 &lt;p&gt;This project explores the design of a composable diffing specification that can compare and merge data across heterogenous file formats. The project will involve designing a domain-specific language for specifying the diffing rules, and implementing a prototype tool that can compare and merge data across different file formats. Crucially, the tool should be composable, meaning that it should be possible to combine different diffing rules to compare and merge data across different file formats.&lt;/p&gt; ··· 13474 13474 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2024-planetary-computing"&gt;Planetary computing for data-driven environmental policy-making&lt;/a&gt; covers the broader data processing pipelines we need to integrate into.&lt;/li&gt; 13475 13475 &lt;li&gt;&lt;em&gt;&lt;a href="http://eelco.lempsink.nl/thesis.pdf"&gt;&amp;quot;Generic type-safe diff and patch for families of datatypes&amp;quot;&lt;/a&gt;, Eelco Lempsink (2009)&lt;/em&gt; is a principled library in Haskell for constructing type safe diff and patch functions using GADTs.&lt;/li&gt; 13476 13476 &lt;li&gt;&lt;em&gt;&lt;a href="https://gioele.io/p/doceng2018/doceng2018-diffi.pdf"&gt;diffi: diff improved; a preview&lt;/a&gt;, Gioele Barabucci (2018)&lt;/em&gt; is a comparison tool whose primary goal is to describe the differences between the content of two documents regardless of their formats.&lt;/li&gt; 13477 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/bigraphs-real-world</id><summary type="html">&lt;h1&gt;Building bigraphs of the real world&lt;/h1&gt; 13477 + &lt;/ul&gt;</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">&lt;h1&gt;Building bigraphs of the real world&lt;/h1&gt; 13478 13478 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:ra652@cam.ac.uk"&gt;Roy Ang&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://ryan.freumh.org"&gt;Ryan Gibb&lt;/a&gt;.&lt;/p&gt; 13479 13479 &lt;p&gt;Bigraphs were originally proposed as a model for the behaviour of ubiquitous 13480 13480 systems since interaction between mobile devices is dependent on both placing ··· 13502 13502 streets. The use of such bigraphs for ubiquitous systems will be demonstrated 13503 13503 with the use case of Bluetooth connectivity, using reaction rules that allow 13504 13504 devices to move to a new place and form links with other devices in its 13505 - proximity.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/mangrove-literature-for-ce</id><summary type="html">&lt;h1&gt;Assessing mangrove literature for conservation evidence&lt;/h1&gt; 13505 + proximity.&lt;/p&gt;</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">&lt;h1&gt;Assessing mangrove literature for conservation evidence&lt;/h1&gt; 13506 13506 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part II project, and is &lt;span class="idea-available"&gt;available&lt;/span&gt; for being worked on. It may be co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt; and &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/dr-thomas-worthington"&gt;Tom Worthington&lt;/a&gt;.&lt;/p&gt; 13507 13507 &lt;p&gt;At the &lt;a href="https://anil.recoil.org/projects/ce"&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 policy and practice.&lt;/p&gt; 13508 - &lt;p&gt;At the Cambridge Conservation Initiative, there are in-house experts such as &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/dr-thomas-worthington"&gt;Tom Worthington&lt;/a&gt; developing a platform to integrate evidence on mangrove preservation and restoration. This project will involve assessing the literature found by this project to identify key sources, extract relevant information, and evaluate the quality of the resulting evidence. The goal is to develop a set of best practices for using mangrove literature in the context of conservation evidence, to validate it from the databases collated by domain experts, and to make recommendations for future work in this area.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/accurate-summarisation-for-ce</id><summary type="html">&lt;h1&gt;Accurate summarisation of threats for conservation evidence literature&lt;/h1&gt; 13508 + &lt;p&gt;At the Cambridge Conservation Initiative, there are in-house experts such as &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/dr-thomas-worthington"&gt;Tom Worthington&lt;/a&gt; developing a platform to integrate evidence on mangrove preservation and restoration. This project will involve assessing the literature found by this project to identify key sources, extract relevant information, and evaluate the quality of the resulting evidence. The goal is to develop a set of best practices for using mangrove literature in the context of conservation evidence, to validate it from the databases collated by domain experts, and to make recommendations for future work in this area.&lt;/p&gt;</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">&lt;h1&gt;Accurate summarisation of threats for conservation evidence literature&lt;/h1&gt; 13509 13509 &lt;p&gt;This is an idea proposed in 2024 as a Cambridge Computer Science Part III or MPhil project, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="mailto:kh807@cam.ac.uk"&gt;Kittson Hamill&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;.&lt;/p&gt; 13510 13510 &lt;p&gt;At the &lt;a href="https://anil.recoil.org/projects/ce"&gt;Conservation Evidence Copilots&lt;/a&gt; project, we are interested in constructing a taxonomy of threats 13511 13511 to wildlife from the literature. This involves scanning the body of ··· 14190 14190 for planning but not of much use in giving an engaging presentation&lt;/li&gt; 14191 14191 &lt;/ul&gt; 14192 14192 &lt;/section&gt; 14193 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/royal-society-newton</id><summary type="html">&lt;p&gt;I joined the &lt;a href="https://royalsociety.org"&gt;Royal Society&lt;/a&gt; &lt;a href="https://royalsociety.org/grants/newton-international/"&gt;Newton International Fellowships&lt;/a&gt; 14193 + &lt;/article&gt;</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">&lt;p&gt;I joined the &lt;a href="https://royalsociety.org"&gt;Royal Society&lt;/a&gt; &lt;a href="https://royalsociety.org/grants/newton-international/"&gt;Newton International Fellowships&lt;/a&gt; 14194 14194 &lt;a href="https://royalsociety.org/people/anil-madhavapeddy-36582/"&gt;committee&lt;/a&gt; to help with selecting bright new scientists from abroad who wish to conduct research in the UK.&lt;/p&gt; 14195 14195 &lt;blockquote&gt; 14196 14196 &lt;p&gt;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. 14197 14197 &lt;cite&gt; -- &lt;a href="https://royalsociety.org/grants/newton-international/"&gt;The Royal Society&lt;/a&gt;&lt;/p&gt; 14198 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-pact-tmf-2</id><summary type="html">&lt;p&gt;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"&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"&gt;Realizing the social value of impermanent carbon credits&lt;/a&gt;.&lt;/p&gt; 14198 + &lt;/blockquote&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">&lt;p&gt;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"&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"&gt;Realizing the social value of impermanent carbon credits&lt;/a&gt;.&lt;/p&gt; 14199 14199 14200 14200 &lt;blockquote class="paper noquote"&gt; 14201 14201 &lt;div class="paper-info"&gt; ··· 14308 14308 &lt;p&gt;&lt;span id="got-the-flu-para-0"&gt;Unfortunately, the rest of the week was 14309 14309 a write-off with the flu.&lt;/span&gt;&lt;/p&gt; 14310 14310 &lt;/section&gt; 14311 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/48a7ab10-3f49-4978-a00f-c26b64c2cae7-1</id><summary type="html">&lt;p&gt;On the BBC briefly about the Dawn supercomputer&lt;/p&gt; 14311 + &lt;/article&gt;</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">&lt;p&gt;On the BBC briefly about the Dawn supercomputer&lt;/p&gt; 14312 14312 14313 14313 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;This is a sort of follow on to a post I wrote about &lt;a href="/blog/old-icons/"&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"&gt;posted to social media&lt;/a&gt; by &lt;a href="https://www.pixelresort.com"&gt;Michael Flarup&lt;/a&gt; showing the evolution of the macOS default dock over many versions:&lt;/p&gt; 14314 14314 &lt;div class="listimage"&gt; ··· 14337 14337 &lt;/figure&gt; 14338 14338 &lt;/div&gt; 14339 14339 &lt;/div&gt; 14340 - &lt;p&gt;So there's no technology barrier here, just we need to convince product managers that there's a distinction required for making things fit in with an aesthetic and being usable, which requires a different sort of fitting in.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-hotnets-sns-1</id><summary type="html">&lt;p&gt;Paper on spatial networks on DNS at &lt;a href="https://dl.acm.org/doi/10.1145/3626111.3628210"&gt;HotNets 2023&lt;/a&gt;&lt;/p&gt; 14340 + &lt;p&gt;So there's no technology barrier here, just we need to convince product managers that there's a distinction required for making things fit in with an aesthetic and being usable, which requires a different sort of fitting in.&lt;/p&gt;</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">&lt;p&gt;Paper on spatial networks on DNS at &lt;a href="https://dl.acm.org/doi/10.1145/3626111.3628210"&gt;HotNets 2023&lt;/a&gt;&lt;/p&gt; 14341 14341 14342 14342 &lt;blockquote class="paper noquote"&gt; 14343 14343 &lt;div class="paper-info"&gt; ··· 14350 14350 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2023-hotnets-sns.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 14351 14351 &lt;/p&gt; 14352 14352 &lt;/div&gt; 14353 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-ncc-permanence-2</id><summary type="html">&lt;p&gt;Our paper on valuing impermanent carbon credits has been published at &lt;a href="https://www.nature.com/articles/s41558-023-01815-0"&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"&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"&gt;cam.ac.uk&lt;/a&gt;, and &lt;a href="https://www.miragenews.com/new-method-may-boost-trust-in-carbon-credits-1113599/"&gt;Mirage&lt;/a&gt;.&lt;/p&gt; 14353 + &lt;/blockquote&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">&lt;p&gt;Our paper on valuing impermanent carbon credits has been published at &lt;a href="https://www.nature.com/articles/s41558-023-01815-0"&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"&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"&gt;cam.ac.uk&lt;/a&gt;, and &lt;a href="https://www.miragenews.com/new-method-may-boost-trust-in-carbon-credits-1113599/"&gt;Mirage&lt;/a&gt;.&lt;/p&gt; 14354 14354 14355 14355 &lt;blockquote class="paper noquote"&gt; 14356 14356 &lt;div class="paper-info"&gt; ··· 14363 14363 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2023-ncc-permanence.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 14364 14364 &lt;/p&gt; 14365 14365 &lt;/div&gt; 14366 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-life-1</id><summary type="html">&lt;p&gt;The first preprint on our new &lt;a href="https://anil.recoil.org/projects/life"&gt;LIFE&lt;/a&gt; metric for global biodiversity is now available. It is under review, so feedback would be very welcome.&lt;/p&gt; 14366 + &lt;/blockquote&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">&lt;p&gt;The first preprint on our new &lt;a href="https://anil.recoil.org/projects/life"&gt;LIFE&lt;/a&gt; metric for global biodiversity is now available. It is under review, so feedback would be very welcome.&lt;/p&gt; 14367 14367 14368 14368 &lt;blockquote class="paper noquote"&gt; 14369 14369 &lt;div class="paper-info"&gt; ··· 14569 14569 &lt;li&gt;TA’d L50.&lt;/li&gt; 14570 14570 &lt;/ul&gt; 14571 14571 &lt;/section&gt; 14572 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/mission-possible</id><summary type="html">&lt;p&gt;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"&gt;Mission Possible&lt;/a&gt; 14572 + &lt;/article&gt;</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">&lt;p&gt;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"&gt;Mission Possible&lt;/a&gt; 14573 14573 during &lt;a href="https://www.climateweeknyc.org"&gt;NYC Climate Week&lt;/a&gt;. I was there with &lt;a class="contact" href="https://www.cisl.cam.ac.uk/directory/emily-shuckburgh"&gt;Emily Shuckburgh&lt;/a&gt; and we met with a lot of Cambridge alumni who 14574 14574 are all engaged with climate change related activities -- either directly in their careers, or through a side interest.&lt;/p&gt; 14575 14575 &lt;p&gt;The major highlights on the discussions with alumni centred around agency: a lot of them were wondering how to combine the evidence coming ··· 14791 14791 &lt;/div&gt; 14792 14792 &lt;/div&gt; 14793 14793 &lt;/section&gt; 14794 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-raid-deluminator-1</id><summary type="html">&lt;p&gt;Paper on DIFC Deluminator interface at &lt;a href="https://dl.acm.org/doi/10.1145/3607199.3607235"&gt;RAID 2023&lt;/a&gt;&lt;/p&gt; 14794 + &lt;/article&gt;</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">&lt;p&gt;Paper on DIFC Deluminator interface at &lt;a href="https://dl.acm.org/doi/10.1145/3607199.3607235"&gt;RAID 2023&lt;/a&gt;&lt;/p&gt; 14795 14795 14796 14796 &lt;blockquote class="paper noquote"&gt; 14797 14797 &lt;div class="paper-info"&gt; ··· 14804 14804 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2023-raid-deluminator.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 14805 14805 &lt;/p&gt; 14806 14806 &lt;/div&gt; 14807 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-acns-microguards-1</id><summary type="html">&lt;p&gt;Paper on microgrounds memory API at &lt;a href="https://link.springer.com/chapter/10.1007/978-3-031-41181-6_31"&gt;ACNSW&lt;/a&gt;&lt;/p&gt; 14807 + &lt;/blockquote&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">&lt;p&gt;Paper on microgrounds memory API at &lt;a href="https://link.springer.com/chapter/10.1007/978-3-031-41181-6_31"&gt;ACNSW&lt;/a&gt;&lt;/p&gt; 14808 14808 14809 14809 &lt;blockquote class="paper noquote"&gt; 14810 14810 &lt;div class="paper-info"&gt; ··· 14817 14817 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2023-acns-microguards.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 14818 14818 &lt;/p&gt; 14819 14819 &lt;/div&gt; 14820 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/981c00b5-32c0-4cac-a387-6c945dfa9934-1</id><summary type="html">&lt;p&gt;Keynoted at ICFP 2023 on Functional Programming for the Planet&lt;/p&gt; 14820 + &lt;/blockquote&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">&lt;p&gt;Keynoted at ICFP 2023 on Functional Programming for the Planet&lt;/p&gt; 14821 14821 14822 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-ocaml-platform-1</id><summary type="html">&lt;p&gt;We deliver the annual presentation about the OCaml Platform in the OCaml Workshop at ICFP 2023.&lt;/p&gt; 14822 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;We deliver the annual presentation about the OCaml Platform in the OCaml Workshop at ICFP 2023.&lt;/p&gt; 14823 14823 &lt;blockquote&gt; 14824 14824 &lt;p&gt;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;/p&gt; 14825 14825 &lt;/blockquote&gt; ··· 14834 14834 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2023-ocaml-platform.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 14835 14835 &lt;/p&gt; 14836 14836 &lt;/div&gt; 14837 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/murmuration</id><summary type="html">&lt;h1&gt;Scheduling for Reduced Tail Latencies in Highly Utilised Datacenters&lt;/h1&gt; 14837 + &lt;/blockquote&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">&lt;h1&gt;Scheduling for Reduced Tail Latencies in Highly Utilised Datacenters&lt;/h1&gt; 14838 14838 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://www.cl.cam.ac.uk/~sv440/"&gt;Smita Vijayakumar&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/ek264"&gt;Evangelia Kalyvianaki&lt;/a&gt;.&lt;/p&gt; 14839 14839 &lt;p&gt;Modern datacenters have become the backbone for running diverse workloads that increas- 14840 14840 ingly comprise data-parallel computational jobs. Due to the ease of use and diversity of ··· 14850 14850 manner that reduces their total wait times. It achieves this by scheduling all 14851 14851 tasks of a job such that their start times are as close together as possible, 14852 14852 thereby ensuring small tail task completion times and better average job 14853 - completion times.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-ocaml-eio-1</id><summary type="html">&lt;p&gt;An update on the OCaml EIO library at the OCaml Workshop 2023&lt;/p&gt; 14853 + completion times.&lt;/p&gt;</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">&lt;p&gt;An update on the OCaml EIO library at the OCaml Workshop 2023&lt;/p&gt; 14854 14854 14855 14855 &lt;blockquote class="paper noquote"&gt; 14856 14856 &lt;div class="paper-info"&gt; ··· 15368 15368 &lt;p&gt;Now, on one hand this isn't really progress, as I still don't know what settings on the GeoTIFF cause Slack to render a review versus not - I have the same problem and just a quicker way to diagnose it perhaps. But then on the other hand at least I can diagnose it now: if I send a colleague a GeoTIFF and it renders a preview, it is now ruined. I assume that if you have a preview and you download the image again then you get a new image from the original data rather than the one you uploaded. Or perhaps, as my colleague &lt;a href="https://patrick.sirref.org"&gt;Patrick&lt;/a&gt; pointed out, once Slack decides to treat it like an image it &lt;a href="https://techcrunch.com/2020/05/11/slack-strips-location-data/"&gt;strips out metadata for security reasons&lt;/a&gt; - but then if that's the case its poor that I can get images through that don't get cleaned up like that.&lt;/p&gt; 15369 15369 &lt;p&gt;It does remind me a bit of the early days of mobile networks, where your mobile operator would rewrite images you downloaded on their servers to be more highly compressed, so as to save them bandwidth. You hear less of that these days, and I have checked the actual image data, and I've not yet found one where the data itself was changed, just the metadata.&lt;/p&gt; 15370 15370 &lt;hr /&gt; 15371 - &lt;p&gt;Slack fiddling in this way me cost the better part of days work, because we didn't spot that it had mangled one of our datasets and so we had confused results, and so it's particularly vexing that I can't find a root cause, but at least I have a work around now: I've taken to putting any GeoTIFFs I send to colleagues into a zip file now - not to save space (given the GeoTIFFs are compressed putting them in a zip often makes them slightly larger), but rather to stop Slack fiddling with them. Not the best, but if I do it as a matter of course, I never have to think about this again, at least until Slack decide to fiddle with zip files.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/metaproperties-for-smart-contracts</id><summary type="html">&lt;h1&gt;Meta Properties of Financial Smart Contracts&lt;/h1&gt; 15371 + &lt;p&gt;Slack fiddling in this way me cost the better part of days work, because we didn't spot that it had mangled one of our datasets and so we had confused results, and so it's particularly vexing that I can't find a root cause, but at least I have a work around now: I've taken to putting any GeoTIFFs I send to colleagues into a zip file now - not to save space (given the GeoTIFFs are compressed putting them in a zip often makes them slightly larger), but rather to stop Slack fiddling with them. Not the best, but if I do it as a matter of course, I never have to think about this again, at least until Slack decide to fiddle with zip files.&lt;/p&gt;</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">&lt;h1&gt;Meta Properties of Financial Smart Contracts&lt;/h1&gt; 15372 15372 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://derekhsorensen.com"&gt;Derek Sorensen&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt;.&lt;/p&gt; 15373 15373 &lt;p&gt;Financial smart contracts routinely manage billions of US dollars worth of 15374 15374 digital assets, making bugs in smart contracts extremely costly, and are also ··· 15384 15384 that are intended by, but out of scope of, its specification. The targeted 15385 15385 properties include the economic behaviors of the contract, properties relating 15386 15386 to its upgradeability features, and the intended behaviors of systems of 15387 - contracts. The formal tools presented are written in Coq.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/computational-scientific-methods</id><summary type="html">&lt;h1&gt;Computational Models for Scientific Exploration&lt;/h1&gt; 15387 + contracts. The formal tools presented are written in Coq.&lt;/p&gt;</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">&lt;h1&gt;Computational Models for Scientific Exploration&lt;/h1&gt; 15388 15388 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt;.&lt;/p&gt; 15389 15389 &lt;p&gt;The modern scientific method has become highly computational, but computer 15390 15390 science hasn't entirely caught up and is sometimes hindering research progress.&lt;/p&gt; ··· 15400 15400 &lt;li&gt;There is an extensive amount of source code up at &lt;a href="https://github.com/quantifyearth"&gt;https://github.com/quantifyearth&lt;/a&gt; 15401 15401 and &lt;a href="https://github.com/carboncredits"&gt;https://github.com/carboncredits&lt;/a&gt; which forms parts of our pipeline.&lt;/li&gt; 15402 15402 &lt;li&gt;See the related ideas for some smaller scale projects you can engage with.&lt;/li&gt; 15403 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-ncc-permanence-1</id><summary type="html">&lt;p&gt;We have uploaded a preprint of our &lt;a href="https://anil.recoil.org/projects/4c"&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"&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;/p&gt; 15403 + &lt;/ul&gt;</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">&lt;p&gt;We have uploaded a preprint of our &lt;a href="https://anil.recoil.org/projects/4c"&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"&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;/p&gt; 15404 15404 15405 15405 &lt;blockquote class="paper noquote"&gt; 15406 15406 &lt;div class="paper-info"&gt; ··· 15413 15413 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2023-ncc-permanence.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 15414 15414 &lt;/p&gt; 15415 15415 &lt;/div&gt; 15416 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/acm-sigplan-award</id><summary type="html">&lt;p&gt;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"&gt;ACM Programming Languages Software Award for 2023&lt;/a&gt;.&lt;/p&gt; 15416 + &lt;/blockquote&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">&lt;p&gt;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"&gt;ACM Programming Languages Software Award for 2023&lt;/a&gt;.&lt;/p&gt; 15417 15417 &lt;blockquote&gt; 15418 15418 &lt;p&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.&lt;/p&gt; 15419 15419 &lt;p&gt;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.&lt;/p&gt; ··· 15875 15875 &lt;/ol&gt; 15876 15876 &lt;/section&gt; 15877 15877 &lt;/section&gt; 15878 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-pact-tmf-1</id><summary type="html">&lt;p&gt;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;/p&gt; 15878 + &lt;/article&gt;</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">&lt;p&gt;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;/p&gt; 15879 15879 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt; 15880 15880 15881 15881 &lt;blockquote class="paper noquote"&gt; ··· 16339 16339 &lt;p&gt;I am eager to see the new &lt;a href="https://www.forester-notes.org/tfmt-000R/"&gt;forests&lt;/a&gt; that people create using &lt;a href="https://www.forester-notes.org/index/"&gt;Forester&lt;/a&gt;. I am happy to offer personal assistance via the &lt;a href="https://lists.sr.ht/~jonsterling/forester-discuss"&gt;mailing list&lt;/a&gt;.&lt;/p&gt; 16340 16340 &lt;p&gt;Many aspects of &lt;a href="https://www.forester-notes.org/index/"&gt;Forester&lt;/a&gt; are in flux and not fully documented; it will often be instructive to consult the source of existings &lt;a href="https://www.forester-notes.org/tfmt-000R/"&gt;forests&lt;/a&gt;, such as &lt;a href="https://git.sr.ht/~jonsterling/forester-notes.org"&gt;this one&lt;/a&gt;.&lt;/p&gt; 16341 16341 &lt;p&gt;Have fun, and be sure to send me links to your &lt;a href="https://www.forester-notes.org/tfmt-000R/"&gt;forests&lt;/a&gt; when you have made them!&lt;/p&gt; 16342 - &lt;/section&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2023-carbon-credibility-1</id><summary type="html">&lt;p&gt;Our perspective in &lt;a href="https://science.org"&gt;Science&lt;/a&gt; magazine appeared this week on the credibility of carbon credits and its importance for tropical forest protection.&lt;/p&gt; 16342 + &lt;/section&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">&lt;p&gt;Our perspective in &lt;a href="https://science.org"&gt;Science&lt;/a&gt; magazine appeared this week on the credibility of carbon credits and its importance for tropical forest protection.&lt;/p&gt; 16343 16343 &lt;blockquote&gt; 16344 16344 &lt;p&gt;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;/p&gt; 16345 16345 &lt;/blockquote&gt; ··· 16421 16421 &lt;ul&gt; 16422 16422 &lt;li&gt;&lt;a href="https://stephenreescarter.net/how-to-shrink-a-wsl2-virtual-disk/"&gt;https://stephenreescarter.net/how-to-shrink-a-wsl2-virtual-disk/&lt;/a&gt;&lt;/li&gt; 16423 16423 &lt;li&gt;&lt;a href="https://www.linkedin.com/pulse/acceso-wsl2-desde-windows-con-samba-manuel-nicol%C3%A1s-ortu%C3%B1o/"&gt;https://www.linkedin.com/pulse/acceso-wsl2-desde-windows-con-samba-manuel-nicol%C3%A1s-ortu%C3%B1o/&lt;/a&gt;&lt;/li&gt; 16424 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/ce64a918-ff52-4116-b1ee-256f08e6e7f1-1</id><summary type="html">&lt;p&gt;Discussion with Mantle Labs about carbon credits&lt;/p&gt; 16424 + &lt;/ul&gt;</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">&lt;p&gt;Discussion with Mantle Labs about carbon credits&lt;/p&gt; 16425 16425 16426 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&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-1" rel="alternate"></link><published>2023-03-01T00:00:00Z</published><updated>2023-03-01T00:00:00Z</updated><author><name>Anil&lt;</name></author><id>https://anil.recoil.org/news/2024-planetary-computing-1</id><summary type="html">&lt;p&gt;Preprint of planetary computing paper&lt;/p&gt; 16426 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&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-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">&lt;p&gt;Preprint of planetary computing paper&lt;/p&gt; 16427 16427 16428 16428 &lt;blockquote class="paper noquote"&gt; 16429 16429 &lt;div class="paper-info"&gt; ··· 16438 16438 &lt;/blockquote&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">&lt;p&gt;An &lt;a href="https://www.brendanlong.com/ocaml-operator-cheatsheet.html"&gt;OCaml operator 16439 16439 cheatsheet&lt;/a&gt; for 16440 16440 &lt;a href="https://ocaml.org/"&gt;OCaml&lt;/a&gt; operators that I have found useful.&lt;/p&gt;</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">&lt;p&gt;Truly cursed bugs that have become &lt;a href="http://beza1e1.tuxen.de/lore/"&gt;software 16441 - folklore&lt;/a&gt;.&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/sdms-with-cnns</id><summary type="html">&lt;h1&gt;Species distribution modelling using CNNs&lt;/h1&gt; 16441 + folklore&lt;/a&gt;.&lt;/p&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">&lt;h1&gt;Species distribution modelling using CNNs&lt;/h1&gt; 16442 16442 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science Part III or MPhil project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://github.com/emorris7"&gt;Emily Morris&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://coomeslab.org"&gt;David A Coomes&lt;/a&gt;.&lt;/p&gt; 16443 16443 &lt;p&gt;The goal of this project is to compare the performance of &lt;a href="https://biodiversityinformatics.amnh.org/open_source/maxent/"&gt;MaxEnt&lt;/a&gt; techniques to the performance of a CNN model for the task of species distribution 16444 16444 modeling.&lt;/p&gt; ··· 16639 16639 &lt;/ol&gt; 16640 16640 &lt;/section&gt; 16641 16641 &lt;/section&gt; 16642 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/recapping-ocaml-22</id><summary type="html">&lt;p&gt;I recap the OCaml community progress in 2022, which covers a number of bases ranging from 16643 - 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"&gt;https://watch.ocaml.org&lt;/a&gt;.&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/urban-vegetation</id><summary type="html">&lt;h1&gt;The role of urban vegetation in human health&lt;/h1&gt; 16642 + &lt;/article&gt;</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">&lt;p&gt;I recap the OCaml community progress in 2022, which covers a number of bases ranging from 16643 + 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"&gt;https://watch.ocaml.org&lt;/a&gt;.&lt;/p&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">&lt;h1&gt;The role of urban vegetation in human health&lt;/h1&gt; 16644 16644 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="https://ancazugo.github.io/"&gt;Andres Zuñiga-Gonzalez&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="https://www.arct.cam.ac.uk/people/dr-ronita-bardhan"&gt;Ronita Bardhan&lt;/a&gt;.&lt;/p&gt; 16645 16645 &lt;p&gt;Cities around the globe have experienced unprecedented growth in recent years, 16646 16646 becoming centres of economic, cultural, and social hubs for human activity. ··· 16668 16668 &lt;ul&gt; 16669 16669 &lt;li&gt;Read more in the first abstract: &lt;a href="https://anil.recoil.org/papers/2024-green-urban-eq"&gt;Green Urban Equity: Analyzing the 3-30-300 Rule in UK Cities and Its Socioeconomic Implications&lt;/a&gt;&lt;/li&gt; 16670 16670 &lt;li&gt;There will be a talk at &lt;a href="https://www.conftool.pro/biospace25/sessions.php"&gt;Biospace 2025&lt;/a&gt; at the European Space Agency from &lt;a class="contact" href="https://ancazugo.github.io/"&gt;Andres Zuñiga-Gonzalez&lt;/a&gt; and &lt;a class="contact" href="https://profiles.imperial.ac.uk/joshua.millar22"&gt;Josh Millar&lt;/a&gt; in Feb 2025&lt;/li&gt; 16671 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/rev-abm</id><summary type="html">&lt;h1&gt;Reverse emulating agent-based models for policy simulation&lt;/h1&gt; 16671 + &lt;/ul&gt;</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">&lt;h1&gt;Reverse emulating agent-based models for policy simulation&lt;/h1&gt; 16672 16672 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science Part III or MPhil project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://www.linkedin.com/in/pedro-marques-sousa/"&gt;Pedro Sousa&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;.&lt;/p&gt; 16673 16673 &lt;p&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 &amp;quot;levers&amp;quot; (or input parameters) to steer the model towards the envisioned outcomes. To unlock a more natural workflow, this project investigates &lt;em&gt;reverse emulation&lt;/em&gt;, a novel approach that streamlines policy design using probabilistic machine learning to predict parameter values that yield the desired policy outcomes.&lt;/p&gt; 16674 16674 &lt;h1&gt;Background reading&lt;/h1&gt; ··· 16681 16681 &lt;li&gt;Publication to follow as it is currently being written up. The project was awarded the &amp;quot;&lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7228682518596603904/"&gt;2024 Highly Commended M.Phil Project&lt;/a&gt;&amp;quot; commendation from the Computer Science department.&lt;/li&gt; 16682 16682 &lt;/ul&gt; 16683 16683 &lt;h2&gt;See Also&lt;/h2&gt; 16684 - &lt;p&gt;This project was a followup to one in the previous year by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Sharan Agrawal&lt;/a&gt; on &lt;a href="https://anil.recoil.org/ideas/differentiable-abm"&gt;Scalable agent-based models for optimized policy design&lt;/a&gt;.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/rsn</id><summary type="html">&lt;div&gt; 16684 + &lt;p&gt;This project was a followup to one in the previous year by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Sharan Agrawal&lt;/a&gt; on &lt;a href="https://anil.recoil.org/ideas/differentiable-abm"&gt;Scalable agent-based models for optimized policy design&lt;/a&gt;.&lt;/p&gt;</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">&lt;div&gt; 16685 16685 &lt;h1&gt;Remote Sensing of Nature&lt;/h1&gt; 16686 16686 &lt;p&gt;&lt;p&gt;Measuring the world's forest carbon and biodiversity is made possible by remote 16687 16687 sensing instruments, ranging from satellites in space (Landsat, Sentinel, GEDI) ··· 16753 16753 human health. Read more about our work in &amp;quot;&lt;a href="https://anil.recoil.org/papers/2024-green-urban-eq"&gt;Green Urban Equity: Analyzing the 3-30-300 Rule in UK Cities and Its Socioeconomic Implications&lt;/a&gt;&amp;quot; and the project 16754 16754 in &lt;a href="https://anil.recoil.org/ideas/urban-vegetation"&gt;The role of urban vegetation in human health&lt;/a&gt;.&lt;/p&gt; 16755 16755 &lt;/p&gt; 16756 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/life</id><summary type="html">&lt;div&gt; 16756 + &lt;/div&gt;</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">&lt;div&gt; 16757 16757 &lt;h1&gt;Mapping LIFE on Earth&lt;/h1&gt; 16758 16758 &lt;p&gt;&lt;p&gt;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 conservation opportunities opened up via its estimates of the impact on extinctions of diverse actions that change land cover, from individual dietary choices through to global protected area development.&lt;/p&gt; 16759 16759 &lt;h2&gt;LIFE v1&lt;/h2&gt; ··· 16766 16766 &lt;h2&gt;Tying anthropogenic activity such as food consumption to biodiversity.&lt;/h2&gt; 16767 16767 &lt;p&gt;Agriculturally-driven habitat degradation and destruction is the biggest threat to global biodiversity, and so an exciting line of work that &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/dr-tom-ball"&gt;Thomas Ball&lt;/a&gt; has been leading is to tie the LIFE metric with food consumption and production data and provenance modelling in order to figure out the impact of what we eat on species extinctions. The preprint on the FOOD metric (&lt;a href="https://anil.recoil.org/papers/2024-food-life"&gt;Quantifying the impact of the food we eat on species extinctions&lt;/a&gt;) shows that despite marked differences in per-capita impacts across countries, there are consistent patterns that could be leveraged for mitigating harm to biodiversity. We're continuing to work on refining this data and analysis, particularly via higher resolution supply chain datasets and crop yield data.&lt;/p&gt; 16768 16768 &lt;/p&gt; 16769 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/interspatial-networking</id><summary type="html">&lt;h1&gt;Interspatial Networking with DNS&lt;/h1&gt; 16769 + &lt;/div&gt;</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">&lt;h1&gt;Interspatial Networking with DNS&lt;/h1&gt; 16770 16770 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science PhD topic, and is currently &lt;span class="idea-ongoing"&gt;being worked on&lt;/span&gt; by &lt;a class="contact" href="https://ryan.freumh.org"&gt;Ryan Gibb&lt;/a&gt;. It is co-supervised with &lt;a class="contact" href="mailto:jon.crowcroft@cl.cam.ac.uk"&gt;Jon Crowcroft&lt;/a&gt;.&lt;/p&gt; 16771 16771 &lt;p&gt;The existing Internet architecture lacks support for naming locations and 16772 16772 resolving them to the myriad addressing mechanisms we use beyond IP. While ··· 16789 16789 &lt;h2&gt;Relevant Reading&lt;/h2&gt; 16790 16790 &lt;ul&gt; 16791 16791 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2023-hotnets-sns"&gt;Where on Earth is the Spatial Name System?&lt;/a&gt;&lt;/li&gt; 16792 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/activitypub-resilience</id><summary type="html">&lt;h1&gt;Improving Resilience of ActivityPub Services&lt;/h1&gt; 16792 + &lt;/ul&gt;</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">&lt;h1&gt;Improving Resilience of ActivityPub Services&lt;/h1&gt; 16793 16793 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Gediminas Lelešius&lt;/a&gt;.&lt;/p&gt; 16794 16794 &lt;p&gt;The original goal of the project was to improve the resilience of the 16795 16795 distributed social networking protocol &amp;quot;ActivityPub&amp;quot;, by caching the content on ··· 16809 16809 &lt;ul&gt; 16810 16810 &lt;li&gt;The &lt;a href="https://github.com/gediminasel/activitypub-resilience"&gt;dissertation is on GitHub&lt;/a&gt;.&lt;/li&gt; 16811 16811 &lt;li&gt;The modified &lt;a href="https://github.com/gediminasel/mastodon-resilience"&gt;Mastodon source code&lt;/a&gt;.&lt;/li&gt; 16812 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/compressive-geospatial</id><summary type="html">&lt;h1&gt;Assessing high-performance lightweight compression formats for geospatial computation&lt;/h1&gt; 16812 + &lt;/ul&gt;</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">&lt;h1&gt;Assessing high-performance lightweight compression formats for geospatial computation&lt;/h1&gt; 16813 16813 &lt;p&gt;This is an idea proposed in 2023 as a Cambridge Computer Science Part III or MPhil project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://github.com/omarathon"&gt;Omar Tanner&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://toao.com"&gt;Sadiq Jaffer&lt;/a&gt;.&lt;/p&gt; 16814 16814 &lt;p&gt;Geospatial data processing can benefit from by applying lightweight compression 16815 16815 techniques to data in GeoTIFF format, addressing the challenge of modern CPU ··· 18040 18040 &lt;/ol&gt; 18041 18041 &lt;/section&gt; 18042 18042 &lt;/section&gt; 18043 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/bc9da6fc-9419-4f18-9db9-c13b1a4a859f-1</id><summary type="html">&lt;p&gt;Wednesday seminar on financing forests using carbon credits&lt;/p&gt; 18043 + &lt;/article&gt;</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">&lt;p&gt;Wednesday seminar on financing forests using carbon credits&lt;/p&gt; 18044 18044 18045 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/a26475b5-c169-478e-b88e-be5cd1f2aff8-1</id><summary type="html">&lt;p&gt;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.&lt;/p&gt; 18045 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;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.&lt;/p&gt; 18046 18046 18047 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/rwo-2</id><summary type="html">&lt;p&gt;I'm delighted to report that the second edition of &lt;a href="https://realworldocaml.org"&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"&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"&gt;Tarides&lt;/a&gt;. &lt;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/rwo-2"&gt;105 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 18047 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;I'm delighted to report that the second edition of &lt;a href="https://realworldocaml.org"&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"&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"&gt;Tarides&lt;/a&gt;. &lt;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/rwo-2"&gt;105 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 18048 18048 18049 18049 &lt;blockquote class="paper noquote"&gt; 18050 18050 &lt;div class="paper-info"&gt; ··· 18056 18056 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/rwo.bib"&gt;BIB&lt;/a&gt; 18057 18057 &lt;/p&gt; 18058 18058 &lt;/div&gt; 18059 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2022-oud-ocurrent-1</id><summary type="html">&lt;p&gt;Paper on our incremental computation DSL ocurrent presented in OCaml Workshop 2022&lt;/p&gt; 18059 + &lt;/blockquote&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">&lt;p&gt;Paper on our incremental computation DSL ocurrent presented in OCaml Workshop 2022&lt;/p&gt; 18060 18060 18061 18061 &lt;blockquote class="paper noquote"&gt; 18062 18062 &lt;div class="paper-info"&gt; ··· 18218 18218 &lt;/ol&gt; 18219 18219 &lt;/section&gt; 18220 18220 &lt;/section&gt; 18221 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/dsl-for-decentralised-id</id><summary type="html">&lt;h1&gt;A DSL for decentralised identity in OCaml&lt;/h1&gt; 18221 + &lt;/article&gt;</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">&lt;h1&gt;A DSL for decentralised identity in OCaml&lt;/h1&gt; 18222 18222 &lt;p&gt;This is an idea proposed in 2022 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://www.linkedin.com/in/michal-mgeladze-arciuch"&gt;Michał Mgeładze-Arciuch&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://patrick.sirref.org"&gt;Patrick Ferris&lt;/a&gt;.&lt;/p&gt; 18223 18223 &lt;p&gt;There are currently multiple identity providers without direct incentives to 18224 18224 cooperate. This leads to many redundant implementations of the identity ··· 18250 18250 &lt;p&gt;This Part II project was successfully completed but not available online; please 18251 18251 contact the author for a copy of it. &lt;a class="contact" href="https://www.linkedin.com/in/michal-mgeladze-arciuch"&gt;Michał Mgeładze-Arciuch&lt;/a&gt; has subsequently founded &lt;a href="https://www.czechtradeoffices.com/se/news/czech-startup-yoneda-labs-raises-over-$100-million-to-revolutionize-chemical-reactions-with-ai"&gt;Yoneda 18252 18252 Labs to revolutionize chemical 18253 - reactions&lt;/a&gt;!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/4c-1</id><summary type="html">&lt;p&gt;With the recent controversies over low-integrity carbon credits, I spoke to Vox magazine 18253 + reactions&lt;/a&gt;!&lt;/p&gt;</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">&lt;p&gt;With the recent controversies over low-integrity carbon credits, I spoke to Vox magazine 18254 18254 about my skepticism about Adam Neumann's new startup.&lt;/p&gt; 18255 18255 &lt;blockquote&gt; 18256 18256 &lt;p&gt;&amp;quot;The problem with the current markets is nothing to do with how we can trade these more effectively,&amp;quot; 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. &amp;quot;We just do not have enough supply.&amp;quot; ··· 18260 18260 &lt;div&gt; 18261 18261 &lt;p&gt;The Cambridge Centre for Carbon Credits is an initiative I started with &lt;a class="contact" href="https://www.zoo.cam.ac.uk/directory/andrew-balmford"&gt;Andrew Balmford&lt;/a&gt;, &lt;a class="contact" href="https://coomeslab.org"&gt;David A Coomes&lt;/a&gt;, &lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; and &lt;a class="contact" href="https://www.conservation.cam.ac.uk/directory/dr-tom-swinfield"&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 and sensor networks) and decentralised &lt;a href="https://tezos.com"&gt;Tezos&lt;/a&gt; smart contracts to design a carbon marketplace with verifiable transactions that link back to trusted primary observations.   &lt;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/projects/4c"&gt;230 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 18262 18262 18263 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/dispersed-compartments</id><summary type="html">&lt;h1&gt;Secure Programming with Dispersed Compartments&lt;/h1&gt; 18263 + &lt;/div&gt;</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">&lt;h1&gt;Secure Programming with Dispersed Compartments&lt;/h1&gt; 18264 18264 &lt;p&gt;This is an idea proposed in 2022 as a Cambridge Computer Science PhD topic, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://zatkh.github.io/"&gt;Zahra Tarkhani&lt;/a&gt;.&lt;/p&gt; 18265 18265 &lt;p&gt;This PhD project proposes novel approaches and mechanisms for application 18266 18266 compartmentalization and isolation to reduce their ever-growing attack ··· 18283 18283 reducing the trusted computing base (TCB) through deprivileging the host kernel 18284 18284 on-demand.&lt;/p&gt; 18285 18285 &lt;p&gt;See &lt;a class="contact" href="https://zatkh.github.io/"&gt;Zahra Tarkhani&lt;/a&gt;'s completed &lt;a href="https://www.repository.cam.ac.uk/items/15b038fd-2b81-4608-a033-fc5a39de3bf2"&gt;PhD thesis&lt;/a&gt; 18286 - on the subject for more details!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/multicore-monthly-mar22</id><summary type="html">&lt;p&gt;We're getting closer to a stable release of OCaml 5.0, including reenabling support for the BSDs and introducing ARM64 multicore support.&lt;/p&gt;</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">&lt;article&gt; 18286 + on the subject for more details!&lt;/p&gt;</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">&lt;p&gt;We're getting closer to a stable release of OCaml 5.0, including reenabling support for the BSDs and introducing ARM64 multicore support.&lt;/p&gt;</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">&lt;article&gt; 18287 18287 &lt;div class="container"&gt; 18288 18288 18289 18289 &lt;span&gt;Published Mon 18 Apr 2022.&lt;/span&gt; ··· 18402 18402 18403 18403 18404 18404 &lt;/section&gt; 18405 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/multicore-monthly-jan22</id><summary type="html">&lt;p&gt;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.&lt;/p&gt;</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">&lt;article&gt; 18405 + &lt;/article&gt;</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">&lt;p&gt;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.&lt;/p&gt;</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">&lt;article&gt; 18406 18406 &lt;div class="container"&gt; 18407 18407 18408 18408 &lt;span&gt;Published Tue 18 Jan 2022.&lt;/span&gt; ··· 18475 18475 weird and wonderful world of DNS LOC records&lt;/a&gt;&lt;br /&gt; 18476 18476 &lt;/span&gt;&lt;/p&gt; 18477 18477 &lt;/section&gt; 18478 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/parallel-scheduling-with-effects</id><summary type="html">&lt;h1&gt;Using effect handlers for efficient parallel scheduling&lt;/h1&gt; 18478 + &lt;/article&gt;</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">&lt;h1&gt;Using effect handlers for efficient parallel scheduling&lt;/h1&gt; 18479 18479 &lt;p&gt;This is an idea proposed in 2022 as a Cambridge Computer Science Part III or MPhil project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://github.com/bartoszmodelski"&gt;Bartosz Modelski&lt;/a&gt;.&lt;/p&gt; 18480 18480 &lt;p&gt;Modern hardware is so parallel and workloads are so concurrent, that there is 18481 18481 no single, perfect scheduling strategy across a complex application software ··· 18526 18526 &lt;p&gt;Read the full &lt;a href="https://github.com/bartoszmodelski/ebsl/blob/main/report/report.pdf"&gt;report 18527 18527 PDF&lt;/a&gt; 18528 18528 online, and see the &lt;a href="https://github.com/bartoszmodelski/ebsl"&gt;notebooks&lt;/a&gt; 18529 - associated with the experiments here.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/sns</id><summary type="html">&lt;h1&gt;Spatial Name System&lt;/h1&gt; 18529 + associated with the experiments here.&lt;/p&gt;</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">&lt;h1&gt;Spatial Name System&lt;/h1&gt; 18530 18530 &lt;p&gt;This is an idea proposed in 2022 as a Cambridge Computer Science Part III or MPhil project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://ryan.freumh.org"&gt;Ryan Gibb&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="mailto:jon.crowcroft@cl.cam.ac.uk"&gt;Jon Crowcroft&lt;/a&gt;.&lt;/p&gt; 18531 18531 &lt;p&gt;The development of emerging classes of hardware such as Internet of Thing 18532 18532 devices and Augmented Reality headsets has outpaced the development of Internet ··· 18549 18549 &lt;p&gt;An extended version of this was published in HotNets 22 in &lt;a href="https://anil.recoil.org/papers/2023-hotnets-sns"&gt;Where on Earth is the Spatial Name System?&lt;/a&gt;. 18550 18550 The MPhil dissertation is available &lt;a href="https://ryan.freumh.org/papers/2022-mphil-sns.pdf"&gt;online as a 18551 18551 PDF&lt;/a&gt;. &lt;a class="contact" href="https://ryan.freumh.org"&gt;Ryan Gibb&lt;/a&gt; has continued 18552 - on to work on his PhD on &lt;a href="https://anil.recoil.org/ideas/interspatial-networking"&gt;Interspatial Networking with DNS&lt;/a&gt; as well!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/differentiable-abm</id><summary type="html">&lt;h1&gt;Scalable agent-based models for optimized policy design&lt;/h1&gt; 18552 + on to work on his PhD on &lt;a href="https://anil.recoil.org/ideas/interspatial-networking"&gt;Interspatial Networking with DNS&lt;/a&gt; as well!&lt;/p&gt;</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">&lt;h1&gt;Scalable agent-based models for optimized policy design&lt;/h1&gt; 18553 18553 &lt;p&gt;This is an idea proposed in 2022 as a Cambridge Computer Science Part III or MPhil project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Sharan Agrawal&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt;.&lt;/p&gt; 18554 18554 &lt;p&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"&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"&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.&lt;/p&gt; 18555 18555 &lt;p&gt;The project also investigates how to scale such ABMs to be applicable for global policy design and scale to planetary-sized models. A new ABM framework called SalVO expresses agent updates as recursive applications of pure agent functions. This formalism differs from existing computational ABM models but is shown to be expressive enough to emulate a Turing complete language. SalVO is built on a JAX backend and designed to be scalable, vectorized, and optimizable. Employing hardware acceleration, tests showed it was more performant and more able to scale on a single machine than any existing ABM framework, such as FLAME (GPU).&lt;/p&gt; ··· 18560 18560 18561 18561 &lt;/div&gt; 18562 18562 &lt;h2&gt;See Also&lt;/h2&gt; 18563 - &lt;p&gt;&lt;a class="contact" href="https://www.linkedin.com/in/pedro-marques-sousa/"&gt;Pedro Sousa&lt;/a&gt; did a follow up project on &lt;a href="https://anil.recoil.org/ideas/rev-abm"&gt;Reverse emulating agent-based models for policy simulation&lt;/a&gt; in 2023.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/plancomp</id><summary type="html">&lt;div&gt; 18563 + &lt;p&gt;&lt;a class="contact" href="https://www.linkedin.com/in/pedro-marques-sousa/"&gt;Pedro Sousa&lt;/a&gt; did a follow up project on &lt;a href="https://anil.recoil.org/ideas/rev-abm"&gt;Reverse emulating agent-based models for policy simulation&lt;/a&gt; in 2023.&lt;/p&gt;</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">&lt;div&gt; 18564 18564 &lt;h1&gt;Planetary Computing&lt;/h1&gt; 18565 18565 &lt;p&gt;&lt;p&gt;Planetary computing is our research into the systems required to handle the 18566 18566 ingestion, transformation, analysis and publication of global data products for ··· 18590 18590 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt; 18591 18591 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt; 18592 18592 &lt;/p&gt; 18593 - &lt;/div&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2022-enhancing-brain-security-1</id><summary type="html">&lt;p&gt;Preprint on security vulnerabilities in brain-computer interfaces&lt;/p&gt; 18593 + &lt;/div&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">&lt;p&gt;Preprint on security vulnerabilities in brain-computer interfaces&lt;/p&gt; 18594 18594 18595 18595 &lt;blockquote class="paper noquote"&gt; 18596 18596 &lt;div class="paper-info"&gt; ··· 18603 18603 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2022-enhancing-brain-security.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 18604 18604 &lt;/p&gt; 18605 18605 &lt;/div&gt; 18606 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/version-control-matrix</id><summary type="html">&lt;h1&gt;Decentralised Capability-based Code Collaboration using Matrix&lt;/h1&gt; 18606 + &lt;/blockquote&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">&lt;h1&gt;Decentralised Capability-based Code Collaboration using Matrix&lt;/h1&gt; 18607 18607 &lt;p&gt;This is an idea proposed in 2022 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://bsky.app/profile/wedg.dev"&gt;Samuel Wedgwood&lt;/a&gt;.&lt;/p&gt; 18608 18608 &lt;p&gt;In 2005, due to licensing disputes, the team behind Linux parted ways with 18609 18609 their proprietary source management tool BitKeeper, and needed a new solution. ··· 18646 18646 &lt;h2&gt;Links&lt;/h2&gt; 18647 18647 &lt;p&gt;The dissertation PDF isn't available publically but 18648 18648 should be in the Cambridge Computer Lab archives somewhere or 18649 - on request from &lt;a class="contact" href="https://bsky.app/profile/wedg.dev"&gt;Samuel Wedgwood&lt;/a&gt;.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/multicore-monthly-dec21</id><summary type="html">&lt;p&gt;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.&lt;/p&gt;</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">&lt;p&gt;I participated in the 2021 &lt;a href="https://www.sdghackathon.io/"&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"&gt;GitHub repo&lt;/a&gt;.&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/4c-launch</id><summary type="html">&lt;p&gt;I launched &lt;a href="https://anil.recoil.org/projects/4c"&gt;4C&lt;/a&gt; recently, and Pembroke College covers the launch with an interview with me.&lt;/p&gt; 18649 + on request from &lt;a class="contact" href="https://bsky.app/profile/wedg.dev"&gt;Samuel Wedgwood&lt;/a&gt;.&lt;/p&gt;</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">&lt;p&gt;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.&lt;/p&gt;</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">&lt;p&gt;I participated in the 2021 &lt;a href="https://www.sdghackathon.io/"&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"&gt;GitHub repo&lt;/a&gt;.&lt;/p&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">&lt;p&gt;I launched &lt;a href="https://anil.recoil.org/projects/4c"&gt;4C&lt;/a&gt; recently, and Pembroke College covers the launch with an interview with me.&lt;/p&gt; 18650 18650 &lt;blockquote&gt; 18651 18651 &lt;p&gt;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.&lt;/p&gt; 18652 18652 &lt;p&gt;The solution to the crisis is two-pronged: we must engage in behaviour change to reduce unnecessary harmful emissions, and also invest in nature-based solutions at global scales to not only reduce, but ultimately reverse the effects of climate change and biodiversity loss. 18653 18653 &lt;cite&gt;-- &lt;a href="https://www.pem.cam.ac.uk/college/corporate-partnership/25th-anniversary-corporate-partnership-programme/25th-anniversary-11"&gt;Pembroke College&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt; 18654 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/signals-and-threads</id><summary type="html">&lt;p&gt;I am the latest person to feature on the first season of the &lt;a href="https://signalsandthreads.com/what-is-an-operating-system/"&gt;Signals and 18654 + &lt;/blockquote&gt;</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">&lt;p&gt;I am the latest person to feature on the first season of the &lt;a href="https://signalsandthreads.com/what-is-an-operating-system/"&gt;Signals and 18655 18655 Threads&lt;/a&gt; podcast 18656 18656 hosted by &lt;a class="contact" href="https://github.com/yminsky"&gt;Yaron Minsky&lt;/a&gt; (you may recognise him as my co-author on &lt;a href="https://anil.recoil.org/papers/rwo"&gt;Real World OCaml&lt;/a&gt;).&lt;/p&gt; 18657 18657 &lt;blockquote&gt; ··· 19230 19230 &lt;li&gt;On NAT traversal: &lt;a href="https://tailscale.com/blog/how-nat-traversal-works/"&gt;https://tailscale.com/blog/how-nat-traversal-works/&lt;/a&gt;&lt;/li&gt; 19231 19231 &lt;/ul&gt; 19232 19232 &lt;/section&gt; 19233 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/multicore-monthly-sep21</id><summary type="html">&lt;p&gt;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.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/forests</id><summary type="html">&lt;p&gt;I track external notes and media articles here on forest preservation and 19233 + &lt;/article&gt;</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">&lt;p&gt;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.&lt;/p&gt;</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">&lt;p&gt;I track external notes and media articles here on forest preservation and 19234 19234 restoration as part of my work on &lt;a href="https://anil.recoil.org/projects/4c"&gt;Trusted Carbon Credits&lt;/a&gt;. Not complete, just a reading list.&lt;/p&gt; 19235 19235 &lt;ul&gt; 19236 19236 &lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=yiw6_JakZFc"&gt;Can YOU Fix Climate Change?&lt;/a&gt; (great short summary of the overall issues)&lt;/li&gt; ··· 19269 19269 &lt;li&gt;&lt;a href="https://www.sciencedirect.com/science/article/pii/S001671851930051X"&gt;Cryptocarbon: The promises and pitfalls of forest protection on a blockchain&lt;/a&gt;&lt;/li&gt; 19270 19270 &lt;li&gt;&lt;a href="https://www.nature.com/articles/s41558-018-0285-8"&gt;Valuing climate damages at the country level&lt;/a&gt; - nature climate change, 2018&lt;/li&gt; 19271 19271 &lt;li&gt;&lt;a href="https://www.nature.com/articles/s41558-018-0282-y"&gt;Country-level social cost of carbon&lt;/a&gt;, nature climate change 2018&lt;/li&gt; 19272 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/decentralised-stack</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://nick.recoil.org"&gt;Nick Ludlam&lt;/a&gt; and I have self-hosted recoil.org since around 1996, typically for 19272 + &lt;/ul&gt;</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;p&gt;&lt;a class="contact" href="https://nick.recoil.org"&gt;Nick Ludlam&lt;/a&gt; and I have self-hosted recoil.org since around 1996, typically for 19273 19273 email and web. These days, there are a number of interesting software stacks 19274 19274 around decentralised communication that we deploy. This note keeps track of 19275 19275 them.&lt;/p&gt; ··· 19345 19345 &lt;/ul&gt; 19346 19346 &lt;p&gt;In general, our operating system of choice is OpenBSD (since 1998 or so) with 19347 19347 Alpine Linux for the more recent things that run on a cloud or haven't been 19348 - ported yet.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/roadmap-ocamlorg-v3</id><summary type="html">&lt;p&gt;After a decade of good service, it's time to overhaul OCaml's online presence 19348 + ported yet.&lt;/p&gt;</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">&lt;p&gt;After a decade of good service, it's time to overhaul OCaml's online presence 19349 19349 to more modern technologies. This post lays out the roadmap for the third 19350 19350 edition of the OCaml.org website.&lt;/p&gt;</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">&lt;p&gt;I recently discovered, to some irritation, that the &lt;code&gt;--include PATTERN&lt;/code&gt; option 19351 19351 to &lt;code&gt;tar&lt;/code&gt; seems only to apply to directories – and if the &lt;code&gt;PATTERN&lt;/code&gt; doesn’t ··· 19353 19353 some reason. So instead pipe the output of &lt;code&gt;find&lt;/code&gt;, or better these days, 19354 19354 &lt;a href="https://github.com/sharkdp/fd"&gt;&lt;code&gt;fd&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt; 19355 19355 &lt;pre class="language-bash z-code"&gt;&lt;code class="language-bash"&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;fd&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;e&lt;/span&gt; php&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;0&lt;/span&gt;&lt;/span&gt; &lt;span class="z-keyword z-operator z-logical z-pipe z-shell"&gt;|&lt;/span&gt; &lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;tar&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;cvjf&lt;/span&gt; TARBALL.bz2&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; --&lt;/span&gt;null&lt;/span&gt;&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; --&lt;/span&gt;files-from&lt;/span&gt; -&lt;/span&gt; 19356 - &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2021-arxiv-forestrycs-1</id><summary type="html">&lt;p&gt;Preprint about our working notes on how CS might contribute to forest preservation&lt;/p&gt; 19356 + &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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">&lt;p&gt;Preprint about our working notes on how CS might contribute to forest preservation&lt;/p&gt; 19357 19357 19358 19358 &lt;blockquote class="paper noquote"&gt; 19359 19359 &lt;div class="paper-info"&gt; ··· 19366 19366 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2021-arxiv-forestrycs.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 19367 19367 &lt;/p&gt; 19368 19368 &lt;/div&gt; 19369 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2021-oud-effects-1</id><summary type="html">&lt;p&gt;Paper on programming with effects in OCaml&lt;/p&gt; 19369 + &lt;/blockquote&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">&lt;p&gt;Paper on programming with effects in OCaml&lt;/p&gt; 19370 19370 19371 19371 &lt;blockquote class="paper noquote"&gt; 19372 19372 &lt;div class="paper-info"&gt; ··· 19414 19414 with 0 length and simplify the building of the Markov Chain. They are 19415 19415 similar to an epsilon transition in a state machine.&lt;/span&gt;&lt;/p&gt; 19416 19416 &lt;/section&gt; 19417 - &lt;/article&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2021-pldi-retroeff-1</id><summary type="html">&lt;p&gt;Paper on retrofitting effects in OCaml presented in PLDI 2024&lt;/p&gt; 19417 + &lt;/article&gt;</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">&lt;p&gt;Paper on retrofitting effects in OCaml presented in PLDI 2024&lt;/p&gt; 19418 19418 19419 19419 &lt;blockquote class="paper noquote"&gt; 19420 19420 &lt;div class="paper-info"&gt; ··· 20062 20062 ... 20063 20063 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; 20064 20064 20065 - &lt;p&gt;Here’s to the next 25 years!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/void-processes</id><summary type="html">&lt;h1&gt;Void Processes: Minimising privilege by default&lt;/h1&gt; 20065 + &lt;p&gt;Here’s to the next 25 years!&lt;/p&gt;</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">&lt;h1&gt;Void Processes: Minimising privilege by default&lt;/h1&gt; 20066 20066 &lt;p&gt;This is an idea proposed in 2021 as a Cambridge Computer Science Part III or MPhil project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://blog.hillion.co.uk"&gt;Jake Hillion&lt;/a&gt;.&lt;/p&gt; 20067 20067 &lt;p&gt;Void processes intend to make it easier for all developers to produce 20068 20068 effectively privilege separated applications. The project has two primary ··· 20080 20080 &lt;ul&gt; 20081 20081 &lt;li&gt;The dissertation is available as a &lt;a href="https://blog.hillion.co.uk/posts/void-processes/dissertation/jsh77-dissertation.pdf"&gt;PDF&lt;/a&gt;, with associated &lt;a href="https://blog.hillion.co.uk/posts/void-processes/dissertation/"&gt;blog post&lt;/a&gt; and &lt;a href="https://github.com/JakeHillion/void-processes"&gt;LaTeX source&lt;/a&gt;.&lt;/li&gt; 20082 20082 &lt;li&gt;The source code to the void orchestrator prototype is at &lt;a href="https://github.com/JakeHillion/void-orchestrator"&gt;jakehillion/void-orchestrator&lt;/a&gt;.&lt;/li&gt; 20083 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/brain-interface-security</id><summary type="html">&lt;h1&gt;Security analysis of brain-computing interfaces&lt;/h1&gt; 20083 + &lt;/ul&gt;</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">&lt;h1&gt;Security analysis of brain-computing interfaces&lt;/h1&gt; 20084 20084 &lt;p&gt;This is an idea proposed in 2021 as a good starter project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Malachy O'Connor Brown&lt;/a&gt; and &lt;a class="contact" href="https://anil.recoil.org/"&gt;Oscar Hill&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://zatkh.github.io/"&gt;Zahra Tarkhani&lt;/a&gt; and &lt;a class="contact" href="https://lorenaqendro.github.io"&gt;Lorena Qendro&lt;/a&gt;.&lt;/p&gt; 20085 20085 &lt;p&gt;Brain Computing Interface (BCI) technologies, both invasive and non-invasive, 20086 20086 are increasingly used in a wide range of applications, from health-care to ··· 20100 20100 &lt;li&gt;&lt;strong&gt;Adversarial attacks on BCI.&lt;/strong&gt; We explore various methods to detect and analyze security threats on BCI ML models, including attacks based on perturbed inputs, inference, and model patterns. You need to have development skills (e.g., C, C++, Python) and experience with at least one ML/Deep Learning framework such as PyTorch or TensorFlow. Previous work on embedded devices and adversarial attacks is preferred.&lt;/li&gt; 20101 20101 &lt;/ul&gt; 20102 20102 &lt;p&gt;The results of this work were written up in &lt;a href="https://anil.recoil.org/papers/2022-enhancing-brain-security"&gt;Enhancing the Security &amp;amp; Privacy of Wearable Brain-Computer Interfaces&lt;/a&gt;, 20103 - which is a really fun but rather worrying read!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/ocaml-forest-sim</id><summary type="html">&lt;h1&gt;Exploring Concurrency in Agent-Based Modelling with Multicore OCaml&lt;/h1&gt; 20103 + which is a really fun but rather worrying read!&lt;/p&gt;</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">&lt;h1&gt;Exploring Concurrency in Agent-Based Modelling with Multicore OCaml&lt;/h1&gt; 20104 20104 &lt;p&gt;This is an idea proposed in 2021 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Martynas Sinkievič&lt;/a&gt;.&lt;/p&gt; 20105 20105 &lt;p&gt;Computational modelling techniques such as ABMs are used to understand the 20106 20106 dynamics of ecosystems and predict their behaviour in response to climate ··· 20139 20139 &lt;ul&gt; 20140 20140 &lt;li&gt;The source code is on a &lt;a href="https://github.com/mSinkievic/troll-ocaml"&gt;private repository on GitHub&lt;/a&gt;. Please contact &lt;a class="contact" href="https://anil.recoil.org/"&gt;Martynas Sinkievič&lt;/a&gt; to request access.&lt;/li&gt; 20141 20141 &lt;li&gt;The dissertation is available on request for interested students from &lt;a class="contact" href="https://anil.recoil.org"&gt;Anil Madhavapeddy&lt;/a&gt; but has not otherwise been made public.&lt;/li&gt; 20142 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2020-asplas-banyan-1</id><summary type="html">&lt;p&gt;Paper on Banyan for coordination-free distributed transactions in ASPLAS 2020&lt;/p&gt; 20142 + &lt;/ul&gt;</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">&lt;p&gt;Paper on Banyan for coordination-free distributed transactions in ASPLAS 2020&lt;/p&gt; 20143 20143 20144 20144 &lt;blockquote class="paper noquote"&gt; 20145 20145 &lt;div class="paper-info"&gt; ··· 20186 20186 &lt;ul&gt; 20187 20187 &lt;li&gt;&lt;a href="https://medium.economist.com/why-you-sometimes-need-to-break-the-rules-in-data-viz-4d8ece284919"&gt;https://medium.economist.com/why-you-sometimes-need-to-break-the-rules-in-data-viz-4d8ece284919&lt;/a&gt;&lt;/li&gt; 20188 20188 &lt;li&gt;&lt;a href="https://colororacle.org/"&gt;https://colororacle.org/&lt;/a&gt;&lt;/li&gt; 20189 - &lt;/ul&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2020-oud-platform-1</id><summary type="html">&lt;p&gt;Annual update on the OCaml Platform at the OCaml Workshop&lt;/p&gt; 20189 + &lt;/ul&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">&lt;p&gt;Annual update on the OCaml Platform at the OCaml Workshop&lt;/p&gt; 20190 20190 20191 20191 &lt;blockquote class="paper noquote"&gt; 20192 20192 &lt;div class="paper-info"&gt; ··· 20197 20197 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2020-oud-platform.bib"&gt;BIB&lt;/a&gt; 20198 20198 &lt;/p&gt; 20199 20199 &lt;/div&gt; 20200 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/b11188ba-0f97-4ec4-b372-fa3cea0821ab-1</id><summary type="html">&lt;p&gt;Talk on the state of the OCaml Platform in 2020&lt;/p&gt; 20200 + &lt;/blockquote&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">&lt;p&gt;Talk on the state of the OCaml Platform in 2020&lt;/p&gt; 20201 20201 20202 20202 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Some notes from my first attempt to renovate an old media PC that had a SYSLINUX 20203 20203 install without any package management, and a crufty BIOS. Probably outdated ··· 20409 20409 &lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;sudo&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; lshw&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;C&lt;/span&gt; storage&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;short&lt;/span&gt;&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;numeric&lt;/span&gt;&lt;/span&gt; 20410 20410 &lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;sudo&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; apk add lsblk&lt;/span&gt; 20411 20411 &lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;sudo&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; lsblk&lt;/span&gt; 20412 - &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/multicore-monthly-sep20</id><summary type="html">&lt;p&gt;The big advance in the multicore OCaml branch is that we restored compatibility 20412 + &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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">&lt;p&gt;The big advance in the multicore OCaml branch is that we restored compatibility 20413 20413 with the traditional OCaml systhreads. This in turn means that many existing 20414 20414 software packages just work out of the box on the new runtime.&lt;/p&gt; 20415 20415 &lt;blockquote&gt; ··· 20418 20418 compile out of the box. You can now compile the multicore OCaml fork 20419 20419 conveniently using the new opam compiler plugin (see announcement). 20420 20420 &lt;cite&gt;-- &lt;a href="https://discuss.ocaml.org/t/multicore-ocaml-september-2020/6565"&gt;me, on the discussion forum&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt; 20421 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2020-icfp-retropar-1</id><summary type="html">&lt;p&gt;Won best paper award at ICFP 2020 for our paper on retrofitting parallelism onto OCaml!&lt;/p&gt; 20421 + &lt;/blockquote&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">&lt;p&gt;Won best paper award at ICFP 2020 for our paper on retrofitting parallelism onto OCaml!&lt;/p&gt; 20422 20422 20423 20423 &lt;blockquote class="paper noquote"&gt; 20424 20424 &lt;div class="paper-info"&gt; ··· 20431 20431 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2020-icfp-retropar.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 20432 20432 &lt;/p&gt; 20433 20433 &lt;/div&gt; 20434 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2020-oud-parallelising-1</id><summary type="html">&lt;p&gt;Paper on how to parallelise OCaml code at the OCaml Workshop&lt;/p&gt; 20434 + &lt;/blockquote&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">&lt;p&gt;Paper on how to parallelise OCaml code at the OCaml Workshop&lt;/p&gt; 20435 20435 20436 20436 &lt;blockquote class="paper noquote"&gt; 20437 20437 &lt;div class="paper-info"&gt; ··· 20443 20443 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2020-oud-parallelising.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 20444 20444 &lt;/p&gt; 20445 20445 &lt;/div&gt; 20446 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2020-oud-ci-1</id><summary type="html">&lt;p&gt;Presented the new OCaml DSL for continuous integration at the OCaml Workshop&lt;/p&gt; 20446 + &lt;/blockquote&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">&lt;p&gt;Presented the new OCaml DSL for continuous integration at the OCaml Workshop&lt;/p&gt; 20447 20447 20448 20448 &lt;blockquote class="paper noquote"&gt; 20449 20449 &lt;div class="paper-info"&gt; ··· 20454 20454 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2020-oud-ci.bib"&gt;BIB&lt;/a&gt; 20455 20455 &lt;/p&gt; 20456 20456 &lt;/div&gt; 20457 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/sensor-fusion-vslam-forests</id><summary type="html">&lt;h1&gt;Making GPS accurate in dense forests using sensor fusion&lt;/h1&gt; 20457 + &lt;/blockquote&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">&lt;h1&gt;Making GPS accurate in dense forests using sensor fusion&lt;/h1&gt; 20458 20458 &lt;p&gt;This is an idea proposed in 2020 as a good starter project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://keshav123456.github.io"&gt;Keshav Sivakumar&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://svr-sk818-web.cl.cam.ac.uk/keshav/wiki/index.php/Main_Page"&gt;Srinivasan Keshav&lt;/a&gt; and &lt;a class="contact" href="https://coomeslab.org"&gt;David A Coomes&lt;/a&gt;.&lt;/p&gt; 20459 20459 &lt;p&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.&lt;/p&gt; 20460 20460 &lt;ul&gt; ··· 20472 20472 &lt;p&gt;However, you can go to the website to signup and then manually invite yourself 20473 20473 via a real desktop browser. And this then means that Firefox Focus on the iPad 20474 20474 believes in the new account and just lets you in.&lt;/p&gt; 20475 - &lt;p&gt;Seems something of a palaver but hey, these twisted webs we weave.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/multicore-monthly-apr20</id><summary type="html">&lt;p&gt;In the April OCaml multicore monthly, we have a preprint available of our ICFP submission about the OCaml 5 multicore runtime. 20476 - &lt;em&gt;(Update: This paper actually won the ICFP best paper award later in the year! Read it at &amp;quot;&lt;a href="https://anil.recoil.org/papers/2020-icfp-retropar"&gt;Retrofitting parallelism onto OCaml&lt;/a&gt;&amp;quot;).&lt;/em&gt;&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/c09ed36f-6ad5-4254-a0ce-3ca3398f38a3-1</id><summary type="html">&lt;p&gt;Part 2&lt;/p&gt; 20475 + &lt;p&gt;Seems something of a palaver but hey, these twisted webs we weave.&lt;/p&gt;</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">&lt;p&gt;In the April OCaml multicore monthly, we have a preprint available of our ICFP submission about the OCaml 5 multicore runtime. 20476 + &lt;em&gt;(Update: This paper actually won the ICFP best paper award later in the year! Read it at &amp;quot;&lt;a href="https://anil.recoil.org/papers/2020-icfp-retropar"&gt;Retrofitting parallelism onto OCaml&lt;/a&gt;&amp;quot;).&lt;/em&gt;&lt;/p&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">&lt;p&gt;Part 2&lt;/p&gt; 20477 20477 20478 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/d456e4bc-bce6-45ad-9d2e-102f834ec400-1</id><summary type="html">&lt;p&gt;Delivered the distinguished seminar series at St Andrews on rebuilding Operating Systems with functional principles&lt;/p&gt; 20478 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Delivered the distinguished seminar series at St Andrews on rebuilding Operating Systems with functional principles&lt;/p&gt; 20479 20479 20480 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/287364fa-b59c-4b9f-812d-d81cc0c992a5-1</id><summary type="html">&lt;p&gt;Part 3&lt;/p&gt; 20480 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Part 3&lt;/p&gt; 20481 20481 20482 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/multicore-monthly-jan20</id><summary type="html">&lt;p&gt;We started the process of upstreaming our &lt;a href="https://anil.recoil.org/papers/2014-oud-multicore"&gt;multicore OCaml&lt;/a&gt; branch to mainline OCaml, and so I started posting regular updates to the community forum.&lt;/p&gt; 20482 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;We started the process of upstreaming our &lt;a href="https://anil.recoil.org/papers/2014-oud-multicore"&gt;multicore OCaml&lt;/a&gt; branch to mainline OCaml, and so I started posting regular updates to the community forum.&lt;/p&gt; 20483 20483 &lt;blockquote&gt; 20484 20484 &lt;p&gt;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. 20485 20485 &lt;cite&gt;-- &lt;a href="https://discuss.ocaml.org/t/multicore-ocaml-january-2020-update/5090"&gt;me, on the discussion forum&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt; 20486 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/difc-tee</id><summary type="html">&lt;div&gt; 20486 + &lt;/blockquote&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">&lt;div&gt; 20487 20487 &lt;h1&gt;Information Flow for Trusted Execution&lt;/h1&gt; 20488 20488 &lt;p&gt;&lt;p&gt;There is now increased hardware support for improving the security and 20489 20489 performance of privilege separation and compartmentalization techniques such as ··· 20608 20608 &lt;/span&gt;&lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt; 20609 20609 &lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-meta z-group z-expansion z-command z-backticks z-shell"&gt;&lt;span class="z-punctuation z-section z-group z-begin z-shell"&gt;`&lt;/span&gt;&lt;span class="z-punctuation z-section z-group z-end z-shell"&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-group z-expansion z-command z-backticks z-shell"&gt;&lt;span class="z-punctuation z-section z-group z-begin z-shell"&gt;`&lt;/span&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;bash&lt;/span&gt;&lt;/span&gt; 20610 20610 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-meta z-group z-expansion z-command z-backticks z-shell"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;opam&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt; install&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;y&lt;/span&gt; ocal&lt;/span&gt; 20611 - &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/openbsd-hosting</id><summary type="html">&lt;p&gt;I &lt;a href="https://twitter.com/avsm/status/1167012354556669952"&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:&lt;/p&gt; 20611 + &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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">&lt;p&gt;I &lt;a href="https://twitter.com/avsm/status/1167012354556669952"&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:&lt;/p&gt; 20612 20612 &lt;ul&gt; 20613 20613 &lt;li&gt;OpenBSDAMS 20614 20614 &lt;ul&gt; ··· 20630 20630 &lt;li&gt;Good &lt;a href="https://twitter.com/vphantom/status/1167020959771049984"&gt;recommendation&lt;/a&gt; from Stephane&lt;/li&gt; 20631 20631 &lt;/ul&gt; 20632 20632 &lt;/li&gt; 20633 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2019-ocaml-platform-1</id><summary type="html">&lt;p&gt;Annual update on the OCaml Platform in 2019&lt;/p&gt; 20633 + &lt;/ul&gt;</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">&lt;p&gt;Annual update on the OCaml Platform in 2019&lt;/p&gt; 20634 20634 20635 20635 &lt;blockquote class="paper noquote"&gt; 20636 20636 &lt;div class="paper-info"&gt; ··· 20641 20641 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2019-ocaml-platform.bib"&gt;BIB&lt;/a&gt; 20642 20642 &lt;/p&gt; 20643 20643 &lt;/div&gt; 20644 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2019-mirage-build-1</id><summary type="html">&lt;p&gt;Paper on the MirageOS 4 build system at OCaml Workshop&lt;/p&gt; 20644 + &lt;/blockquote&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">&lt;p&gt;Paper on the MirageOS 4 build system at OCaml Workshop&lt;/p&gt; 20645 20645 20646 20646 &lt;blockquote class="paper noquote"&gt; 20647 20647 &lt;div class="paper-info"&gt; ··· 20653 20653 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2019-mirage-build.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 20654 20654 &lt;/p&gt; 20655 20655 &lt;/div&gt; 20656 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2019-mirage-functors-1</id><summary type="html">&lt;p&gt;Preprint on programming unikernels with ML modules&lt;/p&gt; 20656 + &lt;/blockquote&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">&lt;p&gt;Preprint on programming unikernels with ML modules&lt;/p&gt; 20657 20657 20658 20658 &lt;blockquote class="paper noquote"&gt; 20659 20659 &lt;div class="paper-info"&gt; ··· 20665 20665 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2019-mirage-functors.bib"&gt;BIB&lt;/a&gt; 20666 20666 &lt;/p&gt; 20667 20667 &lt;/div&gt; 20668 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2019-edgesys-snape-1</id><summary type="html">&lt;p&gt;Paper on a framework to rearchitect applications for better TEE support at EdgeSys 2019&lt;/p&gt; 20668 + &lt;/blockquote&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">&lt;p&gt;Paper on a framework to rearchitect applications for better TEE support at EdgeSys 2019&lt;/p&gt; 20669 20669 20670 20670 &lt;blockquote class="paper noquote"&gt; 20671 20671 &lt;div class="paper-info"&gt; ··· 20686 20686 &lt;li&gt;&lt;a href="http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/"&gt;…names&lt;/a&gt;&lt;/li&gt; 20687 20687 &lt;li&gt;&lt;a href="https://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/"&gt;…addresses&lt;/a&gt;&lt;/li&gt; 20688 20688 &lt;li&gt;&lt;a href="http://wiesmann.codiferes.net/wordpress/?p=15187&amp;amp;lang=en"&gt;…geography&lt;/a&gt;&lt;/li&gt; 20689 - &lt;/ul&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/distributed-tasks-irmin</id><summary type="html">&lt;h1&gt;Distributed Task Scheduling Framework over Irmin&lt;/h1&gt; 20689 + &lt;/ul&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">&lt;h1&gt;Distributed Task Scheduling Framework over Irmin&lt;/h1&gt; 20690 20690 &lt;p&gt;This is an idea proposed in 2019 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Mohammed Daudali&lt;/a&gt;.&lt;/p&gt; 20691 20691 &lt;p&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 conventional developer tools, enabling end users to easily verify that the computation directly aligns with their expectations. Detailed metadata can ensure a fair and transparent pricing structure for both service providers and consumers by carefully tracking the resource usage. Together, this allows open-source communities to remain completely transparent whilst providing non-developer end users a simpler and more accessible downloadable package that can be independently verified.&lt;/p&gt; 20692 20692 &lt;p&gt;This project will investigate building a composable task scheduler over &lt;a href="https://github.com/mirage/irmin"&gt;Irmin&lt;/a&gt;. The core of this project started with a single server model, in which a large number of workers can independently clone and interact with a persistent job queue CRDT. Crucially, each worker schedules tasks using only local knowledge, giving a high probability that at least two workers are working on the same task. This has a twofold benefit - completed work can be independently verified by a number of different workers, and two, work in progress by stragglers can be selected by other workers, which can result in a lower time to completion. By independently sampling and verifying work, we remove the need for implicitly trusting individual workers. Adversaries must now compromise all worker nodes to have the required effect - compromising N - 1 workers results in a non-zero probability of the attack being detected. Given a heterogeneous set of worker machines, all under the control of different and independent entities, this attack becomes significantly harder. The project will investigate suitable sampling schedules for calculating the pareto frontier of over-committing work versus cluster throughput.&lt;/p&gt; ··· 20697 20697 &lt;h2&gt;Links&lt;/h2&gt; 20698 20698 &lt;ul&gt; 20699 20699 &lt;li&gt;The dissertation writeup is in a private &lt;a href="https://github.com/mdaudali/dissertation_writeup"&gt;GitHub repository&lt;/a&gt; and the Irmin implementation code also in a &lt;a href="https://github.com/mdaudali/Dissertation"&gt;private repository&lt;/a&gt;. Please contact the author directly for access.&lt;/li&gt; 20700 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/git-maildir</id><summary type="html">&lt;h1&gt;A strongly consistent index for email using git and MirageOS&lt;/h1&gt; 20700 + &lt;/ul&gt;</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">&lt;h1&gt;A strongly consistent index for email using git and MirageOS&lt;/h1&gt; 20701 20701 &lt;p&gt;This is an idea proposed in 2019 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://github.com/odnh"&gt;Oliver Hope&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://github.com/dra27"&gt;David Allsopp&lt;/a&gt;.&lt;/p&gt; 20702 20702 &lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Maildir"&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.&lt;/p&gt; 20703 20703 &lt;p&gt;The aim of this project therefore is to solve the consistency problem. This can be done by using git, the version control system, to build an overlay on top of maildir in the filesystem, allowing multiple filesystem operations to be bundled into commits. These can be used to keep track of all changes made to the maildir. As these changes are being recorded by a version control system, we can be sure that any index built on top will be strongly consistent. As git also provides branching, we can extend this model to add new features described in the possible extensions section.&lt;/p&gt; ··· 20753 20753 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-string z-unquoted z-heredoc z-shell"&gt;/dev/vg0/lv_backup /backup xfs defaults 0 0 20754 20754 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-string z-unquoted z-heredoc z-shell"&gt;&lt;span class="z-keyword z-control z-heredoc-token z-shell"&gt;EOF&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 20755 20755 &lt;/span&gt;&lt;span class="z-source z-shell z-bash"&gt;&lt;span class="z-meta z-function-call z-shell"&gt;&lt;span class="z-variable z-function z-shell"&gt;mount&lt;/span&gt;&lt;/span&gt;&lt;span class="z-meta z-function-call z-arguments z-shell"&gt;&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;a&lt;/span&gt;&lt;span class="z-variable z-parameter z-option z-shell"&gt;&lt;span class="z-punctuation z-definition z-parameter z-shell"&gt; -&lt;/span&gt;v &lt;span class="z-comment z-line z-number-sign z-shell"&gt;&lt;span class="z-punctuation z-definition z-comment z-begin z-shell"&gt;#&lt;/span&gt;&lt;/span&gt;&lt;span class="z-comment z-line z-number-sign z-shell"&gt; mount everything, verbosely&lt;/span&gt;&lt;span class="z-comment z-line z-number-sign z-shell"&gt; 20756 - &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/videos/13cf3878-7436-4512-844e-f72f36425bc7</id><summary type="html">&lt;h2&gt;&lt;a href="https://anil.recoil.org/videos/13cf3878-7436-4512-844e-f72f36425bc7"&gt;The OCaml Platform 1.0 with Reason ML&lt;/a&gt; &lt;span class="title-date"&gt;/ Dec 2018&lt;/h2&gt; 20756 + &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</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;h2&gt;&lt;a href="https://anil.recoil.org/videos/13cf3878-7436-4512-844e-f72f36425bc7"&gt;The OCaml Platform 1.0 with Reason ML&lt;/a&gt; &lt;span class="title-date"&gt;/ Dec 2018&lt;/h2&gt; 20757 20757 20758 20758 20759 20759 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt; 20760 - &lt;p&gt;Speaking about the OCaml Platform at the ReasonML meetup hosted by Pusher.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ocaml-opam-new-layout</id><summary type="html">&lt;p&gt;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"&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"&gt;Jane Street&lt;/a&gt;.&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2018-socp-modular-ffi-1</id><summary type="html">&lt;p&gt;Journal paper on building modular foreign function interfaces&lt;/p&gt; 20760 + &lt;p&gt;Speaking about the OCaml Platform at the ReasonML meetup hosted by Pusher.&lt;/p&gt;</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">&lt;p&gt;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"&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"&gt;Jane Street&lt;/a&gt;.&lt;/p&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">&lt;p&gt;Journal paper on building modular foreign function interfaces&lt;/p&gt; 20761 20761 20762 20762 &lt;blockquote class="paper noquote"&gt; 20763 20763 &lt;div class="paper-info"&gt; ··· 20770 20770 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2018-socp-modular-ffi.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 20771 20771 &lt;/p&gt; 20772 20772 &lt;/div&gt; 20773 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/focs</id><summary type="html">&lt;p&gt;Here are the various repos used to create the interactive &lt;a href="https://anil.recoil.org/notes/teaching"&gt;teaching&lt;/a&gt; environment 20773 + &lt;/blockquote&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">&lt;p&gt;Here are the various repos used to create the interactive &lt;a href="https://anil.recoil.org/notes/teaching"&gt;teaching&lt;/a&gt; environment 20774 20774 we use for 1A Foundations of Computer Science in Cambridge. It may be useful to 20775 20775 other professors who are using OCaml in their courses.&lt;/p&gt; 20776 20776 &lt;ul&gt; ··· 20950 20950 20951 20951 &lt;p&gt;Dune rebuilds just the binaries - it knows that the only thing which has changed is where the libraries are coming from, so it doesn’t bother doing any &lt;code class="language-plaintext highlighter-rouge"&gt;ocamldep&lt;/code&gt; calls.&lt;/p&gt; 20952 20952 20953 - &lt;p&gt;Remember, there are just two kinds of OCaml project: those which have switched to Dune, and those which need to!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2018-pldi-memorymodel-1</id><summary type="html">&lt;p&gt;Paper on the OCaml memory model and underlying theory at PLDI 2018&lt;/p&gt; 20953 + &lt;p&gt;Remember, there are just two kinds of OCaml project: those which have switched to Dune, and those which need to!&lt;/p&gt;</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">&lt;p&gt;Paper on the OCaml memory model and underlying theory at PLDI 2018&lt;/p&gt; 20954 20954 20955 20955 &lt;blockquote class="paper noquote"&gt; 20956 20956 &lt;div class="paper-info"&gt; ··· 21055 21055 21056 21056 &lt;h2 id="future-mitigation"&gt;Future mitigation&lt;/h2&gt; 21057 21057 21058 - &lt;p&gt;Owing to the changes made to how opam 2 processes package installations, opam 2 has been unaffected by this situation but opam 2’s lead developer &lt;a href="https://github.com/AltGr"&gt;@AltGr&lt;/a&gt; freely admits that this is more by luck than judgement. However, the second release candidate for opam 2 includes mandatory support for sandboxing on Linux and macOS. Sandboxing package building and installation will protect opam 2 against future issues of this kind, as a malfunctioning build system will be unable to operate on files outside its build directory or, during installation, switch root.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2017-tfp-effecthandlers-1</id><summary type="html">&lt;p&gt;Paper on concurrent systems programming with effect handlers at TFP 2017&lt;/p&gt; 21058 + &lt;p&gt;Owing to the changes made to how opam 2 processes package installations, opam 2 has been unaffected by this situation but opam 2’s lead developer &lt;a href="https://github.com/AltGr"&gt;@AltGr&lt;/a&gt; freely admits that this is more by luck than judgement. However, the second release candidate for opam 2 includes mandatory support for sandboxing on Linux and macOS. Sandboxing package building and installation will protect opam 2 against future issues of this kind, as a malfunctioning build system will be unable to operate on files outside its build directory or, during installation, switch root.&lt;/p&gt;</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">&lt;p&gt;Paper on concurrent systems programming with effect handlers at TFP 2017&lt;/p&gt; 21059 21059 21060 21060 &lt;blockquote class="paper noquote"&gt; 21061 21061 &lt;div class="paper-info"&gt; ··· 21068 21068 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2017-tfp-effecthandlers.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 21069 21069 &lt;/p&gt; 21070 21070 &lt;/div&gt; 21071 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2018-hotpost-osmose-1</id><summary type="html">&lt;p&gt;Paper on the interspatial networking architecture at HotPOST 2018&lt;/p&gt; 21071 + &lt;/blockquote&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">&lt;p&gt;Paper on the interspatial networking architecture at HotPOST 2018&lt;/p&gt; 21072 21072 21073 21073 &lt;blockquote class="paper noquote"&gt; 21074 21074 &lt;div class="paper-info"&gt; ··· 21081 21081 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2018-hotpost-osmose.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 21082 21082 &lt;/p&gt; 21083 21083 &lt;/div&gt; 21084 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/founded-tarides</id><summary type="html">&lt;p&gt;I'm delighted to report that I'm helping my long-time collaborator &lt;a class="contact" href="https://github.com/samoht"&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.&lt;/p&gt; 21084 + &lt;/blockquote&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">&lt;p&gt;I'm delighted to report that I'm helping my long-time collaborator &lt;a class="contact" href="https://github.com/samoht"&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.&lt;/p&gt; 21085 21085 &lt;blockquote&gt; 21086 21086 &lt;p&gt;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. 21087 21087 &lt;cite&gt; -- &lt;a href="https://discuss.ocaml.org/t/tarides-is-looking-for-software-engineers-to-work-on-mirageos-and-irmin/1690"&gt;Thomas Gazagnaire&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt; ··· 21105 21105 21106 21106 &lt;p&gt;All of which means macOS Homebrew users may wish to clean up their system compiler in advance. It’s fairly easy to do: it just means deleting &lt;code class="language-plaintext highlighter-rouge"&gt;arith_flags.*&lt;/code&gt;, &lt;code class="language-plaintext highlighter-rouge"&gt;arith_status.*&lt;/code&gt;, &lt;code class="language-plaintext highlighter-rouge"&gt;big_int.*&lt;/code&gt;, &lt;code class="language-plaintext highlighter-rouge"&gt;int_misc.*&lt;/code&gt;. &lt;code class="language-plaintext highlighter-rouge"&gt;nat.*&lt;/code&gt;, &lt;code class="language-plaintext highlighter-rouge"&gt;ratio.*&lt;/code&gt;, &lt;code class="language-plaintext highlighter-rouge"&gt;nums.*&lt;/code&gt;, &lt;code class="language-plaintext highlighter-rouge"&gt;libnums.*&lt;/code&gt; and &lt;code class="language-plaintext highlighter-rouge"&gt;stublibs/dllnums.*&lt;/code&gt; from the directory given by &lt;code class="language-plaintext highlighter-rouge"&gt;ocamlc -where&lt;/code&gt;. &lt;a href="https://github.com/ocaml/opam-repository/pull/11300"&gt;PR#11300&lt;/a&gt; adds this advice to the num package.&lt;/p&gt; 21107 21107 21108 - &lt;p&gt;We’ll try to be a little more careful when the &lt;code class="language-plaintext highlighter-rouge"&gt;graphics&lt;/code&gt; and &lt;code class="language-plaintext highlighter-rouge"&gt;str&lt;/code&gt; libraries are eventually removed from the compiler!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/prob-programming-owl</id><summary type="html">&lt;h1&gt;Probabilistic Programming in OCaml&lt;/h1&gt; 21108 + &lt;p&gt;We’ll try to be a little more careful when the &lt;code class="language-plaintext highlighter-rouge"&gt;graphics&lt;/code&gt; and &lt;code class="language-plaintext highlighter-rouge"&gt;str&lt;/code&gt; libraries are eventually removed from the compiler!&lt;/p&gt;</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">&lt;h1&gt;Probabilistic Programming in OCaml&lt;/h1&gt; 21109 21109 &lt;p&gt;This is an idea proposed in 2018 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Hari Chandrasekaran&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://github.com/ctk21"&gt;Tom Kelly&lt;/a&gt; and &lt;a class="contact" href="https://github.com/ryanrhymes"&gt;Liang Wang&lt;/a&gt;.&lt;/p&gt; 21110 21110 &lt;p&gt;With increasing use of machine learning, it is useful to develop frameworks 21111 21111 that support rapid development and functional specification of probabilistic ··· 21135 21135 &lt;/ul&gt; 21136 21136 &lt;h2&gt;Links&lt;/h2&gt; 21137 21137 &lt;p&gt;The dissertation is not available online; contact &lt;a class="contact" href="https://anil.recoil.org/"&gt;Hari Chandrasekaran&lt;/a&gt; directly to obtain a 21138 - copy.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/osmose</id><summary type="html">&lt;div&gt; 21138 + copy.&lt;/p&gt;</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">&lt;div&gt; 21139 21139 &lt;h1&gt;Interspatial OS&lt;/h1&gt; 21140 21140 &lt;p&gt;&lt;p&gt;Digital infrastructure in modern urban environments is currently very 21141 21141 Internet-centric, and involves transmitting data to physically remote ··· 21174 21174 &lt;li&gt;&lt;a href="https://anil.recoil.org/papers/2024-socc-murmuration"&gt;Scheduling for Reduced Tail Task Latencies in Highly Utilized Datacenters&lt;/a&gt; which explores a decentralised scheduling architecture for lower job completion times&lt;/li&gt; 21175 21175 &lt;/ul&gt; 21176 21176 &lt;/p&gt; 21177 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/causal-rpc</id><summary type="html">&lt;h1&gt;CausalRPC: a traceable distributed computation framework&lt;/h1&gt; 21177 + &lt;/div&gt;</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">&lt;h1&gt;CausalRPC: a traceable distributed computation framework&lt;/h1&gt; 21178 21178 &lt;p&gt;This is an idea proposed in 2018 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://craigfe.io"&gt;Craig Ferguson&lt;/a&gt;.&lt;/p&gt; 21179 21179 &lt;p&gt;The project aims to implement an RPC framework in OCaml using the &lt;a href="https://github.com/mirage/irmin"&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.&lt;/p&gt; 21180 21180 &lt;p&gt;The project was completed successfully, with an implementation of &lt;a href="https://github.com/craigfe/causal-rpc"&gt;CausalRPC&lt;/a&gt;, a distributed computation framework satisfying the above criteria. The approach of making the statefulness of RPC explicit was surprisingly effective, allowing CausalRPC to provide stronger consistency and traceability guarantees than conventional RPC systems. This broadened the scope of the project considerably, allowing for a variety of extensions to explore the inherent trade-offs of the approach. The final version of CausalRPC supported fault-tolerant worker clusters and is compatible with &lt;a href="https://mirage.io"&gt;MirageOS&lt;/a&gt;.&lt;/p&gt; ··· 21821 21821 21822 21822 &lt;p&gt;Of course, nothing prevents you from making Pull Requests against your own OCaml fork before making your final pull request to the main repository. This way, you get the usual familiar monitoring in the GitHub pull request page:&lt;/p&gt; 21823 21823 21824 - &lt;p&gt;&lt;img alt="Local GitHub PR" src="https://www.dra27.uk/assets/2017-09-27/2017-09-27-ocaml-github-ci-7.png" /&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2f824dde-e112-4f4f-890d-1825572ea1c4-1</id><summary type="html">&lt;p&gt;Talk on the state of the OCaml Platform&lt;/p&gt; 21824 + &lt;p&gt;&lt;img alt="Local GitHub PR" src="https://www.dra27.uk/assets/2017-09-27/2017-09-27-ocaml-github-ci-7.png" /&gt;&lt;/p&gt;</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">&lt;p&gt;Talk on the state of the OCaml Platform&lt;/p&gt; 21825 21825 21826 21826 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;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.&lt;/p&gt; 21827 21827 ··· 21831 21831 21832 21832 &lt;p&gt;So opam-admin.top now has some rate limiting code for the status messages - the script now only takes half a minute to run, and the output even looks nicer. Moral of the story is clear: never write more to the console than you have to.&lt;/p&gt; 21833 21833 21834 - &lt;p&gt;This needs a little further investigation - it’ll be interesting to see if the Windows 10 console host offers any improvements and it would be good to have comparison numbers for a Linux distro.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2017-oud-platform-1</id><summary type="html">&lt;p&gt;Annual update on the OCaml Pltform at ICFP&lt;/p&gt; 21834 + &lt;p&gt;This needs a little further investigation - it’ll be interesting to see if the Windows 10 console host offers any improvements and it would be good to have comparison numbers for a Linux distro.&lt;/p&gt;</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">&lt;p&gt;Annual update on the OCaml Pltform at ICFP&lt;/p&gt; 21835 21835 21836 21836 &lt;blockquote class="paper noquote"&gt; 21837 21837 &lt;div class="paper-info"&gt; ··· 21842 21842 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2017-oud-platform.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 21843 21843 &lt;/p&gt; 21844 21844 &lt;/div&gt; 21845 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2017-ml-effects-1</id><summary type="html">&lt;p&gt;Paper on how to tackle awkward IO patterns with effect handlers&lt;/p&gt; 21845 + &lt;/blockquote&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">&lt;p&gt;Paper on how to tackle awkward IO patterns with effect handlers&lt;/p&gt; 21846 21846 21847 21847 &lt;blockquote class="paper noquote"&gt; 21848 21848 &lt;div class="paper-info"&gt; ··· 22067 22067 developing this PoC further, but if anyone has a particular interest or would 22068 22068 like to provide patches to, e.g., support network devices on &lt;a href="https://packet.net"&gt;packet.net&lt;/a&gt;, 22069 22069 please &lt;a href="mailto:mort@cantab.net"&gt;get in touch&lt;/a&gt;, file an issue or send a pull 22070 - request!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/opening-discuss-ocaml</id><summary type="html">&lt;p&gt;I opened up a &lt;a href="https://discourse.org"&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.&lt;/p&gt;</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;h1 id="bootstrapping-docker-for-arm64-aka-aarch64"&gt;&lt;a class="zola-anchor" href="https://mort.io/blog/docker-docker/#bootstrapping-docker-for-arm64-aka-aarch64"&gt;Bootstrapping Docker for ARM64 (aka AARCH64)&lt;/a&gt;&lt;/h1&gt; 22070 + request!&lt;/p&gt;</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">&lt;p&gt;I opened up a &lt;a href="https://discourse.org"&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.&lt;/p&gt;</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;h1 id="bootstrapping-docker-for-arm64-aka-aarch64"&gt;&lt;a class="zola-anchor" href="https://mort.io/blog/docker-docker/#bootstrapping-docker-for-arm64-aka-aarch64"&gt;Bootstrapping Docker for ARM64 (aka AARCH64)&lt;/a&gt;&lt;/h1&gt; 22071 22071 &lt;p&gt;Basic process is:&lt;/p&gt; 22072 22072 &lt;ul&gt; 22073 22073 &lt;li&gt;bootstrap ARM64 &lt;code&gt;go&lt;/code&gt; toolchain on x86, and install&lt;/li&gt; ··· 22209 22209 &lt;li&gt;&lt;code&gt;DOCKER_BUILDTAGS&lt;/code&gt; environment variable no longer supported?&lt;/li&gt; 22210 22210 &lt;li&gt;&lt;code&gt;1.12.3&lt;/code&gt; and &lt;code&gt;1.13.1&lt;/code&gt; also built&lt;/li&gt; 22211 22211 &lt;li&gt;Build of RPM or DEB packages fails due, I think, to DIND not working&lt;/li&gt; 22212 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2017-snapl-dali-1</id><summary type="html">&lt;p&gt;Position paper on building databases-as-a-library at SNAPL 2017&lt;/p&gt; 22212 + &lt;/ul&gt;</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">&lt;p&gt;Position paper on building databases-as-a-library at SNAPL 2017&lt;/p&gt; 22213 22213 22214 22214 &lt;blockquote class="paper noquote"&gt; 22215 22215 &lt;div class="paper-info"&gt; ··· 22612 22612 &lt;p&gt;As I say, this isn’t my area of expertise – but it seems to work anyway.&lt;/p&gt; 22613 22613 &lt;p&gt;Also, because a surprisingly large (or perhaps not) number of people also ask– 22614 22614 as far as I know and have experienced, fasting means &lt;strong&gt;no&lt;/strong&gt; calories, 22615 - &lt;strong&gt;including alcohol&lt;/strong&gt;, even it it’s free… :)&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/725dda70-b12b-4b1a-a8ae-fa9c22683ff2-1</id><summary type="html">&lt;p&gt;DockerCon talk on unikernels and MirageOS&lt;/p&gt; 22615 + &lt;strong&gt;including alcohol&lt;/strong&gt;, even it it’s free… :)&lt;/p&gt;</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">&lt;p&gt;DockerCon talk on unikernels and MirageOS&lt;/p&gt; 22616 22616 22617 22617 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Nothing earth-shattering here: I recently had the “pleasure” of setting up an 22618 22618 ARM64 server. After considerable support, several firmware upgrades, corruption ··· 22635 22635 &lt;p&gt;Regenerate the grub2 configuration:&lt;/p&gt; 22636 22636 &lt;p&gt;{% highlight bash %} 22637 22637 sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 22638 - {% endhighlight %}&lt;/p&gt;</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>Anil&lt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/dbd7546a-95d8-40af-b286-3cf930767682-1</id><summary type="html">&lt;p&gt;I gave a talk at the &lt;a href="https://functional.works-hub.com"&gt;Functional Works&lt;/a&gt; meetup, held in &lt;a href="https://janestreet.com"&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/"&gt;under the hood&lt;/a&gt;.&lt;/p&gt; 22638 + {% endhighlight %}&lt;/p&gt;</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">&lt;p&gt;I gave a talk at the &lt;a href="https://functional.works-hub.com"&gt;Functional Works&lt;/a&gt; meetup, held in &lt;a href="https://janestreet.com"&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/"&gt;under the hood&lt;/a&gt;.&lt;/p&gt; 22639 22639 22640 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/8c92d6cf-3e05-429f-8c8e-094f77be61c6-1</id><summary type="html">&lt;p&gt;Interviewed by The New Stack at OSCON in Austin, Texas&lt;/p&gt; 22640 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&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">&lt;p&gt;Interviewed by The New Stack at OSCON in Austin, Texas&lt;/p&gt; 22641 22641 22642 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2016-usenix-flick-1</id><summary type="html">&lt;p&gt;Paper on application-specific network services at USENIX ATC 2016&lt;/p&gt; 22642 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Paper on application-specific network services at USENIX ATC 2016&lt;/p&gt; 22643 22643 22644 22644 &lt;blockquote class="paper noquote"&gt; 22645 22645 &lt;div class="paper-info"&gt; ··· 22651 22651 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2016-usenix-flick.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 22652 22652 &lt;/p&gt; 22653 22653 &lt;/div&gt; 22654 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/vpnkit-hyperkit</id><summary type="html">&lt;p&gt;I announce the release of three big components that form the basis for &lt;a href="https://docker.com"&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.&lt;/p&gt;</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">&lt;p&gt;A relatively long hiatus this time – blame the Cambridge housing market and the 22654 + &lt;/blockquote&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">&lt;p&gt;I announce the release of three big components that form the basis for &lt;a href="https://docker.com"&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.&lt;/p&gt;</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">&lt;p&gt;A relatively long hiatus this time – blame the Cambridge housing market and the 22655 22655 need to simultaneously act both incredibly quickly and mind-numbingly slowly. 22656 22656 Also obtaining a &lt;a href="http://www.christs.cam.ac.uk/content/dr-richard-mortier"&gt;College 22657 22657 Fellowship&lt;/a&gt; and ··· 22746 22746 &lt;p&gt;So there you go. Some opinions if relatively little knowledge. YMMV. Etc.&lt;/p&gt; 22747 22747 &lt;p&gt;(PS. If I know you, I’ll also be happy to give recommendations of solicitors, 22748 22748 builders and other house-associated professionals too. And a couple of 22749 - warnings.)&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2016-flops-cmeleon-1</id><summary type="html">&lt;p&gt;Paper on declarative approaches to foreign function bindings at FLOPS 2016&lt;/p&gt; 22749 + warnings.)&lt;/p&gt;</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">&lt;p&gt;Paper on declarative approaches to foreign function bindings at FLOPS 2016&lt;/p&gt; 22750 22750 22751 22751 &lt;blockquote class="paper noquote"&gt; 22752 22752 &lt;div class="paper-info"&gt; ··· 22759 22759 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2016-flops-cmeleon.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 22760 22760 &lt;/p&gt; 22761 22761 &lt;/div&gt; 22762 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/a612e810-d56c-48af-b43e-2893a96b9120-1</id><summary type="html">&lt;p&gt;Announced that Unikernel Systems is now part of Docker&lt;/p&gt; 22762 + &lt;/blockquote&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">&lt;p&gt;Announced that Unikernel Systems is now part of Docker&lt;/p&gt; 22763 22763 22764 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/docker-buys-unikernel-systems</id><summary type="html">&lt;p&gt;My startup &lt;a href="https://anil.recoil.org/projects/unikernels"&gt;Unikernel Systems&lt;/a&gt; was acquired by &lt;a href="https://anil.recoil.org/docker.com"&gt;Docker&lt;/a&gt;, and I'll 22764 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;My startup &lt;a href="https://anil.recoil.org/projects/unikernels"&gt;Unikernel Systems&lt;/a&gt; was acquired by &lt;a href="https://anil.recoil.org/docker.com"&gt;Docker&lt;/a&gt;, and I'll 22765 22765 be joining and setting up a UK branch of Docker along with the rest of my team.&lt;/p&gt; 22766 22766 &lt;blockquote&gt; 22767 22767 &lt;p&gt;'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"&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.' ··· 22908 22908 terminals, one of those &lt;em&gt;Really Hard&lt;/em&gt; things for computers/manufacturers to 22909 22909 handle…&lt;/p&gt; 22910 22910 &lt;p&gt;&lt;em&gt;Note: Thanks to &lt;a href="http://www.amp-what.com/unicode/search/"&gt;http://www.amp-what.com/unicode/search/&lt;/a&gt; for an easy way to 22911 - hunt down some of the unicode symbols used above!&lt;/em&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2015-sosp-sibylfs-1</id><summary type="html">&lt;p&gt;Paper on formal specificaiton and testing of filesystems at SOSP 2015&lt;/p&gt; 22911 + hunt down some of the unicode symbols used above!&lt;/em&gt;&lt;/p&gt;</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">&lt;p&gt;Paper on formal specificaiton and testing of filesystems at SOSP 2015&lt;/p&gt; 22912 22912 22913 22913 &lt;blockquote class="paper noquote"&gt; 22914 22914 &lt;div class="paper-info"&gt; ··· 22921 22921 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2015-sosp-sibylfs.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 22922 22922 &lt;/p&gt; 22923 22923 &lt;/div&gt; 22924 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2015-aarhus-databox-1</id><summary type="html">&lt;p&gt;Paper on personal databoxes at the one-in-a-decade Aarhus conference&lt;/p&gt; 22924 + &lt;/blockquote&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">&lt;p&gt;Paper on personal databoxes at the one-in-a-decade Aarhus conference&lt;/p&gt; 22925 22925 22926 22926 &lt;blockquote class="paper noquote"&gt; 22927 22927 &lt;div class="paper-info"&gt; ··· 22934 22934 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2015-aarhus-databox.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 22935 22935 &lt;/p&gt; 22936 22936 &lt;/div&gt; 22937 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/d5fbd6a4-bef2-4fbc-9d02-cb9935e50d8e-1</id><summary type="html">&lt;p&gt;Invited talk at NetPL on Immutable Distributed Infrastructure with Unikernels&lt;/p&gt; 22937 + &lt;/blockquote&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">&lt;p&gt;Invited talk at NetPL on Immutable Distributed Infrastructure with Unikernels&lt;/p&gt; 22938 22938 22939 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/35e1a70d-0fb4-49b1-86ce-dd6266b812de-1</id><summary type="html">&lt;p&gt;Update on the state of the OCaml Platform&lt;/p&gt; 22939 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Update on the state of the OCaml Platform&lt;/p&gt; 22940 22940 22941 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2015-usenixsec-nqsb-1</id><summary type="html">&lt;p&gt;Paper on rebuilding TLS securely but practically at USENIX Security 2015&lt;/p&gt; 22941 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Paper on rebuilding TLS securely but practically at USENIX Security 2015&lt;/p&gt; 22942 22942 22943 22943 &lt;blockquote class="paper noquote"&gt; 22944 22944 &lt;div class="paper-info"&gt; ··· 23116 23116 pick up the latest versions of all the various packages, and updating the Travis 23117 23117 &lt;code&gt;gcc&lt;/code&gt; and &lt;code&gt;binutils&lt;/code&gt; to ensure the stubs for a couple of packages (notably 23118 23118 &lt;code&gt;mirage-entropy-xen&lt;/code&gt;) build.&lt;/p&gt; 23119 - &lt;p&gt;Next stop: adding TLS and DNS support…&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/55852136-843d-4043-98e7-6b46c6d39b01-1</id><summary type="html">&lt;p&gt;Talk at Esper on functional programming with unikernels&lt;/p&gt; 23119 + &lt;p&gt;Next stop: adding TLS and DNS support…&lt;/p&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">&lt;p&gt;Talk at Esper on functional programming with unikernels&lt;/p&gt; 23120 23120 23121 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&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/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>Anil&lt;</name></author><id>https://anil.recoil.org/news/ad4658f5-ca4f-42f3-b61a-58f13dcdeb1a-1</id><summary type="html">&lt;p&gt;NSDI 2015 talk on Jitsu&lt;/p&gt; 23121 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&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/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">&lt;p&gt;NSDI 2015 talk on Jitsu&lt;/p&gt; 23122 23122 23123 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2015-diynet-kadupul-1</id><summary type="html">&lt;p&gt;Workshop paper on DIY networking using timelock puzzles&lt;/p&gt; 23123 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Workshop paper on DIY networking using timelock puzzles&lt;/p&gt; 23124 23124 23125 23125 &lt;blockquote class="paper noquote"&gt; 23126 23126 &lt;div class="paper-info"&gt; ··· 23133 23133 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2015-diynet-kadupul.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 23134 23134 &lt;/p&gt; 23135 23135 &lt;/div&gt; 23136 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2015-nsdi-jitsu-1</id><summary type="html">&lt;p&gt;Paper on spinning up low-latency unikernels per-connection at NSDI 2015&lt;/p&gt; 23136 + &lt;/blockquote&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">&lt;p&gt;Paper on spinning up low-latency unikernels per-connection at NSDI 2015&lt;/p&gt; 23137 23137 23138 23138 &lt;blockquote class="paper noquote"&gt; 23139 23139 &lt;div class="paper-info"&gt; ··· 23200 23200 elicit discussion of both the HDI framework and the technical solutions we are 23201 23201 pursuing, as well as to engage in a broader conversation about the ways we 23202 23202 should approach the personal data ecosystem with other interested parties._&lt;/p&gt; 23203 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ocamllabs-2014-review</id><summary type="html">&lt;p&gt;The &lt;a href="https://anil.recoil.org/projects/ocamllabs"&gt;OCaml Labs&lt;/a&gt; initiative within the &lt;a href="http://www.cl.cam.ac.uk"&gt;Cambridge 23203 + &lt;/blockquote&gt;</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">&lt;p&gt;The &lt;a href="https://anil.recoil.org/projects/ocamllabs"&gt;OCaml Labs&lt;/a&gt; initiative within the &lt;a href="http://www.cl.cam.ac.uk"&gt;Cambridge 23204 23204 Computer Laboratory&lt;/a&gt; is now just over two years 23205 23205 old, and it is time for an update about our activities since the last 23206 23206 update at the &lt;a href="http://www.cl.cam.ac.uk/projects/ocamllabs/news/index.html#Dec%202013"&gt;end of ··· 24274 24274 Independently of that, the latter also happened to get picked up by 24275 24275 &lt;a href="http://www.theguardian.com/profile/johnnaughton"&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"&gt;Guardian&lt;/a&gt;, which ended up with a pretty 24276 24276 active comments thread, including one from Richard Stallman himself…&lt;/p&gt; 24277 - &lt;p&gt;Guess we’d better get on and deliver it now then :)&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/icfp15-call-for-sponsorships</id><summary type="html">&lt;p&gt;The call for papers for this year’s &lt;a href="http://icfpconference.org/icfp2015/"&gt;International Conference on Functional 24277 + &lt;p&gt;Guess we’d better get on and deliver it now then :)&lt;/p&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">&lt;p&gt;The call for papers for this year’s &lt;a href="http://icfpconference.org/icfp2015/"&gt;International Conference on Functional 24278 24278 Programming&lt;/a&gt; is about to close in two 24279 24279 weeks, and over a hundred cutting-edge research papers will be submitted on the 24280 24280 theory, application, and experiences behind functional programming and type ··· 24361 24361 &lt;a href="http://research.microsoft.com/apps/video/default.aspx?id=104278"&gt;Measuring and Monitoring Microsoft’s Enterprise Network&lt;/a&gt;, 24362 24362 it turns out you can do that too. The past haunts us they say. In my case, it 24363 24363 seems that the haunting has happened already, and turned my hair mostly white in 24364 - the process… :)&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/0bc235e0-b154-4cbf-a84a-61240f16d60a-1</id><summary type="html">&lt;p&gt;I hopped over to Berlin to give the keynote at &lt;a href="https://bobkonf.de/2015/en/"&gt;BOB 2015&lt;/a&gt; keynote on functional operating systems. If you're in the region, I &lt;em&gt;highly&lt;/em&gt; recommend attending BOB as a superbly organised conference with a diverse and interesting crowd of functional programmers.&lt;/p&gt; 24364 + the process… :)&lt;/p&gt;</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">&lt;p&gt;I hopped over to Berlin to give the keynote at &lt;a href="https://bobkonf.de/2015/en/"&gt;BOB 2015&lt;/a&gt; keynote on functional operating systems. If you're in the region, I &lt;em&gt;highly&lt;/em&gt; recommend attending BOB as a superbly organised conference with a diverse and interesting crowd of functional programmers.&lt;/p&gt; 24365 24365 24366 24366 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Specifically, I’ve left &lt;a href="http://www.horizon.ac.uk"&gt;Horizon&lt;/a&gt; and the 24367 24367 &lt;a href="http://www.cs.nott.ac.uk"&gt;School of Computer Science&lt;/a&gt; at the ··· 24384 24384 curiously over-engineered at the same time… :)&lt;/p&gt; 24385 24385 &lt;p&gt;For the time being however, I’m using it as an excuse to think about what I 24386 24386 might do to better support site generation like this in &lt;a href="https://github.com/mirage/cowabloga"&gt;Cowabloga&lt;/a&gt; so that I 24387 - can more seamlessly switch between &lt;a href="http://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; and &lt;a href="http://openmirage.org/"&gt;Mirage&lt;/a&gt;.&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2014-sigops-raft-1</id><summary type="html">&lt;p&gt;Paper on reproducing the raft consensus protocol&lt;/p&gt; 24387 + can more seamlessly switch between &lt;a href="http://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; and &lt;a href="http://openmirage.org/"&gt;Mirage&lt;/a&gt;.&lt;/p&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">&lt;p&gt;Paper on reproducing the raft consensus protocol&lt;/p&gt; 24388 24388 24389 24389 &lt;blockquote class="paper noquote"&gt; 24390 24390 &lt;div class="paper-info"&gt; ··· 24397 24397 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2014-sigops-raft.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 24398 24398 &lt;/p&gt; 24399 24399 &lt;/div&gt; 24400 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2015-jfla-irmin-1</id><summary type="html">&lt;p&gt;Paper on mergeable data structures using Irmin (nee Irminsule) at JFLA 2015&lt;/p&gt; 24400 + &lt;/blockquote&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">&lt;p&gt;Paper on mergeable data structures using Irmin (nee Irminsule) at JFLA 2015&lt;/p&gt; 24401 24401 24402 24402 &lt;blockquote class="paper noquote"&gt; 24403 24403 &lt;div class="paper-info"&gt; ··· 24408 24408 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2015-jfla-irmin.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 24409 24409 &lt;/p&gt; 24410 24410 &lt;/div&gt; 24411 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2013-cufp-scribe-1</id><summary type="html">&lt;p&gt;Published the scribe's report for CUFP 2013 in JFP&lt;/p&gt; 24411 + &lt;/blockquote&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">&lt;p&gt;Published the scribe's report for CUFP 2013 in JFP&lt;/p&gt; 24412 24412 24413 24413 &lt;blockquote class="paper noquote"&gt; 24414 24414 &lt;div class="paper-info"&gt; ··· 24420 24420 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2013-cufp-scribe.bib"&gt;BIB&lt;/a&gt; 24421 24421 &lt;/p&gt; 24422 24422 &lt;/div&gt; 24423 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/644914a5-a40b-4ef7-bb17-cea43c95dd09-1</id><summary type="html">&lt;p&gt;Gave Codemesh 2014 talk on Nymote&lt;/p&gt; 24423 + &lt;/blockquote&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">&lt;p&gt;Gave Codemesh 2014 talk on Nymote&lt;/p&gt; 24424 24424 24425 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/46968fa0-e5bd-4df8-98e1-3cf88d9b31e5-1</id><summary type="html">&lt;p&gt;New Directions in Operating Systems talk on Jitsu&lt;/p&gt; 24425 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;New Directions in Operating Systems talk on Jitsu&lt;/p&gt; 24426 24426 24427 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2014-regional-clouds-1</id><summary type="html">&lt;p&gt;Report on regional cloud computing law available&lt;/p&gt; 24427 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Report on regional cloud computing law available&lt;/p&gt; 24428 24428 24429 24429 &lt;blockquote class="paper noquote"&gt; 24430 24430 &lt;div class="paper-info"&gt; ··· 24437 24437 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2014-regional-clouds.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 24438 24438 &lt;/p&gt; 24439 24439 &lt;/div&gt; 24440 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/c9273fa0-802f-4d2b-8f0d-db383943564e-1</id><summary type="html">&lt;p&gt;At the Xen Summit speaking about branch consistency for Xen Stub Domains&lt;/p&gt; 24440 + &lt;/blockquote&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">&lt;p&gt;At the Xen Summit speaking about branch consistency for Xen Stub Domains&lt;/p&gt; 24441 24441 24442 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/4390c1d0-ed4f-4c01-9e10-dab2a3faed7a-1</id><summary type="html">&lt;p&gt;Talk on the OCaml Platform reaching v1.0&lt;/p&gt; 24442 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Talk on the OCaml Platform reaching v1.0&lt;/p&gt; 24443 24443 24444 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/ed84b2eb-1b93-4dc3-b746-63a4af13d4ea-1</id><summary type="html">&lt;p&gt;Gave Haskell Symposium 2014 Keynote on functional OS design&lt;/p&gt; 24444 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Gave Haskell Symposium 2014 Keynote on functional OS design&lt;/p&gt; 24445 24445 24446 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2014-oud-platform-1</id><summary type="html">&lt;p&gt;Paper on the OCaml Platform status&lt;/p&gt; 24446 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Paper on the OCaml Platform status&lt;/p&gt; 24447 24447 24448 24448 &lt;blockquote class="paper noquote"&gt; 24449 24449 &lt;div class="paper-info"&gt; ··· 24454 24454 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2014-oud-platform.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 24455 24455 &lt;/p&gt; 24456 24456 &lt;/div&gt; 24457 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2014-oud-multicore-1</id><summary type="html">&lt;p&gt;First paper on multicore OCaml's design at the OCaml Workshop&lt;/p&gt; 24457 + &lt;/blockquote&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">&lt;p&gt;First paper on multicore OCaml's design at the OCaml Workshop&lt;/p&gt; 24458 24458 24459 24459 &lt;blockquote class="paper noquote"&gt; 24460 24460 &lt;div class="paper-info"&gt; ··· 24465 24465 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2014-oud-multicore.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 24466 24466 &lt;/p&gt; 24467 24467 &lt;/div&gt; 24468 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2014-oud-irminsule-1</id><summary type="html">&lt;p&gt;Paper at the OCaml Workshop on the Irmin database library&lt;/p&gt; 24468 + &lt;/blockquote&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">&lt;p&gt;Paper at the OCaml Workshop on the Irmin database library&lt;/p&gt; 24469 24469 24470 24470 &lt;blockquote class="paper noquote"&gt; 24471 24471 &lt;div class="paper-info"&gt; ··· 24476 24476 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2014-oud-irminsule.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 24477 24477 &lt;/p&gt; 24478 24478 &lt;/div&gt; 24479 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ocaml-labs-at-icfp-2014</id><summary type="html">&lt;p&gt;It's the ever-exciting week of the &lt;a href="https://icfpconference.org/"&gt;International Conference on 24479 + &lt;/blockquote&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">&lt;p&gt;It's the ever-exciting week of the &lt;a href="https://icfpconference.org/"&gt;International Conference on 24480 24480 Functional Programming&lt;/a&gt; again in Sweden, 24481 24481 and this time &lt;a href="http://ocaml.io"&gt;OCaml Labs&lt;/a&gt; has a variety of talks, 24482 24482 tutorials and keynotes to deliver throughout the week. This post ··· 24732 24732 sometime after 8pm at &lt;a href="http://www.3vaningen.se/"&gt;3vaningen&lt;/a&gt;. Sounds like 24733 24733 a perfect way to wind down after what’s gearing to up to be an intense 24734 24734 ICFP 2014. I look forward to seeing old friends and making new ones in 24735 - Gothenburg soon!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/5cdf2eef-9053-428e-b8b3-ab5ae274c129-1</id><summary type="html">&lt;p&gt;Appeared on FLOSS Weekly 302 about Open Mirage&lt;/p&gt; 24735 + Gothenburg soon!&lt;/p&gt;</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">&lt;p&gt;Appeared on FLOSS Weekly 302 about Open Mirage&lt;/p&gt; 24736 24736 24737 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/announcing-mirageos-2</id><summary type="html">&lt;p&gt;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"&gt;Irmin&lt;/a&gt; and even a pure OCaml TLS stack.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/announcing-mirageos-1-2</id><summary type="html">&lt;p&gt;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!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/d5411e25-7845-41e8-b3ec-ab3c33ce13c8-1</id><summary type="html">&lt;p&gt;Appeared on SE Radio Episode 204 about Mirage and OCaml&lt;/p&gt; 24737 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;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"&gt;Irmin&lt;/a&gt; and even a pure OCaml TLS stack.&lt;/p&gt;</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">&lt;p&gt;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!&lt;/p&gt;</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">&lt;p&gt;Appeared on SE Radio Episode 204 about Mirage and OCaml&lt;/p&gt; 24738 24738 24739 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/codio-now-has-opam-support</id><summary type="html">&lt;p&gt;I noticed an offhand tweet from Phil Tomson about &lt;a href="http://codio.com/"&gt;Codio&lt;/a&gt; adding OPAM support, and naturally had to take a quick look. I was &lt;em&gt;really&lt;/em&gt; 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"&gt;Mirage Xen website&lt;/a&gt; unikernel directly from my web browser in less than a minute, including registration!&lt;/p&gt; 24739 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;I noticed an offhand tweet from Phil Tomson about &lt;a href="http://codio.com/"&gt;Codio&lt;/a&gt; adding OPAM support, and naturally had to take a quick look. I was &lt;em&gt;really&lt;/em&gt; 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"&gt;Mirage Xen website&lt;/a&gt; unikernel directly from my web browser in less than a minute, including registration!&lt;/p&gt; 24740 24740 &lt;ul&gt; 24741 24741 &lt;li&gt;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/"&gt;a public project&lt;/a&gt;) using GitHub oAuth (only public identity access required at first, no repository access).&lt;/li&gt; 24742 24742 &lt;li&gt;Selected a &lt;code&gt;git&lt;/code&gt; project and pointed it at the &lt;a href="https://web.archive.org/web/20170914182531/https://github.com/mirage/mirage-www"&gt;mirage-www&lt;/a&gt; repository.&lt;/li&gt; ··· 24754 24754 $ make MODE=xen 24755 24755 &lt;/code&gt;&lt;/pre&gt; 24756 24756 &lt;p&gt;Then have a cup of coffee while the box builds, and you have a &lt;code&gt;mir-www.xen&lt;/code&gt;, all from your web browser! Codio has a number of deployment options available too, so you should be able to hook up a &lt;a href="https://web.archive.org/web/20170914182531/http://amirchaudhry.com/from-jekyll-to-unikernel-in-fifty-lines/"&gt;Git-based workflow&lt;/a&gt; using some combination of Travis or other CI service.&lt;/p&gt; 24757 - &lt;p&gt;This is the first time I’ve ever been impressed by an online editor, and might consider moving away from my beloved vi...&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ocaml-github-and-opam</id><summary type="html">&lt;p&gt;Gabriel Scherer &lt;a href="http://gallium.inria.fr/blog/patch-review-on-github/"&gt;announced an 24757 + &lt;p&gt;This is the first time I’ve ever been impressed by an online editor, and might consider moving away from my beloved vi...&lt;/p&gt;</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">&lt;p&gt;Gabriel Scherer &lt;a href="http://gallium.inria.fr/blog/patch-review-on-github/"&gt;announced an 24758 24758 experiment&lt;/a&gt; to 24759 24759 host OCaml compiler pull requests on 24760 24760 &lt;a href="https://github.com/ocaml/ocaml/pulls"&gt;GitHub&lt;/a&gt; for six months. There is ··· 24819 24819 bindings). The scripts run daily for now, and delete switches once the 24820 24820 corresponding pull request is closed. Just run &lt;code&gt;opam update&lt;/code&gt; to retrieve 24821 24821 the latest switch set from the upstream &lt;a href="https://github.com/ocaml/opam-repository"&gt;OPAM package 24822 - repository&lt;/a&gt;.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/icfp-call-for-sponsorships</id><summary type="html">&lt;p&gt;The call for papers for this year’s &lt;a href="http://icfpconference.org/icfp2014/"&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"&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/"&gt;Erlang&lt;/a&gt;, &lt;a href="http://www.haskell.org/haskellwiki/HaskellImplementorsWorkshop"&gt;Haskell&lt;/a&gt;, &lt;a href="http://ocaml.org/meetings/ocaml/2014/"&gt;OCaml&lt;/a&gt;), the broader &lt;a href="http://cufp.org/"&gt;commercial community&lt;/a&gt;, and even &lt;a href="http://functional-art.org/"&gt;art and music&lt;/a&gt;.&lt;/p&gt; 24822 + repository&lt;/a&gt;.&lt;/p&gt;</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">&lt;p&gt;The call for papers for this year’s &lt;a href="http://icfpconference.org/icfp2014/"&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"&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/"&gt;Erlang&lt;/a&gt;, &lt;a href="http://www.haskell.org/haskellwiki/HaskellImplementorsWorkshop"&gt;Haskell&lt;/a&gt;, &lt;a href="http://ocaml.org/meetings/ocaml/2014/"&gt;OCaml&lt;/a&gt;), the broader &lt;a href="http://cufp.org/"&gt;commercial community&lt;/a&gt;, and even &lt;a href="http://functional-art.org/"&gt;art and music&lt;/a&gt;.&lt;/p&gt; 24823 24823 &lt;p&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/"&gt;Phil Wadler&lt;/a&gt;, or from rain-soaked discussions with &lt;a href="http://research.microsoft.com/en-us/people/simonpj/"&gt;Simon PJ&lt;/a&gt; at &lt;a href="http://mikkeller.dk/"&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/"&gt;write a book&lt;/a&gt; while in a smoky Tokyo bar.&lt;/p&gt; 24824 24824 &lt;p&gt;Functional programming worldwide has been growing ever more popular in 2014 (and &lt;a href="http://whatsapp.com/"&gt;lucrative&lt;/a&gt;). We’re committed to growing the ICFP community, not just in numbers but also in diversity. We had a record number of sponsors in 2013, and sustaining the growth means that we need to reach ever wider to support the activities of the (not-for-profit) conference.&lt;/p&gt; 24825 24825 &lt;p&gt;So as this year’s industrial relations chair, I thought I’d throw the gates open and &lt;strong&gt;invite any organization that wishes to support FP to get in touch with us&lt;/strong&gt; (e-mail at &lt;code&gt;avsm2@cl.cam.ac.uk&lt;/code&gt;) and sponsor us. I’ve put an abridged version of the e-mail solicitation below that describes the benefits. Sponsorship can start as low as $500 and is often tax deductible in many countries.&lt;/p&gt; ··· 24838 24838 &lt;p&gt;&lt;strong&gt;Platinum:&lt;/strong&gt; $10000: As above plus: named supporter of whole event, logo on lanyards, badge ribbon, table/booth-like space available (in coffee break areas), other negotiated benefits (subject to ACM restrictions on commercial involvement).&lt;/p&gt; 24839 24839 &lt;/blockquote&gt; 24840 24840 &lt;p&gt;If you are interested, please get in touch with &lt;a href="mailto:anil@recoil.org"&gt;me&lt;/a&gt; or any of the &lt;a href="http://icfpconference.org/icfp2014/index.html"&gt;organizing committee&lt;/a&gt;. 24841 - If you’re interested in helping out ICFP in a non-financial capacity (for example as a student volunteer), then there will also be plenty of opportunity to sign up later in the year.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2010-iswp-dustclouds-1</id><summary type="html">&lt;p&gt;Paper on building dust clouds for anonymous communication&lt;/p&gt; 24841 + If you’re interested in helping out ICFP in a non-financial capacity (for example as a student volunteer), then there will also be plenty of opportunity to sign up later in the year.&lt;/p&gt;</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">&lt;p&gt;Paper on building dust clouds for anonymous communication&lt;/p&gt; 24842 24842 24843 24843 &lt;blockquote class="paper noquote"&gt; 24844 24844 &lt;div class="paper-info"&gt; ··· 24851 24851 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2010-iswp-dustclouds.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 24852 24852 &lt;/p&gt; 24853 24853 &lt;/div&gt; 24854 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/unikernels-in-cacm</id><summary type="html">&lt;p&gt;The Communications of the ACM have just published an article that &lt;a class="contact" href="https://github.com/djs55"&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"&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"&gt;Melange&lt;/a&gt; and the &lt;a href="http://anil.recoil.org/papers/2010-icfp-xen.pdf"&gt;Xen toolstack&lt;/a&gt;. You can read either the &lt;a href="http://cacm.acm.org/magazines/2014/1/170866-unikernels"&gt;print article&lt;/a&gt; (requires an ACM subscription) or the &lt;a href="http://queue.acm.org/detail.cfm?id=2566628"&gt;open access version&lt;/a&gt; on the ACM Queue.&lt;/p&gt; 24854 + &lt;/blockquote&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">&lt;p&gt;The Communications of the ACM have just published an article that &lt;a class="contact" href="https://github.com/djs55"&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"&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"&gt;Melange&lt;/a&gt; and the &lt;a href="http://anil.recoil.org/papers/2010-icfp-xen.pdf"&gt;Xen toolstack&lt;/a&gt;. You can read either the &lt;a href="http://cacm.acm.org/magazines/2014/1/170866-unikernels"&gt;print article&lt;/a&gt; (requires an ACM subscription) or the &lt;a href="http://queue.acm.org/detail.cfm?id=2566628"&gt;open access version&lt;/a&gt; on the ACM Queue.&lt;/p&gt; 24855 24855 &lt;p&gt;&lt;figure class="image-right"&gt;&lt;img alt="" class="content-image" src="https://anil.recoil.org/images/acm-queue-unikernels-ss.webp" title="" /&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt; 24856 24856 24857 24857 There's been some interesting discussion about it already online:&lt;/p&gt; ··· 24875 24875 &lt;li&gt;Ensemble (website now offline but here’s a &lt;a href="http://www.cs.uni-potsdam.de/ti/kreitz/PDF/99sosp-fastpath.pdf"&gt;SOSP 1999 paper&lt;/a&gt;) is a group communication system written in OCaml, developed at Cornell and the Hebrew University. For an application builder, Ensemble provides a library of protocols that can be used for quickly building complex distributed applications. For a distributed systems researcher, Ensemble is a highly modular and reconfigurable toolkit: the high-level protocols provided to applications are really stacks of tiny protocol “layers,” each of whose can be modified or rebuilt to experiment.&lt;/li&gt; 24876 24876 &lt;/ul&gt; 24877 24877 &lt;p&gt;Both Ensemble and FoxNet made strong echoes throughout the design of Mirage (and its precursor software such as &lt;a href="http://anil.recoil.org/papers/2007-eurosys-melange.pdf"&gt;Melange&lt;/a&gt; in 2007). The &lt;a href="http://openmirage.org/wiki/hello-world"&gt;Mirage command-line tool&lt;/a&gt; uses staged computation to build a concrete application out of functors, and we are making this even more programmable via a new &lt;a href="https://github.com/mirage/mirage/pull/178"&gt;combinator-based functor types&lt;/a&gt; library that &lt;a href="http://gazagnaire.org/"&gt;Thomas Gazagnaire&lt;/a&gt; built, and also experimenting with &lt;a href="https://github.com/ocamllabs/higher"&gt;higher kinded polymorphic&lt;/a&gt; abstractions.&lt;/p&gt; 24878 - &lt;p&gt;My thanks to Butler Lampson and Robert Harper for making me go re-read their papers again, and I’d like to leave you with Malte Schwarzkopf’s &lt;a href="http://www.cl.cam.ac.uk/~ms705/netos/os-reading-group.html"&gt;OS Reading Group&lt;/a&gt; papers for other essential reading in this space. Many more citations immediately relevant to Mirage can also be found in our &lt;a href="http://anil.recoil.org/papers/2013-asplos-mirage.pdf"&gt;ASPLOS 2013&lt;/a&gt; paper.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/nqsb-tls</id><summary type="html">&lt;h1&gt;Not-quite-so-broken TLS in OCaml&lt;/h1&gt; 24878 + &lt;p&gt;My thanks to Butler Lampson and Robert Harper for making me go re-read their papers again, and I’d like to leave you with Malte Schwarzkopf’s &lt;a href="http://www.cl.cam.ac.uk/~ms705/netos/os-reading-group.html"&gt;OS Reading Group&lt;/a&gt; papers for other essential reading in this space. Many more citations immediately relevant to Mirage can also be found in our &lt;a href="http://anil.recoil.org/papers/2013-asplos-mirage.pdf"&gt;ASPLOS 2013&lt;/a&gt; paper.&lt;/p&gt;</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">&lt;h1&gt;Not-quite-so-broken TLS in OCaml&lt;/h1&gt; 24879 24879 &lt;p&gt;This is an idea proposed in 2014 as a good starter project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://github.com/hannesm"&gt;Hannes Mehnert&lt;/a&gt; and &lt;a class="contact" href="https://github.com/pqwy"&gt;David Kaloper-Mersinjak&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://www.cl.cam.ac.uk/~pes20/"&gt;Peter Sewell&lt;/a&gt;.&lt;/p&gt; 24880 24880 &lt;p&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.&lt;/p&gt; 24881 24881 &lt;p&gt;This internship was to work on nqsb-TLS, our re-engineered approach to security protocol specification and implementation that addresses the above root causes. The same source code serves two roles: it is both a specification of TLS, executable as a test oracle to check conformance of traces from arbitrary implementations, and a usable implementation of TLS; a modular and declarative programming style provides clean separation between its components. Many security flaws are thus excluded by construction.&lt;/p&gt; ··· 24885 24885 &lt;li&gt;&lt;a class="contact" href="https://github.com/hannesm"&gt;Hannes Mehnert&lt;/a&gt; and &lt;a class="contact" href="https://github.com/pqwy"&gt;David Kaloper-Mersinjak&lt;/a&gt; worked on this in an internship after discovering the MirageOS project online, and came over in the summer of 2014. The results have been hguely successful within the OCaml community, as the &lt;a href="https://github.com/mirleft/ocaml-tls"&gt;ocaml-tls&lt;/a&gt; is still widely used as the defacto TLS stack in many popular OCaml applications.&lt;/li&gt; 24886 24886 &lt;li&gt;The paper was published in USENIX Security; see &lt;a href="https://anil.recoil.org/papers/2015-usenixsec-nqsb"&gt;Not-Quite-So-Broken TLS&lt;/a&gt;.&lt;/li&gt; 24887 24887 &lt;li&gt;For other stuff that happened during that internship period, see &lt;a href="https://anil.recoil.org/notes/ocamllabs-2014-review"&gt;Reviewing the second year of OCaml Labs in 2014&lt;/a&gt;.&lt;/li&gt; 24888 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/scaling-tls-trust</id><summary type="html">&lt;h1&gt;Consolidating Trust for Client Groups that use TLS to Secure Connections&lt;/h1&gt; 24888 + &lt;/ul&gt;</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">&lt;h1&gt;Consolidating Trust for Client Groups that use TLS to Secure Connections&lt;/h1&gt; 24889 24889 &lt;p&gt;This is an idea proposed in 2014 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Johann Beleites&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="https://anil.recoil.org/"&gt;David Sheets&lt;/a&gt;.&lt;/p&gt; 24890 24890 &lt;p&gt;This project aimed to develop a framework that allows administrators to 24891 24891 centrally manage trust in CAs and certificates across a large number of ··· 24907 24907 were introduced –- including a whitelist of trusted CAs. Caches were 24908 24908 introduced to improve performance, although more performance optimisations 24909 24909 would be possible but were not implemented due to prioritisation of other 24910 - features.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/the-year-in-ocamllabs</id><summary type="html">&lt;p&gt;This time last year in 2012, I had just 24910 + features.&lt;/p&gt;</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">&lt;p&gt;This time last year in 2012, I had just 24911 24911 &lt;a href="https://anil.recoil.org/2012/10/19/announcing-ocaml-labs.html"&gt;announced&lt;/a&gt; 24912 24912 the formation of a new group called &lt;a href="http://www.cl.cam.ac.uk/projects/ocamllabs/"&gt;OCaml 24913 24913 Labs&lt;/a&gt; in the &lt;a href="http://www.cl.cam.ac.uk"&gt;Cambridge ··· 25727 25727 please do &lt;a href="mailto:avsm2@cl.cam.ac.uk"&gt;get in touch&lt;/a&gt; with me with any 25728 25728 queries!&lt;/p&gt; 25729 25729 &lt;p&gt;&lt;figure class="image-center"&gt;&lt;img alt="A successful FPDays tutorial in Cambridge, with all attendees getting a free copy of RWO!" class="content-image" src="https://anil.recoil.org/images/fpdays2013-04.webp" title="A successful FPDays tutorial in Cambridge, with all attendees getting a free copy of RWO!" /&gt;&lt;figcaption&gt;A successful FPDays tutorial in Cambridge, with all attendees getting a free copy of RWO!&lt;/figcaption&gt;&lt;/figure&gt; 25730 - &lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/docker-and-opam</id><summary type="html">&lt;p&gt;Now that OCaml 4.01 has been released, there is a frenzy of commit 25730 + &lt;/p&gt;</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">&lt;p&gt;Now that OCaml 4.01 has been released, there is a frenzy of commit 25731 25731 activity in the &lt;a href="https://github.com/ocaml/ocaml"&gt;development trunk&lt;/a&gt; of 25732 25732 OCaml as the new features for 4.02 are all integrated. These include 25733 25733 some enhancements to the type system such as ··· 25840 25840 multicore box, and having a &lt;a href="http://blog.docker.io/2013/10/docker-0-6-5-links-container-naming-advanced-port-redirects-host-integration/"&gt;linked 25841 25841 container&lt;/a&gt; 25842 25842 that hosts a local package repository so that we don’t require a lot of 25843 - external bandwidth. Stay tuned!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/cf9fcf6b-de5d-4a23-a00d-cceadea5b668-1</id><summary type="html">&lt;p&gt;MirageOS and XAPI project update at XenSummit&lt;/p&gt; 25843 + external bandwidth. Stay tuned!&lt;/p&gt;</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">&lt;p&gt;MirageOS and XAPI project update at XenSummit&lt;/p&gt; 25844 25844 25845 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/liveblog-plos-2013</id><summary type="html">&lt;p&gt;I co-chaired the Programming Languages and Operating Systems workshop at SOSP 2013, and made livenotes about the (many) papers presented there.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/rise-of-libos-1</id><summary type="html">&lt;p&gt;Article on the Communications of the ACM on unikernels is published&lt;/p&gt; 25845 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;I co-chaired the Programming Languages and Operating Systems workshop at SOSP 2013, and made livenotes about the (many) papers presented there.&lt;/p&gt;</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">&lt;p&gt;Article on the Communications of the ACM on unikernels is published&lt;/p&gt; 25846 25846 25847 25847 &lt;blockquote class="paper noquote"&gt; 25848 25848 &lt;div class="paper-info"&gt; ··· 25854 25854 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/rise-of-libos.bib"&gt;BIB&lt;/a&gt; 25855 25855 &lt;/p&gt; 25856 25856 &lt;/div&gt; 25857 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2013-hotnets-trevi-1</id><summary type="html">&lt;p&gt;Paper on fountain coding for datacentre networking at HotNets 2013&lt;/p&gt; 25857 + &lt;/blockquote&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">&lt;p&gt;Paper on fountain coding for datacentre networking at HotNets 2013&lt;/p&gt; 25858 25858 25859 25859 &lt;blockquote class="paper noquote"&gt; 25860 25860 &lt;div class="paper-info"&gt; ··· 25867 25867 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2013-hotnets-trevi.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 25868 25868 &lt;/p&gt; 25869 25869 &lt;/div&gt; 25870 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/rwo-1</id><summary type="html">&lt;p&gt;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;/p&gt; 25870 + &lt;/blockquote&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">&lt;p&gt;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;/p&gt; 25871 25871 25872 25872 &lt;blockquote class="paper noquote"&gt; 25873 25873 &lt;div class="paper-info"&gt; ··· 25879 25879 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/rwo.bib"&gt;BIB&lt;/a&gt; 25880 25880 &lt;/p&gt; 25881 25881 &lt;/div&gt; 25882 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2012-cufp-scribe-1</id><summary type="html">&lt;p&gt;Published the scribe's report for CUFP 2012&lt;/p&gt; 25882 + &lt;/blockquote&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">&lt;p&gt;Published the scribe's report for CUFP 2012&lt;/p&gt; 25883 25883 25884 25884 &lt;blockquote class="paper noquote"&gt; 25885 25885 &lt;div class="paper-info"&gt; ··· 25947 25947 &lt;pre class="language-lisp z-code"&gt;&lt;code class="language-lisp"&gt;&lt;span class="z-source z-lisp"&gt;&lt;span class="z-meta z-group z-lisp"&gt;&lt;span class="z-punctuation z-definition z-group z-begin z-lisp"&gt;(&lt;/span&gt;&lt;span class="z-support z-function z-lisp"&gt;push&lt;/span&gt;'&lt;span class="z-meta z-group z-lisp"&gt;&lt;span class="z-punctuation z-definition z-group z-begin z-lisp"&gt;(&lt;/span&gt;&lt;span class="z-string z-quoted z-double z-lisp"&gt;&lt;span class="z-punctuation z-definition z-string z-begin z-lisp"&gt;&amp;quot;&lt;/span&gt;&lt;span class="z-constant z-character z-escape z-lisp"&gt;\\&lt;/span&gt;.ml[iylp]?&lt;span class="z-punctuation z-definition z-string z-end z-lisp"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; . tuareg&lt;span class="z-keyword z-operator z-arithmetic z-lisp"&gt;-&lt;/span&gt;mode&lt;span class="z-punctuation z-definition z-group z-end z-lisp"&gt;)&lt;/span&gt;&lt;/span&gt; auto&lt;span class="z-keyword z-operator z-arithmetic z-lisp"&gt;-&lt;/span&gt;mode&lt;span class="z-keyword z-operator z-arithmetic z-lisp"&gt;-&lt;/span&gt;alist&lt;span class="z-punctuation z-definition z-group z-end z-lisp"&gt;)&lt;/span&gt;&lt;/span&gt; 25948 25948 &lt;/span&gt;&lt;span class="z-source z-lisp"&gt;&lt;span class="z-meta z-group z-lisp"&gt;&lt;span class="z-punctuation z-definition z-group z-begin z-lisp"&gt;(&lt;/span&gt;&lt;span class="z-support z-function z-lisp"&gt;push&lt;/span&gt; '&lt;span class="z-meta z-group z-lisp"&gt;&lt;span class="z-punctuation z-definition z-group z-begin z-lisp"&gt;(&lt;/span&gt;&lt;span class="z-string z-quoted z-double z-lisp"&gt;&lt;span class="z-punctuation z-definition z-string z-begin z-lisp"&gt;&amp;quot;&lt;/span&gt;&lt;span class="z-constant z-character z-escape z-lisp"&gt;\\&lt;/span&gt;.fs[ix]?&lt;span class="z-punctuation z-definition z-string z-end z-lisp"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; . tuareg&lt;span class="z-keyword z-operator z-arithmetic z-lisp"&gt;-&lt;/span&gt;mode&lt;span class="z-punctuation z-definition z-group z-end z-lisp"&gt;)&lt;/span&gt;&lt;/span&gt; auto&lt;span class="z-keyword z-operator z-arithmetic z-lisp"&gt;-&lt;/span&gt;mode&lt;span class="z-keyword z-operator z-arithmetic z-lisp"&gt;-&lt;/span&gt;alist&lt;span class="z-punctuation z-definition z-group z-end z-lisp"&gt;)&lt;/span&gt;&lt;/span&gt; 25949 25949 &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; 25950 - &lt;p&gt;And that’s it!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/hdi-workshop-2013-liveblog</id><summary type="html">&lt;p&gt;We held the first &lt;a href="https://hdi-network.org"&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.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ocaml-2013-liveblog</id><summary type="html">&lt;p&gt;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 &amp;quot;&lt;a href="https://anil.recoil.org/notes/the-year-in-ocamllabs"&gt;Reviewing the first year of OCaml Labs in 2013&lt;/a&gt;&amp;quot; roundup as well that I published later in the year.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/cufp-2013-liveblog</id><summary type="html">&lt;p&gt;The &lt;a href="https://cufp.org"&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.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/opam-1-1-beta</id><summary type="html">&lt;p&gt;&lt;a class="contact" href="https://github.com/samoht"&gt;Thomas Gazagnaire&lt;/a&gt; just announced the availability of the 25950 + &lt;p&gt;And that’s it!&lt;/p&gt;</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">&lt;p&gt;We held the first &lt;a href="https://hdi-network.org"&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.&lt;/p&gt;</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">&lt;p&gt;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 &amp;quot;&lt;a href="https://anil.recoil.org/notes/the-year-in-ocamllabs"&gt;Reviewing the first year of OCaml Labs in 2013&lt;/a&gt;&amp;quot; roundup as well that I published later in the year.&lt;/p&gt;</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">&lt;p&gt;The &lt;a href="https://cufp.org"&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.&lt;/p&gt;</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;p&gt;&lt;a class="contact" href="https://github.com/samoht"&gt;Thomas Gazagnaire&lt;/a&gt; just announced the availability of the 25951 25951 &lt;a href="http://opam.ocamlpro.com"&gt;OPAM&lt;/a&gt; beta release. This has been a huge 25952 25952 amount of work for him and &lt;a href="http://louis.gesbert.fr/"&gt;Louis&lt;/a&gt;, so I’m 25953 25953 excited to see this release!&lt;/p&gt; ··· 25996 25996 &lt;code&gt;opam-admin stats&lt;/code&gt; over the latest package repository to show 25997 25997 various growth curves.&lt;/p&gt; 25998 25998 &lt;/li&gt; 25999 - &lt;/ul&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2013-oud-platform-1</id><summary type="html">&lt;p&gt;Paper on the OCaml Platform at the OCaml Workshop 2013&lt;/p&gt; 25999 + &lt;/ul&gt;</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">&lt;p&gt;Paper on the OCaml Platform at the OCaml Workshop 2013&lt;/p&gt; 26000 26000 26001 26001 &lt;blockquote class="paper noquote"&gt; 26002 26002 &lt;div class="paper-info"&gt; ··· 26007 26007 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2013-oud-platform.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26008 26008 &lt;/p&gt; 26009 26009 &lt;/div&gt; 26010 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2013-ocamlot-1</id><summary type="html">&lt;p&gt;Presented an OCaml ecosystem testing system&lt;/p&gt; 26010 + &lt;/blockquote&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">&lt;p&gt;Presented an OCaml ecosystem testing system&lt;/p&gt; 26011 26011 26012 26012 &lt;blockquote class="paper noquote"&gt; 26013 26013 &lt;div class="paper-info"&gt; ··· 26019 26019 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2013-ocamlot.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26020 26020 &lt;/p&gt; 26021 26021 &lt;/div&gt; 26022 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2013-foci-signposts-1</id><summary type="html">&lt;p&gt;Paper on DNSSEC-based Signpost servers for better p2p communications at USENIX FOCI&lt;/p&gt; 26022 + &lt;/blockquote&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">&lt;p&gt;Paper on DNSSEC-based Signpost servers for better p2p communications at USENIX FOCI&lt;/p&gt; 26023 26023 26024 26024 &lt;blockquote class="paper noquote"&gt; 26025 26025 &lt;div class="paper-info"&gt; ··· 26031 26031 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2013-foci-signposts.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26032 26032 &lt;/p&gt; 26033 26033 &lt;/div&gt; 26034 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/762795c5-9f3b-499b-a054-b2af37d1ddd2-1</id><summary type="html">&lt;p&gt;Mirage Developer Preview 1 screencast&lt;/p&gt; 26034 + &lt;/blockquote&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">&lt;p&gt;Mirage Developer Preview 1 screencast&lt;/p&gt; 26035 26035 26036 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/grepping-every-known-ocaml-package-source</id><summary type="html">&lt;p&gt;A regular question that comes up from OCaml developers is how to use 26036 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;A regular question that comes up from OCaml developers is how to use 26037 26037 &lt;a href="http://opam.ocaml.org"&gt;OPAM&lt;/a&gt; as a hypothesis testing tool against the 26038 26038 known corpus of OCaml source code. In other words: can we quickly and 26039 26039 simply run &lt;code&gt;grep&lt;/code&gt; over every source archive in OPAM? So that’s the topic ··· 26061 26061 669M . 26062 26062 $ ls | wc -l 26063 26063 2092 26064 - &lt;/code&gt;&lt;/pre&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2013-asplos-mirage-1</id><summary type="html">&lt;p&gt;The first paper on unikernels is pubished at ASPLOS 2013&lt;/p&gt; 26064 + &lt;/code&gt;&lt;/pre&gt;</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">&lt;p&gt;The first paper on unikernels is pubished at ASPLOS 2013&lt;/p&gt; 26065 26065 26066 26066 &lt;blockquote class="paper noquote"&gt; 26067 26067 &lt;div class="paper-info"&gt; ··· 26074 26074 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2013-asplos-mirage.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26075 26075 &lt;/p&gt; 26076 26076 &lt;/div&gt; 26077 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/de13-dataware-1</id><summary type="html">&lt;p&gt;Paper on dataware computing in the digital economy&lt;/p&gt; 26077 + &lt;/blockquote&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">&lt;p&gt;Paper on dataware computing in the digital economy&lt;/p&gt; 26078 26078 26079 26079 &lt;blockquote class="paper noquote"&gt; 26080 26080 &lt;div class="paper-info"&gt; ··· 26085 26085 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/de13-dataware.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26086 26086 &lt;/p&gt; 26087 26087 &lt;/div&gt; 26088 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/concurrent-revisions</id><summary type="html">&lt;h1&gt;Concurrent revisions for OCaml&lt;/h1&gt; 26088 + &lt;/blockquote&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">&lt;h1&gt;Concurrent revisions for OCaml&lt;/h1&gt; 26089 26089 &lt;p&gt;This is an idea proposed in 2013 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Dimitar Popov&lt;/a&gt;.&lt;/p&gt; 26090 26090 &lt;p&gt;The biggest challenge when using parallel programming is typically how to keep 26091 26091 track of the side effects of computations that are executed in parallel and ··· 26125 26125 &lt;p&gt;The dissertation &lt;a href="https://github.com/dpp23/ocaml_revisions/"&gt;PDF is available&lt;/a&gt; 26126 26126 publically along with the &lt;a href="https://github.com/dpp23/ocaml_revisions/"&gt;source code to the prototype 26127 26127 library&lt;/a&gt; which implemented a logging 26128 - and chat server to demonstrate the use of concurrent revisions.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2012-conext-pvtcp-1</id><summary type="html">&lt;p&gt;Paper on extending TCP in a backwards compatible way at CoNeXT 2013&lt;/p&gt; 26128 + and chat server to demonstrate the use of concurrent revisions.&lt;/p&gt;</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">&lt;p&gt;Paper on extending TCP in a backwards compatible way at CoNeXT 2013&lt;/p&gt; 26129 26129 26130 26130 &lt;blockquote class="paper noquote"&gt; 26131 26131 &lt;div class="paper-info"&gt; ··· 26138 26138 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2012-conext-pvtcp.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26139 26139 &lt;/p&gt; 26140 26140 &lt;/div&gt; 26141 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/announcing-ocaml-labs</id><summary type="html">&lt;p&gt;I’m very excited to announce &lt;a href="https://anil.recoil.org/projects/ocamllabs"&gt;OCaml Labs&lt;/a&gt;, the latest project 26141 + &lt;/blockquote&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">&lt;p&gt;I’m very excited to announce &lt;a href="https://anil.recoil.org/projects/ocamllabs"&gt;OCaml Labs&lt;/a&gt;, the latest project 26142 26142 to hit the Cambridge Computer Lab. As anyone that hangs out near me 26143 26143 probably realises, I very much enjoy functional programming. My weapon 26144 26144 of choice tends to be &lt;a href="http://www.ocaml-lang.org"&gt;OCaml&lt;/a&gt;, as it ··· 26254 26254 &lt;a href="http://www.cl.cam.ac.uk/~jac22/"&gt;Jon&lt;/a&gt; soon if you are interested in 26255 26255 applying! There’s some more information available on the &lt;a href="http://www.cl.cam.ac.uk/projects/ocamllabs/collaboration.html"&gt;OCaml Labs 26256 26256 pages&lt;/a&gt; 26257 - about options.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/breaking-up-mirageos</id><summary type="html">&lt;p&gt;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 &amp;quot;stub domains&amp;quot; for Xen using MirageOS.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/dd8b1f58-c43c-4422-9963-d3a980529e57-1</id><summary type="html">&lt;p&gt;Recording of the OCaml Labs announcement&lt;/p&gt; 26257 + about options.&lt;/p&gt;</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">&lt;p&gt;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 &amp;quot;stub domains&amp;quot; for Xen using MirageOS.&lt;/p&gt;</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">&lt;p&gt;Recording of the OCaml Labs announcement&lt;/p&gt; 26258 26258 26259 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2012-sigcomm-signposts-1</id><summary type="html">&lt;p&gt;Demoed the Signposts DNSSEC system at SIGCOMM&lt;/p&gt; 26259 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;Demoed the Signposts DNSSEC system at SIGCOMM&lt;/p&gt; 26260 26260 26261 26261 &lt;blockquote class="paper noquote"&gt; 26262 26262 &lt;div class="paper-info"&gt; ··· 26268 26268 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2012-sigcomm-signposts.bib"&gt;BIB&lt;/a&gt; 26269 26269 &lt;/p&gt; 26270 26270 &lt;/div&gt; 26271 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2012-oud-xen-1</id><summary type="html">&lt;p&gt;Paper on programming the Xen cloud using OCaml at the OCaml Workshop&lt;/p&gt; 26271 + &lt;/blockquote&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">&lt;p&gt;Paper on programming the Xen cloud using OCaml at the OCaml Workshop&lt;/p&gt; 26272 26272 26273 26273 &lt;blockquote class="paper noquote"&gt; 26274 26274 &lt;div class="paper-info"&gt; ··· 26279 26279 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2012-oud-xen.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26280 26280 &lt;/p&gt; 26281 26281 &lt;/div&gt; 26282 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2012-ahans-soapp-1</id><summary type="html">&lt;p&gt;Paper on control flow analysis to break up applications into compartments&lt;/p&gt; 26282 + &lt;/blockquote&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">&lt;p&gt;Paper on control flow analysis to break up applications into compartments&lt;/p&gt; 26283 26283 26284 26284 &lt;blockquote class="paper noquote"&gt; 26285 26285 &lt;div class="paper-info"&gt; ··· 26292 26292 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2012-ahans-soapp.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26293 26293 &lt;/p&gt; 26294 26294 &lt;/div&gt; 26295 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2012-iccsdn-mirageflow-1</id><summary type="html">&lt;p&gt;Paper on using MirageOS for better SDN infrastructure with OpenFlow&lt;/p&gt; 26295 + &lt;/blockquote&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">&lt;p&gt;Paper on using MirageOS for better SDN infrastructure with OpenFlow&lt;/p&gt; 26296 26296 26297 26297 &lt;blockquote class="paper noquote"&gt; 26298 26298 &lt;div class="paper-info"&gt; ··· 26305 26305 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2012-iccsdn-mirageflow.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26306 26306 &lt;/p&gt; 26307 26307 &lt;/div&gt; 26308 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2012-mpm-caware-1</id><summary type="html">&lt;p&gt;Paper on our use of data lockers within Cambridge to incentivise more green commuting patterns&lt;/p&gt; 26308 + &lt;/blockquote&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">&lt;p&gt;Paper on our use of data lockers within Cambridge to incentivise more green commuting patterns&lt;/p&gt; 26309 26309 26310 26310 &lt;blockquote class="paper noquote"&gt; 26311 26311 &lt;div class="paper-info"&gt; ··· 26318 26318 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2012-mpm-caware.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26319 26319 &lt;/p&gt; 26320 26320 &lt;/div&gt; 26321 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2012-resolve-fable-1</id><summary type="html">&lt;p&gt;Paper on a new design for reconfigurable IO that copes with heterogenous software/hardware&lt;/p&gt; 26321 + &lt;/blockquote&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">&lt;p&gt;Paper on a new design for reconfigurable IO that copes with heterogenous software/hardware&lt;/p&gt; 26322 26322 26323 26323 &lt;blockquote class="paper noquote"&gt; 26324 26324 &lt;div class="paper-info"&gt; ··· 26329 26329 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2012-resolve-fable.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26330 26330 &lt;/p&gt; 26331 26331 &lt;/div&gt; 26332 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/dreamplug-debian-and-ocaml</id><summary type="html">&lt;p&gt;I’ve been meaning to play with &lt;a href="http://www.plugcomputer.org/"&gt;Plug 26332 + &lt;/blockquote&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">&lt;p&gt;I’ve been meaning to play with &lt;a href="http://www.plugcomputer.org/"&gt;Plug 26333 26333 Computers&lt;/a&gt; for some time now, as I need a 26334 26334 low-power embedded system around the house. I recently bought a &lt;a href="http://soekris.com/products/net6501.html"&gt;Soekris 26335 26335 Net6501&lt;/a&gt; (a pretty powerful ··· 26450 26450 &lt;p&gt;Incidentally, if anyone is interested in working on a 26451 26451 &lt;a href="http://openmirage.org"&gt;Mirage&lt;/a&gt; port to ARM as an internship in the 26452 26452 &lt;a href="http://www.cl.cam.ac.uk/research/srg/netos/"&gt;Cambridge Computer Lab&lt;/a&gt;, 26453 - do get in touch with me...&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/ocamllabs</id><summary type="html">&lt;div&gt; 26453 + do get in touch with me...&lt;/p&gt;</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">&lt;div&gt; 26454 26454 &lt;h1&gt;OCaml Labs&lt;/h1&gt; 26455 26455 &lt;p&gt;&lt;p&gt;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.&lt;/p&gt; 26456 26456 &lt;h2&gt;Background&lt;/h2&gt; ··· 26522 26522 &lt;p&gt;All of those groups merged into one unified Tarides in 2022 (&lt;a href="https://tarides.com/blog/2022-01-27-ocaml-labs-joins-tarides/"&gt;OCLC&lt;/a&gt; and &lt;a href="https://segfault.systems"&gt;Segfault&lt;/a&gt;), making it easier to manage a growing community of maintainers. There's really exciting work happening there to continue the upstreaming of the 26523 26523 multicore OCaml features into mainline OCaml, making unikernels and MirageOS ever more practical and robust to deploy, and shipping end-to-end Windows support in the OCaml toolchain. You can read about all this and more on the &lt;a href="https://tarides.com/blog/"&gt;Tarides blog&lt;/a&gt;, which is regularly updated with news on their projects.&lt;/p&gt; 26524 26524 &lt;/p&gt; 26525 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/macro-micro-benchmarking</id><summary type="html">&lt;h1&gt;Macro- and Micro-benchmarking in OCaml&lt;/h1&gt; 26525 + &lt;/div&gt;</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">&lt;h1&gt;Macro- and Micro-benchmarking in OCaml&lt;/h1&gt; 26526 26526 &lt;p&gt;This is an idea proposed in 2012 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Sebastian Funk&lt;/a&gt;.&lt;/p&gt; 26527 26527 &lt;p&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:&lt;/p&gt; 26528 26528 &lt;ol&gt; ··· 26559 26559 online anywhere. The source code (a CamlP4 event tracer) has been superceded by modern 26560 26560 event tracing.&lt;/p&gt; 26561 26561 &lt;p&gt;&lt;a class="contact" href="https://anil.recoil.org/"&gt;Sebastian Funk&lt;/a&gt; went on to work at Jane Street on OCaml after his project, and one 26562 - 2019 talk on his subsequent work can be seen below.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2011-cufp-scribe-1</id><summary type="html">&lt;p&gt;Published the scribe's report for CUFP 2011&lt;/p&gt; 26562 + 2019 talk on his subsequent work can be seen below.&lt;/p&gt;</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">&lt;p&gt;Published the scribe's report for CUFP 2011&lt;/p&gt; 26563 26563 26564 26564 &lt;blockquote class="paper noquote"&gt; 26565 26565 &lt;div class="paper-info"&gt; ··· 26571 26571 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2011-cufp-scribe.bib"&gt;BIB&lt;/a&gt; 26572 26572 &lt;/p&gt; 26573 26573 &lt;/div&gt; 26574 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/raft-consensus</id><summary type="html">&lt;h1&gt;Analysis of the Raft Consensus Protocol&lt;/h1&gt; 26574 + &lt;/blockquote&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">&lt;h1&gt;Analysis of the Raft Consensus Protocol&lt;/h1&gt; 26575 26575 &lt;p&gt;This is an idea proposed in 2012 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Heidi Howard&lt;/a&gt;.&lt;/p&gt; 26576 26576 &lt;p&gt;The Paxos algorithm, despite being synonymous with distributed consensus for 26577 26577 a decade, is famously difficult to reason about and implement due to its ··· 26598 26598 &lt;p&gt;The dissertation is available as &lt;a href="https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-857.html"&gt;UCAM-CL-TR-857&lt;/a&gt; in the Cambridge Computer Laboratory technical report series. &lt;a class="contact" href="https://anil.recoil.org/"&gt;Heidi Howard&lt;/a&gt; continued work on Raft subsequent to submitting this project and published it later in the year as &lt;a href="https://anil.recoil.org/papers/2014-sigops-raft"&gt;Raft Refloated: Do We Have Consensus?&lt;/a&gt;.&lt;/p&gt; 26599 26599 &lt;p&gt;You can watch &lt;a class="contact" href="https://anil.recoil.org/"&gt;Heidi Howard&lt;/a&gt; talk about her work in a Computerphile video from 2016:&lt;/p&gt; 26600 26600 26601 - &lt;p&gt;&lt;a class="contact" href="https://anil.recoil.org/"&gt;Heidi Howard&lt;/a&gt; also continued to work on Raft and distributed consensus later:&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/7d949597-b864-4ada-ab1a-81ff8c0463e2-1</id><summary type="html">&lt;p&gt;At the OCaml Meeting 2011 speaking about MirageOS&lt;/p&gt; 26601 + &lt;p&gt;&lt;a class="contact" href="https://anil.recoil.org/"&gt;Heidi Howard&lt;/a&gt; also continued to work on Raft and distributed consensus later:&lt;/p&gt;</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">&lt;p&gt;At the OCaml Meeting 2011 speaking about MirageOS&lt;/p&gt; 26602 26602 26603 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/cufp-2011-mirage</id><summary type="html">&lt;p&gt;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.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/mips-llvm</id><summary type="html">&lt;h1&gt;Extending 64-bit MIPS support for LLVM&lt;/h1&gt; 26603 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;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.&lt;/p&gt;</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">&lt;h1&gt;Extending 64-bit MIPS support for LLVM&lt;/h1&gt; 26604 26604 &lt;p&gt;This is an idea proposed in 2011 as a good starter project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://github.com/wmorland"&gt;William Morland&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="http://www.watson.org/~robert/"&gt;Robert M Watson&lt;/a&gt;.&lt;/p&gt; 26605 26605 &lt;p&gt;In the summer of 2011, we hosted &lt;a class="contact" href="https://github.com/wmorland"&gt;William Morland&lt;/a&gt; to do an internship in the Computer Lab just as the 26606 26606 &lt;a href="https://www.cl.cam.ac.uk/research/security/ctsrd/"&gt;CTSRD/CHERI&lt;/a&gt; project kicked off. ··· 26611 26611 LLVM/MIPS backend, filling in missing instructions and finding bugs via exercising the test suite. 26612 26612 His LLVM repository is up at &lt;a href="https://github.com/wmorland/LLVM-Mips"&gt;GitHub&lt;/a&gt;, along with 26613 26613 the discussions from back in 2011 on the &lt;a href="https://discourse.llvm.org/t/mips-target-instruction-set/20373"&gt;llvm-dev&lt;/a&gt; lists. 26614 - There's also a nice poster of this work from the &lt;a href="https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/20111108-ctsrd-pimeeting-poster.pdf"&gt;2011 CTSRD project meeting&lt;/a&gt;!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/soapp-privgrind</id><summary type="html">&lt;h1&gt;Control flow analysis for privilege separation&lt;/h1&gt; 26614 + There's also a nice poster of this work from the &lt;a href="https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/20111108-ctsrd-pimeeting-poster.pdf"&gt;2011 CTSRD project meeting&lt;/a&gt;!&lt;/p&gt;</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">&lt;h1&gt;Control flow analysis for privilege separation&lt;/h1&gt; 26615 26615 &lt;p&gt;This is an idea proposed in 2011 as a good starter project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://uk.linkedin.com/in/hardingcj"&gt;Chris Harding&lt;/a&gt; and &lt;a class="contact" href="https://research.google/people/ross-mcilroy/"&gt;Ross McIlroy&lt;/a&gt;. It was co-supervised with &lt;a class="contact" href="http://www.watson.org/~robert/"&gt;Robert M Watson&lt;/a&gt;.&lt;/p&gt; 26616 26616 &lt;p&gt;In the summer of 2011, we hosted &lt;a class="contact" href="https://uk.linkedin.com/in/hardingcj"&gt;Chris Harding&lt;/a&gt; and &lt;a class="contact" href="https://research.google/people/ross-mcilroy/"&gt;Ross McIlroy&lt;/a&gt; to do an 26617 26617 internship in the Computer Lab working just as the ··· 26629 26629 &lt;p&gt;The results of this work only got partly written up, despite being very cool 26630 26630 (we all got busy with other projects). There is a workshop paper on &lt;a href="https://anil.recoil.org/papers/2012-ahans-soapp"&gt;Exploring Compartmentalisation Hypotheses with SOAAP&lt;/a&gt; 26631 26631 which covers some of the work, and the wider CHERI/CTSRD project has done plenty 26632 - more since.&lt;/p&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/2011-dynamics-ml-1" rel="alternate"></link><published>2011-07-01T01:00:00Z</published><updated>2011-07-01T01:00:00Z</updated><author><name>Anil&lt;</name></author><id>https://anil.recoil.org/news/2011-dynamics-ml-1</id><summary type="html">&lt;p&gt;Published dyntype at the Workshop on Generative Technologies&lt;/p&gt; 26632 + more since.&lt;/p&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/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">&lt;p&gt;Published dyntype at the Workshop on Generative Technologies&lt;/p&gt; 26633 26633 26634 26634 &lt;blockquote class="paper noquote"&gt; 26635 26635 &lt;div class="paper-info"&gt; ··· 26642 26642 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2011-dynamics-ml.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26643 26643 &lt;/p&gt; 26644 26644 &lt;/div&gt; 26645 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2010-dyntype-wgt-1</id><summary type="html">&lt;p&gt;Paper on statically typed value persistence for OCaml in ENTCS 2011&lt;/p&gt; 26645 + &lt;/blockquote&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">&lt;p&gt;Paper on statically typed value persistence for OCaml in ENTCS 2011&lt;/p&gt; 26646 26646 26647 26647 &lt;blockquote class="paper noquote"&gt; 26648 26648 &lt;div class="paper-info"&gt; ··· 26655 26655 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2010-dyntype-wgt.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26656 26656 &lt;/p&gt; 26657 26657 &lt;/div&gt; 26658 - &lt;/blockquote&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>Anil&lt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/datacaml-with-ciel</id><summary type="html">&lt;p&gt;Distributed programming frameworks like 26658 + &lt;/blockquote&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">&lt;p&gt;Distributed programming frameworks like 26659 26659 &lt;a href="http://wiki.apache.org/hadoop"&gt;Hadoop&lt;/a&gt; and 26660 26660 &lt;a href="http://research.microsoft.com/en-us/projects/dryad/"&gt;Dryad&lt;/a&gt; are popular 26661 26661 for performing computation over large amounts of data. The reason is ··· 26897 26897 &lt;a href="https://twitter.com/#!/chrissmowton"&gt;Chris&lt;/a&gt; and 26898 26898 &lt;a href="http://www.cl.cam.ac.uk/~ms705"&gt;Malte&lt;/a&gt; for answering my incessant CIEL 26899 26899 questions while writing this post! Remember that DataCaml is a work in 26900 - progress and a research prototype, and feedback is most welcome.&lt;/em&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2011-fccm-cloudfpga-1</id><summary type="html">&lt;p&gt;Paper on what a Xen+FPGA cloud would look like at FCCM&lt;/p&gt; 26900 + progress and a research prototype, and feedback is most welcome.&lt;/em&gt;&lt;/p&gt;</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">&lt;p&gt;Paper on what a Xen+FPGA cloud would look like at FCCM&lt;/p&gt; 26901 26901 26902 26902 &lt;blockquote class="paper noquote"&gt; 26903 26903 &lt;div class="paper-info"&gt; ··· 26910 26910 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2011-fccm-cloudfpga.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 26911 26911 &lt;/p&gt; 26912 26912 &lt;/div&gt; 26913 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/srg-fp</id><summary type="html">&lt;p&gt;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.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/ocaml-users-group</id><summary type="html">&lt;p&gt;I'm at the &lt;a href="https://forge.ocamlcore.org/plugins/mediawiki/wiki/ocaml-meeting/index.php/OCamlMeeting2011"&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"&gt;Russia&lt;/a&gt; to &lt;a href="http://ashishagarwal.org/about/"&gt;New York&lt;/a&gt; as well as all the Europeans!&lt;/p&gt; 26913 + &lt;/blockquote&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">&lt;p&gt;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.&lt;/p&gt;</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">&lt;p&gt;I'm at the &lt;a href="https://forge.ocamlcore.org/plugins/mediawiki/wiki/ocaml-meeting/index.php/OCamlMeeting2011"&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"&gt;Russia&lt;/a&gt; to &lt;a href="http://ashishagarwal.org/about/"&gt;New York&lt;/a&gt; as well as all the Europeans!&lt;/p&gt; 26914 26914 &lt;h3&gt;Js_of_ocaml&lt;/h3&gt; 26915 26915 &lt;p&gt;First up was &lt;a href="http://www.lsv.ens-cachan.fr/~chambart/"&gt;Pierre Chambart&lt;/a&gt; talking about the &lt;a href="http://ocsigen.org/js_of_ocaml/"&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"&gt;ocamljs&lt;/a&gt;) that require patching the compiler tool-chain. Javascript objects are mapped to dynamic OCaml objects via a light-weight &lt;code&gt;##&lt;/code&gt; operator, so you can simply write code like:&lt;/p&gt; 26916 26916 &lt;pre&gt;&lt;code&gt; class type window = object ··· 27026 27026 &lt;p&gt;&lt;figure class="image-center"&gt;&lt;img alt="" class="content-image" src="https://anil.recoil.org/images/sf-ocaml.webp" title="" /&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt; 27027 27027 &lt;/p&gt; 27028 27028 &lt;p&gt;Of course, not all of the OCaml community action is in France. The ever-social &lt;a href="http://www.twitter.com/jakedonham"&gt;Jake Donham&lt;/a&gt; organised the First Ever San Francisco User Group that I attended when I was over there a few weeks ago. Ok, admittedly it was mainly French people there too, but it was excellent to meet up with &lt;a href="http://www.linkedin.com/pub/mika-illouz/0/a02/7b4"&gt;Mika&lt;/a&gt;, &lt;a href="http://martin.jambon.free.fr/"&gt;Martin&lt;/a&gt;, &lt;a href="http://www.linkedin.com/pub/julien-verlaguet/20/10a/b57"&gt;Julien&lt;/a&gt;, &lt;a href="http://fr.linkedin.com/in/henribinsztok"&gt;Henri&lt;/a&gt; and of course Jake when over there.&lt;/p&gt; 27029 - &lt;p&gt;We should definitely have more of these fun local meetups, and a number of other OCaml hackers I mentioned it to want to attend next time in the Bay Area, if only to cry into their drinks about the state of multi-core... &lt;em&gt;just kidding&lt;/em&gt;, &lt;a href="http://www.ocamlpro.com"&gt;OCamlPro&lt;/a&gt; is hard at work fixing that after all :-)&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2011-nsdi-ciel-1</id><summary type="html">&lt;p&gt;Paper on CIEL, a distributed dataflow engine, at USENIX NSDI 2011&lt;/p&gt; 27029 + &lt;p&gt;We should definitely have more of these fun local meetups, and a number of other OCaml hackers I mentioned it to want to attend next time in the Bay Area, if only to cry into their drinks about the state of multi-core... &lt;em&gt;just kidding&lt;/em&gt;, &lt;a href="http://www.ocamlpro.com"&gt;OCamlPro&lt;/a&gt; is hard at work fixing that after all :-)&lt;/p&gt;</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">&lt;p&gt;Paper on CIEL, a distributed dataflow engine, at USENIX NSDI 2011&lt;/p&gt; 27030 27030 27031 27031 &lt;blockquote class="paper noquote"&gt; 27032 27032 &lt;div class="paper-info"&gt; ··· 27038 27038 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2011-nsdi-ciel.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27039 27039 &lt;/p&gt; 27040 27040 &lt;/div&gt; 27041 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2011-icdcn-droplets-1</id><summary type="html">&lt;p&gt;Paper on a vision for a semi-federated cloud for personal data at ICDCN&lt;/p&gt; 27041 + &lt;/blockquote&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">&lt;p&gt;Paper on a vision for a semi-federated cloud for personal data at ICDCN&lt;/p&gt; 27042 27042 27043 27043 &lt;blockquote class="paper noquote"&gt; 27044 27044 &lt;div class="paper-info"&gt; ··· 27049 27049 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2011-icdcn-droplets.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27050 27050 &lt;/p&gt; 27051 27051 &lt;/div&gt; 27052 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/xmpp-group-comms</id><summary type="html">&lt;h1&gt;Simulating XMPP Group Communication&lt;/h1&gt; 27052 + &lt;/blockquote&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">&lt;h1&gt;Simulating XMPP Group Communication&lt;/h1&gt; 27053 27053 &lt;p&gt;This is an idea proposed in 2011 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://farhanmannan.com"&gt;Farhān Mannān&lt;/a&gt;.&lt;/p&gt; 27054 27054 &lt;p&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.&lt;/p&gt; 27055 27055 &lt;p&gt;This project aims to build an OCaml-based simulator (using the &lt;code&gt;ocamlgraph&lt;/code&gt; library) to build an XMPP protocol simulator that can model the networks, agents and protocols involved in XMPP-based group communication. The project is twofold and modular: the core is a simulator which is used to investigate the properties of gossip protocols acting on different graph topologies. The simulator can be parameterised on an RPC implementation so that rather than using simulated graphs, it can monitor the performance of the algorithms on real networks as well. An attempted extension is implementation of a functional OCaml RPC abstraction over XMPP which would be compatible with the simulator and be usable with &lt;a href="https://mirage.io"&gt;MirageOS&lt;/a&gt;.&lt;/p&gt; ··· 27062 27062 &lt;h2&gt;Links&lt;/h2&gt; 27063 27063 &lt;p&gt;The source code to the &lt;a href="https://github.com/f6m6/gossip"&gt;OCaml XMPP simulator&lt;/a&gt; 27064 27064 is available publically. The dissertation PDF isn't available publically but 27065 - should be in the Cambridge Computer Lab archives somewhere.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/functional-imap</id><summary type="html">&lt;h1&gt;Functional ABNF parser generators&lt;/h1&gt; 27065 + should be in the Cambridge Computer Lab archives somewhere.&lt;/p&gt;</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">&lt;h1&gt;Functional ABNF parser generators&lt;/h1&gt; 27066 27066 &lt;p&gt;This is an idea proposed in 2011 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://github.com/ns476"&gt;Nicholas Skehin&lt;/a&gt;.&lt;/p&gt; 27067 27067 &lt;p&gt;Writing internet servers is a difficult proposition. On some levels it seems as 27068 27068 though we haven’t made much progress since the 1970s, as popular servers such as ··· 27094 27094 &lt;p&gt;The dissertation PDF isn't available publically but 27095 27095 should be in the Cambridge Computer Lab archives somewhere. 27096 27096 The ABNFComp tool that was built is also available on request 27097 - from the author, but not published.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/43ab3ae0-9ffc-474f-aa02-3cc1139f54d1-1</id><summary type="html">&lt;p&gt;Talk on building the Xen toolstack using OCaml&lt;/p&gt; 27097 + from the author, but not published.&lt;/p&gt;</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">&lt;p&gt;Talk on building the Xen toolstack using OCaml&lt;/p&gt; 27098 27098 27099 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/be2f049b-174a-4e5b-b30e-0319793487c7-1</id><summary type="html">&lt;p&gt;At LinkedIn giving tech talk about Mirage&lt;/p&gt; 27099 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;At LinkedIn giving tech talk about Mirage&lt;/p&gt; 27100 27100 27101 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/mirage-self-hosting</id><summary type="html">&lt;p&gt;I managed to get early &lt;a href="https://mirage.io"&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"&gt;TCP/IP&lt;/a&gt; stack for ages.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/de10-perscon-1</id><summary type="html">&lt;p&gt;Paper on personal containers for data management at the UK Digital Economy meeting&lt;/p&gt; 27101 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt;</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">&lt;p&gt;I managed to get early &lt;a href="https://mirage.io"&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"&gt;TCP/IP&lt;/a&gt; stack for ages.&lt;/p&gt;</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">&lt;p&gt;Paper on personal containers for data management at the UK Digital Economy meeting&lt;/p&gt; 27102 27102 27103 27103 &lt;blockquote class="paper noquote"&gt; 27104 27104 &lt;div class="paper-info"&gt; ··· 27110 27110 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/de10-perscon.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27111 27111 &lt;/p&gt; 27112 27112 &lt;/div&gt; 27113 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2010-icfp-xen-1</id><summary type="html">&lt;p&gt;Paper on our experiences with writing the Xen control stack in OCaml at ICFP 2010&lt;/p&gt; 27113 + &lt;/blockquote&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">&lt;p&gt;Paper on our experiences with writing the Xen control stack in OCaml at ICFP 2010&lt;/p&gt; 27114 27114 27115 27115 &lt;blockquote class="paper noquote"&gt; 27116 27116 &lt;div class="paper-info"&gt; ··· 27123 27123 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2010-icfp-xen.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27124 27124 &lt;/p&gt; 27125 27125 &lt;/div&gt; 27126 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/4957325f-d7f5-4a29-95b6-a1e1f61ea5cf-1</id><summary type="html">&lt;p&gt;At HotCloud for the first talk about MirageOS&lt;/p&gt; 27126 + &lt;/blockquote&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">&lt;p&gt;At HotCloud for the first talk about MirageOS&lt;/p&gt; 27127 27127 27128 - &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&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/2010-hotcloud-lamp-1" rel="alternate"></link><published>2010-06-01T01:00:00Z</published><updated>2010-06-01T01:00:00Z</updated><author><name>Anil&lt;</name></author><id>https://anil.recoil.org/news/2010-hotcloud-lamp-1</id><summary type="html">&lt;p&gt;Workshop paper on the early MirageOS architecture and evaluation at HotCloud 2010&lt;/p&gt; 27128 + &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&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/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">&lt;p&gt;Workshop paper on the early MirageOS architecture and evaluation at HotCloud 2010&lt;/p&gt; 27129 27129 27130 27130 &lt;blockquote class="paper noquote"&gt; 27131 27131 &lt;div class="paper-info"&gt; ··· 27137 27137 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2010-hotcloud-lamp.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27138 27138 &lt;/p&gt; 27139 27139 &lt;/div&gt; 27140 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/anil-phd-thesis-2</id><summary type="html">&lt;p&gt;My PhD thesis is now also published as a print book&lt;/p&gt; 27140 + &lt;/blockquote&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">&lt;p&gt;My PhD thesis is now also published as a print book&lt;/p&gt; 27141 27141 27142 27142 &lt;blockquote class="paper noquote"&gt; 27143 27143 &lt;div class="paper-info"&gt; ··· 27150 27150 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/anil-phd-thesis.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27151 27151 &lt;/p&gt; 27152 27152 &lt;/div&gt; 27153 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/yurts-for-digital-nomads</id><summary type="html">&lt;p&gt;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"&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/"&gt;iPhone&lt;/a&gt; or Find My iPhone &lt;a href="http://github.com/avsm/perscon/blob/master/appengine/perscon/drivers/fmi.py"&gt;GPS traces&lt;/a&gt; traces, it doesn’t work so well with my gigabytes of photographs or decades of e-mail.&lt;/p&gt; 27153 + &lt;/blockquote&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">&lt;p&gt;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"&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/"&gt;iPhone&lt;/a&gt; or Find My iPhone &lt;a href="http://github.com/avsm/perscon/blob/master/appengine/perscon/drivers/fmi.py"&gt;GPS traces&lt;/a&gt; traces, it doesn’t work so well with my gigabytes of photographs or decades of e-mail.&lt;/p&gt; 27154 27154 &lt;p&gt;This confirmed our earlier intuition that there is no one perfect solution for personal data handling; instead, we need to &lt;em&gt;embrace diversity&lt;/em&gt; and construct an infrastructure that can cope with change over the coming decades. Mobile programming has changed beyond recognition in just a few years, and cloud providers are specialising in different ways (e.g. &lt;a href="http://www.picloud.com/"&gt;PiCloud&lt;/a&gt; for simple compute, or &lt;a href="http://aws.amazon.com"&gt;EC2&lt;/a&gt; for fancy services like elastic &lt;a href="http://aws.amazon.com/elasticloadbalancing/"&gt;load balancing&lt;/a&gt;).&lt;/p&gt; 27155 27155 &lt;p&gt;So to recognise this, we are building components that all interoperate with your personal data, keep it secure, and ensure it persists for more than a few years. &lt;a class="contact" href="https://cs.brown.edu/people/malte/"&gt;Malte Schwarzkopf&lt;/a&gt; came up with the term &amp;quot;digital &lt;a href="http://en.wikipedia.org/wiki/Yurt"&gt;yurts&lt;/a&gt;&amp;quot;, and it's stuck. We’ve written a &lt;a href="http://perscon.net/papers/digital-yurts-draft1.pdf"&gt;draft paper&lt;/a&gt; about it, and would love to hear your comments and feedback on the approach.&lt;/p&gt; 27156 27156 &lt;p&gt;&lt;img alt="" class="content-image" src="https://anil.recoil.org/images/nomads-diagram.webp" title="" /&gt; ··· 27185 27185 &lt;p&gt;If you’re interested, join our &lt;a href="http://perscon.net/contact.html"&gt;group&lt;/a&gt; 27186 27186 or contact &lt;a class="contact" href="https://anil.recoil.org"&gt;Anil Madhavapeddy&lt;/a&gt; directly. At this stage, you 27187 27187 need desire and the ability to hack code, but things are settling down 27188 - over the next few months...&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/uiprototype</id><summary type="html">&lt;p&gt;We’ve been &lt;a href="http://github.com/avsm/perscon"&gt;hacking&lt;/a&gt; away on fleshing out the &lt;a href="http://code.google.com/appengine"&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/"&gt;extjs&lt;/a&gt;.&lt;/p&gt; 27188 + over the next few months...&lt;/p&gt;</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">&lt;p&gt;We’ve been &lt;a href="http://github.com/avsm/perscon"&gt;hacking&lt;/a&gt; away on fleshing out the &lt;a href="http://code.google.com/appengine"&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/"&gt;extjs&lt;/a&gt;.&lt;/p&gt; 27189 27189 &lt;p&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 follow-up as the format settles.&lt;/p&gt; 27190 27190 &lt;p&gt;&lt;figure class="image-center"&gt;&lt;img alt="" class="content-image" src="https://anil.recoil.org/images/perscon-extjs.webp" title="" /&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt; 27191 27191 &lt;/p&gt; ··· 27197 27197 &lt;li&gt;&lt;a href="http://github.com/avsm/perscon/tree/master/plugins/MacOS-SyncServices/"&gt;SyncServices&lt;/a&gt; hooks into the MacOS X &lt;a href="http://developer.apple.com/macosx/syncservices.html"&gt;sync framework&lt;/a&gt; and initially subscribes to Address Book updates. This seems to be the first open-source sync alternative to the expensive Mobile Me, as far as I can tell. I’m planning to expand this to also subscribe to the full set of sync information (e.g. calendars).&lt;/li&gt; 27198 27198 &lt;/ul&gt; 27199 27199 &lt;p&gt;I'm switching tacks briefly; we received an &lt;a href="http://aws.amazon.com/education/aws-in-education-research-grants/"&gt;Amazon Research Grant&lt;/a&gt; recently and I’m building a node that runs as a Linux server to act as a longer-term archival and search server. This is being written in OCaml and uses &lt;a href="http://1978th.net/tokyocabinet/"&gt;Tokyo Cabinet&lt;/a&gt; (with Jake Donham’s excellent &lt;a href="http://github.com/jaked/otoky"&gt;bindings&lt;/a&gt;) and so should be speedy and a useful alternative implementation of the HTTP REST interface. The plan is to automatically synchronize meta-data across all the nodes of a personal container, but store large and historical data away from expensive cloud storage such as App Engine.&lt;/p&gt; 27200 - &lt;p&gt;There are lots more plugins in development, such as &lt;a href="http://foursquare.com"&gt;Foursquare&lt;/a&gt; and &lt;a href="http://gowalla.com"&gt;Gowalla&lt;/a&gt; OAuth collectors, an &lt;a href="http://github.com/avsm/perscon/tree/master/android"&gt;Android&lt;/a&gt; mobile application to upload location and contacts information, and Google GData synchronization. If you’re interested in one of these or something else, please do &lt;a href="http://perscon.net/contact.html"&gt;get in touch&lt;/a&gt; or just fork the &lt;a href="http://github.com/avsm/perscon"&gt;project&lt;/a&gt; and start hacking!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2010-bcs-visions-1</id><summary type="html">&lt;p&gt;Paper on our vision for multiscale programming at the BCS Visions 2010 conference&lt;/p&gt; 27200 + &lt;p&gt;There are lots more plugins in development, such as &lt;a href="http://foursquare.com"&gt;Foursquare&lt;/a&gt; and &lt;a href="http://gowalla.com"&gt;Gowalla&lt;/a&gt; OAuth collectors, an &lt;a href="http://github.com/avsm/perscon/tree/master/android"&gt;Android&lt;/a&gt; mobile application to upload location and contacts information, and Google GData synchronization. If you’re interested in one of these or something else, please do &lt;a href="http://perscon.net/contact.html"&gt;get in touch&lt;/a&gt; or just fork the &lt;a href="http://github.com/avsm/perscon"&gt;project&lt;/a&gt; and start hacking!&lt;/p&gt;</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">&lt;p&gt;Paper on our vision for multiscale programming at the BCS Visions 2010 conference&lt;/p&gt; 27201 27201 27202 27202 &lt;blockquote class="paper noquote"&gt; 27203 27203 &lt;div class="paper-info"&gt; ··· 27209 27209 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2010-bcs-visions.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27210 27210 &lt;/p&gt; 27211 27211 &lt;/div&gt; 27212 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/opening-a-website</id><summary type="html">&lt;p&gt;We've been working away at building a new type of database to help individuals 27212 + &lt;/blockquote&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">&lt;p&gt;We've been working away at building a new type of database to help individuals 27213 27213 keep reigns on their ever-increasing personal digital information. The first 27214 27214 prototypes run freely on &lt;a href="https://web.archive.org/web/20110509135538/http://code.google.com/appengine"&gt;Google App Engine&lt;/a&gt; to gather your data 27215 27215 behind-the-scenes, and we are working on more advanced versions that run on ··· 27218 27218 with the &lt;a href="https://web.archive.org/web/20110509135538/http://perscon.net/install.html"&gt;installation&lt;/a&gt; instructions to clone your own version. After that, read 27219 27219 up on the &lt;a href="https://web.archive.org/web/20110509135538/http://perscon.net/design.html"&gt;design&lt;/a&gt; of the system (which is still changing as we research new 27220 27220 ideas around it). When you find something you want to fix, or add a new plugin 27221 - data source, just clone the &lt;a href="https://github.com/avsm/perscon"&gt;code&lt;/a&gt; and send us back fixes!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2010-smarte-privacybutler-1</id><summary type="html">&lt;p&gt;Paper on privacy butler services for more private data management&lt;/p&gt; 27221 + data source, just clone the &lt;a href="https://github.com/avsm/perscon"&gt;code&lt;/a&gt; and send us back fixes!&lt;/p&gt;</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">&lt;p&gt;Paper on privacy butler services for more private data management&lt;/p&gt; 27222 27222 27223 27223 &lt;blockquote class="paper noquote"&gt; 27224 27224 &lt;div class="paper-info"&gt; ··· 27231 27231 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2010-smarte-privacybutler.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27232 27232 &lt;/p&gt; 27233 27233 &lt;/div&gt; 27234 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/anil-phd-thesis-1</id><summary type="html">&lt;p&gt;PhD thesis now available as a technical report&lt;/p&gt; 27234 + &lt;/blockquote&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">&lt;p&gt;PhD thesis now available as a technical report&lt;/p&gt; 27235 27235 27236 27236 &lt;blockquote class="paper noquote"&gt; 27237 27237 &lt;div class="paper-info"&gt; ··· 27244 27244 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/anil-phd-thesis.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27245 27245 &lt;/p&gt; 27246 27246 &lt;/div&gt; 27247 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/unikernels</id><summary type="html">&lt;div&gt; 27247 + &lt;/blockquote&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">&lt;div&gt; 27248 27248 &lt;h1&gt;Unikernels&lt;/h1&gt; 27249 27249 &lt;p&gt;&lt;p&gt;I proposed the concept of &amp;quot;unikernels&amp;quot; -- 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.&lt;/p&gt; 27250 27250 &lt;p&gt;While working on &lt;a href="https://anil.recoil.org/projects/perscon"&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 building robust infrastructure that normal people could use was proving quite difficult. Meanwhile, my PhD research in building &lt;a href="https://anil.recoil.org/projects/melange"&gt;Functional Internet Services&lt;/a&gt; had constructed really viable prototypes of network protocols written in pure OCaml, and I'd previously used OCaml industrially in the &lt;a href="https://anil.recoil.org/projects/xen"&gt;Xen Hypervisor&lt;/a&gt; hypervisor to write lots of system management code.&lt;/p&gt; ··· 27282 27282 &lt;p&gt;The wider industry also saw a number of interesting spinouts, as many other communities also latched on to the ideas of unikernels and began their own language-specific and domain-specific versions. I joined the advisory boards of IncludeOS (now sadly defunct) and Zededa (now thankfully going from strength to strength in edge computing) to help guide strategy and adoption outside of just MirageOS. Dr Pierre Oliver maintains a great list of &lt;a href="https://github.com/olivierpierre/unikernel-papers"&gt;unikernel papers&lt;/a&gt; where you can see the diversity and interest in unikernels. One of the most exciting implementations of a C-based unikernel can be found in &lt;a href="https://www.unikraft.org/"&gt;Unikraft&lt;/a&gt;.&lt;/p&gt; 27283 27283 &lt;p&gt;As for my interest in unikernels moving forward? My heart always remains in finding the intersection of &lt;em&gt;safety&lt;/em&gt; and &lt;em&gt;performance&lt;/em&gt;, which means I mostly pay attention to language-based approaches. MirageOS continues to thrive (particularly with the effect system being integrated into OCaml in 2022, which will really change the way we develop OCaml code for embedded systems). Since 2020, I've been investigating the application of DIFC to embedded infrastructure, for example via &lt;a href="https://anil.recoil.org/papers/2019-edgesys-snape"&gt;Snape: The Dark Art of Handling Heterogeneous Enclaves&lt;/a&gt;.&lt;/p&gt; 27284 27284 &lt;/p&gt; 27285 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/ideas/frp-web-ocaml</id><summary type="html">&lt;h1&gt;Functional Reactive Web Applications&lt;/h1&gt; 27285 + &lt;/div&gt;</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">&lt;h1&gt;Functional Reactive Web Applications&lt;/h1&gt; 27286 27286 &lt;p&gt;This is an idea proposed in 2010 as a Cambridge Computer Science Part II project, and has been &lt;span class="idea-completed"&gt;completed&lt;/span&gt; by &lt;a class="contact" href="https://anil.recoil.org/"&gt;Henry Hughes&lt;/a&gt;.&lt;/p&gt; 27287 27287 &lt;p&gt;There are a variety of programming languages which can be used to create 27288 27288 desktop applications, and each provides different tradeoffs. This could be ··· 27313 27313 &lt;h2&gt;Links&lt;/h2&gt; 27314 27314 &lt;p&gt;The dissertation PDF isn't available publically but 27315 27315 should be in the Cambridge Computer Lab archives somewhere. 27316 - The source code is also archived but not publically available.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2009-icfem-spl-1</id><summary type="html">&lt;p&gt;Paper on a DSL for specifying temporal protocol automata at ICFEM 2009&lt;/p&gt; 27316 + The source code is also archived but not publically available.&lt;/p&gt;</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">&lt;p&gt;Paper on a DSL for specifying temporal protocol automata at ICFEM 2009&lt;/p&gt; 27317 27317 27318 27318 &lt;blockquote class="paper noquote"&gt; 27319 27319 &lt;div class="paper-info"&gt; ··· 27326 27326 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2009-icfem-spl.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27327 27327 &lt;/p&gt; 27328 27328 &lt;/div&gt; 27329 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/perscon</id><summary type="html">&lt;div&gt; 27329 + &lt;/blockquote&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">&lt;div&gt; 27330 27330 &lt;h1&gt;Personal Containers&lt;/h1&gt; 27331 27331 &lt;p&gt;&lt;p&gt;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.&lt;/p&gt; 27332 27332 &lt;p&gt;I've had a passion for self-hosted, decentralised computing for many years ··· 27368 27368 &lt;p&gt;My work on personal data processing petered out from a research perspective in around 2013 since the underlying infrastructure I had built really started gathering steam with &lt;a href="https://anil.recoil.org/projects/unikernels"&gt;Unikernels&lt;/a&gt; and &lt;a href="https://anil.recoil.org/projects/ocamllabs"&gt;OCaml Labs&lt;/a&gt;. We hadn't quite cracked the problem of how to break the cloud hegemony, but (as with XenoServers and Xen), the pieces that succeeded emerged from the research questions we asked. 27369 27369 However, I don't consider this project permanently closed by any means -- after all, I've been self hosting my email since 1997! We've been working steadily over the past decade of MirageOS (as of 2021) to build out a really solid, self-hosted protocol stack that will work as a unikernel. I am revisiting the question of decentralisation in the form of physical infrastructure in the &lt;a href="https://anil.recoil.org/projects/osmose"&gt;Interspatial OS&lt;/a&gt; project, and you can read my early thoughts in &lt;a href="https://anil.recoil.org/papers/2018-hotpost-osmose"&gt;An architecture for interspatial communication&lt;/a&gt;.&lt;/p&gt; 27370 27370 &lt;/p&gt; 27371 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/peeking-under-the-hood-of-high-availability</id><summary type="html">&lt;p&gt;Well, the big launch of &lt;a href="http://www.xenserver5.com/"&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"&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.&lt;/p&gt; 27371 + &lt;/div&gt;</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">&lt;p&gt;Well, the big launch of &lt;a href="http://www.xenserver5.com/"&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"&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.&lt;/p&gt; 27372 27372 &lt;p&gt;Fundamentally, HA is about making sure important VMs are always running on a resource pool. There are two aspects to this: reliably &lt;strong&gt;detecting host failure&lt;/strong&gt;, and computing a &lt;strong&gt;failure plan&lt;/strong&gt; to deal with swift recovery.&lt;/p&gt; 27373 27373 &lt;p&gt;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 unpredictable results if the original host were to make a comeback!   Similarly, if there is a network issue and a resource pool splits into two equal halves, we need to ensure that only one half accesses the shared storage and not both simultaneously.&lt;/p&gt; 27374 27374 &lt;h2&gt;Heartbeating for availability&lt;/h2&gt; ··· 27498 27498 keep an eye on hotfix application to ensure that host failures do 27499 27499 not disrupt the operation of the pool.&lt;/li&gt; 27500 27500 &lt;/ul&gt; 27501 - &lt;p&gt;So, I hope this short article has given you a taster... just kidding! This post is almost as long as my PhD thesis, but then, HA is a complex topic. Please do feel free to get back to me with comments and feedback about how we can improve it in the future releases, or if you just love it the way it is.  Many thanks to &lt;a class="contact" href="https://github.com/djs55"&gt;Dave Scott&lt;/a&gt;, &lt;a class="contact" href="mailto:richard.sharp@gmail.com"&gt;Richard Sharp&lt;/a&gt;, Ewan Mellor and Hugh Warrington for their input to this article.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/shedding-some-light-on-xenapp-on-xenserver-performance-tuning</id><summary type="html">&lt;p&gt;You won’t be surprised to hear that we spend a lot of time improving 27501 + &lt;p&gt;So, I hope this short article has given you a taster... just kidding! This post is almost as long as my PhD thesis, but then, HA is a complex topic. Please do feel free to get back to me with comments and feedback about how we can improve it in the future releases, or if you just love it the way it is.  Many thanks to &lt;a class="contact" href="https://github.com/djs55"&gt;Dave Scott&lt;/a&gt;, &lt;a class="contact" href="mailto:richard.sharp@gmail.com"&gt;Richard Sharp&lt;/a&gt;, Ewan Mellor and Hugh Warrington for their input to this article.&lt;/p&gt;</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">&lt;p&gt;You won’t be surprised to hear that we spend a lot of time improving 27502 27502 &lt;a href="http://www.citrix.com/XenApp"&gt;XenApp&lt;/a&gt; performance when running on 27503 27503 &lt;a href="http://www.citrix.com/XenServer"&gt;XenServer&lt;/a&gt;. Although there are some 27504 27504 good benchmark comparisons available (such as the &lt;a href="http://community.citrix.com/x/_4ENAg"&gt;Tolly ··· 27637 27637 uses to analyze the inner workings of Xen, are a topic for a future 27638 27638 post. For now, get downloading XenServer and start virtualizing your 27639 27639 XenApp installations! Or if you’re feeling inspired, go over to 27640 - &lt;a href="http://xen.org/"&gt;xen.org&lt;/a&gt;, check out the source, and get coding…&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/installing-ubuntu-on-xenserver</id><summary type="html">&lt;p&gt;I thought I’d kick off my Citrix blog with a question I get pretty often 27640 + &lt;a href="http://xen.org/"&gt;xen.org&lt;/a&gt;, check out the source, and get coding…&lt;/p&gt;</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">&lt;p&gt;I thought I’d kick off my Citrix blog with a question I get pretty often 27641 27641 from Linux enthusiasts: how to install unsupported Linux distributions 27642 27642 on &lt;a href="https://xenserver.com"&gt;XenServer&lt;/a&gt; 4.1.&lt;/p&gt; 27643 27643 &lt;p&gt;The most common solution people find is to use the &amp;quot;Other Install Media&amp;quot; ··· 27866 27866 you have with the in-guest packages on the Ubuntu support forums, or 27867 27867 just give them positive feedback.&lt;/p&gt; 27868 27868 &lt;p&gt;PS: many thanks to Andrew Peace and Ian Campbell for assistance. May 27869 - their Linux beards remain long and uncut.&lt;/p&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2008-mobisys-splittrust-1</id><summary type="html">&lt;p&gt;Paper on splitting trust between smartphones and webrowsers at MobiSys 2008&lt;/p&gt; 27869 + their Linux beards remain long and uncut.&lt;/p&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">&lt;p&gt;Paper on splitting trust between smartphones and webrowsers at MobiSys 2008&lt;/p&gt; 27870 27870 27871 27871 &lt;blockquote class="paper noquote"&gt; 27872 27872 &lt;div class="paper-info"&gt; ··· 27879 27879 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2008-mobisys-splittrust.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27880 27880 &lt;/p&gt; 27881 27881 &lt;/div&gt; 27882 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2007-eurosys-melange-1</id><summary type="html">&lt;p&gt;Won best student paper for my PhD work on a high-performance functional packet parsing DSL at Eurosys 2007!&lt;/p&gt; 27882 + &lt;/blockquote&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">&lt;p&gt;Won best student paper for my PhD work on a high-performance functional packet parsing DSL at Eurosys 2007!&lt;/p&gt; 27883 27883 27884 27884 &lt;blockquote class="paper noquote"&gt; 27885 27885 &lt;div class="paper-info"&gt; ··· 27892 27892 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2007-eurosys-melange.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27893 27893 &lt;/p&gt; 27894 27894 &lt;/div&gt; 27895 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2006-puc-tags-1</id><summary type="html">&lt;p&gt;Journal paper on interacting with mobile services using camera-phones&lt;/p&gt; 27895 + &lt;/blockquote&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">&lt;p&gt;Journal paper on interacting with mobile services using camera-phones&lt;/p&gt; 27896 27896 27897 27897 &lt;blockquote class="paper noquote"&gt; 27898 27898 &lt;div class="paper-info"&gt; ··· 27905 27905 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2006-puc-tags.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27906 27906 &lt;/p&gt; 27907 27907 &lt;/div&gt; 27908 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2006-fighting-crimeware-1</id><summary type="html">&lt;p&gt;New paper &lt;a href="https://anil.recoil.org/papers/2006-fighting-crimeware"&gt;Fighting Crimeware: An Architecture for Split-Trust Web Applications&lt;/a&gt; available&lt;/p&gt; 27908 + &lt;/blockquote&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">&lt;p&gt;New paper &lt;a href="https://anil.recoil.org/papers/2006-fighting-crimeware"&gt;Fighting Crimeware: An Architecture for Split-Trust Web Applications&lt;/a&gt; available&lt;/p&gt; 27909 27909 27910 27910 &lt;blockquote class="paper noquote"&gt; 27911 27911 &lt;div class="paper-info"&gt; ··· 27916 27916 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2006-fighting-crimeware.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27917 27917 &lt;/p&gt; 27918 27918 &lt;/div&gt; 27919 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2005-spin-splat-1</id><summary type="html">&lt;p&gt;Workshop paper on temporal automata for protocol specifications at SPIN 2005&lt;/p&gt; 27919 + &lt;/blockquote&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">&lt;p&gt;Workshop paper on temporal automata for protocol specifications at SPIN 2005&lt;/p&gt; 27920 27920 27921 27921 &lt;blockquote class="paper noquote"&gt; 27922 27922 &lt;div class="paper-info"&gt; ··· 27929 27929 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2005-spin-splat.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27930 27930 &lt;/p&gt; 27931 27931 &lt;/div&gt; 27932 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2005-ubiapp-ubimedia-1</id><summary type="html">&lt;p&gt;Position paper on ubiquitous computing approaches to emerging stream media appliances&lt;/p&gt; 27932 + &lt;/blockquote&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">&lt;p&gt;Position paper on ubiquitous computing approaches to emerging stream media appliances&lt;/p&gt; 27933 27933 27934 27934 &lt;blockquote class="paper noquote"&gt; 27935 27935 &lt;div class="paper-info"&gt; ··· 27942 27942 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2005-ubiapp-ubimedia.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27943 27943 &lt;/p&gt; 27944 27944 &lt;/div&gt; 27945 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2005-ieee-audio-1</id><summary type="html">&lt;p&gt;New paper &lt;a href="https://anil.recoil.org/papers/2005-ieee-audio"&gt;Audio networking: the forgotten wireless technology&lt;/a&gt; available&lt;/p&gt; 27945 + &lt;/blockquote&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">&lt;p&gt;New paper &lt;a href="https://anil.recoil.org/papers/2005-ieee-audio"&gt;Audio networking: the forgotten wireless technology&lt;/a&gt; available&lt;/p&gt; 27946 27946 27947 27947 &lt;blockquote class="paper noquote"&gt; 27948 27948 &lt;div class="paper-info"&gt; ··· 27955 27955 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2005-ieee-audio.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27956 27956 &lt;/p&gt; 27957 27957 &lt;/div&gt; 27958 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2005-ubicomp-bluetooth-1</id><summary type="html">&lt;p&gt;Ubicomp paper on a study of indoor bluetooth propagation using the Active Bat system&lt;/p&gt; 27958 + &lt;/blockquote&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">&lt;p&gt;Ubicomp paper on a study of indoor bluetooth propagation using the Active Bat system&lt;/p&gt; 27959 27959 27960 27960 &lt;blockquote class="paper noquote"&gt; 27961 27961 &lt;div class="paper-info"&gt; ··· 27967 27967 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2005-ubicomp-bluetooth.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 27968 27968 &lt;/p&gt; 27969 27969 &lt;/div&gt; 27970 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/c2k5-thoughts</id><summary type="html">&lt;p&gt;Finally had some time to get back from the OpenBSD hackathon and take 27970 + &lt;/blockquote&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">&lt;p&gt;Finally had some time to get back from the OpenBSD hackathon and take 27971 27971 stock of what I worked on. It was pretty interesting one this year, as I 27972 27972 went without having much idea of what to work on (unlike last year, when 27973 27973 I had a mad backlog to catch up on).&lt;/p&gt; ··· 28011 28011 OCaml-based daemons that &lt;a class="contact" href="https://github.com/djs55"&gt;Dave Scott&lt;/a&gt; and I have been 28012 28012 hacking on. I don't want to be fixing random buffer or integer overflows 28013 28013 in an OpenBSD hackathon 5 years from now; we need to move on to more 28014 - high-level issues.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2005-hotdep-spl-1</id><summary type="html">&lt;p&gt;Paper on temporal automata for protocol implementations at HotDep 2005&lt;/p&gt; 28014 + high-level issues.&lt;/p&gt;</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">&lt;p&gt;Paper on temporal automata for protocol implementations at HotDep 2005&lt;/p&gt; 28015 28015 28016 28016 &lt;blockquote class="paper noquote"&gt; 28017 28017 &lt;div class="paper-info"&gt; ··· 28023 28023 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2005-hotdep-spl.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28024 28024 &lt;/p&gt; 28025 28025 &lt;/div&gt; 28026 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2005-mc2r-visualtags-1</id><summary type="html">&lt;p&gt;While designing &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;Spotcodes&lt;/a&gt;, we realised that visual 28026 + &lt;/blockquote&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">&lt;p&gt;While designing &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;Spotcodes&lt;/a&gt;, we realised that visual 28027 28027 tags are a much better mechanism to advertise security keys to users instead 28028 28028 of the error prone and much more difficult to use Bluetooth device discovery 28029 28029 protocol. We duly implemented the direct system, and conducted a user study ··· 28045 28045 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2005-mc2r-visualtags.bib"&gt;BIB&lt;/a&gt; 28046 28046 &lt;/p&gt; 28047 28047 &lt;/div&gt; 28048 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2005-ieee-smartphones-1</id><summary type="html">&lt;p&gt;Article on using cameraphones to access site-specific services in IEEE Pervasive Computing&lt;/p&gt; 28048 + &lt;/blockquote&gt;</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">&lt;p&gt;Article on using cameraphones to access site-specific services in IEEE Pervasive Computing&lt;/p&gt; 28049 28049 28050 28050 &lt;blockquote class="paper noquote"&gt; 28051 28051 &lt;div class="paper-info"&gt; ··· 28058 28058 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2005-ieee-smartphones.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28059 28059 &lt;/p&gt; 28060 28060 &lt;/div&gt; 28061 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2005-bbphone-1</id><summary type="html">&lt;p&gt;Report on our hacking on the AT&amp;amp;T Broadband Phone&lt;/p&gt; 28061 + &lt;/blockquote&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">&lt;p&gt;Report on our hacking on the AT&amp;amp;T Broadband Phone&lt;/p&gt; 28062 28062 28063 28063 &lt;blockquote class="paper noquote"&gt; 28064 28064 &lt;div class="paper-info"&gt; ··· 28070 28070 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2005-bbphone.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28071 28071 &lt;/p&gt; 28072 28072 &lt;/div&gt; 28073 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2004-spotcodes-1</id><summary type="html">&lt;p&gt;A technical report is now available on our SpotCode visual tag system, and includes a user study lead 28073 + &lt;/blockquote&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">&lt;p&gt;A technical report is now available on our SpotCode visual tag system, and includes a user study lead 28074 28074 by &lt;a class="contact" href="https://www.cst.cam.ac.uk/people/eft20"&gt;Eleanor Toye Scott&lt;/a&gt; which tested its benefits against conventional mobile interfaces.&lt;/p&gt; 28075 28075 28076 28076 &lt;blockquote class="paper noquote"&gt; ··· 28084 28084 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2004-spotcodes.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28085 28085 &lt;/p&gt; 28086 28086 &lt;/div&gt; 28087 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/spotcodes-nytimes</id><summary type="html">&lt;p&gt;In what is definitely our most exciting media coverage yet, &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;Spotcodes&lt;/a&gt; are featured in the New York Times!&lt;/p&gt; 28087 + &lt;/blockquote&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">&lt;p&gt;In what is definitely our most exciting media coverage yet, &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;Spotcodes&lt;/a&gt; are featured in the New York Times!&lt;/p&gt; 28088 28088 &lt;blockquote&gt; 28089 28089 &lt;p&gt;When you think of a public information kiosk, your mental picture might include greasy touch screens, broken trackballs and frozen monitors. 28090 28090 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. ··· 28093 28093 &lt;p&gt;&lt;a class="contact" href="mailto:richard.sharp@gmail.com"&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!&lt;/p&gt; 28094 28094 &lt;blockquote&gt; 28095 28095 &lt;p&gt;&amp;quot;Instead of having all the hassle of putting things out in the environment that you have to maintain and that people can vandalize, you get a cheap PC, shove it in the back room of your shop and just put posters out front,&amp;quot; said Richard Sharp, an Intel researcher here.&lt;/p&gt; 28096 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/2004-ubicomp-camera-1</id><summary type="html">&lt;p&gt;We gave a demo at &lt;a href="https://www.ubicomp.org/ubicomp2004/"&gt;UbiComp 2004&lt;/a&gt; all the way in Tokyo 28096 + &lt;/blockquote&gt;</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">&lt;p&gt;We gave a demo at &lt;a href="https://www.ubicomp.org/ubicomp2004/"&gt;UbiComp 2004&lt;/a&gt; all the way in Tokyo 28097 28097 on our SpotCode visual tag system. It went very well, including some time to do some 28098 28098 sightseeing in Japan and visit the sumo wrestling championships!&lt;/p&gt; 28099 28099 &lt;p&gt;&lt;div class="video-center"&gt;&lt;/div&gt;&lt;/p&gt; ··· 28108 28108 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/2004-ubicomp-camera.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28109 28109 &lt;/p&gt; 28110 28110 &lt;/div&gt; 28111 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/mit-spotcodes</id><summary type="html">&lt;p&gt;We got more coverage of &lt;a href="https://en.wikipedia.org/wiki/ShotCode"&gt;SpotCodes&lt;/a&gt; and our startup &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;High Energy Magic&lt;/a&gt;, leading to lots of interest in the technology.&lt;/p&gt; 28111 + &lt;/blockquote&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">&lt;p&gt;We got more coverage of &lt;a href="https://en.wikipedia.org/wiki/ShotCode"&gt;SpotCodes&lt;/a&gt; and our startup &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;High Energy Magic&lt;/a&gt;, leading to lots of interest in the technology.&lt;/p&gt; 28112 28112 &lt;blockquote&gt; 28113 28113 &lt;p&gt;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 the symbols into data. Once a phone locks onto one of the symbols, it uses the Bluetooth short-range wireless protocol to send information about its size, position, and orientation to the computer running the display. The phone can then act as a mouse, manipulating on-screen controls such as scroll bars. The company plans to license the technology to businesses, such as travel agencies, that operate public kiosks. 28114 28114 &lt;cite&gt;-- &lt;a href="https://web.archive.org/web/20241202023917/https://cdn.technologyreview.com/s/403022/phone-it-in/"&gt;MIT Technology Review&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt; 28115 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/netgames04-ctf-1</id><summary type="html">&lt;p&gt;The summer of 2004 was sufficient full of procrastination that the members 28115 + &lt;/blockquote&gt;</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">&lt;p&gt;The summer of 2004 was sufficient full of procrastination that the members 28116 28116 of the &lt;a href="https://web.archive.org/web/20041212123550/http://sn17.org/"&gt;SN17 collective&lt;/a&gt; in the 28117 28117 Computer Lab decided to build a computer game. But it wasn't enough to just play 28118 28118 the game on our phones -- instead, we combined all the public displays in the corridors, ··· 28136 28136 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/netgames04-ctf.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28137 28137 &lt;/p&gt; 28138 28138 &lt;/div&gt; 28139 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/wired-spotcode</id><summary type="html">&lt;p&gt;I gave a talk at &lt;a href="https://web.archive.org/web/20050204012820/http://www.quernstone.com/notcon04/"&gt;NotCon 2004&lt;/a&gt; on SpotCodes, and it got covered in Wired Magazine! 28139 + &lt;/blockquote&gt;</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">&lt;p&gt;I gave a talk at &lt;a href="https://web.archive.org/web/20050204012820/http://www.quernstone.com/notcon04/"&gt;NotCon 2004&lt;/a&gt; on SpotCodes, and it got covered in Wired Magazine! 28140 28140 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/"&gt;via a prawn sandwich&lt;/a&gt;, so the limelight wasn't all just mine...&lt;/p&gt; 28141 28141 &lt;blockquote&gt; 28142 28142 &lt;p&gt;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. 28143 28143 &lt;cite&gt;-- &lt;a href="https://roxannekhamsi.com"&gt;Roxanne Khamsi&lt;/a&gt; for &lt;a href="https://www.wired.com/2004/06/from-the-prawn-of-time/"&gt;Wired&lt;/a&gt;&lt;/p&gt; 28144 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/hem</id><summary type="html">&lt;p&gt;The &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;SpotCode&lt;/a&gt; cellphone software was spun out into a startup called High Energy Magic Ltd, and was covered on Slashdot.&lt;/p&gt; 28144 + &lt;/blockquote&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">&lt;p&gt;The &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;SpotCode&lt;/a&gt; cellphone software was spun out into a startup called High Energy Magic Ltd, and was covered on Slashdot.&lt;/p&gt; 28145 28145 &lt;blockquote&gt; 28146 28146 &lt;p&gt;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.&lt;/p&gt; 28147 28147 &lt;/blockquote&gt; 28148 28148 &lt;p&gt;There were also articles on &lt;a href="https://web.archive.org/web/20060505171702/http://www.linuxdevices.com/news/NS3157166681.html"&gt;DeviceForge&lt;/a&gt; that were picked up by quite a few outlets.&lt;/p&gt; 28149 - &lt;p&gt;&lt;em&gt;Update: You can see some of the videos under &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;Ubiquitous Interaction Devices&lt;/a&gt; as well.&lt;/em&gt;&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/audio-networking-1</id><summary type="html">&lt;p&gt;While working as an intern at Intel Research Cambridge, &lt;a class="contact" href="https://github.com/djs55"&gt;Dave Scott&lt;/a&gt; and &lt;a class="contact" href="mailto:richard.sharp@gmail.com"&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&lt;/p&gt; 28149 + &lt;p&gt;&lt;em&gt;Update: You can see some of the videos under &lt;a href="https://anil.recoil.org/projects/ubiqinteraction"&gt;Ubiquitous Interaction Devices&lt;/a&gt; as well.&lt;/em&gt;&lt;/p&gt;</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">&lt;p&gt;While working as an intern at Intel Research Cambridge, &lt;a class="contact" href="https://github.com/djs55"&gt;Dave Scott&lt;/a&gt; and &lt;a class="contact" href="mailto:richard.sharp@gmail.com"&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&lt;/p&gt; 28150 28150 &lt;blockquote&gt; 28151 28151 &lt;p&gt;[...] 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 and install additional hardware. &lt;span class="morewords"&gt;[…&lt;a href="https://anil.recoil.org/news/audio-networking-1"&gt;178 words&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt; 28152 28152 &lt;/blockquote&gt; ··· 28162 28162 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/audio-networking.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28163 28163 &lt;/p&gt; 28164 28164 &lt;/div&gt; 28165 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/gcc-bounds</id><summary type="html">&lt;p&gt;After many rounds of review and helpful feedback from fellow developers, 28165 + &lt;/blockquote&gt;</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">&lt;p&gt;After many rounds of review and helpful feedback from fellow developers, 28166 28166 I merged my &lt;a href="https://man.openbsd.org/gcc-local.1"&gt;GCC static bounds checking extension&lt;/a&gt; into OpenBSD today!&lt;/p&gt; 28167 28167 &lt;blockquote&gt; 28168 28168 &lt;p&gt;Introduce a simple static checker for making sure that the bounds ··· 28178 28178 simple checking still found hundreds of bugs around the ports tree though, 28179 28179 and there have been no false positive warnings.&lt;/p&gt; 28180 28180 &lt;/blockquote&gt; 28181 - &lt;p&gt;You can read more details in the &lt;a href="https://man.openbsd.org/gcc-local.1"&gt;&lt;em&gt;gcc-local(1)&lt;/em&gt;&lt;/a&gt; manual page as well.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/sam03-secpol-1</id><summary type="html">&lt;p&gt;My first ever academic paper, written with the expert guidance of &lt;a class="contact" href="https://www.cl.cam.ac.uk/~am21/"&gt;Alan Mycroft&lt;/a&gt; and my PhD colleagues &lt;a class="contact" href="https://github.com/djs55"&gt;Dave Scott&lt;/a&gt; and &lt;a class="contact" href="mailto:richard.sharp@gmail.com"&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"&gt;systrace&lt;/a&gt;. The paper describing the declarative language was presented at SAM 2003 in Las Vegas.&lt;/p&gt; 28181 + &lt;p&gt;You can read more details in the &lt;a href="https://man.openbsd.org/gcc-local.1"&gt;&lt;em&gt;gcc-local(1)&lt;/em&gt;&lt;/a&gt; manual page as well.&lt;/p&gt;</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">&lt;p&gt;My first ever academic paper, written with the expert guidance of &lt;a class="contact" href="https://www.cl.cam.ac.uk/~am21/"&gt;Alan Mycroft&lt;/a&gt; and my PhD colleagues &lt;a class="contact" href="https://github.com/djs55"&gt;Dave Scott&lt;/a&gt; and &lt;a class="contact" href="mailto:richard.sharp@gmail.com"&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"&gt;systrace&lt;/a&gt;. The paper describing the declarative language was presented at SAM 2003 in Las Vegas.&lt;/p&gt; 28182 28182 &lt;blockquote&gt; 28183 28183 &lt;p&gt;&amp;quot;Untrusted code&amp;quot; is just as much a social problem as it 28184 28184 is a technical problem. Looking for a complete solution ··· 28200 28200 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/sam03-secpol.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28201 28201 &lt;/p&gt; 28202 28202 &lt;/div&gt; 28203 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/opening-anil-recoil-org</id><summary type="html">&lt;p&gt;I've taken the opportunity to redesign my homepage and switch to its hopefully-permanent 28203 + &lt;/blockquote&gt;</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">&lt;p&gt;I've taken the opportunity to redesign my homepage and switch to its hopefully-permanent 28204 28204 URL on &lt;code&gt;anil.recoil.org&lt;/code&gt;. Many thanks to Jon Parise for giving me permission to base my 28205 - HTML upon his homepage's, saving me lots of design trouble!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/xen02-1</id><summary type="html">&lt;p&gt;The first technical report on the &lt;a href="https://anil.recoil.org/projects/xen"&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).&lt;/p&gt; 28205 + HTML upon his homepage's, saving me lots of design trouble!&lt;/p&gt;</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">&lt;p&gt;The first technical report on the &lt;a href="https://anil.recoil.org/projects/xen"&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).&lt;/p&gt; 28206 28206 28207 28207 &lt;blockquote class="paper noquote"&gt; 28208 28208 &lt;div class="paper-info"&gt; ··· 28214 28214 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/xen02.bib"&gt;BIB&lt;/a&gt; 28215 28215 &lt;/p&gt; 28216 28216 &lt;/div&gt; 28217 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/ubiqinteraction</id><summary type="html">&lt;div&gt; 28217 + &lt;/blockquote&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">&lt;div&gt; 28218 28218 &lt;h1&gt;Ubiquitous Interaction Devices&lt;/h1&gt; 28219 28219 &lt;p&gt;&lt;p&gt;I investigated how to interface the new emerging class of smartphone devices 28220 28220 (circa 2002) with concepts from ubiquitous computing such as location-aware ··· 28284 28284 &lt;/ul&gt; 28285 28285 &lt;p&gt;In around 2005, we sold High Energy Magic Ltd. to a &lt;a href="https://www.youtube.com/watch?v=sN01wkRzsfk"&gt;Dutch entrepreneur&lt;/a&gt; so that &lt;a class="contact" href="mailto:richard.sharp@gmail.com"&gt;Richard Sharp&lt;/a&gt;, &lt;a class="contact" href="https://github.com/djs55"&gt;Dave Scott&lt;/a&gt; and I could join the &lt;a href="https://anil.recoil.org/projects/xen"&gt;Xen Hypervisor&lt;/a&gt; startup company. However, the ubiquitous computing ideals that drove much of our work continue to persist, and in 2018 I started thinking about this again as part of my &lt;a href="https://anil.recoil.org/projects/osmose"&gt;Interspatial OS&lt;/a&gt; project. The idea of building truely ubiquitous environments (without smartphones) is resurrected again there, and you can start reading about it in &lt;a href="https://anil.recoil.org/papers/2018-hotpost-osmose"&gt;An architecture for interspatial communication&lt;/a&gt;.&lt;/p&gt; 28286 28286 &lt;/p&gt; 28287 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/melange</id><summary type="html">&lt;div&gt; 28287 + &lt;/div&gt;</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">&lt;div&gt; 28288 28288 &lt;h1&gt;Functional Internet Services&lt;/h1&gt; 28289 28289 &lt;p&gt;&lt;p&gt;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 &amp;quot;rewrite all the things in OCaml from C!&amp;quot;, 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.&lt;/p&gt; 28290 28290 &lt;p&gt;In the late 90s while working at MVACS on the Mars Polar Lander, I found myself ··· 28373 28373 to do systems programming in a functional language, with all the intellectual and 28374 28374 engineering challenges that came along with that extreme (back in 2003) position.&lt;/p&gt; 28375 28375 &lt;/p&gt; 28376 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/starting-phd</id><summary type="html">&lt;p&gt;I started my PhD at the Systems Research Group in Cambridge this week, based in 28376 + &lt;/div&gt;</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">&lt;p&gt;I started my PhD at the Systems Research Group in Cambridge this week, based in 28377 28377 the &lt;a href="https://www.cl.cam.ac.uk"&gt;Computer Laboratory&lt;/a&gt; and &lt;a href="https://robinson.cam.ac.uk"&gt;Robinson 28378 28378 College&lt;/a&gt;. I'll still be working part-time at 28379 28379 &lt;a href="https://netapp.com"&gt;NetApp&lt;/a&gt;, but my primary focus will be on the &lt;a href="https://anil.recoil.org/projects/xen"&gt;Xen&lt;/a&gt; 28380 - hypervisor and other systems research topics.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/php-port-layout-openbsd</id><summary type="html">&lt;p&gt;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 &amp;quot;multi packages&amp;quot;.&lt;/p&gt; 28380 + hypervisor and other systems research topics.&lt;/p&gt;</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">&lt;p&gt;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 &amp;quot;multi packages&amp;quot;.&lt;/p&gt; 28381 28381 &lt;p&gt;The first thing I did was to import the core PHP without any extensions.&lt;/p&gt; 28382 28382 &lt;pre&gt;&lt;code&gt;commit 15dc0f67ef5fd0cae9fb841e608b90b9f51c71ca 28383 28383 Author: avsm &amp;lt;avsm@openbsd.org&amp;gt; ··· 28410 28410 End result is that you can pkg_add individual modules now without 28411 28411 getting into the mess of flavors that we've had in the past. 28412 28412 &lt;/code&gt;&lt;/pre&gt; 28413 - &lt;p&gt;This should make the use of &lt;code&gt;pkg_add&lt;/code&gt; for PHP much simpler for new users. Any problems, please file a bug report or let me know.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/netapp-tr-3152-1</id><summary type="html">&lt;p&gt;After the &lt;a href="https://anil.recoil.org/notes/mars-polar-lander"&gt;Mars Polar Lander crashed&lt;/a&gt;, I took a job at NetApp working as the 28413 + &lt;p&gt;This should make the use of &lt;code&gt;pkg_add&lt;/code&gt; for PHP much simpler for new users. Any problems, please file a bug report or let me know.&lt;/p&gt;</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">&lt;p&gt;After the &lt;a href="https://anil.recoil.org/notes/mars-polar-lander"&gt;Mars Polar Lander crashed&lt;/a&gt;, I took a job at NetApp working as the 28414 28414 product architect for &lt;a href="https://en.wikipedia.org/wiki/NetCache"&gt;NetCache&lt;/a&gt;. Among the hundreds 28415 28415 of deployments that I help setup across the world, the most fun was figuring out how to scale 28416 28416 one of the biggest bands in the world at the time wanting to stream their concert live to a ··· 28426 28426 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/netapp-tr-3152.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28427 28427 &lt;/p&gt; 28428 28428 &lt;/div&gt; 28429 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/projects/xen</id><summary type="html">&lt;div&gt; 28429 + &lt;/blockquote&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">&lt;div&gt; 28430 28430 &lt;h1&gt;Xen Hypervisor&lt;/h1&gt; 28431 28431 &lt;p&gt;&lt;p&gt;I was on the original team at Cambridge that built the Xen hypervisor in 2002 28432 28432 -- the first open-source &amp;quot;type-1&amp;quot; hypervisor that ushered in the age of cloud ··· 28477 28477 hypervisor, but I plan to revisit Xen at some point as I begin looking 28478 28478 at RISC-V architectures and embedded systems again as part of &lt;a href="https://anil.recoil.org/projects/osmose"&gt;Interspatial OS&lt;/a&gt;.&lt;/p&gt; 28479 28479 &lt;/p&gt; 28480 - &lt;/div&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/horde-cache</id><summary type="html">&lt;p&gt;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.&lt;/p&gt; 28480 + &lt;/div&gt;</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">&lt;p&gt;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.&lt;/p&gt; 28481 28481 &lt;blockquote&gt; 28482 28482 &lt;p&gt;Add in a Cache framework for persistent storage and retrieval of cached 28483 28483 objects. Consider it experimental for now.&lt;/p&gt; ··· 28487 28487 &lt;p&gt;It does not cleanup the cached repository at the moment - needs to have 28488 28488 a garbage collection function done at some point.&lt;/p&gt; 28489 28489 &lt;p&gt;&lt;cite&gt; -- &lt;a href="https://lists.horde.org/archives/cvs/Week-of-Mon-20010820/003116.html"&gt;Anil Madhavapeddy&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt; 28490 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/chora-live-on-php</id><summary type="html">&lt;p&gt;I spent a chunk of time through the year working on the &lt;a href="https://horde.org"&gt;Horde&lt;/a&gt; project. I began when I got commit to &lt;a href="https://www.horde.org/apps/imp/"&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;amp;r=6"&gt;horde-cvs&lt;/a&gt; mailing list archive.&lt;/p&gt; 28490 + &lt;/blockquote&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">&lt;p&gt;I spent a chunk of time through the year working on the &lt;a href="https://horde.org"&gt;Horde&lt;/a&gt; project. I began when I got commit to &lt;a href="https://www.horde.org/apps/imp/"&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;amp;r=6"&gt;horde-cvs&lt;/a&gt; mailing list archive.&lt;/p&gt; 28491 28491 &lt;p&gt;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/"&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.&lt;/p&gt; 28492 28492 &lt;p&gt;I'm extremely proud to report that the &lt;a href="http://php.net"&gt;PHP project&lt;/a&gt; has &lt;a href="https://lists.horde.org/archives/dev/Week-of-Mon-20010806/002886.html"&gt;now deployed Chora&lt;/a&gt; for production use to serve up &lt;code&gt;cvs.php.net&lt;/code&gt;, making it our biggest user by far. Thanks for making my day, Rasmus!&lt;/p&gt; 28493 28493 &lt;blockquote&gt; ··· 28495 28495 now. The old viewcvs site is still available at viewcvs.php.net (dns may 28496 28496 not have updated yet) 28497 28497 &lt;cite&gt; -- &lt;a href="https://lists.horde.org/archives/dev/Week-of-Mon-20010806/002886.html"&gt;Rasmus Lerdorf&lt;/a&gt;, php.net&lt;/cite&gt;&lt;/p&gt; 28498 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/chora-internationalised</id><summary type="html">&lt;p&gt;One of the coolest things about hacking on the &lt;a href="https://horde.org"&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.&lt;/p&gt; 28499 - &lt;p&gt;I've added in a simple &lt;a href="https://lists.horde.org/archives/cvs/Week-of-Mon-20010730/002975.html"&gt;German translation&lt;/a&gt; to start with, but please contribute your own strings if you get the opportunity.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/openfx</id><summary type="html">&lt;p&gt;Slashdot covers the GPL release of &lt;a href="http://openfx.org"&gt;OpenFX&lt;/a&gt;, which I worked on with Stuart Ferguson (my brother's PhD supervisor in Queen's University Belfast).&lt;/p&gt; 28498 + &lt;/blockquote&gt;</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">&lt;p&gt;One of the coolest things about hacking on the &lt;a href="https://horde.org"&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.&lt;/p&gt; 28499 + &lt;p&gt;I've added in a simple &lt;a href="https://lists.horde.org/archives/cvs/Week-of-Mon-20010730/002975.html"&gt;German translation&lt;/a&gt; to start with, but please contribute your own strings if you get the opportunity.&lt;/p&gt;</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">&lt;p&gt;Slashdot covers the GPL release of &lt;a href="http://openfx.org"&gt;OpenFX&lt;/a&gt;, which I worked on with Stuart Ferguson (my brother's PhD supervisor in Queen's University Belfast).&lt;/p&gt; 28500 28500 &lt;blockquote&gt; 28501 28501 &lt;p&gt;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.&lt;/p&gt; 28502 - &lt;/blockquote&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/commit-access-to-php</id><summary type="html">&lt;p&gt;I've been maintaining &lt;a href="http://php.net"&gt;PHP&lt;/a&gt; on OpenBSD for a while now, including the core package distributed as binary packages.&lt;/p&gt; 28503 - &lt;p&gt;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"&gt;OpenBSD on PHP&lt;/a&gt; official instructions. You can contact me on &lt;code&gt;avsm@php.net&lt;/code&gt; if you need any help!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/openbsd-developer</id><summary type="html">&lt;p&gt;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"&gt;recoil&lt;/a&gt; 28502 + &lt;/blockquote&gt;</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">&lt;p&gt;I've been maintaining &lt;a href="http://php.net"&gt;PHP&lt;/a&gt; on OpenBSD for a while now, including the core package distributed as binary packages.&lt;/p&gt; 28503 + &lt;p&gt;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"&gt;OpenBSD on PHP&lt;/a&gt; official instructions. You can contact me on &lt;code&gt;avsm@php.net&lt;/code&gt; if you need any help!&lt;/p&gt;</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">&lt;p&gt;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"&gt;recoil&lt;/a&gt; 28504 28504 and have been contributing fixes and ports when I get a chance. So I'm 28505 28505 incredibly excited to report that the project leader, Theo de Raadt, has 28506 28506 invited me to become an OpenBSD developer. I've registered my keys now, and ··· 28523 28523 - Since php3/4 conflict with each other anyway, versioning is 28524 28524 not needed. 28525 28525 &lt;/code&gt;&lt;/pre&gt; 28526 - &lt;p&gt;Many thanks to Jakob for the help with getting started, and for ok'ing my first commit.&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/horde-developer</id><summary type="html">&lt;p&gt;After contributing some patches, I've now got the honour of becoming a &lt;a href="https://www.horde.org/community/team"&gt;core team&lt;/a&gt; member of the &lt;a href="https://horde.org"&gt;Horde&lt;/a&gt; project. Many thanks to Chuck Hagenbuch and Jon Parise for their trust in me!&lt;/p&gt; 28527 - &lt;p&gt;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"&gt;Horde-CVS&lt;/a&gt; commit archives, where I am &lt;code&gt;avsm@horde.org&lt;/code&gt;!&lt;/p&gt;</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>Anil&lt;</name></author><id>https://anil.recoil.org/news/netapp-tr-3071-1</id><summary type="html">&lt;p&gt;Although the Mars Polar Lander ended up &lt;a href="https://en.wikipedia.org/wiki/Mars_Polar_Lander#See_also"&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 &lt;code&gt;webmaster@mars.nasa.gov&lt;/code&gt; account at the time. I worked closely &lt;a href="https://anil.recoil.org/notes/mars-polar-lander"&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;/p&gt; 28526 + &lt;p&gt;Many thanks to Jakob for the help with getting started, and for ok'ing my first commit.&lt;/p&gt;</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">&lt;p&gt;After contributing some patches, I've now got the honour of becoming a &lt;a href="https://www.horde.org/community/team"&gt;core team&lt;/a&gt; member of the &lt;a href="https://horde.org"&gt;Horde&lt;/a&gt; project. Many thanks to Chuck Hagenbuch and Jon Parise for their trust in me!&lt;/p&gt; 28527 + &lt;p&gt;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"&gt;Horde-CVS&lt;/a&gt; commit archives, where I am &lt;code&gt;avsm@horde.org&lt;/code&gt;!&lt;/p&gt;</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">&lt;p&gt;Although the Mars Polar Lander ended up &lt;a href="https://en.wikipedia.org/wiki/Mars_Polar_Lander#See_also"&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 &lt;code&gt;webmaster@mars.nasa.gov&lt;/code&gt; account at the time. I worked closely &lt;a href="https://anil.recoil.org/notes/mars-polar-lander"&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;/p&gt; 28528 28528 28529 28529 &lt;blockquote class="paper noquote"&gt; 28530 28530 &lt;div class="paper-info"&gt; ··· 28536 28536 &amp;nbsp; &lt;a href="https://anil.recoil.org/papers/netapp-tr-3071.pdf"&gt;&lt;span class="nobreak"&gt;PDF&lt;img alt="pdf" class="inline-icon" src="https://anil.recoil.org/assets/pdf.svg" /&gt;&lt;/span&gt;&lt;/a&gt; 28537 28537 &lt;/p&gt; 28538 28538 &lt;/div&gt; 28539 - &lt;/blockquote&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>Anil&lt;</name></author><id>https://anil.recoil.org/notes/mars-polar-lander</id><summary type="html">&lt;p&gt;In my capacity as &lt;a href="https://anil.recoil.org/papers/netapp-tr-3071"&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/"&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"&gt;Sun press release&lt;/a&gt; because of the Sun Netra T1 servers they gave us to host the website!&lt;/p&gt; 28539 + &lt;/blockquote&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">&lt;p&gt;In my capacity as &lt;a href="https://anil.recoil.org/papers/netapp-tr-3071"&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/"&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"&gt;Sun press release&lt;/a&gt; because of the Sun Netra T1 servers they gave us to host the website!&lt;/p&gt; 28540 28540 &lt;p&gt;You can read more about the architecture behind the site in &amp;quot;&lt;a href="https://anil.recoil.org/papers/netapp-tr-3071"&gt;Application of a Distributed Web Site Acceleration: Mars Polar Lander&lt;/a&gt;&amp;quot;.&lt;/p&gt;</summary><category term="Anil Madhavapeddy's feed"></category></entry></feed>
+216
make_threads.py
··· 1 + # /// script 2 + # requires-python = ">=3.11" 3 + # dependencies = [ 4 + # "feedparser", 5 + # "beautifulsoup4", 6 + # "urllib3", 7 + # ] 8 + # /// 9 + # Do not delete the above as its needed for `uv run` 10 + #!/usr/bin/env python3 11 + 12 + import json 13 + import feedparser 14 + import sys 15 + import os 16 + from bs4 import BeautifulSoup 17 + import re 18 + from urllib.parse import urlparse, urljoin 19 + 20 + def extract_links_from_html(html_content, base_url=None): 21 + """Extract and normalize links from HTML content""" 22 + soup = BeautifulSoup(html_content, 'html.parser') 23 + links = [] 24 + 25 + for a_tag in soup.find_all('a', href=True): 26 + href = a_tag['href'].strip() 27 + 28 + # Skip empty links, anchors, javascript, and mailto 29 + if not href or href.startswith(('#', 'javascript:', 'mailto:')): 30 + continue 31 + 32 + # Convert relative URLs to absolute if we have a base URL 33 + if base_url and not href.startswith(('http://', 'https://')): 34 + href = urljoin(base_url, href) 35 + 36 + links.append(href) 37 + 38 + return links 39 + 40 + def normalize_url(url): 41 + """Normalize URLs to consistently match them""" 42 + if not url: 43 + return "" 44 + 45 + # Handle common URL shorteners or redirects (not implemented) 46 + 47 + # Parse the URL 48 + parsed = urlparse(url) 49 + 50 + # Ensure scheme is consistent 51 + scheme = parsed.scheme.lower() or 'http' 52 + 53 + # Normalize netloc (lowercase, remove 'www.' prefix optionally) 54 + netloc = parsed.netloc.lower() 55 + if netloc.startswith('www.'): 56 + netloc = netloc[4:] 57 + 58 + # Remove trailing slashes and index.html/index.php 59 + path = parsed.path.rstrip('/') 60 + for index_file in ['/index.html', '/index.php', '/index.htm']: 61 + if path.endswith(index_file): 62 + path = path[:-len(index_file)] 63 + 64 + # Remove common fragments and query parameters that don't affect content 65 + # (like tracking params, utm_*, etc.) 66 + query_parts = [] 67 + if parsed.query: 68 + for param in parsed.query.split('&'): 69 + if '=' in param: 70 + key, value = param.split('=', 1) 71 + if not key.startswith(('utm_', 'ref', 'source')): 72 + query_parts.append(f"{key}={value}") 73 + 74 + query = '&'.join(query_parts) 75 + 76 + # Remove common hash fragments 77 + fragment = '' 78 + 79 + # Special case for common blogging platforms 80 + # Medium, WordPress, Ghost, etc. may have specific URL patterns 81 + 82 + # Reconstruct the URL 83 + normalized = f"{scheme}://{netloc}{path}" 84 + if query: 85 + normalized += f"?{query}" 86 + if fragment: 87 + normalized += f"#{fragment}" 88 + 89 + return normalized 90 + 91 + def analyze_feed(): 92 + # Parse the aggregated feed 93 + print(f"Parsing eeg.xml...", file=sys.stderr) 94 + feed_data = feedparser.parse("eeg.xml") 95 + 96 + # Add debug info about the feed 97 + print(f"Feed title: {feed_data.feed.get('title', 'Unknown')}", file=sys.stderr) 98 + print(f"Feed version: {feed_data.get('version', 'Unknown')}", file=sys.stderr) 99 + 100 + if not feed_data or not hasattr(feed_data, 'entries'): 101 + print("Error: Could not parse feed or no entries found", file=sys.stderr) 102 + return 103 + 104 + print(f"Found {len(feed_data.entries)} entries in the aggregated feed", file=sys.stderr) 105 + 106 + all_entries = [] 107 + entry_urls = {} # Maps normalized URLs to entry data 108 + 109 + # First pass: collect all entries and their URLs 110 + for entry in feed_data.entries: 111 + # Get link 112 + link = entry.get('link', '') 113 + if not link: 114 + continue 115 + 116 + # Normalize the entry URL to help with matching 117 + normalized_link = normalize_url(link) 118 + 119 + # Get feed title (stored as category in the aggregated feed) 120 + feed_title = "Unknown" 121 + if hasattr(entry, 'tags') and entry.tags: 122 + feed_title = entry.tags[0].term 123 + 124 + # Get description/content 125 + if hasattr(entry, 'content') and entry.content: 126 + content = entry.content[0].value 127 + else: 128 + content = entry.get('summary', '') 129 + 130 + # Extract all links from content, using the entry link as base URL for resolving relative URLs 131 + content_links = extract_links_from_html(content, base_url=link) 132 + 133 + # Get unique ID 134 + entry_id = entry.get('id', link) 135 + 136 + entry_data = { 137 + 'title': entry.get('title', 'No title'), 138 + 'link': link, 139 + 'normalized_link': normalized_link, 140 + 'feed_title': feed_title, 141 + 'id': entry_id, 142 + 'content_links': content_links, 143 + 'references': [], # Will be filled in the second pass 144 + 'referenced_by': [] # Will be filled in the second pass 145 + } 146 + 147 + all_entries.append(entry_data) 148 + entry_urls[normalized_link] = entry_data 149 + 150 + print(f"Total entries processed: {len(all_entries)}", file=sys.stderr) 151 + 152 + # Second pass: analyze links between entries 153 + for entry in all_entries: 154 + # Keep track of references to avoid duplicates 155 + reference_ids = set() 156 + normalized_content_links = [normalize_url(link) for link in entry['content_links']] 157 + 158 + for normalized_link in normalized_content_links: 159 + if normalized_link in entry_urls and normalized_link != entry['normalized_link']: 160 + # This entry links to another entry 161 + referenced_entry = entry_urls[normalized_link] 162 + 163 + # Avoid duplicate references 164 + if referenced_entry['id'] in reference_ids: 165 + continue 166 + 167 + reference_ids.add(referenced_entry['id']) 168 + 169 + # Add to the references of the current entry 170 + entry['references'].append({ 171 + 'id': referenced_entry['id'], 172 + 'link': referenced_entry['link'], 173 + 'title': referenced_entry['title'], 174 + 'feed_title': referenced_entry['feed_title'] 175 + }) 176 + 177 + # Add to the referenced_by of the referenced entry 178 + # Check if this entry is already in referenced_by 179 + already_referenced = any(ref['id'] == entry['id'] for ref in referenced_entry['referenced_by']) 180 + if not already_referenced: 181 + referenced_entry['referenced_by'].append({ 182 + 'id': entry['id'], 183 + 'link': entry['link'], 184 + 'title': entry['title'], 185 + 'feed_title': entry['feed_title'] 186 + }) 187 + 188 + # Create the thread data structure 189 + thread_data = {} 190 + for entry in all_entries: 191 + thread_data[entry['id']] = { 192 + 'id': entry['id'], 193 + 'title': entry['title'], 194 + 'link': entry['link'], 195 + 'feed_title': entry['feed_title'], 196 + 'references': entry['references'], 197 + 'referenced_by': entry['referenced_by'] 198 + } 199 + 200 + # Write the thread data to a JSON file 201 + with open('threads.json', 'w') as f: 202 + json.dump(thread_data, f, indent=2) 203 + 204 + print(f"Thread data successfully written to threads.json", file=sys.stderr) 205 + 206 + # Generate some statistics 207 + entries_with_references = sum(1 for entry in all_entries if entry['references']) 208 + entries_with_referenced_by = sum(1 for entry in all_entries if entry['referenced_by']) 209 + 210 + print(f"\nThread Analysis:", file=sys.stderr) 211 + print(f"Total entries: {len(all_entries)}", file=sys.stderr) 212 + print(f"Entries that reference other entries: {entries_with_references}", file=sys.stderr) 213 + print(f"Entries referenced by other entries: {entries_with_referenced_by}", file=sys.stderr) 214 + 215 + if __name__ == "__main__": 216 + analyze_feed()
+8373
threads.json
··· 1 + { 2 + "https://mort.io/blog/coping-and-capping/": { 3 + "id": "https://mort.io/blog/coping-and-capping/", 4 + "title": "Coping and Capping", 5 + "link": "https://mort.io/blog/coping-and-capping/", 6 + "feed_title": "mort\u2019s mythop\u0153ia", 7 + "references": [], 8 + "referenced_by": [] 9 + }, 10 + "https://digitalflapjack.com/weeknotes/2025-04-07/": { 11 + "id": "https://digitalflapjack.com/weeknotes/2025-04-07/", 12 + "title": "Weeknotes: 7th April 2025", 13 + "link": "https://digitalflapjack.com/weeknotes/2025-04-07/", 14 + "feed_title": "Digital Flapjack", 15 + "references": [ 16 + { 17 + "id": "https://digitalflapjack.com/weeknotes/2025-03-31/", 18 + "link": "https://digitalflapjack.com/weeknotes/2025-03-31/", 19 + "title": "Weeknotes: 31th March 2025", 20 + "feed_title": "Digital Flapjack" 21 + } 22 + ], 23 + "referenced_by": [] 24 + }, 25 + "https://www.tunbury.org/ocaml-claude-box": { 26 + "id": "https://www.tunbury.org/ocaml-claude-box", 27 + "title": "Box API with OCaml and Claude", 28 + "link": "https://www.tunbury.org/ocaml-claude-box/", 29 + "feed_title": "Tunbury.ORG", 30 + "references": [], 31 + "referenced_by": [] 32 + }, 33 + "https://ancazugo.github.io/research/outreach/2025/04/06/weekly-notes": { 34 + "id": "https://ancazugo.github.io/research/outreach/2025/04/06/weekly-notes", 35 + "title": "2025-04-06 Weekly Notes", 36 + "link": "https://ancazugo.github.io/research/outreach/2025/04/06/weekly-notes.html", 37 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 38 + "references": [ 39 + { 40 + "id": "https://ancazugo.github.io/research/outreach/2025/03/23/weekly-notes", 41 + "link": "https://ancazugo.github.io/research/outreach/2025/03/23/weekly-notes.html", 42 + "title": "2025-03-23 Weekly Notes", 43 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog" 44 + } 45 + ], 46 + "referenced_by": [] 47 + }, 48 + "https://anil.recoil.org/notes/syncoid-sanoid-zfs": { 49 + "id": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 50 + "title": "Semi distributed filesystems with ZFS and Sanoid", 51 + "link": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 52 + "feed_title": "Anil Madhavapeddy's feed", 53 + "references": [ 54 + { 55 + "id": "https://anil.recoil.org/projects/rsn", 56 + "link": "https://anil.recoil.org/projects/rsn", 57 + "title": "Remote Sensing of Nature", 58 + "feed_title": "Anil Madhavapeddy's feed" 59 + }, 60 + { 61 + "id": "https://anil.recoil.org/projects/life", 62 + "link": "https://anil.recoil.org/projects/life", 63 + "title": "Mapping LIFE on Earth", 64 + "feed_title": "Anil Madhavapeddy's feed" 65 + }, 66 + { 67 + "id": "https://anil.recoil.org/projects/ce", 68 + "link": "https://anil.recoil.org/projects/ce", 69 + "title": "Conservation Evidence Copilots", 70 + "feed_title": "Anil Madhavapeddy's feed" 71 + }, 72 + { 73 + "id": "https://www.tunbury.org/kingston-drives", 74 + "link": "https://www.tunbury.org/kingston-drives/", 75 + "title": "More Kingston Drives", 76 + "feed_title": "Tunbury.ORG" 77 + }, 78 + { 79 + "id": "https://www.tunbury.org/ubuntu-with-zfs-root", 80 + "link": "https://www.tunbury.org/ubuntu-with-zfs-root/", 81 + "title": "Ubuntu with ZFS root", 82 + "feed_title": "Tunbury.ORG" 83 + } 84 + ], 85 + "referenced_by": [] 86 + }, 87 + "https://mort.io/blog/happy-day/": { 88 + "id": "https://mort.io/blog/happy-day/", 89 + "title": "Rewarding influence", 90 + "link": "https://mort.io/blog/happy-day/", 91 + "feed_title": "mort\u2019s mythop\u0153ia", 92 + "references": [ 93 + { 94 + "id": "https://mort.io/blog/tdis-accepted/", 95 + "link": "https://mort.io/blog/tdis-accepted/", 96 + "title": "Not one but two accepted papers and a Ph.D.", 97 + "feed_title": "mort\u2019s mythop\u0153ia" 98 + } 99 + ], 100 + "referenced_by": [] 101 + }, 102 + "https://www.tunbury.org/opam-repo-ci": { 103 + "id": "https://www.tunbury.org/opam-repo-ci", 104 + "title": "opam repo ci job timeouts", 105 + "link": "https://www.tunbury.org/opam-repo-ci/", 106 + "feed_title": "Tunbury.ORG", 107 + "references": [], 108 + "referenced_by": [] 109 + }, 110 + "https://anil.recoil.org/notes/propl-at-splash": { 111 + "id": "https://anil.recoil.org/notes/propl-at-splash", 112 + "title": "2nd Programming for the Planet workshop CFP out", 113 + "link": "https://anil.recoil.org/notes/propl-at-splash", 114 + "feed_title": "Anil Madhavapeddy's feed", 115 + "references": [], 116 + "referenced_by": [] 117 + }, 118 + "https://www.dra27.uk/blog/platform/2025/04/03/cloexec": { 119 + "id": "https://www.dra27.uk/blog/platform/2025/04/03/cloexec", 120 + "title": "Everything is a file; except when it\u2019s not", 121 + "link": "https://www.dra27.uk/blog/platform/2025/04/03/cloexec.html", 122 + "feed_title": "Notes from the Windows corner", 123 + "references": [], 124 + "referenced_by": [] 125 + }, 126 + "https://www.tunbury.org/kingston-drives": { 127 + "id": "https://www.tunbury.org/kingston-drives", 128 + "title": "More Kingston Drives", 129 + "link": "https://www.tunbury.org/kingston-drives/", 130 + "feed_title": "Tunbury.ORG", 131 + "references": [], 132 + "referenced_by": [ 133 + { 134 + "id": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 135 + "link": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 136 + "title": "Semi distributed filesystems with ZFS and Sanoid", 137 + "feed_title": "Anil Madhavapeddy's feed" 138 + } 139 + ] 140 + }, 141 + "https://www.tunbury.org/ubuntu-with-zfs-root": { 142 + "id": "https://www.tunbury.org/ubuntu-with-zfs-root", 143 + "title": "Ubuntu with ZFS root", 144 + "link": "https://www.tunbury.org/ubuntu-with-zfs-root/", 145 + "feed_title": "Tunbury.ORG", 146 + "references": [], 147 + "referenced_by": [ 148 + { 149 + "id": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 150 + "link": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 151 + "title": "Semi distributed filesystems with ZFS and Sanoid", 152 + "feed_title": "Anil Madhavapeddy's feed" 153 + } 154 + ] 155 + }, 156 + "https://www.tunbury.org/go-docker": { 157 + "id": "https://www.tunbury.org/go-docker", 158 + "title": "Updating Docker and Go", 159 + "link": "https://www.tunbury.org/go-docker/", 160 + "feed_title": "Tunbury.ORG", 161 + "references": [], 162 + "referenced_by": [] 163 + }, 164 + "https://digitalflapjack.com/weeknotes/2025-03-31/": { 165 + "id": "https://digitalflapjack.com/weeknotes/2025-03-31/", 166 + "title": "Weeknotes: 31th March 2025", 167 + "link": "https://digitalflapjack.com/weeknotes/2025-03-31/", 168 + "feed_title": "Digital Flapjack", 169 + "references": [], 170 + "referenced_by": [ 171 + { 172 + "id": "https://digitalflapjack.com/weeknotes/2025-04-07/", 173 + "link": "https://digitalflapjack.com/weeknotes/2025-04-07/", 174 + "title": "Weeknotes: 7th April 2025", 175 + "feed_title": "Digital Flapjack" 176 + } 177 + ] 178 + }, 179 + "https://patrick.sirref.org/weekly-2025-03-31/": { 180 + "id": "https://patrick.sirref.org/weekly-2025-03-31/", 181 + "title": "Shelter, Hazel and More!", 182 + "link": "https://patrick.sirref.org/weekly-2025-03-31/", 183 + "feed_title": "Weeklies", 184 + "references": [], 185 + "referenced_by": [] 186 + }, 187 + "https://www.tunbury.org/opam-post-deps": { 188 + "id": "https://www.tunbury.org/opam-post-deps", 189 + "title": "Installation order for opam packages", 190 + "link": "https://www.tunbury.org/opam-post-deps/", 191 + "feed_title": "Tunbury.ORG", 192 + "references": [], 193 + "referenced_by": [] 194 + }, 195 + "https://ancazugo.github.io/research/outreach/2025/03/30/weekly-notes": { 196 + "id": "https://ancazugo.github.io/research/outreach/2025/03/30/weekly-notes", 197 + "title": "2025-03-30 Weekly Notes", 198 + "link": "https://ancazugo.github.io/research/outreach/2025/03/30/weekly-notes.html", 199 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 200 + "references": [], 201 + "referenced_by": [] 202 + }, 203 + "https://mort.io/blog/tdis-accepted/": { 204 + "id": "https://mort.io/blog/tdis-accepted/", 205 + "title": "Not one but two accepted papers and a Ph.D.", 206 + "link": "https://mort.io/blog/tdis-accepted/", 207 + "feed_title": "mort\u2019s mythop\u0153ia", 208 + "references": [], 209 + "referenced_by": [ 210 + { 211 + "id": "https://mort.io/blog/happy-day/", 212 + "link": "https://mort.io/blog/happy-day/", 213 + "title": "Rewarding influence", 214 + "feed_title": "mort\u2019s mythop\u0153ia" 215 + } 216 + ] 217 + }, 218 + "https://www.tunbury.org/box-diff": { 219 + "id": "https://www.tunbury.org/box-diff", 220 + "title": "Box Diff Tool", 221 + "link": "https://www.tunbury.org/box-diff/", 222 + "feed_title": "Tunbury.ORG", 223 + "references": [], 224 + "referenced_by": [] 225 + }, 226 + "https://anil.recoil.org/news/2025-npu-bench-1": { 227 + "id": "https://anil.recoil.org/news/2025-npu-bench-1", 228 + "title": "New preprint on benchmarking ultra-low power neural accelerators", 229 + "link": "https://anil.recoil.org/news/2025-npu-bench-1", 230 + "feed_title": "Anil Madhavapeddy's feed", 231 + "references": [ 232 + { 233 + "id": "https://anil.recoil.org/projects/osmose", 234 + "link": "https://anil.recoil.org/projects/osmose", 235 + "title": "Interspatial OS", 236 + "feed_title": "Anil Madhavapeddy's feed" 237 + } 238 + ], 239 + "referenced_by": [] 240 + }, 241 + "https://www.dra27.uk/blog/platform/2025/03/28/ocaml-dev-meeting": { 242 + "id": "https://www.dra27.uk/blog/platform/2025/03/28/ocaml-dev-meeting", 243 + "title": "OCaml Core Dev Meeting", 244 + "link": "https://www.dra27.uk/blog/platform/2025/03/28/ocaml-dev-meeting.html", 245 + "feed_title": "Notes from the Windows corner", 246 + "references": [], 247 + "referenced_by": [] 248 + }, 249 + "https://www.tunbury.org/dell-poweredge-r640": { 250 + "id": "https://www.tunbury.org/dell-poweredge-r640", 251 + "title": "Dell PowerEdge R640 Storage Server", 252 + "link": "https://www.tunbury.org/dell-poweredge-r640/", 253 + "feed_title": "Tunbury.ORG", 254 + "references": [], 255 + "referenced_by": [] 256 + }, 257 + "https://ryan.freumh.org/how-this-site-is-built.html": { 258 + "id": "https://ryan.freumh.org/how-this-site-is-built.html", 259 + "title": "How This Site Is Build", 260 + "link": "https://ryan.freumh.org/how-this-site-is-built.html", 261 + "feed_title": "ryan.freumh.org", 262 + "references": [], 263 + "referenced_by": [] 264 + }, 265 + "https://www.tunbury.org/freebsd-14.2": { 266 + "id": "https://www.tunbury.org/freebsd-14.2", 267 + "title": "FreeBSD 14.2 Upgrade", 268 + "link": "https://www.tunbury.org/freebsd-14.2/", 269 + "feed_title": "Tunbury.ORG", 270 + "references": [], 271 + "referenced_by": [] 272 + }, 273 + "https://www.forester-notes.org/JVIT/": { 274 + "id": "https://www.forester-notes.org/JVIT/", 275 + "title": "Towards Forester 5.0 II: a design for canonical URLs", 276 + "link": "https://www.forester-notes.org/JVIT/", 277 + "feed_title": "Forester Blog", 278 + "references": [ 279 + { 280 + "id": "https://www.forester-notes.org/OYOJ/", 281 + "link": "https://www.forester-notes.org/OYOJ/", 282 + "title": "Towards Forester 5.0: a design for global identity", 283 + "feed_title": "Forester Blog" 284 + } 285 + ], 286 + "referenced_by": [] 287 + }, 288 + "https://www.tunbury.org/topological-sort": { 289 + "id": "https://www.tunbury.org/topological-sort", 290 + "title": "Topological Sort of Packages", 291 + "link": "https://www.tunbury.org/topological-sort/", 292 + "feed_title": "Tunbury.ORG", 293 + "references": [], 294 + "referenced_by": [] 295 + }, 296 + "https://digitalflapjack.com/weeknotes/2025-03-24/": { 297 + "id": "https://digitalflapjack.com/weeknotes/2025-03-24/", 298 + "title": "Weeknotes: 24th March 2025", 299 + "link": "https://digitalflapjack.com/weeknotes/2025-03-24/", 300 + "feed_title": "Digital Flapjack", 301 + "references": [], 302 + "referenced_by": [] 303 + }, 304 + "https://ryan.freumh.org/2025-03-24.html": { 305 + "id": "https://ryan.freumh.org/2025-03-24.html", 306 + "title": "Mon 24 Mar 2025", 307 + "link": "https://ryan.freumh.org/2025-03-24.html", 308 + "feed_title": "ryan.freumh.org", 309 + "references": [ 310 + { 311 + "id": "https://ryan.freumh.org/2025-03-17.html", 312 + "link": "https://ryan.freumh.org/2025-03-17.html", 313 + "title": "Mon 17 Mar 2025", 314 + "feed_title": "ryan.freumh.org" 315 + } 316 + ], 317 + "referenced_by": [ 318 + { 319 + "id": "https://ryan.freumh.org/2025-03-17.html", 320 + "link": "https://ryan.freumh.org/2025-03-17.html", 321 + "title": "Mon 17 Mar 2025", 322 + "feed_title": "ryan.freumh.org" 323 + } 324 + ] 325 + }, 326 + "https://ancazugo.github.io/research/outreach/2025/03/23/weekly-notes": { 327 + "id": "https://ancazugo.github.io/research/outreach/2025/03/23/weekly-notes", 328 + "title": "2025-03-23 Weekly Notes", 329 + "link": "https://ancazugo.github.io/research/outreach/2025/03/23/weekly-notes.html", 330 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 331 + "references": [], 332 + "referenced_by": [ 333 + { 334 + "id": "https://ancazugo.github.io/research/outreach/2025/04/06/weekly-notes", 335 + "link": "https://ancazugo.github.io/research/outreach/2025/04/06/weekly-notes.html", 336 + "title": "2025-04-06 Weekly Notes", 337 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog" 338 + } 339 + ] 340 + }, 341 + "https://anil.recoil.org/notes/life-official-statistic": { 342 + "id": "https://anil.recoil.org/notes/life-official-statistic", 343 + "title": "LIFE becomes an Official Statistic of the UK government", 344 + "link": "https://anil.recoil.org/notes/life-official-statistic", 345 + "feed_title": "Anil Madhavapeddy's feed", 346 + "references": [ 347 + { 348 + "id": "https://anil.recoil.org/projects/life", 349 + "link": "https://anil.recoil.org/projects/life", 350 + "title": "Mapping LIFE on Earth", 351 + "feed_title": "Anil Madhavapeddy's feed" 352 + }, 353 + { 354 + "id": "https://anil.recoil.org/projects/plancomp", 355 + "link": "https://anil.recoil.org/projects/plancomp", 356 + "title": "Planetary Computing", 357 + "feed_title": "Anil Madhavapeddy's feed" 358 + }, 359 + { 360 + "id": "https://anil.recoil.org/ideas/effective-geospatial-code", 361 + "link": "https://anil.recoil.org/ideas/effective-geospatial-code", 362 + "title": "Effective geospatial code in OCaml", 363 + "feed_title": "Anil Madhavapeddy's feed" 364 + }, 365 + { 366 + "id": "https://anil.recoil.org/projects/ce", 367 + "link": "https://anil.recoil.org/projects/ce", 368 + "title": "Conservation Evidence Copilots", 369 + "feed_title": "Anil Madhavapeddy's feed" 370 + } 371 + ], 372 + "referenced_by": [] 373 + }, 374 + "https://digitalflapjack.com/weeknotes/2025-03-17/": { 375 + "id": "https://digitalflapjack.com/weeknotes/2025-03-17/", 376 + "title": "Weeknotes: 17th March 2025", 377 + "link": "https://digitalflapjack.com/weeknotes/2025-03-17/", 378 + "feed_title": "Digital Flapjack", 379 + "references": [ 380 + { 381 + "id": "https://digitalflapjack.com/blog/the-partially-dynamic-web/", 382 + "link": "https://digitalflapjack.com/blog/the-partially-dynamic-web/", 383 + "title": "The Partially Dynamic Web", 384 + "feed_title": "Digital Flapjack" 385 + } 386 + ], 387 + "referenced_by": [] 388 + }, 389 + "https://ryan.freumh.org/2025-03-17.html": { 390 + "id": "https://ryan.freumh.org/2025-03-17.html", 391 + "title": "Mon 17 Mar 2025", 392 + "link": "https://ryan.freumh.org/2025-03-17.html", 393 + "feed_title": "ryan.freumh.org", 394 + "references": [ 395 + { 396 + "id": "https://ryan.freumh.org/2025-03-10.html", 397 + "link": "https://ryan.freumh.org/2025-03-10.html", 398 + "title": "Mon 10 Mar 2025", 399 + "feed_title": "ryan.freumh.org" 400 + }, 401 + { 402 + "id": "https://ryan.freumh.org/2025-03-24.html", 403 + "link": "https://ryan.freumh.org/2025-03-24.html", 404 + "title": "Mon 24 Mar 2025", 405 + "feed_title": "ryan.freumh.org" 406 + } 407 + ], 408 + "referenced_by": [ 409 + { 410 + "id": "https://ryan.freumh.org/2025-03-24.html", 411 + "link": "https://ryan.freumh.org/2025-03-24.html", 412 + "title": "Mon 24 Mar 2025", 413 + "feed_title": "ryan.freumh.org" 414 + }, 415 + { 416 + "id": "https://ryan.freumh.org/2025-03-10.html", 417 + "link": "https://ryan.freumh.org/2025-03-10.html", 418 + "title": "Mon 10 Mar 2025", 419 + "feed_title": "ryan.freumh.org" 420 + } 421 + ] 422 + }, 423 + "https://ancazugo.github.io/research/outreach/2025/03/16/weekly-notes": { 424 + "id": "https://ancazugo.github.io/research/outreach/2025/03/16/weekly-notes", 425 + "title": "2025-03-16 Weekly Notes", 426 + "link": "https://ancazugo.github.io/research/outreach/2025/03/16/weekly-notes.html", 427 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 428 + "references": [], 429 + "referenced_by": [] 430 + }, 431 + "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop": { 432 + "id": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 433 + "title": "A fully AI-generated paper just passed peer review; notes from our evidence synthesis workshop", 434 + "link": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 435 + "feed_title": "Anil Madhavapeddy's feed", 436 + "references": [ 437 + { 438 + "id": "https://anil.recoil.org/projects/ce", 439 + "link": "https://anil.recoil.org/projects/ce", 440 + "title": "Conservation Evidence Copilots", 441 + "feed_title": "Anil Madhavapeddy's feed" 442 + }, 443 + { 444 + "id": "https://anil.recoil.org/notes/ai-contamination-of-papers", 445 + "link": "https://anil.recoil.org/notes/ai-contamination-of-papers", 446 + "title": "Fake papers abound in the literature", 447 + "feed_title": "Anil Madhavapeddy's feed" 448 + }, 449 + { 450 + "id": "https://anil.recoil.org/notes/uk-national-data-lib", 451 + "link": "https://anil.recoil.org/notes/uk-national-data-lib", 452 + "title": "Thoughts on the National Data Library and private research data", 453 + "feed_title": "Anil Madhavapeddy's feed" 454 + }, 455 + { 456 + "id": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 457 + "link": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 458 + "title": "The AIETF arrives, and not a moment too soon", 459 + "feed_title": "Anil Madhavapeddy's feed" 460 + } 461 + ], 462 + "referenced_by": [] 463 + }, 464 + "https://digitalflapjack.com/weeknotes/2025-03-10/": { 465 + "id": "https://digitalflapjack.com/weeknotes/2025-03-10/", 466 + "title": "Weeknotes: 10th March 2025", 467 + "link": "https://digitalflapjack.com/weeknotes/2025-03-10/", 468 + "feed_title": "Digital Flapjack", 469 + "references": [ 470 + { 471 + "id": "https://digitalflapjack.com/blog/tcc-part2/", 472 + "link": "https://digitalflapjack.com/blog/tcc-part2/", 473 + "title": "Tiny Code Christmas - part 2: learning OCaml and that demos are mostly functional", 474 + "feed_title": "Digital Flapjack" 475 + } 476 + ], 477 + "referenced_by": [] 478 + }, 479 + "https://ryan.freumh.org/2025-03-10.html": { 480 + "id": "https://ryan.freumh.org/2025-03-10.html", 481 + "title": "Mon 10 Mar 2025", 482 + "link": "https://ryan.freumh.org/2025-03-10.html", 483 + "feed_title": "ryan.freumh.org", 484 + "references": [ 485 + { 486 + "id": "https://ryan.freumh.org/2025-03-03.html", 487 + "link": "https://ryan.freumh.org/2025-03-03.html", 488 + "title": "Mon 3 Mar 2025", 489 + "feed_title": "ryan.freumh.org" 490 + }, 491 + { 492 + "id": "https://ryan.freumh.org/2025-03-17.html", 493 + "link": "https://ryan.freumh.org/2025-03-17.html", 494 + "title": "Mon 17 Mar 2025", 495 + "feed_title": "ryan.freumh.org" 496 + } 497 + ], 498 + "referenced_by": [ 499 + { 500 + "id": "https://ryan.freumh.org/2025-03-17.html", 501 + "link": "https://ryan.freumh.org/2025-03-17.html", 502 + "title": "Mon 17 Mar 2025", 503 + "feed_title": "ryan.freumh.org" 504 + }, 505 + { 506 + "id": "https://ryan.freumh.org/2025-03-03.html", 507 + "link": "https://ryan.freumh.org/2025-03-03.html", 508 + "title": "Mon 3 Mar 2025", 509 + "feed_title": "ryan.freumh.org" 510 + } 511 + ] 512 + }, 513 + "https://ancazugo.github.io/research/outreach/2025/03/09/weekly-notes": { 514 + "id": "https://ancazugo.github.io/research/outreach/2025/03/09/weekly-notes", 515 + "title": "2025-03-09 Weekly Notes", 516 + "link": "https://ancazugo.github.io/research/outreach/2025/03/09/weekly-notes.html", 517 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 518 + "references": [], 519 + "referenced_by": [] 520 + }, 521 + "https://www.forester-notes.org/OYOJ/": { 522 + "id": "https://www.forester-notes.org/OYOJ/", 523 + "title": "Towards Forester 5.0: a design for global identity", 524 + "link": "https://www.forester-notes.org/OYOJ/", 525 + "feed_title": "Forester Blog", 526 + "references": [], 527 + "referenced_by": [ 528 + { 529 + "id": "https://www.forester-notes.org/JVIT/", 530 + "link": "https://www.forester-notes.org/JVIT/", 531 + "title": "Towards Forester 5.0 II: a design for canonical URLs", 532 + "feed_title": "Forester Blog" 533 + } 534 + ] 535 + }, 536 + "https://anil.recoil.org/notes/disentangling-git-with-bluesky": { 537 + "id": "https://anil.recoil.org/notes/disentangling-git-with-bluesky", 538 + "title": "Socially self-hosting source code with Tangled on Bluesky", 539 + "link": "https://anil.recoil.org/notes/disentangling-git-with-bluesky", 540 + "feed_title": "Anil Madhavapeddy's feed", 541 + "references": [ 542 + { 543 + "id": "https://anil.recoil.org/notes/opam-1-1-beta", 544 + "link": "https://anil.recoil.org/notes/opam-1-1-beta", 545 + "title": "OPAM 1.1 beta available, with pretty colours", 546 + "feed_title": "Anil Madhavapeddy's feed" 547 + }, 548 + { 549 + "id": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 550 + "link": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 551 + "title": "Using AT Proto for more than just Bluesky posts", 552 + "feed_title": "Anil Madhavapeddy's feed" 553 + }, 554 + { 555 + "id": "https://anil.recoil.org/ideas/version-control-matrix", 556 + "link": "https://anil.recoil.org/ideas/version-control-matrix", 557 + "title": "Decentralised Capability-based Code Collaboration using Matrix", 558 + "feed_title": "Anil Madhavapeddy's feed" 559 + } 560 + ], 561 + "referenced_by": [] 562 + }, 563 + "https://anil.recoil.org/notes/the-state-of-ai-tools": { 564 + "id": "https://anil.recoil.org/notes/the-state-of-ai-tools", 565 + "title": "Our EEG group discussion on 'useful' AI tools", 566 + "link": "https://anil.recoil.org/notes/the-state-of-ai-tools", 567 + "feed_title": "Anil Madhavapeddy's feed", 568 + "references": [ 569 + { 570 + "id": "https://anil.recoil.org/notes/claude-copilot-sandbox", 571 + "link": "https://anil.recoil.org/notes/claude-copilot-sandbox", 572 + "title": "Oh my Claude, we need agentic copilot sandboxing right now", 573 + "feed_title": "Anil Madhavapeddy's feed" 574 + }, 575 + { 576 + "id": "https://anil.recoil.org/notes/deepseek-r1-advances", 577 + "link": "https://anil.recoil.org/notes/deepseek-r1-advances", 578 + "title": "Deepdive into Deepseek advances", 579 + "feed_title": "Anil Madhavapeddy's feed" 580 + }, 581 + { 582 + "id": "https://anil.recoil.org/projects/ce", 583 + "link": "https://anil.recoil.org/projects/ce", 584 + "title": "Conservation Evidence Copilots", 585 + "feed_title": "Anil Madhavapeddy's feed" 586 + } 587 + ], 588 + "referenced_by": [] 589 + }, 590 + "https://anil.recoil.org/notes/deprecating-ocaml-408": { 591 + "id": "https://anil.recoil.org/notes/deprecating-ocaml-408", 592 + "title": "Are you still using OCaml 4.08 or earlier? If so, we need to know", 593 + "link": "https://anil.recoil.org/notes/deprecating-ocaml-408", 594 + "feed_title": "Anil Madhavapeddy's feed", 595 + "references": [], 596 + "referenced_by": [] 597 + }, 598 + "https://digitalflapjack.com/weeknotes/2025-03-03/": { 599 + "id": "https://digitalflapjack.com/weeknotes/2025-03-03/", 600 + "title": "Weeknotes: 3rd March 2025", 601 + "link": "https://digitalflapjack.com/weeknotes/2025-03-03/", 602 + "feed_title": "Digital Flapjack", 603 + "references": [ 604 + { 605 + "id": "https://digitalflapjack.com/weeknotes/2025-02-24/", 606 + "link": "https://digitalflapjack.com/weeknotes/2025-02-24/", 607 + "title": "Weeknotes: 24th February 2025", 608 + "feed_title": "Digital Flapjack" 609 + }, 610 + { 611 + "id": "https://digitalflapjack.com/blog/go-wasm-workers/", 612 + "link": "https://digitalflapjack.com/blog/go-wasm-workers/", 613 + "title": "Using Go with Wasm and Web Workers", 614 + "feed_title": "Digital Flapjack" 615 + } 616 + ], 617 + "referenced_by": [] 618 + }, 619 + "https://ryan.freumh.org/2025-03-03.html": { 620 + "id": "https://ryan.freumh.org/2025-03-03.html", 621 + "title": "Mon 3 Mar 2025", 622 + "link": "https://ryan.freumh.org/2025-03-03.html", 623 + "feed_title": "ryan.freumh.org", 624 + "references": [ 625 + { 626 + "id": "https://ryan.freumh.org/2025-02-25.html", 627 + "link": "https://ryan.freumh.org/2025-02-25.html", 628 + "title": "Tue 25 Feb 2025", 629 + "feed_title": "ryan.freumh.org" 630 + }, 631 + { 632 + "id": "https://ryan.freumh.org/2025-03-10.html", 633 + "link": "https://ryan.freumh.org/2025-03-10.html", 634 + "title": "Mon 10 Mar 2025", 635 + "feed_title": "ryan.freumh.org" 636 + } 637 + ], 638 + "referenced_by": [ 639 + { 640 + "id": "https://ryan.freumh.org/2025-03-10.html", 641 + "link": "https://ryan.freumh.org/2025-03-10.html", 642 + "title": "Mon 10 Mar 2025", 643 + "feed_title": "ryan.freumh.org" 644 + }, 645 + { 646 + "id": "https://ryan.freumh.org/2025-02-25.html", 647 + "link": "https://ryan.freumh.org/2025-02-25.html", 648 + "title": "Tue 25 Feb 2025", 649 + "feed_title": "ryan.freumh.org" 650 + } 651 + ] 652 + }, 653 + "https://anil.recoil.org/notes/claude-copilot-sandbox": { 654 + "id": "https://anil.recoil.org/notes/claude-copilot-sandbox", 655 + "title": "Oh my Claude, we need agentic copilot sandboxing right now", 656 + "link": "https://anil.recoil.org/notes/claude-copilot-sandbox", 657 + "feed_title": "Anil Madhavapeddy's feed", 658 + "references": [ 659 + { 660 + "id": "https://anil.recoil.org/news/2024-hope-bastion-1", 661 + "link": "https://anil.recoil.org/news/2024-hope-bastion-1", 662 + "title": "Towards security specifications for agentic AIs", 663 + "feed_title": "Anil Madhavapeddy's feed" 664 + } 665 + ], 666 + "referenced_by": [ 667 + { 668 + "id": "https://anil.recoil.org/notes/the-state-of-ai-tools", 669 + "link": "https://anil.recoil.org/notes/the-state-of-ai-tools", 670 + "title": "Our EEG group discussion on 'useful' AI tools", 671 + "feed_title": "Anil Madhavapeddy's feed" 672 + } 673 + ] 674 + }, 675 + "https://anil.recoil.org/ideas/tracing-hdl-with-effects": { 676 + "id": "https://anil.recoil.org/ideas/tracing-hdl-with-effects", 677 + "title": "A hardware description language using OCaml effects", 678 + "link": "https://anil.recoil.org/ideas/tracing-hdl-with-effects", 679 + "feed_title": "Anil Madhavapeddy's feed", 680 + "references": [ 681 + { 682 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 683 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 684 + "title": "Programming FPGAs using OCaml", 685 + "feed_title": "Anil Madhavapeddy's feed" 686 + }, 687 + { 688 + "id": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 689 + "link": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 690 + "title": "Using computational SSDs for vector databases", 691 + "feed_title": "Anil Madhavapeddy's feed" 692 + } 693 + ], 694 + "referenced_by": [] 695 + }, 696 + "https://ancazugo.github.io/research/outreach/2025/02/28/weekly-notes": { 697 + "id": "https://ancazugo.github.io/research/outreach/2025/02/28/weekly-notes", 698 + "title": "2025-02-28 Weekly Notes", 699 + "link": "https://ancazugo.github.io/research/outreach/2025/02/28/weekly-notes.html", 700 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 701 + "references": [], 702 + "referenced_by": [] 703 + }, 704 + "https://anil.recoil.org/notes/ai-ietf-aiprefs": { 705 + "id": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 706 + "title": "The AIETF arrives, and not a moment too soon", 707 + "link": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 708 + "feed_title": "Anil Madhavapeddy's feed", 709 + "references": [ 710 + { 711 + "id": "https://anil.recoil.org/projects/ce", 712 + "link": "https://anil.recoil.org/projects/ce", 713 + "title": "Conservation Evidence Copilots", 714 + "feed_title": "Anil Madhavapeddy's feed" 715 + }, 716 + { 717 + "id": "https://anil.recoil.org/notes/bushel-lives", 718 + "link": "https://anil.recoil.org/notes/bushel-lives", 719 + "title": "Arise Bushel, my sixth generation oxidised website", 720 + "feed_title": "Anil Madhavapeddy's feed" 721 + }, 722 + { 723 + "id": "https://anil.recoil.org/notes/uk-national-data-lib", 724 + "link": "https://anil.recoil.org/notes/uk-national-data-lib", 725 + "title": "Thoughts on the National Data Library and private research data", 726 + "feed_title": "Anil Madhavapeddy's feed" 727 + } 728 + ], 729 + "referenced_by": [ 730 + { 731 + "id": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 732 + "link": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 733 + "title": "A fully AI-generated paper just passed peer review; notes from our evidence synthesis workshop", 734 + "feed_title": "Anil Madhavapeddy's feed" 735 + } 736 + ] 737 + }, 738 + "http://localhost:4000/2025/02/28/biospace": { 739 + "id": "http://localhost:4000/2025/02/28/biospace", 740 + "title": "Blogging BIOSPACE25!", 741 + "link": "http://localhost:4000/2025/02/28/biospace.html", 742 + "feed_title": "Onkar Gulati", 743 + "references": [], 744 + "referenced_by": [] 745 + }, 746 + "https://ryan.freumh.org/2025-02-25.html": { 747 + "id": "https://ryan.freumh.org/2025-02-25.html", 748 + "title": "Tue 25 Feb 2025", 749 + "link": "https://ryan.freumh.org/2025-02-25.html", 750 + "feed_title": "ryan.freumh.org", 751 + "references": [ 752 + { 753 + "id": "https://ryan.freumh.org/2025-02-17.html", 754 + "link": "https://ryan.freumh.org/2025-02-17.html", 755 + "title": "Mon 17 Feb 2025", 756 + "feed_title": "ryan.freumh.org" 757 + }, 758 + { 759 + "id": "https://ryan.freumh.org/2025-03-03.html", 760 + "link": "https://ryan.freumh.org/2025-03-03.html", 761 + "title": "Mon 3 Mar 2025", 762 + "feed_title": "ryan.freumh.org" 763 + } 764 + ], 765 + "referenced_by": [ 766 + { 767 + "id": "https://ryan.freumh.org/2025-03-03.html", 768 + "link": "https://ryan.freumh.org/2025-03-03.html", 769 + "title": "Mon 3 Mar 2025", 770 + "feed_title": "ryan.freumh.org" 771 + }, 772 + { 773 + "id": "https://ryan.freumh.org/2025-02-17.html", 774 + "link": "https://ryan.freumh.org/2025-02-17.html", 775 + "title": "Mon 17 Feb 2025", 776 + "feed_title": "ryan.freumh.org" 777 + } 778 + ] 779 + }, 780 + "https://digitalflapjack.com/blog/go-wasm-workers/": { 781 + "id": "https://digitalflapjack.com/blog/go-wasm-workers/", 782 + "title": "Using Go with Wasm and Web Workers", 783 + "link": "https://digitalflapjack.com/blog/go-wasm-workers/", 784 + "feed_title": "Digital Flapjack", 785 + "references": [], 786 + "referenced_by": [ 787 + { 788 + "id": "https://digitalflapjack.com/weeknotes/2025-03-03/", 789 + "link": "https://digitalflapjack.com/weeknotes/2025-03-03/", 790 + "title": "Weeknotes: 3rd March 2025", 791 + "feed_title": "Digital Flapjack" 792 + } 793 + ] 794 + }, 795 + "https://digitalflapjack.com/weeknotes/2025-02-24/": { 796 + "id": "https://digitalflapjack.com/weeknotes/2025-02-24/", 797 + "title": "Weeknotes: 24th February 2025", 798 + "link": "https://digitalflapjack.com/weeknotes/2025-02-24/", 799 + "feed_title": "Digital Flapjack", 800 + "references": [ 801 + { 802 + "id": "https://digitalflapjack.com/weeknotes/2025-02-17/", 803 + "link": "https://digitalflapjack.com/weeknotes/2025-02-17/", 804 + "title": "Weeknotes: 17th February 2025", 805 + "feed_title": "Digital Flapjack" 806 + } 807 + ], 808 + "referenced_by": [ 809 + { 810 + "id": "https://digitalflapjack.com/weeknotes/2025-03-03/", 811 + "link": "https://digitalflapjack.com/weeknotes/2025-03-03/", 812 + "title": "Weeknotes: 3rd March 2025", 813 + "feed_title": "Digital Flapjack" 814 + } 815 + ] 816 + }, 817 + "https://ancazugo.github.io/research/outreach/2025/02/21/weekly-notes": { 818 + "id": "https://ancazugo.github.io/research/outreach/2025/02/21/weekly-notes", 819 + "title": "2025-02-21 Weekly Notes", 820 + "link": "https://ancazugo.github.io/research/outreach/2025/02/21/weekly-notes.html", 821 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 822 + "references": [], 823 + "referenced_by": [] 824 + }, 825 + "https://anil.recoil.org/notes/forest-apps-and-benchmarks": { 826 + "id": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 827 + "title": "A trio of papers I read on biodiversity and forests this week", 828 + "link": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 829 + "feed_title": "Anil Madhavapeddy's feed", 830 + "references": [ 831 + { 832 + "id": "https://anil.recoil.org/ideas/digitisation-of-insects", 833 + "link": "https://anil.recoil.org/ideas/digitisation-of-insects", 834 + "title": "Affordable digitisation of insect collections using photogrammetry", 835 + "feed_title": "Anil Madhavapeddy's feed" 836 + }, 837 + { 838 + "id": "https://anil.recoil.org/ideas/differentiable-abm", 839 + "link": "https://anil.recoil.org/ideas/differentiable-abm", 840 + "title": "Scalable agent-based models for optimized policy design", 841 + "feed_title": "Anil Madhavapeddy's feed" 842 + }, 843 + { 844 + "id": "https://anil.recoil.org/ideas/rev-abm", 845 + "link": "https://anil.recoil.org/ideas/rev-abm", 846 + "title": "Reverse emulating agent-based models for policy simulation", 847 + "feed_title": "Anil Madhavapeddy's feed" 848 + }, 849 + { 850 + "id": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 851 + "link": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 852 + "title": "COMPASS 2024 report on the CoRE stack RIC meeting", 853 + "feed_title": "Anil Madhavapeddy's feed" 854 + } 855 + ], 856 + "referenced_by": [] 857 + }, 858 + "https://digitalflapjack.com/weeknotes/2025-02-17/": { 859 + "id": "https://digitalflapjack.com/weeknotes/2025-02-17/", 860 + "title": "Weeknotes: 17th February 2025", 861 + "link": "https://digitalflapjack.com/weeknotes/2025-02-17/", 862 + "feed_title": "Digital Flapjack", 863 + "references": [ 864 + { 865 + "id": "https://digitalflapjack.com/weeknotes/2025-02-10/", 866 + "link": "https://digitalflapjack.com/weeknotes/2025-02-10/", 867 + "title": "Weeknotes: 10th February 2025", 868 + "feed_title": "Digital Flapjack" 869 + } 870 + ], 871 + "referenced_by": [ 872 + { 873 + "id": "https://digitalflapjack.com/weeknotes/2025-02-24/", 874 + "link": "https://digitalflapjack.com/weeknotes/2025-02-24/", 875 + "title": "Weeknotes: 24th February 2025", 876 + "feed_title": "Digital Flapjack" 877 + } 878 + ] 879 + }, 880 + "https://patrick.sirref.org/weekly-2025-02-17/": { 881 + "id": "https://patrick.sirref.org/weekly-2025-02-17/", 882 + "title": "Vpnkit, Void Processes, LSP Servers", 883 + "link": "https://patrick.sirref.org/weekly-2025-02-17/", 884 + "feed_title": "Weeklies", 885 + "references": [], 886 + "referenced_by": [] 887 + }, 888 + "https://ryan.freumh.org/2025-02-17.html": { 889 + "id": "https://ryan.freumh.org/2025-02-17.html", 890 + "title": "Mon 17 Feb 2025", 891 + "link": "https://ryan.freumh.org/2025-02-17.html", 892 + "feed_title": "ryan.freumh.org", 893 + "references": [ 894 + { 895 + "id": "https://ryan.freumh.org/2025-02-10.html", 896 + "link": "https://ryan.freumh.org/2025-02-10.html", 897 + "title": "Mon 10 Feb 2025", 898 + "feed_title": "ryan.freumh.org" 899 + }, 900 + { 901 + "id": "https://ryan.freumh.org/2025-02-25.html", 902 + "link": "https://ryan.freumh.org/2025-02-25.html", 903 + "title": "Tue 25 Feb 2025", 904 + "feed_title": "ryan.freumh.org" 905 + } 906 + ], 907 + "referenced_by": [ 908 + { 909 + "id": "https://ryan.freumh.org/2025-02-25.html", 910 + "link": "https://ryan.freumh.org/2025-02-25.html", 911 + "title": "Tue 25 Feb 2025", 912 + "feed_title": "ryan.freumh.org" 913 + }, 914 + { 915 + "id": "https://ryan.freumh.org/2025-02-10.html", 916 + "link": "https://ryan.freumh.org/2025-02-10.html", 917 + "title": "Mon 10 Feb 2025", 918 + "feed_title": "ryan.freumh.org" 919 + } 920 + ] 921 + }, 922 + "https://anil.recoil.org/notes/uk-national-data-lib": { 923 + "id": "https://anil.recoil.org/notes/uk-national-data-lib", 924 + "title": "Thoughts on the National Data Library and private research data", 925 + "link": "https://anil.recoil.org/notes/uk-national-data-lib", 926 + "feed_title": "Anil Madhavapeddy's feed", 927 + "references": [ 928 + { 929 + "id": "https://anil.recoil.org/projects/ce", 930 + "link": "https://anil.recoil.org/projects/ce", 931 + "title": "Conservation Evidence Copilots", 932 + "feed_title": "Anil Madhavapeddy's feed" 933 + }, 934 + { 935 + "id": "https://anil.recoil.org/ideas/grey-lit-crawl", 936 + "link": "https://anil.recoil.org/ideas/grey-lit-crawl", 937 + "title": "Crawling grey literature for conservation evidence", 938 + "feed_title": "Anil Madhavapeddy's feed" 939 + }, 940 + { 941 + "id": "https://anil.recoil.org/projects/plancomp", 942 + "link": "https://anil.recoil.org/projects/plancomp", 943 + "title": "Planetary Computing", 944 + "feed_title": "Anil Madhavapeddy's feed" 945 + } 946 + ], 947 + "referenced_by": [ 948 + { 949 + "id": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 950 + "link": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 951 + "title": "A fully AI-generated paper just passed peer review; notes from our evidence synthesis workshop", 952 + "feed_title": "Anil Madhavapeddy's feed" 953 + }, 954 + { 955 + "id": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 956 + "link": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 957 + "title": "The AIETF arrives, and not a moment too soon", 958 + "feed_title": "Anil Madhavapeddy's feed" 959 + } 960 + ] 961 + }, 962 + "https://ancazugo.github.io/research/outreach/2025/02/14/biospace25-blog": { 963 + "id": "https://ancazugo.github.io/research/outreach/2025/02/14/biospace25-blog", 964 + "title": "BIOSPACE25 Blog", 965 + "link": "https://ancazugo.github.io/research/outreach/2025/02/14/biospace25-blog.html", 966 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 967 + "references": [], 968 + "referenced_by": [] 969 + }, 970 + "https://mort.io/blog/internalcl-wifi/": { 971 + "id": "https://mort.io/blog/internalcl-wifi/", 972 + "title": "`nmcli` connection to internal WiFi", 973 + "link": "https://mort.io/blog/internalcl-wifi/", 974 + "feed_title": "mort\u2019s mythop\u0153ia", 975 + "references": [], 976 + "referenced_by": [] 977 + }, 978 + "https://anil.recoil.org/news/2024-food-life-2": { 979 + "id": "https://anil.recoil.org/news/2024-food-life-2", 980 + "title": "Updated preprint on quantifying biodiversity cost of food consumption", 981 + "link": "https://anil.recoil.org/news/2024-food-life-2", 982 + "feed_title": "Anil Madhavapeddy's feed", 983 + "references": [ 984 + { 985 + "id": "https://anil.recoil.org/news/2024-life-3", 986 + "link": "https://anil.recoil.org/news/2024-life-3", 987 + "title": "LIFE metric published in Royal Society Phil Trans B", 988 + "feed_title": "Anil Madhavapeddy's feed" 989 + }, 990 + { 991 + "id": "https://anil.recoil.org/projects/life", 992 + "link": "https://anil.recoil.org/projects/life", 993 + "title": "Mapping LIFE on Earth", 994 + "feed_title": "Anil Madhavapeddy's feed" 995 + } 996 + ], 997 + "referenced_by": [] 998 + }, 999 + "https://digitalflapjack.com/weeknotes/2025-02-10/": { 1000 + "id": "https://digitalflapjack.com/weeknotes/2025-02-10/", 1001 + "title": "Weeknotes: 10th February 2025", 1002 + "link": "https://digitalflapjack.com/weeknotes/2025-02-10/", 1003 + "feed_title": "Digital Flapjack", 1004 + "references": [], 1005 + "referenced_by": [ 1006 + { 1007 + "id": "https://digitalflapjack.com/weeknotes/2025-02-17/", 1008 + "link": "https://digitalflapjack.com/weeknotes/2025-02-17/", 1009 + "title": "Weeknotes: 17th February 2025", 1010 + "feed_title": "Digital Flapjack" 1011 + } 1012 + ] 1013 + }, 1014 + "https://patrick.sirref.org/weekly-2025-02-10/": { 1015 + "id": "https://patrick.sirref.org/weekly-2025-02-10/", 1016 + "title": "Teaching, teaching, teaching...", 1017 + "link": "https://patrick.sirref.org/weekly-2025-02-10/", 1018 + "feed_title": "Weeklies", 1019 + "references": [], 1020 + "referenced_by": [] 1021 + }, 1022 + "https://ryan.freumh.org/2025-02-10.html": { 1023 + "id": "https://ryan.freumh.org/2025-02-10.html", 1024 + "title": "Mon 10 Feb 2025", 1025 + "link": "https://ryan.freumh.org/2025-02-10.html", 1026 + "feed_title": "ryan.freumh.org", 1027 + "references": [ 1028 + { 1029 + "id": "https://ryan.freumh.org/2025-02-03.html", 1030 + "link": "https://ryan.freumh.org/2025-02-03.html", 1031 + "title": "Mon 3 Feb 2025", 1032 + "feed_title": "ryan.freumh.org" 1033 + }, 1034 + { 1035 + "id": "https://ryan.freumh.org/2025-02-17.html", 1036 + "link": "https://ryan.freumh.org/2025-02-17.html", 1037 + "title": "Mon 17 Feb 2025", 1038 + "feed_title": "ryan.freumh.org" 1039 + }, 1040 + { 1041 + "id": "https://ryan.freumh.org/2024-02-12.html", 1042 + "link": "https://ryan.freumh.org/2024-02-12.html", 1043 + "title": "Mon 12 Feb 2024", 1044 + "feed_title": "ryan.freumh.org" 1045 + } 1046 + ], 1047 + "referenced_by": [ 1048 + { 1049 + "id": "https://ryan.freumh.org/2025-02-17.html", 1050 + "link": "https://ryan.freumh.org/2025-02-17.html", 1051 + "title": "Mon 17 Feb 2025", 1052 + "feed_title": "ryan.freumh.org" 1053 + }, 1054 + { 1055 + "id": "https://ryan.freumh.org/2025-02-03.html", 1056 + "link": "https://ryan.freumh.org/2025-02-03.html", 1057 + "title": "Mon 3 Feb 2025", 1058 + "feed_title": "ryan.freumh.org" 1059 + } 1060 + ] 1061 + }, 1062 + "https://anil.recoil.org/notes/cambridge-green-blue": { 1063 + "id": "https://anil.recoil.org/notes/cambridge-green-blue", 1064 + "title": "The Cambridge \"Green Blue\" competition to reduce emissions", 1065 + "link": "https://anil.recoil.org/notes/cambridge-green-blue", 1066 + "feed_title": "Anil Madhavapeddy's feed", 1067 + "references": [ 1068 + { 1069 + "id": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 1070 + "link": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 1071 + "title": "Disentangling carbon credits and offsets with contributions", 1072 + "feed_title": "Anil Madhavapeddy's feed" 1073 + }, 1074 + { 1075 + "id": "https://anil.recoil.org/notes/rs-ecorisk-day1", 1076 + "link": "https://anil.recoil.org/notes/rs-ecorisk-day1", 1077 + "title": "Royal Society meeting on ecological/commercial risks", 1078 + "feed_title": "Anil Madhavapeddy's feed" 1079 + } 1080 + ], 1081 + "referenced_by": [] 1082 + }, 1083 + "https://anil.recoil.org/notes/atproto-for-fun-and-blogging": { 1084 + "id": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 1085 + "title": "Using AT Proto for more than just Bluesky posts", 1086 + "link": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 1087 + "feed_title": "Anil Madhavapeddy's feed", 1088 + "references": [ 1089 + { 1090 + "id": "https://anil.recoil.org/notes/enter-the-matrix-hookshot", 1091 + "link": "https://anil.recoil.org/notes/enter-the-matrix-hookshot", 1092 + "title": "Entering the Matrix with Hookshot", 1093 + "feed_title": "Anil Madhavapeddy's feed" 1094 + }, 1095 + { 1096 + "id": "https://digitalflapjack.com/blog/hosting24/", 1097 + "link": "https://digitalflapjack.com/blog/hosting24/", 1098 + "title": "Self Hosting - 2024 edition", 1099 + "feed_title": "Digital Flapjack" 1100 + }, 1101 + { 1102 + "id": "https://anil.recoil.org/ideas/activitypub-resilience", 1103 + "link": "https://anil.recoil.org/ideas/activitypub-resilience", 1104 + "title": "Improving Resilience of ActivityPub Services", 1105 + "feed_title": "Anil Madhavapeddy's feed" 1106 + } 1107 + ], 1108 + "referenced_by": [ 1109 + { 1110 + "id": "https://anil.recoil.org/notes/disentangling-git-with-bluesky", 1111 + "link": "https://anil.recoil.org/notes/disentangling-git-with-bluesky", 1112 + "title": "Socially self-hosting source code with Tangled on Bluesky", 1113 + "feed_title": "Anil Madhavapeddy's feed" 1114 + } 1115 + ] 1116 + }, 1117 + "https://ryan.freumh.org/sway.html": { 1118 + "id": "https://ryan.freumh.org/sway.html", 1119 + "title": "Sway", 1120 + "link": "https://ryan.freumh.org/sway.html", 1121 + "feed_title": "ryan.freumh.org", 1122 + "references": [ 1123 + { 1124 + "id": "https://ryan.freumh.org/vim.html", 1125 + "link": "https://ryan.freumh.org/vim.html", 1126 + "title": "(Neo)Vim", 1127 + "feed_title": "ryan.freumh.org" 1128 + } 1129 + ], 1130 + "referenced_by": [] 1131 + }, 1132 + "https://anil.recoil.org/notes/enter-the-matrix-hookshot": { 1133 + "id": "https://anil.recoil.org/notes/enter-the-matrix-hookshot", 1134 + "title": "Entering the Matrix with Hookshot", 1135 + "link": "https://anil.recoil.org/notes/enter-the-matrix-hookshot", 1136 + "feed_title": "Anil Madhavapeddy's feed", 1137 + "references": [ 1138 + { 1139 + "id": "https://anil.recoil.org/notes/decentralised-stack", 1140 + "link": "https://anil.recoil.org/notes/decentralised-stack", 1141 + "title": "Decentralised tech on Recoil", 1142 + "feed_title": "Anil Madhavapeddy's feed" 1143 + }, 1144 + { 1145 + "id": "https://anil.recoil.org/ideas/version-control-matrix", 1146 + "link": "https://anil.recoil.org/ideas/version-control-matrix", 1147 + "title": "Decentralised Capability-based Code Collaboration using Matrix", 1148 + "feed_title": "Anil Madhavapeddy's feed" 1149 + } 1150 + ], 1151 + "referenced_by": [ 1152 + { 1153 + "id": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 1154 + "link": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 1155 + "title": "Using AT Proto for more than just Bluesky posts", 1156 + "feed_title": "Anil Madhavapeddy's feed" 1157 + } 1158 + ] 1159 + }, 1160 + "https://anil.recoil.org/notes/fpgas-hardcaml": { 1161 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 1162 + "title": "Programming FPGAs using OCaml", 1163 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 1164 + "feed_title": "Anil Madhavapeddy's feed", 1165 + "references": [ 1166 + { 1167 + "id": "https://anil.recoil.org/projects/plancomp", 1168 + "link": "https://anil.recoil.org/projects/plancomp", 1169 + "title": "Planetary Computing", 1170 + "feed_title": "Anil Madhavapeddy's feed" 1171 + }, 1172 + { 1173 + "id": "https://anil.recoil.org/ideas/compressive-geospatial", 1174 + "link": "https://anil.recoil.org/ideas/compressive-geospatial", 1175 + "title": "Assessing high-performance lightweight compression formats for geospatial computation", 1176 + "feed_title": "Anil Madhavapeddy's feed" 1177 + }, 1178 + { 1179 + "id": "https://anil.recoil.org/notes/focs", 1180 + "link": "https://anil.recoil.org/notes/focs", 1181 + "title": "Foundations of Computer Science", 1182 + "feed_title": "Anil Madhavapeddy's feed" 1183 + }, 1184 + { 1185 + "id": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 1186 + "link": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 1187 + "title": "Using computational SSDs for vector databases", 1188 + "feed_title": "Anil Madhavapeddy's feed" 1189 + }, 1190 + { 1191 + "id": "https://anil.recoil.org/projects/rsn", 1192 + "link": "https://anil.recoil.org/projects/rsn", 1193 + "title": "Remote Sensing of Nature", 1194 + "feed_title": "Anil Madhavapeddy's feed" 1195 + }, 1196 + { 1197 + "id": "https://anil.recoil.org/projects/xen", 1198 + "link": "https://anil.recoil.org/projects/xen", 1199 + "title": "Xen Hypervisor", 1200 + "feed_title": "Anil Madhavapeddy's feed" 1201 + } 1202 + ], 1203 + "referenced_by": [ 1204 + { 1205 + "id": "https://anil.recoil.org/ideas/tracing-hdl-with-effects", 1206 + "link": "https://anil.recoil.org/ideas/tracing-hdl-with-effects", 1207 + "title": "A hardware description language using OCaml effects", 1208 + "feed_title": "Anil Madhavapeddy's feed" 1209 + }, 1210 + { 1211 + "id": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 1212 + "link": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 1213 + "title": "Using computational SSDs for vector databases", 1214 + "feed_title": "Anil Madhavapeddy's feed" 1215 + } 1216 + ] 1217 + }, 1218 + "https://mort.io/blog/just-ocaml/": { 1219 + "id": "https://mort.io/blog/just-ocaml/", 1220 + "title": "`just` OCaml", 1221 + "link": "https://mort.io/blog/just-ocaml/", 1222 + "feed_title": "mort\u2019s mythop\u0153ia", 1223 + "references": [ 1224 + { 1225 + "id": "https://mort.io/blog/just-latex/", 1226 + "link": "https://mort.io/blog/just-latex/", 1227 + "title": "`just` LaTeX it!", 1228 + "feed_title": "mort\u2019s mythop\u0153ia" 1229 + } 1230 + ], 1231 + "referenced_by": [] 1232 + }, 1233 + "https://mort.io/blog/reverse-find/": { 1234 + "id": "https://mort.io/blog/reverse-find/", 1235 + "title": "Reverse `find`", 1236 + "link": "https://mort.io/blog/reverse-find/", 1237 + "feed_title": "mort\u2019s mythop\u0153ia", 1238 + "references": [], 1239 + "referenced_by": [] 1240 + }, 1241 + "https://anil.recoil.org/notes/ai-contamination-of-papers": { 1242 + "id": "https://anil.recoil.org/notes/ai-contamination-of-papers", 1243 + "title": "Fake papers abound in the literature", 1244 + "link": "https://anil.recoil.org/notes/ai-contamination-of-papers", 1245 + "feed_title": "Anil Madhavapeddy's feed", 1246 + "references": [ 1247 + { 1248 + "id": "https://anil.recoil.org/projects/ce", 1249 + "link": "https://anil.recoil.org/projects/ce", 1250 + "title": "Conservation Evidence Copilots", 1251 + "feed_title": "Anil Madhavapeddy's feed" 1252 + } 1253 + ], 1254 + "referenced_by": [ 1255 + { 1256 + "id": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 1257 + "link": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 1258 + "title": "A fully AI-generated paper just passed peer review; notes from our evidence synthesis workshop", 1259 + "feed_title": "Anil Madhavapeddy's feed" 1260 + } 1261 + ] 1262 + }, 1263 + "https://digitalflapjack.com/weeknotes/2025-02-03/": { 1264 + "id": "https://digitalflapjack.com/weeknotes/2025-02-03/", 1265 + "title": "Weeknotes: 3rd February 2025", 1266 + "link": "https://digitalflapjack.com/weeknotes/2025-02-03/", 1267 + "feed_title": "Digital Flapjack", 1268 + "references": [ 1269 + { 1270 + "id": "https://anil.recoil.org/notes/bushel-lives", 1271 + "link": "https://anil.recoil.org/notes/bushel-lives", 1272 + "title": "Arise Bushel, my sixth generation oxidised website", 1273 + "feed_title": "Anil Madhavapeddy's feed" 1274 + } 1275 + ], 1276 + "referenced_by": [] 1277 + }, 1278 + "https://ryan.freumh.org/keyboard.html": { 1279 + "id": "https://ryan.freumh.org/keyboard.html", 1280 + "title": "Keyboard", 1281 + "link": "https://ryan.freumh.org/keyboard.html", 1282 + "feed_title": "ryan.freumh.org", 1283 + "references": [ 1284 + { 1285 + "id": "https://ryan.freumh.org/vim.html", 1286 + "link": "https://ryan.freumh.org/vim.html", 1287 + "title": "(Neo)Vim", 1288 + "feed_title": "ryan.freumh.org" 1289 + }, 1290 + { 1291 + "id": "https://ryan.freumh.org/emacs.html", 1292 + "link": "https://ryan.freumh.org/emacs.html", 1293 + "title": "Emacs", 1294 + "feed_title": "ryan.freumh.org" 1295 + }, 1296 + { 1297 + "id": "https://ryan.freumh.org/firefox.html", 1298 + "link": "https://ryan.freumh.org/firefox.html", 1299 + "title": "Firefox", 1300 + "feed_title": "ryan.freumh.org" 1301 + } 1302 + ], 1303 + "referenced_by": [] 1304 + }, 1305 + "https://ryan.freumh.org/firefox.html": { 1306 + "id": "https://ryan.freumh.org/firefox.html", 1307 + "title": "Firefox", 1308 + "link": "https://ryan.freumh.org/firefox.html", 1309 + "feed_title": "ryan.freumh.org", 1310 + "references": [ 1311 + { 1312 + "id": "https://ryan.freumh.org/nix.html", 1313 + "link": "https://ryan.freumh.org/nix.html", 1314 + "title": "Nix", 1315 + "feed_title": "ryan.freumh.org" 1316 + } 1317 + ], 1318 + "referenced_by": [ 1319 + { 1320 + "id": "https://ryan.freumh.org/keyboard.html", 1321 + "link": "https://ryan.freumh.org/keyboard.html", 1322 + "title": "Keyboard", 1323 + "feed_title": "ryan.freumh.org" 1324 + } 1325 + ] 1326 + }, 1327 + "https://ryan.freumh.org/2025-02-03.html": { 1328 + "id": "https://ryan.freumh.org/2025-02-03.html", 1329 + "title": "Mon 3 Feb 2025", 1330 + "link": "https://ryan.freumh.org/2025-02-03.html", 1331 + "feed_title": "ryan.freumh.org", 1332 + "references": [ 1333 + { 1334 + "id": "https://ryan.freumh.org/2025-01-27.html", 1335 + "link": "https://ryan.freumh.org/2025-01-27.html", 1336 + "title": "Mon 27 Jan 2025", 1337 + "feed_title": "ryan.freumh.org" 1338 + }, 1339 + { 1340 + "id": "https://ryan.freumh.org/2025-02-10.html", 1341 + "link": "https://ryan.freumh.org/2025-02-10.html", 1342 + "title": "Mon 10 Feb 2025", 1343 + "feed_title": "ryan.freumh.org" 1344 + } 1345 + ], 1346 + "referenced_by": [ 1347 + { 1348 + "id": "https://ryan.freumh.org/2025-02-10.html", 1349 + "link": "https://ryan.freumh.org/2025-02-10.html", 1350 + "title": "Mon 10 Feb 2025", 1351 + "feed_title": "ryan.freumh.org" 1352 + }, 1353 + { 1354 + "id": "https://ryan.freumh.org/2025-01-27.html", 1355 + "link": "https://ryan.freumh.org/2025-01-27.html", 1356 + "title": "Mon 27 Jan 2025", 1357 + "feed_title": "ryan.freumh.org" 1358 + } 1359 + ] 1360 + }, 1361 + "https://anil.recoil.org/notes/forests-spatial-resolution": { 1362 + "id": "https://anil.recoil.org/notes/forests-spatial-resolution", 1363 + "title": "Satellites are getting too good for forest carbon?", 1364 + "link": "https://anil.recoil.org/notes/forests-spatial-resolution", 1365 + "feed_title": "Anil Madhavapeddy's feed", 1366 + "references": [ 1367 + { 1368 + "id": "https://anil.recoil.org/projects/rsn", 1369 + "link": "https://anil.recoil.org/projects/rsn", 1370 + "title": "Remote Sensing of Nature", 1371 + "feed_title": "Anil Madhavapeddy's feed" 1372 + } 1373 + ], 1374 + "referenced_by": [] 1375 + }, 1376 + "https://ryan.freumh.org/emacs.html": { 1377 + "id": "https://ryan.freumh.org/emacs.html", 1378 + "title": "Emacs", 1379 + "link": "https://ryan.freumh.org/emacs.html", 1380 + "feed_title": "ryan.freumh.org", 1381 + "references": [ 1382 + { 1383 + "id": "https://ryan.freumh.org/vim.html", 1384 + "link": "https://ryan.freumh.org/vim.html", 1385 + "title": "(Neo)Vim", 1386 + "feed_title": "ryan.freumh.org" 1387 + } 1388 + ], 1389 + "referenced_by": [ 1390 + { 1391 + "id": "https://ryan.freumh.org/keyboard.html", 1392 + "link": "https://ryan.freumh.org/keyboard.html", 1393 + "title": "Keyboard", 1394 + "feed_title": "ryan.freumh.org" 1395 + }, 1396 + { 1397 + "id": "https://ryan.freumh.org/vim.html", 1398 + "link": "https://ryan.freumh.org/vim.html", 1399 + "title": "(Neo)Vim", 1400 + "feed_title": "ryan.freumh.org" 1401 + } 1402 + ] 1403 + }, 1404 + "https://anil.recoil.org/notes/carbon-credits-vs-offsets": { 1405 + "id": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 1406 + "title": "Disentangling carbon credits and offsets with contributions", 1407 + "link": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 1408 + "feed_title": "Anil Madhavapeddy's feed", 1409 + "references": [ 1410 + { 1411 + "id": "https://anil.recoil.org/notes/credible-credit-principles", 1412 + "link": "https://anil.recoil.org/notes/credible-credit-principles", 1413 + "title": "Position paper on scientifically credible carbon credits", 1414 + "feed_title": "Anil Madhavapeddy's feed" 1415 + }, 1416 + { 1417 + "id": "https://anil.recoil.org/notes/deepseek-r1-advances", 1418 + "link": "https://anil.recoil.org/notes/deepseek-r1-advances", 1419 + "title": "Deepdive into Deepseek advances", 1420 + "feed_title": "Anil Madhavapeddy's feed" 1421 + }, 1422 + { 1423 + "id": "https://anil.recoil.org/projects/life", 1424 + "link": "https://anil.recoil.org/projects/life", 1425 + "title": "Mapping LIFE on Earth", 1426 + "feed_title": "Anil Madhavapeddy's feed" 1427 + } 1428 + ], 1429 + "referenced_by": [ 1430 + { 1431 + "id": "https://anil.recoil.org/notes/cambridge-green-blue", 1432 + "link": "https://anil.recoil.org/notes/cambridge-green-blue", 1433 + "title": "The Cambridge \"Green Blue\" competition to reduce emissions", 1434 + "feed_title": "Anil Madhavapeddy's feed" 1435 + } 1436 + ] 1437 + }, 1438 + "https://ryan.freumh.org/vim.html": { 1439 + "id": "https://ryan.freumh.org/vim.html", 1440 + "title": "(Neo)Vim", 1441 + "link": "https://ryan.freumh.org/vim.html", 1442 + "feed_title": "ryan.freumh.org", 1443 + "references": [ 1444 + { 1445 + "id": "https://ryan.freumh.org/emacs.html", 1446 + "link": "https://ryan.freumh.org/emacs.html", 1447 + "title": "Emacs", 1448 + "feed_title": "ryan.freumh.org" 1449 + }, 1450 + { 1451 + "id": "https://ryan.freumh.org/nix.html", 1452 + "link": "https://ryan.freumh.org/nix.html", 1453 + "title": "Nix", 1454 + "feed_title": "ryan.freumh.org" 1455 + } 1456 + ], 1457 + "referenced_by": [ 1458 + { 1459 + "id": "https://ryan.freumh.org/sway.html", 1460 + "link": "https://ryan.freumh.org/sway.html", 1461 + "title": "Sway", 1462 + "feed_title": "ryan.freumh.org" 1463 + }, 1464 + { 1465 + "id": "https://ryan.freumh.org/keyboard.html", 1466 + "link": "https://ryan.freumh.org/keyboard.html", 1467 + "title": "Keyboard", 1468 + "feed_title": "ryan.freumh.org" 1469 + }, 1470 + { 1471 + "id": "https://ryan.freumh.org/emacs.html", 1472 + "link": "https://ryan.freumh.org/emacs.html", 1473 + "title": "Emacs", 1474 + "feed_title": "ryan.freumh.org" 1475 + } 1476 + ] 1477 + }, 1478 + "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs": { 1479 + "id": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 1480 + "title": "Using computational SSDs for vector databases", 1481 + "link": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 1482 + "feed_title": "Anil Madhavapeddy's feed", 1483 + "references": [ 1484 + { 1485 + "id": "https://anil.recoil.org/projects/ce", 1486 + "link": "https://anil.recoil.org/projects/ce", 1487 + "title": "Conservation Evidence Copilots", 1488 + "feed_title": "Anil Madhavapeddy's feed" 1489 + }, 1490 + { 1491 + "id": "https://anil.recoil.org/projects/rsn", 1492 + "link": "https://anil.recoil.org/projects/rsn", 1493 + "title": "Remote Sensing of Nature", 1494 + "feed_title": "Anil Madhavapeddy's feed" 1495 + }, 1496 + { 1497 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 1498 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 1499 + "title": "Programming FPGAs using OCaml", 1500 + "feed_title": "Anil Madhavapeddy's feed" 1501 + } 1502 + ], 1503 + "referenced_by": [ 1504 + { 1505 + "id": "https://anil.recoil.org/ideas/tracing-hdl-with-effects", 1506 + "link": "https://anil.recoil.org/ideas/tracing-hdl-with-effects", 1507 + "title": "A hardware description language using OCaml effects", 1508 + "feed_title": "Anil Madhavapeddy's feed" 1509 + }, 1510 + { 1511 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 1512 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 1513 + "title": "Programming FPGAs using OCaml", 1514 + "feed_title": "Anil Madhavapeddy's feed" 1515 + } 1516 + ] 1517 + }, 1518 + "https://anil.recoil.org/notes/deepseek-r1-advances": { 1519 + "id": "https://anil.recoil.org/notes/deepseek-r1-advances", 1520 + "title": "Deepdive into Deepseek advances", 1521 + "link": "https://anil.recoil.org/notes/deepseek-r1-advances", 1522 + "feed_title": "Anil Madhavapeddy's feed", 1523 + "references": [], 1524 + "referenced_by": [ 1525 + { 1526 + "id": "https://anil.recoil.org/notes/the-state-of-ai-tools", 1527 + "link": "https://anil.recoil.org/notes/the-state-of-ai-tools", 1528 + "title": "Our EEG group discussion on 'useful' AI tools", 1529 + "feed_title": "Anil Madhavapeddy's feed" 1530 + }, 1531 + { 1532 + "id": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 1533 + "link": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 1534 + "title": "Disentangling carbon credits and offsets with contributions", 1535 + "feed_title": "Anil Madhavapeddy's feed" 1536 + } 1537 + ] 1538 + }, 1539 + "https://anil.recoil.org/ideas/digitisation-of-insects": { 1540 + "id": "https://anil.recoil.org/ideas/digitisation-of-insects", 1541 + "title": "Affordable digitisation of insect collections using photogrammetry", 1542 + "link": "https://anil.recoil.org/ideas/digitisation-of-insects", 1543 + "feed_title": "Anil Madhavapeddy's feed", 1544 + "references": [], 1545 + "referenced_by": [ 1546 + { 1547 + "id": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 1548 + "link": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 1549 + "title": "A trio of papers I read on biodiversity and forests this week", 1550 + "feed_title": "Anil Madhavapeddy's feed" 1551 + } 1552 + ] 1553 + }, 1554 + "https://anil.recoil.org/notes/custom-homebrew-taps": { 1555 + "id": "https://anil.recoil.org/notes/custom-homebrew-taps", 1556 + "title": "How to publish custom Homebrew taps for OCaml", 1557 + "link": "https://anil.recoil.org/notes/custom-homebrew-taps", 1558 + "feed_title": "Anil Madhavapeddy's feed", 1559 + "references": [ 1560 + { 1561 + "id": "https://anil.recoil.org/notes/bushel-lives", 1562 + "link": "https://anil.recoil.org/notes/bushel-lives", 1563 + "title": "Arise Bushel, my sixth generation oxidised website", 1564 + "feed_title": "Anil Madhavapeddy's feed" 1565 + } 1566 + ], 1567 + "referenced_by": [] 1568 + }, 1569 + "https://mort.io/blog/phd-viva/": { 1570 + "id": "https://mort.io/blog/phd-viva/", 1571 + "title": "PhD viva, UK style", 1572 + "link": "https://mort.io/blog/phd-viva/", 1573 + "feed_title": "mort\u2019s mythop\u0153ia", 1574 + "references": [], 1575 + "referenced_by": [] 1576 + }, 1577 + "https://anil.recoil.org/notes/credible-credit-principles": { 1578 + "id": "https://anil.recoil.org/notes/credible-credit-principles", 1579 + "title": "Position paper on scientifically credible carbon credits", 1580 + "link": "https://anil.recoil.org/notes/credible-credit-principles", 1581 + "feed_title": "Anil Madhavapeddy's feed", 1582 + "references": [], 1583 + "referenced_by": [ 1584 + { 1585 + "id": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 1586 + "link": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 1587 + "title": "Disentangling carbon credits and offsets with contributions", 1588 + "feed_title": "Anil Madhavapeddy's feed" 1589 + } 1590 + ] 1591 + }, 1592 + "https://anil.recoil.org/notes/bushel-lives": { 1593 + "id": "https://anil.recoil.org/notes/bushel-lives", 1594 + "title": "Arise Bushel, my sixth generation oxidised website", 1595 + "link": "https://anil.recoil.org/notes/bushel-lives", 1596 + "feed_title": "Anil Madhavapeddy's feed", 1597 + "references": [ 1598 + { 1599 + "id": "https://anil.recoil.org/notes/commit-access-to-php", 1600 + "link": "https://anil.recoil.org/notes/commit-access-to-php", 1601 + "title": "I am now a core PHP developer", 1602 + "feed_title": "Anil Madhavapeddy's feed" 1603 + }, 1604 + { 1605 + "id": "https://anil.recoil.org/projects/unikernels", 1606 + "link": "https://anil.recoil.org/projects/unikernels", 1607 + "title": "Unikernels", 1608 + "feed_title": "Anil Madhavapeddy's feed" 1609 + }, 1610 + { 1611 + "id": "https://digitalflapjack.com/blog/the-partially-dynamic-web/", 1612 + "link": "https://digitalflapjack.com/blog/the-partially-dynamic-web/", 1613 + "title": "The Partially Dynamic Web", 1614 + "feed_title": "Digital Flapjack" 1615 + } 1616 + ], 1617 + "referenced_by": [ 1618 + { 1619 + "id": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 1620 + "link": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 1621 + "title": "The AIETF arrives, and not a moment too soon", 1622 + "feed_title": "Anil Madhavapeddy's feed" 1623 + }, 1624 + { 1625 + "id": "https://digitalflapjack.com/weeknotes/2025-02-03/", 1626 + "link": "https://digitalflapjack.com/weeknotes/2025-02-03/", 1627 + "title": "Weeknotes: 3rd February 2025", 1628 + "feed_title": "Digital Flapjack" 1629 + }, 1630 + { 1631 + "id": "https://anil.recoil.org/notes/custom-homebrew-taps", 1632 + "link": "https://anil.recoil.org/notes/custom-homebrew-taps", 1633 + "title": "How to publish custom Homebrew taps for OCaml", 1634 + "feed_title": "Anil Madhavapeddy's feed" 1635 + }, 1636 + { 1637 + "id": "https://ryan.freumh.org/2025-01-27.html", 1638 + "link": "https://ryan.freumh.org/2025-01-27.html", 1639 + "title": "Mon 27 Jan 2025", 1640 + "feed_title": "ryan.freumh.org" 1641 + } 1642 + ] 1643 + }, 1644 + "https://patrick.sirref.org/weekly-2025-01-27/": { 1645 + "id": "https://patrick.sirref.org/weekly-2025-01-27/", 1646 + "title": "AT Protocol and an IR for Wikis", 1647 + "link": "https://patrick.sirref.org/weekly-2025-01-27/", 1648 + "feed_title": "Weeklies", 1649 + "references": [], 1650 + "referenced_by": [] 1651 + }, 1652 + "https://ryan.freumh.org/2025-01-27.html": { 1653 + "id": "https://ryan.freumh.org/2025-01-27.html", 1654 + "title": "Mon 27 Jan 2025", 1655 + "link": "https://ryan.freumh.org/2025-01-27.html", 1656 + "feed_title": "ryan.freumh.org", 1657 + "references": [ 1658 + { 1659 + "id": "https://ryan.freumh.org/2025-01-20.html", 1660 + "link": "https://ryan.freumh.org/2025-01-20.html", 1661 + "title": "Mon 20 Jan 2025", 1662 + "feed_title": "ryan.freumh.org" 1663 + }, 1664 + { 1665 + "id": "https://ryan.freumh.org/2025-02-03.html", 1666 + "link": "https://ryan.freumh.org/2025-02-03.html", 1667 + "title": "Mon 3 Feb 2025", 1668 + "feed_title": "ryan.freumh.org" 1669 + }, 1670 + { 1671 + "id": "https://anil.recoil.org/notes/bushel-lives", 1672 + "link": "https://anil.recoil.org/notes/bushel-lives", 1673 + "title": "Arise Bushel, my sixth generation oxidised website", 1674 + "feed_title": "Anil Madhavapeddy's feed" 1675 + } 1676 + ], 1677 + "referenced_by": [ 1678 + { 1679 + "id": "https://ryan.freumh.org/2025-02-03.html", 1680 + "link": "https://ryan.freumh.org/2025-02-03.html", 1681 + "title": "Mon 3 Feb 2025", 1682 + "feed_title": "ryan.freumh.org" 1683 + }, 1684 + { 1685 + "id": "https://ryan.freumh.org/2025-01-20.html", 1686 + "link": "https://ryan.freumh.org/2025-01-20.html", 1687 + "title": "Mon 20 Jan 2025", 1688 + "feed_title": "ryan.freumh.org" 1689 + } 1690 + ] 1691 + }, 1692 + "https://mort.io/blog/fontsizing/": { 1693 + "id": "https://mort.io/blog/fontsizing/", 1694 + "title": "Fontsizing in LaTeX", 1695 + "link": "https://mort.io/blog/fontsizing/", 1696 + "feed_title": "mort\u2019s mythop\u0153ia", 1697 + "references": [], 1698 + "referenced_by": [] 1699 + }, 1700 + "https://anil.recoil.org/news/2024-ce-llm-2": { 1701 + "id": "https://anil.recoil.org/news/2024-ce-llm-2", 1702 + "title": "Updated preprint on LLMs for evidence-based decision support", 1703 + "link": "https://anil.recoil.org/news/2024-ce-llm-2", 1704 + "feed_title": "Anil Madhavapeddy's feed", 1705 + "references": [], 1706 + "referenced_by": [] 1707 + }, 1708 + "https://patrick.sirref.org/weekly-2025-01-20/": { 1709 + "id": "https://patrick.sirref.org/weekly-2025-01-20/", 1710 + "title": "Forester, ICFP, Wikis", 1711 + "link": "https://patrick.sirref.org/weekly-2025-01-20/", 1712 + "feed_title": "Weeklies", 1713 + "references": [], 1714 + "referenced_by": [] 1715 + }, 1716 + "https://ryan.freumh.org/2025-01-20.html": { 1717 + "id": "https://ryan.freumh.org/2025-01-20.html", 1718 + "title": "Mon 20 Jan 2025", 1719 + "link": "https://ryan.freumh.org/2025-01-20.html", 1720 + "feed_title": "ryan.freumh.org", 1721 + "references": [ 1722 + { 1723 + "id": "https://ryan.freumh.org/2025-01-13.html", 1724 + "link": "https://ryan.freumh.org/2025-01-13.html", 1725 + "title": "Mon 13 Jan 2025", 1726 + "feed_title": "ryan.freumh.org" 1727 + }, 1728 + { 1729 + "id": "https://ryan.freumh.org/2025-01-27.html", 1730 + "link": "https://ryan.freumh.org/2025-01-27.html", 1731 + "title": "Mon 27 Jan 2025", 1732 + "feed_title": "ryan.freumh.org" 1733 + } 1734 + ], 1735 + "referenced_by": [ 1736 + { 1737 + "id": "https://ryan.freumh.org/2025-01-27.html", 1738 + "link": "https://ryan.freumh.org/2025-01-27.html", 1739 + "title": "Mon 27 Jan 2025", 1740 + "feed_title": "ryan.freumh.org" 1741 + }, 1742 + { 1743 + "id": "https://ryan.freumh.org/2025-01-13.html", 1744 + "link": "https://ryan.freumh.org/2025-01-13.html", 1745 + "title": "Mon 13 Jan 2025", 1746 + "feed_title": "ryan.freumh.org" 1747 + } 1748 + ] 1749 + }, 1750 + "https://mort.io/blog/just-latex/": { 1751 + "id": "https://mort.io/blog/just-latex/", 1752 + "title": "`just` LaTeX it!", 1753 + "link": "https://mort.io/blog/just-latex/", 1754 + "feed_title": "mort\u2019s mythop\u0153ia", 1755 + "references": [], 1756 + "referenced_by": [ 1757 + { 1758 + "id": "https://mort.io/blog/just-ocaml/", 1759 + "link": "https://mort.io/blog/just-ocaml/", 1760 + "title": "`just` OCaml", 1761 + "feed_title": "mort\u2019s mythop\u0153ia" 1762 + } 1763 + ] 1764 + }, 1765 + "https://ryan.freumh.org/2025-01-13.html": { 1766 + "id": "https://ryan.freumh.org/2025-01-13.html", 1767 + "title": "Mon 13 Jan 2025", 1768 + "link": "https://ryan.freumh.org/2025-01-13.html", 1769 + "feed_title": "ryan.freumh.org", 1770 + "references": [ 1771 + { 1772 + "id": "https://ryan.freumh.org/2025-01-06.html", 1773 + "link": "https://ryan.freumh.org/2025-01-06.html", 1774 + "title": "Mon 6 Jan 2025", 1775 + "feed_title": "ryan.freumh.org" 1776 + }, 1777 + { 1778 + "id": "https://ryan.freumh.org/2025-01-20.html", 1779 + "link": "https://ryan.freumh.org/2025-01-20.html", 1780 + "title": "Mon 20 Jan 2025", 1781 + "feed_title": "ryan.freumh.org" 1782 + } 1783 + ], 1784 + "referenced_by": [ 1785 + { 1786 + "id": "https://ryan.freumh.org/2025-01-20.html", 1787 + "link": "https://ryan.freumh.org/2025-01-20.html", 1788 + "title": "Mon 20 Jan 2025", 1789 + "feed_title": "ryan.freumh.org" 1790 + }, 1791 + { 1792 + "id": "https://ryan.freumh.org/2025-01-06.html", 1793 + "link": "https://ryan.freumh.org/2025-01-06.html", 1794 + "title": "Mon 6 Jan 2025", 1795 + "feed_title": "ryan.freumh.org" 1796 + } 1797 + ] 1798 + }, 1799 + "https://anil.recoil.org/news/2024-life-3": { 1800 + "id": "https://anil.recoil.org/news/2024-life-3", 1801 + "title": "LIFE metric published in Royal Society Phil Trans B", 1802 + "link": "https://anil.recoil.org/news/2024-life-3", 1803 + "feed_title": "Anil Madhavapeddy's feed", 1804 + "references": [ 1805 + { 1806 + "id": "https://anil.recoil.org/projects/life", 1807 + "link": "https://anil.recoil.org/projects/life", 1808 + "title": "Mapping LIFE on Earth", 1809 + "feed_title": "Anil Madhavapeddy's feed" 1810 + } 1811 + ], 1812 + "referenced_by": [ 1813 + { 1814 + "id": "https://anil.recoil.org/news/2024-food-life-2", 1815 + "link": "https://anil.recoil.org/news/2024-food-life-2", 1816 + "title": "Updated preprint on quantifying biodiversity cost of food consumption", 1817 + "feed_title": "Anil Madhavapeddy's feed" 1818 + } 1819 + ] 1820 + }, 1821 + "https://ryan.freumh.org/2025-01-06.html": { 1822 + "id": "https://ryan.freumh.org/2025-01-06.html", 1823 + "title": "Mon 6 Jan 2025", 1824 + "link": "https://ryan.freumh.org/2025-01-06.html", 1825 + "feed_title": "ryan.freumh.org", 1826 + "references": [ 1827 + { 1828 + "id": "https://ryan.freumh.org/2024-12-30.html", 1829 + "link": "https://ryan.freumh.org/2024-12-30.html", 1830 + "title": "Mon 30 Dec 2024", 1831 + "feed_title": "ryan.freumh.org" 1832 + }, 1833 + { 1834 + "id": "https://ryan.freumh.org/2025-01-13.html", 1835 + "link": "https://ryan.freumh.org/2025-01-13.html", 1836 + "title": "Mon 13 Jan 2025", 1837 + "feed_title": "ryan.freumh.org" 1838 + } 1839 + ], 1840 + "referenced_by": [ 1841 + { 1842 + "id": "https://ryan.freumh.org/2025-01-13.html", 1843 + "link": "https://ryan.freumh.org/2025-01-13.html", 1844 + "title": "Mon 13 Jan 2025", 1845 + "feed_title": "ryan.freumh.org" 1846 + }, 1847 + { 1848 + "id": "https://ryan.freumh.org/2024-12-30.html", 1849 + "link": "https://ryan.freumh.org/2024-12-30.html", 1850 + "title": "Mon 30 Dec 2024", 1851 + "feed_title": "ryan.freumh.org" 1852 + } 1853 + ] 1854 + }, 1855 + "https://mort.io/blog/bibtox/": { 1856 + "id": "https://mort.io/blog/bibtox/", 1857 + "title": "Introducing `bibtox`", 1858 + "link": "https://mort.io/blog/bibtox/", 1859 + "feed_title": "mort\u2019s mythop\u0153ia", 1860 + "references": [], 1861 + "referenced_by": [] 1862 + }, 1863 + "https://ryan.freumh.org/2024-12-30.html": { 1864 + "id": "https://ryan.freumh.org/2024-12-30.html", 1865 + "title": "Mon 30 Dec 2024", 1866 + "link": "https://ryan.freumh.org/2024-12-30.html", 1867 + "feed_title": "ryan.freumh.org", 1868 + "references": [ 1869 + { 1870 + "id": "https://ryan.freumh.org/2024-12-16.html", 1871 + "link": "https://ryan.freumh.org/2024-12-16.html", 1872 + "title": "Mon 16 Dec 2024", 1873 + "feed_title": "ryan.freumh.org" 1874 + }, 1875 + { 1876 + "id": "https://ryan.freumh.org/2025-01-06.html", 1877 + "link": "https://ryan.freumh.org/2025-01-06.html", 1878 + "title": "Mon 6 Jan 2025", 1879 + "feed_title": "ryan.freumh.org" 1880 + } 1881 + ], 1882 + "referenced_by": [ 1883 + { 1884 + "id": "https://ryan.freumh.org/2025-01-06.html", 1885 + "link": "https://ryan.freumh.org/2025-01-06.html", 1886 + "title": "Mon 6 Jan 2025", 1887 + "feed_title": "ryan.freumh.org" 1888 + }, 1889 + { 1890 + "id": "https://ryan.freumh.org/2024-12-16.html", 1891 + "link": "https://ryan.freumh.org/2024-12-16.html", 1892 + "title": "Mon 16 Dec 2024", 1893 + "feed_title": "ryan.freumh.org" 1894 + } 1895 + ] 1896 + }, 1897 + "https://mort.io/blog/tum-retreat/": { 1898 + "id": "https://mort.io/blog/tum-retreat/", 1899 + "title": "Retreat from TUM", 1900 + "link": "https://mort.io/blog/tum-retreat/", 1901 + "feed_title": "mort\u2019s mythop\u0153ia", 1902 + "references": [], 1903 + "referenced_by": [] 1904 + }, 1905 + "https://ryan.freumh.org/2024-12-16.html": { 1906 + "id": "https://ryan.freumh.org/2024-12-16.html", 1907 + "title": "Mon 16 Dec 2024", 1908 + "link": "https://ryan.freumh.org/2024-12-16.html", 1909 + "feed_title": "ryan.freumh.org", 1910 + "references": [ 1911 + { 1912 + "id": "https://ryan.freumh.org/2024-12-02.html", 1913 + "link": "https://ryan.freumh.org/2024-12-02.html", 1914 + "title": "Mon 2 Dec 2024", 1915 + "feed_title": "ryan.freumh.org" 1916 + }, 1917 + { 1918 + "id": "https://ryan.freumh.org/2024-12-30.html", 1919 + "link": "https://ryan.freumh.org/2024-12-30.html", 1920 + "title": "Mon 30 Dec 2024", 1921 + "feed_title": "ryan.freumh.org" 1922 + } 1923 + ], 1924 + "referenced_by": [ 1925 + { 1926 + "id": "https://ryan.freumh.org/2024-12-30.html", 1927 + "link": "https://ryan.freumh.org/2024-12-30.html", 1928 + "title": "Mon 30 Dec 2024", 1929 + "feed_title": "ryan.freumh.org" 1930 + }, 1931 + { 1932 + "id": "https://ryan.freumh.org/2024-12-02.html", 1933 + "link": "https://ryan.freumh.org/2024-12-02.html", 1934 + "title": "Mon 2 Dec 2024", 1935 + "feed_title": "ryan.freumh.org" 1936 + } 1937 + ] 1938 + }, 1939 + "https://digitalflapjack.com/blog/the-partially-dynamic-web/": { 1940 + "id": "https://digitalflapjack.com/blog/the-partially-dynamic-web/", 1941 + "title": "The Partially Dynamic Web", 1942 + "link": "https://digitalflapjack.com/blog/the-partially-dynamic-web/", 1943 + "feed_title": "Digital Flapjack", 1944 + "references": [], 1945 + "referenced_by": [ 1946 + { 1947 + "id": "https://digitalflapjack.com/weeknotes/2025-03-17/", 1948 + "link": "https://digitalflapjack.com/weeknotes/2025-03-17/", 1949 + "title": "Weeknotes: 17th March 2025", 1950 + "feed_title": "Digital Flapjack" 1951 + }, 1952 + { 1953 + "id": "https://anil.recoil.org/notes/bushel-lives", 1954 + "link": "https://anil.recoil.org/notes/bushel-lives", 1955 + "title": "Arise Bushel, my sixth generation oxidised website", 1956 + "feed_title": "Anil Madhavapeddy's feed" 1957 + } 1958 + ] 1959 + }, 1960 + "https://anil.recoil.org/news/2024-ai-conhorizon-1": { 1961 + "id": "https://anil.recoil.org/news/2024-ai-conhorizon-1", 1962 + "title": "Horizon scan on AI and conservation published", 1963 + "link": "https://anil.recoil.org/news/2024-ai-conhorizon-1", 1964 + "feed_title": "Anil Madhavapeddy's feed", 1965 + "references": [], 1966 + "referenced_by": [] 1967 + }, 1968 + "https://ryan.freumh.org/2024-12-02.html": { 1969 + "id": "https://ryan.freumh.org/2024-12-02.html", 1970 + "title": "Mon 2 Dec 2024", 1971 + "link": "https://ryan.freumh.org/2024-12-02.html", 1972 + "feed_title": "ryan.freumh.org", 1973 + "references": [ 1974 + { 1975 + "id": "https://ryan.freumh.org/2024-11-18.html", 1976 + "link": "https://ryan.freumh.org/2024-11-18.html", 1977 + "title": "Mon 18 Nov 2024", 1978 + "feed_title": "ryan.freumh.org" 1979 + }, 1980 + { 1981 + "id": "https://ryan.freumh.org/2024-12-16.html", 1982 + "link": "https://ryan.freumh.org/2024-12-16.html", 1983 + "title": "Mon 16 Dec 2024", 1984 + "feed_title": "ryan.freumh.org" 1985 + } 1986 + ], 1987 + "referenced_by": [ 1988 + { 1989 + "id": "https://ryan.freumh.org/2024-12-16.html", 1990 + "link": "https://ryan.freumh.org/2024-12-16.html", 1991 + "title": "Mon 16 Dec 2024", 1992 + "feed_title": "ryan.freumh.org" 1993 + }, 1994 + { 1995 + "id": "https://ryan.freumh.org/2024-11-18.html", 1996 + "link": "https://ryan.freumh.org/2024-11-18.html", 1997 + "title": "Mon 18 Nov 2024", 1998 + "feed_title": "ryan.freumh.org" 1999 + } 2000 + ] 2001 + }, 2002 + "https://anil.recoil.org/news/2024-loco-emissions-1": { 2003 + "id": "https://anil.recoil.org/news/2024-loco-emissions-1", 2004 + "title": "Towards verifiable, privacy-preserving carbon emissions claims", 2005 + "link": "https://anil.recoil.org/news/2024-loco-emissions-1", 2006 + "feed_title": "Anil Madhavapeddy's feed", 2007 + "references": [], 2008 + "referenced_by": [] 2009 + }, 2010 + "https://anil.recoil.org/news/2024-loco-shark-1": { 2011 + "id": "https://anil.recoil.org/news/2024-loco-shark-1", 2012 + "title": "Towards a frugal userspace for Linux", 2013 + "link": "https://anil.recoil.org/news/2024-loco-shark-1", 2014 + "feed_title": "Anil Madhavapeddy's feed", 2015 + "references": [ 2016 + { 2017 + "id": "https://anil.recoil.org/projects/life", 2018 + "link": "https://anil.recoil.org/projects/life", 2019 + "title": "Mapping LIFE on Earth", 2020 + "feed_title": "Anil Madhavapeddy's feed" 2021 + } 2022 + ], 2023 + "referenced_by": [] 2024 + }, 2025 + "https://anil.recoil.org/news/2024-loco-carbonres-1": { 2026 + "id": "https://anil.recoil.org/news/2024-loco-carbonres-1", 2027 + "title": "Prototyping carbon-aware domain name resolution", 2028 + "link": "https://anil.recoil.org/news/2024-loco-carbonres-1", 2029 + "feed_title": "Anil Madhavapeddy's feed", 2030 + "references": [], 2031 + "referenced_by": [] 2032 + }, 2033 + "https://anil.recoil.org/news/2024-loco-terracorder-1": { 2034 + "id": "https://anil.recoil.org/news/2024-loco-terracorder-1", 2035 + "title": "Cooperative Sensor Networks for Long-Term Biodiversity Monitoring", 2036 + "link": "https://anil.recoil.org/news/2024-loco-terracorder-1", 2037 + "feed_title": "Anil Madhavapeddy's feed", 2038 + "references": [], 2039 + "referenced_by": [] 2040 + }, 2041 + "https://ryan.freumh.org/2024-11-18.html": { 2042 + "id": "https://ryan.freumh.org/2024-11-18.html", 2043 + "title": "Mon 18 Nov 2024", 2044 + "link": "https://ryan.freumh.org/2024-11-18.html", 2045 + "feed_title": "ryan.freumh.org", 2046 + "references": [ 2047 + { 2048 + "id": "https://ryan.freumh.org/2024-10-14.html", 2049 + "link": "https://ryan.freumh.org/2024-10-14.html", 2050 + "title": "Mon 14 Oct 2024", 2051 + "feed_title": "ryan.freumh.org" 2052 + }, 2053 + { 2054 + "id": "https://ryan.freumh.org/2024-12-02.html", 2055 + "link": "https://ryan.freumh.org/2024-12-02.html", 2056 + "title": "Mon 2 Dec 2024", 2057 + "feed_title": "ryan.freumh.org" 2058 + } 2059 + ], 2060 + "referenced_by": [ 2061 + { 2062 + "id": "https://ryan.freumh.org/2024-12-02.html", 2063 + "link": "https://ryan.freumh.org/2024-12-02.html", 2064 + "title": "Mon 2 Dec 2024", 2065 + "feed_title": "ryan.freumh.org" 2066 + }, 2067 + { 2068 + "id": "https://ryan.freumh.org/2024-10-14.html", 2069 + "link": "https://ryan.freumh.org/2024-10-14.html", 2070 + "title": "Mon 14 Oct 2024", 2071 + "feed_title": "ryan.freumh.org" 2072 + } 2073 + ] 2074 + }, 2075 + "https://anil.recoil.org/notes/ai-for-science-2024": { 2076 + "id": "https://anil.recoil.org/notes/ai-for-science-2024", 2077 + "title": "Royal Society and DeepMind host AI for Science Forum", 2078 + "link": "https://anil.recoil.org/notes/ai-for-science-2024", 2079 + "feed_title": "Anil Madhavapeddy's feed", 2080 + "references": [], 2081 + "referenced_by": [] 2082 + }, 2083 + "https://anil.recoil.org/news/2024-cclr-carbon-1": { 2084 + "id": "https://anil.recoil.org/news/2024-cclr-carbon-1", 2085 + "title": "Published a legal perspective on high integrity forest carbon credits", 2086 + "link": "https://anil.recoil.org/news/2024-cclr-carbon-1", 2087 + "feed_title": "Anil Madhavapeddy's feed", 2088 + "references": [ 2089 + { 2090 + "id": "https://anil.recoil.org/ideas/legal-aspects-of-credits", 2091 + "link": "https://anil.recoil.org/ideas/legal-aspects-of-credits", 2092 + "title": "Legal perspectives on integrity issues in forest carbon", 2093 + "feed_title": "Anil Madhavapeddy's feed" 2094 + } 2095 + ], 2096 + "referenced_by": [] 2097 + }, 2098 + "https://anil.recoil.org/news/2024-sensys-terracorder-1": { 2099 + "id": "https://anil.recoil.org/news/2024-sensys-terracorder-1", 2100 + "title": "Presented poster at Sensys on low-power biodiversity monitoring", 2101 + "link": "https://anil.recoil.org/news/2024-sensys-terracorder-1", 2102 + "feed_title": "Anil Madhavapeddy's feed", 2103 + "references": [], 2104 + "referenced_by": [] 2105 + }, 2106 + "https://anil.recoil.org/news/2024-ce-llm-1": { 2107 + "id": "https://anil.recoil.org/news/2024-ce-llm-1", 2108 + "title": "Preprint on using LLMs to for evidence-based decision support", 2109 + "link": "https://anil.recoil.org/news/2024-ce-llm-1", 2110 + "feed_title": "Anil Madhavapeddy's feed", 2111 + "references": [ 2112 + { 2113 + "id": "https://anil.recoil.org/projects/ce", 2114 + "link": "https://anil.recoil.org/projects/ce", 2115 + "title": "Conservation Evidence Copilots", 2116 + "feed_title": "Anil Madhavapeddy's feed" 2117 + } 2118 + ], 2119 + "referenced_by": [] 2120 + }, 2121 + "https://anil.recoil.org/news/2024-socc-murmuration-1": { 2122 + "id": "https://anil.recoil.org/news/2024-socc-murmuration-1", 2123 + "title": "Paper on scheduling for reduced tail task latencies", 2124 + "link": "https://anil.recoil.org/news/2024-socc-murmuration-1", 2125 + "feed_title": "Anil Madhavapeddy's feed", 2126 + "references": [], 2127 + "referenced_by": [] 2128 + }, 2129 + "https://digitalflapjack.com/blog/building-ocaml-on-haiku/": { 2130 + "id": "https://digitalflapjack.com/blog/building-ocaml-on-haiku/", 2131 + "title": "Building OCaml on Haiku", 2132 + "link": "https://digitalflapjack.com/blog/building-ocaml-on-haiku/", 2133 + "feed_title": "Digital Flapjack", 2134 + "references": [], 2135 + "referenced_by": [] 2136 + }, 2137 + "https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1": { 2138 + "id": "https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1", 2139 + "title": "Mapping greener futures with planetary computing", 2140 + "link": "https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1", 2141 + "feed_title": "Anil Madhavapeddy's feed", 2142 + "references": [ 2143 + { 2144 + "id": "https://anil.recoil.org/projects/plancomp", 2145 + "link": "https://anil.recoil.org/projects/plancomp", 2146 + "title": "Planetary Computing", 2147 + "feed_title": "Anil Madhavapeddy's feed" 2148 + }, 2149 + { 2150 + "id": "https://anil.recoil.org/projects/life", 2151 + "link": "https://anil.recoil.org/projects/life", 2152 + "title": "Mapping LIFE on Earth", 2153 + "feed_title": "Anil Madhavapeddy's feed" 2154 + } 2155 + ], 2156 + "referenced_by": [] 2157 + }, 2158 + "https://ryan.freumh.org/2024-10-14.html": { 2159 + "id": "https://ryan.freumh.org/2024-10-14.html", 2160 + "title": "Mon 14 Oct 2024", 2161 + "link": "https://ryan.freumh.org/2024-10-14.html", 2162 + "feed_title": "ryan.freumh.org", 2163 + "references": [ 2164 + { 2165 + "id": "https://ryan.freumh.org/2024-10-07.html", 2166 + "link": "https://ryan.freumh.org/2024-10-07.html", 2167 + "title": "Mon 7 Oct 2024", 2168 + "feed_title": "ryan.freumh.org" 2169 + }, 2170 + { 2171 + "id": "https://ryan.freumh.org/2024-11-18.html", 2172 + "link": "https://ryan.freumh.org/2024-11-18.html", 2173 + "title": "Mon 18 Nov 2024", 2174 + "feed_title": "ryan.freumh.org" 2175 + } 2176 + ], 2177 + "referenced_by": [ 2178 + { 2179 + "id": "https://ryan.freumh.org/2024-11-18.html", 2180 + "link": "https://ryan.freumh.org/2024-11-18.html", 2181 + "title": "Mon 18 Nov 2024", 2182 + "feed_title": "ryan.freumh.org" 2183 + }, 2184 + { 2185 + "id": "https://ryan.freumh.org/2024-10-07.html", 2186 + "link": "https://ryan.freumh.org/2024-10-07.html", 2187 + "title": "Mon 7 Oct 2024", 2188 + "feed_title": "ryan.freumh.org" 2189 + } 2190 + ] 2191 + }, 2192 + "https://anil.recoil.org/notes/socc-pc": { 2193 + "id": "https://anil.recoil.org/notes/socc-pc", 2194 + "title": "On the SOCC 2024 PC", 2195 + "link": "https://anil.recoil.org/notes/socc-pc", 2196 + "feed_title": "Anil Madhavapeddy's feed", 2197 + "references": [ 2198 + { 2199 + "id": "https://anil.recoil.org/projects/life", 2200 + "link": "https://anil.recoil.org/projects/life", 2201 + "title": "Mapping LIFE on Earth", 2202 + "feed_title": "Anil Madhavapeddy's feed" 2203 + } 2204 + ], 2205 + "referenced_by": [] 2206 + }, 2207 + "https://ryan.freumh.org/2024-10-07.html": { 2208 + "id": "https://ryan.freumh.org/2024-10-07.html", 2209 + "title": "Mon 7 Oct 2024", 2210 + "link": "https://ryan.freumh.org/2024-10-07.html", 2211 + "feed_title": "ryan.freumh.org", 2212 + "references": [ 2213 + { 2214 + "id": "https://ryan.freumh.org/2024-09-30.html", 2215 + "link": "https://ryan.freumh.org/2024-09-30.html", 2216 + "title": "Mon 30 Sep 2024", 2217 + "feed_title": "ryan.freumh.org" 2218 + }, 2219 + { 2220 + "id": "https://ryan.freumh.org/2024-10-14.html", 2221 + "link": "https://ryan.freumh.org/2024-10-14.html", 2222 + "title": "Mon 14 Oct 2024", 2223 + "feed_title": "ryan.freumh.org" 2224 + } 2225 + ], 2226 + "referenced_by": [ 2227 + { 2228 + "id": "https://ryan.freumh.org/2024-10-14.html", 2229 + "link": "https://ryan.freumh.org/2024-10-14.html", 2230 + "title": "Mon 14 Oct 2024", 2231 + "feed_title": "ryan.freumh.org" 2232 + }, 2233 + { 2234 + "id": "https://ryan.freumh.org/2024-09-30.html", 2235 + "link": "https://ryan.freumh.org/2024-09-30.html", 2236 + "title": "Mon 30 Sep 2024", 2237 + "feed_title": "ryan.freumh.org" 2238 + } 2239 + ] 2240 + }, 2241 + "https://anil.recoil.org/notes/rs-ecorisk-day1": { 2242 + "id": "https://anil.recoil.org/notes/rs-ecorisk-day1", 2243 + "title": "Royal Society meeting on ecological/commercial risks", 2244 + "link": "https://anil.recoil.org/notes/rs-ecorisk-day1", 2245 + "feed_title": "Anil Madhavapeddy's feed", 2246 + "references": [ 2247 + { 2248 + "id": "https://anil.recoil.org/projects/plancomp", 2249 + "link": "https://anil.recoil.org/projects/plancomp", 2250 + "title": "Planetary Computing", 2251 + "feed_title": "Anil Madhavapeddy's feed" 2252 + } 2253 + ], 2254 + "referenced_by": [ 2255 + { 2256 + "id": "https://anil.recoil.org/notes/cambridge-green-blue", 2257 + "link": "https://anil.recoil.org/notes/cambridge-green-blue", 2258 + "title": "The Cambridge \"Green Blue\" competition to reduce emissions", 2259 + "feed_title": "Anil Madhavapeddy's feed" 2260 + } 2261 + ] 2262 + }, 2263 + "https://mort.io/blog/workshopping-edgeless/": { 2264 + "id": "https://mort.io/blog/workshopping-edgeless/", 2265 + "title": "Workshopping, across the universe", 2266 + "link": "https://mort.io/blog/workshopping-edgeless/", 2267 + "feed_title": "mort\u2019s mythop\u0153ia", 2268 + "references": [], 2269 + "referenced_by": [] 2270 + }, 2271 + "https://ryan.freumh.org/2024-09-30.html": { 2272 + "id": "https://ryan.freumh.org/2024-09-30.html", 2273 + "title": "Mon 30 Sep 2024", 2274 + "link": "https://ryan.freumh.org/2024-09-30.html", 2275 + "feed_title": "ryan.freumh.org", 2276 + "references": [ 2277 + { 2278 + "id": "https://ryan.freumh.org/2024-09-23.html", 2279 + "link": "https://ryan.freumh.org/2024-09-23.html", 2280 + "title": "Mon 23 Sep 2024", 2281 + "feed_title": "ryan.freumh.org" 2282 + }, 2283 + { 2284 + "id": "https://ryan.freumh.org/2024-10-07.html", 2285 + "link": "https://ryan.freumh.org/2024-10-07.html", 2286 + "title": "Mon 7 Oct 2024", 2287 + "feed_title": "ryan.freumh.org" 2288 + } 2289 + ], 2290 + "referenced_by": [ 2291 + { 2292 + "id": "https://ryan.freumh.org/2024-10-07.html", 2293 + "link": "https://ryan.freumh.org/2024-10-07.html", 2294 + "title": "Mon 7 Oct 2024", 2295 + "feed_title": "ryan.freumh.org" 2296 + }, 2297 + { 2298 + "id": "https://ryan.freumh.org/2024-09-23.html", 2299 + "link": "https://ryan.freumh.org/2024-09-23.html", 2300 + "title": "Mon 23 Sep 2024", 2301 + "feed_title": "ryan.freumh.org" 2302 + } 2303 + ] 2304 + }, 2305 + "https://ryan.freumh.org/2024-09-23.html": { 2306 + "id": "https://ryan.freumh.org/2024-09-23.html", 2307 + "title": "Mon 23 Sep 2024", 2308 + "link": "https://ryan.freumh.org/2024-09-23.html", 2309 + "feed_title": "ryan.freumh.org", 2310 + "references": [ 2311 + { 2312 + "id": "https://ryan.freumh.org/2024-09-16.html", 2313 + "link": "https://ryan.freumh.org/2024-09-16.html", 2314 + "title": "Mon 16 Sep 2024", 2315 + "feed_title": "ryan.freumh.org" 2316 + }, 2317 + { 2318 + "id": "https://ryan.freumh.org/2024-09-30.html", 2319 + "link": "https://ryan.freumh.org/2024-09-30.html", 2320 + "title": "Mon 30 Sep 2024", 2321 + "feed_title": "ryan.freumh.org" 2322 + } 2323 + ], 2324 + "referenced_by": [ 2325 + { 2326 + "id": "https://ryan.freumh.org/2024-09-30.html", 2327 + "link": "https://ryan.freumh.org/2024-09-30.html", 2328 + "title": "Mon 30 Sep 2024", 2329 + "feed_title": "ryan.freumh.org" 2330 + }, 2331 + { 2332 + "id": "https://ryan.freumh.org/2024-09-16.html", 2333 + "link": "https://ryan.freumh.org/2024-09-16.html", 2334 + "title": "Mon 16 Sep 2024", 2335 + "feed_title": "ryan.freumh.org" 2336 + } 2337 + ] 2338 + }, 2339 + "https://anil.recoil.org/notes/hotnets-pc-2024": { 2340 + "id": "https://anil.recoil.org/notes/hotnets-pc-2024", 2341 + "title": "Being on the HotNets 2024 program committee", 2342 + "link": "https://anil.recoil.org/notes/hotnets-pc-2024", 2343 + "feed_title": "Anil Madhavapeddy's feed", 2344 + "references": [], 2345 + "referenced_by": [] 2346 + }, 2347 + "https://mort.io/blog/part-ii-projects/": { 2348 + "id": "https://mort.io/blog/part-ii-projects/", 2349 + "title": "Part II Projects", 2350 + "link": "https://mort.io/blog/part-ii-projects/", 2351 + "feed_title": "mort\u2019s mythop\u0153ia", 2352 + "references": [], 2353 + "referenced_by": [] 2354 + }, 2355 + "https://ryan.freumh.org/2024-09-16.html": { 2356 + "id": "https://ryan.freumh.org/2024-09-16.html", 2357 + "title": "Mon 16 Sep 2024", 2358 + "link": "https://ryan.freumh.org/2024-09-16.html", 2359 + "feed_title": "ryan.freumh.org", 2360 + "references": [ 2361 + { 2362 + "id": "https://ryan.freumh.org/2024-09-09.html", 2363 + "link": "https://ryan.freumh.org/2024-09-09.html", 2364 + "title": "Mon 9 Sep 2024", 2365 + "feed_title": "ryan.freumh.org" 2366 + }, 2367 + { 2368 + "id": "https://ryan.freumh.org/2024-09-23.html", 2369 + "link": "https://ryan.freumh.org/2024-09-23.html", 2370 + "title": "Mon 23 Sep 2024", 2371 + "feed_title": "ryan.freumh.org" 2372 + } 2373 + ], 2374 + "referenced_by": [ 2375 + { 2376 + "id": "https://ryan.freumh.org/2024-09-23.html", 2377 + "link": "https://ryan.freumh.org/2024-09-23.html", 2378 + "title": "Mon 23 Sep 2024", 2379 + "feed_title": "ryan.freumh.org" 2380 + }, 2381 + { 2382 + "id": "https://ryan.freumh.org/2024-09-09.html", 2383 + "link": "https://ryan.freumh.org/2024-09-09.html", 2384 + "title": "Mon 9 Sep 2024", 2385 + "feed_title": "ryan.freumh.org" 2386 + } 2387 + ] 2388 + }, 2389 + "https://ryan.freumh.org/2024-09-09.html": { 2390 + "id": "https://ryan.freumh.org/2024-09-09.html", 2391 + "title": "Mon 9 Sep 2024", 2392 + "link": "https://ryan.freumh.org/2024-09-09.html", 2393 + "feed_title": "ryan.freumh.org", 2394 + "references": [ 2395 + { 2396 + "id": "https://ryan.freumh.org/2024-09-02.html", 2397 + "link": "https://ryan.freumh.org/2024-09-02.html", 2398 + "title": "Mon 2 Sep 2024", 2399 + "feed_title": "ryan.freumh.org" 2400 + }, 2401 + { 2402 + "id": "https://ryan.freumh.org/2024-09-16.html", 2403 + "link": "https://ryan.freumh.org/2024-09-16.html", 2404 + "title": "Mon 16 Sep 2024", 2405 + "feed_title": "ryan.freumh.org" 2406 + } 2407 + ], 2408 + "referenced_by": [ 2409 + { 2410 + "id": "https://ryan.freumh.org/2024-09-16.html", 2411 + "link": "https://ryan.freumh.org/2024-09-16.html", 2412 + "title": "Mon 16 Sep 2024", 2413 + "feed_title": "ryan.freumh.org" 2414 + }, 2415 + { 2416 + "id": "https://ryan.freumh.org/2024-09-02.html", 2417 + "link": "https://ryan.freumh.org/2024-09-02.html", 2418 + "title": "Mon 2 Sep 2024", 2419 + "feed_title": "ryan.freumh.org" 2420 + } 2421 + ] 2422 + }, 2423 + "https://mort.io/blog/post-covid-tpc/": { 2424 + "id": "https://mort.io/blog/post-covid-tpc/", 2425 + "title": "Post-COVID19 TPC experience", 2426 + "link": "https://mort.io/blog/post-covid-tpc/", 2427 + "feed_title": "mort\u2019s mythop\u0153ia", 2428 + "references": [], 2429 + "referenced_by": [] 2430 + }, 2431 + "https://anil.recoil.org/notes/mitigating-nbs-risk-paper": { 2432 + "id": "https://anil.recoil.org/notes/mitigating-nbs-risk-paper", 2433 + "title": "Mitigating credit reversal risks in nature-based solutions", 2434 + "link": "https://anil.recoil.org/notes/mitigating-nbs-risk-paper", 2435 + "feed_title": "Anil Madhavapeddy's feed", 2436 + "references": [], 2437 + "referenced_by": [ 2438 + { 2439 + "id": "https://anil.recoil.org/news/2024-nbs-risk-2", 2440 + "link": "https://anil.recoil.org/news/2024-nbs-risk-2", 2441 + "title": "Paper published on ex-ante forecasts of nature-based solutions", 2442 + "feed_title": "Anil Madhavapeddy's feed" 2443 + } 2444 + ] 2445 + }, 2446 + "https://anil.recoil.org/news/2024-hope-bastion-1": { 2447 + "id": "https://anil.recoil.org/news/2024-hope-bastion-1", 2448 + "title": "Towards security specifications for agentic AIs", 2449 + "link": "https://anil.recoil.org/news/2024-hope-bastion-1", 2450 + "feed_title": "Anil Madhavapeddy's feed", 2451 + "references": [], 2452 + "referenced_by": [ 2453 + { 2454 + "id": "https://anil.recoil.org/notes/claude-copilot-sandbox", 2455 + "link": "https://anil.recoil.org/notes/claude-copilot-sandbox", 2456 + "title": "Oh my Claude, we need agentic copilot sandboxing right now", 2457 + "feed_title": "Anil Madhavapeddy's feed" 2458 + } 2459 + ] 2460 + }, 2461 + "https://anil.recoil.org/notes/new-teaching-page": { 2462 + "id": "https://anil.recoil.org/notes/new-teaching-page", 2463 + "title": "New teaching page with my Computer Science courses", 2464 + "link": "https://anil.recoil.org/notes/new-teaching-page", 2465 + "feed_title": "Anil Madhavapeddy's feed", 2466 + "references": [], 2467 + "referenced_by": [] 2468 + }, 2469 + "https://ryan.freumh.org/2024-09-02.html": { 2470 + "id": "https://ryan.freumh.org/2024-09-02.html", 2471 + "title": "Mon 2 Sep 2024", 2472 + "link": "https://ryan.freumh.org/2024-09-02.html", 2473 + "feed_title": "ryan.freumh.org", 2474 + "references": [ 2475 + { 2476 + "id": "https://ryan.freumh.org/2024-08-26.html", 2477 + "link": "https://ryan.freumh.org/2024-08-26.html", 2478 + "title": "Mon 26 Aug 2024", 2479 + "feed_title": "ryan.freumh.org" 2480 + }, 2481 + { 2482 + "id": "https://ryan.freumh.org/2024-09-09.html", 2483 + "link": "https://ryan.freumh.org/2024-09-09.html", 2484 + "title": "Mon 9 Sep 2024", 2485 + "feed_title": "ryan.freumh.org" 2486 + } 2487 + ], 2488 + "referenced_by": [ 2489 + { 2490 + "id": "https://ryan.freumh.org/2024-09-09.html", 2491 + "link": "https://ryan.freumh.org/2024-09-09.html", 2492 + "title": "Mon 9 Sep 2024", 2493 + "feed_title": "ryan.freumh.org" 2494 + }, 2495 + { 2496 + "id": "https://ryan.freumh.org/2024-08-26.html", 2497 + "link": "https://ryan.freumh.org/2024-08-26.html", 2498 + "title": "Mon 26 Aug 2024", 2499 + "feed_title": "ryan.freumh.org" 2500 + } 2501 + ] 2502 + }, 2503 + "https://anil.recoil.org/notes/ukri-grant-terra": { 2504 + "id": "https://anil.recoil.org/notes/ukri-grant-terra", 2505 + "title": "Building species models of the planet", 2506 + "link": "https://anil.recoil.org/notes/ukri-grant-terra", 2507 + "feed_title": "Anil Madhavapeddy's feed", 2508 + "references": [ 2509 + { 2510 + "id": "https://anil.recoil.org/projects/rsn", 2511 + "link": "https://anil.recoil.org/projects/rsn", 2512 + "title": "Remote Sensing of Nature", 2513 + "feed_title": "Anil Madhavapeddy's feed" 2514 + }, 2515 + { 2516 + "id": "https://anil.recoil.org/projects/life", 2517 + "link": "https://anil.recoil.org/projects/life", 2518 + "title": "Mapping LIFE on Earth", 2519 + "feed_title": "Anil Madhavapeddy's feed" 2520 + } 2521 + ], 2522 + "referenced_by": [] 2523 + }, 2524 + "https://anil.recoil.org/ideas/effect-parallel-strategies": { 2525 + "id": "https://anil.recoil.org/ideas/effect-parallel-strategies", 2526 + "title": "Parallel traversal effect handlers for OCaml", 2527 + "link": "https://anil.recoil.org/ideas/effect-parallel-strategies", 2528 + "feed_title": "Anil Madhavapeddy's feed", 2529 + "references": [], 2530 + "referenced_by": [] 2531 + }, 2532 + "https://anil.recoil.org/ideas/gradual-type-error-debugging": { 2533 + "id": "https://anil.recoil.org/ideas/gradual-type-error-debugging", 2534 + "title": "Gradually debugging type errors", 2535 + "link": "https://anil.recoil.org/ideas/gradual-type-error-debugging", 2536 + "feed_title": "Anil Madhavapeddy's feed", 2537 + "references": [], 2538 + "referenced_by": [] 2539 + }, 2540 + "https://anil.recoil.org/news/2024-nbs-risk-2": { 2541 + "id": "https://anil.recoil.org/news/2024-nbs-risk-2", 2542 + "title": "Paper published on ex-ante forecasts of nature-based solutions", 2543 + "link": "https://anil.recoil.org/news/2024-nbs-risk-2", 2544 + "feed_title": "Anil Madhavapeddy's feed", 2545 + "references": [ 2546 + { 2547 + "id": "https://anil.recoil.org/notes/mitigating-nbs-risk-paper", 2548 + "link": "https://anil.recoil.org/notes/mitigating-nbs-risk-paper", 2549 + "title": "Mitigating credit reversal risks in nature-based solutions", 2550 + "feed_title": "Anil Madhavapeddy's feed" 2551 + } 2552 + ], 2553 + "referenced_by": [] 2554 + }, 2555 + "https://mort.io/blog/stop-start/": { 2556 + "id": "https://mort.io/blog/stop-start/", 2557 + "title": "Stop, Start", 2558 + "link": "https://mort.io/blog/stop-start/", 2559 + "feed_title": "mort\u2019s mythop\u0153ia", 2560 + "references": [], 2561 + "referenced_by": [] 2562 + }, 2563 + "https://anil.recoil.org/news/2023-pact-tmf-3": { 2564 + "id": "https://anil.recoil.org/news/2023-pact-tmf-3", 2565 + "title": "PACT Tropical Moist Forest Accreditation Methodology", 2566 + "link": "https://anil.recoil.org/news/2023-pact-tmf-3", 2567 + "feed_title": "Anil Madhavapeddy's feed", 2568 + "references": [ 2569 + { 2570 + "id": "https://anil.recoil.org/news/2023-pact-tmf-2", 2571 + "link": "https://anil.recoil.org/news/2023-pact-tmf-2", 2572 + "title": "PACT Tropical Moist Forest Accreditation Methodology", 2573 + "feed_title": "Anil Madhavapeddy's feed" 2574 + } 2575 + ], 2576 + "referenced_by": [] 2577 + }, 2578 + "https://ryan.freumh.org/2024-08-26.html": { 2579 + "id": "https://ryan.freumh.org/2024-08-26.html", 2580 + "title": "Mon 26 Aug 2024", 2581 + "link": "https://ryan.freumh.org/2024-08-26.html", 2582 + "feed_title": "ryan.freumh.org", 2583 + "references": [ 2584 + { 2585 + "id": "https://ryan.freumh.org/2024-08-12.html", 2586 + "link": "https://ryan.freumh.org/2024-08-12.html", 2587 + "title": "Mon 12 Aug 2024", 2588 + "feed_title": "ryan.freumh.org" 2589 + }, 2590 + { 2591 + "id": "https://ryan.freumh.org/2024-09-02.html", 2592 + "link": "https://ryan.freumh.org/2024-09-02.html", 2593 + "title": "Mon 2 Sep 2024", 2594 + "feed_title": "ryan.freumh.org" 2595 + } 2596 + ], 2597 + "referenced_by": [ 2598 + { 2599 + "id": "https://ryan.freumh.org/2024-09-02.html", 2600 + "link": "https://ryan.freumh.org/2024-09-02.html", 2601 + "title": "Mon 2 Sep 2024", 2602 + "feed_title": "ryan.freumh.org" 2603 + }, 2604 + { 2605 + "id": "https://ryan.freumh.org/2024-08-12.html", 2606 + "link": "https://ryan.freumh.org/2024-08-12.html", 2607 + "title": "Mon 12 Aug 2024", 2608 + "feed_title": "ryan.freumh.org" 2609 + } 2610 + ] 2611 + }, 2612 + "https://mort.io/blog/restic-discovery/": { 2613 + "id": "https://mort.io/blog/restic-discovery/", 2614 + "title": "Discovering `restic`", 2615 + "link": "https://mort.io/blog/restic-discovery/", 2616 + "feed_title": "mort\u2019s mythop\u0153ia", 2617 + "references": [], 2618 + "referenced_by": [] 2619 + }, 2620 + "https://anil.recoil.org/notes/nature-crossroads": { 2621 + "id": "https://anil.recoil.org/notes/nature-crossroads", 2622 + "title": "Nature Sustainability commentary on carbon and biodiversity credits", 2623 + "link": "https://anil.recoil.org/notes/nature-crossroads", 2624 + "feed_title": "Anil Madhavapeddy's feed", 2625 + "references": [ 2626 + { 2627 + "id": "https://anil.recoil.org/ideas/legal-aspects-of-credits", 2628 + "link": "https://anil.recoil.org/ideas/legal-aspects-of-credits", 2629 + "title": "Legal perspectives on integrity issues in forest carbon", 2630 + "feed_title": "Anil Madhavapeddy's feed" 2631 + } 2632 + ], 2633 + "referenced_by": [ 2634 + { 2635 + "id": "https://anil.recoil.org/news/2023-naturecredits-1", 2636 + "link": "https://anil.recoil.org/news/2023-naturecredits-1", 2637 + "title": "Nature Sustainability article on carbon/biodiversity credits", 2638 + "feed_title": "Anil Madhavapeddy's feed" 2639 + }, 2640 + { 2641 + "id": "https://anil.recoil.org/ideas/legal-aspects-of-credits", 2642 + "link": "https://anil.recoil.org/ideas/legal-aspects-of-credits", 2643 + "title": "Legal perspectives on integrity issues in forest carbon", 2644 + "feed_title": "Anil Madhavapeddy's feed" 2645 + } 2646 + ] 2647 + }, 2648 + "https://mort.io/blog/electron-cli/": { 2649 + "id": "https://mort.io/blog/electron-cli/", 2650 + "title": "Debugging Electron apps", 2651 + "link": "https://mort.io/blog/electron-cli/", 2652 + "feed_title": "mort\u2019s mythop\u0153ia", 2653 + "references": [], 2654 + "referenced_by": [] 2655 + }, 2656 + "https://ryan.freumh.org/2024-08-12.html": { 2657 + "id": "https://ryan.freumh.org/2024-08-12.html", 2658 + "title": "Mon 12 Aug 2024", 2659 + "link": "https://ryan.freumh.org/2024-08-12.html", 2660 + "feed_title": "ryan.freumh.org", 2661 + "references": [ 2662 + { 2663 + "id": "https://ryan.freumh.org/2024-08-05.html", 2664 + "link": "https://ryan.freumh.org/2024-08-05.html", 2665 + "title": "Mon 5 Aug 2024", 2666 + "feed_title": "ryan.freumh.org" 2667 + }, 2668 + { 2669 + "id": "https://ryan.freumh.org/2024-08-26.html", 2670 + "link": "https://ryan.freumh.org/2024-08-26.html", 2671 + "title": "Mon 26 Aug 2024", 2672 + "feed_title": "ryan.freumh.org" 2673 + } 2674 + ], 2675 + "referenced_by": [ 2676 + { 2677 + "id": "https://ryan.freumh.org/2024-08-26.html", 2678 + "link": "https://ryan.freumh.org/2024-08-26.html", 2679 + "title": "Mon 26 Aug 2024", 2680 + "feed_title": "ryan.freumh.org" 2681 + }, 2682 + { 2683 + "id": "https://ryan.freumh.org/2024-08-05.html", 2684 + "link": "https://ryan.freumh.org/2024-08-05.html", 2685 + "title": "Mon 5 Aug 2024", 2686 + "feed_title": "ryan.freumh.org" 2687 + } 2688 + ] 2689 + }, 2690 + "https://ryan.freumh.org/2024-08-05.html": { 2691 + "id": "https://ryan.freumh.org/2024-08-05.html", 2692 + "title": "Mon 5 Aug 2024", 2693 + "link": "https://ryan.freumh.org/2024-08-05.html", 2694 + "feed_title": "ryan.freumh.org", 2695 + "references": [ 2696 + { 2697 + "id": "https://ryan.freumh.org/2024-07-08.html", 2698 + "link": "https://ryan.freumh.org/2024-07-08.html", 2699 + "title": "Mon 8 Jul 2024", 2700 + "feed_title": "ryan.freumh.org" 2701 + }, 2702 + { 2703 + "id": "https://ryan.freumh.org/2024-08-12.html", 2704 + "link": "https://ryan.freumh.org/2024-08-12.html", 2705 + "title": "Mon 12 Aug 2024", 2706 + "feed_title": "ryan.freumh.org" 2707 + } 2708 + ], 2709 + "referenced_by": [ 2710 + { 2711 + "id": "https://ryan.freumh.org/2024-08-12.html", 2712 + "link": "https://ryan.freumh.org/2024-08-12.html", 2713 + "title": "Mon 12 Aug 2024", 2714 + "feed_title": "ryan.freumh.org" 2715 + }, 2716 + { 2717 + "id": "https://ryan.freumh.org/2024-07-08.html", 2718 + "link": "https://ryan.freumh.org/2024-07-08.html", 2719 + "title": "Mon 8 Jul 2024", 2720 + "feed_title": "ryan.freumh.org" 2721 + } 2722 + ] 2723 + }, 2724 + "https://ryan.freumh.org/nas.html": { 2725 + "id": "https://ryan.freumh.org/nas.html", 2726 + "title": "Building a Low-Powered NAS", 2727 + "link": "https://ryan.freumh.org/nas.html", 2728 + "feed_title": "ryan.freumh.org", 2729 + "references": [], 2730 + "referenced_by": [] 2731 + }, 2732 + "https://anil.recoil.org/ideas/life-explorer-wasm": { 2733 + "id": "https://anil.recoil.org/ideas/life-explorer-wasm", 2734 + "title": "Using wasm to locally explore geospatial layers", 2735 + "link": "https://anil.recoil.org/ideas/life-explorer-wasm", 2736 + "feed_title": "Anil Madhavapeddy's feed", 2737 + "references": [ 2738 + { 2739 + "id": "https://anil.recoil.org/projects/life", 2740 + "link": "https://anil.recoil.org/projects/life", 2741 + "title": "Mapping LIFE on Earth", 2742 + "feed_title": "Anil Madhavapeddy's feed" 2743 + }, 2744 + { 2745 + "id": "https://anil.recoil.org/projects/rsn", 2746 + "link": "https://anil.recoil.org/projects/rsn", 2747 + "title": "Remote Sensing of Nature", 2748 + "feed_title": "Anil Madhavapeddy's feed" 2749 + } 2750 + ], 2751 + "referenced_by": [ 2752 + { 2753 + "id": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 2754 + "link": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 2755 + "title": "COMPASS 2024 report on the CoRE stack RIC meeting", 2756 + "feed_title": "Anil Madhavapeddy's feed" 2757 + } 2758 + ] 2759 + }, 2760 + "https://anil.recoil.org/ideas/urls-with-provenance": { 2761 + "id": "https://anil.recoil.org/ideas/urls-with-provenance", 2762 + "title": "Towards reproducible URLs with provenance", 2763 + "link": "https://anil.recoil.org/ideas/urls-with-provenance", 2764 + "feed_title": "Anil Madhavapeddy's feed", 2765 + "references": [], 2766 + "referenced_by": [] 2767 + }, 2768 + "https://anil.recoil.org/ideas/mapping-species-extinction-risks": { 2769 + "id": "https://anil.recoil.org/ideas/mapping-species-extinction-risks", 2770 + "title": "Real-time mapping of changes in species extinction risks", 2771 + "link": "https://anil.recoil.org/ideas/mapping-species-extinction-risks", 2772 + "feed_title": "Anil Madhavapeddy's feed", 2773 + "references": [ 2774 + { 2775 + "id": "https://anil.recoil.org/projects/life", 2776 + "link": "https://anil.recoil.org/projects/life", 2777 + "title": "Mapping LIFE on Earth", 2778 + "feed_title": "Anil Madhavapeddy's feed" 2779 + } 2780 + ], 2781 + "referenced_by": [] 2782 + }, 2783 + "https://anil.recoil.org/news/2024-terracorder-1": { 2784 + "id": "https://anil.recoil.org/news/2024-terracorder-1", 2785 + "title": "Preprint on Terracorder sensing now available", 2786 + "link": "https://anil.recoil.org/news/2024-terracorder-1", 2787 + "feed_title": "Anil Madhavapeddy's feed", 2788 + "references": [], 2789 + "referenced_by": [] 2790 + }, 2791 + "https://anil.recoil.org/news/2023-naturecredits-1": { 2792 + "id": "https://anil.recoil.org/news/2023-naturecredits-1", 2793 + "title": "Nature Sustainability article on carbon/biodiversity credits", 2794 + "link": "https://anil.recoil.org/news/2023-naturecredits-1", 2795 + "feed_title": "Anil Madhavapeddy's feed", 2796 + "references": [ 2797 + { 2798 + "id": "https://anil.recoil.org/notes/nature-crossroads", 2799 + "link": "https://anil.recoil.org/notes/nature-crossroads", 2800 + "title": "Nature Sustainability commentary on carbon and biodiversity credits", 2801 + "feed_title": "Anil Madhavapeddy's feed" 2802 + } 2803 + ], 2804 + "referenced_by": [] 2805 + }, 2806 + "https://anil.recoil.org/ideas/mapping-hunting-risks-for-wild-meat": { 2807 + "id": "https://anil.recoil.org/ideas/mapping-hunting-risks-for-wild-meat", 2808 + "title": "Mapping hunting risks for wild meat in protected areas", 2809 + "link": "https://anil.recoil.org/ideas/mapping-hunting-risks-for-wild-meat", 2810 + "feed_title": "Anil Madhavapeddy's feed", 2811 + "references": [ 2812 + { 2813 + "id": "https://anil.recoil.org/projects/life", 2814 + "link": "https://anil.recoil.org/projects/life", 2815 + "title": "Mapping LIFE on Earth", 2816 + "feed_title": "Anil Madhavapeddy's feed" 2817 + } 2818 + ], 2819 + "referenced_by": [] 2820 + }, 2821 + "https://anil.recoil.org/ideas/choregraphic-programming-ocaml": { 2822 + "id": "https://anil.recoil.org/ideas/choregraphic-programming-ocaml", 2823 + "title": "Implementing a higher-order choreographic language", 2824 + "link": "https://anil.recoil.org/ideas/choregraphic-programming-ocaml", 2825 + "feed_title": "Anil Madhavapeddy's feed", 2826 + "references": [], 2827 + "referenced_by": [] 2828 + }, 2829 + "https://anil.recoil.org/ideas/ssl-for-geospatial-tasks": { 2830 + "id": "https://anil.recoil.org/ideas/ssl-for-geospatial-tasks", 2831 + "title": "Foundation models for complex geospatial tasks", 2832 + "link": "https://anil.recoil.org/ideas/ssl-for-geospatial-tasks", 2833 + "feed_title": "Anil Madhavapeddy's feed", 2834 + "references": [], 2835 + "referenced_by": [] 2836 + }, 2837 + "https://anil.recoil.org/ideas/effective-specification-languages": { 2838 + "id": "https://anil.recoil.org/ideas/effective-specification-languages", 2839 + "title": "An imperative, pure and effective specification language", 2840 + "link": "https://anil.recoil.org/ideas/effective-specification-languages", 2841 + "feed_title": "Anil Madhavapeddy's feed", 2842 + "references": [], 2843 + "referenced_by": [] 2844 + }, 2845 + "https://digitalflapjack.com/blog/hosting24/": { 2846 + "id": "https://digitalflapjack.com/blog/hosting24/", 2847 + "title": "Self Hosting - 2024 edition", 2848 + "link": "https://digitalflapjack.com/blog/hosting24/", 2849 + "feed_title": "Digital Flapjack", 2850 + "references": [], 2851 + "referenced_by": [ 2852 + { 2853 + "id": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 2854 + "link": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 2855 + "title": "Using AT Proto for more than just Bluesky posts", 2856 + "feed_title": "Anil Madhavapeddy's feed" 2857 + } 2858 + ] 2859 + }, 2860 + "https://anil.recoil.org/notes/student-ideas": { 2861 + "id": "https://anil.recoil.org/notes/student-ideas", 2862 + "title": "New set of ideas for incoming students", 2863 + "link": "https://anil.recoil.org/notes/student-ideas", 2864 + "feed_title": "Anil Madhavapeddy's feed", 2865 + "references": [], 2866 + "referenced_by": [] 2867 + }, 2868 + "https://ryan.freumh.org/2024-07-08.html": { 2869 + "id": "https://ryan.freumh.org/2024-07-08.html", 2870 + "title": "Mon 8 Jul 2024", 2871 + "link": "https://ryan.freumh.org/2024-07-08.html", 2872 + "feed_title": "ryan.freumh.org", 2873 + "references": [ 2874 + { 2875 + "id": "https://ryan.freumh.org/2024-06-24.html", 2876 + "link": "https://ryan.freumh.org/2024-06-24.html", 2877 + "title": "Mon 24 Jun 2024", 2878 + "feed_title": "ryan.freumh.org" 2879 + }, 2880 + { 2881 + "id": "https://ryan.freumh.org/2024-08-05.html", 2882 + "link": "https://ryan.freumh.org/2024-08-05.html", 2883 + "title": "Mon 5 Aug 2024", 2884 + "feed_title": "ryan.freumh.org" 2885 + } 2886 + ], 2887 + "referenced_by": [ 2888 + { 2889 + "id": "https://ryan.freumh.org/2024-08-05.html", 2890 + "link": "https://ryan.freumh.org/2024-08-05.html", 2891 + "title": "Mon 5 Aug 2024", 2892 + "feed_title": "ryan.freumh.org" 2893 + }, 2894 + { 2895 + "id": "https://ryan.freumh.org/2024-06-24.html", 2896 + "link": "https://ryan.freumh.org/2024-06-24.html", 2897 + "title": "Mon 24 Jun 2024", 2898 + "feed_title": "ryan.freumh.org" 2899 + } 2900 + ] 2901 + }, 2902 + "https://anil.recoil.org/notes/compass2024-ric-tripreport": { 2903 + "id": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 2904 + "title": "COMPASS 2024 report on the CoRE stack RIC meeting", 2905 + "link": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 2906 + "feed_title": "Anil Madhavapeddy's feed", 2907 + "references": [ 2908 + { 2909 + "id": "https://anil.recoil.org/projects/rsn", 2910 + "link": "https://anil.recoil.org/projects/rsn", 2911 + "title": "Remote Sensing of Nature", 2912 + "feed_title": "Anil Madhavapeddy's feed" 2913 + }, 2914 + { 2915 + "id": "https://anil.recoil.org/projects/plancomp", 2916 + "link": "https://anil.recoil.org/projects/plancomp", 2917 + "title": "Planetary Computing", 2918 + "feed_title": "Anil Madhavapeddy's feed" 2919 + }, 2920 + { 2921 + "id": "https://anil.recoil.org/projects/ce", 2922 + "link": "https://anil.recoil.org/projects/ce", 2923 + "title": "Conservation Evidence Copilots", 2924 + "feed_title": "Anil Madhavapeddy's feed" 2925 + }, 2926 + { 2927 + "id": "https://anil.recoil.org/ideas/life-explorer-wasm", 2928 + "link": "https://anil.recoil.org/ideas/life-explorer-wasm", 2929 + "title": "Using wasm to locally explore geospatial layers", 2930 + "feed_title": "Anil Madhavapeddy's feed" 2931 + }, 2932 + { 2933 + "id": "https://anil.recoil.org/projects/life", 2934 + "link": "https://anil.recoil.org/projects/life", 2935 + "title": "Mapping LIFE on Earth", 2936 + "feed_title": "Anil Madhavapeddy's feed" 2937 + }, 2938 + { 2939 + "id": "https://anil.recoil.org/ideas/diffusion-model-satellites", 2940 + "link": "https://anil.recoil.org/ideas/diffusion-model-satellites", 2941 + "title": "Diffusion models for terrestrial predictions about land use change", 2942 + "feed_title": "Anil Madhavapeddy's feed" 2943 + } 2944 + ], 2945 + "referenced_by": [ 2946 + { 2947 + "id": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 2948 + "link": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 2949 + "title": "A trio of papers I read on biodiversity and forests this week", 2950 + "feed_title": "Anil Madhavapeddy's feed" 2951 + } 2952 + ] 2953 + }, 2954 + "https://anil.recoil.org/news/2024-life-2": { 2955 + "id": "https://anil.recoil.org/news/2024-life-2", 2956 + "title": "Second preprint of the LIFE biodiversity metric available", 2957 + "link": "https://anil.recoil.org/news/2024-life-2", 2958 + "feed_title": "Anil Madhavapeddy's feed", 2959 + "references": [ 2960 + { 2961 + "id": "https://anil.recoil.org/projects/life", 2962 + "link": "https://anil.recoil.org/projects/life", 2963 + "title": "Mapping LIFE on Earth", 2964 + "feed_title": "Anil Madhavapeddy's feed" 2965 + } 2966 + ], 2967 + "referenced_by": [] 2968 + }, 2969 + "https://mort.io/blog/reinstall-maestral/": { 2970 + "id": "https://mort.io/blog/reinstall-maestral/", 2971 + "title": "Reinstalling `maestral`", 2972 + "link": "https://mort.io/blog/reinstall-maestral/", 2973 + "feed_title": "mort\u2019s mythop\u0153ia", 2974 + "references": [], 2975 + "referenced_by": [] 2976 + }, 2977 + "https://anil.recoil.org/news/80795e06-ac75-4015-b178-3cfcbb233685-1": { 2978 + "id": "https://anil.recoil.org/news/80795e06-ac75-4015-b178-3cfcbb233685-1", 2979 + "title": "Speaking at CCI workshop on conservation evidence", 2980 + "link": "https://anil.recoil.org/news/80795e06-ac75-4015-b178-3cfcbb233685-1", 2981 + "feed_title": "Anil Madhavapeddy's feed", 2982 + "references": [], 2983 + "referenced_by": [] 2984 + }, 2985 + "https://ryan.freumh.org/2024-06-24.html": { 2986 + "id": "https://ryan.freumh.org/2024-06-24.html", 2987 + "title": "Mon 24 Jun 2024", 2988 + "link": "https://ryan.freumh.org/2024-06-24.html", 2989 + "feed_title": "ryan.freumh.org", 2990 + "references": [ 2991 + { 2992 + "id": "https://ryan.freumh.org/2024-05-27.html", 2993 + "link": "https://ryan.freumh.org/2024-05-27.html", 2994 + "title": "Mon 27 May 2024", 2995 + "feed_title": "ryan.freumh.org" 2996 + }, 2997 + { 2998 + "id": "https://ryan.freumh.org/2024-07-08.html", 2999 + "link": "https://ryan.freumh.org/2024-07-08.html", 3000 + "title": "Mon 8 Jul 2024", 3001 + "feed_title": "ryan.freumh.org" 3002 + } 3003 + ], 3004 + "referenced_by": [ 3005 + { 3006 + "id": "https://ryan.freumh.org/2024-07-08.html", 3007 + "link": "https://ryan.freumh.org/2024-07-08.html", 3008 + "title": "Mon 8 Jul 2024", 3009 + "feed_title": "ryan.freumh.org" 3010 + }, 3011 + { 3012 + "id": "https://ryan.freumh.org/2024-05-27.html", 3013 + "link": "https://ryan.freumh.org/2024-05-27.html", 3014 + "title": "Mon 27 May 2024", 3015 + "feed_title": "ryan.freumh.org" 3016 + } 3017 + ] 3018 + }, 3019 + "https://anil.recoil.org/notes/aicam-interview-ce": { 3020 + "id": "https://anil.recoil.org/notes/aicam-interview-ce", 3021 + "title": "Interview with AI@CAM about conservation", 3022 + "link": "https://anil.recoil.org/notes/aicam-interview-ce", 3023 + "feed_title": "Anil Madhavapeddy's feed", 3024 + "references": [ 3025 + { 3026 + "id": "https://anil.recoil.org/notes/aicn-in-aicam", 3027 + "link": "https://anil.recoil.org/notes/aicn-in-aicam", 3028 + "title": "Selected in the AI@CAM challenge for conservation research", 3029 + "feed_title": "Anil Madhavapeddy's feed" 3030 + }, 3031 + { 3032 + "id": "https://anil.recoil.org/projects/ce", 3033 + "link": "https://anil.recoil.org/projects/ce", 3034 + "title": "Conservation Evidence Copilots", 3035 + "feed_title": "Anil Madhavapeddy's feed" 3036 + } 3037 + ], 3038 + "referenced_by": [] 3039 + }, 3040 + "https://anil.recoil.org/news/2024-hyper-tropical-mapping-1": { 3041 + "id": "https://anil.recoil.org/news/2024-hyper-tropical-mapping-1", 3042 + "title": "Hyperspectrally identifying trees in tropical forests", 3043 + "link": "https://anil.recoil.org/news/2024-hyper-tropical-mapping-1", 3044 + "feed_title": "Anil Madhavapeddy's feed", 3045 + "references": [], 3046 + "referenced_by": [] 3047 + }, 3048 + "https://ryan.freumh.org/2024-05-27.html": { 3049 + "id": "https://ryan.freumh.org/2024-05-27.html", 3050 + "title": "Mon 27 May 2024", 3051 + "link": "https://ryan.freumh.org/2024-05-27.html", 3052 + "feed_title": "ryan.freumh.org", 3053 + "references": [ 3054 + { 3055 + "id": "https://ryan.freumh.org/2024-05-20.html", 3056 + "link": "https://ryan.freumh.org/2024-05-20.html", 3057 + "title": "Mon 20 May 2024", 3058 + "feed_title": "ryan.freumh.org" 3059 + }, 3060 + { 3061 + "id": "https://ryan.freumh.org/2024-06-24.html", 3062 + "link": "https://ryan.freumh.org/2024-06-24.html", 3063 + "title": "Mon 24 Jun 2024", 3064 + "feed_title": "ryan.freumh.org" 3065 + } 3066 + ], 3067 + "referenced_by": [ 3068 + { 3069 + "id": "https://ryan.freumh.org/2024-06-24.html", 3070 + "link": "https://ryan.freumh.org/2024-06-24.html", 3071 + "title": "Mon 24 Jun 2024", 3072 + "feed_title": "ryan.freumh.org" 3073 + }, 3074 + { 3075 + "id": "https://ryan.freumh.org/2024-05-20.html", 3076 + "link": "https://ryan.freumh.org/2024-05-20.html", 3077 + "title": "Mon 20 May 2024", 3078 + "feed_title": "ryan.freumh.org" 3079 + } 3080 + ] 3081 + }, 3082 + "https://anil.recoil.org/news/d592bf17-c835-435f-9469-f0f65e926975-1": { 3083 + "id": "https://anil.recoil.org/news/d592bf17-c835-435f-9469-f0f65e926975-1", 3084 + "title": "Programming for the Planet", 3085 + "link": "https://anil.recoil.org/news/d592bf17-c835-435f-9469-f0f65e926975-1", 3086 + "feed_title": "Anil Madhavapeddy's feed", 3087 + "references": [], 3088 + "referenced_by": [] 3089 + }, 3090 + "https://ryan.freumh.org/2024-05-20.html": { 3091 + "id": "https://ryan.freumh.org/2024-05-20.html", 3092 + "title": "Mon 20 May 2024", 3093 + "link": "https://ryan.freumh.org/2024-05-20.html", 3094 + "feed_title": "ryan.freumh.org", 3095 + "references": [ 3096 + { 3097 + "id": "https://ryan.freumh.org/2024-05-13.html", 3098 + "link": "https://ryan.freumh.org/2024-05-13.html", 3099 + "title": "Mon 13 May 2024", 3100 + "feed_title": "ryan.freumh.org" 3101 + }, 3102 + { 3103 + "id": "https://ryan.freumh.org/2024-05-27.html", 3104 + "link": "https://ryan.freumh.org/2024-05-27.html", 3105 + "title": "Mon 27 May 2024", 3106 + "feed_title": "ryan.freumh.org" 3107 + } 3108 + ], 3109 + "referenced_by": [ 3110 + { 3111 + "id": "https://ryan.freumh.org/2024-05-27.html", 3112 + "link": "https://ryan.freumh.org/2024-05-27.html", 3113 + "title": "Mon 27 May 2024", 3114 + "feed_title": "ryan.freumh.org" 3115 + }, 3116 + { 3117 + "id": "https://ryan.freumh.org/2024-05-13.html", 3118 + "link": "https://ryan.freumh.org/2024-05-13.html", 3119 + "title": "Mon 13 May 2024", 3120 + "feed_title": "ryan.freumh.org" 3121 + } 3122 + ] 3123 + }, 3124 + "https://ryan.freumh.org/2024-05-13.html": { 3125 + "id": "https://ryan.freumh.org/2024-05-13.html", 3126 + "title": "Mon 13 May 2024", 3127 + "link": "https://ryan.freumh.org/2024-05-13.html", 3128 + "feed_title": "ryan.freumh.org", 3129 + "references": [ 3130 + { 3131 + "id": "https://ryan.freumh.org/2024-05-06.html", 3132 + "link": "https://ryan.freumh.org/2024-05-06.html", 3133 + "title": "Mon 6 May 2024", 3134 + "feed_title": "ryan.freumh.org" 3135 + }, 3136 + { 3137 + "id": "https://ryan.freumh.org/2024-05-20.html", 3138 + "link": "https://ryan.freumh.org/2024-05-20.html", 3139 + "title": "Mon 20 May 2024", 3140 + "feed_title": "ryan.freumh.org" 3141 + } 3142 + ], 3143 + "referenced_by": [ 3144 + { 3145 + "id": "https://ryan.freumh.org/2024-05-20.html", 3146 + "link": "https://ryan.freumh.org/2024-05-20.html", 3147 + "title": "Mon 20 May 2024", 3148 + "feed_title": "ryan.freumh.org" 3149 + }, 3150 + { 3151 + "id": "https://ryan.freumh.org/2024-05-06.html", 3152 + "link": "https://ryan.freumh.org/2024-05-06.html", 3153 + "title": "Mon 6 May 2024", 3154 + "feed_title": "ryan.freumh.org" 3155 + } 3156 + ] 3157 + }, 3158 + "https://ryan.freumh.org/2024-05-06.html": { 3159 + "id": "https://ryan.freumh.org/2024-05-06.html", 3160 + "title": "Mon 6 May 2024", 3161 + "link": "https://ryan.freumh.org/2024-05-06.html", 3162 + "feed_title": "ryan.freumh.org", 3163 + "references": [ 3164 + { 3165 + "id": "https://ryan.freumh.org/2024-04-29.html", 3166 + "link": "https://ryan.freumh.org/2024-04-29.html", 3167 + "title": "Mon 29 Apr 2024", 3168 + "feed_title": "ryan.freumh.org" 3169 + }, 3170 + { 3171 + "id": "https://ryan.freumh.org/2024-05-13.html", 3172 + "link": "https://ryan.freumh.org/2024-05-13.html", 3173 + "title": "Mon 13 May 2024", 3174 + "feed_title": "ryan.freumh.org" 3175 + } 3176 + ], 3177 + "referenced_by": [ 3178 + { 3179 + "id": "https://ryan.freumh.org/2024-05-13.html", 3180 + "link": "https://ryan.freumh.org/2024-05-13.html", 3181 + "title": "Mon 13 May 2024", 3182 + "feed_title": "ryan.freumh.org" 3183 + }, 3184 + { 3185 + "id": "https://ryan.freumh.org/2024-04-29.html", 3186 + "link": "https://ryan.freumh.org/2024-04-29.html", 3187 + "title": "Mon 29 Apr 2024", 3188 + "feed_title": "ryan.freumh.org" 3189 + } 3190 + ] 3191 + }, 3192 + "https://anil.recoil.org/news/2024-food-life-1": { 3193 + "id": "https://anil.recoil.org/news/2024-food-life-1", 3194 + "title": "Quantifying the impact of the food we eat on species extinctions", 3195 + "link": "https://anil.recoil.org/news/2024-food-life-1", 3196 + "feed_title": "Anil Madhavapeddy's feed", 3197 + "references": [], 3198 + "referenced_by": [] 3199 + }, 3200 + "https://anil.recoil.org/news/2024-sdm-sa-1": { 3201 + "id": "https://anil.recoil.org/news/2024-sdm-sa-1", 3202 + "title": "Predicting species using machine learning at CCAI", 3203 + "link": "https://anil.recoil.org/news/2024-sdm-sa-1", 3204 + "feed_title": "Anil Madhavapeddy's feed", 3205 + "references": [ 3206 + { 3207 + "id": "https://anil.recoil.org/ideas/sdms-with-cnns", 3208 + "link": "https://anil.recoil.org/ideas/sdms-with-cnns", 3209 + "title": "Species distribution modelling using CNNs", 3210 + "feed_title": "Anil Madhavapeddy's feed" 3211 + } 3212 + ], 3213 + "referenced_by": [] 3214 + }, 3215 + "https://anil.recoil.org/ideas/wayland": { 3216 + "id": "https://anil.recoil.org/ideas/wayland", 3217 + "title": "Low-latency wayland compositor in OCaml", 3218 + "link": "https://anil.recoil.org/ideas/wayland", 3219 + "feed_title": "Anil Madhavapeddy's feed", 3220 + "references": [], 3221 + "referenced_by": [] 3222 + }, 3223 + "https://anil.recoil.org/ideas/diffusion-model-satellites": { 3224 + "id": "https://anil.recoil.org/ideas/diffusion-model-satellites", 3225 + "title": "Diffusion models for terrestrial predictions about land use change", 3226 + "link": "https://anil.recoil.org/ideas/diffusion-model-satellites", 3227 + "feed_title": "Anil Madhavapeddy's feed", 3228 + "references": [], 3229 + "referenced_by": [ 3230 + { 3231 + "id": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 3232 + "link": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 3233 + "title": "COMPASS 2024 report on the CoRE stack RIC meeting", 3234 + "feed_title": "Anil Madhavapeddy's feed" 3235 + } 3236 + ] 3237 + }, 3238 + "https://ryan.freumh.org/2024-04-29.html": { 3239 + "id": "https://ryan.freumh.org/2024-04-29.html", 3240 + "title": "Mon 29 Apr 2024", 3241 + "link": "https://ryan.freumh.org/2024-04-29.html", 3242 + "feed_title": "ryan.freumh.org", 3243 + "references": [ 3244 + { 3245 + "id": "https://ryan.freumh.org/2024-04-22.html", 3246 + "link": "https://ryan.freumh.org/2024-04-22.html", 3247 + "title": "Mon 22 Apr 2024", 3248 + "feed_title": "ryan.freumh.org" 3249 + }, 3250 + { 3251 + "id": "https://ryan.freumh.org/2024-05-06.html", 3252 + "link": "https://ryan.freumh.org/2024-05-06.html", 3253 + "title": "Mon 6 May 2024", 3254 + "feed_title": "ryan.freumh.org" 3255 + } 3256 + ], 3257 + "referenced_by": [ 3258 + { 3259 + "id": "https://ryan.freumh.org/2024-05-06.html", 3260 + "link": "https://ryan.freumh.org/2024-05-06.html", 3261 + "title": "Mon 6 May 2024", 3262 + "feed_title": "ryan.freumh.org" 3263 + }, 3264 + { 3265 + "id": "https://ryan.freumh.org/2024-04-22.html", 3266 + "link": "https://ryan.freumh.org/2024-04-22.html", 3267 + "title": "Mon 22 Apr 2024", 3268 + "feed_title": "ryan.freumh.org" 3269 + } 3270 + ] 3271 + }, 3272 + "https://ryan.freumh.org/2024-04-22.html": { 3273 + "id": "https://ryan.freumh.org/2024-04-22.html", 3274 + "title": "Mon 22 Apr 2024", 3275 + "link": "https://ryan.freumh.org/2024-04-22.html", 3276 + "feed_title": "ryan.freumh.org", 3277 + "references": [ 3278 + { 3279 + "id": "https://ryan.freumh.org/2024-04-15.html", 3280 + "link": "https://ryan.freumh.org/2024-04-15.html", 3281 + "title": "Mon 15 Apr 2024", 3282 + "feed_title": "ryan.freumh.org" 3283 + }, 3284 + { 3285 + "id": "https://ryan.freumh.org/2024-04-29.html", 3286 + "link": "https://ryan.freumh.org/2024-04-29.html", 3287 + "title": "Mon 29 Apr 2024", 3288 + "feed_title": "ryan.freumh.org" 3289 + } 3290 + ], 3291 + "referenced_by": [ 3292 + { 3293 + "id": "https://ryan.freumh.org/2024-04-29.html", 3294 + "link": "https://ryan.freumh.org/2024-04-29.html", 3295 + "title": "Mon 29 Apr 2024", 3296 + "feed_title": "ryan.freumh.org" 3297 + }, 3298 + { 3299 + "id": "https://ryan.freumh.org/2024-04-15.html", 3300 + "link": "https://ryan.freumh.org/2024-04-15.html", 3301 + "title": "Mon 15 Apr 2024", 3302 + "feed_title": "ryan.freumh.org" 3303 + } 3304 + ] 3305 + }, 3306 + "https://ancazugo.github.io/python/carto/uk-3-30-300": { 3307 + "id": "https://ancazugo.github.io/python/carto/uk-3-30-300", 3308 + "title": "Green Urban Equity in the UK", 3309 + "link": "https://ancazugo.github.io/python/carto/uk-3-30-300.html", 3310 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 3311 + "references": [], 3312 + "referenced_by": [] 3313 + }, 3314 + "https://ryan.freumh.org/2024-04-15.html": { 3315 + "id": "https://ryan.freumh.org/2024-04-15.html", 3316 + "title": "Mon 15 Apr 2024", 3317 + "link": "https://ryan.freumh.org/2024-04-15.html", 3318 + "feed_title": "ryan.freumh.org", 3319 + "references": [ 3320 + { 3321 + "id": "https://ryan.freumh.org/2024-04-08.html", 3322 + "link": "https://ryan.freumh.org/2024-04-08.html", 3323 + "title": "Mon 8 Apr 2024", 3324 + "feed_title": "ryan.freumh.org" 3325 + }, 3326 + { 3327 + "id": "https://ryan.freumh.org/2024-04-22.html", 3328 + "link": "https://ryan.freumh.org/2024-04-22.html", 3329 + "title": "Mon 22 Apr 2024", 3330 + "feed_title": "ryan.freumh.org" 3331 + } 3332 + ], 3333 + "referenced_by": [ 3334 + { 3335 + "id": "https://ryan.freumh.org/2024-04-22.html", 3336 + "link": "https://ryan.freumh.org/2024-04-22.html", 3337 + "title": "Mon 22 Apr 2024", 3338 + "feed_title": "ryan.freumh.org" 3339 + }, 3340 + { 3341 + "id": "https://ryan.freumh.org/2024-04-08.html", 3342 + "link": "https://ryan.freumh.org/2024-04-08.html", 3343 + "title": "Mon 8 Apr 2024", 3344 + "feed_title": "ryan.freumh.org" 3345 + } 3346 + ] 3347 + }, 3348 + "https://ryan.freumh.org/2024-04-08.html": { 3349 + "id": "https://ryan.freumh.org/2024-04-08.html", 3350 + "title": "Mon 8 Apr 2024", 3351 + "link": "https://ryan.freumh.org/2024-04-08.html", 3352 + "feed_title": "ryan.freumh.org", 3353 + "references": [ 3354 + { 3355 + "id": "https://ryan.freumh.org/2024-04-01.html", 3356 + "link": "https://ryan.freumh.org/2024-04-01.html", 3357 + "title": "Mon 1 Apr 2024", 3358 + "feed_title": "ryan.freumh.org" 3359 + }, 3360 + { 3361 + "id": "https://ryan.freumh.org/2024-04-15.html", 3362 + "link": "https://ryan.freumh.org/2024-04-15.html", 3363 + "title": "Mon 15 Apr 2024", 3364 + "feed_title": "ryan.freumh.org" 3365 + } 3366 + ], 3367 + "referenced_by": [ 3368 + { 3369 + "id": "https://ryan.freumh.org/2024-04-15.html", 3370 + "link": "https://ryan.freumh.org/2024-04-15.html", 3371 + "title": "Mon 15 Apr 2024", 3372 + "feed_title": "ryan.freumh.org" 3373 + }, 3374 + { 3375 + "id": "https://ryan.freumh.org/2024-04-01.html", 3376 + "link": "https://ryan.freumh.org/2024-04-01.html", 3377 + "title": "Mon 1 Apr 2024", 3378 + "feed_title": "ryan.freumh.org" 3379 + } 3380 + ] 3381 + }, 3382 + "https://anil.recoil.org/notes/swseng": { 3383 + "id": "https://anil.recoil.org/notes/swseng", 3384 + "title": "Teaching 1A Security and Software Engineering", 3385 + "link": "https://anil.recoil.org/notes/swseng", 3386 + "feed_title": "Anil Madhavapeddy's feed", 3387 + "references": [], 3388 + "referenced_by": [] 3389 + }, 3390 + "https://anil.recoil.org/news/2024-cc-blockchain-1": { 3391 + "id": "https://anil.recoil.org/news/2024-cc-blockchain-1", 3392 + "title": "Global, robust and comparable digital carbon assets", 3393 + "link": "https://anil.recoil.org/news/2024-cc-blockchain-1", 3394 + "feed_title": "Anil Madhavapeddy's feed", 3395 + "references": [], 3396 + "referenced_by": [] 3397 + }, 3398 + "https://ryan.freumh.org/2024-04-01.html": { 3399 + "id": "https://ryan.freumh.org/2024-04-01.html", 3400 + "title": "Mon 1 Apr 2024", 3401 + "link": "https://ryan.freumh.org/2024-04-01.html", 3402 + "feed_title": "ryan.freumh.org", 3403 + "references": [ 3404 + { 3405 + "id": "https://ryan.freumh.org/2024-03-25.html", 3406 + "link": "https://ryan.freumh.org/2024-03-25.html", 3407 + "title": "Mon 25 Mar 2024", 3408 + "feed_title": "ryan.freumh.org" 3409 + }, 3410 + { 3411 + "id": "https://ryan.freumh.org/2024-04-08.html", 3412 + "link": "https://ryan.freumh.org/2024-04-08.html", 3413 + "title": "Mon 8 Apr 2024", 3414 + "feed_title": "ryan.freumh.org" 3415 + }, 3416 + { 3417 + "id": "https://ryan.freumh.org/2024-03-18.html", 3418 + "link": "https://ryan.freumh.org/2024-03-18.html", 3419 + "title": "Mon 18 Mar 2024", 3420 + "feed_title": "ryan.freumh.org" 3421 + } 3422 + ], 3423 + "referenced_by": [ 3424 + { 3425 + "id": "https://ryan.freumh.org/2024-04-08.html", 3426 + "link": "https://ryan.freumh.org/2024-04-08.html", 3427 + "title": "Mon 8 Apr 2024", 3428 + "feed_title": "ryan.freumh.org" 3429 + }, 3430 + { 3431 + "id": "https://ryan.freumh.org/2024-03-25.html", 3432 + "link": "https://ryan.freumh.org/2024-03-25.html", 3433 + "title": "Mon 25 Mar 2024", 3434 + "feed_title": "ryan.freumh.org" 3435 + } 3436 + ] 3437 + }, 3438 + "https://anil.recoil.org/notes/bushel-step1": { 3439 + "id": "https://anil.recoil.org/notes/bushel-step1", 3440 + "title": "Rolling out a new site design", 3441 + "link": "https://anil.recoil.org/notes/bushel-step1", 3442 + "feed_title": "Anil Madhavapeddy's feed", 3443 + "references": [ 3444 + { 3445 + "id": "https://anil.recoil.org/notes/opening-anil-recoil-org", 3446 + "link": "https://anil.recoil.org/notes/opening-anil-recoil-org", 3447 + "title": "Moving to anil.recoil.org", 3448 + "feed_title": "Anil Madhavapeddy's feed" 3449 + } 3450 + ], 3451 + "referenced_by": [] 3452 + }, 3453 + "https://ryan.freumh.org/2024-03-25.html": { 3454 + "id": "https://ryan.freumh.org/2024-03-25.html", 3455 + "title": "Mon 25 Mar 2024", 3456 + "link": "https://ryan.freumh.org/2024-03-25.html", 3457 + "feed_title": "ryan.freumh.org", 3458 + "references": [ 3459 + { 3460 + "id": "https://ryan.freumh.org/2024-03-18.html", 3461 + "link": "https://ryan.freumh.org/2024-03-18.html", 3462 + "title": "Mon 18 Mar 2024", 3463 + "feed_title": "ryan.freumh.org" 3464 + }, 3465 + { 3466 + "id": "https://ryan.freumh.org/2024-04-01.html", 3467 + "link": "https://ryan.freumh.org/2024-04-01.html", 3468 + "title": "Mon 1 Apr 2024", 3469 + "feed_title": "ryan.freumh.org" 3470 + } 3471 + ], 3472 + "referenced_by": [ 3473 + { 3474 + "id": "https://ryan.freumh.org/2024-04-01.html", 3475 + "link": "https://ryan.freumh.org/2024-04-01.html", 3476 + "title": "Mon 1 Apr 2024", 3477 + "feed_title": "ryan.freumh.org" 3478 + }, 3479 + { 3480 + "id": "https://ryan.freumh.org/2024-03-18.html", 3481 + "link": "https://ryan.freumh.org/2024-03-18.html", 3482 + "title": "Mon 18 Mar 2024", 3483 + "feed_title": "ryan.freumh.org" 3484 + } 3485 + ] 3486 + }, 3487 + "https://ryan.freumh.org/2024-03-18.html": { 3488 + "id": "https://ryan.freumh.org/2024-03-18.html", 3489 + "title": "Mon 18 Mar 2024", 3490 + "link": "https://ryan.freumh.org/2024-03-18.html", 3491 + "feed_title": "ryan.freumh.org", 3492 + "references": [ 3493 + { 3494 + "id": "https://ryan.freumh.org/2024-03-11.html", 3495 + "link": "https://ryan.freumh.org/2024-03-11.html", 3496 + "title": "Mon 11 Mar 2024", 3497 + "feed_title": "ryan.freumh.org" 3498 + }, 3499 + { 3500 + "id": "https://ryan.freumh.org/2024-03-25.html", 3501 + "link": "https://ryan.freumh.org/2024-03-25.html", 3502 + "title": "Mon 25 Mar 2024", 3503 + "feed_title": "ryan.freumh.org" 3504 + } 3505 + ], 3506 + "referenced_by": [ 3507 + { 3508 + "id": "https://ryan.freumh.org/2024-04-01.html", 3509 + "link": "https://ryan.freumh.org/2024-04-01.html", 3510 + "title": "Mon 1 Apr 2024", 3511 + "feed_title": "ryan.freumh.org" 3512 + }, 3513 + { 3514 + "id": "https://ryan.freumh.org/2024-03-25.html", 3515 + "link": "https://ryan.freumh.org/2024-03-25.html", 3516 + "title": "Mon 25 Mar 2024", 3517 + "feed_title": "ryan.freumh.org" 3518 + }, 3519 + { 3520 + "id": "https://ryan.freumh.org/2024-03-11.html", 3521 + "link": "https://ryan.freumh.org/2024-03-11.html", 3522 + "title": "Mon 11 Mar 2024", 3523 + "feed_title": "ryan.freumh.org" 3524 + } 3525 + ] 3526 + }, 3527 + "https://ryan.freumh.org/2024-03-11.html": { 3528 + "id": "https://ryan.freumh.org/2024-03-11.html", 3529 + "title": "Mon 11 Mar 2024", 3530 + "link": "https://ryan.freumh.org/2024-03-11.html", 3531 + "feed_title": "ryan.freumh.org", 3532 + "references": [ 3533 + { 3534 + "id": "https://ryan.freumh.org/2024-02-26.html", 3535 + "link": "https://ryan.freumh.org/2024-02-26.html", 3536 + "title": "Mon 26 Feb 2024", 3537 + "feed_title": "ryan.freumh.org" 3538 + }, 3539 + { 3540 + "id": "https://ryan.freumh.org/2024-03-18.html", 3541 + "link": "https://ryan.freumh.org/2024-03-18.html", 3542 + "title": "Mon 18 Mar 2024", 3543 + "feed_title": "ryan.freumh.org" 3544 + } 3545 + ], 3546 + "referenced_by": [ 3547 + { 3548 + "id": "https://ryan.freumh.org/2024-03-18.html", 3549 + "link": "https://ryan.freumh.org/2024-03-18.html", 3550 + "title": "Mon 18 Mar 2024", 3551 + "feed_title": "ryan.freumh.org" 3552 + }, 3553 + { 3554 + "id": "https://ryan.freumh.org/2024-02-26.html", 3555 + "link": "https://ryan.freumh.org/2024-02-26.html", 3556 + "title": "Mon 26 Feb 2024", 3557 + "feed_title": "ryan.freumh.org" 3558 + } 3559 + ] 3560 + }, 3561 + "https://anil.recoil.org/news/2024-nbs-risk-1": { 3562 + "id": "https://anil.recoil.org/news/2024-nbs-risk-1", 3563 + "title": "Preprint available on insuring against variability of NbS", 3564 + "link": "https://anil.recoil.org/news/2024-nbs-risk-1", 3565 + "feed_title": "Anil Madhavapeddy's feed", 3566 + "references": [], 3567 + "referenced_by": [] 3568 + }, 3569 + "https://anil.recoil.org/news/2024-green-urban-eq-1": { 3570 + "id": "https://anil.recoil.org/news/2024-green-urban-eq-1", 3571 + "title": "Green Urban Equity: Analyzing the 3-30-300 Rule in UK Cities and Its Socioeconomic Implications", 3572 + "link": "https://anil.recoil.org/news/2024-green-urban-eq-1", 3573 + "feed_title": "Anil Madhavapeddy's feed", 3574 + "references": [], 3575 + "referenced_by": [] 3576 + }, 3577 + "https://anil.recoil.org/news/2024-planetary-computing-2": { 3578 + "id": "https://anil.recoil.org/news/2024-planetary-computing-2", 3579 + "title": "A Case for Planetary Computing", 3580 + "link": "https://anil.recoil.org/news/2024-planetary-computing-2", 3581 + "feed_title": "Anil Madhavapeddy's feed", 3582 + "references": [], 3583 + "referenced_by": [] 3584 + }, 3585 + "https://ryan.freumh.org/2024-02-26.html": { 3586 + "id": "https://ryan.freumh.org/2024-02-26.html", 3587 + "title": "Mon 26 Feb 2024", 3588 + "link": "https://ryan.freumh.org/2024-02-26.html", 3589 + "feed_title": "ryan.freumh.org", 3590 + "references": [ 3591 + { 3592 + "id": "https://ryan.freumh.org/2024-02-19.html", 3593 + "link": "https://ryan.freumh.org/2024-02-19.html", 3594 + "title": "Mon 19 Feb 2024", 3595 + "feed_title": "ryan.freumh.org" 3596 + }, 3597 + { 3598 + "id": "https://ryan.freumh.org/2024-03-11.html", 3599 + "link": "https://ryan.freumh.org/2024-03-11.html", 3600 + "title": "Mon 11 Mar 2024", 3601 + "feed_title": "ryan.freumh.org" 3602 + } 3603 + ], 3604 + "referenced_by": [ 3605 + { 3606 + "id": "https://ryan.freumh.org/2024-03-11.html", 3607 + "link": "https://ryan.freumh.org/2024-03-11.html", 3608 + "title": "Mon 11 Mar 2024", 3609 + "feed_title": "ryan.freumh.org" 3610 + }, 3611 + { 3612 + "id": "https://ryan.freumh.org/2024-02-19.html", 3613 + "link": "https://ryan.freumh.org/2024-02-19.html", 3614 + "title": "Mon 19 Feb 2024", 3615 + "feed_title": "ryan.freumh.org" 3616 + } 3617 + ] 3618 + }, 3619 + "https://ryan.freumh.org/2024-02-19.html": { 3620 + "id": "https://ryan.freumh.org/2024-02-19.html", 3621 + "title": "Mon 19 Feb 2024", 3622 + "link": "https://ryan.freumh.org/2024-02-19.html", 3623 + "feed_title": "ryan.freumh.org", 3624 + "references": [ 3625 + { 3626 + "id": "https://ryan.freumh.org/2024-02-12.html", 3627 + "link": "https://ryan.freumh.org/2024-02-12.html", 3628 + "title": "Mon 12 Feb 2024", 3629 + "feed_title": "ryan.freumh.org" 3630 + }, 3631 + { 3632 + "id": "https://ryan.freumh.org/2024-02-26.html", 3633 + "link": "https://ryan.freumh.org/2024-02-26.html", 3634 + "title": "Mon 26 Feb 2024", 3635 + "feed_title": "ryan.freumh.org" 3636 + } 3637 + ], 3638 + "referenced_by": [ 3639 + { 3640 + "id": "https://ryan.freumh.org/2024-02-26.html", 3641 + "link": "https://ryan.freumh.org/2024-02-26.html", 3642 + "title": "Mon 26 Feb 2024", 3643 + "feed_title": "ryan.freumh.org" 3644 + }, 3645 + { 3646 + "id": "https://ryan.freumh.org/2024-02-12.html", 3647 + "link": "https://ryan.freumh.org/2024-02-12.html", 3648 + "title": "Mon 12 Feb 2024", 3649 + "feed_title": "ryan.freumh.org" 3650 + } 3651 + ] 3652 + }, 3653 + "https://ryan.freumh.org/fosdem.html": { 3654 + "id": "https://ryan.freumh.org/fosdem.html", 3655 + "title": "FOSDEM", 3656 + "link": "https://ryan.freumh.org/fosdem.html", 3657 + "feed_title": "ryan.freumh.org", 3658 + "references": [], 3659 + "referenced_by": [ 3660 + { 3661 + "id": "https://ryan.freumh.org/2024-02-05.html", 3662 + "link": "https://ryan.freumh.org/2024-02-05.html", 3663 + "title": "Mon 5 Feb 2024", 3664 + "feed_title": "ryan.freumh.org" 3665 + } 3666 + ] 3667 + }, 3668 + "https://ryan.freumh.org/2024-02-12.html": { 3669 + "id": "https://ryan.freumh.org/2024-02-12.html", 3670 + "title": "Mon 12 Feb 2024", 3671 + "link": "https://ryan.freumh.org/2024-02-12.html", 3672 + "feed_title": "ryan.freumh.org", 3673 + "references": [ 3674 + { 3675 + "id": "https://ryan.freumh.org/2024-02-05.html", 3676 + "link": "https://ryan.freumh.org/2024-02-05.html", 3677 + "title": "Mon 5 Feb 2024", 3678 + "feed_title": "ryan.freumh.org" 3679 + }, 3680 + { 3681 + "id": "https://ryan.freumh.org/2024-02-19.html", 3682 + "link": "https://ryan.freumh.org/2024-02-19.html", 3683 + "title": "Mon 19 Feb 2024", 3684 + "feed_title": "ryan.freumh.org" 3685 + } 3686 + ], 3687 + "referenced_by": [ 3688 + { 3689 + "id": "https://ryan.freumh.org/2025-02-10.html", 3690 + "link": "https://ryan.freumh.org/2025-02-10.html", 3691 + "title": "Mon 10 Feb 2025", 3692 + "feed_title": "ryan.freumh.org" 3693 + }, 3694 + { 3695 + "id": "https://ryan.freumh.org/2024-02-19.html", 3696 + "link": "https://ryan.freumh.org/2024-02-19.html", 3697 + "title": "Mon 19 Feb 2024", 3698 + "feed_title": "ryan.freumh.org" 3699 + }, 3700 + { 3701 + "id": "https://ryan.freumh.org/2024-02-05.html", 3702 + "link": "https://ryan.freumh.org/2024-02-05.html", 3703 + "title": "Mon 5 Feb 2024", 3704 + "feed_title": "ryan.freumh.org" 3705 + } 3706 + ] 3707 + }, 3708 + "https://ryan.freumh.org/2024-02-05.html": { 3709 + "id": "https://ryan.freumh.org/2024-02-05.html", 3710 + "title": "Mon 5 Feb 2024", 3711 + "link": "https://ryan.freumh.org/2024-02-05.html", 3712 + "feed_title": "ryan.freumh.org", 3713 + "references": [ 3714 + { 3715 + "id": "https://ryan.freumh.org/2024-01-29.html", 3716 + "link": "https://ryan.freumh.org/2024-01-29.html", 3717 + "title": "Mon 29 Jan 2024", 3718 + "feed_title": "ryan.freumh.org" 3719 + }, 3720 + { 3721 + "id": "https://ryan.freumh.org/2024-02-12.html", 3722 + "link": "https://ryan.freumh.org/2024-02-12.html", 3723 + "title": "Mon 12 Feb 2024", 3724 + "feed_title": "ryan.freumh.org" 3725 + }, 3726 + { 3727 + "id": "https://ryan.freumh.org/fosdem.html", 3728 + "link": "https://ryan.freumh.org/fosdem.html", 3729 + "title": "FOSDEM", 3730 + "feed_title": "ryan.freumh.org" 3731 + } 3732 + ], 3733 + "referenced_by": [ 3734 + { 3735 + "id": "https://ryan.freumh.org/2024-02-12.html", 3736 + "link": "https://ryan.freumh.org/2024-02-12.html", 3737 + "title": "Mon 12 Feb 2024", 3738 + "feed_title": "ryan.freumh.org" 3739 + }, 3740 + { 3741 + "id": "https://ryan.freumh.org/2024-01-29.html", 3742 + "link": "https://ryan.freumh.org/2024-01-29.html", 3743 + "title": "Mon 29 Jan 2024", 3744 + "feed_title": "ryan.freumh.org" 3745 + } 3746 + ] 3747 + }, 3748 + "https://anil.recoil.org/notes/aicn-in-aicam": { 3749 + "id": "https://anil.recoil.org/notes/aicn-in-aicam", 3750 + "title": "Selected in the AI@CAM challenge for conservation research", 3751 + "link": "https://anil.recoil.org/notes/aicn-in-aicam", 3752 + "feed_title": "Anil Madhavapeddy's feed", 3753 + "references": [], 3754 + "referenced_by": [ 3755 + { 3756 + "id": "https://anil.recoil.org/notes/aicam-interview-ce", 3757 + "link": "https://anil.recoil.org/notes/aicam-interview-ce", 3758 + "title": "Interview with AI@CAM about conservation", 3759 + "feed_title": "Anil Madhavapeddy's feed" 3760 + } 3761 + ] 3762 + }, 3763 + "https://anil.recoil.org/news/2024-uncertainty-cs-1": { 3764 + "id": "https://anil.recoil.org/news/2024-uncertainty-cs-1", 3765 + "title": "Uncertainty at scale: how CS hinders climate research", 3766 + "link": "https://anil.recoil.org/news/2024-uncertainty-cs-1", 3767 + "feed_title": "Anil Madhavapeddy's feed", 3768 + "references": [], 3769 + "referenced_by": [] 3770 + }, 3771 + "https://ryan.freumh.org/2024-01-29.html": { 3772 + "id": "https://ryan.freumh.org/2024-01-29.html", 3773 + "title": "Mon 29 Jan 2024", 3774 + "link": "https://ryan.freumh.org/2024-01-29.html", 3775 + "feed_title": "ryan.freumh.org", 3776 + "references": [ 3777 + { 3778 + "id": "https://ryan.freumh.org/2024-01-22.html", 3779 + "link": "https://ryan.freumh.org/2024-01-22.html", 3780 + "title": "Mon 22 Jan 2024", 3781 + "feed_title": "ryan.freumh.org" 3782 + }, 3783 + { 3784 + "id": "https://ryan.freumh.org/2024-02-05.html", 3785 + "link": "https://ryan.freumh.org/2024-02-05.html", 3786 + "title": "Mon 5 Feb 2024", 3787 + "feed_title": "ryan.freumh.org" 3788 + } 3789 + ], 3790 + "referenced_by": [ 3791 + { 3792 + "id": "https://ryan.freumh.org/2024-02-05.html", 3793 + "link": "https://ryan.freumh.org/2024-02-05.html", 3794 + "title": "Mon 5 Feb 2024", 3795 + "feed_title": "ryan.freumh.org" 3796 + }, 3797 + { 3798 + "id": "https://ryan.freumh.org/2024-01-22.html", 3799 + "link": "https://ryan.freumh.org/2024-01-22.html", 3800 + "title": "Mon 22 Jan 2024", 3801 + "feed_title": "ryan.freumh.org" 3802 + } 3803 + ] 3804 + }, 3805 + "https://ryan.freumh.org/2024-01-22.html": { 3806 + "id": "https://ryan.freumh.org/2024-01-22.html", 3807 + "title": "Mon 22 Jan 2024", 3808 + "link": "https://ryan.freumh.org/2024-01-22.html", 3809 + "feed_title": "ryan.freumh.org", 3810 + "references": [ 3811 + { 3812 + "id": "https://ryan.freumh.org/2024-01-15.html", 3813 + "link": "https://ryan.freumh.org/2024-01-15.html", 3814 + "title": "Mon 15 Jan 2024", 3815 + "feed_title": "ryan.freumh.org" 3816 + }, 3817 + { 3818 + "id": "https://ryan.freumh.org/2024-01-29.html", 3819 + "link": "https://ryan.freumh.org/2024-01-29.html", 3820 + "title": "Mon 29 Jan 2024", 3821 + "feed_title": "ryan.freumh.org" 3822 + } 3823 + ], 3824 + "referenced_by": [ 3825 + { 3826 + "id": "https://ryan.freumh.org/2024-01-29.html", 3827 + "link": "https://ryan.freumh.org/2024-01-29.html", 3828 + "title": "Mon 29 Jan 2024", 3829 + "feed_title": "ryan.freumh.org" 3830 + }, 3831 + { 3832 + "id": "https://ryan.freumh.org/2024-01-15.html", 3833 + "link": "https://ryan.freumh.org/2024-01-15.html", 3834 + "title": "Mon 15 Jan 2024", 3835 + "feed_title": "ryan.freumh.org" 3836 + } 3837 + ] 3838 + }, 3839 + "https://ryan.freumh.org/2024-01-15.html": { 3840 + "id": "https://ryan.freumh.org/2024-01-15.html", 3841 + "title": "Mon 15 Jan 2024", 3842 + "link": "https://ryan.freumh.org/2024-01-15.html", 3843 + "feed_title": "ryan.freumh.org", 3844 + "references": [ 3845 + { 3846 + "id": "https://ryan.freumh.org/2024-01-08.html", 3847 + "link": "https://ryan.freumh.org/2024-01-08.html", 3848 + "title": "Mon 8 Jan 2024", 3849 + "feed_title": "ryan.freumh.org" 3850 + }, 3851 + { 3852 + "id": "https://ryan.freumh.org/2024-01-22.html", 3853 + "link": "https://ryan.freumh.org/2024-01-22.html", 3854 + "title": "Mon 22 Jan 2024", 3855 + "feed_title": "ryan.freumh.org" 3856 + } 3857 + ], 3858 + "referenced_by": [ 3859 + { 3860 + "id": "https://ryan.freumh.org/2024-01-22.html", 3861 + "link": "https://ryan.freumh.org/2024-01-22.html", 3862 + "title": "Mon 22 Jan 2024", 3863 + "feed_title": "ryan.freumh.org" 3864 + }, 3865 + { 3866 + "id": "https://ryan.freumh.org/2024-01-08.html", 3867 + "link": "https://ryan.freumh.org/2024-01-08.html", 3868 + "title": "Mon 8 Jan 2024", 3869 + "feed_title": "ryan.freumh.org" 3870 + } 3871 + ] 3872 + }, 3873 + "https://ryan.freumh.org/2024-01-08.html": { 3874 + "id": "https://ryan.freumh.org/2024-01-08.html", 3875 + "title": "Mon 8 Jan 2024", 3876 + "link": "https://ryan.freumh.org/2024-01-08.html", 3877 + "feed_title": "ryan.freumh.org", 3878 + "references": [ 3879 + { 3880 + "id": "https://ryan.freumh.org/2024-01-01.html", 3881 + "link": "https://ryan.freumh.org/2024-01-01.html", 3882 + "title": "Mon 1 Jan 2024", 3883 + "feed_title": "ryan.freumh.org" 3884 + }, 3885 + { 3886 + "id": "https://ryan.freumh.org/2024-01-15.html", 3887 + "link": "https://ryan.freumh.org/2024-01-15.html", 3888 + "title": "Mon 15 Jan 2024", 3889 + "feed_title": "ryan.freumh.org" 3890 + }, 3891 + { 3892 + "id": "https://ryan.freumh.org/2023-10-16.html", 3893 + "link": "https://ryan.freumh.org/2023-10-16.html", 3894 + "title": "Mon 16 Oct 2023", 3895 + "feed_title": "ryan.freumh.org" 3896 + } 3897 + ], 3898 + "referenced_by": [ 3899 + { 3900 + "id": "https://ryan.freumh.org/2024-01-15.html", 3901 + "link": "https://ryan.freumh.org/2024-01-15.html", 3902 + "title": "Mon 15 Jan 2024", 3903 + "feed_title": "ryan.freumh.org" 3904 + }, 3905 + { 3906 + "id": "https://ryan.freumh.org/2024-01-01.html", 3907 + "link": "https://ryan.freumh.org/2024-01-01.html", 3908 + "title": "Mon 1 Jan 2024", 3909 + "feed_title": "ryan.freumh.org" 3910 + } 3911 + ] 3912 + }, 3913 + "https://digitalflapjack.com/blog/tcc-part2/": { 3914 + "id": "https://digitalflapjack.com/blog/tcc-part2/", 3915 + "title": "Tiny Code Christmas - part 2: learning OCaml and that demos are mostly functional", 3916 + "link": "https://digitalflapjack.com/blog/tcc-part2/", 3917 + "feed_title": "Digital Flapjack", 3918 + "references": [ 3919 + { 3920 + "id": "https://digitalflapjack.com/blog/tcc/", 3921 + "link": "https://digitalflapjack.com/blog/tcc/", 3922 + "title": "Tiny Code Christmas - part 1: making coding fun through constraints and community", 3923 + "feed_title": "Digital Flapjack" 3924 + } 3925 + ], 3926 + "referenced_by": [ 3927 + { 3928 + "id": "https://digitalflapjack.com/weeknotes/2025-03-10/", 3929 + "link": "https://digitalflapjack.com/weeknotes/2025-03-10/", 3930 + "title": "Weeknotes: 10th March 2025", 3931 + "feed_title": "Digital Flapjack" 3932 + } 3933 + ] 3934 + }, 3935 + "https://digitalflapjack.com/blog/tcc/": { 3936 + "id": "https://digitalflapjack.com/blog/tcc/", 3937 + "title": "Tiny Code Christmas - part 1: making coding fun through constraints and community", 3938 + "link": "https://digitalflapjack.com/blog/tcc/", 3939 + "feed_title": "Digital Flapjack", 3940 + "references": [], 3941 + "referenced_by": [ 3942 + { 3943 + "id": "https://digitalflapjack.com/blog/tcc-part2/", 3944 + "link": "https://digitalflapjack.com/blog/tcc-part2/", 3945 + "title": "Tiny Code Christmas - part 2: learning OCaml and that demos are mostly functional", 3946 + "feed_title": "Digital Flapjack" 3947 + } 3948 + ] 3949 + }, 3950 + "https://ryan.freumh.org/2024-01-01.html": { 3951 + "id": "https://ryan.freumh.org/2024-01-01.html", 3952 + "title": "Mon 1 Jan 2024", 3953 + "link": "https://ryan.freumh.org/2024-01-01.html", 3954 + "feed_title": "ryan.freumh.org", 3955 + "references": [ 3956 + { 3957 + "id": "https://ryan.freumh.org/2023-12-25.html", 3958 + "link": "https://ryan.freumh.org/2023-12-25.html", 3959 + "title": "Mon 25 Dec 2023", 3960 + "feed_title": "ryan.freumh.org" 3961 + }, 3962 + { 3963 + "id": "https://ryan.freumh.org/2024-01-08.html", 3964 + "link": "https://ryan.freumh.org/2024-01-08.html", 3965 + "title": "Mon 8 Jan 2024", 3966 + "feed_title": "ryan.freumh.org" 3967 + } 3968 + ], 3969 + "referenced_by": [ 3970 + { 3971 + "id": "https://ryan.freumh.org/2024-01-08.html", 3972 + "link": "https://ryan.freumh.org/2024-01-08.html", 3973 + "title": "Mon 8 Jan 2024", 3974 + "feed_title": "ryan.freumh.org" 3975 + }, 3976 + { 3977 + "id": "https://ryan.freumh.org/2023-12-25.html", 3978 + "link": "https://ryan.freumh.org/2023-12-25.html", 3979 + "title": "Mon 25 Dec 2023", 3980 + "feed_title": "ryan.freumh.org" 3981 + } 3982 + ] 3983 + }, 3984 + "https://anil.recoil.org/ideas/spatial-summarisation-of-llms": { 3985 + "id": "https://anil.recoil.org/ideas/spatial-summarisation-of-llms", 3986 + "title": "Spatial and multi-modal extraction from conservation literature", 3987 + "link": "https://anil.recoil.org/ideas/spatial-summarisation-of-llms", 3988 + "feed_title": "Anil Madhavapeddy's feed", 3989 + "references": [ 3990 + { 3991 + "id": "https://anil.recoil.org/projects/ce", 3992 + "link": "https://anil.recoil.org/projects/ce", 3993 + "title": "Conservation Evidence Copilots", 3994 + "feed_title": "Anil Madhavapeddy's feed" 3995 + } 3996 + ], 3997 + "referenced_by": [] 3998 + }, 3999 + "https://anil.recoil.org/ideas/tardis": { 4000 + "id": "https://anil.recoil.org/ideas/tardis", 4001 + "title": "Privacy preserving emissions disclosure techniques", 4002 + "link": "https://anil.recoil.org/ideas/tardis", 4003 + "feed_title": "Anil Madhavapeddy's feed", 4004 + "references": [], 4005 + "referenced_by": [] 4006 + }, 4007 + "https://anil.recoil.org/ideas/recording-nature": { 4008 + "id": "https://anil.recoil.org/ideas/recording-nature", 4009 + "title": "Low-power sensing infrastructure for biodiversity", 4010 + "link": "https://anil.recoil.org/ideas/recording-nature", 4011 + "feed_title": "Anil Madhavapeddy's feed", 4012 + "references": [], 4013 + "referenced_by": [] 4014 + }, 4015 + "https://anil.recoil.org/ideas/legal-aspects-of-credits": { 4016 + "id": "https://anil.recoil.org/ideas/legal-aspects-of-credits", 4017 + "title": "Legal perspectives on integrity issues in forest carbon", 4018 + "link": "https://anil.recoil.org/ideas/legal-aspects-of-credits", 4019 + "feed_title": "Anil Madhavapeddy's feed", 4020 + "references": [ 4021 + { 4022 + "id": "https://anil.recoil.org/notes/nature-crossroads", 4023 + "link": "https://anil.recoil.org/notes/nature-crossroads", 4024 + "title": "Nature Sustainability commentary on carbon and biodiversity credits", 4025 + "feed_title": "Anil Madhavapeddy's feed" 4026 + } 4027 + ], 4028 + "referenced_by": [ 4029 + { 4030 + "id": "https://anil.recoil.org/news/2024-cclr-carbon-1", 4031 + "link": "https://anil.recoil.org/news/2024-cclr-carbon-1", 4032 + "title": "Published a legal perspective on high integrity forest carbon credits", 4033 + "feed_title": "Anil Madhavapeddy's feed" 4034 + }, 4035 + { 4036 + "id": "https://anil.recoil.org/notes/nature-crossroads", 4037 + "link": "https://anil.recoil.org/notes/nature-crossroads", 4038 + "title": "Nature Sustainability commentary on carbon and biodiversity credits", 4039 + "feed_title": "Anil Madhavapeddy's feed" 4040 + } 4041 + ] 4042 + }, 4043 + "https://anil.recoil.org/ideas/chunk-free-embeddings": { 4044 + "id": "https://anil.recoil.org/ideas/chunk-free-embeddings", 4045 + "title": "Generating chunk-free embeddings for LLMs", 4046 + "link": "https://anil.recoil.org/ideas/chunk-free-embeddings", 4047 + "feed_title": "Anil Madhavapeddy's feed", 4048 + "references": [], 4049 + "referenced_by": [] 4050 + }, 4051 + "https://anil.recoil.org/ideas/rag-evaluation-for-ce": { 4052 + "id": "https://anil.recoil.org/ideas/rag-evaluation-for-ce", 4053 + "title": "Evaluating RAG pipelines for conservation evidence", 4054 + "link": "https://anil.recoil.org/ideas/rag-evaluation-for-ce", 4055 + "feed_title": "Anil Madhavapeddy's feed", 4056 + "references": [ 4057 + { 4058 + "id": "https://anil.recoil.org/projects/ce", 4059 + "link": "https://anil.recoil.org/projects/ce", 4060 + "title": "Conservation Evidence Copilots", 4061 + "feed_title": "Anil Madhavapeddy's feed" 4062 + } 4063 + ], 4064 + "referenced_by": [] 4065 + }, 4066 + "https://anil.recoil.org/ideas/effective-geospatial-code": { 4067 + "id": "https://anil.recoil.org/ideas/effective-geospatial-code", 4068 + "title": "Effective geospatial code in OCaml", 4069 + "link": "https://anil.recoil.org/ideas/effective-geospatial-code", 4070 + "feed_title": "Anil Madhavapeddy's feed", 4071 + "references": [], 4072 + "referenced_by": [ 4073 + { 4074 + "id": "https://anil.recoil.org/notes/life-official-statistic", 4075 + "link": "https://anil.recoil.org/notes/life-official-statistic", 4076 + "title": "LIFE becomes an Official Statistic of the UK government", 4077 + "feed_title": "Anil Madhavapeddy's feed" 4078 + } 4079 + ] 4080 + }, 4081 + "https://anil.recoil.org/ideas/decomposing-audio-with-dl": { 4082 + "id": "https://anil.recoil.org/ideas/decomposing-audio-with-dl", 4083 + "title": "Deep learning for decomposing sound into vector audio", 4084 + "link": "https://anil.recoil.org/ideas/decomposing-audio-with-dl", 4085 + "feed_title": "Anil Madhavapeddy's feed", 4086 + "references": [], 4087 + "referenced_by": [] 4088 + }, 4089 + "https://anil.recoil.org/ideas/grey-lit-crawl": { 4090 + "id": "https://anil.recoil.org/ideas/grey-lit-crawl", 4091 + "title": "Crawling grey literature for conservation evidence", 4092 + "link": "https://anil.recoil.org/ideas/grey-lit-crawl", 4093 + "feed_title": "Anil Madhavapeddy's feed", 4094 + "references": [ 4095 + { 4096 + "id": "https://anil.recoil.org/projects/ce", 4097 + "link": "https://anil.recoil.org/projects/ce", 4098 + "title": "Conservation Evidence Copilots", 4099 + "feed_title": "Anil Madhavapeddy's feed" 4100 + } 4101 + ], 4102 + "referenced_by": [ 4103 + { 4104 + "id": "https://anil.recoil.org/notes/uk-national-data-lib", 4105 + "link": "https://anil.recoil.org/notes/uk-national-data-lib", 4106 + "title": "Thoughts on the National Data Library and private research data", 4107 + "feed_title": "Anil Madhavapeddy's feed" 4108 + } 4109 + ] 4110 + }, 4111 + "https://anil.recoil.org/projects/ce": { 4112 + "id": "https://anil.recoil.org/projects/ce", 4113 + "title": "Conservation Evidence Copilots", 4114 + "link": "https://anil.recoil.org/projects/ce", 4115 + "feed_title": "Anil Madhavapeddy's feed", 4116 + "references": [], 4117 + "referenced_by": [ 4118 + { 4119 + "id": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 4120 + "link": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 4121 + "title": "Semi distributed filesystems with ZFS and Sanoid", 4122 + "feed_title": "Anil Madhavapeddy's feed" 4123 + }, 4124 + { 4125 + "id": "https://anil.recoil.org/notes/life-official-statistic", 4126 + "link": "https://anil.recoil.org/notes/life-official-statistic", 4127 + "title": "LIFE becomes an Official Statistic of the UK government", 4128 + "feed_title": "Anil Madhavapeddy's feed" 4129 + }, 4130 + { 4131 + "id": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 4132 + "link": "https://anil.recoil.org/notes/ai-for-evidence-synthesis-workshop", 4133 + "title": "A fully AI-generated paper just passed peer review; notes from our evidence synthesis workshop", 4134 + "feed_title": "Anil Madhavapeddy's feed" 4135 + }, 4136 + { 4137 + "id": "https://anil.recoil.org/notes/the-state-of-ai-tools", 4138 + "link": "https://anil.recoil.org/notes/the-state-of-ai-tools", 4139 + "title": "Our EEG group discussion on 'useful' AI tools", 4140 + "feed_title": "Anil Madhavapeddy's feed" 4141 + }, 4142 + { 4143 + "id": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 4144 + "link": "https://anil.recoil.org/notes/ai-ietf-aiprefs", 4145 + "title": "The AIETF arrives, and not a moment too soon", 4146 + "feed_title": "Anil Madhavapeddy's feed" 4147 + }, 4148 + { 4149 + "id": "https://anil.recoil.org/notes/uk-national-data-lib", 4150 + "link": "https://anil.recoil.org/notes/uk-national-data-lib", 4151 + "title": "Thoughts on the National Data Library and private research data", 4152 + "feed_title": "Anil Madhavapeddy's feed" 4153 + }, 4154 + { 4155 + "id": "https://anil.recoil.org/notes/ai-contamination-of-papers", 4156 + "link": "https://anil.recoil.org/notes/ai-contamination-of-papers", 4157 + "title": "Fake papers abound in the literature", 4158 + "feed_title": "Anil Madhavapeddy's feed" 4159 + }, 4160 + { 4161 + "id": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 4162 + "link": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 4163 + "title": "Using computational SSDs for vector databases", 4164 + "feed_title": "Anil Madhavapeddy's feed" 4165 + }, 4166 + { 4167 + "id": "https://anil.recoil.org/news/2024-ce-llm-1", 4168 + "link": "https://anil.recoil.org/news/2024-ce-llm-1", 4169 + "title": "Preprint on using LLMs to for evidence-based decision support", 4170 + "feed_title": "Anil Madhavapeddy's feed" 4171 + }, 4172 + { 4173 + "id": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 4174 + "link": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 4175 + "title": "COMPASS 2024 report on the CoRE stack RIC meeting", 4176 + "feed_title": "Anil Madhavapeddy's feed" 4177 + }, 4178 + { 4179 + "id": "https://anil.recoil.org/notes/aicam-interview-ce", 4180 + "link": "https://anil.recoil.org/notes/aicam-interview-ce", 4181 + "title": "Interview with AI@CAM about conservation", 4182 + "feed_title": "Anil Madhavapeddy's feed" 4183 + }, 4184 + { 4185 + "id": "https://anil.recoil.org/ideas/spatial-summarisation-of-llms", 4186 + "link": "https://anil.recoil.org/ideas/spatial-summarisation-of-llms", 4187 + "title": "Spatial and multi-modal extraction from conservation literature", 4188 + "feed_title": "Anil Madhavapeddy's feed" 4189 + }, 4190 + { 4191 + "id": "https://anil.recoil.org/ideas/rag-evaluation-for-ce", 4192 + "link": "https://anil.recoil.org/ideas/rag-evaluation-for-ce", 4193 + "title": "Evaluating RAG pipelines for conservation evidence", 4194 + "feed_title": "Anil Madhavapeddy's feed" 4195 + }, 4196 + { 4197 + "id": "https://anil.recoil.org/ideas/grey-lit-crawl", 4198 + "link": "https://anil.recoil.org/ideas/grey-lit-crawl", 4199 + "title": "Crawling grey literature for conservation evidence", 4200 + "feed_title": "Anil Madhavapeddy's feed" 4201 + }, 4202 + { 4203 + "id": "https://anil.recoil.org/ideas/mangrove-literature-for-ce", 4204 + "link": "https://anil.recoil.org/ideas/mangrove-literature-for-ce", 4205 + "title": "Assessing mangrove literature for conservation evidence", 4206 + "feed_title": "Anil Madhavapeddy's feed" 4207 + }, 4208 + { 4209 + "id": "https://anil.recoil.org/ideas/accurate-summarisation-for-ce", 4210 + "link": "https://anil.recoil.org/ideas/accurate-summarisation-for-ce", 4211 + "title": "Accurate summarisation of threats for conservation evidence literature", 4212 + "feed_title": "Anil Madhavapeddy's feed" 4213 + } 4214 + ] 4215 + }, 4216 + "https://anil.recoil.org/ideas/functional-diffs": { 4217 + "id": "https://anil.recoil.org/ideas/functional-diffs", 4218 + "title": "Composable diffing for heterogenous file formats", 4219 + "link": "https://anil.recoil.org/ideas/functional-diffs", 4220 + "feed_title": "Anil Madhavapeddy's feed", 4221 + "references": [ 4222 + { 4223 + "id": "https://anil.recoil.org/projects/rsn", 4224 + "link": "https://anil.recoil.org/projects/rsn", 4225 + "title": "Remote Sensing of Nature", 4226 + "feed_title": "Anil Madhavapeddy's feed" 4227 + } 4228 + ], 4229 + "referenced_by": [] 4230 + }, 4231 + "https://anil.recoil.org/ideas/bigraphs-real-world": { 4232 + "id": "https://anil.recoil.org/ideas/bigraphs-real-world", 4233 + "title": "Building bigraphs of the real world", 4234 + "link": "https://anil.recoil.org/ideas/bigraphs-real-world", 4235 + "feed_title": "Anil Madhavapeddy's feed", 4236 + "references": [], 4237 + "referenced_by": [] 4238 + }, 4239 + "https://anil.recoil.org/ideas/mangrove-literature-for-ce": { 4240 + "id": "https://anil.recoil.org/ideas/mangrove-literature-for-ce", 4241 + "title": "Assessing mangrove literature for conservation evidence", 4242 + "link": "https://anil.recoil.org/ideas/mangrove-literature-for-ce", 4243 + "feed_title": "Anil Madhavapeddy's feed", 4244 + "references": [ 4245 + { 4246 + "id": "https://anil.recoil.org/projects/ce", 4247 + "link": "https://anil.recoil.org/projects/ce", 4248 + "title": "Conservation Evidence Copilots", 4249 + "feed_title": "Anil Madhavapeddy's feed" 4250 + } 4251 + ], 4252 + "referenced_by": [] 4253 + }, 4254 + "https://anil.recoil.org/ideas/accurate-summarisation-for-ce": { 4255 + "id": "https://anil.recoil.org/ideas/accurate-summarisation-for-ce", 4256 + "title": "Accurate summarisation of threats for conservation evidence literature", 4257 + "link": "https://anil.recoil.org/ideas/accurate-summarisation-for-ce", 4258 + "feed_title": "Anil Madhavapeddy's feed", 4259 + "references": [ 4260 + { 4261 + "id": "https://anil.recoil.org/projects/ce", 4262 + "link": "https://anil.recoil.org/projects/ce", 4263 + "title": "Conservation Evidence Copilots", 4264 + "feed_title": "Anil Madhavapeddy's feed" 4265 + } 4266 + ], 4267 + "referenced_by": [] 4268 + }, 4269 + "https://ryan.freumh.org/2023-12-25.html": { 4270 + "id": "https://ryan.freumh.org/2023-12-25.html", 4271 + "title": "Mon 25 Dec 2023", 4272 + "link": "https://ryan.freumh.org/2023-12-25.html", 4273 + "feed_title": "ryan.freumh.org", 4274 + "references": [ 4275 + { 4276 + "id": "https://ryan.freumh.org/2023-12-18.html", 4277 + "link": "https://ryan.freumh.org/2023-12-18.html", 4278 + "title": "Mon 18 Dec 2023", 4279 + "feed_title": "ryan.freumh.org" 4280 + }, 4281 + { 4282 + "id": "https://ryan.freumh.org/2024-01-01.html", 4283 + "link": "https://ryan.freumh.org/2024-01-01.html", 4284 + "title": "Mon 1 Jan 2024", 4285 + "feed_title": "ryan.freumh.org" 4286 + } 4287 + ], 4288 + "referenced_by": [ 4289 + { 4290 + "id": "https://ryan.freumh.org/2024-01-01.html", 4291 + "link": "https://ryan.freumh.org/2024-01-01.html", 4292 + "title": "Mon 1 Jan 2024", 4293 + "feed_title": "ryan.freumh.org" 4294 + }, 4295 + { 4296 + "id": "https://ryan.freumh.org/2023-12-18.html", 4297 + "link": "https://ryan.freumh.org/2023-12-18.html", 4298 + "title": "Mon 18 Dec 2023", 4299 + "feed_title": "ryan.freumh.org" 4300 + } 4301 + ] 4302 + }, 4303 + "https://ryan.freumh.org/2023-12-18.html": { 4304 + "id": "https://ryan.freumh.org/2023-12-18.html", 4305 + "title": "Mon 18 Dec 2023", 4306 + "link": "https://ryan.freumh.org/2023-12-18.html", 4307 + "feed_title": "ryan.freumh.org", 4308 + "references": [ 4309 + { 4310 + "id": "https://ryan.freumh.org/2023-12-11.html", 4311 + "link": "https://ryan.freumh.org/2023-12-11.html", 4312 + "title": "Mon 11 Dec 2023", 4313 + "feed_title": "ryan.freumh.org" 4314 + }, 4315 + { 4316 + "id": "https://ryan.freumh.org/2023-12-25.html", 4317 + "link": "https://ryan.freumh.org/2023-12-25.html", 4318 + "title": "Mon 25 Dec 2023", 4319 + "feed_title": "ryan.freumh.org" 4320 + } 4321 + ], 4322 + "referenced_by": [ 4323 + { 4324 + "id": "https://ryan.freumh.org/2023-12-25.html", 4325 + "link": "https://ryan.freumh.org/2023-12-25.html", 4326 + "title": "Mon 25 Dec 2023", 4327 + "feed_title": "ryan.freumh.org" 4328 + }, 4329 + { 4330 + "id": "https://ryan.freumh.org/2023-12-11.html", 4331 + "link": "https://ryan.freumh.org/2023-12-11.html", 4332 + "title": "Mon 11 Dec 2023", 4333 + "feed_title": "ryan.freumh.org" 4334 + } 4335 + ] 4336 + }, 4337 + "https://mort.io/blog/nixos-channels/": { 4338 + "id": "https://mort.io/blog/nixos-channels/", 4339 + "title": "NixOS channels", 4340 + "link": "https://mort.io/blog/nixos-channels/", 4341 + "feed_title": "mort\u2019s mythop\u0153ia", 4342 + "references": [], 4343 + "referenced_by": [] 4344 + }, 4345 + "https://ryan.freumh.org/2023-12-11.html": { 4346 + "id": "https://ryan.freumh.org/2023-12-11.html", 4347 + "title": "Mon 11 Dec 2023", 4348 + "link": "https://ryan.freumh.org/2023-12-11.html", 4349 + "feed_title": "ryan.freumh.org", 4350 + "references": [ 4351 + { 4352 + "id": "https://ryan.freumh.org/2023-12-04.html", 4353 + "link": "https://ryan.freumh.org/2023-12-04.html", 4354 + "title": "Mon 4 Dec 2023", 4355 + "feed_title": "ryan.freumh.org" 4356 + }, 4357 + { 4358 + "id": "https://ryan.freumh.org/2023-12-18.html", 4359 + "link": "https://ryan.freumh.org/2023-12-18.html", 4360 + "title": "Mon 18 Dec 2023", 4361 + "feed_title": "ryan.freumh.org" 4362 + } 4363 + ], 4364 + "referenced_by": [ 4365 + { 4366 + "id": "https://ryan.freumh.org/2023-12-18.html", 4367 + "link": "https://ryan.freumh.org/2023-12-18.html", 4368 + "title": "Mon 18 Dec 2023", 4369 + "feed_title": "ryan.freumh.org" 4370 + }, 4371 + { 4372 + "id": "https://ryan.freumh.org/2023-12-04.html", 4373 + "link": "https://ryan.freumh.org/2023-12-04.html", 4374 + "title": "Mon 4 Dec 2023", 4375 + "feed_title": "ryan.freumh.org" 4376 + } 4377 + ] 4378 + }, 4379 + "https://ryan.freumh.org/2023-12-04.html": { 4380 + "id": "https://ryan.freumh.org/2023-12-04.html", 4381 + "title": "Mon 4 Dec 2023", 4382 + "link": "https://ryan.freumh.org/2023-12-04.html", 4383 + "feed_title": "ryan.freumh.org", 4384 + "references": [ 4385 + { 4386 + "id": "https://ryan.freumh.org/2023-11-27.html", 4387 + "link": "https://ryan.freumh.org/2023-11-27.html", 4388 + "title": "Mon 27 Nov 2023", 4389 + "feed_title": "ryan.freumh.org" 4390 + }, 4391 + { 4392 + "id": "https://ryan.freumh.org/2023-12-11.html", 4393 + "link": "https://ryan.freumh.org/2023-12-11.html", 4394 + "title": "Mon 11 Dec 2023", 4395 + "feed_title": "ryan.freumh.org" 4396 + } 4397 + ], 4398 + "referenced_by": [ 4399 + { 4400 + "id": "https://ryan.freumh.org/2023-12-11.html", 4401 + "link": "https://ryan.freumh.org/2023-12-11.html", 4402 + "title": "Mon 11 Dec 2023", 4403 + "feed_title": "ryan.freumh.org" 4404 + }, 4405 + { 4406 + "id": "https://ryan.freumh.org/2023-11-27.html", 4407 + "link": "https://ryan.freumh.org/2023-11-27.html", 4408 + "title": "Mon 27 Nov 2023", 4409 + "feed_title": "ryan.freumh.org" 4410 + } 4411 + ] 4412 + }, 4413 + "https://anil.recoil.org/notes/royal-society-newton": { 4414 + "id": "https://anil.recoil.org/notes/royal-society-newton", 4415 + "title": "Joined the Royal Society fellowships committee", 4416 + "link": "https://anil.recoil.org/notes/royal-society-newton", 4417 + "feed_title": "Anil Madhavapeddy's feed", 4418 + "references": [], 4419 + "referenced_by": [] 4420 + }, 4421 + "https://anil.recoil.org/news/2023-pact-tmf-2": { 4422 + "id": "https://anil.recoil.org/news/2023-pact-tmf-2", 4423 + "title": "PACT Tropical Moist Forest Accreditation Methodology", 4424 + "link": "https://anil.recoil.org/news/2023-pact-tmf-2", 4425 + "feed_title": "Anil Madhavapeddy's feed", 4426 + "references": [ 4427 + { 4428 + "id": "https://anil.recoil.org/news/2023-pact-tmf-1", 4429 + "link": "https://anil.recoil.org/news/2023-pact-tmf-1", 4430 + "title": "PACT Tropical Moist Forest Accreditation Methodology", 4431 + "feed_title": "Anil Madhavapeddy's feed" 4432 + } 4433 + ], 4434 + "referenced_by": [ 4435 + { 4436 + "id": "https://anil.recoil.org/news/2023-pact-tmf-3", 4437 + "link": "https://anil.recoil.org/news/2023-pact-tmf-3", 4438 + "title": "PACT Tropical Moist Forest Accreditation Methodology", 4439 + "feed_title": "Anil Madhavapeddy's feed" 4440 + } 4441 + ] 4442 + }, 4443 + "https://ryan.freumh.org/2023-11-27.html": { 4444 + "id": "https://ryan.freumh.org/2023-11-27.html", 4445 + "title": "Mon 27 Nov 2023", 4446 + "link": "https://ryan.freumh.org/2023-11-27.html", 4447 + "feed_title": "ryan.freumh.org", 4448 + "references": [ 4449 + { 4450 + "id": "https://ryan.freumh.org/2023-11-20.html", 4451 + "link": "https://ryan.freumh.org/2023-11-20.html", 4452 + "title": "Mon 20 Nov 2023", 4453 + "feed_title": "ryan.freumh.org" 4454 + }, 4455 + { 4456 + "id": "https://ryan.freumh.org/2023-12-04.html", 4457 + "link": "https://ryan.freumh.org/2023-12-04.html", 4458 + "title": "Mon 4 Dec 2023", 4459 + "feed_title": "ryan.freumh.org" 4460 + } 4461 + ], 4462 + "referenced_by": [ 4463 + { 4464 + "id": "https://ryan.freumh.org/2023-12-04.html", 4465 + "link": "https://ryan.freumh.org/2023-12-04.html", 4466 + "title": "Mon 4 Dec 2023", 4467 + "feed_title": "ryan.freumh.org" 4468 + }, 4469 + { 4470 + "id": "https://ryan.freumh.org/2023-11-20.html", 4471 + "link": "https://ryan.freumh.org/2023-11-20.html", 4472 + "title": "Mon 20 Nov 2023", 4473 + "feed_title": "ryan.freumh.org" 4474 + } 4475 + ] 4476 + }, 4477 + "https://ryan.freumh.org/2023-11-20.html": { 4478 + "id": "https://ryan.freumh.org/2023-11-20.html", 4479 + "title": "Mon 20 Nov 2023", 4480 + "link": "https://ryan.freumh.org/2023-11-20.html", 4481 + "feed_title": "ryan.freumh.org", 4482 + "references": [ 4483 + { 4484 + "id": "https://ryan.freumh.org/2023-11-13.html", 4485 + "link": "https://ryan.freumh.org/2023-11-13.html", 4486 + "title": "Mon 13 Nov 2023", 4487 + "feed_title": "ryan.freumh.org" 4488 + }, 4489 + { 4490 + "id": "https://ryan.freumh.org/2023-11-27.html", 4491 + "link": "https://ryan.freumh.org/2023-11-27.html", 4492 + "title": "Mon 27 Nov 2023", 4493 + "feed_title": "ryan.freumh.org" 4494 + } 4495 + ], 4496 + "referenced_by": [ 4497 + { 4498 + "id": "https://ryan.freumh.org/2023-11-27.html", 4499 + "link": "https://ryan.freumh.org/2023-11-27.html", 4500 + "title": "Mon 27 Nov 2023", 4501 + "feed_title": "ryan.freumh.org" 4502 + }, 4503 + { 4504 + "id": "https://ryan.freumh.org/2023-11-13.html", 4505 + "link": "https://ryan.freumh.org/2023-11-13.html", 4506 + "title": "Mon 13 Nov 2023", 4507 + "feed_title": "ryan.freumh.org" 4508 + } 4509 + ] 4510 + }, 4511 + "https://ryan.freumh.org/2023-11-13.html": { 4512 + "id": "https://ryan.freumh.org/2023-11-13.html", 4513 + "title": "Mon 13 Nov 2023", 4514 + "link": "https://ryan.freumh.org/2023-11-13.html", 4515 + "feed_title": "ryan.freumh.org", 4516 + "references": [ 4517 + { 4518 + "id": "https://ryan.freumh.org/2023-11-06.html", 4519 + "link": "https://ryan.freumh.org/2023-11-06.html", 4520 + "title": "Mon 6 Nov 2023", 4521 + "feed_title": "ryan.freumh.org" 4522 + }, 4523 + { 4524 + "id": "https://ryan.freumh.org/2023-11-20.html", 4525 + "link": "https://ryan.freumh.org/2023-11-20.html", 4526 + "title": "Mon 20 Nov 2023", 4527 + "feed_title": "ryan.freumh.org" 4528 + } 4529 + ], 4530 + "referenced_by": [ 4531 + { 4532 + "id": "https://ryan.freumh.org/2023-11-20.html", 4533 + "link": "https://ryan.freumh.org/2023-11-20.html", 4534 + "title": "Mon 20 Nov 2023", 4535 + "feed_title": "ryan.freumh.org" 4536 + }, 4537 + { 4538 + "id": "https://ryan.freumh.org/2023-11-06.html", 4539 + "link": "https://ryan.freumh.org/2023-11-06.html", 4540 + "title": "Mon 6 Nov 2023", 4541 + "feed_title": "ryan.freumh.org" 4542 + } 4543 + ] 4544 + }, 4545 + "https://ryan.freumh.org/2023-11-06.html": { 4546 + "id": "https://ryan.freumh.org/2023-11-06.html", 4547 + "title": "Mon 6 Nov 2023", 4548 + "link": "https://ryan.freumh.org/2023-11-06.html", 4549 + "feed_title": "ryan.freumh.org", 4550 + "references": [ 4551 + { 4552 + "id": "https://ryan.freumh.org/2023-10-30.html", 4553 + "link": "https://ryan.freumh.org/2023-10-30.html", 4554 + "title": "Mon 30 Oct 2023", 4555 + "feed_title": "ryan.freumh.org" 4556 + }, 4557 + { 4558 + "id": "https://ryan.freumh.org/2023-11-13.html", 4559 + "link": "https://ryan.freumh.org/2023-11-13.html", 4560 + "title": "Mon 13 Nov 2023", 4561 + "feed_title": "ryan.freumh.org" 4562 + } 4563 + ], 4564 + "referenced_by": [ 4565 + { 4566 + "id": "https://ryan.freumh.org/2023-11-13.html", 4567 + "link": "https://ryan.freumh.org/2023-11-13.html", 4568 + "title": "Mon 13 Nov 2023", 4569 + "feed_title": "ryan.freumh.org" 4570 + }, 4571 + { 4572 + "id": "https://ryan.freumh.org/2023-10-30.html", 4573 + "link": "https://ryan.freumh.org/2023-10-30.html", 4574 + "title": "Mon 30 Oct 2023", 4575 + "feed_title": "ryan.freumh.org" 4576 + } 4577 + ] 4578 + }, 4579 + "https://anil.recoil.org/news/48a7ab10-3f49-4978-a00f-c26b64c2cae7-1": { 4580 + "id": "https://anil.recoil.org/news/48a7ab10-3f49-4978-a00f-c26b64c2cae7-1", 4581 + "title": "BBC report on the new Cambridge supercomputer (\"Dawn\") announced at the 2023 AI Summit", 4582 + "link": "https://anil.recoil.org/news/48a7ab10-3f49-4978-a00f-c26b64c2cae7-1", 4583 + "feed_title": "Anil Madhavapeddy's feed", 4584 + "references": [], 4585 + "referenced_by": [] 4586 + }, 4587 + "https://digitalflapjack.com/blog/more-on-icons/": { 4588 + "id": "https://digitalflapjack.com/blog/more-on-icons/", 4589 + "title": "More on Icons", 4590 + "link": "https://digitalflapjack.com/blog/more-on-icons/", 4591 + "feed_title": "Digital Flapjack", 4592 + "references": [], 4593 + "referenced_by": [] 4594 + }, 4595 + "https://anil.recoil.org/news/2023-hotnets-sns-1": { 4596 + "id": "https://anil.recoil.org/news/2023-hotnets-sns-1", 4597 + "title": "Where on Earth is the Spatial Name System?", 4598 + "link": "https://anil.recoil.org/news/2023-hotnets-sns-1", 4599 + "feed_title": "Anil Madhavapeddy's feed", 4600 + "references": [], 4601 + "referenced_by": [] 4602 + }, 4603 + "https://anil.recoil.org/news/2023-ncc-permanence-2": { 4604 + "id": "https://anil.recoil.org/news/2023-ncc-permanence-2", 4605 + "title": "Nature Climate Change paper on impermanent carbon credits", 4606 + "link": "https://anil.recoil.org/news/2023-ncc-permanence-2", 4607 + "feed_title": "Anil Madhavapeddy's feed", 4608 + "references": [], 4609 + "referenced_by": [] 4610 + }, 4611 + "https://anil.recoil.org/news/2024-life-1": { 4612 + "id": "https://anil.recoil.org/news/2024-life-1", 4613 + "title": "First preprint of LIFE biodiversity metric available", 4614 + "link": "https://anil.recoil.org/news/2024-life-1", 4615 + "feed_title": "Anil Madhavapeddy's feed", 4616 + "references": [ 4617 + { 4618 + "id": "https://anil.recoil.org/projects/life", 4619 + "link": "https://anil.recoil.org/projects/life", 4620 + "title": "Mapping LIFE on Earth", 4621 + "feed_title": "Anil Madhavapeddy's feed" 4622 + } 4623 + ], 4624 + "referenced_by": [] 4625 + }, 4626 + "https://ryan.freumh.org/2023-10-30.html": { 4627 + "id": "https://ryan.freumh.org/2023-10-30.html", 4628 + "title": "Mon 30 Oct 2023", 4629 + "link": "https://ryan.freumh.org/2023-10-30.html", 4630 + "feed_title": "ryan.freumh.org", 4631 + "references": [ 4632 + { 4633 + "id": "https://ryan.freumh.org/2023-10-23.html", 4634 + "link": "https://ryan.freumh.org/2023-10-23.html", 4635 + "title": "Mon 23 Oct 2023", 4636 + "feed_title": "ryan.freumh.org" 4637 + }, 4638 + { 4639 + "id": "https://ryan.freumh.org/2023-11-06.html", 4640 + "link": "https://ryan.freumh.org/2023-11-06.html", 4641 + "title": "Mon 6 Nov 2023", 4642 + "feed_title": "ryan.freumh.org" 4643 + } 4644 + ], 4645 + "referenced_by": [ 4646 + { 4647 + "id": "https://ryan.freumh.org/2023-11-06.html", 4648 + "link": "https://ryan.freumh.org/2023-11-06.html", 4649 + "title": "Mon 6 Nov 2023", 4650 + "feed_title": "ryan.freumh.org" 4651 + }, 4652 + { 4653 + "id": "https://ryan.freumh.org/2023-10-23.html", 4654 + "link": "https://ryan.freumh.org/2023-10-23.html", 4655 + "title": "Mon 23 Oct 2023", 4656 + "feed_title": "ryan.freumh.org" 4657 + } 4658 + ] 4659 + }, 4660 + "https://ryan.freumh.org/2023-10-23.html": { 4661 + "id": "https://ryan.freumh.org/2023-10-23.html", 4662 + "title": "Mon 23 Oct 2023", 4663 + "link": "https://ryan.freumh.org/2023-10-23.html", 4664 + "feed_title": "ryan.freumh.org", 4665 + "references": [ 4666 + { 4667 + "id": "https://ryan.freumh.org/2023-10-16.html", 4668 + "link": "https://ryan.freumh.org/2023-10-16.html", 4669 + "title": "Mon 16 Oct 2023", 4670 + "feed_title": "ryan.freumh.org" 4671 + }, 4672 + { 4673 + "id": "https://ryan.freumh.org/2023-10-30.html", 4674 + "link": "https://ryan.freumh.org/2023-10-30.html", 4675 + "title": "Mon 30 Oct 2023", 4676 + "feed_title": "ryan.freumh.org" 4677 + } 4678 + ], 4679 + "referenced_by": [ 4680 + { 4681 + "id": "https://ryan.freumh.org/2023-10-30.html", 4682 + "link": "https://ryan.freumh.org/2023-10-30.html", 4683 + "title": "Mon 30 Oct 2023", 4684 + "feed_title": "ryan.freumh.org" 4685 + }, 4686 + { 4687 + "id": "https://ryan.freumh.org/2023-10-16.html", 4688 + "link": "https://ryan.freumh.org/2023-10-16.html", 4689 + "title": "Mon 16 Oct 2023", 4690 + "feed_title": "ryan.freumh.org" 4691 + } 4692 + ] 4693 + }, 4694 + "https://anil.recoil.org/notes/mission-possible": { 4695 + "id": "https://anil.recoil.org/notes/mission-possible", 4696 + "title": "Cambridge Zero highlights University efforts at Climate Week NYC", 4697 + "link": "https://anil.recoil.org/notes/mission-possible", 4698 + "feed_title": "Anil Madhavapeddy's feed", 4699 + "references": [], 4700 + "referenced_by": [] 4701 + }, 4702 + "https://ryan.freumh.org/2023-10-16.html": { 4703 + "id": "https://ryan.freumh.org/2023-10-16.html", 4704 + "title": "Mon 16 Oct 2023", 4705 + "link": "https://ryan.freumh.org/2023-10-16.html", 4706 + "feed_title": "ryan.freumh.org", 4707 + "references": [ 4708 + { 4709 + "id": "https://ryan.freumh.org/2023-10-09.html", 4710 + "link": "https://ryan.freumh.org/2023-10-09.html", 4711 + "title": "Mon 9 Oct 2023", 4712 + "feed_title": "ryan.freumh.org" 4713 + }, 4714 + { 4715 + "id": "https://ryan.freumh.org/2023-10-23.html", 4716 + "link": "https://ryan.freumh.org/2023-10-23.html", 4717 + "title": "Mon 23 Oct 2023", 4718 + "feed_title": "ryan.freumh.org" 4719 + } 4720 + ], 4721 + "referenced_by": [ 4722 + { 4723 + "id": "https://ryan.freumh.org/2024-01-08.html", 4724 + "link": "https://ryan.freumh.org/2024-01-08.html", 4725 + "title": "Mon 8 Jan 2024", 4726 + "feed_title": "ryan.freumh.org" 4727 + }, 4728 + { 4729 + "id": "https://ryan.freumh.org/2023-10-23.html", 4730 + "link": "https://ryan.freumh.org/2023-10-23.html", 4731 + "title": "Mon 23 Oct 2023", 4732 + "feed_title": "ryan.freumh.org" 4733 + }, 4734 + { 4735 + "id": "https://ryan.freumh.org/2023-10-09.html", 4736 + "link": "https://ryan.freumh.org/2023-10-09.html", 4737 + "title": "Mon 9 Oct 2023", 4738 + "feed_title": "ryan.freumh.org" 4739 + } 4740 + ] 4741 + }, 4742 + "https://ryan.freumh.org/2023-10-09.html": { 4743 + "id": "https://ryan.freumh.org/2023-10-09.html", 4744 + "title": "Mon 9 Oct 2023", 4745 + "link": "https://ryan.freumh.org/2023-10-09.html", 4746 + "feed_title": "ryan.freumh.org", 4747 + "references": [ 4748 + { 4749 + "id": "https://ryan.freumh.org/2023-10-16.html", 4750 + "link": "https://ryan.freumh.org/2023-10-16.html", 4751 + "title": "Mon 16 Oct 2023", 4752 + "feed_title": "ryan.freumh.org" 4753 + } 4754 + ], 4755 + "referenced_by": [ 4756 + { 4757 + "id": "https://ryan.freumh.org/2023-10-16.html", 4758 + "link": "https://ryan.freumh.org/2023-10-16.html", 4759 + "title": "Mon 16 Oct 2023", 4760 + "feed_title": "ryan.freumh.org" 4761 + } 4762 + ] 4763 + }, 4764 + "https://anil.recoil.org/news/2023-raid-deluminator-1": { 4765 + "id": "https://anil.recoil.org/news/2023-raid-deluminator-1", 4766 + "title": "Information Flow Tracking for Heterogeneous Compartmentalized Software", 4767 + "link": "https://anil.recoil.org/news/2023-raid-deluminator-1", 4768 + "feed_title": "Anil Madhavapeddy's feed", 4769 + "references": [], 4770 + "referenced_by": [] 4771 + }, 4772 + "https://anil.recoil.org/news/2023-acns-microguards-1": { 4773 + "id": "https://anil.recoil.org/news/2023-acns-microguards-1", 4774 + "title": "Enabling Lightweight Privilege Separation in Applications with MicroGuards", 4775 + "link": "https://anil.recoil.org/news/2023-acns-microguards-1", 4776 + "feed_title": "Anil Madhavapeddy's feed", 4777 + "references": [], 4778 + "referenced_by": [] 4779 + }, 4780 + "https://anil.recoil.org/news/981c00b5-32c0-4cac-a387-6c945dfa9934-1": { 4781 + "id": "https://anil.recoil.org/news/981c00b5-32c0-4cac-a387-6c945dfa9934-1", 4782 + "title": "Functional Programming for the Planet", 4783 + "link": "https://anil.recoil.org/news/981c00b5-32c0-4cac-a387-6c945dfa9934-1", 4784 + "feed_title": "Anil Madhavapeddy's feed", 4785 + "references": [], 4786 + "referenced_by": [] 4787 + }, 4788 + "https://anil.recoil.org/news/2023-ocaml-platform-1": { 4789 + "id": "https://anil.recoil.org/news/2023-ocaml-platform-1", 4790 + "title": "State of the OCaml Platform 2023", 4791 + "link": "https://anil.recoil.org/news/2023-ocaml-platform-1", 4792 + "feed_title": "Anil Madhavapeddy's feed", 4793 + "references": [], 4794 + "referenced_by": [] 4795 + }, 4796 + "https://anil.recoil.org/ideas/murmuration": { 4797 + "id": "https://anil.recoil.org/ideas/murmuration", 4798 + "title": "Scheduling for Reduced Tail Latencies in Highly Utilised Datacenters", 4799 + "link": "https://anil.recoil.org/ideas/murmuration", 4800 + "feed_title": "Anil Madhavapeddy's feed", 4801 + "references": [], 4802 + "referenced_by": [] 4803 + }, 4804 + "https://anil.recoil.org/news/2023-ocaml-eio-1": { 4805 + "id": "https://anil.recoil.org/news/2023-ocaml-eio-1", 4806 + "title": "Eio 1.0 \u2013 Effects-based IO for OCaml 5", 4807 + "link": "https://anil.recoil.org/news/2023-ocaml-eio-1", 4808 + "feed_title": "Anil Madhavapeddy's feed", 4809 + "references": [], 4810 + "referenced_by": [] 4811 + }, 4812 + "https://mort.io/blog/nixos-onedrive/": { 4813 + "id": "https://mort.io/blog/nixos-onedrive/", 4814 + "title": "OneDrive and NixOS", 4815 + "link": "https://mort.io/blog/nixos-onedrive/", 4816 + "feed_title": "mort\u2019s mythop\u0153ia", 4817 + "references": [], 4818 + "referenced_by": [] 4819 + }, 4820 + "https://digitalflapjack.com/blog/pandas-vs-efficiency/": { 4821 + "id": "https://digitalflapjack.com/blog/pandas-vs-efficiency/", 4822 + "title": "Pandas vs Efficiency", 4823 + "link": "https://digitalflapjack.com/blog/pandas-vs-efficiency/", 4824 + "feed_title": "Digital Flapjack", 4825 + "references": [], 4826 + "referenced_by": [] 4827 + }, 4828 + "https://digitalflapjack.com/blog/slack-bad-for-gis-rasters/": { 4829 + "id": "https://digitalflapjack.com/blog/slack-bad-for-gis-rasters/", 4830 + "title": "Why using Slack is bad for GeoTIFF Rasters", 4831 + "link": "https://digitalflapjack.com/blog/slack-bad-for-gis-rasters/", 4832 + "feed_title": "Digital Flapjack", 4833 + "references": [], 4834 + "referenced_by": [] 4835 + }, 4836 + "https://anil.recoil.org/ideas/metaproperties-for-smart-contracts": { 4837 + "id": "https://anil.recoil.org/ideas/metaproperties-for-smart-contracts", 4838 + "title": "Meta Properties of Financial Smart Contracts", 4839 + "link": "https://anil.recoil.org/ideas/metaproperties-for-smart-contracts", 4840 + "feed_title": "Anil Madhavapeddy's feed", 4841 + "references": [], 4842 + "referenced_by": [] 4843 + }, 4844 + "https://anil.recoil.org/ideas/computational-scientific-methods": { 4845 + "id": "https://anil.recoil.org/ideas/computational-scientific-methods", 4846 + "title": "Computational Models for Scientific Exploration", 4847 + "link": "https://anil.recoil.org/ideas/computational-scientific-methods", 4848 + "feed_title": "Anil Madhavapeddy's feed", 4849 + "references": [], 4850 + "referenced_by": [] 4851 + }, 4852 + "https://anil.recoil.org/news/2023-ncc-permanence-1": { 4853 + "id": "https://anil.recoil.org/news/2023-ncc-permanence-1", 4854 + "title": "Preprint on the social value of impermanent carbon credits", 4855 + "link": "https://anil.recoil.org/news/2023-ncc-permanence-1", 4856 + "feed_title": "Anil Madhavapeddy's feed", 4857 + "references": [], 4858 + "referenced_by": [] 4859 + }, 4860 + "https://anil.recoil.org/notes/acm-sigplan-award": { 4861 + "id": "https://anil.recoil.org/notes/acm-sigplan-award", 4862 + "title": "OCaml wins the ACM Programming Language Software award", 4863 + "link": "https://anil.recoil.org/notes/acm-sigplan-award", 4864 + "feed_title": "Anil Madhavapeddy's feed", 4865 + "references": [], 4866 + "referenced_by": [] 4867 + }, 4868 + "https://ryan.freumh.org/ocaml-nix.html": { 4869 + "id": "https://ryan.freumh.org/ocaml-nix.html", 4870 + "title": "Developing OCaml with Nix", 4871 + "link": "https://ryan.freumh.org/ocaml-nix.html", 4872 + "feed_title": "ryan.freumh.org", 4873 + "references": [ 4874 + { 4875 + "id": "https://ryan.freumh.org/nix.html", 4876 + "link": "https://ryan.freumh.org/nix.html", 4877 + "title": "Nix", 4878 + "feed_title": "ryan.freumh.org" 4879 + } 4880 + ], 4881 + "referenced_by": [] 4882 + }, 4883 + "https://anil.recoil.org/news/2023-pact-tmf-1": { 4884 + "id": "https://anil.recoil.org/news/2023-pact-tmf-1", 4885 + "title": "PACT Tropical Moist Forest Accreditation Methodology", 4886 + "link": "https://anil.recoil.org/news/2023-pact-tmf-1", 4887 + "feed_title": "Anil Madhavapeddy's feed", 4888 + "references": [], 4889 + "referenced_by": [ 4890 + { 4891 + "id": "https://anil.recoil.org/news/2023-pact-tmf-2", 4892 + "link": "https://anil.recoil.org/news/2023-pact-tmf-2", 4893 + "title": "PACT Tropical Moist Forest Accreditation Methodology", 4894 + "feed_title": "Anil Madhavapeddy's feed" 4895 + } 4896 + ] 4897 + }, 4898 + "https://www.forester-notes.org/jms-0052/": { 4899 + "id": "https://www.forester-notes.org/jms-0052/", 4900 + "title": "Build your own Stacks Project in 10 minutes", 4901 + "link": "https://www.forester-notes.org/jms-0052/", 4902 + "feed_title": "Forester Blog", 4903 + "references": [], 4904 + "referenced_by": [] 4905 + }, 4906 + "https://anil.recoil.org/news/2023-carbon-credibility-1": { 4907 + "id": "https://anil.recoil.org/news/2023-carbon-credibility-1", 4908 + "title": "Credit credibility threatens forests", 4909 + "link": "https://anil.recoil.org/news/2023-carbon-credibility-1", 4910 + "feed_title": "Anil Madhavapeddy's feed", 4911 + "references": [], 4912 + "referenced_by": [] 4913 + }, 4914 + "https://mort.io/blog/windows-wsl2/": { 4915 + "id": "https://mort.io/blog/windows-wsl2/", 4916 + "title": "WSL2 / Windows 11", 4917 + "link": "https://mort.io/blog/windows-wsl2/", 4918 + "feed_title": "mort\u2019s mythop\u0153ia", 4919 + "references": [], 4920 + "referenced_by": [] 4921 + }, 4922 + "https://anil.recoil.org/news/ce64a918-ff52-4116-b1ee-256f08e6e7f1-1": { 4923 + "id": "https://anil.recoil.org/news/ce64a918-ff52-4116-b1ee-256f08e6e7f1-1", 4924 + "title": "Leveraging Scientific Innovation and AI to Scale Carbon Markets", 4925 + "link": "https://anil.recoil.org/news/ce64a918-ff52-4116-b1ee-256f08e6e7f1-1", 4926 + "feed_title": "Anil Madhavapeddy's feed", 4927 + "references": [], 4928 + "referenced_by": [] 4929 + }, 4930 + "https://anil.recoil.org/news/2024-planetary-computing-1": { 4931 + "id": "https://anil.recoil.org/news/2024-planetary-computing-1", 4932 + "title": "A Case for Planetary Computing", 4933 + "link": "https://anil.recoil.org/news/2024-planetary-computing-1", 4934 + "feed_title": "Anil Madhavapeddy's feed", 4935 + "references": [], 4936 + "referenced_by": [] 4937 + }, 4938 + "https://mort.io/blog/ocaml-operators/": { 4939 + "id": "https://mort.io/blog/ocaml-operators/", 4940 + "title": "OCaml operators", 4941 + "link": "https://mort.io/blog/ocaml-operators/", 4942 + "feed_title": "mort\u2019s mythop\u0153ia", 4943 + "references": [], 4944 + "referenced_by": [] 4945 + }, 4946 + "https://mort.io/blog/software-folklore/": { 4947 + "id": "https://mort.io/blog/software-folklore/", 4948 + "title": "Software folklore", 4949 + "link": "https://mort.io/blog/software-folklore/", 4950 + "feed_title": "mort\u2019s mythop\u0153ia", 4951 + "references": [], 4952 + "referenced_by": [] 4953 + }, 4954 + "https://anil.recoil.org/ideas/sdms-with-cnns": { 4955 + "id": "https://anil.recoil.org/ideas/sdms-with-cnns", 4956 + "title": "Species distribution modelling using CNNs", 4957 + "link": "https://anil.recoil.org/ideas/sdms-with-cnns", 4958 + "feed_title": "Anil Madhavapeddy's feed", 4959 + "references": [], 4960 + "referenced_by": [ 4961 + { 4962 + "id": "https://anil.recoil.org/news/2024-sdm-sa-1", 4963 + "link": "https://anil.recoil.org/news/2024-sdm-sa-1", 4964 + "title": "Predicting species using machine learning at CCAI", 4965 + "feed_title": "Anil Madhavapeddy's feed" 4966 + } 4967 + ] 4968 + }, 4969 + "https://digitalflapjack.com/blog/tezos-contract-upgrades/": { 4970 + "id": "https://digitalflapjack.com/blog/tezos-contract-upgrades/", 4971 + "title": "How to update a Tezos Smart-Contract", 4972 + "link": "https://digitalflapjack.com/blog/tezos-contract-upgrades/", 4973 + "feed_title": "Digital Flapjack", 4974 + "references": [], 4975 + "referenced_by": [] 4976 + }, 4977 + "https://ryan.freumh.org/bibliography-management.html": { 4978 + "id": "https://ryan.freumh.org/bibliography-management.html", 4979 + "title": "Bibliography Management", 4980 + "link": "https://ryan.freumh.org/bibliography-management.html", 4981 + "feed_title": "ryan.freumh.org", 4982 + "references": [], 4983 + "referenced_by": [] 4984 + }, 4985 + "https://anil.recoil.org/notes/recapping-ocaml-22": { 4986 + "id": "https://anil.recoil.org/notes/recapping-ocaml-22", 4987 + "title": "OCaml.org: recapping 2022 and queries on the Fediverse", 4988 + "link": "https://anil.recoil.org/notes/recapping-ocaml-22", 4989 + "feed_title": "Anil Madhavapeddy's feed", 4990 + "references": [], 4991 + "referenced_by": [] 4992 + }, 4993 + "https://anil.recoil.org/ideas/urban-vegetation": { 4994 + "id": "https://anil.recoil.org/ideas/urban-vegetation", 4995 + "title": "The role of urban vegetation in human health", 4996 + "link": "https://anil.recoil.org/ideas/urban-vegetation", 4997 + "feed_title": "Anil Madhavapeddy's feed", 4998 + "references": [], 4999 + "referenced_by": [ 5000 + { 5001 + "id": "https://anil.recoil.org/projects/rsn", 5002 + "link": "https://anil.recoil.org/projects/rsn", 5003 + "title": "Remote Sensing of Nature", 5004 + "feed_title": "Anil Madhavapeddy's feed" 5005 + } 5006 + ] 5007 + }, 5008 + "https://anil.recoil.org/ideas/rev-abm": { 5009 + "id": "https://anil.recoil.org/ideas/rev-abm", 5010 + "title": "Reverse emulating agent-based models for policy simulation", 5011 + "link": "https://anil.recoil.org/ideas/rev-abm", 5012 + "feed_title": "Anil Madhavapeddy's feed", 5013 + "references": [ 5014 + { 5015 + "id": "https://anil.recoil.org/ideas/differentiable-abm", 5016 + "link": "https://anil.recoil.org/ideas/differentiable-abm", 5017 + "title": "Scalable agent-based models for optimized policy design", 5018 + "feed_title": "Anil Madhavapeddy's feed" 5019 + } 5020 + ], 5021 + "referenced_by": [ 5022 + { 5023 + "id": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 5024 + "link": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 5025 + "title": "A trio of papers I read on biodiversity and forests this week", 5026 + "feed_title": "Anil Madhavapeddy's feed" 5027 + }, 5028 + { 5029 + "id": "https://anil.recoil.org/ideas/differentiable-abm", 5030 + "link": "https://anil.recoil.org/ideas/differentiable-abm", 5031 + "title": "Scalable agent-based models for optimized policy design", 5032 + "feed_title": "Anil Madhavapeddy's feed" 5033 + } 5034 + ] 5035 + }, 5036 + "https://anil.recoil.org/projects/rsn": { 5037 + "id": "https://anil.recoil.org/projects/rsn", 5038 + "title": "Remote Sensing of Nature", 5039 + "link": "https://anil.recoil.org/projects/rsn", 5040 + "feed_title": "Anil Madhavapeddy's feed", 5041 + "references": [ 5042 + { 5043 + "id": "https://anil.recoil.org/projects/plancomp", 5044 + "link": "https://anil.recoil.org/projects/plancomp", 5045 + "title": "Planetary Computing", 5046 + "feed_title": "Anil Madhavapeddy's feed" 5047 + }, 5048 + { 5049 + "id": "https://anil.recoil.org/ideas/urban-vegetation", 5050 + "link": "https://anil.recoil.org/ideas/urban-vegetation", 5051 + "title": "The role of urban vegetation in human health", 5052 + "feed_title": "Anil Madhavapeddy's feed" 5053 + } 5054 + ], 5055 + "referenced_by": [ 5056 + { 5057 + "id": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 5058 + "link": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 5059 + "title": "Semi distributed filesystems with ZFS and Sanoid", 5060 + "feed_title": "Anil Madhavapeddy's feed" 5061 + }, 5062 + { 5063 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 5064 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 5065 + "title": "Programming FPGAs using OCaml", 5066 + "feed_title": "Anil Madhavapeddy's feed" 5067 + }, 5068 + { 5069 + "id": "https://anil.recoil.org/notes/forests-spatial-resolution", 5070 + "link": "https://anil.recoil.org/notes/forests-spatial-resolution", 5071 + "title": "Satellites are getting too good for forest carbon?", 5072 + "feed_title": "Anil Madhavapeddy's feed" 5073 + }, 5074 + { 5075 + "id": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 5076 + "link": "https://anil.recoil.org/ideas/computational-storage-for-vector-dbs", 5077 + "title": "Using computational SSDs for vector databases", 5078 + "feed_title": "Anil Madhavapeddy's feed" 5079 + }, 5080 + { 5081 + "id": "https://anil.recoil.org/notes/ukri-grant-terra", 5082 + "link": "https://anil.recoil.org/notes/ukri-grant-terra", 5083 + "title": "Building species models of the planet", 5084 + "feed_title": "Anil Madhavapeddy's feed" 5085 + }, 5086 + { 5087 + "id": "https://anil.recoil.org/ideas/life-explorer-wasm", 5088 + "link": "https://anil.recoil.org/ideas/life-explorer-wasm", 5089 + "title": "Using wasm to locally explore geospatial layers", 5090 + "feed_title": "Anil Madhavapeddy's feed" 5091 + }, 5092 + { 5093 + "id": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 5094 + "link": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 5095 + "title": "COMPASS 2024 report on the CoRE stack RIC meeting", 5096 + "feed_title": "Anil Madhavapeddy's feed" 5097 + }, 5098 + { 5099 + "id": "https://anil.recoil.org/ideas/functional-diffs", 5100 + "link": "https://anil.recoil.org/ideas/functional-diffs", 5101 + "title": "Composable diffing for heterogenous file formats", 5102 + "feed_title": "Anil Madhavapeddy's feed" 5103 + }, 5104 + { 5105 + "id": "https://anil.recoil.org/projects/plancomp", 5106 + "link": "https://anil.recoil.org/projects/plancomp", 5107 + "title": "Planetary Computing", 5108 + "feed_title": "Anil Madhavapeddy's feed" 5109 + } 5110 + ] 5111 + }, 5112 + "https://anil.recoil.org/projects/life": { 5113 + "id": "https://anil.recoil.org/projects/life", 5114 + "title": "Mapping LIFE on Earth", 5115 + "link": "https://anil.recoil.org/projects/life", 5116 + "feed_title": "Anil Madhavapeddy's feed", 5117 + "references": [], 5118 + "referenced_by": [ 5119 + { 5120 + "id": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 5121 + "link": "https://anil.recoil.org/notes/syncoid-sanoid-zfs", 5122 + "title": "Semi distributed filesystems with ZFS and Sanoid", 5123 + "feed_title": "Anil Madhavapeddy's feed" 5124 + }, 5125 + { 5126 + "id": "https://anil.recoil.org/notes/life-official-statistic", 5127 + "link": "https://anil.recoil.org/notes/life-official-statistic", 5128 + "title": "LIFE becomes an Official Statistic of the UK government", 5129 + "feed_title": "Anil Madhavapeddy's feed" 5130 + }, 5131 + { 5132 + "id": "https://anil.recoil.org/news/2024-food-life-2", 5133 + "link": "https://anil.recoil.org/news/2024-food-life-2", 5134 + "title": "Updated preprint on quantifying biodiversity cost of food consumption", 5135 + "feed_title": "Anil Madhavapeddy's feed" 5136 + }, 5137 + { 5138 + "id": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 5139 + "link": "https://anil.recoil.org/notes/carbon-credits-vs-offsets", 5140 + "title": "Disentangling carbon credits and offsets with contributions", 5141 + "feed_title": "Anil Madhavapeddy's feed" 5142 + }, 5143 + { 5144 + "id": "https://anil.recoil.org/news/2024-life-3", 5145 + "link": "https://anil.recoil.org/news/2024-life-3", 5146 + "title": "LIFE metric published in Royal Society Phil Trans B", 5147 + "feed_title": "Anil Madhavapeddy's feed" 5148 + }, 5149 + { 5150 + "id": "https://anil.recoil.org/news/2024-loco-shark-1", 5151 + "link": "https://anil.recoil.org/news/2024-loco-shark-1", 5152 + "title": "Towards a frugal userspace for Linux", 5153 + "feed_title": "Anil Madhavapeddy's feed" 5154 + }, 5155 + { 5156 + "id": "https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1", 5157 + "link": "https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1", 5158 + "title": "Mapping greener futures with planetary computing", 5159 + "feed_title": "Anil Madhavapeddy's feed" 5160 + }, 5161 + { 5162 + "id": "https://anil.recoil.org/notes/socc-pc", 5163 + "link": "https://anil.recoil.org/notes/socc-pc", 5164 + "title": "On the SOCC 2024 PC", 5165 + "feed_title": "Anil Madhavapeddy's feed" 5166 + }, 5167 + { 5168 + "id": "https://anil.recoil.org/notes/ukri-grant-terra", 5169 + "link": "https://anil.recoil.org/notes/ukri-grant-terra", 5170 + "title": "Building species models of the planet", 5171 + "feed_title": "Anil Madhavapeddy's feed" 5172 + }, 5173 + { 5174 + "id": "https://anil.recoil.org/ideas/life-explorer-wasm", 5175 + "link": "https://anil.recoil.org/ideas/life-explorer-wasm", 5176 + "title": "Using wasm to locally explore geospatial layers", 5177 + "feed_title": "Anil Madhavapeddy's feed" 5178 + }, 5179 + { 5180 + "id": "https://anil.recoil.org/ideas/mapping-species-extinction-risks", 5181 + "link": "https://anil.recoil.org/ideas/mapping-species-extinction-risks", 5182 + "title": "Real-time mapping of changes in species extinction risks", 5183 + "feed_title": "Anil Madhavapeddy's feed" 5184 + }, 5185 + { 5186 + "id": "https://anil.recoil.org/ideas/mapping-hunting-risks-for-wild-meat", 5187 + "link": "https://anil.recoil.org/ideas/mapping-hunting-risks-for-wild-meat", 5188 + "title": "Mapping hunting risks for wild meat in protected areas", 5189 + "feed_title": "Anil Madhavapeddy's feed" 5190 + }, 5191 + { 5192 + "id": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 5193 + "link": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 5194 + "title": "COMPASS 2024 report on the CoRE stack RIC meeting", 5195 + "feed_title": "Anil Madhavapeddy's feed" 5196 + }, 5197 + { 5198 + "id": "https://anil.recoil.org/news/2024-life-2", 5199 + "link": "https://anil.recoil.org/news/2024-life-2", 5200 + "title": "Second preprint of the LIFE biodiversity metric available", 5201 + "feed_title": "Anil Madhavapeddy's feed" 5202 + }, 5203 + { 5204 + "id": "https://anil.recoil.org/news/2024-life-1", 5205 + "link": "https://anil.recoil.org/news/2024-life-1", 5206 + "title": "First preprint of LIFE biodiversity metric available", 5207 + "feed_title": "Anil Madhavapeddy's feed" 5208 + } 5209 + ] 5210 + }, 5211 + "https://anil.recoil.org/ideas/interspatial-networking": { 5212 + "id": "https://anil.recoil.org/ideas/interspatial-networking", 5213 + "title": "Interspatial Networking with DNS", 5214 + "link": "https://anil.recoil.org/ideas/interspatial-networking", 5215 + "feed_title": "Anil Madhavapeddy's feed", 5216 + "references": [], 5217 + "referenced_by": [ 5218 + { 5219 + "id": "https://anil.recoil.org/ideas/sns", 5220 + "link": "https://anil.recoil.org/ideas/sns", 5221 + "title": "Spatial Name System", 5222 + "feed_title": "Anil Madhavapeddy's feed" 5223 + } 5224 + ] 5225 + }, 5226 + "https://anil.recoil.org/ideas/activitypub-resilience": { 5227 + "id": "https://anil.recoil.org/ideas/activitypub-resilience", 5228 + "title": "Improving Resilience of ActivityPub Services", 5229 + "link": "https://anil.recoil.org/ideas/activitypub-resilience", 5230 + "feed_title": "Anil Madhavapeddy's feed", 5231 + "references": [], 5232 + "referenced_by": [ 5233 + { 5234 + "id": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 5235 + "link": "https://anil.recoil.org/notes/atproto-for-fun-and-blogging", 5236 + "title": "Using AT Proto for more than just Bluesky posts", 5237 + "feed_title": "Anil Madhavapeddy's feed" 5238 + } 5239 + ] 5240 + }, 5241 + "https://anil.recoil.org/ideas/compressive-geospatial": { 5242 + "id": "https://anil.recoil.org/ideas/compressive-geospatial", 5243 + "title": "Assessing high-performance lightweight compression formats for geospatial computation", 5244 + "link": "https://anil.recoil.org/ideas/compressive-geospatial", 5245 + "feed_title": "Anil Madhavapeddy's feed", 5246 + "references": [], 5247 + "referenced_by": [ 5248 + { 5249 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 5250 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 5251 + "title": "Programming FPGAs using OCaml", 5252 + "feed_title": "Anil Madhavapeddy's feed" 5253 + } 5254 + ] 5255 + }, 5256 + "https://ryan.freumh.org/remarkable2.html": { 5257 + "id": "https://ryan.freumh.org/remarkable2.html", 5258 + "title": "Hacking on the Remarkable 2", 5259 + "link": "https://ryan.freumh.org/remarkable2.html", 5260 + "feed_title": "ryan.freumh.org", 5261 + "references": [], 5262 + "referenced_by": [] 5263 + }, 5264 + "https://ryan.freumh.org/nix.html": { 5265 + "id": "https://ryan.freumh.org/nix.html", 5266 + "title": "Nix", 5267 + "link": "https://ryan.freumh.org/nix.html", 5268 + "feed_title": "ryan.freumh.org", 5269 + "references": [], 5270 + "referenced_by": [ 5271 + { 5272 + "id": "https://ryan.freumh.org/firefox.html", 5273 + "link": "https://ryan.freumh.org/firefox.html", 5274 + "title": "Firefox", 5275 + "feed_title": "ryan.freumh.org" 5276 + }, 5277 + { 5278 + "id": "https://ryan.freumh.org/vim.html", 5279 + "link": "https://ryan.freumh.org/vim.html", 5280 + "title": "(Neo)Vim", 5281 + "feed_title": "ryan.freumh.org" 5282 + }, 5283 + { 5284 + "id": "https://ryan.freumh.org/ocaml-nix.html", 5285 + "link": "https://ryan.freumh.org/ocaml-nix.html", 5286 + "title": "Developing OCaml with Nix", 5287 + "feed_title": "ryan.freumh.org" 5288 + }, 5289 + { 5290 + "id": "https://ryan.freumh.org/hillingar.html", 5291 + "link": "https://ryan.freumh.org/hillingar.html", 5292 + "title": "Hillingar: MirageOS Unikernels on NixOS", 5293 + "feed_title": "ryan.freumh.org" 5294 + } 5295 + ] 5296 + }, 5297 + "https://ryan.freumh.org/hillingar.html": { 5298 + "id": "https://ryan.freumh.org/hillingar.html", 5299 + "title": "Hillingar: MirageOS Unikernels on NixOS", 5300 + "link": "https://ryan.freumh.org/hillingar.html", 5301 + "feed_title": "ryan.freumh.org", 5302 + "references": [ 5303 + { 5304 + "id": "https://ryan.freumh.org/nix.html", 5305 + "link": "https://ryan.freumh.org/nix.html", 5306 + "title": "Nix", 5307 + "feed_title": "ryan.freumh.org" 5308 + }, 5309 + { 5310 + "id": "https://ryan.freumh.org/dns-loc-rr.html", 5311 + "link": "https://ryan.freumh.org/dns-loc-rr.html", 5312 + "title": "DNS LOC", 5313 + "feed_title": "ryan.freumh.org" 5314 + } 5315 + ], 5316 + "referenced_by": [] 5317 + }, 5318 + "https://anil.recoil.org/news/bc9da6fc-9419-4f18-9db9-c13b1a4a859f-1": { 5319 + "id": "https://anil.recoil.org/news/bc9da6fc-9419-4f18-9db9-c13b1a4a859f-1", 5320 + "title": "Financing Forests: A Credible Approach towards Halting Tropical Deforestation", 5321 + "link": "https://anil.recoil.org/news/bc9da6fc-9419-4f18-9db9-c13b1a4a859f-1", 5322 + "feed_title": "Anil Madhavapeddy's feed", 5323 + "references": [], 5324 + "referenced_by": [] 5325 + }, 5326 + "https://anil.recoil.org/news/a26475b5-c169-478e-b88e-be5cd1f2aff8-1": { 5327 + "id": "https://anil.recoil.org/news/a26475b5-c169-478e-b88e-be5cd1f2aff8-1", 5328 + "title": "17th William Pitt Seminar - Who's in Charge?", 5329 + "link": "https://anil.recoil.org/news/a26475b5-c169-478e-b88e-be5cd1f2aff8-1", 5330 + "feed_title": "Anil Madhavapeddy's feed", 5331 + "references": [], 5332 + "referenced_by": [] 5333 + }, 5334 + "https://anil.recoil.org/news/rwo-2": { 5335 + "id": "https://anil.recoil.org/news/rwo-2", 5336 + "title": "The 2nd ed of Real World OCaml is available in shops", 5337 + "link": "https://anil.recoil.org/news/rwo-2", 5338 + "feed_title": "Anil Madhavapeddy's feed", 5339 + "references": [], 5340 + "referenced_by": [] 5341 + }, 5342 + "https://anil.recoil.org/news/2022-oud-ocurrent-1": { 5343 + "id": "https://anil.recoil.org/news/2022-oud-ocurrent-1", 5344 + "title": "Homogeneous Builds with OBuilder and OCaml", 5345 + "link": "https://anil.recoil.org/news/2022-oud-ocurrent-1", 5346 + "feed_title": "Anil Madhavapeddy's feed", 5347 + "references": [], 5348 + "referenced_by": [] 5349 + }, 5350 + "https://ryan.freumh.org/nim.html": { 5351 + "id": "https://ryan.freumh.org/nim.html", 5352 + "title": "Nim", 5353 + "link": "https://ryan.freumh.org/nim.html", 5354 + "feed_title": "ryan.freumh.org", 5355 + "references": [], 5356 + "referenced_by": [] 5357 + }, 5358 + "https://anil.recoil.org/ideas/dsl-for-decentralised-id": { 5359 + "id": "https://anil.recoil.org/ideas/dsl-for-decentralised-id", 5360 + "title": "A DSL for decentralised identity in OCaml", 5361 + "link": "https://anil.recoil.org/ideas/dsl-for-decentralised-id", 5362 + "feed_title": "Anil Madhavapeddy's feed", 5363 + "references": [], 5364 + "referenced_by": [] 5365 + }, 5366 + "https://anil.recoil.org/news/4c-1": { 5367 + "id": "https://anil.recoil.org/news/4c-1", 5368 + "title": "Trusted Carbon Credits", 5369 + "link": "https://anil.recoil.org/news/4c-1", 5370 + "feed_title": "Anil Madhavapeddy's feed", 5371 + "references": [], 5372 + "referenced_by": [] 5373 + }, 5374 + "https://anil.recoil.org/ideas/dispersed-compartments": { 5375 + "id": "https://anil.recoil.org/ideas/dispersed-compartments", 5376 + "title": "Secure Programming with Dispersed Compartments", 5377 + "link": "https://anil.recoil.org/ideas/dispersed-compartments", 5378 + "feed_title": "Anil Madhavapeddy's feed", 5379 + "references": [], 5380 + "referenced_by": [ 5381 + { 5382 + "id": "https://anil.recoil.org/projects/difc-tee", 5383 + "link": "https://anil.recoil.org/projects/difc-tee", 5384 + "title": "Information Flow for Trusted Execution", 5385 + "feed_title": "Anil Madhavapeddy's feed" 5386 + } 5387 + ] 5388 + }, 5389 + "https://anil.recoil.org/notes/multicore-monthly-mar22": { 5390 + "id": "https://anil.recoil.org/notes/multicore-monthly-mar22", 5391 + "title": "OCaml Multicore Monthly: heading towards OCaml 5.0", 5392 + "link": "https://anil.recoil.org/notes/multicore-monthly-mar22", 5393 + "feed_title": "Anil Madhavapeddy's feed", 5394 + "references": [], 5395 + "referenced_by": [] 5396 + }, 5397 + "https://ryan.freumh.org/vr-ar.html": { 5398 + "id": "https://ryan.freumh.org/vr-ar.html", 5399 + "title": "Virtual and Augmented Reality", 5400 + "link": "https://ryan.freumh.org/vr-ar.html", 5401 + "feed_title": "ryan.freumh.org", 5402 + "references": [], 5403 + "referenced_by": [] 5404 + }, 5405 + "https://anil.recoil.org/notes/multicore-monthly-jan22": { 5406 + "id": "https://anil.recoil.org/notes/multicore-monthly-jan22", 5407 + "title": "OCaml Multicore Monthly: post merge activites", 5408 + "link": "https://anil.recoil.org/notes/multicore-monthly-jan22", 5409 + "feed_title": "Anil Madhavapeddy's feed", 5410 + "references": [], 5411 + "referenced_by": [] 5412 + }, 5413 + "https://ryan.freumh.org/dns-loc-rr.html": { 5414 + "id": "https://ryan.freumh.org/dns-loc-rr.html", 5415 + "title": "DNS LOC", 5416 + "link": "https://ryan.freumh.org/dns-loc-rr.html", 5417 + "feed_title": "ryan.freumh.org", 5418 + "references": [], 5419 + "referenced_by": [ 5420 + { 5421 + "id": "https://ryan.freumh.org/hillingar.html", 5422 + "link": "https://ryan.freumh.org/hillingar.html", 5423 + "title": "Hillingar: MirageOS Unikernels on NixOS", 5424 + "feed_title": "ryan.freumh.org" 5425 + } 5426 + ] 5427 + }, 5428 + "https://anil.recoil.org/ideas/parallel-scheduling-with-effects": { 5429 + "id": "https://anil.recoil.org/ideas/parallel-scheduling-with-effects", 5430 + "title": "Using effect handlers for efficient parallel scheduling", 5431 + "link": "https://anil.recoil.org/ideas/parallel-scheduling-with-effects", 5432 + "feed_title": "Anil Madhavapeddy's feed", 5433 + "references": [], 5434 + "referenced_by": [] 5435 + }, 5436 + "https://anil.recoil.org/ideas/sns": { 5437 + "id": "https://anil.recoil.org/ideas/sns", 5438 + "title": "Spatial Name System", 5439 + "link": "https://anil.recoil.org/ideas/sns", 5440 + "feed_title": "Anil Madhavapeddy's feed", 5441 + "references": [ 5442 + { 5443 + "id": "https://anil.recoil.org/ideas/interspatial-networking", 5444 + "link": "https://anil.recoil.org/ideas/interspatial-networking", 5445 + "title": "Interspatial Networking with DNS", 5446 + "feed_title": "Anil Madhavapeddy's feed" 5447 + } 5448 + ], 5449 + "referenced_by": [] 5450 + }, 5451 + "https://anil.recoil.org/ideas/differentiable-abm": { 5452 + "id": "https://anil.recoil.org/ideas/differentiable-abm", 5453 + "title": "Scalable agent-based models for optimized policy design", 5454 + "link": "https://anil.recoil.org/ideas/differentiable-abm", 5455 + "feed_title": "Anil Madhavapeddy's feed", 5456 + "references": [ 5457 + { 5458 + "id": "https://anil.recoil.org/ideas/rev-abm", 5459 + "link": "https://anil.recoil.org/ideas/rev-abm", 5460 + "title": "Reverse emulating agent-based models for policy simulation", 5461 + "feed_title": "Anil Madhavapeddy's feed" 5462 + } 5463 + ], 5464 + "referenced_by": [ 5465 + { 5466 + "id": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 5467 + "link": "https://anil.recoil.org/notes/forest-apps-and-benchmarks", 5468 + "title": "A trio of papers I read on biodiversity and forests this week", 5469 + "feed_title": "Anil Madhavapeddy's feed" 5470 + }, 5471 + { 5472 + "id": "https://anil.recoil.org/ideas/rev-abm", 5473 + "link": "https://anil.recoil.org/ideas/rev-abm", 5474 + "title": "Reverse emulating agent-based models for policy simulation", 5475 + "feed_title": "Anil Madhavapeddy's feed" 5476 + } 5477 + ] 5478 + }, 5479 + "https://anil.recoil.org/projects/plancomp": { 5480 + "id": "https://anil.recoil.org/projects/plancomp", 5481 + "title": "Planetary Computing", 5482 + "link": "https://anil.recoil.org/projects/plancomp", 5483 + "feed_title": "Anil Madhavapeddy's feed", 5484 + "references": [ 5485 + { 5486 + "id": "https://anil.recoil.org/projects/rsn", 5487 + "link": "https://anil.recoil.org/projects/rsn", 5488 + "title": "Remote Sensing of Nature", 5489 + "feed_title": "Anil Madhavapeddy's feed" 5490 + } 5491 + ], 5492 + "referenced_by": [ 5493 + { 5494 + "id": "https://anil.recoil.org/notes/life-official-statistic", 5495 + "link": "https://anil.recoil.org/notes/life-official-statistic", 5496 + "title": "LIFE becomes an Official Statistic of the UK government", 5497 + "feed_title": "Anil Madhavapeddy's feed" 5498 + }, 5499 + { 5500 + "id": "https://anil.recoil.org/notes/uk-national-data-lib", 5501 + "link": "https://anil.recoil.org/notes/uk-national-data-lib", 5502 + "title": "Thoughts on the National Data Library and private research data", 5503 + "feed_title": "Anil Madhavapeddy's feed" 5504 + }, 5505 + { 5506 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 5507 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 5508 + "title": "Programming FPGAs using OCaml", 5509 + "feed_title": "Anil Madhavapeddy's feed" 5510 + }, 5511 + { 5512 + "id": "https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1", 5513 + "link": "https://anil.recoil.org/news/a0280750-2ef0-4f5c-b138-68f7b11b4c29-1", 5514 + "title": "Mapping greener futures with planetary computing", 5515 + "feed_title": "Anil Madhavapeddy's feed" 5516 + }, 5517 + { 5518 + "id": "https://anil.recoil.org/notes/rs-ecorisk-day1", 5519 + "link": "https://anil.recoil.org/notes/rs-ecorisk-day1", 5520 + "title": "Royal Society meeting on ecological/commercial risks", 5521 + "feed_title": "Anil Madhavapeddy's feed" 5522 + }, 5523 + { 5524 + "id": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 5525 + "link": "https://anil.recoil.org/notes/compass2024-ric-tripreport", 5526 + "title": "COMPASS 2024 report on the CoRE stack RIC meeting", 5527 + "feed_title": "Anil Madhavapeddy's feed" 5528 + }, 5529 + { 5530 + "id": "https://anil.recoil.org/projects/rsn", 5531 + "link": "https://anil.recoil.org/projects/rsn", 5532 + "title": "Remote Sensing of Nature", 5533 + "feed_title": "Anil Madhavapeddy's feed" 5534 + }, 5535 + { 5536 + "id": "https://anil.recoil.org/projects/difc-tee", 5537 + "link": "https://anil.recoil.org/projects/difc-tee", 5538 + "title": "Information Flow for Trusted Execution", 5539 + "feed_title": "Anil Madhavapeddy's feed" 5540 + } 5541 + ] 5542 + }, 5543 + "https://anil.recoil.org/news/2022-enhancing-brain-security-1": { 5544 + "id": "https://anil.recoil.org/news/2022-enhancing-brain-security-1", 5545 + "title": "Enhancing the Security & Privacy of Wearable Brain-Computer Interfaces", 5546 + "link": "https://anil.recoil.org/news/2022-enhancing-brain-security-1", 5547 + "feed_title": "Anil Madhavapeddy's feed", 5548 + "references": [], 5549 + "referenced_by": [] 5550 + }, 5551 + "https://anil.recoil.org/ideas/version-control-matrix": { 5552 + "id": "https://anil.recoil.org/ideas/version-control-matrix", 5553 + "title": "Decentralised Capability-based Code Collaboration using Matrix", 5554 + "link": "https://anil.recoil.org/ideas/version-control-matrix", 5555 + "feed_title": "Anil Madhavapeddy's feed", 5556 + "references": [], 5557 + "referenced_by": [ 5558 + { 5559 + "id": "https://anil.recoil.org/notes/disentangling-git-with-bluesky", 5560 + "link": "https://anil.recoil.org/notes/disentangling-git-with-bluesky", 5561 + "title": "Socially self-hosting source code with Tangled on Bluesky", 5562 + "feed_title": "Anil Madhavapeddy's feed" 5563 + }, 5564 + { 5565 + "id": "https://anil.recoil.org/notes/enter-the-matrix-hookshot", 5566 + "link": "https://anil.recoil.org/notes/enter-the-matrix-hookshot", 5567 + "title": "Entering the Matrix with Hookshot", 5568 + "feed_title": "Anil Madhavapeddy's feed" 5569 + } 5570 + ] 5571 + }, 5572 + "https://anil.recoil.org/notes/multicore-monthly-dec21": { 5573 + "id": "https://anil.recoil.org/notes/multicore-monthly-dec21", 5574 + "title": "OCaml Multicore Monthly: code review complete with Inria", 5575 + "link": "https://anil.recoil.org/notes/multicore-monthly-dec21", 5576 + "feed_title": "Anil Madhavapeddy's feed", 5577 + "references": [], 5578 + "referenced_by": [] 5579 + }, 5580 + "https://ancazugo.github.io/r/tidytuesday/sdg-hackathon": { 5581 + "id": "https://ancazugo.github.io/r/tidytuesday/sdg-hackathon", 5582 + "title": "2021 SDG Hackathon", 5583 + "link": "https://ancazugo.github.io/r/tidytuesday/sdg-hackathon.html", 5584 + "feed_title": "Andr\u00e9s Z\u00fa\u00f1iga-Gonz\u00e1lez\u2019s Blog", 5585 + "references": [], 5586 + "referenced_by": [] 5587 + }, 5588 + "https://anil.recoil.org/notes/4c-launch": { 5589 + "id": "https://anil.recoil.org/notes/4c-launch", 5590 + "title": "Launching the Cambridge Centre for Carbon Credits", 5591 + "link": "https://anil.recoil.org/notes/4c-launch", 5592 + "feed_title": "Anil Madhavapeddy's feed", 5593 + "references": [], 5594 + "referenced_by": [] 5595 + }, 5596 + "https://anil.recoil.org/notes/signals-and-threads": { 5597 + "id": "https://anil.recoil.org/notes/signals-and-threads", 5598 + "title": "What is an Operating System?", 5599 + "link": "https://anil.recoil.org/notes/signals-and-threads", 5600 + "feed_title": "Anil Madhavapeddy's feed", 5601 + "references": [], 5602 + "referenced_by": [] 5603 + }, 5604 + "https://mort.io/blog/setup-hotcrp/": { 5605 + "id": "https://mort.io/blog/setup-hotcrp/", 5606 + "title": "Hosting HotCRP", 5607 + "link": "https://mort.io/blog/setup-hotcrp/", 5608 + "feed_title": "mort\u2019s mythop\u0153ia", 5609 + "references": [], 5610 + "referenced_by": [] 5611 + }, 5612 + "https://ryan.freumh.org/ilnp-interface.html": { 5613 + "id": "https://ryan.freumh.org/ilnp-interface.html", 5614 + "title": "ILNP Interface", 5615 + "link": "https://ryan.freumh.org/ilnp-interface.html", 5616 + "feed_title": "ryan.freumh.org", 5617 + "references": [ 5618 + { 5619 + "id": "https://ryan.freumh.org/network-layer-mobility.html", 5620 + "link": "https://ryan.freumh.org/network-layer-mobility.html", 5621 + "title": "Network layer mobility", 5622 + "feed_title": "ryan.freumh.org" 5623 + } 5624 + ], 5625 + "referenced_by": [] 5626 + }, 5627 + "https://anil.recoil.org/notes/multicore-monthly-sep21": { 5628 + "id": "https://anil.recoil.org/notes/multicore-monthly-sep21", 5629 + "title": "OCaml Multicore Monthly: effect handling confirmed for 5.0", 5630 + "link": "https://anil.recoil.org/notes/multicore-monthly-sep21", 5631 + "feed_title": "Anil Madhavapeddy's feed", 5632 + "references": [], 5633 + "referenced_by": [] 5634 + }, 5635 + "https://anil.recoil.org/notes/forests": { 5636 + "id": "https://anil.recoil.org/notes/forests", 5637 + "title": "Forest preservation and restoration", 5638 + "link": "https://anil.recoil.org/notes/forests", 5639 + "feed_title": "Anil Madhavapeddy's feed", 5640 + "references": [], 5641 + "referenced_by": [] 5642 + }, 5643 + "https://anil.recoil.org/notes/decentralised-stack": { 5644 + "id": "https://anil.recoil.org/notes/decentralised-stack", 5645 + "title": "Decentralised tech on Recoil", 5646 + "link": "https://anil.recoil.org/notes/decentralised-stack", 5647 + "feed_title": "Anil Madhavapeddy's feed", 5648 + "references": [], 5649 + "referenced_by": [ 5650 + { 5651 + "id": "https://anil.recoil.org/notes/enter-the-matrix-hookshot", 5652 + "link": "https://anil.recoil.org/notes/enter-the-matrix-hookshot", 5653 + "title": "Entering the Matrix with Hookshot", 5654 + "feed_title": "Anil Madhavapeddy's feed" 5655 + } 5656 + ] 5657 + }, 5658 + "https://anil.recoil.org/notes/roadmap-ocamlorg-v3": { 5659 + "id": "https://anil.recoil.org/notes/roadmap-ocamlorg-v3", 5660 + "title": "Roadmap for OCaml's online presence", 5661 + "link": "https://anil.recoil.org/notes/roadmap-ocamlorg-v3", 5662 + "feed_title": "Anil Madhavapeddy's feed", 5663 + "references": [], 5664 + "referenced_by": [] 5665 + }, 5666 + "https://mort.io/blog/tar-includes/": { 5667 + "id": "https://mort.io/blog/tar-includes/", 5668 + "title": "Tarballing some files", 5669 + "link": "https://mort.io/blog/tar-includes/", 5670 + "feed_title": "mort\u2019s mythop\u0153ia", 5671 + "references": [], 5672 + "referenced_by": [] 5673 + }, 5674 + "https://anil.recoil.org/news/2021-arxiv-forestrycs-1": { 5675 + "id": "https://anil.recoil.org/news/2021-arxiv-forestrycs-1", 5676 + "title": "How Computer Science Can Aid Forest Restoration", 5677 + "link": "https://anil.recoil.org/news/2021-arxiv-forestrycs-1", 5678 + "feed_title": "Anil Madhavapeddy's feed", 5679 + "references": [], 5680 + "referenced_by": [] 5681 + }, 5682 + "https://anil.recoil.org/news/2021-oud-effects-1": { 5683 + "id": "https://anil.recoil.org/news/2021-oud-effects-1", 5684 + "title": "Experiences with Effects", 5685 + "link": "https://anil.recoil.org/news/2021-oud-effects-1", 5686 + "feed_title": "Anil Madhavapeddy's feed", 5687 + "references": [], 5688 + "referenced_by": [] 5689 + }, 5690 + "https://ryan.freumh.org/cubes.html": { 5691 + "id": "https://ryan.freumh.org/cubes.html", 5692 + "title": "Cubes", 5693 + "link": "https://ryan.freumh.org/cubes.html", 5694 + "feed_title": "ryan.freumh.org", 5695 + "references": [], 5696 + "referenced_by": [] 5697 + }, 5698 + "https://anil.recoil.org/news/2021-pldi-retroeff-1": { 5699 + "id": "https://anil.recoil.org/news/2021-pldi-retroeff-1", 5700 + "title": "Retrofitting effect handlers onto OCaml", 5701 + "link": "https://anil.recoil.org/news/2021-pldi-retroeff-1", 5702 + "feed_title": "Anil Madhavapeddy's feed", 5703 + "references": [], 5704 + "referenced_by": [] 5705 + }, 5706 + "https://ryan.freumh.org/network-layer-mobility.html": { 5707 + "id": "https://ryan.freumh.org/network-layer-mobility.html", 5708 + "title": "Network layer mobility", 5709 + "link": "https://ryan.freumh.org/network-layer-mobility.html", 5710 + "feed_title": "ryan.freumh.org", 5711 + "references": [], 5712 + "referenced_by": [ 5713 + { 5714 + "id": "https://ryan.freumh.org/ilnp-interface.html", 5715 + "link": "https://ryan.freumh.org/ilnp-interface.html", 5716 + "title": "ILNP Interface", 5717 + "feed_title": "ryan.freumh.org" 5718 + } 5719 + ] 5720 + }, 5721 + "https://www.dra27.uk/blog/platform/2021/05/09/ocaml-at-25": { 5722 + "id": "https://www.dra27.uk/blog/platform/2021/05/09/ocaml-at-25", 5723 + "title": "25 years of OCaml!", 5724 + "link": "https://www.dra27.uk/blog/platform/2021/05/09/ocaml-at-25.html", 5725 + "feed_title": "Notes from the Windows corner", 5726 + "references": [], 5727 + "referenced_by": [] 5728 + }, 5729 + "https://anil.recoil.org/ideas/void-processes": { 5730 + "id": "https://anil.recoil.org/ideas/void-processes", 5731 + "title": "Void Processes: Minimising privilege by default", 5732 + "link": "https://anil.recoil.org/ideas/void-processes", 5733 + "feed_title": "Anil Madhavapeddy's feed", 5734 + "references": [], 5735 + "referenced_by": [] 5736 + }, 5737 + "https://anil.recoil.org/ideas/brain-interface-security": { 5738 + "id": "https://anil.recoil.org/ideas/brain-interface-security", 5739 + "title": "Security analysis of brain-computing interfaces", 5740 + "link": "https://anil.recoil.org/ideas/brain-interface-security", 5741 + "feed_title": "Anil Madhavapeddy's feed", 5742 + "references": [], 5743 + "referenced_by": [] 5744 + }, 5745 + "https://anil.recoil.org/ideas/ocaml-forest-sim": { 5746 + "id": "https://anil.recoil.org/ideas/ocaml-forest-sim", 5747 + "title": "Exploring Concurrency in Agent-Based Modelling with Multicore OCaml", 5748 + "link": "https://anil.recoil.org/ideas/ocaml-forest-sim", 5749 + "feed_title": "Anil Madhavapeddy's feed", 5750 + "references": [], 5751 + "referenced_by": [] 5752 + }, 5753 + "https://anil.recoil.org/news/2020-asplas-banyan-1": { 5754 + "id": "https://anil.recoil.org/news/2020-asplas-banyan-1", 5755 + "title": "Banyan: Coordination-Free Distributed Transactions over Mergeable Types", 5756 + "link": "https://anil.recoil.org/news/2020-asplas-banyan-1", 5757 + "feed_title": "Anil Madhavapeddy's feed", 5758 + "references": [], 5759 + "referenced_by": [] 5760 + }, 5761 + "https://www.dra27.uk/blog/platform/2020/10/08/windows-memtrace": { 5762 + "id": "https://www.dra27.uk/blog/platform/2020/10/08/windows-memtrace", 5763 + "title": "Using memtrace on Windows", 5764 + "link": "https://www.dra27.uk/blog/platform/2020/10/08/windows-memtrace.html", 5765 + "feed_title": "Notes from the Windows corner", 5766 + "references": [], 5767 + "referenced_by": [] 5768 + }, 5769 + "https://mort.io/blog/dataviz/": { 5770 + "id": "https://mort.io/blog/dataviz/", 5771 + "title": "Data visualisation links", 5772 + "link": "https://mort.io/blog/dataviz/", 5773 + "feed_title": "mort\u2019s mythop\u0153ia", 5774 + "references": [], 5775 + "referenced_by": [] 5776 + }, 5777 + "https://anil.recoil.org/news/2020-oud-platform-1": { 5778 + "id": "https://anil.recoil.org/news/2020-oud-platform-1", 5779 + "title": "The OCaml Platform: 2020", 5780 + "link": "https://anil.recoil.org/news/2020-oud-platform-1", 5781 + "feed_title": "Anil Madhavapeddy's feed", 5782 + "references": [], 5783 + "referenced_by": [] 5784 + }, 5785 + "https://anil.recoil.org/news/b11188ba-0f97-4ec4-b372-fa3cea0821ab-1": { 5786 + "id": "https://anil.recoil.org/news/b11188ba-0f97-4ec4-b372-fa3cea0821ab-1", 5787 + "title": "State of the OCaml Platform 2020", 5788 + "link": "https://anil.recoil.org/news/b11188ba-0f97-4ec4-b372-fa3cea0821ab-1", 5789 + "feed_title": "Anil Madhavapeddy's feed", 5790 + "references": [], 5791 + "referenced_by": [] 5792 + }, 5793 + "https://mort.io/blog/mediapc/": { 5794 + "id": "https://mort.io/blog/mediapc/", 5795 + "title": "Renovating an old media PC", 5796 + "link": "https://mort.io/blog/mediapc/", 5797 + "feed_title": "mort\u2019s mythop\u0153ia", 5798 + "references": [], 5799 + "referenced_by": [] 5800 + }, 5801 + "https://anil.recoil.org/notes/multicore-monthly-sep20": { 5802 + "id": "https://anil.recoil.org/notes/multicore-monthly-sep20", 5803 + "title": "OCaml Multicore Monthly: systhreads compatibility merged", 5804 + "link": "https://anil.recoil.org/notes/multicore-monthly-sep20", 5805 + "feed_title": "Anil Madhavapeddy's feed", 5806 + "references": [], 5807 + "referenced_by": [] 5808 + }, 5809 + "https://anil.recoil.org/news/2020-icfp-retropar-1": { 5810 + "id": "https://anil.recoil.org/news/2020-icfp-retropar-1", 5811 + "title": "Retrofitting parallelism onto OCaml", 5812 + "link": "https://anil.recoil.org/news/2020-icfp-retropar-1", 5813 + "feed_title": "Anil Madhavapeddy's feed", 5814 + "references": [], 5815 + "referenced_by": [] 5816 + }, 5817 + "https://anil.recoil.org/news/2020-oud-parallelising-1": { 5818 + "id": "https://anil.recoil.org/news/2020-oud-parallelising-1", 5819 + "title": "Parallelising your OCaml Code with Multicore OCaml", 5820 + "link": "https://anil.recoil.org/news/2020-oud-parallelising-1", 5821 + "feed_title": "Anil Madhavapeddy's feed", 5822 + "references": [], 5823 + "referenced_by": [] 5824 + }, 5825 + "https://anil.recoil.org/news/2020-oud-ci-1": { 5826 + "id": "https://anil.recoil.org/news/2020-oud-ci-1", 5827 + "title": "OCaml-CI: A Zero-Configuration CI", 5828 + "link": "https://anil.recoil.org/news/2020-oud-ci-1", 5829 + "feed_title": "Anil Madhavapeddy's feed", 5830 + "references": [], 5831 + "referenced_by": [] 5832 + }, 5833 + "https://anil.recoil.org/ideas/sensor-fusion-vslam-forests": { 5834 + "id": "https://anil.recoil.org/ideas/sensor-fusion-vslam-forests", 5835 + "title": "Making GPS accurate in dense forests using sensor fusion", 5836 + "link": "https://anil.recoil.org/ideas/sensor-fusion-vslam-forests", 5837 + "feed_title": "Anil Madhavapeddy's feed", 5838 + "references": [], 5839 + "referenced_by": [] 5840 + }, 5841 + "https://mort.io/blog/discord/": { 5842 + "id": "https://mort.io/blog/discord/", 5843 + "title": "Discord discord", 5844 + "link": "https://mort.io/blog/discord/", 5845 + "feed_title": "mort\u2019s mythop\u0153ia", 5846 + "references": [], 5847 + "referenced_by": [] 5848 + }, 5849 + "https://anil.recoil.org/notes/multicore-monthly-apr20": { 5850 + "id": "https://anil.recoil.org/notes/multicore-monthly-apr20", 5851 + "title": "OCaml Multicore Monthly: preprint paper available", 5852 + "link": "https://anil.recoil.org/notes/multicore-monthly-apr20", 5853 + "feed_title": "Anil Madhavapeddy's feed", 5854 + "references": [], 5855 + "referenced_by": [] 5856 + }, 5857 + "https://anil.recoil.org/news/c09ed36f-6ad5-4254-a0ce-3ca3398f38a3-1": { 5858 + "id": "https://anil.recoil.org/news/c09ed36f-6ad5-4254-a0ce-3ca3398f38a3-1", 5859 + "title": "The First Billion Real Deployments of Unikernels", 5860 + "link": "https://anil.recoil.org/news/c09ed36f-6ad5-4254-a0ce-3ca3398f38a3-1", 5861 + "feed_title": "Anil Madhavapeddy's feed", 5862 + "references": [], 5863 + "referenced_by": [] 5864 + }, 5865 + "https://anil.recoil.org/news/d456e4bc-bce6-45ad-9d2e-102f834ec400-1": { 5866 + "id": "https://anil.recoil.org/news/d456e4bc-bce6-45ad-9d2e-102f834ec400-1", 5867 + "title": "Rebuilding Operating Systems with Functional Principles", 5868 + "link": "https://anil.recoil.org/news/d456e4bc-bce6-45ad-9d2e-102f834ec400-1", 5869 + "feed_title": "Anil Madhavapeddy's feed", 5870 + "references": [], 5871 + "referenced_by": [] 5872 + }, 5873 + "https://anil.recoil.org/news/287364fa-b59c-4b9f-812d-d81cc0c992a5-1": { 5874 + "id": "https://anil.recoil.org/news/287364fa-b59c-4b9f-812d-d81cc0c992a5-1", 5875 + "title": "Programming the Next Trillion Embedded Devices", 5876 + "link": "https://anil.recoil.org/news/287364fa-b59c-4b9f-812d-d81cc0c992a5-1", 5877 + "feed_title": "Anil Madhavapeddy's feed", 5878 + "references": [], 5879 + "referenced_by": [] 5880 + }, 5881 + "https://anil.recoil.org/notes/multicore-monthly-jan20": { 5882 + "id": "https://anil.recoil.org/notes/multicore-monthly-jan20", 5883 + "title": "OCaml Multicore Monthly: starting upstream to OCaml", 5884 + "link": "https://anil.recoil.org/notes/multicore-monthly-jan20", 5885 + "feed_title": "Anil Madhavapeddy's feed", 5886 + "references": [], 5887 + "referenced_by": [] 5888 + }, 5889 + "https://anil.recoil.org/projects/difc-tee": { 5890 + "id": "https://anil.recoil.org/projects/difc-tee", 5891 + "title": "Information Flow for Trusted Execution", 5892 + "link": "https://anil.recoil.org/projects/difc-tee", 5893 + "feed_title": "Anil Madhavapeddy's feed", 5894 + "references": [ 5895 + { 5896 + "id": "https://anil.recoil.org/ideas/dispersed-compartments", 5897 + "link": "https://anil.recoil.org/ideas/dispersed-compartments", 5898 + "title": "Secure Programming with Dispersed Compartments", 5899 + "feed_title": "Anil Madhavapeddy's feed" 5900 + }, 5901 + { 5902 + "id": "https://anil.recoil.org/projects/plancomp", 5903 + "link": "https://anil.recoil.org/projects/plancomp", 5904 + "title": "Planetary Computing", 5905 + "feed_title": "Anil Madhavapeddy's feed" 5906 + } 5907 + ], 5908 + "referenced_by": [] 5909 + }, 5910 + "https://mort.io/blog/setup-new-laptop/": { 5911 + "id": "https://mort.io/blog/setup-new-laptop/", 5912 + "title": "Setting up a Macbook", 5913 + "link": "https://mort.io/blog/setup-new-laptop/", 5914 + "feed_title": "mort\u2019s mythop\u0153ia", 5915 + "references": [], 5916 + "referenced_by": [] 5917 + }, 5918 + "https://anil.recoil.org/notes/openbsd-hosting": { 5919 + "id": "https://anil.recoil.org/notes/openbsd-hosting", 5920 + "title": "OpenBSD cloud hosting options", 5921 + "link": "https://anil.recoil.org/notes/openbsd-hosting", 5922 + "feed_title": "Anil Madhavapeddy's feed", 5923 + "references": [], 5924 + "referenced_by": [] 5925 + }, 5926 + "https://anil.recoil.org/news/2019-ocaml-platform-1": { 5927 + "id": "https://anil.recoil.org/news/2019-ocaml-platform-1", 5928 + "title": "The OCaml Platform in 2019", 5929 + "link": "https://anil.recoil.org/news/2019-ocaml-platform-1", 5930 + "feed_title": "Anil Madhavapeddy's feed", 5931 + "references": [], 5932 + "referenced_by": [] 5933 + }, 5934 + "https://anil.recoil.org/news/2019-mirage-build-1": { 5935 + "id": "https://anil.recoil.org/news/2019-mirage-build-1", 5936 + "title": "MirageOS 4: the dawn of practical build systems for exotic targets", 5937 + "link": "https://anil.recoil.org/news/2019-mirage-build-1", 5938 + "feed_title": "Anil Madhavapeddy's feed", 5939 + "references": [], 5940 + "referenced_by": [] 5941 + }, 5942 + "https://anil.recoil.org/news/2019-mirage-functors-1": { 5943 + "id": "https://anil.recoil.org/news/2019-mirage-functors-1", 5944 + "title": "Programming Unikernels in the Large via Functor Driven Development", 5945 + "link": "https://anil.recoil.org/news/2019-mirage-functors-1", 5946 + "feed_title": "Anil Madhavapeddy's feed", 5947 + "references": [], 5948 + "referenced_by": [] 5949 + }, 5950 + "https://anil.recoil.org/news/2019-edgesys-snape-1": { 5951 + "id": "https://anil.recoil.org/news/2019-edgesys-snape-1", 5952 + "title": "Snape: The Dark Art of Handling Heterogeneous Enclaves", 5953 + "link": "https://anil.recoil.org/news/2019-edgesys-snape-1", 5954 + "feed_title": "Anil Madhavapeddy's feed", 5955 + "references": [], 5956 + "referenced_by": [] 5957 + }, 5958 + "https://mort.io/blog/falsehoods/": { 5959 + "id": "https://mort.io/blog/falsehoods/", 5960 + "title": "Falsehoods", 5961 + "link": "https://mort.io/blog/falsehoods/", 5962 + "feed_title": "mort\u2019s mythop\u0153ia", 5963 + "references": [], 5964 + "referenced_by": [] 5965 + }, 5966 + "https://anil.recoil.org/ideas/distributed-tasks-irmin": { 5967 + "id": "https://anil.recoil.org/ideas/distributed-tasks-irmin", 5968 + "title": "Distributed Task Scheduling Framework over Irmin", 5969 + "link": "https://anil.recoil.org/ideas/distributed-tasks-irmin", 5970 + "feed_title": "Anil Madhavapeddy's feed", 5971 + "references": [], 5972 + "referenced_by": [] 5973 + }, 5974 + "https://anil.recoil.org/ideas/git-maildir": { 5975 + "id": "https://anil.recoil.org/ideas/git-maildir", 5976 + "title": "A strongly consistent index for email using git and MirageOS", 5977 + "link": "https://anil.recoil.org/ideas/git-maildir", 5978 + "feed_title": "Anil Madhavapeddy's feed", 5979 + "references": [], 5980 + "referenced_by": [] 5981 + }, 5982 + "https://mort.io/blog/wipeout/": { 5983 + "id": "https://mort.io/blog/wipeout/", 5984 + "title": "Wipeout", 5985 + "link": "https://mort.io/blog/wipeout/", 5986 + "feed_title": "mort\u2019s mythop\u0153ia", 5987 + "references": [], 5988 + "referenced_by": [] 5989 + }, 5990 + "https://anil.recoil.org/videos/13cf3878-7436-4512-844e-f72f36425bc7": { 5991 + "id": "https://anil.recoil.org/videos/13cf3878-7436-4512-844e-f72f36425bc7", 5992 + "title": "The OCaml Platform 1.0 with Reason ML", 5993 + "link": "https://crank.recoil.org/videos/watch/13cf3878-7436-4512-844e-f72f36425bc7", 5994 + "feed_title": "Anil Madhavapeddy's feed", 5995 + "references": [], 5996 + "referenced_by": [] 5997 + }, 5998 + "https://anil.recoil.org/notes/ocaml-opam-new-layout": { 5999 + "id": "https://anil.recoil.org/notes/ocaml-opam-new-layout", 6000 + "title": "New opam repository layout for large libraries", 6001 + "link": "https://anil.recoil.org/notes/ocaml-opam-new-layout", 6002 + "feed_title": "Anil Madhavapeddy's feed", 6003 + "references": [], 6004 + "referenced_by": [] 6005 + }, 6006 + "https://anil.recoil.org/news/2018-socp-modular-ffi-1": { 6007 + "id": "https://anil.recoil.org/news/2018-socp-modular-ffi-1", 6008 + "title": "A modular foreign function interface", 6009 + "link": "https://anil.recoil.org/news/2018-socp-modular-ffi-1", 6010 + "feed_title": "Anil Madhavapeddy's feed", 6011 + "references": [], 6012 + "referenced_by": [] 6013 + }, 6014 + "https://anil.recoil.org/notes/focs": { 6015 + "id": "https://anil.recoil.org/notes/focs", 6016 + "title": "Foundations of Computer Science", 6017 + "link": "https://anil.recoil.org/notes/focs", 6018 + "feed_title": "Anil Madhavapeddy's feed", 6019 + "references": [], 6020 + "referenced_by": [ 6021 + { 6022 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 6023 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 6024 + "title": "Programming FPGAs using OCaml", 6025 + "feed_title": "Anil Madhavapeddy's feed" 6026 + } 6027 + ] 6028 + }, 6029 + "https://www.dra27.uk/blog/platform/2018/08/15/dune-vendoring": { 6030 + "id": "https://www.dra27.uk/blog/platform/2018/08/15/dune-vendoring", 6031 + "title": "The joys of Dune vendoring", 6032 + "link": "https://www.dra27.uk/blog/platform/2018/08/15/dune-vendoring.html", 6033 + "feed_title": "Notes from the Windows corner", 6034 + "references": [], 6035 + "referenced_by": [] 6036 + }, 6037 + "https://anil.recoil.org/news/2018-pldi-memorymodel-1": { 6038 + "id": "https://anil.recoil.org/news/2018-pldi-memorymodel-1", 6039 + "title": "Bounding data races in space and time", 6040 + "link": "https://anil.recoil.org/news/2018-pldi-memorymodel-1", 6041 + "feed_title": "Anil Madhavapeddy's feed", 6042 + "references": [], 6043 + "referenced_by": [] 6044 + }, 6045 + "https://www.dra27.uk/blog/platform/2018/05/04/opam-camlp5-system": { 6046 + "id": "https://www.dra27.uk/blog/platform/2018/05/04/opam-camlp5-system", 6047 + "title": "Urgent problem with camlp5 7.03 and macOS OCaml 4.06.1", 6048 + "link": "https://www.dra27.uk/blog/platform/2018/05/04/opam-camlp5-system.html", 6049 + "feed_title": "Notes from the Windows corner", 6050 + "references": [], 6051 + "referenced_by": [] 6052 + }, 6053 + "https://anil.recoil.org/news/2017-tfp-effecthandlers-1": { 6054 + "id": "https://anil.recoil.org/news/2017-tfp-effecthandlers-1", 6055 + "title": "Concurrent System Programming with Effect Handlers", 6056 + "link": "https://anil.recoil.org/news/2017-tfp-effecthandlers-1", 6057 + "feed_title": "Anil Madhavapeddy's feed", 6058 + "references": [], 6059 + "referenced_by": [] 6060 + }, 6061 + "https://anil.recoil.org/news/2018-hotpost-osmose-1": { 6062 + "id": "https://anil.recoil.org/news/2018-hotpost-osmose-1", 6063 + "title": "An architecture for interspatial communication", 6064 + "link": "https://anil.recoil.org/news/2018-hotpost-osmose-1", 6065 + "feed_title": "Anil Madhavapeddy's feed", 6066 + "references": [], 6067 + "referenced_by": [] 6068 + }, 6069 + "https://anil.recoil.org/notes/founded-tarides": { 6070 + "id": "https://anil.recoil.org/notes/founded-tarides", 6071 + "title": "Founded Tarides and looking to hire OCaml hackers", 6072 + "link": "https://anil.recoil.org/notes/founded-tarides", 6073 + "feed_title": "Anil Madhavapeddy's feed", 6074 + "references": [], 6075 + "referenced_by": [] 6076 + }, 6077 + "https://www.dra27.uk/blog/platform/2018/01/31/num-system": { 6078 + "id": "https://www.dra27.uk/blog/platform/2018/01/31/num-system", 6079 + "title": "A pain in the num", 6080 + "link": "https://www.dra27.uk/blog/platform/2018/01/31/num-system.html", 6081 + "feed_title": "Notes from the Windows corner", 6082 + "references": [], 6083 + "referenced_by": [] 6084 + }, 6085 + "https://anil.recoil.org/ideas/prob-programming-owl": { 6086 + "id": "https://anil.recoil.org/ideas/prob-programming-owl", 6087 + "title": "Probabilistic Programming in OCaml", 6088 + "link": "https://anil.recoil.org/ideas/prob-programming-owl", 6089 + "feed_title": "Anil Madhavapeddy's feed", 6090 + "references": [], 6091 + "referenced_by": [] 6092 + }, 6093 + "https://anil.recoil.org/projects/osmose": { 6094 + "id": "https://anil.recoil.org/projects/osmose", 6095 + "title": "Interspatial OS", 6096 + "link": "https://anil.recoil.org/projects/osmose", 6097 + "feed_title": "Anil Madhavapeddy's feed", 6098 + "references": [ 6099 + { 6100 + "id": "https://anil.recoil.org/projects/unikernels", 6101 + "link": "https://anil.recoil.org/projects/unikernels", 6102 + "title": "Unikernels", 6103 + "feed_title": "Anil Madhavapeddy's feed" 6104 + }, 6105 + { 6106 + "id": "https://anil.recoil.org/projects/perscon", 6107 + "link": "https://anil.recoil.org/projects/perscon", 6108 + "title": "Personal Containers", 6109 + "feed_title": "Anil Madhavapeddy's feed" 6110 + } 6111 + ], 6112 + "referenced_by": [ 6113 + { 6114 + "id": "https://anil.recoil.org/news/2025-npu-bench-1", 6115 + "link": "https://anil.recoil.org/news/2025-npu-bench-1", 6116 + "title": "New preprint on benchmarking ultra-low power neural accelerators", 6117 + "feed_title": "Anil Madhavapeddy's feed" 6118 + }, 6119 + { 6120 + "id": "https://anil.recoil.org/projects/unikernels", 6121 + "link": "https://anil.recoil.org/projects/unikernels", 6122 + "title": "Unikernels", 6123 + "feed_title": "Anil Madhavapeddy's feed" 6124 + }, 6125 + { 6126 + "id": "https://anil.recoil.org/projects/perscon", 6127 + "link": "https://anil.recoil.org/projects/perscon", 6128 + "title": "Personal Containers", 6129 + "feed_title": "Anil Madhavapeddy's feed" 6130 + }, 6131 + { 6132 + "id": "https://anil.recoil.org/projects/ubiqinteraction", 6133 + "link": "https://anil.recoil.org/projects/ubiqinteraction", 6134 + "title": "Ubiquitous Interaction Devices", 6135 + "feed_title": "Anil Madhavapeddy's feed" 6136 + }, 6137 + { 6138 + "id": "https://anil.recoil.org/projects/xen", 6139 + "link": "https://anil.recoil.org/projects/xen", 6140 + "title": "Xen Hypervisor", 6141 + "feed_title": "Anil Madhavapeddy's feed" 6142 + } 6143 + ] 6144 + }, 6145 + "https://anil.recoil.org/ideas/causal-rpc": { 6146 + "id": "https://anil.recoil.org/ideas/causal-rpc", 6147 + "title": "CausalRPC: a traceable distributed computation framework", 6148 + "link": "https://anil.recoil.org/ideas/causal-rpc", 6149 + "feed_title": "Anil Madhavapeddy's feed", 6150 + "references": [], 6151 + "referenced_by": [] 6152 + }, 6153 + "https://mort.io/blog/back-to-the-future/": { 6154 + "id": "https://mort.io/blog/back-to-the-future/", 6155 + "title": "Back to the Future", 6156 + "link": "https://mort.io/blog/back-to-the-future/", 6157 + "feed_title": "mort\u2019s mythop\u0153ia", 6158 + "references": [], 6159 + "referenced_by": [] 6160 + }, 6161 + "https://mort.io/blog/quelle-dommage/": { 6162 + "id": "https://mort.io/blog/quelle-dommage/", 6163 + "title": "Quelle dommage", 6164 + "link": "https://mort.io/blog/quelle-dommage/", 6165 + "feed_title": "mort\u2019s mythop\u0153ia", 6166 + "references": [], 6167 + "referenced_by": [] 6168 + }, 6169 + "https://mort.io/blog/mess-with-my-keyboard/": { 6170 + "id": "https://mort.io/blog/mess-with-my-keyboard/", 6171 + "title": "Spring Loading Karabiner in the Autumn", 6172 + "link": "https://mort.io/blog/mess-with-my-keyboard/", 6173 + "feed_title": "mort\u2019s mythop\u0153ia", 6174 + "references": [], 6175 + "referenced_by": [] 6176 + }, 6177 + "https://www.dra27.uk/blog/platform/2017/10/30/ocaml-unicode": { 6178 + "id": "https://www.dra27.uk/blog/platform/2017/10/30/ocaml-unicode", 6179 + "title": "A bug-fix 12 years in the making", 6180 + "link": "https://www.dra27.uk/blog/platform/2017/10/30/ocaml-unicode.html", 6181 + "feed_title": "Notes from the Windows corner", 6182 + "references": [], 6183 + "referenced_by": [] 6184 + }, 6185 + "https://www.dra27.uk/blog/platform/2017/09/27/ocaml-github-ci": { 6186 + "id": "https://www.dra27.uk/blog/platform/2017/09/27/ocaml-github-ci", 6187 + "title": "Setting up OCaml\u2019s GitHub CI for user forks", 6188 + "link": "https://www.dra27.uk/blog/platform/2017/09/27/ocaml-github-ci.html", 6189 + "feed_title": "Notes from the Windows corner", 6190 + "references": [], 6191 + "referenced_by": [] 6192 + }, 6193 + "https://anil.recoil.org/news/2f824dde-e112-4f4f-890d-1825572ea1c4-1": { 6194 + "id": "https://anil.recoil.org/news/2f824dde-e112-4f4f-890d-1825572ea1c4-1", 6195 + "title": "State of the OCaml Platform", 6196 + "link": "https://anil.recoil.org/news/2f824dde-e112-4f4f-890d-1825572ea1c4-1", 6197 + "feed_title": "Anil Madhavapeddy's feed", 6198 + "references": [], 6199 + "referenced_by": [] 6200 + }, 6201 + "https://www.dra27.uk/blog/platform/2017/09/06/windows-console-fun": { 6202 + "id": "https://www.dra27.uk/blog/platform/2017/09/06/windows-console-fun", 6203 + "title": "Windows Console Performance (or lack thereof)", 6204 + "link": "https://www.dra27.uk/blog/platform/2017/09/06/windows-console-fun.html", 6205 + "feed_title": "Notes from the Windows corner", 6206 + "references": [], 6207 + "referenced_by": [] 6208 + }, 6209 + "https://anil.recoil.org/news/2017-oud-platform-1": { 6210 + "id": "https://anil.recoil.org/news/2017-oud-platform-1", 6211 + "title": "The State of the OCaml Platform: Sep 2017", 6212 + "link": "https://anil.recoil.org/news/2017-oud-platform-1", 6213 + "feed_title": "Anil Madhavapeddy's feed", 6214 + "references": [], 6215 + "referenced_by": [] 6216 + }, 6217 + "https://anil.recoil.org/news/2017-ml-effects-1": { 6218 + "id": "https://anil.recoil.org/news/2017-ml-effects-1", 6219 + "title": "Effectively tackling the awkward squad", 6220 + "link": "https://anil.recoil.org/news/2017-ml-effects-1", 6221 + "feed_title": "Anil Madhavapeddy's feed", 6222 + "references": [], 6223 + "referenced_by": [] 6224 + }, 6225 + "https://mort.io/blog/topkg-addendum/": { 6226 + "id": "https://mort.io/blog/topkg-addendum/", 6227 + "title": "Platforms, Packaging, Progress\u2014 Addendum", 6228 + "link": "https://mort.io/blog/topkg-addendum/", 6229 + "feed_title": "mort\u2019s mythop\u0153ia", 6230 + "references": [], 6231 + "referenced_by": [] 6232 + }, 6233 + "https://mort.io/blog/past-present-future/": { 6234 + "id": "https://mort.io/blog/past-present-future/", 6235 + "title": "Platforms, Packaging, Progress", 6236 + "link": "https://mort.io/blog/past-present-future/", 6237 + "feed_title": "mort\u2019s mythop\u0153ia", 6238 + "references": [], 6239 + "referenced_by": [] 6240 + }, 6241 + "https://mort.io/blog/arming-linuxkit/": { 6242 + "id": "https://mort.io/blog/arming-linuxkit/", 6243 + "title": "ARMing LinuxKit", 6244 + "link": "https://mort.io/blog/arming-linuxkit/", 6245 + "feed_title": "mort\u2019s mythop\u0153ia", 6246 + "references": [], 6247 + "referenced_by": [] 6248 + }, 6249 + "https://anil.recoil.org/notes/opening-discuss-ocaml": { 6250 + "id": "https://anil.recoil.org/notes/opening-discuss-ocaml", 6251 + "title": "Opening discuss.ocaml.org for the community", 6252 + "link": "https://anil.recoil.org/notes/opening-discuss-ocaml", 6253 + "feed_title": "Anil Madhavapeddy's feed", 6254 + "references": [], 6255 + "referenced_by": [] 6256 + }, 6257 + "https://mort.io/blog/docker-docker/": { 6258 + "id": "https://mort.io/blog/docker-docker/", 6259 + "title": "Docker Docker", 6260 + "link": "https://mort.io/blog/docker-docker/", 6261 + "feed_title": "mort\u2019s mythop\u0153ia", 6262 + "references": [], 6263 + "referenced_by": [] 6264 + }, 6265 + "https://anil.recoil.org/news/2017-snapl-dali-1": { 6266 + "id": "https://anil.recoil.org/news/2017-snapl-dali-1", 6267 + "title": "DaLi: Database as a Library", 6268 + "link": "https://anil.recoil.org/news/2017-snapl-dali-1", 6269 + "feed_title": "Anil Madhavapeddy's feed", 6270 + "references": [], 6271 + "referenced_by": [] 6272 + }, 6273 + "https://mort.io/blog/lab-gitlab/": { 6274 + "id": "https://mort.io/blog/lab-gitlab/", 6275 + "title": "Lab GitLab", 6276 + "link": "https://mort.io/blog/lab-gitlab/", 6277 + "feed_title": "mort\u2019s mythop\u0153ia", 6278 + "references": [], 6279 + "referenced_by": [] 6280 + }, 6281 + "https://mort.io/blog/google-screening/": { 6282 + "id": "https://mort.io/blog/google-screening/", 6283 + "title": "Google screening", 6284 + "link": "https://mort.io/blog/google-screening/", 6285 + "feed_title": "mort\u2019s mythop\u0153ia", 6286 + "references": [], 6287 + "referenced_by": [] 6288 + }, 6289 + "https://mort.io/blog/brew-plist/": { 6290 + "id": "https://mort.io/blog/brew-plist/", 6291 + "title": "Customising Homebrew service", 6292 + "link": "https://mort.io/blog/brew-plist/", 6293 + "feed_title": "mort\u2019s mythop\u0153ia", 6294 + "references": [], 6295 + "referenced_by": [] 6296 + }, 6297 + "https://mort.io/blog/building-up-your-arms/": { 6298 + "id": "https://mort.io/blog/building-up-your-arms/", 6299 + "title": "Building Up Your ARMs", 6300 + "link": "https://mort.io/blog/building-up-your-arms/", 6301 + "feed_title": "mort\u2019s mythop\u0153ia", 6302 + "references": [], 6303 + "referenced_by": [] 6304 + }, 6305 + "https://mort.io/blog/jquery-console/": { 6306 + "id": "https://mort.io/blog/jquery-console/", 6307 + "title": "Debugging with jQuery", 6308 + "link": "https://mort.io/blog/jquery-console/", 6309 + "feed_title": "mort\u2019s mythop\u0153ia", 6310 + "references": [], 6311 + "referenced_by": [] 6312 + }, 6313 + "https://mort.io/blog/zen-and-the-art-of-research-management/": { 6314 + "id": "https://mort.io/blog/zen-and-the-art-of-research-management/", 6315 + "title": "Zen and the Art of Research Management", 6316 + "link": "https://mort.io/blog/zen-and-the-art-of-research-management/", 6317 + "feed_title": "mort\u2019s mythop\u0153ia", 6318 + "references": [], 6319 + "referenced_by": [] 6320 + }, 6321 + "https://mort.io/blog/unikernel-revolution/": { 6322 + "id": "https://mort.io/blog/unikernel-revolution/", 6323 + "title": "Evolving the Unikernel Revolution", 6324 + "link": "https://mort.io/blog/unikernel-revolution/", 6325 + "feed_title": "mort\u2019s mythop\u0153ia", 6326 + "references": [], 6327 + "referenced_by": [] 6328 + }, 6329 + "https://mort.io/blog/jetlag-fasting/": { 6330 + "id": "https://mort.io/blog/jetlag-fasting/", 6331 + "title": "Rat Racing Jetlag", 6332 + "link": "https://mort.io/blog/jetlag-fasting/", 6333 + "feed_title": "mort\u2019s mythop\u0153ia", 6334 + "references": [], 6335 + "referenced_by": [] 6336 + }, 6337 + "https://anil.recoil.org/news/725dda70-b12b-4b1a-a8ae-fa9c22683ff2-1": { 6338 + "id": "https://anil.recoil.org/news/725dda70-b12b-4b1a-a8ae-fa9c22683ff2-1", 6339 + "title": "Unikernels: the rise of the library hypervisor in MirageOS", 6340 + "link": "https://anil.recoil.org/news/725dda70-b12b-4b1a-a8ae-fa9c22683ff2-1", 6341 + "feed_title": "Anil Madhavapeddy's feed", 6342 + "references": [], 6343 + "referenced_by": [] 6344 + }, 6345 + "https://mort.io/blog/grubbing-around/": { 6346 + "id": "https://mort.io/blog/grubbing-around/", 6347 + "title": "Grubbing Around", 6348 + "link": "https://mort.io/blog/grubbing-around/", 6349 + "feed_title": "mort\u2019s mythop\u0153ia", 6350 + "references": [], 6351 + "referenced_by": [] 6352 + }, 6353 + "https://anil.recoil.org/notes/mirageos-hack-retreat-2016": { 6354 + "id": "https://anil.recoil.org/notes/mirageos-hack-retreat-2016", 6355 + "title": "MirageOS Summer 2016 hack retreat", 6356 + "link": "https://mirage.io/blog/2016-summer-hackathon", 6357 + "feed_title": "Anil Madhavapeddy's feed", 6358 + "references": [], 6359 + "referenced_by": [] 6360 + }, 6361 + "https://anil.recoil.org/news/dbd7546a-95d8-40af-b286-3cf930767682-1": { 6362 + "id": "https://anil.recoil.org/news/dbd7546a-95d8-40af-b286-3cf930767682-1", 6363 + "title": "The functional innards of Docker for Mac and Windows", 6364 + "link": "https://anil.recoil.org/news/dbd7546a-95d8-40af-b286-3cf930767682-1", 6365 + "feed_title": "Anil Madhavapeddy's feed", 6366 + "references": [], 6367 + "referenced_by": [] 6368 + }, 6369 + "https://anil.recoil.org/news/8c92d6cf-3e05-429f-8c8e-094f77be61c6-1": { 6370 + "id": "https://anil.recoil.org/news/8c92d6cf-3e05-429f-8c8e-094f77be61c6-1", 6371 + "title": "Ian Eyberg, Joshua Bernstein, Anil Madhavapeddy at OSCON in Austin", 6372 + "link": "https://anil.recoil.org/news/8c92d6cf-3e05-429f-8c8e-094f77be61c6-1", 6373 + "feed_title": "Anil Madhavapeddy's feed", 6374 + "references": [], 6375 + "referenced_by": [] 6376 + }, 6377 + "https://anil.recoil.org/news/2016-usenix-flick-1": { 6378 + "id": "https://anil.recoil.org/news/2016-usenix-flick-1", 6379 + "title": "FLICK: Developing and Running Application-Specific Network Services", 6380 + "link": "https://anil.recoil.org/news/2016-usenix-flick-1", 6381 + "feed_title": "Anil Madhavapeddy's feed", 6382 + "references": [], 6383 + "referenced_by": [] 6384 + }, 6385 + "https://anil.recoil.org/notes/vpnkit-hyperkit": { 6386 + "id": "https://anil.recoil.org/notes/vpnkit-hyperkit", 6387 + "title": "Improving Docker with Unikernels", 6388 + "link": "https://anil.recoil.org/notes/vpnkit-hyperkit", 6389 + "feed_title": "Anil Madhavapeddy's feed", 6390 + "references": [], 6391 + "referenced_by": [] 6392 + }, 6393 + "https://mort.io/blog/local-knowledge/": { 6394 + "id": "https://mort.io/blog/local-knowledge/", 6395 + "title": "Local Knowledge", 6396 + "link": "https://mort.io/blog/local-knowledge/", 6397 + "feed_title": "mort\u2019s mythop\u0153ia", 6398 + "references": [], 6399 + "referenced_by": [] 6400 + }, 6401 + "https://anil.recoil.org/news/2016-flops-cmeleon-1": { 6402 + "id": "https://anil.recoil.org/news/2016-flops-cmeleon-1", 6403 + "title": "Declarative Foreign Function Binding Through Generic Programming", 6404 + "link": "https://anil.recoil.org/news/2016-flops-cmeleon-1", 6405 + "feed_title": "Anil Madhavapeddy's feed", 6406 + "references": [], 6407 + "referenced_by": [] 6408 + }, 6409 + "https://anil.recoil.org/news/a612e810-d56c-48af-b43e-2893a96b9120-1": { 6410 + "id": "https://anil.recoil.org/news/a612e810-d56c-48af-b43e-2893a96b9120-1", 6411 + "title": "Unikernel Systems is now part of Docker", 6412 + "link": "https://anil.recoil.org/news/a612e810-d56c-48af-b43e-2893a96b9120-1", 6413 + "feed_title": "Anil Madhavapeddy's feed", 6414 + "references": [], 6415 + "referenced_by": [] 6416 + }, 6417 + "https://anil.recoil.org/notes/docker-buys-unikernel-systems": { 6418 + "id": "https://anil.recoil.org/notes/docker-buys-unikernel-systems", 6419 + "title": "Unikernel Systems acquired by Docker", 6420 + "link": "https://anil.recoil.org/notes/docker-buys-unikernel-systems", 6421 + "feed_title": "Anil Madhavapeddy's feed", 6422 + "references": [ 6423 + { 6424 + "id": "https://anil.recoil.org/projects/unikernels", 6425 + "link": "https://anil.recoil.org/projects/unikernels", 6426 + "title": "Unikernels", 6427 + "feed_title": "Anil Madhavapeddy's feed" 6428 + } 6429 + ], 6430 + "referenced_by": [] 6431 + }, 6432 + "https://mort.io/blog/elcapitan-maps/": { 6433 + "id": "https://mort.io/blog/elcapitan-maps/", 6434 + "title": "Of Mice and Keyboards", 6435 + "link": "https://mort.io/blog/elcapitan-maps/", 6436 + "feed_title": "mort\u2019s mythop\u0153ia", 6437 + "references": [], 6438 + "referenced_by": [] 6439 + }, 6440 + "https://anil.recoil.org/news/2015-sosp-sibylfs-1": { 6441 + "id": "https://anil.recoil.org/news/2015-sosp-sibylfs-1", 6442 + "title": "SibylFS: formal specification and oracle-based testing for POSIX and real-world file systems", 6443 + "link": "https://anil.recoil.org/news/2015-sosp-sibylfs-1", 6444 + "feed_title": "Anil Madhavapeddy's feed", 6445 + "references": [], 6446 + "referenced_by": [] 6447 + }, 6448 + "https://anil.recoil.org/news/2015-aarhus-databox-1": { 6449 + "id": "https://anil.recoil.org/news/2015-aarhus-databox-1", 6450 + "title": "Personal Data: Thinking Inside the Box", 6451 + "link": "https://anil.recoil.org/news/2015-aarhus-databox-1", 6452 + "feed_title": "Anil Madhavapeddy's feed", 6453 + "references": [], 6454 + "referenced_by": [] 6455 + }, 6456 + "https://anil.recoil.org/news/d5fbd6a4-bef2-4fbc-9d02-cb9935e50d8e-1": { 6457 + "id": "https://anil.recoil.org/news/d5fbd6a4-bef2-4fbc-9d02-cb9935e50d8e-1", 6458 + "title": "Immutable Distributed Infrastructure with Unikernels", 6459 + "link": "https://anil.recoil.org/news/d5fbd6a4-bef2-4fbc-9d02-cb9935e50d8e-1", 6460 + "feed_title": "Anil Madhavapeddy's feed", 6461 + "references": [], 6462 + "referenced_by": [] 6463 + }, 6464 + "https://anil.recoil.org/news/35e1a70d-0fb4-49b1-86ce-dd6266b812de-1": { 6465 + "id": "https://anil.recoil.org/news/35e1a70d-0fb4-49b1-86ce-dd6266b812de-1", 6466 + "title": "The State of the OCaml Platform", 6467 + "link": "https://anil.recoil.org/news/35e1a70d-0fb4-49b1-86ce-dd6266b812de-1", 6468 + "feed_title": "Anil Madhavapeddy's feed", 6469 + "references": [], 6470 + "referenced_by": [] 6471 + }, 6472 + "https://anil.recoil.org/news/2015-usenixsec-nqsb-1": { 6473 + "id": "https://anil.recoil.org/news/2015-usenixsec-nqsb-1", 6474 + "title": "Not-Quite-So-Broken TLS", 6475 + "link": "https://anil.recoil.org/news/2015-usenixsec-nqsb-1", 6476 + "feed_title": "Anil Madhavapeddy's feed", 6477 + "references": [], 6478 + "referenced_by": [] 6479 + }, 6480 + "https://mort.io/blog/bigtechday-mirage/": { 6481 + "id": "https://mort.io/blog/bigtechday-mirage/", 6482 + "title": "Fame and Fortune!", 6483 + "link": "https://mort.io/blog/bigtechday-mirage/", 6484 + "feed_title": "mort\u2019s mythop\u0153ia", 6485 + "references": [], 6486 + "referenced_by": [] 6487 + }, 6488 + "https://mort.io/blog/ecscw-and-aarhus/": { 6489 + "id": "https://mort.io/blog/ecscw-and-aarhus/", 6490 + "title": "Actual HCI Papers!", 6491 + "link": "https://mort.io/blog/ecscw-and-aarhus/", 6492 + "feed_title": "mort\u2019s mythop\u0153ia", 6493 + "references": [], 6494 + "referenced_by": [] 6495 + }, 6496 + "https://mort.io/blog/nexus-4-rescue/": { 6497 + "id": "https://mort.io/blog/nexus-4-rescue/", 6498 + "title": "Rescuing a Shattered Nexus 4", 6499 + "link": "https://mort.io/blog/nexus-4-rescue/", 6500 + "feed_title": "mort\u2019s mythop\u0153ia", 6501 + "references": [], 6502 + "referenced_by": [] 6503 + }, 6504 + "https://mort.io/blog/moving-onto-mirage/": { 6505 + "id": "https://mort.io/blog/moving-onto-mirage/", 6506 + "title": "Moving Onto Mirage", 6507 + "link": "https://mort.io/blog/moving-onto-mirage/", 6508 + "feed_title": "mort\u2019s mythop\u0153ia", 6509 + "references": [], 6510 + "referenced_by": [] 6511 + }, 6512 + "https://anil.recoil.org/news/55852136-843d-4043-98e7-6b46c6d39b01-1": { 6513 + "id": "https://anil.recoil.org/news/55852136-843d-4043-98e7-6b46c6d39b01-1", 6514 + "title": "Unikernels: Functional Infrastructure with Mirage OS", 6515 + "link": "https://anil.recoil.org/news/55852136-843d-4043-98e7-6b46c6d39b01-1", 6516 + "feed_title": "Anil Madhavapeddy's feed", 6517 + "references": [], 6518 + "referenced_by": [] 6519 + }, 6520 + "https://anil.recoil.org/news/ad4658f5-ca4f-42f3-b61a-58f13dcdeb1a-1": { 6521 + "id": "https://anil.recoil.org/news/ad4658f5-ca4f-42f3-b61a-58f13dcdeb1a-1", 6522 + "title": "Jitsu: Just-In-Time Summoning of Unikernels", 6523 + "link": "https://anil.recoil.org/news/ad4658f5-ca4f-42f3-b61a-58f13dcdeb1a-1", 6524 + "feed_title": "Anil Madhavapeddy's feed", 6525 + "references": [], 6526 + "referenced_by": [] 6527 + }, 6528 + "https://anil.recoil.org/news/2015-diynet-kadupul-1": { 6529 + "id": "https://anil.recoil.org/news/2015-diynet-kadupul-1", 6530 + "title": "Kadupul: Livin' on the Edge with Virtual Currencies and Time-Locked Puzzles", 6531 + "link": "https://anil.recoil.org/news/2015-diynet-kadupul-1", 6532 + "feed_title": "Anil Madhavapeddy's feed", 6533 + "references": [], 6534 + "referenced_by": [] 6535 + }, 6536 + "https://anil.recoil.org/news/2015-nsdi-jitsu-1": { 6537 + "id": "https://anil.recoil.org/news/2015-nsdi-jitsu-1", 6538 + "title": "Jitsu: Just-In-Time Summoning of Unikernels", 6539 + "link": "https://anil.recoil.org/news/2015-nsdi-jitsu-1", 6540 + "feed_title": "Anil Madhavapeddy's feed", 6541 + "references": [], 6542 + "referenced_by": [] 6543 + }, 6544 + "https://mort.io/blog/inconstant-ruby/": { 6545 + "id": "https://mort.io/blog/inconstant-ruby/", 6546 + "title": "Diamonds are a Chap's Best Friend", 6547 + "link": "https://mort.io/blog/inconstant-ruby/", 6548 + "feed_title": "mort\u2019s mythop\u0153ia", 6549 + "references": [], 6550 + "referenced_by": [] 6551 + }, 6552 + "https://mort.io/blog/hdi-seminar/": { 6553 + "id": "https://mort.io/blog/hdi-seminar/", 6554 + "title": "Taking it to the People People", 6555 + "link": "https://mort.io/blog/hdi-seminar/", 6556 + "feed_title": "mort\u2019s mythop\u0153ia", 6557 + "references": [], 6558 + "referenced_by": [] 6559 + }, 6560 + "https://anil.recoil.org/notes/ocamllabs-2014-review": { 6561 + "id": "https://anil.recoil.org/notes/ocamllabs-2014-review", 6562 + "title": "Reviewing the second year of OCaml Labs in 2014", 6563 + "link": "https://anil.recoil.org/notes/ocamllabs-2014-review", 6564 + "feed_title": "Anil Madhavapeddy's feed", 6565 + "references": [ 6566 + { 6567 + "id": "https://anil.recoil.org/projects/ocamllabs", 6568 + "link": "https://anil.recoil.org/projects/ocamllabs", 6569 + "title": "OCaml Labs", 6570 + "feed_title": "Anil Madhavapeddy's feed" 6571 + }, 6572 + { 6573 + "id": "https://anil.recoil.org/notes/ocaml-github-and-opam", 6574 + "link": "https://anil.recoil.org/notes/ocaml-github-and-opam", 6575 + "title": "Easily OPAM switching to any OCaml feature request", 6576 + "feed_title": "Anil Madhavapeddy's feed" 6577 + } 6578 + ], 6579 + "referenced_by": [ 6580 + { 6581 + "id": "https://anil.recoil.org/ideas/nqsb-tls", 6582 + "link": "https://anil.recoil.org/ideas/nqsb-tls", 6583 + "title": "Not-quite-so-broken TLS in OCaml", 6584 + "feed_title": "Anil Madhavapeddy's feed" 6585 + }, 6586 + { 6587 + "id": "https://anil.recoil.org/projects/ocamllabs", 6588 + "link": "https://anil.recoil.org/projects/ocamllabs", 6589 + "title": "OCaml Labs", 6590 + "feed_title": "Anil Madhavapeddy's feed" 6591 + } 6592 + ] 6593 + }, 6594 + "https://mort.io/blog/being-followed-postscript/": { 6595 + "id": "https://mort.io/blog/being-followed-postscript/", 6596 + "title": "I Think Someone Else Is Also Following Me...", 6597 + "link": "https://mort.io/blog/being-followed-postscript/", 6598 + "feed_title": "mort\u2019s mythop\u0153ia", 6599 + "references": [], 6600 + "referenced_by": [] 6601 + }, 6602 + "https://mort.io/blog/someones-following-me/": { 6603 + "id": "https://mort.io/blog/someones-following-me/", 6604 + "title": "I Think Someone's Following Me...", 6605 + "link": "https://mort.io/blog/someones-following-me/", 6606 + "feed_title": "mort\u2019s mythop\u0153ia", 6607 + "references": [], 6608 + "referenced_by": [] 6609 + }, 6610 + "https://anil.recoil.org/notes/icfp15-call-for-sponsorships": { 6611 + "id": "https://anil.recoil.org/notes/icfp15-call-for-sponsorships", 6612 + "title": "ICFP 2015 - a call for sponsorship and how you can help", 6613 + "link": "https://anil.recoil.org/notes/icfp15-call-for-sponsorships", 6614 + "feed_title": "Anil Madhavapeddy's feed", 6615 + "references": [], 6616 + "referenced_by": [] 6617 + }, 6618 + "https://mort.io/blog/looping-the-loop/": { 6619 + "id": "https://mort.io/blog/looping-the-loop/", 6620 + "title": "Looping the Loop", 6621 + "link": "https://mort.io/blog/looping-the-loop/", 6622 + "feed_title": "mort\u2019s mythop\u0153ia", 6623 + "references": [], 6624 + "referenced_by": [] 6625 + }, 6626 + "https://mort.io/blog/talks-old-and-new/": { 6627 + "id": "https://mort.io/blog/talks-old-and-new/", 6628 + "title": "Talks, Old and New", 6629 + "link": "https://mort.io/blog/talks-old-and-new/", 6630 + "feed_title": "mort\u2019s mythop\u0153ia", 6631 + "references": [], 6632 + "referenced_by": [] 6633 + }, 6634 + "https://anil.recoil.org/news/0bc235e0-b154-4cbf-a84a-61240f16d60a-1": { 6635 + "id": "https://anil.recoil.org/news/0bc235e0-b154-4cbf-a84a-61240f16d60a-1", 6636 + "title": "Delivered keynote at BOB 2015 on MirageOS", 6637 + "link": "https://anil.recoil.org/news/0bc235e0-b154-4cbf-a84a-61240f16d60a-1", 6638 + "feed_title": "Anil Madhavapeddy's feed", 6639 + "references": [], 6640 + "referenced_by": [] 6641 + }, 6642 + "https://mort.io/blog/begin-again/": { 6643 + "id": "https://mort.io/blog/begin-again/", 6644 + "title": "Begin, Again!", 6645 + "link": "https://mort.io/blog/begin-again/", 6646 + "feed_title": "mort\u2019s mythop\u0153ia", 6647 + "references": [], 6648 + "referenced_by": [] 6649 + }, 6650 + "https://anil.recoil.org/news/2014-sigops-raft-1": { 6651 + "id": "https://anil.recoil.org/news/2014-sigops-raft-1", 6652 + "title": "Raft Refloated: Do We Have Consensus?", 6653 + "link": "https://anil.recoil.org/news/2014-sigops-raft-1", 6654 + "feed_title": "Anil Madhavapeddy's feed", 6655 + "references": [], 6656 + "referenced_by": [] 6657 + }, 6658 + "https://anil.recoil.org/news/2015-jfla-irmin-1": { 6659 + "id": "https://anil.recoil.org/news/2015-jfla-irmin-1", 6660 + "title": "Mergeable persistent data structures", 6661 + "link": "https://anil.recoil.org/news/2015-jfla-irmin-1", 6662 + "feed_title": "Anil Madhavapeddy's feed", 6663 + "references": [], 6664 + "referenced_by": [] 6665 + }, 6666 + "https://anil.recoil.org/news/2013-cufp-scribe-1": { 6667 + "id": "https://anil.recoil.org/news/2013-cufp-scribe-1", 6668 + "title": "CUFP'13 scribe's report", 6669 + "link": "https://anil.recoil.org/news/2013-cufp-scribe-1", 6670 + "feed_title": "Anil Madhavapeddy's feed", 6671 + "references": [], 6672 + "referenced_by": [] 6673 + }, 6674 + "https://anil.recoil.org/news/644914a5-a40b-4ef7-bb17-cea43c95dd09-1": { 6675 + "id": "https://anil.recoil.org/news/644914a5-a40b-4ef7-bb17-cea43c95dd09-1", 6676 + "title": "Codemesh 2014: Nymote: Git Your Own Cloud Here", 6677 + "link": "https://anil.recoil.org/news/644914a5-a40b-4ef7-bb17-cea43c95dd09-1", 6678 + "feed_title": "Anil Madhavapeddy's feed", 6679 + "references": [], 6680 + "referenced_by": [] 6681 + }, 6682 + "https://anil.recoil.org/news/46968fa0-e5bd-4df8-98e1-3cf88d9b31e5-1": { 6683 + "id": "https://anil.recoil.org/news/46968fa0-e5bd-4df8-98e1-3cf88d9b31e5-1", 6684 + "title": "Jitsu: Just-in-Time Summoning of Unikernels (new directions in operating systems)", 6685 + "link": "https://anil.recoil.org/news/46968fa0-e5bd-4df8-98e1-3cf88d9b31e5-1", 6686 + "feed_title": "Anil Madhavapeddy's feed", 6687 + "references": [], 6688 + "referenced_by": [] 6689 + }, 6690 + "https://anil.recoil.org/news/2014-regional-clouds-1": { 6691 + "id": "https://anil.recoil.org/news/2014-regional-clouds-1", 6692 + "title": "Regional clouds: technical considerations", 6693 + "link": "https://anil.recoil.org/news/2014-regional-clouds-1", 6694 + "feed_title": "Anil Madhavapeddy's feed", 6695 + "references": [], 6696 + "referenced_by": [] 6697 + }, 6698 + "https://anil.recoil.org/news/c9273fa0-802f-4d2b-8f0d-db383943564e-1": { 6699 + "id": "https://anil.recoil.org/news/c9273fa0-802f-4d2b-8f0d-db383943564e-1", 6700 + "title": "MirageOS 2.0: branch consistency for Xen Stub Domains", 6701 + "link": "https://anil.recoil.org/news/c9273fa0-802f-4d2b-8f0d-db383943564e-1", 6702 + "feed_title": "Anil Madhavapeddy's feed", 6703 + "references": [], 6704 + "referenced_by": [] 6705 + }, 6706 + "https://anil.recoil.org/news/4390c1d0-ed4f-4c01-9e10-dab2a3faed7a-1": { 6707 + "id": "https://anil.recoil.org/news/4390c1d0-ed4f-4c01-9e10-dab2a3faed7a-1", 6708 + "title": "OCaml 2014: The OCaml Platform v1.0", 6709 + "link": "https://anil.recoil.org/news/4390c1d0-ed4f-4c01-9e10-dab2a3faed7a-1", 6710 + "feed_title": "Anil Madhavapeddy's feed", 6711 + "references": [], 6712 + "referenced_by": [] 6713 + }, 6714 + "https://anil.recoil.org/news/ed84b2eb-1b93-4dc3-b746-63a4af13d4ea-1": { 6715 + "id": "https://anil.recoil.org/news/ed84b2eb-1b93-4dc3-b746-63a4af13d4ea-1", 6716 + "title": "Haskell Symposium 2014 Keynote on functional OS design", 6717 + "link": "https://anil.recoil.org/news/ed84b2eb-1b93-4dc3-b746-63a4af13d4ea-1", 6718 + "feed_title": "Anil Madhavapeddy's feed", 6719 + "references": [], 6720 + "referenced_by": [] 6721 + }, 6722 + "https://anil.recoil.org/news/2014-oud-platform-1": { 6723 + "id": "https://anil.recoil.org/news/2014-oud-platform-1", 6724 + "title": "The OCaml Platform v1.0", 6725 + "link": "https://anil.recoil.org/news/2014-oud-platform-1", 6726 + "feed_title": "Anil Madhavapeddy's feed", 6727 + "references": [], 6728 + "referenced_by": [] 6729 + }, 6730 + "https://anil.recoil.org/news/2014-oud-multicore-1": { 6731 + "id": "https://anil.recoil.org/news/2014-oud-multicore-1", 6732 + "title": "Multicore OCaml", 6733 + "link": "https://anil.recoil.org/news/2014-oud-multicore-1", 6734 + "feed_title": "Anil Madhavapeddy's feed", 6735 + "references": [], 6736 + "referenced_by": [] 6737 + }, 6738 + "https://anil.recoil.org/news/2014-oud-irminsule-1": { 6739 + "id": "https://anil.recoil.org/news/2014-oud-irminsule-1", 6740 + "title": "Irminsule: a branch-consistent distributed library database", 6741 + "link": "https://anil.recoil.org/news/2014-oud-irminsule-1", 6742 + "feed_title": "Anil Madhavapeddy's feed", 6743 + "references": [], 6744 + "referenced_by": [] 6745 + }, 6746 + "https://anil.recoil.org/notes/ocaml-labs-at-icfp-2014": { 6747 + "id": "https://anil.recoil.org/notes/ocaml-labs-at-icfp-2014", 6748 + "title": "Talks from OCaml Labs during ICFP 2014", 6749 + "link": "https://anil.recoil.org/notes/ocaml-labs-at-icfp-2014", 6750 + "feed_title": "Anil Madhavapeddy's feed", 6751 + "references": [], 6752 + "referenced_by": [ 6753 + { 6754 + "id": "https://anil.recoil.org/projects/ocamllabs", 6755 + "link": "https://anil.recoil.org/projects/ocamllabs", 6756 + "title": "OCaml Labs", 6757 + "feed_title": "Anil Madhavapeddy's feed" 6758 + } 6759 + ] 6760 + }, 6761 + "https://anil.recoil.org/news/5cdf2eef-9053-428e-b8b3-ab5ae274c129-1": { 6762 + "id": "https://anil.recoil.org/news/5cdf2eef-9053-428e-b8b3-ab5ae274c129-1", 6763 + "title": "FLOSS Weekly 302: Open Mirage", 6764 + "link": "https://anil.recoil.org/news/5cdf2eef-9053-428e-b8b3-ab5ae274c129-1", 6765 + "feed_title": "Anil Madhavapeddy's feed", 6766 + "references": [], 6767 + "referenced_by": [] 6768 + }, 6769 + "https://anil.recoil.org/notes/announcing-mirageos-2": { 6770 + "id": "https://anil.recoil.org/notes/announcing-mirageos-2", 6771 + "title": "MirageOS v2.0: a recap of new features", 6772 + "link": "https://anil.recoil.org/notes/announcing-mirageos-2", 6773 + "feed_title": "Anil Madhavapeddy's feed", 6774 + "references": [], 6775 + "referenced_by": [] 6776 + }, 6777 + "https://anil.recoil.org/notes/announcing-mirageos-1-2": { 6778 + "id": "https://anil.recoil.org/notes/announcing-mirageos-1-2", 6779 + "title": "MirageOS v1.2 released and the runup to 2.0", 6780 + "link": "https://anil.recoil.org/notes/announcing-mirageos-1-2", 6781 + "feed_title": "Anil Madhavapeddy's feed", 6782 + "references": [], 6783 + "referenced_by": [] 6784 + }, 6785 + "https://anil.recoil.org/news/d5411e25-7845-41e8-b3ec-ab3c33ce13c8-1": { 6786 + "id": "https://anil.recoil.org/news/d5411e25-7845-41e8-b3ec-ab3c33ce13c8-1", 6787 + "title": "SE Radio Episode 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language", 6788 + "link": "https://anil.recoil.org/news/d5411e25-7845-41e8-b3ec-ab3c33ce13c8-1", 6789 + "feed_title": "Anil Madhavapeddy's feed", 6790 + "references": [], 6791 + "referenced_by": [] 6792 + }, 6793 + "https://anil.recoil.org/notes/codio-now-has-opam-support": { 6794 + "id": "https://anil.recoil.org/notes/codio-now-has-opam-support", 6795 + "title": "Codio: build Mirage unikernels from a browser", 6796 + "link": "https://anil.recoil.org/notes/codio-now-has-opam-support", 6797 + "feed_title": "Anil Madhavapeddy's feed", 6798 + "references": [], 6799 + "referenced_by": [] 6800 + }, 6801 + "https://anil.recoil.org/notes/ocaml-github-and-opam": { 6802 + "id": "https://anil.recoil.org/notes/ocaml-github-and-opam", 6803 + "title": "Easily OPAM switching to any OCaml feature request", 6804 + "link": "https://anil.recoil.org/notes/ocaml-github-and-opam", 6805 + "feed_title": "Anil Madhavapeddy's feed", 6806 + "references": [], 6807 + "referenced_by": [ 6808 + { 6809 + "id": "https://anil.recoil.org/notes/ocamllabs-2014-review", 6810 + "link": "https://anil.recoil.org/notes/ocamllabs-2014-review", 6811 + "title": "Reviewing the second year of OCaml Labs in 2014", 6812 + "feed_title": "Anil Madhavapeddy's feed" 6813 + } 6814 + ] 6815 + }, 6816 + "https://anil.recoil.org/notes/icfp-call-for-sponsorships": { 6817 + "id": "https://anil.recoil.org/notes/icfp-call-for-sponsorships", 6818 + "title": "ICFP 2014 - a call for sponsorship and how you can help", 6819 + "link": "https://anil.recoil.org/notes/icfp-call-for-sponsorships", 6820 + "feed_title": "Anil Madhavapeddy's feed", 6821 + "references": [], 6822 + "referenced_by": [] 6823 + }, 6824 + "https://anil.recoil.org/news/2010-iswp-dustclouds-1": { 6825 + "id": "https://anil.recoil.org/news/2010-iswp-dustclouds-1", 6826 + "title": "Using Dust Clouds to Enhance Anonymous Communication", 6827 + "link": "https://anil.recoil.org/news/2010-iswp-dustclouds-1", 6828 + "feed_title": "Anil Madhavapeddy's feed", 6829 + "references": [], 6830 + "referenced_by": [] 6831 + }, 6832 + "https://anil.recoil.org/notes/unikernels-in-cacm": { 6833 + "id": "https://anil.recoil.org/notes/unikernels-in-cacm", 6834 + "title": "Unikernels, and the Rise of the Virtual Library Operating System", 6835 + "link": "https://anil.recoil.org/notes/unikernels-in-cacm", 6836 + "feed_title": "Anil Madhavapeddy's feed", 6837 + "references": [], 6838 + "referenced_by": [] 6839 + }, 6840 + "https://anil.recoil.org/ideas/nqsb-tls": { 6841 + "id": "https://anil.recoil.org/ideas/nqsb-tls", 6842 + "title": "Not-quite-so-broken TLS in OCaml", 6843 + "link": "https://anil.recoil.org/ideas/nqsb-tls", 6844 + "feed_title": "Anil Madhavapeddy's feed", 6845 + "references": [ 6846 + { 6847 + "id": "https://anil.recoil.org/projects/unikernels", 6848 + "link": "https://anil.recoil.org/projects/unikernels", 6849 + "title": "Unikernels", 6850 + "feed_title": "Anil Madhavapeddy's feed" 6851 + }, 6852 + { 6853 + "id": "https://anil.recoil.org/notes/ocamllabs-2014-review", 6854 + "link": "https://anil.recoil.org/notes/ocamllabs-2014-review", 6855 + "title": "Reviewing the second year of OCaml Labs in 2014", 6856 + "feed_title": "Anil Madhavapeddy's feed" 6857 + } 6858 + ], 6859 + "referenced_by": [] 6860 + }, 6861 + "https://anil.recoil.org/ideas/scaling-tls-trust": { 6862 + "id": "https://anil.recoil.org/ideas/scaling-tls-trust", 6863 + "title": "Consolidating Trust for Client Groups that use TLS to Secure Connections", 6864 + "link": "https://anil.recoil.org/ideas/scaling-tls-trust", 6865 + "feed_title": "Anil Madhavapeddy's feed", 6866 + "references": [], 6867 + "referenced_by": [] 6868 + }, 6869 + "https://anil.recoil.org/notes/the-year-in-ocamllabs": { 6870 + "id": "https://anil.recoil.org/notes/the-year-in-ocamllabs", 6871 + "title": "Reviewing the first year of OCaml Labs in 2013", 6872 + "link": "https://anil.recoil.org/notes/the-year-in-ocamllabs", 6873 + "feed_title": "Anil Madhavapeddy's feed", 6874 + "references": [], 6875 + "referenced_by": [ 6876 + { 6877 + "id": "https://anil.recoil.org/notes/ocaml-2013-liveblog", 6878 + "link": "https://anil.recoil.org/notes/ocaml-2013-liveblog", 6879 + "title": "OCaml 2013 workshop liveblog", 6880 + "feed_title": "Anil Madhavapeddy's feed" 6881 + }, 6882 + { 6883 + "id": "https://anil.recoil.org/projects/ocamllabs", 6884 + "link": "https://anil.recoil.org/projects/ocamllabs", 6885 + "title": "OCaml Labs", 6886 + "feed_title": "Anil Madhavapeddy's feed" 6887 + } 6888 + ] 6889 + }, 6890 + "https://anil.recoil.org/notes/docker-and-opam": { 6891 + "id": "https://anil.recoil.org/notes/docker-and-opam", 6892 + "title": "Using Docker to bulk-build OPAM packages on Linux", 6893 + "link": "https://anil.recoil.org/notes/docker-and-opam", 6894 + "feed_title": "Anil Madhavapeddy's feed", 6895 + "references": [], 6896 + "referenced_by": [] 6897 + }, 6898 + "https://anil.recoil.org/news/cf9fcf6b-de5d-4a23-a00d-cceadea5b668-1": { 6899 + "id": "https://anil.recoil.org/news/cf9fcf6b-de5d-4a23-a00d-cceadea5b668-1", 6900 + "title": "MirageOS and XAPI project update at XenSummit", 6901 + "link": "https://anil.recoil.org/news/cf9fcf6b-de5d-4a23-a00d-cceadea5b668-1", 6902 + "feed_title": "Anil Madhavapeddy's feed", 6903 + "references": [], 6904 + "referenced_by": [] 6905 + }, 6906 + "https://anil.recoil.org/notes/liveblog-plos-2013": { 6907 + "id": "https://anil.recoil.org/notes/liveblog-plos-2013", 6908 + "title": "Notes from PL and OS 2013 workshop", 6909 + "link": "https://anil.recoil.org/notes/liveblog-plos-2013", 6910 + "feed_title": "Anil Madhavapeddy's feed", 6911 + "references": [], 6912 + "referenced_by": [] 6913 + }, 6914 + "https://anil.recoil.org/news/rise-of-libos-1": { 6915 + "id": "https://anil.recoil.org/news/rise-of-libos-1", 6916 + "title": "Unikernels: Rise of the Virtual Library Operating System", 6917 + "link": "https://anil.recoil.org/news/rise-of-libos-1", 6918 + "feed_title": "Anil Madhavapeddy's feed", 6919 + "references": [], 6920 + "referenced_by": [] 6921 + }, 6922 + "https://anil.recoil.org/news/2013-hotnets-trevi-1": { 6923 + "id": "https://anil.recoil.org/news/2013-hotnets-trevi-1", 6924 + "title": "Trevi: watering down storage hotspots with cool fountain codes", 6925 + "link": "https://anil.recoil.org/news/2013-hotnets-trevi-1", 6926 + "feed_title": "Anil Madhavapeddy's feed", 6927 + "references": [], 6928 + "referenced_by": [] 6929 + }, 6930 + "https://anil.recoil.org/news/rwo-1": { 6931 + "id": "https://anil.recoil.org/news/rwo-1", 6932 + "title": "First edition of Real World OCaml published", 6933 + "link": "https://anil.recoil.org/news/rwo-1", 6934 + "feed_title": "Anil Madhavapeddy's feed", 6935 + "references": [], 6936 + "referenced_by": [] 6937 + }, 6938 + "https://anil.recoil.org/news/2012-cufp-scribe-1": { 6939 + "id": "https://anil.recoil.org/news/2012-cufp-scribe-1", 6940 + "title": "Commercial users of functional programming workshop report", 6941 + "link": "https://anil.recoil.org/news/2012-cufp-scribe-1", 6942 + "feed_title": "Anil Madhavapeddy's feed", 6943 + "references": [], 6944 + "referenced_by": [] 6945 + }, 6946 + "https://mort.io/blog/21st-century-ide/": { 6947 + "id": "https://mort.io/blog/21st-century-ide/", 6948 + "title": "A 21st Century IDE", 6949 + "link": "https://mort.io/blog/21st-century-ide/", 6950 + "feed_title": "mort\u2019s mythop\u0153ia", 6951 + "references": [], 6952 + "referenced_by": [] 6953 + }, 6954 + "https://anil.recoil.org/notes/hdi-workshop-2013-liveblog": { 6955 + "id": "https://anil.recoil.org/notes/hdi-workshop-2013-liveblog", 6956 + "title": "Notes on the first Human Data Interaction workshop", 6957 + "link": "https://anil.recoil.org/notes/hdi-workshop-2013-liveblog", 6958 + "feed_title": "Anil Madhavapeddy's feed", 6959 + "references": [], 6960 + "referenced_by": [] 6961 + }, 6962 + "https://anil.recoil.org/notes/ocaml-2013-liveblog": { 6963 + "id": "https://anil.recoil.org/notes/ocaml-2013-liveblog", 6964 + "title": "OCaml 2013 workshop liveblog", 6965 + "link": "https://anil.recoil.org/notes/ocaml-2013-liveblog", 6966 + "feed_title": "Anil Madhavapeddy's feed", 6967 + "references": [ 6968 + { 6969 + "id": "https://anil.recoil.org/notes/the-year-in-ocamllabs", 6970 + "link": "https://anil.recoil.org/notes/the-year-in-ocamllabs", 6971 + "title": "Reviewing the first year of OCaml Labs in 2013", 6972 + "feed_title": "Anil Madhavapeddy's feed" 6973 + } 6974 + ], 6975 + "referenced_by": [] 6976 + }, 6977 + "https://anil.recoil.org/notes/cufp-2013-liveblog": { 6978 + "id": "https://anil.recoil.org/notes/cufp-2013-liveblog", 6979 + "title": "Liveblogging CUFP 2013", 6980 + "link": "https://anil.recoil.org/notes/cufp-2013-liveblog", 6981 + "feed_title": "Anil Madhavapeddy's feed", 6982 + "references": [], 6983 + "referenced_by": [] 6984 + }, 6985 + "https://anil.recoil.org/notes/opam-1-1-beta": { 6986 + "id": "https://anil.recoil.org/notes/opam-1-1-beta", 6987 + "title": "OPAM 1.1 beta available, with pretty colours", 6988 + "link": "https://anil.recoil.org/notes/opam-1-1-beta", 6989 + "feed_title": "Anil Madhavapeddy's feed", 6990 + "references": [], 6991 + "referenced_by": [ 6992 + { 6993 + "id": "https://anil.recoil.org/notes/disentangling-git-with-bluesky", 6994 + "link": "https://anil.recoil.org/notes/disentangling-git-with-bluesky", 6995 + "title": "Socially self-hosting source code with Tangled on Bluesky", 6996 + "feed_title": "Anil Madhavapeddy's feed" 6997 + }, 6998 + { 6999 + "id": "https://anil.recoil.org/projects/ocamllabs", 7000 + "link": "https://anil.recoil.org/projects/ocamllabs", 7001 + "title": "OCaml Labs", 7002 + "feed_title": "Anil Madhavapeddy's feed" 7003 + } 7004 + ] 7005 + }, 7006 + "https://anil.recoil.org/news/2013-oud-platform-1": { 7007 + "id": "https://anil.recoil.org/news/2013-oud-platform-1", 7008 + "title": "The OCaml Platform v0.1", 7009 + "link": "https://anil.recoil.org/news/2013-oud-platform-1", 7010 + "feed_title": "Anil Madhavapeddy's feed", 7011 + "references": [], 7012 + "referenced_by": [] 7013 + }, 7014 + "https://anil.recoil.org/news/2013-ocamlot-1": { 7015 + "id": "https://anil.recoil.org/news/2013-ocamlot-1", 7016 + "title": "Ocamlot: Online OCaml Testing", 7017 + "link": "https://anil.recoil.org/news/2013-ocamlot-1", 7018 + "feed_title": "Anil Madhavapeddy's feed", 7019 + "references": [], 7020 + "referenced_by": [] 7021 + }, 7022 + "https://anil.recoil.org/news/2013-foci-signposts-1": { 7023 + "id": "https://anil.recoil.org/news/2013-foci-signposts-1", 7024 + "title": "Lost in the Edge: Finding Your Way with DNSSEC Signposts", 7025 + "link": "https://anil.recoil.org/news/2013-foci-signposts-1", 7026 + "feed_title": "Anil Madhavapeddy's feed", 7027 + "references": [], 7028 + "referenced_by": [] 7029 + }, 7030 + "https://anil.recoil.org/news/762795c5-9f3b-499b-a054-b2af37d1ddd2-1": { 7031 + "id": "https://anil.recoil.org/news/762795c5-9f3b-499b-a054-b2af37d1ddd2-1", 7032 + "title": "Mirage Developer Preview 1 screencast", 7033 + "link": "https://anil.recoil.org/news/762795c5-9f3b-499b-a054-b2af37d1ddd2-1", 7034 + "feed_title": "Anil Madhavapeddy's feed", 7035 + "references": [], 7036 + "referenced_by": [] 7037 + }, 7038 + "https://anil.recoil.org/notes/grepping-every-known-ocaml-package-source": { 7039 + "id": "https://anil.recoil.org/notes/grepping-every-known-ocaml-package-source", 7040 + "title": "Grepping the source of every OCaml package in OPAM", 7041 + "link": "https://anil.recoil.org/notes/grepping-every-known-ocaml-package-source", 7042 + "feed_title": "Anil Madhavapeddy's feed", 7043 + "references": [], 7044 + "referenced_by": [] 7045 + }, 7046 + "https://anil.recoil.org/news/2013-asplos-mirage-1": { 7047 + "id": "https://anil.recoil.org/news/2013-asplos-mirage-1", 7048 + "title": "Unikernels: library operating systems for the cloud", 7049 + "link": "https://anil.recoil.org/news/2013-asplos-mirage-1", 7050 + "feed_title": "Anil Madhavapeddy's feed", 7051 + "references": [], 7052 + "referenced_by": [] 7053 + }, 7054 + "https://anil.recoil.org/news/de13-dataware-1": { 7055 + "id": "https://anil.recoil.org/news/de13-dataware-1", 7056 + "title": "Perceived risks of personal data sharing", 7057 + "link": "https://anil.recoil.org/news/de13-dataware-1", 7058 + "feed_title": "Anil Madhavapeddy's feed", 7059 + "references": [], 7060 + "referenced_by": [] 7061 + }, 7062 + "https://anil.recoil.org/ideas/concurrent-revisions": { 7063 + "id": "https://anil.recoil.org/ideas/concurrent-revisions", 7064 + "title": "Concurrent revisions for OCaml", 7065 + "link": "https://anil.recoil.org/ideas/concurrent-revisions", 7066 + "feed_title": "Anil Madhavapeddy's feed", 7067 + "references": [], 7068 + "referenced_by": [] 7069 + }, 7070 + "https://anil.recoil.org/news/2012-conext-pvtcp-1": { 7071 + "id": "https://anil.recoil.org/news/2012-conext-pvtcp-1", 7072 + "title": "Evolving TCP: how hard can it be?", 7073 + "link": "https://anil.recoil.org/news/2012-conext-pvtcp-1", 7074 + "feed_title": "Anil Madhavapeddy's feed", 7075 + "references": [], 7076 + "referenced_by": [] 7077 + }, 7078 + "https://anil.recoil.org/notes/announcing-ocaml-labs": { 7079 + "id": "https://anil.recoil.org/notes/announcing-ocaml-labs", 7080 + "title": "Announcing OCaml Labs", 7081 + "link": "https://anil.recoil.org/notes/announcing-ocaml-labs", 7082 + "feed_title": "Anil Madhavapeddy's feed", 7083 + "references": [ 7084 + { 7085 + "id": "https://anil.recoil.org/projects/ocamllabs", 7086 + "link": "https://anil.recoil.org/projects/ocamllabs", 7087 + "title": "OCaml Labs", 7088 + "feed_title": "Anil Madhavapeddy's feed" 7089 + } 7090 + ], 7091 + "referenced_by": [ 7092 + { 7093 + "id": "https://anil.recoil.org/projects/ocamllabs", 7094 + "link": "https://anil.recoil.org/projects/ocamllabs", 7095 + "title": "OCaml Labs", 7096 + "feed_title": "Anil Madhavapeddy's feed" 7097 + } 7098 + ] 7099 + }, 7100 + "https://anil.recoil.org/notes/breaking-up-mirageos": { 7101 + "id": "https://anil.recoil.org/notes/breaking-up-mirageos", 7102 + "title": "Breaking up is easy (with OPAM)", 7103 + "link": "https://anil.recoil.org/notes/breaking-up-mirageos", 7104 + "feed_title": "Anil Madhavapeddy's feed", 7105 + "references": [], 7106 + "referenced_by": [] 7107 + }, 7108 + "https://anil.recoil.org/news/dd8b1f58-c43c-4422-9963-d3a980529e57-1": { 7109 + "id": "https://anil.recoil.org/news/dd8b1f58-c43c-4422-9963-d3a980529e57-1", 7110 + "title": "OUD 2012: Towards an OCaml Platform and Introducing OCaml Labs", 7111 + "link": "https://anil.recoil.org/news/dd8b1f58-c43c-4422-9963-d3a980529e57-1", 7112 + "feed_title": "Anil Madhavapeddy's feed", 7113 + "references": [], 7114 + "referenced_by": [] 7115 + }, 7116 + "https://anil.recoil.org/notes/xenstore-stub-domain": { 7117 + "id": "https://anil.recoil.org/notes/xenstore-stub-domain", 7118 + "title": "Building a Xenstore stub domain with MirageOS", 7119 + "link": "https://mirage.io/blog/xenstore-stub-domain", 7120 + "feed_title": "Anil Madhavapeddy's feed", 7121 + "references": [], 7122 + "referenced_by": [] 7123 + }, 7124 + "https://anil.recoil.org/news/2012-sigcomm-signposts-1": { 7125 + "id": "https://anil.recoil.org/news/2012-sigcomm-signposts-1", 7126 + "title": "Signposts: end-to-end networking in a world of middleboxes", 7127 + "link": "https://anil.recoil.org/news/2012-sigcomm-signposts-1", 7128 + "feed_title": "Anil Madhavapeddy's feed", 7129 + "references": [], 7130 + "referenced_by": [] 7131 + }, 7132 + "https://anil.recoil.org/news/2012-oud-xen-1": { 7133 + "id": "https://anil.recoil.org/news/2012-oud-xen-1", 7134 + "title": "Programming the Xen cloud using OCaml", 7135 + "link": "https://anil.recoil.org/news/2012-oud-xen-1", 7136 + "feed_title": "Anil Madhavapeddy's feed", 7137 + "references": [], 7138 + "referenced_by": [] 7139 + }, 7140 + "https://anil.recoil.org/news/2012-ahans-soapp-1": { 7141 + "id": "https://anil.recoil.org/news/2012-ahans-soapp-1", 7142 + "title": "Exploring Compartmentalisation Hypotheses with SOAAP", 7143 + "link": "https://anil.recoil.org/news/2012-ahans-soapp-1", 7144 + "feed_title": "Anil Madhavapeddy's feed", 7145 + "references": [], 7146 + "referenced_by": [] 7147 + }, 7148 + "https://anil.recoil.org/news/2012-iccsdn-mirageflow-1": { 7149 + "id": "https://anil.recoil.org/news/2012-iccsdn-mirageflow-1", 7150 + "title": "Cost, Performance & Flexibility in OpenFlow: Pick three", 7151 + "link": "https://anil.recoil.org/news/2012-iccsdn-mirageflow-1", 7152 + "feed_title": "Anil Madhavapeddy's feed", 7153 + "references": [], 7154 + "referenced_by": [] 7155 + }, 7156 + "https://anil.recoil.org/news/2012-mpm-caware-1": { 7157 + "id": "https://anil.recoil.org/news/2012-mpm-caware-1", 7158 + "title": "Confidential carbon commuting: exploring a privacy-sensitive architecture for incentivising 'greener' commuting", 7159 + "link": "https://anil.recoil.org/news/2012-mpm-caware-1", 7160 + "feed_title": "Anil Madhavapeddy's feed", 7161 + "references": [], 7162 + "referenced_by": [] 7163 + }, 7164 + "https://anil.recoil.org/news/2012-resolve-fable-1": { 7165 + "id": "https://anil.recoil.org/news/2012-resolve-fable-1", 7166 + "title": "The case for reconfigurable I/O channels", 7167 + "link": "https://anil.recoil.org/news/2012-resolve-fable-1", 7168 + "feed_title": "Anil Madhavapeddy's feed", 7169 + "references": [], 7170 + "referenced_by": [] 7171 + }, 7172 + "https://anil.recoil.org/notes/dreamplug-debian-and-ocaml": { 7173 + "id": "https://anil.recoil.org/notes/dreamplug-debian-and-ocaml", 7174 + "title": "Dreaming of an ARM OCaml", 7175 + "link": "https://anil.recoil.org/notes/dreamplug-debian-and-ocaml", 7176 + "feed_title": "Anil Madhavapeddy's feed", 7177 + "references": [], 7178 + "referenced_by": [] 7179 + }, 7180 + "https://anil.recoil.org/projects/ocamllabs": { 7181 + "id": "https://anil.recoil.org/projects/ocamllabs", 7182 + "title": "OCaml Labs", 7183 + "link": "https://anil.recoil.org/projects/ocamllabs", 7184 + "feed_title": "Anil Madhavapeddy's feed", 7185 + "references": [ 7186 + { 7187 + "id": "https://anil.recoil.org/projects/melange", 7188 + "link": "https://anil.recoil.org/projects/melange", 7189 + "title": "Functional Internet Services", 7190 + "feed_title": "Anil Madhavapeddy's feed" 7191 + }, 7192 + { 7193 + "id": "https://anil.recoil.org/projects/perscon", 7194 + "link": "https://anil.recoil.org/projects/perscon", 7195 + "title": "Personal Containers", 7196 + "feed_title": "Anil Madhavapeddy's feed" 7197 + }, 7198 + { 7199 + "id": "https://anil.recoil.org/projects/unikernels", 7200 + "link": "https://anil.recoil.org/projects/unikernels", 7201 + "title": "Unikernels", 7202 + "feed_title": "Anil Madhavapeddy's feed" 7203 + }, 7204 + { 7205 + "id": "https://anil.recoil.org/notes/announcing-ocaml-labs", 7206 + "link": "https://anil.recoil.org/notes/announcing-ocaml-labs", 7207 + "title": "Announcing OCaml Labs", 7208 + "feed_title": "Anil Madhavapeddy's feed" 7209 + }, 7210 + { 7211 + "id": "https://anil.recoil.org/notes/opam-1-1-beta", 7212 + "link": "https://anil.recoil.org/notes/opam-1-1-beta", 7213 + "title": "OPAM 1.1 beta available, with pretty colours", 7214 + "feed_title": "Anil Madhavapeddy's feed" 7215 + }, 7216 + { 7217 + "id": "https://anil.recoil.org/notes/ocaml-users-group", 7218 + "link": "https://anil.recoil.org/notes/ocaml-users-group", 7219 + "title": "Camel Spotting in Paris", 7220 + "feed_title": "Anil Madhavapeddy's feed" 7221 + }, 7222 + { 7223 + "id": "https://anil.recoil.org/notes/the-year-in-ocamllabs", 7224 + "link": "https://anil.recoil.org/notes/the-year-in-ocamllabs", 7225 + "title": "Reviewing the first year of OCaml Labs in 2013", 7226 + "feed_title": "Anil Madhavapeddy's feed" 7227 + }, 7228 + { 7229 + "id": "https://anil.recoil.org/notes/ocaml-labs-at-icfp-2014", 7230 + "link": "https://anil.recoil.org/notes/ocaml-labs-at-icfp-2014", 7231 + "title": "Talks from OCaml Labs during ICFP 2014", 7232 + "feed_title": "Anil Madhavapeddy's feed" 7233 + }, 7234 + { 7235 + "id": "https://anil.recoil.org/notes/ocamllabs-2014-review", 7236 + "link": "https://anil.recoil.org/notes/ocamllabs-2014-review", 7237 + "title": "Reviewing the second year of OCaml Labs in 2014", 7238 + "feed_title": "Anil Madhavapeddy's feed" 7239 + } 7240 + ], 7241 + "referenced_by": [ 7242 + { 7243 + "id": "https://anil.recoil.org/notes/ocamllabs-2014-review", 7244 + "link": "https://anil.recoil.org/notes/ocamllabs-2014-review", 7245 + "title": "Reviewing the second year of OCaml Labs in 2014", 7246 + "feed_title": "Anil Madhavapeddy's feed" 7247 + }, 7248 + { 7249 + "id": "https://anil.recoil.org/notes/announcing-ocaml-labs", 7250 + "link": "https://anil.recoil.org/notes/announcing-ocaml-labs", 7251 + "title": "Announcing OCaml Labs", 7252 + "feed_title": "Anil Madhavapeddy's feed" 7253 + }, 7254 + { 7255 + "id": "https://anil.recoil.org/projects/unikernels", 7256 + "link": "https://anil.recoil.org/projects/unikernels", 7257 + "title": "Unikernels", 7258 + "feed_title": "Anil Madhavapeddy's feed" 7259 + }, 7260 + { 7261 + "id": "https://anil.recoil.org/projects/perscon", 7262 + "link": "https://anil.recoil.org/projects/perscon", 7263 + "title": "Personal Containers", 7264 + "feed_title": "Anil Madhavapeddy's feed" 7265 + } 7266 + ] 7267 + }, 7268 + "https://anil.recoil.org/ideas/macro-micro-benchmarking": { 7269 + "id": "https://anil.recoil.org/ideas/macro-micro-benchmarking", 7270 + "title": "Macro- and Micro-benchmarking in OCaml", 7271 + "link": "https://anil.recoil.org/ideas/macro-micro-benchmarking", 7272 + "feed_title": "Anil Madhavapeddy's feed", 7273 + "references": [], 7274 + "referenced_by": [] 7275 + }, 7276 + "https://anil.recoil.org/news/2011-cufp-scribe-1": { 7277 + "id": "https://anil.recoil.org/news/2011-cufp-scribe-1", 7278 + "title": "CUFP 2011 Workshop Report", 7279 + "link": "https://anil.recoil.org/news/2011-cufp-scribe-1", 7280 + "feed_title": "Anil Madhavapeddy's feed", 7281 + "references": [], 7282 + "referenced_by": [] 7283 + }, 7284 + "https://anil.recoil.org/ideas/raft-consensus": { 7285 + "id": "https://anil.recoil.org/ideas/raft-consensus", 7286 + "title": "Analysis of the Raft Consensus Protocol", 7287 + "link": "https://anil.recoil.org/ideas/raft-consensus", 7288 + "feed_title": "Anil Madhavapeddy's feed", 7289 + "references": [], 7290 + "referenced_by": [] 7291 + }, 7292 + "https://anil.recoil.org/news/7d949597-b864-4ada-ab1a-81ff8c0463e2-1": { 7293 + "id": "https://anil.recoil.org/news/7d949597-b864-4ada-ab1a-81ff8c0463e2-1", 7294 + "title": "OCaml Meeting 2011 - MirageOS", 7295 + "link": "https://anil.recoil.org/news/7d949597-b864-4ada-ab1a-81ff8c0463e2-1", 7296 + "feed_title": "Anil Madhavapeddy's feed", 7297 + "references": [], 7298 + "referenced_by": [] 7299 + }, 7300 + "https://anil.recoil.org/notes/cufp-2011-mirage": { 7301 + "id": "https://anil.recoil.org/notes/cufp-2011-mirage", 7302 + "title": "An outing to CUFP 2011 for Mirage", 7303 + "link": "https://anil.recoil.org/notes/cufp-2011-mirage", 7304 + "feed_title": "Anil Madhavapeddy's feed", 7305 + "references": [], 7306 + "referenced_by": [] 7307 + }, 7308 + "https://anil.recoil.org/ideas/mips-llvm": { 7309 + "id": "https://anil.recoil.org/ideas/mips-llvm", 7310 + "title": "Extending 64-bit MIPS support for LLVM", 7311 + "link": "https://anil.recoil.org/ideas/mips-llvm", 7312 + "feed_title": "Anil Madhavapeddy's feed", 7313 + "references": [], 7314 + "referenced_by": [] 7315 + }, 7316 + "https://anil.recoil.org/ideas/soapp-privgrind": { 7317 + "id": "https://anil.recoil.org/ideas/soapp-privgrind", 7318 + "title": "Control flow analysis for privilege separation", 7319 + "link": "https://anil.recoil.org/ideas/soapp-privgrind", 7320 + "feed_title": "Anil Madhavapeddy's feed", 7321 + "references": [], 7322 + "referenced_by": [] 7323 + }, 7324 + "https://anil.recoil.org/news/2011-dynamics-ml-1": { 7325 + "id": "https://anil.recoil.org/news/2011-dynamics-ml-1", 7326 + "title": "Dynamics for ML using Meta-Programming", 7327 + "link": "https://anil.recoil.org/news/2011-dynamics-ml-1", 7328 + "feed_title": "Anil Madhavapeddy's feed", 7329 + "references": [], 7330 + "referenced_by": [] 7331 + }, 7332 + "https://anil.recoil.org/news/2010-dyntype-wgt-1": { 7333 + "id": "https://anil.recoil.org/news/2010-dyntype-wgt-1", 7334 + "title": "Dynamics for ML using Meta-Programming", 7335 + "link": "https://anil.recoil.org/news/2010-dyntype-wgt-1", 7336 + "feed_title": "Anil Madhavapeddy's feed", 7337 + "references": [], 7338 + "referenced_by": [] 7339 + }, 7340 + "https://anil.recoil.org/notes/delimited-cont-vs-lwt": { 7341 + "id": "https://anil.recoil.org/notes/delimited-cont-vs-lwt", 7342 + "title": "Delimited continuations vs Lwt for threads", 7343 + "link": "https://mirage.io/blog/delimcc-vs-lwt", 7344 + "feed_title": "Anil Madhavapeddy's feed", 7345 + "references": [], 7346 + "referenced_by": [] 7347 + }, 7348 + "https://anil.recoil.org/notes/datacaml-with-ciel": { 7349 + "id": "https://anil.recoil.org/notes/datacaml-with-ciel", 7350 + "title": "DataCaml: distributed dataflow programming in OCaml", 7351 + "link": "https://anil.recoil.org/notes/datacaml-with-ciel", 7352 + "feed_title": "Anil Madhavapeddy's feed", 7353 + "references": [], 7354 + "referenced_by": [ 7355 + { 7356 + "id": "https://anil.recoil.org/projects/unikernels", 7357 + "link": "https://anil.recoil.org/projects/unikernels", 7358 + "title": "Unikernels", 7359 + "feed_title": "Anil Madhavapeddy's feed" 7360 + }, 7361 + { 7362 + "id": "https://anil.recoil.org/projects/perscon", 7363 + "link": "https://anil.recoil.org/projects/perscon", 7364 + "title": "Personal Containers", 7365 + "feed_title": "Anil Madhavapeddy's feed" 7366 + } 7367 + ] 7368 + }, 7369 + "https://anil.recoil.org/news/2011-fccm-cloudfpga-1": { 7370 + "id": "https://anil.recoil.org/news/2011-fccm-cloudfpga-1", 7371 + "title": "Reconfigurable Data Processing for Clouds", 7372 + "link": "https://anil.recoil.org/news/2011-fccm-cloudfpga-1", 7373 + "feed_title": "Anil Madhavapeddy's feed", 7374 + "references": [], 7375 + "referenced_by": [] 7376 + }, 7377 + "https://anil.recoil.org/notes/srg-fp": { 7378 + "id": "https://anil.recoil.org/notes/srg-fp", 7379 + "title": "Functional programming gone wild in the SRG", 7380 + "link": "https://anil.recoil.org/notes/srg-fp", 7381 + "feed_title": "Anil Madhavapeddy's feed", 7382 + "references": [], 7383 + "referenced_by": [] 7384 + }, 7385 + "https://anil.recoil.org/notes/ocaml-users-group": { 7386 + "id": "https://anil.recoil.org/notes/ocaml-users-group", 7387 + "title": "Camel Spotting in Paris", 7388 + "link": "https://anil.recoil.org/notes/ocaml-users-group", 7389 + "feed_title": "Anil Madhavapeddy's feed", 7390 + "references": [], 7391 + "referenced_by": [ 7392 + { 7393 + "id": "https://anil.recoil.org/projects/ocamllabs", 7394 + "link": "https://anil.recoil.org/projects/ocamllabs", 7395 + "title": "OCaml Labs", 7396 + "feed_title": "Anil Madhavapeddy's feed" 7397 + } 7398 + ] 7399 + }, 7400 + "https://anil.recoil.org/news/2011-nsdi-ciel-1": { 7401 + "id": "https://anil.recoil.org/news/2011-nsdi-ciel-1", 7402 + "title": "CIEL: A universal execution engine for distributed data-flow computing", 7403 + "link": "https://anil.recoil.org/news/2011-nsdi-ciel-1", 7404 + "feed_title": "Anil Madhavapeddy's feed", 7405 + "references": [], 7406 + "referenced_by": [] 7407 + }, 7408 + "https://anil.recoil.org/news/2011-icdcn-droplets-1": { 7409 + "id": "https://anil.recoil.org/news/2011-icdcn-droplets-1", 7410 + "title": "Unclouded vision", 7411 + "link": "https://anil.recoil.org/news/2011-icdcn-droplets-1", 7412 + "feed_title": "Anil Madhavapeddy's feed", 7413 + "references": [], 7414 + "referenced_by": [] 7415 + }, 7416 + "https://anil.recoil.org/ideas/xmpp-group-comms": { 7417 + "id": "https://anil.recoil.org/ideas/xmpp-group-comms", 7418 + "title": "Simulating XMPP Group Communication", 7419 + "link": "https://anil.recoil.org/ideas/xmpp-group-comms", 7420 + "feed_title": "Anil Madhavapeddy's feed", 7421 + "references": [], 7422 + "referenced_by": [] 7423 + }, 7424 + "https://anil.recoil.org/ideas/functional-imap": { 7425 + "id": "https://anil.recoil.org/ideas/functional-imap", 7426 + "title": "Functional ABNF parser generators", 7427 + "link": "https://anil.recoil.org/ideas/functional-imap", 7428 + "feed_title": "Anil Madhavapeddy's feed", 7429 + "references": [], 7430 + "referenced_by": [] 7431 + }, 7432 + "https://anil.recoil.org/news/43ab3ae0-9ffc-474f-aa02-3cc1139f54d1-1": { 7433 + "id": "https://anil.recoil.org/news/43ab3ae0-9ffc-474f-aa02-3cc1139f54d1-1", 7434 + "title": "Building the Xen toolstack using OCaml", 7435 + "link": "https://anil.recoil.org/news/43ab3ae0-9ffc-474f-aa02-3cc1139f54d1-1", 7436 + "feed_title": "Anil Madhavapeddy's feed", 7437 + "references": [], 7438 + "referenced_by": [] 7439 + }, 7440 + "https://anil.recoil.org/news/be2f049b-174a-4e5b-b30e-0319793487c7-1": { 7441 + "id": "https://anil.recoil.org/news/be2f049b-174a-4e5b-b30e-0319793487c7-1", 7442 + "title": "Mirage: A New Multi-Scale Operating System for Clouds and Crowds (2014)", 7443 + "link": "https://anil.recoil.org/news/be2f049b-174a-4e5b-b30e-0319793487c7-1", 7444 + "feed_title": "Anil Madhavapeddy's feed", 7445 + "references": [], 7446 + "referenced_by": [] 7447 + }, 7448 + "https://anil.recoil.org/notes/mirage-self-hosting": { 7449 + "id": "https://anil.recoil.org/notes/mirage-self-hosting", 7450 + "title": "Self-hosting MirageOS website", 7451 + "link": "https://anil.recoil.org/notes/mirage-self-hosting", 7452 + "feed_title": "Anil Madhavapeddy's feed", 7453 + "references": [], 7454 + "referenced_by": [] 7455 + }, 7456 + "https://anil.recoil.org/news/de10-perscon-1": { 7457 + "id": "https://anil.recoil.org/news/de10-perscon-1", 7458 + "title": "The personal container, or your life in bits", 7459 + "link": "https://anil.recoil.org/news/de10-perscon-1", 7460 + "feed_title": "Anil Madhavapeddy's feed", 7461 + "references": [], 7462 + "referenced_by": [] 7463 + }, 7464 + "https://anil.recoil.org/news/2010-icfp-xen-1": { 7465 + "id": "https://anil.recoil.org/news/2010-icfp-xen-1", 7466 + "title": "Using functional programming within an industrial product group: perspectives and perceptions", 7467 + "link": "https://anil.recoil.org/news/2010-icfp-xen-1", 7468 + "feed_title": "Anil Madhavapeddy's feed", 7469 + "references": [], 7470 + "referenced_by": [] 7471 + }, 7472 + "https://anil.recoil.org/news/4957325f-d7f5-4a29-95b6-a1e1f61ea5cf-1": { 7473 + "id": "https://anil.recoil.org/news/4957325f-d7f5-4a29-95b6-a1e1f61ea5cf-1", 7474 + "title": "Turning Down the LAMP: Software Specialisation for the Cloud", 7475 + "link": "https://anil.recoil.org/news/4957325f-d7f5-4a29-95b6-a1e1f61ea5cf-1", 7476 + "feed_title": "Anil Madhavapeddy's feed", 7477 + "references": [], 7478 + "referenced_by": [] 7479 + }, 7480 + "https://anil.recoil.org/news/2010-hotcloud-lamp-1": { 7481 + "id": "https://anil.recoil.org/news/2010-hotcloud-lamp-1", 7482 + "title": "Turning Down the LAMP: Software Specialisation for the Cloud", 7483 + "link": "https://anil.recoil.org/news/2010-hotcloud-lamp-1", 7484 + "feed_title": "Anil Madhavapeddy's feed", 7485 + "references": [], 7486 + "referenced_by": [] 7487 + }, 7488 + "https://anil.recoil.org/news/anil-phd-thesis-2": { 7489 + "id": "https://anil.recoil.org/news/anil-phd-thesis-2", 7490 + "title": "Creating high-performance, statically type-safe network applications", 7491 + "link": "https://anil.recoil.org/news/anil-phd-thesis-2", 7492 + "feed_title": "Anil Madhavapeddy's feed", 7493 + "references": [], 7494 + "referenced_by": [] 7495 + }, 7496 + "https://anil.recoil.org/notes/yurts-for-digital-nomads": { 7497 + "id": "https://anil.recoil.org/notes/yurts-for-digital-nomads", 7498 + "title": "Yurts for Digital Nomads", 7499 + "link": "https://anil.recoil.org/notes/yurts-for-digital-nomads", 7500 + "feed_title": "Anil Madhavapeddy's feed", 7501 + "references": [], 7502 + "referenced_by": [ 7503 + { 7504 + "id": "https://anil.recoil.org/projects/perscon", 7505 + "link": "https://anil.recoil.org/projects/perscon", 7506 + "title": "Personal Containers", 7507 + "feed_title": "Anil Madhavapeddy's feed" 7508 + } 7509 + ] 7510 + }, 7511 + "https://anil.recoil.org/notes/uiprototype": { 7512 + "id": "https://anil.recoil.org/notes/uiprototype", 7513 + "title": "Pulling together a user interface", 7514 + "link": "https://anil.recoil.org/notes/uiprototype", 7515 + "feed_title": "Anil Madhavapeddy's feed", 7516 + "references": [], 7517 + "referenced_by": [ 7518 + { 7519 + "id": "https://anil.recoil.org/projects/perscon", 7520 + "link": "https://anil.recoil.org/projects/perscon", 7521 + "title": "Personal Containers", 7522 + "feed_title": "Anil Madhavapeddy's feed" 7523 + } 7524 + ] 7525 + }, 7526 + "https://anil.recoil.org/news/2010-bcs-visions-1": { 7527 + "id": "https://anil.recoil.org/news/2010-bcs-visions-1", 7528 + "title": "Multiscale not multicore: efficient heterogeneous cloud computing", 7529 + "link": "https://anil.recoil.org/news/2010-bcs-visions-1", 7530 + "feed_title": "Anil Madhavapeddy's feed", 7531 + "references": [], 7532 + "referenced_by": [] 7533 + }, 7534 + "https://anil.recoil.org/notes/opening-a-website": { 7535 + "id": "https://anil.recoil.org/notes/opening-a-website", 7536 + "title": "Opening a website", 7537 + "link": "https://anil.recoil.org/notes/opening-a-website", 7538 + "feed_title": "Anil Madhavapeddy's feed", 7539 + "references": [], 7540 + "referenced_by": [] 7541 + }, 7542 + "https://anil.recoil.org/news/2010-smarte-privacybutler-1": { 7543 + "id": "https://anil.recoil.org/news/2010-smarte-privacybutler-1", 7544 + "title": "Privacy Butler: A Personal Privacy Rights Manager for Online Presence", 7545 + "link": "https://anil.recoil.org/news/2010-smarte-privacybutler-1", 7546 + "feed_title": "Anil Madhavapeddy's feed", 7547 + "references": [], 7548 + "referenced_by": [] 7549 + }, 7550 + "https://anil.recoil.org/news/anil-phd-thesis-1": { 7551 + "id": "https://anil.recoil.org/news/anil-phd-thesis-1", 7552 + "title": "Creating high-performance, statically type-safe network applications", 7553 + "link": "https://anil.recoil.org/news/anil-phd-thesis-1", 7554 + "feed_title": "Anil Madhavapeddy's feed", 7555 + "references": [], 7556 + "referenced_by": [] 7557 + }, 7558 + "https://anil.recoil.org/projects/unikernels": { 7559 + "id": "https://anil.recoil.org/projects/unikernels", 7560 + "title": "Unikernels", 7561 + "link": "https://anil.recoil.org/projects/unikernels", 7562 + "feed_title": "Anil Madhavapeddy's feed", 7563 + "references": [ 7564 + { 7565 + "id": "https://anil.recoil.org/projects/perscon", 7566 + "link": "https://anil.recoil.org/projects/perscon", 7567 + "title": "Personal Containers", 7568 + "feed_title": "Anil Madhavapeddy's feed" 7569 + }, 7570 + { 7571 + "id": "https://anil.recoil.org/projects/melange", 7572 + "link": "https://anil.recoil.org/projects/melange", 7573 + "title": "Functional Internet Services", 7574 + "feed_title": "Anil Madhavapeddy's feed" 7575 + }, 7576 + { 7577 + "id": "https://anil.recoil.org/projects/xen", 7578 + "link": "https://anil.recoil.org/projects/xen", 7579 + "title": "Xen Hypervisor", 7580 + "feed_title": "Anil Madhavapeddy's feed" 7581 + }, 7582 + { 7583 + "id": "https://anil.recoil.org/notes/datacaml-with-ciel", 7584 + "link": "https://anil.recoil.org/notes/datacaml-with-ciel", 7585 + "title": "DataCaml: distributed dataflow programming in OCaml", 7586 + "feed_title": "Anil Madhavapeddy's feed" 7587 + }, 7588 + { 7589 + "id": "https://anil.recoil.org/projects/ocamllabs", 7590 + "link": "https://anil.recoil.org/projects/ocamllabs", 7591 + "title": "OCaml Labs", 7592 + "feed_title": "Anil Madhavapeddy's feed" 7593 + }, 7594 + { 7595 + "id": "https://anil.recoil.org/projects/osmose", 7596 + "link": "https://anil.recoil.org/projects/osmose", 7597 + "title": "Interspatial OS", 7598 + "feed_title": "Anil Madhavapeddy's feed" 7599 + } 7600 + ], 7601 + "referenced_by": [ 7602 + { 7603 + "id": "https://anil.recoil.org/notes/bushel-lives", 7604 + "link": "https://anil.recoil.org/notes/bushel-lives", 7605 + "title": "Arise Bushel, my sixth generation oxidised website", 7606 + "feed_title": "Anil Madhavapeddy's feed" 7607 + }, 7608 + { 7609 + "id": "https://anil.recoil.org/projects/osmose", 7610 + "link": "https://anil.recoil.org/projects/osmose", 7611 + "title": "Interspatial OS", 7612 + "feed_title": "Anil Madhavapeddy's feed" 7613 + }, 7614 + { 7615 + "id": "https://anil.recoil.org/notes/docker-buys-unikernel-systems", 7616 + "link": "https://anil.recoil.org/notes/docker-buys-unikernel-systems", 7617 + "title": "Unikernel Systems acquired by Docker", 7618 + "feed_title": "Anil Madhavapeddy's feed" 7619 + }, 7620 + { 7621 + "id": "https://anil.recoil.org/ideas/nqsb-tls", 7622 + "link": "https://anil.recoil.org/ideas/nqsb-tls", 7623 + "title": "Not-quite-so-broken TLS in OCaml", 7624 + "feed_title": "Anil Madhavapeddy's feed" 7625 + }, 7626 + { 7627 + "id": "https://anil.recoil.org/projects/ocamllabs", 7628 + "link": "https://anil.recoil.org/projects/ocamllabs", 7629 + "title": "OCaml Labs", 7630 + "feed_title": "Anil Madhavapeddy's feed" 7631 + }, 7632 + { 7633 + "id": "https://anil.recoil.org/projects/perscon", 7634 + "link": "https://anil.recoil.org/projects/perscon", 7635 + "title": "Personal Containers", 7636 + "feed_title": "Anil Madhavapeddy's feed" 7637 + }, 7638 + { 7639 + "id": "https://anil.recoil.org/projects/melange", 7640 + "link": "https://anil.recoil.org/projects/melange", 7641 + "title": "Functional Internet Services", 7642 + "feed_title": "Anil Madhavapeddy's feed" 7643 + }, 7644 + { 7645 + "id": "https://anil.recoil.org/projects/xen", 7646 + "link": "https://anil.recoil.org/projects/xen", 7647 + "title": "Xen Hypervisor", 7648 + "feed_title": "Anil Madhavapeddy's feed" 7649 + } 7650 + ] 7651 + }, 7652 + "https://anil.recoil.org/ideas/frp-web-ocaml": { 7653 + "id": "https://anil.recoil.org/ideas/frp-web-ocaml", 7654 + "title": "Functional Reactive Web Applications", 7655 + "link": "https://anil.recoil.org/ideas/frp-web-ocaml", 7656 + "feed_title": "Anil Madhavapeddy's feed", 7657 + "references": [], 7658 + "referenced_by": [] 7659 + }, 7660 + "https://anil.recoil.org/news/2009-icfem-spl-1": { 7661 + "id": "https://anil.recoil.org/news/2009-icfem-spl-1", 7662 + "title": "Combining Static Model Checking with Dynamic Enforcement Using the Statecall Policy Language", 7663 + "link": "https://anil.recoil.org/news/2009-icfem-spl-1", 7664 + "feed_title": "Anil Madhavapeddy's feed", 7665 + "references": [], 7666 + "referenced_by": [] 7667 + }, 7668 + "https://anil.recoil.org/projects/perscon": { 7669 + "id": "https://anil.recoil.org/projects/perscon", 7670 + "title": "Personal Containers", 7671 + "link": "https://anil.recoil.org/projects/perscon", 7672 + "feed_title": "Anil Madhavapeddy's feed", 7673 + "references": [ 7674 + { 7675 + "id": "https://anil.recoil.org/projects/xen", 7676 + "link": "https://anil.recoil.org/projects/xen", 7677 + "title": "Xen Hypervisor", 7678 + "feed_title": "Anil Madhavapeddy's feed" 7679 + }, 7680 + { 7681 + "id": "https://anil.recoil.org/projects/melange", 7682 + "link": "https://anil.recoil.org/projects/melange", 7683 + "title": "Functional Internet Services", 7684 + "feed_title": "Anil Madhavapeddy's feed" 7685 + }, 7686 + { 7687 + "id": "https://anil.recoil.org/notes/uiprototype", 7688 + "link": "https://anil.recoil.org/notes/uiprototype", 7689 + "title": "Pulling together a user interface", 7690 + "feed_title": "Anil Madhavapeddy's feed" 7691 + }, 7692 + { 7693 + "id": "https://anil.recoil.org/notes/yurts-for-digital-nomads", 7694 + "link": "https://anil.recoil.org/notes/yurts-for-digital-nomads", 7695 + "title": "Yurts for Digital Nomads", 7696 + "feed_title": "Anil Madhavapeddy's feed" 7697 + }, 7698 + { 7699 + "id": "https://anil.recoil.org/notes/datacaml-with-ciel", 7700 + "link": "https://anil.recoil.org/notes/datacaml-with-ciel", 7701 + "title": "DataCaml: distributed dataflow programming in OCaml", 7702 + "feed_title": "Anil Madhavapeddy's feed" 7703 + }, 7704 + { 7705 + "id": "https://anil.recoil.org/projects/ocamllabs", 7706 + "link": "https://anil.recoil.org/projects/ocamllabs", 7707 + "title": "OCaml Labs", 7708 + "feed_title": "Anil Madhavapeddy's feed" 7709 + }, 7710 + { 7711 + "id": "https://anil.recoil.org/projects/unikernels", 7712 + "link": "https://anil.recoil.org/projects/unikernels", 7713 + "title": "Unikernels", 7714 + "feed_title": "Anil Madhavapeddy's feed" 7715 + }, 7716 + { 7717 + "id": "https://anil.recoil.org/projects/osmose", 7718 + "link": "https://anil.recoil.org/projects/osmose", 7719 + "title": "Interspatial OS", 7720 + "feed_title": "Anil Madhavapeddy's feed" 7721 + } 7722 + ], 7723 + "referenced_by": [ 7724 + { 7725 + "id": "https://anil.recoil.org/projects/osmose", 7726 + "link": "https://anil.recoil.org/projects/osmose", 7727 + "title": "Interspatial OS", 7728 + "feed_title": "Anil Madhavapeddy's feed" 7729 + }, 7730 + { 7731 + "id": "https://anil.recoil.org/projects/ocamllabs", 7732 + "link": "https://anil.recoil.org/projects/ocamllabs", 7733 + "title": "OCaml Labs", 7734 + "feed_title": "Anil Madhavapeddy's feed" 7735 + }, 7736 + { 7737 + "id": "https://anil.recoil.org/projects/unikernels", 7738 + "link": "https://anil.recoil.org/projects/unikernels", 7739 + "title": "Unikernels", 7740 + "feed_title": "Anil Madhavapeddy's feed" 7741 + }, 7742 + { 7743 + "id": "https://anil.recoil.org/projects/melange", 7744 + "link": "https://anil.recoil.org/projects/melange", 7745 + "title": "Functional Internet Services", 7746 + "feed_title": "Anil Madhavapeddy's feed" 7747 + } 7748 + ] 7749 + }, 7750 + "https://anil.recoil.org/notes/peeking-under-the-hood-of-high-availability": { 7751 + "id": "https://anil.recoil.org/notes/peeking-under-the-hood-of-high-availability", 7752 + "title": "Peeking under the hood of High Availability", 7753 + "link": "https://anil.recoil.org/notes/peeking-under-the-hood-of-high-availability", 7754 + "feed_title": "Anil Madhavapeddy's feed", 7755 + "references": [], 7756 + "referenced_by": [ 7757 + { 7758 + "id": "https://anil.recoil.org/projects/xen", 7759 + "link": "https://anil.recoil.org/projects/xen", 7760 + "title": "Xen Hypervisor", 7761 + "feed_title": "Anil Madhavapeddy's feed" 7762 + } 7763 + ] 7764 + }, 7765 + "https://anil.recoil.org/notes/shedding-some-light-on-xenapp-on-xenserver-performance-tuning": { 7766 + "id": "https://anil.recoil.org/notes/shedding-some-light-on-xenapp-on-xenserver-performance-tuning", 7767 + "title": "Shedding light on XenApp on XenServer performance tuning", 7768 + "link": "https://anil.recoil.org/notes/shedding-some-light-on-xenapp-on-xenserver-performance-tuning", 7769 + "feed_title": "Anil Madhavapeddy's feed", 7770 + "references": [], 7771 + "referenced_by": [ 7772 + { 7773 + "id": "https://anil.recoil.org/projects/xen", 7774 + "link": "https://anil.recoil.org/projects/xen", 7775 + "title": "Xen Hypervisor", 7776 + "feed_title": "Anil Madhavapeddy's feed" 7777 + } 7778 + ] 7779 + }, 7780 + "https://anil.recoil.org/notes/installing-ubuntu-on-xenserver": { 7781 + "id": "https://anil.recoil.org/notes/installing-ubuntu-on-xenserver", 7782 + "title": "Installing Ubuntu on XenServer", 7783 + "link": "https://anil.recoil.org/notes/installing-ubuntu-on-xenserver", 7784 + "feed_title": "Anil Madhavapeddy's feed", 7785 + "references": [], 7786 + "referenced_by": [ 7787 + { 7788 + "id": "https://anil.recoil.org/projects/xen", 7789 + "link": "https://anil.recoil.org/projects/xen", 7790 + "title": "Xen Hypervisor", 7791 + "feed_title": "Anil Madhavapeddy's feed" 7792 + } 7793 + ] 7794 + }, 7795 + "https://anil.recoil.org/news/2008-mobisys-splittrust-1": { 7796 + "id": "https://anil.recoil.org/news/2008-mobisys-splittrust-1", 7797 + "title": "Enhancing web browsing security on public terminals using mobile composition", 7798 + "link": "https://anil.recoil.org/news/2008-mobisys-splittrust-1", 7799 + "feed_title": "Anil Madhavapeddy's feed", 7800 + "references": [], 7801 + "referenced_by": [] 7802 + }, 7803 + "https://anil.recoil.org/news/2007-eurosys-melange-1": { 7804 + "id": "https://anil.recoil.org/news/2007-eurosys-melange-1", 7805 + "title": "Melange: creating a \"functional\" internet", 7806 + "link": "https://anil.recoil.org/news/2007-eurosys-melange-1", 7807 + "feed_title": "Anil Madhavapeddy's feed", 7808 + "references": [], 7809 + "referenced_by": [] 7810 + }, 7811 + "https://anil.recoil.org/news/2006-puc-tags-1": { 7812 + "id": "https://anil.recoil.org/news/2006-puc-tags-1", 7813 + "title": "Interacting with mobile services: an evaluation of camera-phones and visual tags", 7814 + "link": "https://anil.recoil.org/news/2006-puc-tags-1", 7815 + "feed_title": "Anil Madhavapeddy's feed", 7816 + "references": [], 7817 + "referenced_by": [] 7818 + }, 7819 + "https://anil.recoil.org/news/2006-fighting-crimeware-1": { 7820 + "id": "https://anil.recoil.org/news/2006-fighting-crimeware-1", 7821 + "title": "Fighting Crimeware: An Architecture for Split-Trust Web Applications", 7822 + "link": "https://anil.recoil.org/news/2006-fighting-crimeware-1", 7823 + "feed_title": "Anil Madhavapeddy's feed", 7824 + "references": [], 7825 + "referenced_by": [] 7826 + }, 7827 + "https://anil.recoil.org/news/2005-spin-splat-1": { 7828 + "id": "https://anil.recoil.org/news/2005-spin-splat-1", 7829 + "title": "SPLAT: A Tool for Model-Checking and Dynamically-Enforcing Abstractions", 7830 + "link": "https://anil.recoil.org/news/2005-spin-splat-1", 7831 + "feed_title": "Anil Madhavapeddy's feed", 7832 + "references": [], 7833 + "referenced_by": [] 7834 + }, 7835 + "https://anil.recoil.org/news/2005-ubiapp-ubimedia-1": { 7836 + "id": "https://anil.recoil.org/news/2005-ubiapp-ubimedia-1", 7837 + "title": "Ubiquitious Computing needs to catch up with Ubiquitous Media", 7838 + "link": "https://anil.recoil.org/news/2005-ubiapp-ubimedia-1", 7839 + "feed_title": "Anil Madhavapeddy's feed", 7840 + "references": [], 7841 + "referenced_by": [] 7842 + }, 7843 + "https://anil.recoil.org/news/2005-ieee-audio-1": { 7844 + "id": "https://anil.recoil.org/news/2005-ieee-audio-1", 7845 + "title": "Audio networking: the forgotten wireless technology", 7846 + "link": "https://anil.recoil.org/news/2005-ieee-audio-1", 7847 + "feed_title": "Anil Madhavapeddy's feed", 7848 + "references": [], 7849 + "referenced_by": [] 7850 + }, 7851 + "https://anil.recoil.org/news/2005-ubicomp-bluetooth-1": { 7852 + "id": "https://anil.recoil.org/news/2005-ubicomp-bluetooth-1", 7853 + "title": "A Study of Bluetooth Propagation Using Accurate Indoor Location Mapping", 7854 + "link": "https://anil.recoil.org/news/2005-ubicomp-bluetooth-1", 7855 + "feed_title": "Anil Madhavapeddy's feed", 7856 + "references": [], 7857 + "referenced_by": [] 7858 + }, 7859 + "https://anil.recoil.org/notes/c2k5-thoughts": { 7860 + "id": "https://anil.recoil.org/notes/c2k5-thoughts", 7861 + "title": "OpenBSD C2K5 thoughts", 7862 + "link": "https://anil.recoil.org/notes/c2k5-thoughts", 7863 + "feed_title": "Anil Madhavapeddy's feed", 7864 + "references": [], 7865 + "referenced_by": [ 7866 + { 7867 + "id": "https://anil.recoil.org/projects/melange", 7868 + "link": "https://anil.recoil.org/projects/melange", 7869 + "title": "Functional Internet Services", 7870 + "feed_title": "Anil Madhavapeddy's feed" 7871 + } 7872 + ] 7873 + }, 7874 + "https://anil.recoil.org/news/2005-hotdep-spl-1": { 7875 + "id": "https://anil.recoil.org/news/2005-hotdep-spl-1", 7876 + "title": "On the challenge of delivering high-performance, dependable, model-checked internet servers", 7877 + "link": "https://anil.recoil.org/news/2005-hotdep-spl-1", 7878 + "feed_title": "Anil Madhavapeddy's feed", 7879 + "references": [], 7880 + "referenced_by": [] 7881 + }, 7882 + "https://anil.recoil.org/news/2005-mc2r-visualtags-1": { 7883 + "id": "https://anil.recoil.org/news/2005-mc2r-visualtags-1", 7884 + "title": "Using visual tags to bypass Bluetooth device discovery", 7885 + "link": "https://anil.recoil.org/news/2005-mc2r-visualtags-1", 7886 + "feed_title": "Anil Madhavapeddy's feed", 7887 + "references": [ 7888 + { 7889 + "id": "https://anil.recoil.org/projects/ubiqinteraction", 7890 + "link": "https://anil.recoil.org/projects/ubiqinteraction", 7891 + "title": "Ubiquitous Interaction Devices", 7892 + "feed_title": "Anil Madhavapeddy's feed" 7893 + } 7894 + ], 7895 + "referenced_by": [] 7896 + }, 7897 + "https://anil.recoil.org/news/2005-ieee-smartphones-1": { 7898 + "id": "https://anil.recoil.org/news/2005-ieee-smartphones-1", 7899 + "title": "Using smart phones to access site-specific services", 7900 + "link": "https://anil.recoil.org/news/2005-ieee-smartphones-1", 7901 + "feed_title": "Anil Madhavapeddy's feed", 7902 + "references": [], 7903 + "referenced_by": [] 7904 + }, 7905 + "https://anil.recoil.org/news/2005-bbphone-1": { 7906 + "id": "https://anil.recoil.org/news/2005-bbphone-1", 7907 + "title": "The Broadband Phone Network: Experiences with Context-Aware Telephony", 7908 + "link": "https://anil.recoil.org/news/2005-bbphone-1", 7909 + "feed_title": "Anil Madhavapeddy's feed", 7910 + "references": [], 7911 + "referenced_by": [] 7912 + }, 7913 + "https://anil.recoil.org/news/2004-spotcodes-1": { 7914 + "id": "https://anil.recoil.org/news/2004-spotcodes-1", 7915 + "title": "Using camera-phones to interact with context-aware mobile services", 7916 + "link": "https://anil.recoil.org/news/2004-spotcodes-1", 7917 + "feed_title": "Anil Madhavapeddy's feed", 7918 + "references": [], 7919 + "referenced_by": [] 7920 + }, 7921 + "https://anil.recoil.org/notes/spotcodes-nytimes": { 7922 + "id": "https://anil.recoil.org/notes/spotcodes-nytimes", 7923 + "title": "Connecting Paper and Online Worlds by Cellphone", 7924 + "link": "https://anil.recoil.org/notes/spotcodes-nytimes", 7925 + "feed_title": "Anil Madhavapeddy's feed", 7926 + "references": [ 7927 + { 7928 + "id": "https://anil.recoil.org/projects/ubiqinteraction", 7929 + "link": "https://anil.recoil.org/projects/ubiqinteraction", 7930 + "title": "Ubiquitous Interaction Devices", 7931 + "feed_title": "Anil Madhavapeddy's feed" 7932 + } 7933 + ], 7934 + "referenced_by": [] 7935 + }, 7936 + "https://anil.recoil.org/news/2004-ubicomp-camera-1": { 7937 + "id": "https://anil.recoil.org/news/2004-ubicomp-camera-1", 7938 + "title": "Using Camera-Phones to Enhance Human-Computer Interaction", 7939 + "link": "https://anil.recoil.org/news/2004-ubicomp-camera-1", 7940 + "feed_title": "Anil Madhavapeddy's feed", 7941 + "references": [], 7942 + "referenced_by": [] 7943 + }, 7944 + "https://anil.recoil.org/notes/mit-spotcodes": { 7945 + "id": "https://anil.recoil.org/notes/mit-spotcodes", 7946 + "title": "MIT Technology review covers SpotCodes", 7947 + "link": "https://anil.recoil.org/notes/mit-spotcodes", 7948 + "feed_title": "Anil Madhavapeddy's feed", 7949 + "references": [ 7950 + { 7951 + "id": "https://anil.recoil.org/projects/ubiqinteraction", 7952 + "link": "https://anil.recoil.org/projects/ubiqinteraction", 7953 + "title": "Ubiquitous Interaction Devices", 7954 + "feed_title": "Anil Madhavapeddy's feed" 7955 + } 7956 + ], 7957 + "referenced_by": [] 7958 + }, 7959 + "https://anil.recoil.org/news/netgames04-ctf-1": { 7960 + "id": "https://anil.recoil.org/news/netgames04-ctf-1", 7961 + "title": "Exploring tradeoffs in location-aware gaming using smartphones", 7962 + "link": "https://anil.recoil.org/news/netgames04-ctf-1", 7963 + "feed_title": "Anil Madhavapeddy's feed", 7964 + "references": [], 7965 + "referenced_by": [] 7966 + }, 7967 + "https://anil.recoil.org/notes/wired-spotcode": { 7968 + "id": "https://anil.recoil.org/notes/wired-spotcode", 7969 + "title": "From the prawn of time", 7970 + "link": "https://anil.recoil.org/notes/wired-spotcode", 7971 + "feed_title": "Anil Madhavapeddy's feed", 7972 + "references": [], 7973 + "referenced_by": [] 7974 + }, 7975 + "https://anil.recoil.org/notes/hem": { 7976 + "id": "https://anil.recoil.org/notes/hem", 7977 + "title": "Cellphone as a virtual mouse/keyboard", 7978 + "link": "https://anil.recoil.org/notes/hem", 7979 + "feed_title": "Anil Madhavapeddy's feed", 7980 + "references": [ 7981 + { 7982 + "id": "https://anil.recoil.org/projects/ubiqinteraction", 7983 + "link": "https://anil.recoil.org/projects/ubiqinteraction", 7984 + "title": "Ubiquitous Interaction Devices", 7985 + "feed_title": "Anil Madhavapeddy's feed" 7986 + } 7987 + ], 7988 + "referenced_by": [] 7989 + }, 7990 + "https://anil.recoil.org/news/audio-networking-1": { 7991 + "id": "https://anil.recoil.org/news/audio-networking-1", 7992 + "title": "Context-Aware Computing with Sound", 7993 + "link": "https://anil.recoil.org/news/audio-networking-1", 7994 + "feed_title": "Anil Madhavapeddy's feed", 7995 + "references": [], 7996 + "referenced_by": [] 7997 + }, 7998 + "https://anil.recoil.org/notes/gcc-bounds": { 7999 + "id": "https://anil.recoil.org/notes/gcc-bounds", 8000 + "title": "My static C bounds checker extension merged into OpenBSD", 8001 + "link": "https://anil.recoil.org/notes/gcc-bounds", 8002 + "feed_title": "Anil Madhavapeddy's feed", 8003 + "references": [], 8004 + "referenced_by": [] 8005 + }, 8006 + "https://anil.recoil.org/news/sam03-secpol-1": { 8007 + "id": "https://anil.recoil.org/news/sam03-secpol-1", 8008 + "title": "The Case for Abstracting Security Policies", 8009 + "link": "https://anil.recoil.org/news/sam03-secpol-1", 8010 + "feed_title": "Anil Madhavapeddy's feed", 8011 + "references": [], 8012 + "referenced_by": [] 8013 + }, 8014 + "https://anil.recoil.org/notes/opening-anil-recoil-org": { 8015 + "id": "https://anil.recoil.org/notes/opening-anil-recoil-org", 8016 + "title": "Moving to anil.recoil.org", 8017 + "link": "https://anil.recoil.org/notes/opening-anil-recoil-org", 8018 + "feed_title": "Anil Madhavapeddy's feed", 8019 + "references": [], 8020 + "referenced_by": [ 8021 + { 8022 + "id": "https://anil.recoil.org/notes/bushel-step1", 8023 + "link": "https://anil.recoil.org/notes/bushel-step1", 8024 + "title": "Rolling out a new site design", 8025 + "feed_title": "Anil Madhavapeddy's feed" 8026 + } 8027 + ] 8028 + }, 8029 + "https://anil.recoil.org/news/xen02-1": { 8030 + "id": "https://anil.recoil.org/news/xen02-1", 8031 + "title": "Xen 2002", 8032 + "link": "https://anil.recoil.org/news/xen02-1", 8033 + "feed_title": "Anil Madhavapeddy's feed", 8034 + "references": [ 8035 + { 8036 + "id": "https://anil.recoil.org/projects/xen", 8037 + "link": "https://anil.recoil.org/projects/xen", 8038 + "title": "Xen Hypervisor", 8039 + "feed_title": "Anil Madhavapeddy's feed" 8040 + } 8041 + ], 8042 + "referenced_by": [] 8043 + }, 8044 + "https://anil.recoil.org/projects/ubiqinteraction": { 8045 + "id": "https://anil.recoil.org/projects/ubiqinteraction", 8046 + "title": "Ubiquitous Interaction Devices", 8047 + "link": "https://anil.recoil.org/projects/ubiqinteraction", 8048 + "feed_title": "Anil Madhavapeddy's feed", 8049 + "references": [ 8050 + { 8051 + "id": "https://anil.recoil.org/projects/xen", 8052 + "link": "https://anil.recoil.org/projects/xen", 8053 + "title": "Xen Hypervisor", 8054 + "feed_title": "Anil Madhavapeddy's feed" 8055 + }, 8056 + { 8057 + "id": "https://anil.recoil.org/projects/osmose", 8058 + "link": "https://anil.recoil.org/projects/osmose", 8059 + "title": "Interspatial OS", 8060 + "feed_title": "Anil Madhavapeddy's feed" 8061 + } 8062 + ], 8063 + "referenced_by": [ 8064 + { 8065 + "id": "https://anil.recoil.org/news/2005-mc2r-visualtags-1", 8066 + "link": "https://anil.recoil.org/news/2005-mc2r-visualtags-1", 8067 + "title": "Using visual tags to bypass Bluetooth device discovery", 8068 + "feed_title": "Anil Madhavapeddy's feed" 8069 + }, 8070 + { 8071 + "id": "https://anil.recoil.org/notes/spotcodes-nytimes", 8072 + "link": "https://anil.recoil.org/notes/spotcodes-nytimes", 8073 + "title": "Connecting Paper and Online Worlds by Cellphone", 8074 + "feed_title": "Anil Madhavapeddy's feed" 8075 + }, 8076 + { 8077 + "id": "https://anil.recoil.org/notes/mit-spotcodes", 8078 + "link": "https://anil.recoil.org/notes/mit-spotcodes", 8079 + "title": "MIT Technology review covers SpotCodes", 8080 + "feed_title": "Anil Madhavapeddy's feed" 8081 + }, 8082 + { 8083 + "id": "https://anil.recoil.org/notes/hem", 8084 + "link": "https://anil.recoil.org/notes/hem", 8085 + "title": "Cellphone as a virtual mouse/keyboard", 8086 + "feed_title": "Anil Madhavapeddy's feed" 8087 + }, 8088 + { 8089 + "id": "https://anil.recoil.org/projects/xen", 8090 + "link": "https://anil.recoil.org/projects/xen", 8091 + "title": "Xen Hypervisor", 8092 + "feed_title": "Anil Madhavapeddy's feed" 8093 + } 8094 + ] 8095 + }, 8096 + "https://anil.recoil.org/projects/melange": { 8097 + "id": "https://anil.recoil.org/projects/melange", 8098 + "title": "Functional Internet Services", 8099 + "link": "https://anil.recoil.org/projects/melange", 8100 + "feed_title": "Anil Madhavapeddy's feed", 8101 + "references": [ 8102 + { 8103 + "id": "https://anil.recoil.org/notes/c2k5-thoughts", 8104 + "link": "https://anil.recoil.org/notes/c2k5-thoughts", 8105 + "title": "OpenBSD C2K5 thoughts", 8106 + "feed_title": "Anil Madhavapeddy's feed" 8107 + }, 8108 + { 8109 + "id": "https://anil.recoil.org/projects/xen", 8110 + "link": "https://anil.recoil.org/projects/xen", 8111 + "title": "Xen Hypervisor", 8112 + "feed_title": "Anil Madhavapeddy's feed" 8113 + }, 8114 + { 8115 + "id": "https://anil.recoil.org/projects/perscon", 8116 + "link": "https://anil.recoil.org/projects/perscon", 8117 + "title": "Personal Containers", 8118 + "feed_title": "Anil Madhavapeddy's feed" 8119 + }, 8120 + { 8121 + "id": "https://anil.recoil.org/projects/unikernels", 8122 + "link": "https://anil.recoil.org/projects/unikernels", 8123 + "title": "Unikernels", 8124 + "feed_title": "Anil Madhavapeddy's feed" 8125 + } 8126 + ], 8127 + "referenced_by": [ 8128 + { 8129 + "id": "https://anil.recoil.org/projects/ocamllabs", 8130 + "link": "https://anil.recoil.org/projects/ocamllabs", 8131 + "title": "OCaml Labs", 8132 + "feed_title": "Anil Madhavapeddy's feed" 8133 + }, 8134 + { 8135 + "id": "https://anil.recoil.org/projects/unikernels", 8136 + "link": "https://anil.recoil.org/projects/unikernels", 8137 + "title": "Unikernels", 8138 + "feed_title": "Anil Madhavapeddy's feed" 8139 + }, 8140 + { 8141 + "id": "https://anil.recoil.org/projects/perscon", 8142 + "link": "https://anil.recoil.org/projects/perscon", 8143 + "title": "Personal Containers", 8144 + "feed_title": "Anil Madhavapeddy's feed" 8145 + } 8146 + ] 8147 + }, 8148 + "https://anil.recoil.org/notes/starting-phd": { 8149 + "id": "https://anil.recoil.org/notes/starting-phd", 8150 + "title": "Started PhD at Cambridge", 8151 + "link": "https://anil.recoil.org/notes/starting-phd", 8152 + "feed_title": "Anil Madhavapeddy's feed", 8153 + "references": [ 8154 + { 8155 + "id": "https://anil.recoil.org/projects/xen", 8156 + "link": "https://anil.recoil.org/projects/xen", 8157 + "title": "Xen Hypervisor", 8158 + "feed_title": "Anil Madhavapeddy's feed" 8159 + } 8160 + ], 8161 + "referenced_by": [] 8162 + }, 8163 + "https://anil.recoil.org/notes/php-port-layout-openbsd": { 8164 + "id": "https://anil.recoil.org/notes/php-port-layout-openbsd", 8165 + "title": "Streamlining PHP on OpenBSD", 8166 + "link": "https://anil.recoil.org/notes/php-port-layout-openbsd", 8167 + "feed_title": "Anil Madhavapeddy's feed", 8168 + "references": [], 8169 + "referenced_by": [] 8170 + }, 8171 + "https://anil.recoil.org/news/netapp-tr-3152-1": { 8172 + "id": "https://anil.recoil.org/news/netapp-tr-3152-1", 8173 + "title": "Streaming U2 live across the Internet", 8174 + "link": "https://anil.recoil.org/news/netapp-tr-3152-1", 8175 + "feed_title": "Anil Madhavapeddy's feed", 8176 + "references": [ 8177 + { 8178 + "id": "https://anil.recoil.org/notes/mars-polar-lander", 8179 + "link": "https://anil.recoil.org/notes/mars-polar-lander", 8180 + "title": "Slashdot covers the Mars Polar Lander", 8181 + "feed_title": "Anil Madhavapeddy's feed" 8182 + } 8183 + ], 8184 + "referenced_by": [] 8185 + }, 8186 + "https://anil.recoil.org/projects/xen": { 8187 + "id": "https://anil.recoil.org/projects/xen", 8188 + "title": "Xen Hypervisor", 8189 + "link": "https://anil.recoil.org/projects/xen", 8190 + "feed_title": "Anil Madhavapeddy's feed", 8191 + "references": [ 8192 + { 8193 + "id": "https://anil.recoil.org/projects/ubiqinteraction", 8194 + "link": "https://anil.recoil.org/projects/ubiqinteraction", 8195 + "title": "Ubiquitous Interaction Devices", 8196 + "feed_title": "Anil Madhavapeddy's feed" 8197 + }, 8198 + { 8199 + "id": "https://anil.recoil.org/notes/installing-ubuntu-on-xenserver", 8200 + "link": "https://anil.recoil.org/notes/installing-ubuntu-on-xenserver", 8201 + "title": "Installing Ubuntu on XenServer", 8202 + "feed_title": "Anil Madhavapeddy's feed" 8203 + }, 8204 + { 8205 + "id": "https://anil.recoil.org/notes/shedding-some-light-on-xenapp-on-xenserver-performance-tuning", 8206 + "link": "https://anil.recoil.org/notes/shedding-some-light-on-xenapp-on-xenserver-performance-tuning", 8207 + "title": "Shedding light on XenApp on XenServer performance tuning", 8208 + "feed_title": "Anil Madhavapeddy's feed" 8209 + }, 8210 + { 8211 + "id": "https://anil.recoil.org/notes/peeking-under-the-hood-of-high-availability", 8212 + "link": "https://anil.recoil.org/notes/peeking-under-the-hood-of-high-availability", 8213 + "title": "Peeking under the hood of High Availability", 8214 + "feed_title": "Anil Madhavapeddy's feed" 8215 + }, 8216 + { 8217 + "id": "https://anil.recoil.org/projects/unikernels", 8218 + "link": "https://anil.recoil.org/projects/unikernels", 8219 + "title": "Unikernels", 8220 + "feed_title": "Anil Madhavapeddy's feed" 8221 + }, 8222 + { 8223 + "id": "https://anil.recoil.org/projects/osmose", 8224 + "link": "https://anil.recoil.org/projects/osmose", 8225 + "title": "Interspatial OS", 8226 + "feed_title": "Anil Madhavapeddy's feed" 8227 + } 8228 + ], 8229 + "referenced_by": [ 8230 + { 8231 + "id": "https://anil.recoil.org/notes/fpgas-hardcaml", 8232 + "link": "https://anil.recoil.org/notes/fpgas-hardcaml", 8233 + "title": "Programming FPGAs using OCaml", 8234 + "feed_title": "Anil Madhavapeddy's feed" 8235 + }, 8236 + { 8237 + "id": "https://anil.recoil.org/projects/unikernels", 8238 + "link": "https://anil.recoil.org/projects/unikernels", 8239 + "title": "Unikernels", 8240 + "feed_title": "Anil Madhavapeddy's feed" 8241 + }, 8242 + { 8243 + "id": "https://anil.recoil.org/projects/perscon", 8244 + "link": "https://anil.recoil.org/projects/perscon", 8245 + "title": "Personal Containers", 8246 + "feed_title": "Anil Madhavapeddy's feed" 8247 + }, 8248 + { 8249 + "id": "https://anil.recoil.org/news/xen02-1", 8250 + "link": "https://anil.recoil.org/news/xen02-1", 8251 + "title": "Xen 2002", 8252 + "feed_title": "Anil Madhavapeddy's feed" 8253 + }, 8254 + { 8255 + "id": "https://anil.recoil.org/projects/ubiqinteraction", 8256 + "link": "https://anil.recoil.org/projects/ubiqinteraction", 8257 + "title": "Ubiquitous Interaction Devices", 8258 + "feed_title": "Anil Madhavapeddy's feed" 8259 + }, 8260 + { 8261 + "id": "https://anil.recoil.org/projects/melange", 8262 + "link": "https://anil.recoil.org/projects/melange", 8263 + "title": "Functional Internet Services", 8264 + "feed_title": "Anil Madhavapeddy's feed" 8265 + }, 8266 + { 8267 + "id": "https://anil.recoil.org/notes/starting-phd", 8268 + "link": "https://anil.recoil.org/notes/starting-phd", 8269 + "title": "Started PhD at Cambridge", 8270 + "feed_title": "Anil Madhavapeddy's feed" 8271 + } 8272 + ] 8273 + }, 8274 + "https://anil.recoil.org/notes/horde-cache": { 8275 + "id": "https://anil.recoil.org/notes/horde-cache", 8276 + "title": "Added a caching subsystem to Horde", 8277 + "link": "https://anil.recoil.org/notes/horde-cache", 8278 + "feed_title": "Anil Madhavapeddy's feed", 8279 + "references": [], 8280 + "referenced_by": [] 8281 + }, 8282 + "https://anil.recoil.org/notes/chora-live-on-php": { 8283 + "id": "https://anil.recoil.org/notes/chora-live-on-php", 8284 + "title": "Chora now the production CVS viewer for PHP", 8285 + "link": "https://anil.recoil.org/notes/chora-live-on-php", 8286 + "feed_title": "Anil Madhavapeddy's feed", 8287 + "references": [], 8288 + "referenced_by": [] 8289 + }, 8290 + "https://anil.recoil.org/notes/chora-internationalised": { 8291 + "id": "https://anil.recoil.org/notes/chora-internationalised", 8292 + "title": "Added internationalisation to the Chora viewer", 8293 + "link": "https://anil.recoil.org/notes/chora-internationalised", 8294 + "feed_title": "Anil Madhavapeddy's feed", 8295 + "references": [], 8296 + "referenced_by": [] 8297 + }, 8298 + "https://anil.recoil.org/notes/openfx": { 8299 + "id": "https://anil.recoil.org/notes/openfx", 8300 + "title": "GPL release of OpenFX", 8301 + "link": "https://anil.recoil.org/notes/openfx", 8302 + "feed_title": "Anil Madhavapeddy's feed", 8303 + "references": [], 8304 + "referenced_by": [] 8305 + }, 8306 + "https://anil.recoil.org/notes/commit-access-to-php": { 8307 + "id": "https://anil.recoil.org/notes/commit-access-to-php", 8308 + "title": "I am now a core PHP developer", 8309 + "link": "https://anil.recoil.org/notes/commit-access-to-php", 8310 + "feed_title": "Anil Madhavapeddy's feed", 8311 + "references": [], 8312 + "referenced_by": [ 8313 + { 8314 + "id": "https://anil.recoil.org/notes/bushel-lives", 8315 + "link": "https://anil.recoil.org/notes/bushel-lives", 8316 + "title": "Arise Bushel, my sixth generation oxidised website", 8317 + "feed_title": "Anil Madhavapeddy's feed" 8318 + } 8319 + ] 8320 + }, 8321 + "https://anil.recoil.org/notes/openbsd-developer": { 8322 + "id": "https://anil.recoil.org/notes/openbsd-developer", 8323 + "title": "I'm now an OpenBSD developer", 8324 + "link": "https://anil.recoil.org/notes/openbsd-developer", 8325 + "feed_title": "Anil Madhavapeddy's feed", 8326 + "references": [], 8327 + "referenced_by": [] 8328 + }, 8329 + "https://anil.recoil.org/notes/horde-developer": { 8330 + "id": "https://anil.recoil.org/notes/horde-developer", 8331 + "title": "I'm now a Horde core team member", 8332 + "link": "https://anil.recoil.org/notes/horde-developer", 8333 + "feed_title": "Anil Madhavapeddy's feed", 8334 + "references": [], 8335 + "referenced_by": [] 8336 + }, 8337 + "https://anil.recoil.org/news/netapp-tr-3071-1": { 8338 + "id": "https://anil.recoil.org/news/netapp-tr-3071-1", 8339 + "title": "Paper on the NASA Mars Polar Lander website architecture", 8340 + "link": "https://anil.recoil.org/news/netapp-tr-3071-1", 8341 + "feed_title": "Anil Madhavapeddy's feed", 8342 + "references": [ 8343 + { 8344 + "id": "https://anil.recoil.org/notes/mars-polar-lander", 8345 + "link": "https://anil.recoil.org/notes/mars-polar-lander", 8346 + "title": "Slashdot covers the Mars Polar Lander", 8347 + "feed_title": "Anil Madhavapeddy's feed" 8348 + } 8349 + ], 8350 + "referenced_by": [] 8351 + }, 8352 + "https://anil.recoil.org/notes/mars-polar-lander": { 8353 + "id": "https://anil.recoil.org/notes/mars-polar-lander", 8354 + "title": "Slashdot covers the Mars Polar Lander", 8355 + "link": "https://anil.recoil.org/notes/mars-polar-lander", 8356 + "feed_title": "Anil Madhavapeddy's feed", 8357 + "references": [], 8358 + "referenced_by": [ 8359 + { 8360 + "id": "https://anil.recoil.org/news/netapp-tr-3152-1", 8361 + "link": "https://anil.recoil.org/news/netapp-tr-3152-1", 8362 + "title": "Streaming U2 live across the Internet", 8363 + "feed_title": "Anil Madhavapeddy's feed" 8364 + }, 8365 + { 8366 + "id": "https://anil.recoil.org/news/netapp-tr-3071-1", 8367 + "link": "https://anil.recoil.org/news/netapp-tr-3071-1", 8368 + "title": "Paper on the NASA Mars Polar Lander website architecture", 8369 + "feed_title": "Anil Madhavapeddy's feed" 8370 + } 8371 + ] 8372 + } 8373 + }