<spanclass=logo-switches><buttonid=theme-toggleaccesskey=ttitle="(Alt + T)"><svgid="moon"xmlns="http://www.w3.org/2000/svg"width="24"height="24"viewBox="0 0 24 24"fill="none"stroke="currentcolor"stroke-width="2"stroke-linecap="round"stroke-linejoin="round"><pathd="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg><svgid="sun"xmlns="http://www.w3.org/2000/svg"width="24"height="24"viewBox="0 0 24 24"fill="none"stroke="currentcolor"stroke-width="2"stroke-linecap="round"stroke-linejoin="round"><circlecx="12"cy="12"r="5"/><linex1="12"y1="1"x2="12"y2="3"/><linex1="12"y1="21"x2="12"y2="23"/><linex1="4.22"y1="4.22"x2="5.64"y2="5.64"/><linex1="18.36"y1="18.36"x2="19.78"y2="19.78"/><linex1="1"y1="12"x2="3"y2="12"/><linex1="21"y1="12"x2="23"y2="12"/><linex1="4.22"y1="19.78"x2="5.64"y2="18.36"/><linex1="18.36"y1="5.64"x2="19.78"y2="4.22"/></svg></button></span></div><ulid=menu><li><ahref=https://blog.hillion.co.uk/categories/title=categories><span>categories</span></a></li><li><ahref=https://blog.hillion.co.uk/tags/title=tags><span>tags</span></a></li></ul></nav></header><mainclass=main><articleclass="first-entry home-info"><headerclass=entry-header><h1>Hi there 👋</h1></header><sectionclass=entry-content><p>Welcome to my blog. Here I’ll aim to post <ahref=/categories/weekly-updates/>weekly updates</a> on my research progress
and other development bits I’ve been up to in the week. With a bit of luck there
will be deep dives into topics I’ve discovered something about, particularly when
they’re otherwise poorly documented online.</p></section><footerclass=entry-footer><divclass=social-icons><ahref=https://twitter.com/JakeHilliontarget=_blankrel="noopener noreferrer me"title=Twitter><svgxmlns="http://www.w3.org/2000/svg"viewBox="0 0 24 24"fill="none"stroke="currentcolor"stroke-width="2"stroke-linecap="round"stroke-linejoin="round"><pathd="M23 3a10.9 10.9.0 01-3.14 1.53 4.48 4.48.0 00-7.86 3v1A10.66 10.66.0 013 4s-4 9 5 13a11.64 11.64.0 01-7 2c9 5 20 0 20-11.5a4.5 4.5.0 00-.08-.83A7.72 7.72.0 0023 3z"/></svg></a><ahref=https://github.com/JakeHilliontarget=_blankrel="noopener noreferrer me"title=Github><svgxmlns="http://www.w3.org/2000/svg"viewBox="0 0 24 24"fill="none"stroke="currentcolor"stroke-width="2"stroke-linecap="round"stroke-linejoin="round"><pathd="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg></a><ahref=https://www.linkedin.com/in/jakehillion/target=_blankrel="noopener noreferrer me"title=Linkedin><svgxmlns="http://www.w3.org/2000/svg"viewBox="0 0 24 24"fill="none"stroke="currentcolor"stroke-width="2"stroke-linecap="round"stroke-linejoin="round"><pathd="M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6z"/><rectx="2"y="9"width="4"height="12"/><circlecx="4"cy="4"r="2"/></svg></a></div></footer></article><articleclass=post-entry><headerclass=entry-header><h2>Void Processes: Minimising privilege by default</h2></header><sectionclass=entry-content><p>Recently I concluded the work on my Part III (M.Eng) dissertation. This was on Void Processes, a mechanism to statically distribute fine-grained privilege to application processes on Linux.
My dissertation is available here. I plan to make a series of posts over the next few weeks documenting my findings in smaller snippets, particularly the experience of voiding mount namespaces. In the future, I hope to produce some work which increases the performance of creating empty namespaces....</p></section><footerclass=entry-footer><spantitle='2022-06-06 14:00:00 +0100 +0100'>June 6, 2022</span> · 2 min · Jake Hillion</footer><aclass=entry-linkaria-label="post link to Void Processes: Minimising privilege by default"href=https://blog.hillion.co.uk/posts/void-processes/dissertation/></a></article><articleclass=post-entry><headerclass=entry-header><h2>Chia Database Torrents 🌱👨💻🌐</h2></header><sectionclass=entry-content><p>Having trouble keeping your Chia database in sync? Database corruption leading to days or weeks of syncing? These Chia database torrents might help you out.
I had the same problem myself, and tried to backup the database file like I would most things. Unfortunately it snapshots and deduplicates incredibly poorly, as much of the file changes almost immediately after restarting. Given that I can’t be the only one having these problems, I extended my backup script to create torrents of the database when I snapshot it....</p></section><footerclass=entry-footer><spantitle='2022-03-22 13:00:00 +0000 UTC'>March 22, 2022</span> · 2 min · Jake Hillion</footer><aclass=entry-linkaria-label="post link to Chia Database Torrents 🌱👨💻🌐"href=https://blog.hillion.co.uk/posts/chia-db-torrents/></a></article><articleclass=post-entry><headerclass=entry-header><h2>Drone CI and Crypto Honeypots 💰🍯📚</h2></header><sectionclass=entry-content><p>One gloomy Tuesday evening, I SSHed into my CI server and ran htop as I had hundreds of times before. The machine is pinned running my jobs, but wait… Something is wrong.
htop showing bad things I certainly wasn’t running any jobs involving Tensorflow, and I’m not in the habit of mining cryptocurrencies on my CI server.
<ahref=https://git.io/hugopapermodrel=noopenertarget=_blank>PaperMod</a></span></footer><ahref=#toparia-label="go to top"title="Go to Top (Alt + G)"class=top-linkid=top-linkaccesskey=g><svgxmlns="http://www.w3.org/2000/svg"viewBox="0 0 12 6"fill="currentcolor"><pathd="M12 6H0l6-6z"/></svg></a><script>letmenu=document.getElementById("menu");menu&&(menu.scrollLeft=localStorage.getItem("menu-scroll-position"),menu.onscroll=function(){localStorage.setItem("menu-scroll-position",menu.scrollLeft)}),document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault();vart=this.getAttribute("href").substr(1);window.matchMedia("(prefers-reduced-motion: reduce)").matches?document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView():document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({behavior:"smooth"}),t==="top"?history.replaceState(null,null," "):history.pushState(null,null,`#${t}`)})})</script><script>varmybutton=document.getElementById("top-link");window.onscroll=function(){document.body.scrollTop>800||document.documentElement.scrollTop>800?(mybutton.style.visibility="visible",mybutton.style.opacity="1"):(mybutton.style.visibility="hidden",mybutton.style.opacity="0")}</script><script>document.getElementById("theme-toggle").addEventListener("click",()=>{document.body.className.includes("dark")?(document.body.classList.remove("dark"),localStorage.setItem("pref-theme","light")):(document.body.classList.add("dark"),localStorage.setItem("pref-theme","dark"))})</script></body></html>