<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Eliyahu's Ramblings</title><link>http://eliyahu.co.uk/</link><description>Recent content on Eliyahu's Ramblings</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Thu, 30 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://eliyahu.co.uk/index.xml" rel="self" type="application/rss+xml"/><item><title>Antidepressants are magic. I still hate them.</title><link>http://eliyahu.co.uk/posts/antidepressants/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/antidepressants/</guid><description>&lt;p&gt;Disclaimer: The following post has been written vaguely in the midst of a spiral. I needed a way to get my emotions out somehow because other ways are failing. I have not proofread or properly thought about this while writing whatsoever. Proceed with caution?&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This is I think the first time I&amp;rsquo;ve written about mental health on this blog. It&amp;rsquo;s been a big part of my life for many years, but I&amp;rsquo;ve always kept it very close to my chest, and only over the past few years properly started talking about it and how it affects my life.&lt;/p&gt;</description></item><item><title>I am the 0.1x developer (if not less)</title><link>http://eliyahu.co.uk/posts/0.1x-developer/</link><pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/0.1x-developer/</guid><description>&lt;p&gt;I was in the middle of writing yet another job application (#internship-grind) when one of friends messaged me telling I should just use an LLM to write it for me. My immediate response, as it is to most LLM related things, was &amp;ldquo;AAAAAAAA ughhhhhh I have feelings™️&amp;rdquo;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, prompting the reply &amp;ldquo;That&amp;rsquo;s not very 10x mindset of you&amp;rdquo; along with a link to an article from where he&amp;rsquo;s doing an internship. I jokingly replied &amp;ldquo;yeah I&amp;rsquo;m a 0.1x developer&amp;rdquo; (prompting the idea for this post), and then spent the rest of the day making a &lt;a href="https://github.com/egkoppel/mycelium"&gt;working compiler&lt;/a&gt; from scratch.&lt;/p&gt;</description></item><item><title>Homelab cleanup time!</title><link>http://eliyahu.co.uk/posts/homelab-cleanup/</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/homelab-cleanup/</guid><description>&lt;p&gt;With exams looming in a couple months and precisely zero revision done, now is clearly the perfect time to go down the rabbithole of clearing up the mess that is my current homelab configuration.
As with all good rabbitholes, it started with the simple mistake of having a Thought™ - &amp;ldquo;how can I centralise authentication instead of having a mess in my password manager?&amp;rdquo;.
And so into the depths of random blog posts I went, gradually growing the scope of what I wanted to have acheived by the end of this&amp;hellip;&lt;/p&gt;</description></item><item><title>Popcorn 2 release</title><link>http://eliyahu.co.uk/posts/popcorn-2-release/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/popcorn-2-release/</guid><description>&lt;p&gt;Source code (and maybe prebuilt ISOs?) is all available on &lt;a href="https://github.com/popcorn-2/popcorn-2"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;It&amp;rsquo;s been a very long time since I posted anything here, mainly cause I just haven&amp;rsquo;t had the motivation to write anything interesting. Many eons I started (and as is the way, never finished) a series of posts about writing a UEFI bootloader in Rust. That was all part of my long-running side project - Popcorn2 (the 2 because i wrote Popcorn even longer ago in C++ and, having messed around with Rust for a bit before, I ended up getting frustrated at C++ move semantics and type system and page faults and a bunch of stuff, so I did what any insane person would do and rewrote it in Rust).
&lt;aside class="sidenote"&gt;&lt;small&gt;The name Popcorn originally coming from me coming into school one day, declaring &amp;ldquo;I&amp;rsquo;m learning how to write a kernel - what do I call it?&amp;rdquo; at my friends, and one them responding with &amp;ldquo;kernel, like the popcorn thing?&amp;rdquo;.&lt;/small&gt;&lt;/aside&gt;&lt;/p&gt;</description></item><item><title>NVMe booting on 12th gen Poweredge</title><link>http://eliyahu.co.uk/posts/12th-gen-poweredge-nvme-boot/</link><pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/12th-gen-poweredge-nvme-boot/</guid><description>&lt;p&gt;For anyone who just wants the solution without the story, skip to [here](#What if the firmware just had drivers?).&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;For around three years I&amp;rsquo;ve been running a Proxmox server on an R720, for random projects like hosting this exact site.
(Also it&amp;rsquo;s just fun to gauge people&amp;rsquo;s reactions when you show them a photo of a big 2U server in your room.)
However, for around the past two years and eleven months, the boot disk setup has been extremely cursed.
I have the internal H710 mini reflahsed into IT mode, which is passed through to a TrueNAS VM, so none of the front bays are useable for a Proxmox boot drive.
Instead I found two internal SATA ports and a nice proprietary power connector (designed for the front panel optical and tape drives) that I decided could be put to use.
So I probed the power connector to figure out the pinout, cut the end off a SATA power connector, replaced it with DuPont connectors, and carefully forced them onto the right pins.
The SSDs were taped into the server above the PSU bays, and it&amp;rsquo;s been working like that ever since.&lt;/p&gt;</description></item><item><title>Headphone repair and upgrades</title><link>http://eliyahu.co.uk/posts/headphone-repair/</link><pubDate>Sun, 12 Nov 2023 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/headphone-repair/</guid><description>&lt;p&gt;For the past few years, I&amp;rsquo;ve been using Senheiser HD 202s as my headphones (I found them lying unused in a cupboard - yay free stuff).
So far they&amp;rsquo;ve been pretty good in my opinion, having never devled into the rabbithole that is audio at any point.
Unfortunately, a couple weeks ago, one of the conductors in their cable seems to have come loose, and now the headphones only work when the cable is bent at a particular angle.&lt;/p&gt;</description></item><item><title>Writing a UEFI bootloader - part 4</title><link>http://eliyahu.co.uk/posts/writing-uefi-bootloader-part-4/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/writing-uefi-bootloader-part-4/</guid><description>&lt;p&gt;It&amp;rsquo;s been a while since I&amp;rsquo;ve written a post in this series, but not to worry, because stuff has been happening.
The bootloader has significantly progressed since the last post, I just haven&amp;rsquo;t had the want or time to write another blog post until now.
So the big change for this post is that the UI is now actually somewhat usable.
I tried for a bit of time to write a UI library which went nowhere since I couldn&amp;rsquo;t wrap my brain around it.
For a while I had given up on that idea and was planning on this post coming much later in the series, until I realised while writing a project for work that &lt;a href="http://lvgl.io"&gt;LVGL&lt;/a&gt; exists - so now I have LVGL running in the bootloader.
The UI could probably do with improving, but the actual code is there.
I was originally planning to use &lt;a href="https://github.com/lvgl/lv_binding_rust"&gt;lvgl-rs&lt;/a&gt; which seem to be the official LVGL rust bindings.
Unfortunately while messing around in it I discovered what I think are some soundness issues (currently writing a bug report).
I had a go at trying to patch them, but couldn&amp;rsquo;t figure out how to do it in the current design without propagating generics throughout half the codebase in ways that didn&amp;rsquo;t make sense.
Instead I started working on my own version (currently unpublished) based on a lot of the original code but with some changes to the architecture. Some work later, and I&amp;rsquo;ve ended up with this.&lt;/p&gt;</description></item><item><title>Unwinding in a Rust kernel - part 2</title><link>http://eliyahu.co.uk/posts/unwinding-part-2/</link><pubDate>Mon, 07 Aug 2023 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/unwinding-part-2/</guid><description>&lt;p&gt;In the last post I managed to get unwinding working within the kernel, but there was the small issue that it would only print out addresses, and each one would need to be converted with a tool like &lt;code&gt;addr2line&lt;/code&gt; to get any useful debugging information out. The best solution would probably be to get the bootloader to load in debuginfo and parse that in the same way &lt;code&gt;addr2line&lt;/code&gt; does. However, this has a couple of issues:&lt;/p&gt;</description></item><item><title>Unwinding in a Rust kernel - part 1</title><link>http://eliyahu.co.uk/posts/unwinding-part-1/</link><pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/unwinding-part-1/</guid><description>&lt;p&gt;Apparently it&amp;rsquo;s been nearly two months since the previous post. Not to worry though, because (after A levels finished) I&amp;rsquo;ve been busy with more Popcorn, and made significant progress in both the design and implentation. There&amp;rsquo;s a couple of UEFI posts still to come (one currently in the pipeline) but I thought it might be worth posting soemthing in the meantime to give the appearance that this blog is not in fact dead.&lt;/p&gt;</description></item><item><title>Writing a UEFI bootloader - part 2</title><link>http://eliyahu.co.uk/posts/writing-uefi-bootloader-part-2/</link><pubDate>Fri, 02 Jun 2023 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/writing-uefi-bootloader-part-2/</guid><description>&lt;p&gt;At the end of the last post, I said that I&amp;rsquo;d probably start working on filesystems and image rendering.
And I&amp;rsquo;m pleased to say that both of those have been a success.&lt;/p&gt;
&lt;p&gt;I started writing this as a single post, but when trying to arrange it into something actually readable, realised it made more sense to split into two.
This will likely end up being fairly short, with a much longer post releasing tomorrow.&lt;/p&gt;</description></item><item><title>Writing a UEFI bootloader - part 3</title><link>http://eliyahu.co.uk/posts/writing-uefi-bootloader-part-3/</link><pubDate>Fri, 02 Jun 2023 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/writing-uefi-bootloader-part-3/</guid><description>&lt;p&gt;With filesystem access in place, we can start working on loading images from the disk, and putting together a basic UI. Once that&amp;rsquo;s in place, we should be able to load a kernel image from disk, and boot into it.&lt;/p&gt;
&lt;h1 id="the-targa-image-format"&gt;
 
 &lt;a href="#the-targa-image-format"&gt;
 The Targa image format
 &lt;/a&gt;
 
