Thicket data repository for the EEG
at main 8.8 kB view raw
1{ 2 "id": "https://ryan.freumh.org/2025-02-10.html", 3 "title": "10 Feb 2025", 4 "link": "https://ryan.freumh.org/2025-02-10.html", 5 "updated": "2025-02-10T00:00:00", 6 "published": "2025-02-10T00:00:00", 7 "summary": "<div>\n <span> Previous: <a href=\"2025-02-03.html\"> 3 Feb 2025</a> </span>\n <span> Next: <a href=\"2025-02-17.html\">17 Feb 2025</a> </span>\n </div>\n \n \n\n <ol>\n<li><p><span>Babel: solve the opam repository with <a href=\"https://github.com/RyanGibb/pubgrub-opam\">pubgrub-opam</a></span></p>\n<ol>\n<li><p><span>While converting the whole repository I fixed a\nbug in a package <a href=\"https://github.com/ocaml/opam-repository/pull/27429\">definition</a></span></p></li>\n<li><p><span><span>X</span> <a href=\"https://github.com/RyanGibb/pubgrub-opam/commit/2cb66fe1ae13bc16e1b5116948de5ee2dcba990a\">on-demand\ndependency provider</a></span></p>\n<p><span>opam-repository has a lot of packages, so we only\nload packages we need</span></p>\n<ol>\n<li><p><span><span>O</span> add a <a href=\"https://pubgrub-rs-guide.pages.dev/pubgrub_crate/caching\">caching\ndependency provider</a> with interior mutation</span></p></li>\n</ol></li>\n<li><p><span><span>X</span> parse <a href=\"https://opam.ocaml.org/doc/Manual.html#Package-Formulas\">filtered\npackage formula</a></span></p>\n<ul>\n<li>While the grammar allows for it I can’t actually find any booleans\nor integers in the dependency formula of Opam.</li>\n<li>Why are they there?</li>\n<li>I’m just ignoring them for now so I don’t need to complement logic\nfor comparing them etc.</li>\n</ul></li>\n<li><p><span><span>X</span> encode\nfiltered package formula in pubgrub</span></p>\n<p><span>Take <code>(A, 1)</code> depending\non <code>B {build}</code> as a minimal example. We\nencode this in the ‘package calculus’ as</span></p>\n<pre><code>(A, 1) -&gt; (B {build}, *)\n(B {build}, lhs) -&gt; (B, *), (`build`, false)\n(B {build}, rhs) -&gt; (`build`, true)\n</code></pre>\n<p><span>Note that <code>B {build}</code>\nis a proxy package associated with the formula <code>build</code>.</span></p>\n<ol>\n<li><p><span><span>O</span> conjuntions\nand disjuntions aren’t complete</span></p></li>\n</ol></li>\n</ol></li>\n<li><p><span>A deployment idea</span></p>\n<ul>\n<li>whenever a binary is executed, execute the packaging/build lazily to\nsatisfy the request for that binary</li>\n<li>you could use <code>binfmt_misc</code> for this in\nLinux</li>\n<li>with mount namespaces, you could hide the compilation/packaging of\nthe binary in its own namespace and the only thing “exported” to the\nmain filesystem are the binary/data needed to runtime</li>\n</ul></li>\n<li><p><span>Teaching</span></p>\n<p><span>I marked the first supervision work for Robinson\nPart II’s Computer Networking.</span></p>\n<p><span>There’s a bit of a tension between examinable work\nand hands-on experience. I’ve <a href=\"2024-02-12.html#teaching\">previously</a> given some practical ideas\nfor students, but didn’t get any bites.</span></p>\n<p><span>Patrick said his networking supervisor was very\nlight on the setting / marking work, but gave them a lot of hands-on\ndemos of real life Linux networking with <code>iptables</code> and so on. Michael recounted his Unix\nsocket programming introduction to networking, which I think is great.\nMy first networking practical was writing a file distribution program\nthen some hands-on performance analysis of TCP.</span></p>\n<p><span>I think a bit of this practical element is missing\nin the Cambridge curriculum. The course page <a href=\"https://www.cl.cam.ac.uk/teaching/2425/CompNet/handson/\">encourages</a>\nlearning by doing, but with the pressures of term I haven’t found many\nstudents have the time to pick up work that does count towards their\ngrade. The masters-level course on networking, <a href=\"https://www.cl.cam.ac.uk/teaching/2122/L50/\">Introduction to\nnetworking and systems measurements</a>, gets very practical, which I\nthink is great.</span></p></li>\n<li><p><span>SNS</span></p>\n<ol>\n<li><p><span><span>O</span> read <a href=\"https://arxiv.org/pdf/2405.20745\">https://arxiv.org/pdf/2405.20745</a>\nand think about how it could apply to a spatial DSL</span></p></li>\n</ol></li>\n<li><p><span>Misc</span></p>\n<ol>\n<li><p><span><span>O</span> write up\nresearch ideas for website</span></p></li>\n</ol></li>\n</ol>", 8 "content": "<div>\n <span> Previous: <a href=\"2025-02-03.html\"> 3 Feb 2025</a> </span>\n <span> Next: <a href=\"2025-02-17.html\">17 Feb 2025</a> </span>\n </div>\n \n \n\n <ol>\n<li><p><span>Babel: solve the opam repository with <a href=\"https://github.com/RyanGibb/pubgrub-opam\">pubgrub-opam</a></span></p>\n<ol>\n<li><p><span>While converting the whole repository I fixed a\nbug in a package <a href=\"https://github.com/ocaml/opam-repository/pull/27429\">definition</a></span></p></li>\n<li><p><span><span>X</span> <a href=\"https://github.com/RyanGibb/pubgrub-opam/commit/2cb66fe1ae13bc16e1b5116948de5ee2dcba990a\">on-demand\ndependency provider</a></span></p>\n<p><span>opam-repository has a lot of packages, so we only\nload packages we need</span></p>\n<ol>\n<li><p><span><span>O</span> add a <a href=\"https://pubgrub-rs-guide.pages.dev/pubgrub_crate/caching\">caching\ndependency provider</a> with interior mutation</span></p></li>\n</ol></li>\n<li><p><span><span>X</span> parse <a href=\"https://opam.ocaml.org/doc/Manual.html#Package-Formulas\">filtered\npackage formula</a></span></p>\n<ul>\n<li>While the grammar allows for it I can’t actually find any booleans\nor integers in the dependency formula of Opam.</li>\n<li>Why are they there?</li>\n<li>I’m just ignoring them for now so I don’t need to complement logic\nfor comparing them etc.</li>\n</ul></li>\n<li><p><span><span>X</span> encode\nfiltered package formula in pubgrub</span></p>\n<p><span>Take <code>(A, 1)</code> depending\non <code>B {build}</code> as a minimal example. We\nencode this in the ‘package calculus’ as</span></p>\n<pre><code>(A, 1) -&gt; (B {build}, *)\n(B {build}, lhs) -&gt; (B, *), (`build`, false)\n(B {build}, rhs) -&gt; (`build`, true)\n</code></pre>\n<p><span>Note that <code>B {build}</code>\nis a proxy package associated with the formula <code>build</code>.</span></p>\n<ol>\n<li><p><span><span>O</span> conjuntions\nand disjuntions aren’t complete</span></p></li>\n</ol></li>\n</ol></li>\n<li><p><span>A deployment idea</span></p>\n<ul>\n<li>whenever a binary is executed, execute the packaging/build lazily to\nsatisfy the request for that binary</li>\n<li>you could use <code>binfmt_misc</code> for this in\nLinux</li>\n<li>with mount namespaces, you could hide the compilation/packaging of\nthe binary in its own namespace and the only thing “exported” to the\nmain filesystem are the binary/data needed to runtime</li>\n</ul></li>\n<li><p><span>Teaching</span></p>\n<p><span>I marked the first supervision work for Robinson\nPart II’s Computer Networking.</span></p>\n<p><span>There’s a bit of a tension between examinable work\nand hands-on experience. I’ve <a href=\"2024-02-12.html#teaching\">previously</a> given some practical ideas\nfor students, but didn’t get any bites.</span></p>\n<p><span>Patrick said his networking supervisor was very\nlight on the setting / marking work, but gave them a lot of hands-on\ndemos of real life Linux networking with <code>iptables</code> and so on. Michael recounted his Unix\nsocket programming introduction to networking, which I think is great.\nMy first networking practical was writing a file distribution program\nthen some hands-on performance analysis of TCP.</span></p>\n<p><span>I think a bit of this practical element is missing\nin the Cambridge curriculum. The course page <a href=\"https://www.cl.cam.ac.uk/teaching/2425/CompNet/handson/\">encourages</a>\nlearning by doing, but with the pressures of term I haven’t found many\nstudents have the time to pick up work that does count towards their\ngrade. The masters-level course on networking, <a href=\"https://www.cl.cam.ac.uk/teaching/2122/L50/\">Introduction to\nnetworking and systems measurements</a>, gets very practical, which I\nthink is great.</span></p></li>\n<li><p><span>SNS</span></p>\n<ol>\n<li><p><span><span>O</span> read <a href=\"https://arxiv.org/pdf/2405.20745\">https://arxiv.org/pdf/2405.20745</a>\nand think about how it could apply to a spatial DSL</span></p></li>\n</ol></li>\n<li><p><span>Misc</span></p>\n<ol>\n<li><p><span><span>O</span> write up\nresearch ideas for website</span></p></li>\n</ol></li>\n</ol>", 9 "content_type": "html", 10 "categories": [], 11 "source": "https://ryan.freumh.org/atom.xml" 12}