<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Jayrude.dev</title><link>https://jayrude.dev/</link><description>Recent content on Jayrude.dev</description><generator>Hugo -- gohugo.io</generator><language>en-GB</language><copyright>Copyright 2024 Jarrod Doyle</copyright><lastBuildDate>Tue, 09 Jul 2024 06:33:00 +0100</lastBuildDate><atom:link href="https://jayrude.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Weeknotes 2024: 27/52</title><link>https://jayrude.dev/blog/weeknotes/2024-27/</link><pubDate>Tue, 09 Jul 2024 06:33:00 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-27/</guid><description>Programmming I worked some more on the little Godot project I talked about last week, mostly in terms of the Trenchbroom entity workflow. The first thing I did was finish importing a tree/bush asset pack, which was actually kind of a pain because the models needed tweaking a fair amount in blender. Initially I set up a separate entity for each bush/tree variant, but it was kind of a lot of work and made the entity browser in Trenchbroom messy.</description><content:encoded><![CDATA[<h2 id="programmming">Programmming</h2>
<p>I worked some more on the little Godot project I talked about <a href="/blog/weeknotes/2024-26/">last week</a>, mostly in terms of the Trenchbroom entity workflow. The first thing I did was finish importing a tree/bush asset pack, which was actually kind of a pain because the models needed tweaking a fair amount in blender. Initially I set up a separate entity for each bush/tree variant, but it was kind of a lot of work and made the entity browser in Trenchbroom messy.</p>
<p>The reason I did it this way to begin with is because I knew it was possible to display 3d models for entities in Trenchbroom, and I figured having them split out like this was necessary to have a different model for each tree type. Fortunately I noticed a section of the <a href="https://func-godot.github.io/func_godot_docs/FuncGodot%20Manual/FuncGodot%20Manual.html">func_godot docs</a> (sorry I can&rsquo;t link directly to the section their docs are weird) titled &ldquo;Conditional Models in Trenchbroom&rdquo; which showed that you can use expressions in the entity definition files to choose between different models! Annoyingly the example definition there didn&rsquo;t actually work, but <a href="https://trenchbroom.github.io/manual/latest/#display-models-for-entities">the corresponding section of the Trenchbroom manual</a> gave some more information and I got it all working nicely. The func_godot docs had missed some braces (this -&gt; <code>{}</code>). I might do a pull request to fix them.</p>
<p>After getting the models displaying nicely in Trenchbroom I added some minor functionality to the trees/bushes. When a map is loaded the trees/bushes can (optionally) have randomised rotation, minor position offsets, and slightly randomised scale. This means I can sort of slam trees/bushes down in editor without having to worry about manually tweaking everything. I do plan to integrate something like the <a href="https://github.com/HungryProton/scatter">Scatter</a> plugin so I can define an area to bulk place entities, but I&rsquo;ve not gotten around to that yet.</p>
<p>I also added basic sliding doors. So far all of the entities I&rsquo;d made were point entities, but for now at least it made sense for doors to be brush entities. This means I can model them however I want in Trenchbroom rather than using a 3d model from elsewhere. The doors are defined similarly to those in Quake, with an opening direction, opening speed (I actually defined it by how long it should take to open), and a &ldquo;lip&rdquo;. By default the doors slide the full length of the door which leads to z-fighting if they slide into a solid wall. The lip is a slide distance offset. Right now I don&rsquo;t have an interaction system in the game, so the doors just run on a timer opening and closing every 5 seconds.</p>
<p>Once again you can see all the results of this in <a href="https://youtu.be/FbD_-agV7cE">this video</a>.</p>
<h2 id="reading">Reading</h2>
<p>I finished <a href="https://app.thestorygraph.com/books/caa250a8-520b-44ae-8843-862f5f865634">The Lies of Locke Lamora by Scott Lynch</a> last night and loved it. I&rsquo;m glad that I was correct about this book working as a standalone. Pretty much everything wraps up neatly and I&rsquo;m content to leave the series here for now. If Scott Lynch begins releasing books again I&rsquo;ll think about continuing. Pretty much everything I said last week stands. The characters are great and I felt for those that didn&rsquo;t manage to make it to the end of the book and the setting got even more interesting with floating sky islands (I think they were mentioned earlier on I just sort of glazed over them). Would strongly recommend giving the book a go.</p>
<p>I&rsquo;ve not actually started reading my next book yet, but I have it all picked out ready to go later today. I&rsquo;m finally delving into Robin Hobb&rsquo;s Realm of the Elderlings series, starting with <a href="https://app.thestorygraph.com/books/016b6b37-4272-42ad-bfe1-ae47916a7751">Assassin&rsquo;s Apprentice</a>. This is a long series at 16 books, but it&rsquo;s broken up into trilogies (and one quartet) so I don&rsquo;t need to commit too heavily straight away. I&rsquo;m going to be reading this for the First in Series hard mode square of my r/fantasy bingo sheet.</p>
<h2 id="other">Other</h2>
<p>The new Trackmania campaign released this week. I&rsquo;m really enjoying all the tracks so far. I&rsquo;ve seen a lot of mixed opinions in the community about this campaign and honestly I&rsquo;m surprised, I felt like it&rsquo;s the most consistent campaign they&rsquo;ve released. I think a lot of the negativity around it has come down to the Author Medals (the 4th hidden medal above Gold) being much harder than usual, especially on the last 5 tracks. I don&rsquo;t think it&rsquo;s necessarily a problem for them to be hard, but they may have gone a bit too far with some of them. A lot of streamers do author medal discovery speedruns when the campaign releases, and the best players usually finish in ~40 minutes. This time around the fastest I saw were more in the 2 and a half hours range (and some were considerably longer).</p>
<p>Alongside the main campaign there was also a stunt gamemode released. Frankly I thought it was pretty bad. The &ldquo;tutorial&rdquo; is abysmal, and the first couple of tracks for the gamemode do a terrible job at showcasing it. Some of the later tracks are more fun, but I don&rsquo;t know that I&rsquo;ll play this much more.</p>
<p>I&rsquo;m finally getting around to being Spotify free. I&rsquo;ve been slowly obtaining most of the music I enjoy from other platforms, or pirated. There&rsquo;s a lot of music I listen to from small bands that just isn&rsquo;t available anywhere other than Spotify, or in considerably worse quality on YouTube. I&rsquo;ve been using a tool called <a href="https://github.com/oSumAtrIX/DownOnSpot">DownOnSpot</a> which uses your account credentials and a custom Spotify Developer application to download playlists and albums directly from Spotify (rather than finding the closest match on YouTube like most &ldquo;spotify downloaders&rdquo;). I also wrote a small script to bulk download things based on an input file with a list of albums.</p>
<p>Still on the topic of music, I got back into learning to play bass guitar. I bought my bass around a year ago, but never got very far into learning. I&rsquo;ve been making it a commitment to spend ~30 minutes practicing each day after work, before I need to take the dog for a walk. I&rsquo;ve been using <a href="https://www.studybass.com/">StudyBass</a> and it&rsquo;s pretty nice.</p>
<p>Sunday was the day of the 10k run I mentioned last week. I honestly thought I was going to be fucked for it because I&rsquo;ve been running for under 3 weeks and hadn&rsquo;t managed to do more than 5k on the treadmill in the garage, but it actually went really well. Turns out that running is way easier and more fun when you&rsquo;re outside. I think one of the major issues I was having was boredom. Staring at a cobweb covered concrete wall in a hot dark garage is just not very interesting. Due to only having treadmill running experience I decided to buy a running watch a couple of days before the event to help me pace myself. It was a great decision and I ran a pretty consistent 7 minutes per kilometer pace. It&rsquo;s not fast by any means, but it felt good and is actually faster than I was running on the treadmill (which was 8 mins per kilometer). After the run I vaguely talked about running a half-marathon with a friend in a couple of months so we&rsquo;ll see if that happens (she brought it up not me!)</p>
<figure><img src="post_run.webp#center"
         alt="I got a cute medal and some cake at the end :)"/><figcaption>
            <p>I got a cute medal and some cake at the end :)</p>
        </figcaption>