&lt;/h1&gt;&lt;p&gt;Having messed around with BMP images a few times before (including a very strange competition of trying to write a block colour image to disk as fast as possible), I was initially going to start this by writing (or finding a crate for) a BMP parser. However, while looking into font rendering, I came across this &lt;a href="https://wiki.osdev.org/Loading_Icons"&gt;OSDev wiki page&lt;/a&gt;, which specifically states not to use BMP. I&amp;rsquo;ve never had the issues it mentions, but then most of my work in the past has been writing BMP files for other software to read, rather than reading them myself. On top of that, the Targa format also looked slightly easier to write quickly, so I ended up going with it.&lt;/p&gt;</description></item><item><title>Writing a UEFI bootloader - part 1</title><link>http://eliyahu.co.uk/posts/writing-uefi-bootloader-part-1/</link><pubDate>Wed, 24 May 2023 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/writing-uefi-bootloader-part-1/</guid><description>&lt;p&gt;For some reason, I decided that for this attempt, it would be fun trying to write a bootloader myself rather then relying on GRUB.
I could make up probably-untrue excuse about easier access to hardware control, like the &lt;a href="https://wiki.osdev.org/GOP"&gt;GOP&lt;/a&gt;, but the real reason is likely closer to &amp;ldquo;why not?&amp;rdquo;.
I discovered that there&amp;rsquo;s a &lt;a href="https://crates.io/crates/uefi"&gt;uefi-rs&lt;/a&gt; crate already available, so started by reorganising the Popcorn2 directory structure to have both a kernel and a bootloader binary within one cargo workspace.
Copying the tutorial was supposed to give a nice &amp;ldquo;Hello world!&amp;rdquo;, but instead it gave some lovely compiler errors about not being able chunks of the stdlib.
It seems that, like with building the main kernel, it needs &lt;code&gt;build-std&lt;/code&gt; to compile the &lt;code&gt;core&lt;/code&gt; crate (which wasn&amp;rsquo;t explained in the tutorial).
With that out of the way, creating an EFI partition and booting qemu gives the nice &amp;ldquo;Hello world!&amp;rdquo; output, but I&amp;rsquo;d prefer to try and do something fancier.&lt;/p&gt;</description></item><item><title>Popcorn - attempt 2</title><link>http://eliyahu.co.uk/posts/popcorn-attempt-2/</link><pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/posts/popcorn-attempt-2/</guid><description>&lt;p&gt;Having been demotivated from continuing with Popcorn attempt 1 with all the strange, hard to track down memory bugs, I decided to start again (and write this series of blog posts alongside) but in Rust.
I technically have already done some OS development in Rust, in the experimental pre-Popcorn times, but at that point had never used it before, and didn&amp;rsquo;t properly understand how to write idiomatic Rust.
This caused a lot of borrow checker fighting and unnecessary &lt;code&gt;unsafe&lt;/code&gt; blocks, which is why I made the decision to write attempt 1 of Popcorn in C++ instead.&lt;/p&gt;</description></item><item><title>Technical Theatre</title><link>http://eliyahu.co.uk/pages/theatre-portfolio/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://eliyahu.co.uk/pages/theatre-portfolio/</guid><description>&lt;ul&gt;
&lt;li&gt;Technical Director - CUADC/Footlights Pantomime 2026: Cinderella (ADC Theatre), Nov 2026&lt;/li&gt;
&lt;li&gt;Chief Electrician - Follies (Robinson Brickhouse Theatre), Oct 2026&lt;/li&gt;
&lt;li&gt;Sound Engineer - The Guy Who Didn&amp;rsquo;t Like Musicals (ADC Theatre), Oct 2026&lt;/li&gt;
&lt;li&gt;Puppet Making, Welfare Team - The House at Pooh Corner (ADC Theatre), Jun 2026&lt;/li&gt;
&lt;li&gt;Forestage Conversion Team - Chasing Pigeons (ADC Theatre), May 2026&lt;/li&gt;
&lt;li&gt;Technical Director - Like Rabbits (ADC Theatre), May 2026&lt;/li&gt;
&lt;li&gt;Technical Director - Medea (ADC Theatre), May 2026&lt;/li&gt;
&lt;li&gt;Electrical Technician - Into the Woods (ADC Theatre), Mar 2026&lt;/li&gt;
&lt;li&gt;Chief Electrician - The Orphan of Zhao (ADC Theatre), Mar 2026&lt;/li&gt;
&lt;li&gt;Production Electrician - Little Women (ADC Theatre), Mar 2026&lt;/li&gt;
&lt;li&gt;Technical Director - The Great Gatsby (ADC Theatre), Feb 2026&lt;/li&gt;
&lt;li&gt;Head Carpenter - Private Lives (ADC Theatre), Feb 2026&lt;/li&gt;
&lt;li&gt;Chief Electrician - Noises Off (ADC Theatre), Jan 2026&lt;/li&gt;
&lt;li&gt;Followspot Op - CUADC/Footlights Pantomime 2025: Jack and the Beanstalk (ADC Theatre), Nov 2025&lt;/li&gt;
&lt;li&gt;Chief Electrician - Spider&amp;rsquo;s Web (ADC Theatre), Nov 2025&lt;/li&gt;
&lt;li&gt;Head Carpenter - A Streetcar Named Desire (ADC Theatre), Nov 2025&lt;/li&gt;
&lt;li&gt;Assistant Stage Manager - The Addams Family (ADC Theatre), Nov 2025&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>