</figure>

]]></content:encoded></item><item><title>Weeknotes 2024: (24, 25,) 26/52</title><link>https://jayrude.dev/blog/weeknotes/2024-26/</link><pubDate>Sun, 30 Jun 2024 19:25:45 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-26/</guid><description>Wow it&amp;rsquo;s been three weeks since my last weeknote how embarassing. I was ill for the first one, but the second I have no excuse, I was just feeling too lazy to write. So for this week I&amp;rsquo;ll try and roughly cover what I did in the first two weeks too, I&amp;rsquo;ve probably forgotten a lot of what happened though.
Programmming/dev I don&amp;rsquo;t think I did any programming in the first two weeks, but the third week I got inspired while watching Alex Hetherington work on the level design for their new game 3 Shots Left (they previously made Ballistic Zen which I love).</description><content:encoded><![CDATA[<p>Wow it&rsquo;s been three weeks since my last weeknote how embarassing. I was ill for the first one, but the second I have no excuse, I was just feeling too lazy to write. So for this week I&rsquo;ll try and roughly cover what I did in the first two weeks too, I&rsquo;ve probably forgotten a lot of what happened though.</p>
<h2 id="programmmingdev">Programmming/dev</h2>
<p>I don&rsquo;t think I did <em>any</em> programming in the first two weeks, but the third week I got inspired while watching <a href="https://footnotesforthefuture.com/">Alex Hetherington</a> work on the level design for their new game <a href="https://store.steampowered.com/app/2902400/3_Shots_Left/">3 Shots Left</a> (they previously made <a href="https://store.steampowered.com/app/1966930/Ballistic_Zen/">Ballistic Zen</a> which I love).</p>
<p>The game is built in the <a href="https://godotengine.org/">Godot game engine</a> and the maps are made using <a href="https://trenchbroom.github.io">Trenchbroom</a>, a Quake (and successor) engine .map file editor. I&rsquo;ve used Trenchbroom before, and have also messed around with the two main .map importers for Godot, <a href="https://github.com/codecat/godot-tbloader">TBLoader</a> and <a href="https://github.com/QodotPlugin/Qodot">Qodot</a>. A few months back a successor for Qodot was released called <a href="https://github.com/func-godot/func_godot_plugin">func_godot</a> and I&rsquo;ve been meaning to try it out, so now seemed like a good time.</p>
<p>Setting up func_godot was super simple. The documentation for it is very solid. The plugin comes with tools to generate game config files for Trenchbroom so you can jump straight into mapping. Actually importing the maps into Godot just requires adding a FuncGodotMap node to your scene, setting the path to the .map file, and pressing &ldquo;Build map&rdquo;. It&rsquo;s great. Setting up custom entities for placement in Trenchbroom was also a similarly straightforward process.</p>
<p>Another thing that Alex has in his game, and that every game should have, is a developer console where you can input useful commands like <code>load_map my_cool_map</code>. Many old games have these, and I imagine many modern games use them during development, but they&rsquo;re often stripped out of final releases unfortunately. I&rsquo;m sure there&rsquo;s plenty of existing plugins for this in the Godot ecosystem but it seemed like a fun thing to make myself. It took me a couple of hours of work, but the end result is pretty useable. Registering commands is incredibly simple too, there&rsquo;s a global <code>Console</code> singleton and you can just call <code>Console.add_command(&quot;command_name&quot;, command_callable_function, &quot;description&quot;)</code> from wherever.</p>
<p>You can see all the results of this in <a href="https://youtu.be/vO0IeOKYTdc">this video</a>. I might work some more on this at some point, just experimenting with some systems or whatever. Probably not though.</p>
<p>This isn&rsquo;t programming at all, but I&rsquo;ve started working on a custom map for Ballistic Zen again. I actually started this map over a year ago as part of a proof of concept mod for custom maps in the game, before official support was added. The map keeps growing in size, and if I keep taking multi-month breaks during development I might never finish it, but for now I&rsquo;m having fun working on it again. Also mapping for this is once again done in Trenchbroom (it&rsquo;s such a good editor).</p>
<figure><img src="ballistic_zen_map.webp#center"
         alt="It&amp;rsquo;s hard to tell the scale from this screenshot, but the map is kinda huge and kinda dense as fuck when you&amp;rsquo;re playing"/><figcaption>
            <p>It&rsquo;s hard to tell the scale from this screenshot, but the map is kinda huge and kinda dense as fuck when you&rsquo;re playing</p>
        </figcaption>
</figure>

<h2 id="reading">Reading</h2>
<p>I finished <a href="https://app.thestorygraph.com/books/a551a4c2-1fe3-44ed-a457-9e5f14eaa380">A Desolation Called Peace by Arkady Martine</a> and it was good. It&rsquo;s quite different from the first book. I liked how the main story was wrapped up, but some of the side plots (such as with Eight Antidote) didn&rsquo;t really feel properly resolved. I&rsquo;m not sure if there&rsquo;s more books in this universe planned, but if there are I hope they leave Mahit and Three Seagrass alone and focus on other characters.</p>
<p>For the Romantasy square of my r/fantasy bingo sheet I read <a href="https://app.thestorygraph.com/books/ebb5f076-757c-4096-bda9-7d79bb5462c0">The Song of Achilles by Madeline Miller</a> due to numerous recommendations for it as not being too overtop with the romance (not really my genre). When I got the book and it had quotes like &ldquo;Sexy, dangerous, mystical&rdquo; and &ldquo;An exciting, sexy, violent Superman version of The Iliad&rdquo; (Superman???) on the cover I was worried that it would be a bit smuttier than I wanted, but it ended up being pretty fine in that department. Unfortunately I didn&rsquo;t really care for the book, but I can see why other people like it. The story is pretty straightforward as expected of something based on The Iliad, but the romance kind of sucks. Patroclus just latches on to Achilles and is borderline obssessed with him, whereas Achilles never really feels like he cares much about Patroclus, and towards the end is just straight up a toxic bloke. It was still a decent read, but it sort of reaffirmed my belief that I don&rsquo;t care for romance novels.</p>
<p>Next I read <a href="https://app.thestorygraph.com/books/39e5ceda-901c-48c1-b8f2-c23cdd1b5aaf">The Tropic of Serpents by Marie Brennan</a> for the Entitled Animals bingo square. Pretty much exactly a year ago I read the first book in the Lady Trent series, and I&rsquo;m dissapointed it took me so long to get to this second book. I loved the first book, and it has one of my favourite book covers. The second was just as good (and had almost as good a cover). I love the sense of adventure, and watching (reading) the joy the main character experiences as she (and we) learn more about the dragons that inhabit her world. There&rsquo;s a few more books in the series, and they&rsquo;re all fairly short so I&rsquo;ll probably read them soon.</p>
<p>Right now I&rsquo;m reading <a href="https://app.thestorygraph.com/books/caa250a8-520b-44ae-8843-862f5f865634">The Lies of Locke Lamora by Scott Lynch</a>. It&rsquo;s a great book name, and the only book I could think of that meets the Hard Mode requirements for the Alliterative Title bingo square. I know that this series isn&rsquo;t finished, but my understanding is that the first book is pretty much standalone and there&rsquo;s not some big looming cliffhanger or major plot continuation. So far I&rsquo;m loving the book. The prose is great and the characters are charming and fun. I also enjoy the setting with it&rsquo;s rivers and manor yachts and floating gardens. Really cool stuff and the main heist (they&rsquo;re thieves/conmen) is coming together nicely.</p>
<h2 id="other">Other</h2>
<p>I signed up for a 10k run. It&rsquo;s in a week. I don&rsquo;t know why I did this, I don&rsquo;t run. I&rsquo;ve been &ldquo;training&rdquo; for a week and a half. I can probably do it, but I&rsquo;ll be slow as shit. Committed now though. Wish me luck.</p>
<p>I did a (late) spring clean of my room today. Got rid of a bunch of things I don&rsquo;t use/need anymore and are functionally rubbish. While I was at it I took all my books off my bookshelf, partly to reorganise things, and partly so I could move the bookshelf slightly and access the plugs behind it. I&rsquo;ve been running an extension cable across my room for ages and it just gets in my way all the time. Having the cable plugged in behind my bookshelf is much nicer.</p>
<p>I started playing <a href="http://osu.ppy.sh/">osu!</a> again. I&rsquo;m so trash at it now, not that I was ever very good. Gonna take it slow and hope that my wrists don&rsquo;t start exploding again. If they do I guess I&rsquo;ll stop playing :( I&rsquo;ve also started playing <a href="https://projectzomboid.com">Project Zomboid</a>. I&rsquo;ve owned it for years and have given it a try a couple times, but never enough to really get into it and last more than a day or two. It&rsquo;s good fun and I feel like I&rsquo;m starting to get the hang of things.</p>
<p>We started growing some things in the greenhouse because my niece thought it would be good and cool to do (it is I agree). There&rsquo;s strawberries (except not really because they completely failed to grow), cucumber, courgettes, squash, mint (jk it all died immediately after popping its head out), and spring onions. The mint and spring onion pots aren&rsquo;t shown in the picture below, mainly because there&rsquo;s nothing really to see with them, but everything else is looking good.</p>
<figure><img src="greenhouse.webp#center"
         alt="Look at all those lovely green things"/><figcaption>
            <p>Look at all those lovely green things</p>
        </figcaption>
</figure>

<p>I&rsquo;m absolutely sure there&rsquo;s more things I did these three weeks, but it&rsquo;s 9pm and I&rsquo;m tired and I don&rsquo;t remember anything else right now so I&rsquo;ll just stop here bye.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 23/52</title><link>https://jayrude.dev/blog/weeknotes/2024-23/</link><pubDate>Sun, 09 Jun 2024 19:36:43 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-23/</guid><description>Programming Didn&amp;rsquo;t do much programming this week, just felt too tired to use my brain much. One of my friends started messing with voxels in Unreal Engine, so I downloaded it (it took many hours) and got some basic chunking and meshing implemented. Obviously I&amp;rsquo;ve done a lot of voxel stuff before, so it wasn&amp;rsquo;t really about that for me. I just wanted to give the engine a try.
Wow look at all that lumen global illumination!</description><content:encoded><![CDATA[<h2 id="programming">Programming</h2>
<p>Didn&rsquo;t do much programming this week, just felt too tired to use my brain much. One of my friends started messing with voxels in <a href="https://www.unrealengine.com/">Unreal Engine</a>, so I downloaded it (it took many hours) and got some basic chunking and meshing implemented. Obviously I&rsquo;ve done a lot of voxel stuff before, so it wasn&rsquo;t really about that for me. I just wanted to give the engine a try.</p>
<figure><img src="unreal_voxels.webp#center"
         alt="Wow look at all that lumen global illumination! It looks like shit!"/><figcaption>
            <p>Wow look at all that lumen global illumination! It looks like shit!</p>
        </figcaption>
</figure>

<p>Ultimately I decided I didn&rsquo;t really like the dev experience. After each code change you need to rebuild (makes sense) and completely restart the editor (????). There is a hot-reloading system, two actually, but one of them is thoroughly unrecommended because it can cause asset corruption (wtf) and the other didn&rsquo;t seem to work for me. Some reading around it suggests it might be windows only, I&rsquo;m not sure.</p>
<p>The restarting is fine if you&rsquo;re primarily working in the engine editor but you&rsquo;re not always doing that yknow. I&rsquo;d be able to work past the restarting if the integration with my code editor of choice didn&rsquo;t suck. Unreal only <em>really</em> supports Visual Studio and Jetbrains Rider. Visual Studio is windows only, and Rider costs like £125 a year. It has documentation on getting set up for using Visual Studio Code (which is completely different to Visual Studio) which I use for all my programming already anyway, but the intellisense was basically non-functional and apparently that&rsquo;s a common experience.</p>
<h2 id="reading">Reading</h2>
<p>I&rsquo;m about halfway through <a href="https://app.thestorygraph.com/books/a551a4c2-1fe3-44ed-a457-9e5f14eaa380">A Desolation Called Peace by Arkady Martine</a>, the follow up to <a href="https://app.thestorygraph.com/books/64ddadda-b4ab-4f8d-9f7d-5fc1d5930cfd">A Memory Called Empire</a> which I finished last week. It&rsquo;s a first contact story and I&rsquo;m liking it so far. The aliens feel a bit generic but they&rsquo;re sort of not really the main focus? It&rsquo;s still primarily a space opera with lots of politics and a focus on the personal relationship between two of the main characters from the previous book.</p>
<h2 id="other">Other</h2>
<p>The summer season of europes League of Legends esports league started on saturday. I don&rsquo;t play the game anymore (new anti-cheat isn&rsquo;t linux compatible), but I&rsquo;ve been watching pro League for 9 years now and I still love it. I don&rsquo;t watch every game, but I do try and watch a majority of them.</p>
<p>I routed and ran the max respect (basically 100% completion) speedrun category of the wonderful game <a href="https://store.steampowered.com/app/1966930/Ballistic_Zen/">Ballistic Zen</a>. As well as Steam (linked above) it&rsquo;s also available for <a href="https://footnotesforthefuture.itch.io/ballistic-zen">free on itch.io</a> if you want to play it. It&rsquo;s a first person flowy movement platformer. I actually started this a few weeks back, but I only got around to routing one area at the time. This week I did the other 4 areas. Someone else had actually done a run of this category recently, but both the run and the route were pretty unpolished so I started from scratch. I only did two actual runs after routing, but I ended up with a time of 26 minutes 40 seconds and 767 milliseconds. You can watch the run <a href="https://youtu.be/hF39wpfmHls">here</a>.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 22/52</title><link>https://jayrude.dev/blog/weeknotes/2024-22/</link><pubDate>Mon, 03 Jun 2024 16:51:57 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-22/</guid><description>Programming I worked on my Thief related site a bit this week. The site is for uploading and downloading custom resources for map making. In the past things have mostly been scattered around peoples personal sites or in forum posts. There was the &amp;ldquo;Thief Object Repository&amp;rdquo; previously, but it was super jank and hasn&amp;rsquo;t been around for a couple of years at this point. I actually worked on a version of this back in 2020 or so but it never reached a point where it was really useable, and I unfortunately don&amp;rsquo;t seem to have the codebase around anymore so I had to start from scratch.</description><content:encoded><![CDATA[<h2 id="programming">Programming</h2>
<p>I worked on my Thief related site a bit this week. The site is for uploading and downloading custom resources for map making. In the past things have mostly been scattered around peoples personal sites or in forum posts. There was the &ldquo;Thief Object Repository&rdquo; previously, but it was super jank and hasn&rsquo;t been around for a couple of years at this point. I actually worked on a version of this back in 2020 or so but it never reached a point where it was really useable, and I unfortunately don&rsquo;t seem to have the codebase around anymore so I had to start from scratch.</p>
<p>The week started with some planning and design. I primarily took inspiration from the Minecraft modding site <a href="https://modrinth.com">Modrinth</a> because it&rsquo;s simple, clear, and easy to implement. In the future I think I might want to make things feel more Thiefy, but for now while I get the functionality in it&rsquo;s okay I think. I got a basic API for listing resources and getting the details of specific resources, and used that for a basic resource listing page. There&rsquo;s no files involved yet, but <a href="https://supabase.com/">Supabase</a> has a file storage service and the API for everything is well documented. I haven&rsquo;t got around to self-hosting Supabase yet, once everything is a bit more finished I&rsquo;ll look into doing that.</p>
<figure><img src="darkresources.webp#center"
         alt="A work of art. The filters don&amp;rsquo;t actually do anything yet, but the rest of the content comes from the objects database."/><figcaption>
            <p>A work of art. The filters don&rsquo;t actually do anything yet, but the rest of the content comes from the objects database.</p>
        </figcaption>
</figure>

<p>I realised that I kind of want this to be a part of a larger platform for the Thief mapping/modding community, with other projects around reverse engineering and such. One of the major factions in the Thief games are the Keepers, who specialise in knowledge. It seemed fitting so I&rsquo;m calling the platform Keeper&rsquo;s Compound. I bought the domain earlier today, though it&rsquo;s not being used for anything (yet).</p>
<h2 id="reading">Reading</h2>
<p>I finished <a href="https://app.thestorygraph.com/books/64ddadda-b4ab-4f8d-9f7d-5fc1d5930cfd">A Memory Called Empire by Arkady Martine</a> and it was very good. It feels quite heavily inspired by <a href="https://app.thestorygraph.com/series/6">Ann Leckie&rsquo;s Imperial Radch trilogy</a>, which explains the quote from her on the book cover. I thought the characters and the mystery where interesting, and what we saw of the world felt just big enough with hint of the wider empire. I liked the names of the Teixcalaanzli (fuck knows how to say that) characters and how much poetry was used throughout, both of which again felt inspired by the Imperial Radch (in a good way). I&rsquo;ve already purchased the second book of the duology.</p>
<h2 id="other">Other</h2>
<p>One of the games in Metroidvania Mania bundle from last week is <a href="https://store.steampowered.com/app/356650/Deaths_Gambit_Afterlife/">Death&rsquo;s Gambit: Afterlife</a>. I&rsquo;m about 12 hours in now and it&rsquo;s fairly good. Early on I didn&rsquo;t feel that the game was particularly good, but it&rsquo;s really opened up now and the story and world is starting to come together. From some searching online it seems that the content I&rsquo;ve enjoyed most is stuff that was added or heavily changed as part of the Afterlife update. I don&rsquo;t know how much of the game is left but if it keeps up the quality it&rsquo;ll be a pretty solid game. Far from the best metroidvania I&rsquo;ve played, but also far from the worst.</p>
<p>Recently I came to the incredible realisation that the fields I walk my dog in can be used as a <a href="https://en.wikipedia.org/wiki/Seven-segment_display">seven-segment display</a> and decided to start what I&rsquo;m calling Project 69. I know it&rsquo;s immature but I can&rsquo;t help it. I take my dog for two walks a day, so in the morning I write a 6 and in the evening I write a 9. I broke my streak on sunday when I went on auto-pilot and accidentally wrote a 0 in the evening. I&rsquo;d love to show you the results of these walks, but I don&rsquo;t want to dox myself lol.</p>
<p>This weekend was the local beer fest. I didn&rsquo;t end up going because the field was super muddy, but I did go for a meal with some friends at our favourite nepalese restaurant which was nice.</p>
<p>On tuesday I had a nice call with my mate Tom. We message regularly, but because they live quite far away nowadays we don&rsquo;t get to talk properly or see each other much. They also works nights which doesn&rsquo;t help. We made a loose plan to call on tuesday mornings so I&rsquo;m looking forward to that.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 21/52</title><link>https://jayrude.dev/blog/weeknotes/2024-21/</link><pubDate>Sun, 26 May 2024 19:36:17 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-21/</guid><description>Programming I haven&amp;rsquo;t really spent much any time on my existing projects this week. I&amp;rsquo;ve been feeling pretty drained after work recently so I decided to slow it down and just do some super low effort messing around with new things.
Games engines are cool and even though I never actually make any games, I still like to try out new engines every now and then. This week I gave Comfy Engine a bit of a go.</description><content:encoded><![CDATA[<h2 id="programming">Programming</h2>
<p>I haven&rsquo;t really spent much any time on my existing projects this week. I&rsquo;ve been feeling pretty drained after work recently so I decided to slow it down and just do some super low effort messing around with new things.</p>
<p>Games engines are cool and even though I never actually make any games, I still like to try out new engines every now and then. This week I gave <a href="https://comfyengine.org/">Comfy Engine</a> a bit of a go. It&rsquo;s a super simple engine inspired by things like <a href="https://www.raylib.com/">raylib</a> which I&rsquo;ve used and enjoyed previously. One thing that&rsquo;s nice about it is that it has an integration with <a href="https://ldtk.io/">LDtk</a> for level editing. I&rsquo;ve used LDtk before too and it&rsquo;s a super nice tool. I didn&rsquo;t end up making anything worth showing here, and I probably won&rsquo;t spend much more time using it, but it seems like a very solid engine to get started making games quickly in Rust.</p>
<p>Last year I made an app at work that used Google&rsquo;s <a href="https://firebase.google.com/">Firebase</a> platform. There&rsquo;s a site I want to make for the Thief (the game not the crime) community that would benefit from using it, but I don&rsquo;t want to be tied to Google. I came across <a href="https://supabase.com/">Supabase</a> which is an open-source self-hostable alternative to Firebase. It&rsquo;s super early and I&rsquo;ve barely started writing any code for it, but currently I&rsquo;m building the site with <a href="https://astro.build/">Astro</a> in server side rendered mode with Supabase for the backend.</p>
<h2 id="reading">Reading</h2>
<p><a href="https://app.thestorygraph.com/books/423e819b-8fe6-4b7c-8980-d34909a4db8a">The Spear Cuts Through Water by Simon Jimenez</a> is finished, and I&rsquo;m very happy with it. My general thoughts are pretty much the same as last week so I won&rsquo;t repeat them too much. The stage play element got tied in to the main events in a satisfying way and the love story came more to the forefront (we got gay sex (sort of) lets go). Definitely recommend reading it.</p>
<p>Last night I started reading <a href="https://app.thestorygraph.com/books/64ddadda-b4ab-4f8d-9f7d-5fc1d5930cfd">A Memory Called Empire by Arkady Martine</a>. I only managed to read the prologue which is about 20 pages, so I don&rsquo;t really have anything to say about it yet. Due to my Wheel of Time re-read taking so long I haven&rsquo;t read any sci-fi since September, and I&rsquo;m looking forward to digging into a space opera. My copy of the book has a quote from <a href="https://en.wikipedia.org/wiki/Ann_Leckie">Ann Leckie</a> on the front which I&rsquo;m hoping is a good sign. I loved her Imperial Radch trilogy. I&rsquo;ll have more to say about this next week.</p>
<h2 id="other">Other</h2>
<p>I almost didn&rsquo;t write this post today. We&rsquo;ve had shit weather and there was a bit of a storm earlier. Stupidly I decided that would be a good time to run a large system update. About half-way through our power went out momentarily and unfortunately a good chunk of the packages being updated got corrupted in some way and I had to spend 2 hours in a live-boot USB of my OS trying to fix everything. I managed to get it all working in the end but man it was tedious.</p>
<p>Calliope is in season for the first time and it&rsquo;s bloody annoying. She&rsquo;s constantly playing up and whines more than usual. I was hoping to get her spayed before this point but our vet recommended us to wait until she had her first season then get it done at the midpoint before the next one. So in about 3 months she&rsquo;ll be spayed and we won&rsquo;t have to worry about this again. Unfortunately this meant we had to skip the last of this batch of training classes yesterday and she didn&rsquo;t get her &ldquo;graduation&rdquo; picture. Tragic.</p>
<p>I played <a href="https://www.animalwell.net/">Animal Well</a> this week and it&rsquo;s very good. I finished the mainline game and I&rsquo;m starting to slowly work my way through the post-game secrets and stuff. I also purchased the <a href="https://www.humblebundle.com/games/metroidvania-mania">Humble Metroidvania Mania Bundle</a> and got charged twice so I&rsquo;m waiting for a refund on one of those. I already own <a href="https://www.axiomverge.com">Axiom Verge</a> and <a href="https://www.axiomverge2.com/">Axiom Verge 2</a> on another store (Epic I think) but it&rsquo;s nice to get a Steam key too. I&rsquo;m not sure which of the other games in the bundle I&rsquo;m going to start with yet, they all look pretty good.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 20/52</title><link>https://jayrude.dev/blog/weeknotes/2024-20/</link><pubDate>Sun, 19 May 2024 19:05:17 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-20/</guid><description>Programming Last week I mentioned GPU timestamp writes as something to look into for getting accurate timings for benchmarks. This week I managed to get a basic usage of them implemented. Initially I tried using them from scratch myself, but after a while I came across the wgpu-profiler crate which made everything super simple once I got it set up. I couldn&amp;rsquo;t get it to work to begin with, but then I realised that the version of the crate I was using was for a newer version of wgpu and I needed to downgrade wgpu-profiler.</description><content:encoded><![CDATA[<h2 id="programming">Programming</h2>
<p>Last week I mentioned <a href="https://docs.rs/wgpu/latest/wgpu/struct.ComputePassDescriptor.html#structfield.timestamp_writes">GPU timestamp writes</a> as something to look into for getting accurate timings for benchmarks. This week I managed to get a basic usage of them implemented. Initially I tried using them from scratch myself, but after a while I came across the <a href="https://github.com/wumpf/wgpu-profiler">wgpu-profiler crate</a> which made everything super simple once I got it set up. I couldn&rsquo;t get it to work to begin with, but then I realised that the version of the crate I was using was for a newer version of wgpu and I needed to downgrade wgpu-profiler. I&rsquo;ll probably upgrade my wgpu and winit next week.</p>
<figure><img src="benchmarking.webp#center"
         alt="Super simple console output of the frame timings for various render stages."/><figcaption>
            <p>Super simple console output of the frame timings for various render stages.</p>
        </figcaption>
</figure>

<p>Throughout the week I&rsquo;ve been fiddling around in <a href="https://www.figma.com/">Figma</a> working on a refresh of this sites design. It&rsquo;s not finished, and I&rsquo;ve not started implementing it yet, but I&rsquo;m pretty happy so far. I&rsquo;ve kept it minimal like the current design but it&rsquo;s still got a little bit of personality. In addition to the already existing pages I designed some pages relating to my reading. Just a simple list view with book thumbnails (sourced from StoryGraph) sorted by year and a per book page with my rating, some basic info, spoiler free thoughts like what I&rsquo;m already writing in my weeknotes, and a full spoiler review. I&rsquo;m not sure when the redesign will go live, probably in a month or two.</p>
<h2 id="reading">Reading</h2>
<p>I finished <a href="https://app.thestorygraph.com/books/d06e1df1-e5b5-45cc-8b2b-f28edb703508">Ninth House by Leigh Bardugo</a>. It was okay. I was more positive on it last week, but by the end of the book it had started to fall flat. None of the characters were very well defined, and the main character isn&rsquo;t particularly likable, which is all fine if the resolution of the mystery is interesting. Unfortunately it&rsquo;s kind of not. The perpetrator of the murder is exactly who you think it is for most of the book, and their motivations are incredibly bland. You then get a random twist that attempts to connect some of the side mysteries, but does a poor job of it by using a character who is in the book twice and has absolutely zero foreshadowing. The book ends with a setup for a sequel adventure, which came out last year and is called <a href="https://app.thestorygraph.com/books/8b7683e4-ea47-4d80-864e-c4ec56e2aafc">Hell Bent</a>, but I&rsquo;m not going to bother reading it.</p>
<p>Currently I&rsquo;m reading <a href="https://app.thestorygraph.com/books/423e819b-8fe6-4b7c-8980-d34909a4db8a">The Spear Cuts Through Water by Simon Jimenez</a> and it&rsquo;s very good so far. It has a cool narrative structure, where the story is told through a character watching a stage play in a dream land. The prose is quite good, and the characters are varied. So far the stage play element feels slightly gimmicky, but I&rsquo;m looking forward to seeing how the events of the past (told via the play) connect to the present. Hopefully it doesn&rsquo;t disappoint as much as Ninth House did.</p>
<h2 id="other">Other</h2>
<p>My cycling has been going well, and I&rsquo;m looking forward to my bikepacking trip in a couple of months. I don&rsquo;t have a date set yet, but time off work is pretty flexible so I&rsquo;m not too worried. I watched <a href="https://youtu.be/W2n0VeBnlpM">a video from GCN</a> about &ldquo;zone 2&rdquo; training. I&rsquo;d heard of it before but never looked into it. Basically you just make sure to stay below the intensity at which the level of lactic acid in your blood starts to rise rapidly. It&rsquo;s good for training endurance and stuff. I don&rsquo;t have the capability to do all the fancy tests in the video so I just did some rough estimates of what sort of heart rate I should be staying below. I&rsquo;ve done two rides since then, staying in the 150-160 bpm range for a majority of the time and wow it feels so much better. Neither ride was super long distance, both were 25km. Next week I&rsquo;m going to start doing some longer rides again and try to work up to doing 100km+ regularly.</p>
<p>My dog is still taking training classes every saturday, and they&rsquo;ve been going well. The trainer mentioned a while ago some of the other sessions they run and suggested we try out flyball. We had our first little taster session this morning and it was great fun. It&rsquo;s a team based sport where dogs run down some hurdles, collect a ball, and run back in a relay. The three dogs at the session were all new so we did individual runs, and Calliope is too young to be doing the jumps (though she can handle them fine I&rsquo;m sure). My mum took a video of one of her runs early on, though it&rsquo;s terrible quality and she was way better towards the end of the session. You can <a href="https://youtube.com/2pMxXzpOc84">watch it here</a>. I&rsquo;m hoping we can continue doing some flyball (or other sports) as Calliope seems to really enjoy it.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 19/52</title><link>https://jayrude.dev/blog/weeknotes/2024-19/</link><pubDate>Sun, 12 May 2024 17:10:25 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-19/</guid><description>Programming I finally have the first voxels rendering, along with a basic keyboard controlled camera to fly around. I kept it simple and I&amp;rsquo;m just using signed distance functions in the compute shader to give me some basic shapes.
This is just a cube with a sphere subtracted from it. Colouring is just based on world coordinates.
I&amp;rsquo;m still working on the architecture around the rendering, and making it easy to create add new render techniques and swap them in and out.</description><content:encoded><![CDATA[<h2 id="programming">Programming</h2>
<p>I finally have the first voxels rendering, along with a basic keyboard controlled camera to fly around. I kept it simple and I&rsquo;m just using signed distance functions in the compute shader to give me some basic shapes.</p>
<figure><img src="voxels.png#center"
         alt="This is just a cube with a sphere subtracted from it. Colouring is just based on world coordinates."/><figcaption>
            <p>This is just a cube with a sphere subtracted from it. Colouring is just based on world coordinates.</p>
        </figcaption>
</figure>

<p>I&rsquo;m still working on the architecture around the rendering, and making it easy to create add new render techniques and swap them in and out. I started researching how to go about profiling the GPU work and came across <a href="https://docs.rs/wgpu/latest/wgpu/struct.ComputePassDescriptor.html#structfield.timestamp_writes">Render/ComputePass timestamping</a>. It&rsquo;s not supported fully on every GPU, but from what I can work out it should be usable on newer GPUs that are likely to be running the benchmark. Most importantly it should be available on <em>my</em> GPU. I don&rsquo;t know for sure though. The plan is to get the basics of this implemented next week before working on too much else.</p>
<p>Right now this site uses <a href="https://gohugo.io">Hugo</a> to statically generate everything. It&rsquo;s fairly nice to use, but I&rsquo;ve been thinking more about what I want on the site (aside from this blog) and realised that some of the things I want might <em>not</em> be static content. I&rsquo;ve been looking into <a href="https://astro.build">Astro</a> recently because it seems to be a good middleground. The majority of content is static, but you can have what Astro calls &ldquo;islands&rdquo; on a page of interactive non-static content. These islands can use whatever UI framework you want (React, Vue, Angular etc.) and each island is run in isolation of each other, meaning you can use multiple frameworks on a page if you want to which is cool I guess. The only downside for my blog would be that I wouldn&rsquo;t be able to just write some markdown and make a git commit anymore. I&rsquo;d likely have to host some sort of headless content management system like <a href="https://strapi.io/">Strapi</a>. Could be fun to set up though, and it would probably make writing from my phone easier. I mocked up a redesign of <a href="https://app.thestorygraph.com">The StoryGraph</a> (I use storygraph for all my book tracking) which should be available <a href="https://astro-tailwind-zeta.vercel.app/">here</a>.</p>
<figure><img src="storygraph-astro.webp#center"
         alt="It&amp;rsquo;s not really functional in any way, and it&amp;rsquo;s not responsive, but it looks nice I think. Web design isn&amp;rsquo;t really my forte."/><figcaption>
            <p>It&rsquo;s not really functional in any way, and it&rsquo;s not responsive, but it looks nice I think. Web design isn&rsquo;t really my forte.</p>
        </figcaption>
</figure>

<p>For now I&rsquo;m going to stick with using Hugo for this site, though I plan to ditch the theme I&rsquo;m using at the moment and go with something bespoke and a bit more personable. If I end up needing more I&rsquo;ll probably switch to Astro.</p>
<h2 id="reading">Reading</h2>
<p>This week I read <a href="https://app.thestorygraph.com/books/dad8814b-3a61-4bcb-9268-3a891a2da2f6">The Book That Broke the World by Mark Lawrence</a>, the followup to <a href="https://app.thestorygraph.com/books/868f1415-35ad-4a13-8728-e4e30033f6c4">The Book That Wouldn&rsquo;t Burn</a> which I read a couple weeks back. This book released about a month ago, and seeing as I liked the first book so much I figured I&rsquo;d get a signed hardback copy while they were available. It was pretty cheap at £15. The second book really expands on the world and setting, and we get to experience the perspectives of more characters. I enjoyed the book, but it suffers a little bit from middle book syndrome. I&rsquo;m looking forward to the final book next year and hoping that the set-up in this book pays off. For now I&rsquo;m using this for the &ldquo;Published in 2024&rdquo; square of my <a href="https://www.reddit.com/r/Fantasy/comments/1bt4iqf/official_rfantasy_2024_book_bingo_challenge/">r/fantasy bingo</a>. I say &ldquo;for now&rdquo; because this doesn&rsquo;t qualify for hard mode and all the other squares that I have books planned for do. I&rsquo;m not super focused on hitting a full hard mode bingo sheet, but if I can it would be nice.</p>
<p>On friday I started reading <a href="https://app.thestorygraph.com/books/d06e1df1-e5b5-45cc-8b2b-f28edb703508">Ninth House by Leigh Bardugo</a> for the &ldquo;Dark Academia&rdquo; bingo square. I remember hearing about this book when it released a few years back and I went in mostly blind based on what I could remember of the discussions around it back then. I&rsquo;m about 2/3 of the way through right now and my expectations were completely off. I was expecting something like <a href="https://www.imdb.com/title/tt4254242/">The Magicians</a> (which I need to read, I&rsquo;ve only seen the show) mixed with Harry Potter in a more grounded setting. What I&rsquo;m getting is a murder mystery with a side of magic. The books been decent so far, a little outside of my regular reading area, but still good. I will say this comes with a big content warning for rape and drug abuse.</p>
<h2 id="other">Other</h2>
<p>I did some gardening on monday. I started by clearing out the section of garden bed outside my door that had been taken over by some periwinkle or something that my mum planted a while back. Got some new plants from the local garden center which just reopened after some terrible flooding earlier in the year, a dahlia and 2 other plants I don&rsquo;t remember the name of. It was looking all nice and I was looking forwards to seeing it grow and fill out over the summer. Unfortunately earlier today our little demon pup dug in the exposed dirt and shredded the new plants in the process. I don&rsquo;t really blame her though, she was meant to being supervised in the garden to make sure that didn&rsquo;t happen. Oh well, I&rsquo;ll try again in a couple of weeks I guess.</p>
<p>Yesterday I posted about <a href="/blog/fitness-apps/">fitness apps</a> and my desire to start swimming this year. Today I looked into where I can swim near me and found out that the leisure center in town got shut down a couple of months ago because it was falling apart. The other towns around me still have swimming pools though so I&rsquo;m hoping to try one out at some point next week and get a membership if I attend more regularly. I don&rsquo;t drive so I&rsquo;ll have to cycle over for the evening sessions. It&rsquo;s about 17km each way, which isn&rsquo;t too bad but we&rsquo;ll see how that feels with the swimming included. I don&rsquo;t know if I should talk about my general exercise in these posts because it doesn&rsquo;t really change week to week. Twice a day I go for a walk around the farm with my dog, and once or twice a week I go for a bike ride. I guess if there&rsquo;s anything exciting that happens I can mention that.</p>
<p>This past week and a half I&rsquo;ve been playtesting a game that I&rsquo;ve been looking forwards to for a couple of years. I was part of a previous playtest on their discord 2 years back, and they invited me to do some testing pre-release of the game. I can&rsquo;t say what the game is, but it&rsquo;s been fun and I&rsquo;ll probably mention when it releases.</p>
]]></content:encoded></item><item><title>Fitness Apps</title><link>https://jayrude.dev/blog/fitness-apps/</link><pubDate>Fri, 10 May 2024 19:08:32 +0100</pubDate><guid>https://jayrude.dev/blog/fitness-apps/</guid><description>Currently I use Strava for tracking activities, Komoot for planning cycling routes, and the Bryton Active app for syncing routes from Komoot to my cycling computer, and syncing cycling sessions up to Strava. This works for now because I&amp;rsquo;m only walking and cycling, and I haven&amp;rsquo;t really been caring about the stats.
Over the summer I want to start taking things a little more seriously. Not hyper insane, but I want to see more stats.</description><content:encoded><![CDATA[<p>Currently I use <a href="https://www.strava.com/">Strava</a> for tracking activities, <a href="https://www.komoot.com/">Komoot</a> for planning cycling routes, and the Bryton Active app for syncing routes from Komoot to my cycling computer, and syncing cycling sessions up to Strava. This works for now because I&rsquo;m only walking and cycling, and I haven&rsquo;t really been caring about the stats.</p>
<p>Over the summer I want to start taking things a little more seriously. Not hyper insane, but I want to see more stats. I&rsquo;m also planning to start doing other exercise like swimming and light calisthenics workouts so I want to use something with good support for that. I don&rsquo;t really care about &ldquo;community&rdquo; stuff otherwise I&rsquo;d probably commit more to Strava. I might end up doing that anyway.</p>
<p>I&rsquo;ve done a little bit of research and I&rsquo;ve found a few things of potential interest:</p>
<ul>
<li><a href="https://www.goldencheetah.org/">GoldenCheetah</a>: Super detailed cycling stats and performance tracking, as well as running and swimming support (maybe others?)</li>
<li><a href="https://osmand.net/">OsmAnd</a>: Google maps alternative with offline navigation and points of interest</li>
<li><a href="https://wger.de/">wger</a>: Self-hosted workout, nutrition, and weight tracker</li>
<li><a href="https://opentracksapp.com/">OpenTracks</a>: Privacy first mobile activity tracking</li>
</ul>
<p>My ideal would be a self-hosted system with a high quality mobile and desktop app. It would have built-in recommended workout plans. There would be an activity recorder for Walk/Run/Cycle/Swim/Workout as well as decent stats where I can compare over time to see improvements. A route planner would be super useful too. I&rsquo;d also like a configurable streak counter, those always seem to be the best thing for motivating me. Finally I&rsquo;d want some basic integration with my current gear and apps. I&rsquo;m not talking seeing my friends activities from Strava or anything, just syncing activities to it, pulling sessions from my cycle computer, and routes from Komoot (though this wouldn&rsquo;t be needed if there was a good route planner).</p>
<p>I don&rsquo;t think there&rsquo;s an app out there that hits all these points for me, but I&rsquo;d love to find out that there is. I&rsquo;m also not going to pretend I could make this myself, but that would be a nice longterm goal.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 18/52</title><link>https://jayrude.dev/blog/weeknotes/2024-18/</link><pubDate>Mon, 06 May 2024 20:38:41 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-18/</guid><description>I did nothing this past week :) I finished reading The Goblin Emperor and it was good, but that&amp;rsquo;s about it. I&amp;rsquo;ll try and do more this week.</description><content:encoded><![CDATA[<p>I did nothing this past week :) I finished reading The Goblin Emperor and it was good, but that&rsquo;s about it. I&rsquo;ll try and do more this week.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 17/52</title><link>https://jayrude.dev/blog/weeknotes/2024-17/</link><pubDate>Mon, 29 Apr 2024 17:37:26 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-17/</guid><description>We&amp;rsquo;re so back. Felt like crap last week and couldn&amp;rsquo;t be bothered to write. I didn&amp;rsquo;t do a whole lot anyway (due to feeling like crap).
I&amp;rsquo;ll start with what I&amp;rsquo;ve done most, reading! Since the last post I finished A Memory of Light and read New Spring so now I&amp;rsquo;m done with the Wheel of Time (ok there&amp;rsquo;s some short stories and history books but I cba). After that I went through the r/fantasy bingo recommendations and started picking out some things to read.</description><content:encoded><![CDATA[<p>We&rsquo;re so back. Felt like crap last week and couldn&rsquo;t be bothered to write. I didn&rsquo;t do a whole lot anyway (due to feeling like crap).</p>
<p>I&rsquo;ll start with what I&rsquo;ve done most, reading! Since the last post I finished A Memory of Light and read New Spring so now I&rsquo;m done with the Wheel of Time (ok there&rsquo;s some short stories and history books but I cba). After that I went through the <a href="https://www.reddit.com/r/Fantasy/comments/1bt4km0/the_2024_rfantasy_bingo_recommendations_list/">r/fantasy bingo recommendations</a> and started picking out some things to read. You can keep track of my progress <a href="https://docs.google.com/spreadsheets/d/18dBZa0JsWhhBlgpEbhmMWendaeXtRf31uXdE2UMLOMw/edit?usp=sharing">here</a> if you want. I&rsquo;m thinking about writing review posts to complete Hero Mode, but I&rsquo;ve not decided yet. For now I&rsquo;ll just give quick overviews and spoiler free descriptions of what I read in these weekly notes.</p>
<p>The first post WoT book I read was <a href="https://app.thestorygraph.com/books/b7e49888-6582-4d09-b330-1615ac1852b9">The Adventures of Amina al-Sirafi by Shannon Chakaborty</a> which was very solid. It&rsquo;s about a retired pirate who has to un-retire and collect her old crewmates for one last job. There&rsquo;s an interesing mix of cultures, peoples, and religions along with magical creatures and artifacts. Surprisingly there&rsquo;s also quite a lot of lgbt representation which I wasn&rsquo;t expecting going in at all. I picked this book purely based off of the cover and didn&rsquo;t even read the blurb, so really I didn&rsquo;t have many expectations at all. Currently there&rsquo;s just the one book but I&rsquo;m fairly sure this is intended to be a series so I&rsquo;ll be keeping an eye out for more of Amina.</p>
<p>After Amina I read <a href="https://app.thestorygraph.com/books/868f1415-35ad-4a13-8728-e4e30033f6c4">The Book that Wouldn&rsquo;t Burn by Mark Lawrence</a> which I loved. The book is set in and around an infinite library and tells the story of Livira and Evar and their brief but meaningful interactions. As the book goes on the world expands massively and very satisfyingly. This one isn&rsquo;t actually part of my bingo sheet, but I saw it as a recommendation for the same category as Amina and I&rsquo;ve read Lawrence&rsquo;s <a href="https://app.thestorygraph.com/series/1660">The Broken Empire</a> trilogy before so I figured it would be a good read. Turns out this is part of a series and the second book came out a couple weeks ago, so I&rsquo;m going to read that for the Published in 2024 bingo square. Super recommend this one.</p>
<p>Right now I&rsquo;m reading <a href="https://app.thestorygraph.com/books/2e9fc3bc-ac19-4a99-a519-a00919266f46">The Goblin Emperor by Katherine Addison</a>. I&rsquo;m only halfway through so I can&rsquo;t comment fully on it, but what I&rsquo;ve read so far I like a lot. It&rsquo;s about Maia, an exiled half-goblin son of the Elflands Emperor, who becomes the titular goblin emperor after his father and brothers die in an airship crash. I&rsquo;ll probably have more to say about this next week.</p>
<p>Outside of reading I&rsquo;ve spent a fair amount of time planning and structuring my voxel project. I decided to start from scratch with a cleaner approach with things separated out into standalone crates. So far I&rsquo;ve been focusing on <a href="https://jayrude.dev/gitea/NERV/CRAWL">CRAWL (Core Rendering and Windowing Library)</a> which is mostly ripped out of the previous project and primarily serves to wrap <a href="https://wgpu.rs/">wgpu</a> and give me a base application to build from. There&rsquo;s no rendered voxels yet, and when I do start rendering them I&rsquo;m going to keep it simple to begin with. Just a small voxel sphere that will let me get the architecture set up nicely for adding other rendering techniques. I&rsquo;m hoping to get those first voxels in this week.</p>
<p>I started playing <a href="https://store.steampowered.com/app/1435790/Escape_Simulator/">Escape Simulator</a> again. There were a few extra levels and free DLCs that I hadn&rsquo;t played before. I&rsquo;ll probably start playing some custom community maps and maybe make my own. Also the <a href="https://youtu.be/XSVbXgBJIuI">Ashlands trailer</a> for Valheim came out along with the public test branch with Ashlands on! I&rsquo;ve been waiting for this for ages so I&rsquo;ll probably start up a new world soon and by the time Ashlands fully releases I should be ready to take it on.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 15/52</title><link>https://jayrude.dev/blog/weeknotes/2024-15/</link><pubDate>Mon, 15 Apr 2024 16:46:25 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-15/</guid><description>This was a good week. I got some work done on my projects, played Minecraft, and went out for a meal with some friends. My niece was on holiday for a couple days which gave me a nice calm break, which I appreciated.
There&amp;rsquo;s still no visual changes to the voxel project, hopefully I&amp;rsquo;ll have something to show again soon. I made some minor progress in regards to decoupling the world manager and renderer.</description><content:encoded><![CDATA[<p>This was a good week. I got some work done on my projects, played Minecraft, and went out for a meal with some friends. My niece was on holiday for a couple days which gave me a nice calm break, which I appreciated.</p>
<p>There&rsquo;s still no visual changes to the voxel project, hopefully I&rsquo;ll have something to show again soon. I made some minor progress in regards to decoupling the world manager and renderer. Part of that involved making the world manager able to return arbitrarily sized regions of voxels, but so far this has ended up making everything much slower so I may rethink how I&rsquo;m doing things again. I also did some more planning around how the various parts will interface and I&rsquo;m pretty happy with it so far.</p>
<p>The Minecrafting has been going well. I&rsquo;ve still not died in my hardcore world and I&rsquo;ve built some extra farms and begun working on a proper mine building and rail route down to the various mining levels. I won&rsquo;t bother putting any screenshots here this time because there&rsquo;s not a huge amount of new finished stuff. Next week I should have a couple things to show though.</p>
<p>This post was originally going to be written in the morning before work, but on sunday I reached one of the more well known chapters of the Wheel of Time, The Last Battle. In my edition of the final book this chapter is a whopping 221 pages! I read about half of it on sunday evening, and across my morning and work breaks I&rsquo;ve just gotten around to finishing the second half. Not long left until the end of the series now. Although, it&rsquo;s just occured to me that I&rsquo;ve not read the prequel novella yet so I also have that to look forward to. I&rsquo;m not sure what I&rsquo;ll read after I&rsquo;m done. I&rsquo;m tempted to take a small reading break, but I just hit a years streak of reading everyday and I&rsquo;d like to keep that going. The <a href="https://www.reddit.com/r/Fantasy/comments/1bt4iqf/official_rfantasy_2024_book_bingo_challenge/">r/fantasy subreddit&rsquo;s 2024 bingo challenge</a> just started which I think I&rsquo;ll take part in. I&rsquo;ve never tried it before, but it seems like a fantastic way to push myself to reading a wider variety of fantasy and sci-fi. It&rsquo;ll be a nice change of pace from a big long epic fantasy series. I might even post some reviews of the books I read.</p>
<p>Cycling season is finally starting to pick up. There&rsquo;s been a couple days without wind and of a decent temperature so I&rsquo;ve been about to get out a little bit. It&rsquo;s still kind of a rollercoaster though. Today for example it&rsquo;s been pretty windy (about 45kph) and alternating between sun, clouds, and hail (???). Hopefully as we move further into spring things will calm down and I can get a more consistent cycling schedule down.</p>
<p>I started experimenting with a new desktop GUI toolkit in the evenings called <a href="https://slint.dev/">Slint</a>. It&rsquo;s made by some ex-Qt developers and it&rsquo;s pretty nice. The licensing is kind of messy, but I&rsquo;m not planning on doing anything commercial with it so I can use it under GPLv3. The core of it is a Domain Specific Language similar to QML, and there are APIs for Rust, C++, NodeJS, and Python. I&rsquo;ve been on a Rust kick recently so I&rsquo;m of course using Rust. I haven&rsquo;t done a whole lot of interaction with my GUI from the Rust side yet, but I&rsquo;ve been building out a mockup GUI for a 3d level editor style tool to replace <a href="https://thief.fandom.com/wiki/DromEd">Dromed</a>. I&rsquo;m not actually planning to make a functional tool, it woul take way too much time. It&rsquo;s just that I have a good amount of experience using the editor and it&rsquo;s fun to imagine a more modern interface for it. Learning a new piece of tech is always easier if you have something to make it for, even if that thing isn&rsquo;t real.</p>
<figure><img src="slint-gui.png#center"
         alt="A prototype GUI for my fictional Dromed replacement. I&amp;rsquo;m still working on the styling and functionality."/><figcaption>
            <p>A prototype GUI for my fictional Dromed replacement. I&rsquo;m still working on the styling and functionality.</p>
        </figcaption>
</figure>

]]></content:encoded></item><item><title>Weeknotes 2024: 14/52</title><link>https://jayrude.dev/blog/weeknotes/2024-14/</link><pubDate>Mon, 08 Apr 2024 06:55:41 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-14/</guid><description>As expected I&amp;rsquo;ll be moving to a full 5 days of work for the next 3 months. I need to start making better use of my mornings and evenings now I think. I get up at 6:00 with my dog, and the rest of my family isn&amp;rsquo;t up until about 7:45 so I have a fair amount of time to do things. A while back I tried using this time to work on custom levels for the Thief series, but it didn&amp;rsquo;t last very long.</description><content:encoded><![CDATA[<p>As expected I&rsquo;ll be moving to a full 5 days of work for the next 3 months. I need to start making better use of my mornings and evenings now I think. I get up at 6:00 with my dog, and the rest of my family isn&rsquo;t up until about 7:45 so I have a fair amount of time to do things. A while back I tried using this time to work on custom levels for the Thief series, but it didn&rsquo;t last very long. It&rsquo;s been 4 years since my last Thief level release, and as much as I want to finish some of my in-progress missions I think I&rsquo;m just going to accept that I don&rsquo;t have enough interest in it to commit the hours to working on them.</p>
<p>I carried on working on voxel stuff. The project never had any direction previously, it was just me vaguely working on an engine based off one of the papers I have. I don&rsquo;t have any real interest in making a voxel game, so engine progress was slow and pretty meaningless because there was nothing driving it. In the end I decided I wanted to focus on comparison of rendering techniques. Memory usage, rays per second, modification speed, etc. I have a list of some of the techniques I want to implement, and I&rsquo;ve started stripping out some of the less relevant parts of the current codebase and working towards a nice setup where I can just implement a generic renderer. I&rsquo;m pretty happy with the progress. Even if nothing has changed visually so far, it feels like a good direction that I can stay more motivated with. Maybe eventually I&rsquo;ll use it as a base for an actual game/engine.</p>
<p>Cycling progress is still slow. The weather is still too bad, but now in a different way. The past few months it was too cold, and too wet. Now it&rsquo;s warmer and dryer (though I don&rsquo;t really mind cycling in the rain tbh), but the wind is awful. I live in a really flat and open area of England, so when it&rsquo;s windy there&rsquo;s no protection. As much as I enjoy cycling in general, there&rsquo;s nothing fun about it when the wind is 50+ kph. It&rsquo;s also fairly dangerous at that point. A gusting crosswind could easily put me in a ditch, or into a car overtaking me, or into oncoming traffic. This past weekend was the result of a storm, so I&rsquo;m hoping it&rsquo;s better this week. I&rsquo;m seeing some friends for a meal on friday. It&rsquo;s in the next town over, about 15km, so that should be a nice relatively easy ride.</p>
<p>I&rsquo;m still on my re-read of the Wheel of Time. I finished Towers of Midnight on tuesday and I&rsquo;m just over 400 pages indo A Memory of Light now. If I read fast I might finish the series this week, but more likely it will be next week. As I&rsquo;ve been reading I had some vague ideas for a roguelike taking inspiration from the magic and world of the Wheel of Time. I&rsquo;ll probably never make it, but it&rsquo;s still nice to think about.</p>
<p>I&rsquo;ve been playing an increasing amount of Minecraft recently. I&rsquo;ve been trying to find something &ldquo;new&rdquo; to become my go to game. For the last 9 (!!) years that&rsquo;s been League of Legends, but that&rsquo;s going to come to an end soon. I love the game, though for my sanity I mostly play ARAM mode and often have chat disabled. If I could I&rsquo;d continue playing. Unfortunately the game is implemented a kernel level anti-cheat called Vanguard, the same one used in Riot&rsquo;s other big game Valorant. Vanguard is Windows only, and all attempts to bypass using it on other platforms have failed in the past (wine, vms, etc.). I&rsquo;m Linux only, and as much as I like League I&rsquo;m not going to install Windows just to play it. So I&rsquo;ve been playing Minecraft instead. There&rsquo;s a modpack I like that brings the game to a sort of extended midgame and removes or rebalances a lot of more endgame parts to give a nicer progression. The packs called <a href="https://www.curseforge.com/minecraft/modpacks/musketeer">Musketeer</a>, I&rsquo;d recommend giving it a try, or at least reading it&rsquo;s description if you&rsquo;re familiar with the game.</p>
<figure><img src="minecraft.png#center"
         alt="My current hardcore world. The paths to the right lead to my mine in the mountain. I made that stream by hand :)"/><figcaption>
            <p>My current hardcore world. The paths to the right lead to my mine in the mountain. I made that stream by hand :)</p>
        </figcaption>
</figure>

]]></content:encoded></item><item><title>Weeknotes 2024: 13/52</title><link>https://jayrude.dev/blog/weeknotes/2024-13/</link><pubDate>Mon, 01 Apr 2024 10:05:54 +0100</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-13/</guid><description>I had another busy week, and I&amp;rsquo;ve realised that it makes more sense to me to do these weekly notes on Monday morning where I have more free time. Last week was a Monday, and today is a Monday, so it&amp;rsquo;ll likely be Mondays going forward.
I got some more work done with my voxel project. I&amp;rsquo;ve refactored a good chunk of the renderer CPU side to be easier to understand and work with.</description><content:encoded><![CDATA[<p>I had another busy week, and I&rsquo;ve realised that it makes more sense to me to do these weekly notes on Monday morning where I have more free time. Last week was a Monday, and today is a Monday, so it&rsquo;ll likely be Mondays going forward.</p>
<p>I got some more work done with my voxel project. I&rsquo;ve refactored a good chunk of the renderer CPU side to be easier to understand and work with. Previously it was all mangled into one big struct with 200 line methods. It&rsquo;s much better now. I&rsquo;d like to write about voxel stuff more in the future. Maybe covering some of the papers I&rsquo;ve read, simplifying them so they&rsquo;re not so academic. I&rsquo;d have to actually implement them though so we&rsquo;ll see.</p>
<p>Last week I talked about my job a bit, and mentioned that I only work 3 days a week. Well I&rsquo;ve sort of taken on a bit of a QA role for a project, so I might be doing a full 5 days for the next couple of weeks/months. It&rsquo;ll probably mean that I get less personal stuff done and these weekly notes will get shorter, but it&rsquo;s a reasonably fun project and the extra money won&rsquo;t hurt.</p>
<p>My plan with Fridays was to do speedrun streams in the morning, then go cycling and do some programming in the afternoon. However, on Friday I woke up and just couldn&rsquo;t be bothered to do anything and decided to take a rest day. It was probably a good decision because the weekend was super busy.</p>
<p>The previous weekend was my sister&rsquo;s birthday and my niece&rsquo;s birthday party. This weekend was my niece&rsquo;s actual birthday, my brothers birthday, and Easter. It was fun, but today I feel like crap. Mostly because I ate awfully. I&rsquo;m generally a pretty healthy eater, but I mostly ate chocolate, cake, and takeaway over the weekend and my body is really feeling it now. Today might be another rest day, we&rsquo;ll see.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 12/52</title><link>https://jayrude.dev/blog/weeknotes/2024-12/</link><pubDate>Mon, 25 Mar 2024 09:26:23 +0000</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-12/</guid><description>It&amp;rsquo;s only the second week and I&amp;rsquo;m already late posting. Though I guess I can post whenever so it&amp;rsquo;s not really late at all. It was my sister&amp;rsquo;s birthday yesterday, and also her daughters birthday party (my niece&amp;rsquo;s birthday is next week). Spending 2 hours at a trampaline park with kids is extremely exhausting and I just couldn&amp;rsquo;t be bothered to write last night.
On Monday I posted about my internet problems and fortunately we&amp;rsquo;re doing a little bit better on that front now.</description><content:encoded><![CDATA[<p>It&rsquo;s only the second week and I&rsquo;m already late posting. Though I guess I can post whenever so it&rsquo;s not really late at all. It was my sister&rsquo;s birthday yesterday, and also her daughters birthday party (my niece&rsquo;s birthday is next week). Spending 2 hours at a trampaline park with kids is extremely exhausting and I just couldn&rsquo;t be bothered to write last night.</p>
<p>On Monday I posted about my <a href="/blog/internet-problems/">internet problems</a> and fortunately we&rsquo;re doing a little bit better on that front now. I won&rsquo;t go into too much detail here, but the gist is that mobile routers generally use two antennas and they work together to align signals. The result of using 2 is generally much better than just doubling the single antenna signal. It seems like the connection port of one of our antennas is bent and unreliable. I did some fiddling and things got better but it&rsquo;s just a temporary fix. I still need to resolve it more permanently.</p>
<p>I didn&rsquo;t do much personal project stuff Tuesday/Wednesday/Thursday, but work was more interesting than usual. My job isn&rsquo;t really a developer role, I&rsquo;m primarily working with a proprietary scripting language for one of the application suites we use or doing configuration work. Last year we had a customer who really wanted a progressive web app (PWA) to go along with the main service they purchased. They didn&rsquo;t really <em>need</em> the PWA (in fact it was guaranteed to produce a worse experience than using the normal service), and it was a one off small sale so the company didn&rsquo;t want to take a dev away to work on it. That meant I got to spend a couple weeks learning Flutter and using Firebase which was fun.</p>
<p>Recently they&rsquo;ve been having some issues with push notifications not working so this week I came back to the project to work it out. Turns out it&rsquo;s entirely my fault sort of. On every platform I tested on during development, if you requested push notification permissions and permissions had already been granted you would get told that permission was granted. Sounds reasonable right? &ldquo;Hey can I send these?&rdquo;, &ldquo;Yeah you already asked you&rsquo;re good&rdquo;. Apple phones don&rsquo;t do that though. Or rather they do, until you restart your phone and then suddenly they don&rsquo;t and you just get told permission is denied. I had limited access to Apple devices for testing, and I&rsquo;d only checked with force closing the app, not restarting. It was an easy fix in the end, Firebase&rsquo;s messaging service provides a way to query the current permissions state so now I only request permissions if we don&rsquo;t already have them. Although ultimately the fix was easy, it was still annoying to track down. Apple&rsquo;s support of PWAs is&hellip; poor. Working on the project provided a nice change though.</p>
<p>The weather has been getting a bit better now that we&rsquo;re starting to enter True Spring, so I can begin cycling again without feeling so cold. I did some short rides Tuesday and Wednesday. I&rsquo;m planning to do a bikepacking trip in the summer so I need to work on building my distance up again. When I was cycling last year it was pretty much the only form of exercise I did. I think I&rsquo;m fitter now than I was then, but with all the walking I do now I&rsquo;m surprisingly tired when I find time to ride. I probably need to eat more or something.</p>
<p>I don&rsquo;t remember if I mentioned it last week, but I only work 3 days a week. Mondays, Fridays I have off (and the weekend). I&rsquo;m trying to keep up the habit of doing speedrunning Friday mornings, so I streamed again for a bit. I ended up cutting it short because of some technical troubles. I&rsquo;m a linux user (<a href="https://knowyourmeme.com/memes/btw-i-use-arch">I use Arch btw</a>) and earlier in the week I updated my system to use Wayland rather than X11. It&rsquo;s been a fairly positive experience for the most part, but it broke my window/display captures in <a href="https://obsproject.com/">OBS</a> and my stream hotkeys seem to not always work. I lost a lot of time trying to fix things and getting distracted. I didn&rsquo;t get a PB but I&rsquo;m getting more familiar with the route for the game I&rsquo;m running at the minute.</p>
<p>The rest of the day and most of Saturday I spent revisiting <a href="https://mastodon.gamedev.place/@Jayrude/109410043999048580">my voxel raycaster</a>. Just tidying up some things and refamiliarising myself with it. I want to keep working on it and maybe implement some other rendering techniques at some point. I don&rsquo;t have any plans for a game here, I&rsquo;m just interested in voxel rendering and compression.</p>
]]></content:encoded></item><item><title>Internet problems</title><link>https://jayrude.dev/blog/internet-problems/</link><pubDate>Mon, 18 Mar 2024 09:46:58 +0000</pubDate><guid>https://jayrude.dev/blog/internet-problems/</guid><description>I mentioned yesterday that I live on a farm, and it&amp;rsquo;s generally pretty nice. I get to wake up hearing the birds and chickens, I look out my window and see trees and a small lake with fish, ducks, and often a heron or two. There&amp;rsquo;s lots of cool birds of prey around. At the moment there&amp;rsquo;s a Barn Owl and two Red Kites (I think they&amp;rsquo;re super cool, I&amp;rsquo;ll try and get a picture one day), but I&amp;rsquo;ve seen a Merlin, Sparrowhawks (my favourite bird thanks to Le Guin), Buzzards, and plenty of Kestrels (did you know they&amp;rsquo;re also called windfuckers).</description><content:encoded><![CDATA[<p>I mentioned yesterday that I live on a farm, and it&rsquo;s generally pretty nice. I get to wake up hearing the birds and chickens, I look out my window and see trees and a small lake with fish, ducks, and often a heron or two. There&rsquo;s lots of cool birds of prey around. At the moment there&rsquo;s a Barn Owl and two Red Kites (I think they&rsquo;re super cool, I&rsquo;ll try and get a picture one day), but I&rsquo;ve seen a Merlin, Sparrowhawks (my favourite bird thanks to Le Guin), Buzzards, and plenty of Kestrels (did you know they&rsquo;re also called <a href="https://en.wiktionary.org/wiki/windfucker">windfuckers</a>). We also get geese visiting every year for their mating season. Right now there&rsquo;s 4 pairs of them hanging around the lake and a couple more pairs that I see around the fields while walking the dogs.</p>
<p>Unfortunately there&rsquo;s one big thing that <em>sucks</em> about living here. The internet connection speed. We have no wired broadband connection at all. Sure there&rsquo;s a fibre line along the road, but that&rsquo;s almost a kilometer away and getting connected to that isn&rsquo;t cheap. Besides my family doesn&rsquo;t actually own the farm, we&rsquo;re just tenants in one of the farmhouses, we&rsquo;d need to convince the farmer to have it installed.</p>
<p>So what do we do for internet? We have a mobile 4G connection. It mostly works okay enough for the basics, but it&rsquo;s wildly inconsistent. Last year I did some research into how to setup a mobile broadband connection for best results, and we went from a relatively unstable 10-15mbps up/down to a fairly consistent 40-75mbps up/down. A huge improvement! I know that speed might not be anything special for a lot of people, if you live in a city you might even think that speed is awful idk, but for us it was an insane difference. I could watch youtube at 1080p60fps, watch Twitch livestreams, and use streaming services without buffering. It was fantastic, but now it&rsquo;s bad again.</p>
<p>About 4 or 5 months ago the internet started getting slower again. It wasn&rsquo;t too big of a deal to begin with, we dropped to around 25-30 mbps which was still way more usable than what we had before. In the last month however it&rsquo;s been <em>really</em> bad. As far as I can tell nothing has changed with our setup, but we rarely hit 15mbps and are more commonly around 5 or below. Sometimes worse.</p>
<figure><img src="speedtest.jpg#center"
         alt="It took multiple tries to load the speedtest :)"/><figcaption>
            <p>It took multiple tries to load the speedtest :)</p>
        </figcaption>
</figure>

<p>This isn&rsquo;t usable anymore. I work from home two days a week, so does my brother, and my mother also works from home sometimes. It&rsquo;s hard to get work done when you often have to wait 5-10s for a page to load. I&rsquo;m going to spend some time researching my options and hopefully I&rsquo;ll be back in a week or two with the good news that I suddenly have ultra gigabit bazooka internet.</p>
]]></content:encoded></item><item><title>Weeknotes 2024: 11/52</title><link>https://jayrude.dev/blog/weeknotes/2024-11/</link><pubDate>Sun, 17 Mar 2024 16:42:00 +0000</pubDate><guid>https://jayrude.dev/blog/weeknotes/2024-11/</guid><description>This is my first weekly note, and it feels pretty awkward writing about things I&amp;rsquo;ve done. I haven&amp;rsquo;t done a huge amount of writing in the past, but when I have it&amp;rsquo;s always been a thing. Like &amp;ldquo;this is a project, these are the cool things about it, this is how it was made&amp;rdquo;. This is more personal I guess. I&amp;rsquo;m sure I&amp;rsquo;ll get used to it quickly but for now, Awkward.</description><content:encoded><![CDATA[<p>This is my first weekly note, and it feels pretty awkward writing about things I&rsquo;ve done. I haven&rsquo;t done a huge amount of writing in the past, but when I have it&rsquo;s always been a <em>thing</em>. Like &ldquo;this is a project, these are the cool things about it, this is how it was made&rdquo;. This is more personal I guess. I&rsquo;m sure I&rsquo;ll get used to it quickly but for now, Awkward.</p>
<p>The first half of my week was pretty boring, I didn&rsquo;t really do much. On my standard day I walk my dog a couple times, read 2 or 3 chapters of a book (I&rsquo;m currently re-reading the Wheel of Time), and play games for a bit in the evening. That&rsquo;s basically all Monday to Wednesday was. At least I can&rsquo;t remember anything else interesting happening. Wednesday was when I started thinking about blogging and writing about things in general, so that&rsquo;s when I became more conscious of my daily experiences and stuff. I ended up purchasing this domain and spinning up a VPS later that evening.</p>
<p>Thursday is where more interesting things start happening. I work from home on Thursday&rsquo;s, and it&rsquo;s a good thing I do because we had a minor disaster on the farm (yes I live on an actual honest to god farm with tractors and everything). My sister has a horse (she&rsquo;s called Shakiah (the horse not my sister)), and she decided to make a daring escape. I had to help her recover the horse, and we ended up walking about 5 kilometers each way tracking hoof across 8 crop fields. Good exercise and all that, but I&rsquo;d rather not do it again.</p>
<figure><img src="shakiah.jpg#center"
         alt="Shakiah is damn filthy after rolling in mud" height="512px"/><figcaption>
            <p>Shakiah is damn filthy after rolling in mud</p>
        </figcaption>
</figure>

<p>Recently I&rsquo;ve been watching my friend 7thArmstrong streaming some speedruns on <a href="https://twitch.tv/7tharmstrong">his twitch channel</a>. He&rsquo;s been running an old N64 game called Rocket: Robot on Wheels, and a recent climbing game called Jusant. I started playing both of them a bit myself (they&rsquo;re good!). Seeing him speedrun got me inspired to pick up speedrunning again, learning new games and revisiting ones I&rsquo;ve ran before. I figured a good place to start was the first game I ever ran, Out There Somewhere.</p>
<figure><img src="ots.png#center"
         alt="My old Out There Somewhere time. Ranked 100/108" width="auto"/><figcaption>
            <p>My old Out There Somewhere time. Ranked 100/108</p>
        </figcaption>
</figure>

<p>Friday morning was spent relearning and doing some initial de-rust runs of the game. I decided to stream my runs like I used to. By the end of it I&rsquo;d got a new personal best time by almost 2 and a half minutes. Seems like I was really bad back when I started speedrunning huh?</p>
<p>After streaming (and lunch) I started looking into what tech I wanted to use for blogging and self hosting stuff in general. What I settled on to start with was:</p>
<ul>
<li><a href="https://www.portainer.io/">Portainer</a> to manage my <a href="https://www.docker.com/">docker</a> containers,</li>
<li><a href="https://about.gitea.com/">Gitea</a> to host a git server,</li>
<li><a href="https://docs.linuxserver.io/general/swag/">SWAG</a> for SSL certificates, reverse proxying, and authentication (with Fail2Ban),</li>
<li>and <a href="https://gohugo.io/">Hugo</a> for the main site and blogging.</li>
</ul>
<p>With the exception of SWAG I&rsquo;ve used all these technologies before so setting them up was fairly quick and painless. Previously I&rsquo;ve done reverse proxying somewhat manually, but SWAG makes it incredibly easy. All of the services I&rsquo;m using for now have existing proxy configs which I used, and adding an unsupported service is as simple as copying and modifying an existing template. With the basics set-up I posted my <a href="/blog/hello-friends/">first post</a> which felt good and cool.</p>
<p>One thing I didn&rsquo;t get a chance to do at the time was automatic deployment of blog posts. The initial Hugo site and first blog post were manually uploaded to the server, which is not something I want to do each time I post. The less friction between writing and seeing a post the better. There&rsquo;s an existing GitHub Action for deploying a Hugo site to GitHub pages, which allows you to automatically build and deploy your site by making a commit to a repository. Gitea also has Actions, and you can even use most GitHub Actions with it which is super neat and cool. I had to setup an action runner (which just required adding another image to the stack in Portainer), but it wasn&rsquo;t very hard following the docs. What was a bit of a pain however was modifying the Hugo deployment action to work with my repository. For one thing, I wasn&rsquo;t using GitHub pages, so I needed to add a run action to copy the built website over to the appropriate place on my server using <code>rsync</code>. And for another, the repository checkout action wasn&rsquo;t working! My Gitea is hosted on a subfolder (<code>https://jayrude.dev/gitea</code>) rather than a sub-domain (<code>https://gitea.jayrude.dev</code>) and the subfolder was getting dropped. I found <a href="https://github.com/actions/checkout/issues/1370">this issue</a> which says that it won&rsquo;t be fixed because they don&rsquo;t officially support non-GitHub servers. Luckily someone there linked a fork of the action which fixes it, so I just moved over to that instead and everything worked.</p>
<p>I have a cute Border Collie puppy called Calliope and she&rsquo;s just about to turn 6 months old. Because we&rsquo;re on a farm she&rsquo;s a little bit isolated from other dogs. We&rsquo;ve taken puppy training classes which are in a group, so she&rsquo;s had a bit of socialisation, but it&rsquo;s all been on-lead stuff. So to help with her socialisation we booked a spot at a puppy social event on Saturday afternoon ran by the training school. Calliope has an insane amount of energy, she&rsquo;s a Border Collie, of course she does. I spent all morning trying to wear her out a bit because I didn&rsquo;t want her to be too overwhelming for the younger dogs. We went for our morning 2.5k walk, played frisbee in the garden, and splashed around in my niece&rsquo;s paddling pool, and by the end of it she had a bit of a rest before we headed out.</p>
<figure><img src="calliope.png#center"
         alt="My adorable puppy &amp;lt;3" width="auto"/><figcaption>
            <p>My adorable puppy &lt;3</p>
        </figcaption>
</figure>

<p>The puppy social was fantastic. I didn&rsquo;t take any pictures, so just imagine 10-15 puppies having fun for an hour. Calliope&rsquo;s first off-lead session was with 2 labradors who had already had a minute to get friendly. She avoided them for a bit, just sniffing around the outside until they noticed her and came over to say hello. She was a bit nervous so we paused and gave her some space. Her next session she came in with some smaller fluffy dogs (I don&rsquo;t know their breeds sorry!) and she loved it. Most of the other puppies that weren&rsquo;t tiny got brought in at this point and they all had their own little groups of play which was nice. Calliope was really good at reading the tone of other dogs and respecting their boundaries which was great! She liked being chased and being the chaser, but she&rsquo;s much faster than the other dogs and made sure to match their pace, stop when they stopped, and take turns. We also got to see one of the puppies from her training classes, a German Shepherd called Logan. He&rsquo;s really cute, but unfortunately a bit too reactive so he didn&rsquo;t get an opportunity to go off-lead.</p>
<p>This week ended up being my first week hitting 50km of tracked walks on Strava! Usually I&rsquo;m at around 40km, so this was a nice little push. It did however knacker me out, so today (Sunday) I&rsquo;ve mostly just been relaxing. Of course I still had to give the pup her morning, lunch, and evening walks (did I mention she has a lot of energy).</p>
<figure><img src="strava.jpg#center"
         alt="Walking the dog is great exercise!" width="auto"/><figcaption>
            <p>Walking the dog is great exercise!</p>
        </figcaption>
</figure>

<p>Damn I actually kind of did a lot this week huh? I imagine that most weeks aren&rsquo;t going to be this eventful and the weeknotes will be a lot shorter and blander. This feels like a good one to start on though. See you next week! :)</p>
]]></content:encoded></item><item><title>Hello, friends</title><link>https://jayrude.dev/blog/hello-friends/</link><pubDate>Fri, 15 Mar 2024 15:17:33 +0000</pubDate><guid>https://jayrude.dev/blog/hello-friends/</guid><description>New domain, new website, new blog. Last time I managed to write one singular post before abandoning everything&amp;hellip; Hopefully this time is better.
Recently I&amp;rsquo;ve been reading a lot of Lu&amp;rsquo;s posts over at Todepond dot com and it&amp;rsquo;s got me interested in writing again. There&amp;rsquo;s no way I&amp;rsquo;m going to manage the level of activity that Lu does (daily posts!), but I think having a regular posting schedule will be good for organising my thoughts and experiences.</description><content:encoded><![CDATA[<p>New domain, new website, new blog. Last time I managed to write one singular post before abandoning everything&hellip; Hopefully this time is better.</p>
<p>Recently I&rsquo;ve been reading a lot of Lu&rsquo;s posts over at <a href="https://www.todepond.com/wikiblogarden/">Todepond dot com</a> and it&rsquo;s got me interested in writing again. There&rsquo;s no way I&rsquo;m going to manage the level of activity that Lu does (daily posts!), but I think having a regular posting schedule will be good for organising my thoughts and experiences. The goal is weekly posts in the same vein as <a href="https://nonnullish.pages.dev/weeknotes/">nonnullish</a> with a post each Sunday.</p>
<p>I&rsquo;ve also been getting back into the idea of self-hosting recently, hence this site. I have a few things set up here already such as <a href="https://jayrude.dev/gitea">gitea</a>, but I need to port over some other things from my old server. The first weekly post will probably be about setting all of this up.</p>
<p>See you Sunday :)</p>
]]></content:encoded></item></channel></rss>