D00k https://d00k.net/ Recent posts on the site en-ie Fri, 25 Aug 2023 00:00:00 EST A new way to theme the Quickscreen in Rockbox https://d00k.net/blog/quickscreen_rockbox_tags/ https://d00k.net/blog/quickscreen_rockbox_tags/ Dook Wed, 24 Jul 2024 14:48:28 EST <p>For the past year, I&rsquo;ve been working on a major redesign of <a href="https://d00k.net/design/themify">Themify</a>, my user-customisable Rockbox theme. It&rsquo;s proven to be my most ambitious Rockbox project yet, aiming to create a level of user-experience unseen before in any other UI theme. However, one of the major improvements in this rebuild has been the overhauling of Rockbox&rsquo;s Quickscreen.</p> <h2 id="what-is-the-quickscreen">What is the Quickscreen?</h2><p>For the unfamiliar, Rockbox lets users choose up to four settings to be accessible from a screen known as the Quickscreen. By default, information on the Quickscreen is drawn by Rockbox in a plain manner. This isn&rsquo;t something that can be changed, and so theme creators have recently begun to try working around it. Since Yuuiko&rsquo;s Infomatrix, several themes have begun bringing more visual information to the Quickscreen. Often themes might show sliders for volume and brightness, or indicators for certain feature&rsquo;s status. However, the actual Quickscreen items however have largely remained out of reach.</p> <h2 id="theorizing-a-path-to-custom-quickscreens">Theorizing a path to custom Quickscreens</h2><p>During Adwaitapod 3.0&rsquo;s development, I began to theorize a method of creating custom Quickscreens. Theme creators are no strangers to using hacks and tricks to get around the limitations of the theme engine, and I adapted some of these to make the first prototype a reality.</p> <p>Themes in Rockbox are constructed using Viewports with contents. Viewports are essentially a C struct that you provide coordinates, dimensions and information like a font. The theme engine has a few different kinds of viewports, but the important one here is the &ldquo;menu&rdquo; viewport. This is a mandatory inclusion in every theme, essentially drawing the main interface of Rockbox. It&rsquo;s within this viewport that the default Quickscreen is drawn.</p> <p>Typically default viewports can be suppressed using a 1px wide viewport, essentially making it so small that the contents don&rsquo;t appear. However on the Quickscreen, this caused Rockbox to hard crash, something which could cause major issues on a user&rsquo;s device. To solve this, I ended up creating the smallest possible font I could, and fine tuned the viewport size until it didn&rsquo;t crash anymore. This could then be hidden using colour to blend it into a solid backdrop.</p> <p>I was then left with a (nearly) blank canvas to create my own Quickscreen on. However, I discovered a major limitation that prevented this being a feasible implementation for current themes.</p> <h2 id="the-problem">The Problem</h2><p>Rockbox&rsquo;s large number of settings and options are made available to themes via strings. These strings can be called upon via a tag in a theme&rsquo;s code that displays the output of a given setting. This includes features like the user&rsquo;s Quicksettings, which are accessible via &ldquo;qs top&rdquo;, &ldquo;qs right&rdquo; etc.</p> <p>The issue is however, is that these strings only output the name of the setting saved to each Quicksetting slot. To be feature-compliant with the default Quickscreen, a theme would need to be able to display the value of those settings.</p> <p>But this is not something that was technically possible in the Rockbox theme engine. There&rsquo;s no string available for Quicksetting values, nor any way to recursively find the values using the Quicksetting&rsquo;s strings. It was clear that in order to make these improvements feasible, I would need to expand the Rockbox theming engine.</p> <h2 id="working-in-rockboxs-codebase">Working in Rockbox&rsquo;s codebase</h2><p>While I had come up with a potential in my mind before looking at the codebase, once I actually got hands on with understanding how the theme engine works it proved to be not the best solution. There was a moment at the start of my attempts where I got rather chastised for what was quite frankly brainless code, however once the person realised that I had no idea what I was doing they were quick to begin explaining to me where I went wrong and how memory in C works.</p> <p>This was a rather pivotal moment on my journey as I realised that in order to succeed I needed to be smart rather than just brute forcing my way to a solution. My original attempts involved copying how the settings strings worked, and basically running it again to get the Quickscreen item&rsquo;s values. This eventually worked, but the values got mangled somewhere between my code and the display output. After taking a month off, one day the solution came to me out of nowhere: just copy what the default Quickscreen does.</p> <p>The default Quickscreen&rsquo;s solution is quite simple. Simply searching up the settings list for the Quickscreen item, then either returning it&rsquo;s value with a function or simply turning the pointer into a string and returning that. I got results very quickly using this method, not to mention stable ones too (which were not common in my previous attempts).</p> <h2 id="the-final-result">The final result</h2><p>My merge request ended up with 8 new tags for the theme engine. I broke down what was needed into a simple formula: take the four directions the Quicksettings are mapped to on the controls (Top, Bottom, Left and Right) and assign a single character representation (T, B, L and R). Then assign the title of the Quicksetting to the uppercase characters, and the value of the Quicksetting to the lowercase characters. Finally prefix with the letter Q to annunciate it&rsquo;s relation to the Quickscreen.</p> <p>It results in a large number of tags, but allows the code to be easily read at a glance. See a small example below of the left Quicksetting tags in use.</p> <pre><code># Left Button %Vl(Quicksetting_Title,45,130,100,18,3)%QL %Vl(Quickscreen_Value,45,149,100,16,4)%Ql</code></pre> <figure><img src="https://d00k.net/img/blog/quicksettings.png" loading="lazy" alt="two ipods, showing a before and after situation. The before uses basic text to display quicksettings, the after uses graphics and buttons to show the same information but more visually" width="100%" height="100%"> <figcaption>The Quickscreen tags being used in Themify 2.</figcaption></figure> <h2 id="wrap-up-and-thanks">Wrap up and thanks</h2><p>My original merge request proved to be rather lengthy, mostly out of fear of adding too much code outside my tags. However major thanks to Chris on the Rockbox team who came up with a brilliantly clever change that turned my code into a small function that the tags could call on. He also helped to get the merge request approved and added to the main repository.</p> <p>This side quest has proved to be a big lesson for me in many parts of programming. I think the biggest thing I&rsquo;ve gotten out of it is properly using git as I develop my projects, keeping track of every change made to the codebase rather than only updating every few months. I have some more changes to work on in the coming future to improve the quality of life for Rockbox users in the years to come, not to mention adding these new Quickscreen features to my current themes.</p> <p>For the past year, I&rsquo;ve been working on a major redesign of <a href="https://d00k.net/design/themify">Themify</a>, my user-customisable Rockbox theme. It&rsquo;s proven to be my most ambitious Rockbox project yet, aiming to create a level of user-experience unseen before in any other UI theme. However, one of the major improvements in this rebuild has been the overhauling of Rockbox&rsquo;s Quickscreen.</p> <h2 id="what-is-the-quickscreen">What is the Quickscreen?</h2><p>For the unfamiliar, Rockbox lets users choose up to four settings to be accessible from a screen known as the Quickscreen. By default, information on the Quickscreen is drawn by Rockbox in a plain manner. This isn&rsquo;t something that can be changed, and so theme creators have recently begun to try working around it. Since Yuuiko&rsquo;s Infomatrix, several themes have begun bringing more visual information to the Quickscreen. Often themes might show sliders for volume and brightness, or indicators for certain feature&rsquo;s status. However, the actual Quickscreen items however have largely remained out of reach.</p> <h2 id="theorizing-a-path-to-custom-quickscreens">Theorizing a path to custom Quickscreens</h2><p>During Adwaitapod 3.0&rsquo;s development, I began to theorize a method of creating custom Quickscreens. Theme creators are no strangers to using hacks and tricks to get around the limitations of the theme engine, and I adapted some of these to make the first prototype a reality.</p> <p>Themes in Rockbox are constructed using Viewports with contents. Viewports are essentially a C struct that you provide coordinates, dimensions and information like a font. The theme engine has a few different kinds of viewports, but the important one here is the &ldquo;menu&rdquo; viewport. This is a mandatory inclusion in every theme, essentially drawing the main interface of Rockbox. It&rsquo;s within this viewport that the default Quickscreen is drawn.</p> <p>Typically default viewports can be suppressed using a 1px wide viewport, essentially making it so small that the contents don&rsquo;t appear. However on the Quickscreen, this caused Rockbox to hard crash, something which could cause major issues on a user&rsquo;s device. To solve this, I ended up creating the smallest possible font I could, and fine tuned the viewport size until it didn&rsquo;t crash anymore. This could then be hidden using colour to blend it into a solid backdrop.</p> <p>I was then left with a (nearly) blank canvas to create my own Quickscreen on. However, I discovered a major limitation that prevented this being a feasible implementation for current themes.</p> <h2 id="the-problem">The Problem</h2><p>Rockbox&rsquo;s large number of settings and options are made available to themes via strings. These strings can be called upon via a tag in a theme&rsquo;s code that displays the output of a given setting. This includes features like the user&rsquo;s Quicksettings, which are accessible via &ldquo;qs top&rdquo;, &ldquo;qs right&rdquo; etc.</p> <p>The issue is however, is that these strings only output the name of the setting saved to each Quicksetting slot. To be feature-compliant with the default Quickscreen, a theme would need to be able to display the value of those settings.</p> <p>But this is not something that was technically possible in the Rockbox theme engine. There&rsquo;s no string available for Quicksetting values, nor any way to recursively find the values using the Quicksetting&rsquo;s strings. It was clear that in order to make these improvements feasible, I would need to expand the Rockbox theming engine.</p> <h2 id="working-in-rockboxs-codebase">Working in Rockbox&rsquo;s codebase</h2><p>While I had come up with a potential in my mind before looking at the codebase, once I actually got hands on with understanding how the theme engine works it proved to be not the best solution. There was a moment at the start of my attempts where I got rather chastised for what was quite frankly brainless code, however once the person realised that I had no idea what I was doing they were quick to begin explaining to me where I went wrong and how memory in C works.</p> <p>This was a rather pivotal moment on my journey as I realised that in order to succeed I needed to be smart rather than just brute forcing my way to a solution. My original attempts involved copying how the settings strings worked, and basically running it again to get the Quickscreen item&rsquo;s values. This eventually worked, but the values got mangled somewhere between my code and the display output. After taking a month off, one day the solution came to me out of nowhere: just copy what the default Quickscreen does.</p> <p>The default Quickscreen&rsquo;s solution is quite simple. Simply searching up the settings list for the Quickscreen item, then either returning it&rsquo;s value with a function or simply turning the pointer into a string and returning that. I got results very quickly using this method, not to mention stable ones too (which were not common in my previous attempts).</p> <h2 id="the-final-result">The final result</h2><p>My merge request ended up with 8 new tags for the theme engine. I broke down what was needed into a simple formula: take the four directions the Quicksettings are mapped to on the controls (Top, Bottom, Left and Right) and assign a single character representation (T, B, L and R). Then assign the title of the Quicksetting to the uppercase characters, and the value of the Quicksetting to the lowercase characters. Finally prefix with the letter Q to annunciate it&rsquo;s relation to the Quickscreen.</p> <p>It results in a large number of tags, but allows the code to be easily read at a glance. See a small example below of the left Quicksetting tags in use.</p> <pre><code># Left Button %Vl(Quicksetting_Title,45,130,100,18,3)%QL %Vl(Quickscreen_Value,45,149,100,16,4)%Ql</code></pre> <figure><img src="https://d00k.net/img/blog/quicksettings.png" loading="lazy" alt="two ipods, showing a before and after situation. The before uses basic text to display quicksettings, the after uses graphics and buttons to show the same information but more visually" width="100%" height="100%"> <figcaption>The Quickscreen tags being used in Themify 2.</figcaption></figure> <h2 id="wrap-up-and-thanks">Wrap up and thanks</h2><p>My original merge request proved to be rather lengthy, mostly out of fear of adding too much code outside my tags. However major thanks to Chris on the Rockbox team who came up with a brilliantly clever change that turned my code into a small function that the tags could call on. He also helped to get the merge request approved and added to the main repository.</p> <p>This side quest has proved to be a big lesson for me in many parts of programming. I think the biggest thing I&rsquo;ve gotten out of it is properly using git as I develop my projects, keeping track of every change made to the codebase rather than only updating every few months. I have some more changes to work on in the coming future to improve the quality of life for Rockbox users in the years to come, not to mention adding these new Quickscreen features to my current themes.</p> Prepping for Travel https://d00k.net/about/journal/2024-01-11/ https://d00k.net/about/journal/2024-01-11/ Dook Thu, 11 Jan 2024 23:01:03 EST <p>Currently I&rsquo;m preparing to leave for a week long trip to Tokyo! This was pretty spontaneous, we found out very late that we would be getting a month off over the new year in college. Me and friend were looking at getting away somewhere, and found some flights to Japan for an incredibly low price that was too good to not go for. And so here I am now!</p> <p>A lot of my prep has been pretty simple, filling out some forms and getting my documentation ready. But on the other hand I&rsquo;ve been setting myself up for a long flight, as well as my camera setup for the 5 days we&rsquo;ll be in Tokyo.</p> <p>I&rsquo;ve got a ton of movies downloaded for the flights there and back, featuring some appropriate selections like <em>Tokyo Drift</em> and <em>Shin Godzilla</em> (I saw <em>Godzilla Minus One</em> last week and it&rsquo;s incredible, highly recommend seeing). Especially threw in Killers of the Flower Moon as I can&rsquo;t think of another time when I&rsquo;ll be sitting down and bored for over 3 and half hours.</p> <p>I also want to bring my Kobo with me for more relaxing entertainment. I have some books I need to continue, like David Graeber&rsquo;s <em>The Dawn of Everything</em> and Don Norman&rsquo;s Emotional Design (though I&rsquo;m not sure how I feel about it yet). But I was also recommended some fiction in V.E Schwab&rsquo;s <em>Villains</em> series by a friend.</p> <p>Choosing a camera to bring was pretty difficult for me. I wanted to bring my Sony DSC-S85, as I bought it for travel, however it&rsquo;s limited on storage (roughly 128mb!) and the battery is very poor on it. The alternative was a very hard to control point and shoot, or my expensive and a little bit boring Sony a6000 mirrorless. My friend ended up commissioning me to do a photoshoot of them out in Tokyo, so I used it as a chance to buy some upgrades to the S85. I started with a new battery alongside a quick charger, then attempted to buy some more storage. I say attempted because I discovered afterwards that the &ldquo;Pro&rdquo; memory sticks weren&rsquo;t supported by my model, despite being identical. Thankfully, I can lower the resolution to get about 130 photos out of the 128mb of storage, and my friend is bringing their laptop so I&rsquo;ll be able to offload my photos if I need more space (which is likely to happen).</p> <p>I still have a bit more prep to do. I&rsquo;ve lost a decent amount of my Japanese in memory over the past few years, so I&rsquo;d like to write up a few pages in my notebooks with guides on numbers, common phrases I may encounter etc. My hiragana and katakana recognition is currently around 50%, so I should probably get that up a bit too.</p> <p>We don&rsquo;t really have a plan down, nor have we booked tickets to go to any big tourist spots. I think the plan is just to have a good time, enjoy the food and see what happens! I have some things I want to try pick up in second hand shops over there like a gameboy camera and a famicom disk, and of course a bunch of souvenirs for myself and my friends who are big fans of Ghibli movies and such!</p> <p>Only a couple of days to go, can&rsquo;t wait! - Dook</p> <p>Currently I&rsquo;m preparing to leave for a week long trip to Tokyo! This was pretty spontaneous, we found out very late that we would be getting a month off over the new year in college. Me and friend were looking at getting away somewhere, and found some flights to Japan for an incredibly low price that was too good to not go for. And so here I am now!</p> <p>A lot of my prep has been pretty simple, filling out some forms and getting my documentation ready. But on the other hand I&rsquo;ve been setting myself up for a long flight, as well as my camera setup for the 5 days we&rsquo;ll be in Tokyo.</p> <p>I&rsquo;ve got a ton of movies downloaded for the flights there and back, featuring some appropriate selections like <em>Tokyo Drift</em> and <em>Shin Godzilla</em> (I saw <em>Godzilla Minus One</em> last week and it&rsquo;s incredible, highly recommend seeing). Especially threw in Killers of the Flower Moon as I can&rsquo;t think of another time when I&rsquo;ll be sitting down and bored for over 3 and half hours.</p> <p>I also want to bring my Kobo with me for more relaxing entertainment. I have some books I need to continue, like David Graeber&rsquo;s <em>The Dawn of Everything</em> and Don Norman&rsquo;s Emotional Design (though I&rsquo;m not sure how I feel about it yet). But I was also recommended some fiction in V.E Schwab&rsquo;s <em>Villains</em> series by a friend.</p> <p>Choosing a camera to bring was pretty difficult for me. I wanted to bring my Sony DSC-S85, as I bought it for travel, however it&rsquo;s limited on storage (roughly 128mb!) and the battery is very poor on it. The alternative was a very hard to control point and shoot, or my expensive and a little bit boring Sony a6000 mirrorless. My friend ended up commissioning me to do a photoshoot of them out in Tokyo, so I used it as a chance to buy some upgrades to the S85. I started with a new battery alongside a quick charger, then attempted to buy some more storage. I say attempted because I discovered afterwards that the &ldquo;Pro&rdquo; memory sticks weren&rsquo;t supported by my model, despite being identical. Thankfully, I can lower the resolution to get about 130 photos out of the 128mb of storage, and my friend is bringing their laptop so I&rsquo;ll be able to offload my photos if I need more space (which is likely to happen).</p> <p>I still have a bit more prep to do. I&rsquo;ve lost a decent amount of my Japanese in memory over the past few years, so I&rsquo;d like to write up a few pages in my notebooks with guides on numbers, common phrases I may encounter etc. My hiragana and katakana recognition is currently around 50%, so I should probably get that up a bit too.</p> <p>We don&rsquo;t really have a plan down, nor have we booked tickets to go to any big tourist spots. I think the plan is just to have a good time, enjoy the food and see what happens! I have some things I want to try pick up in second hand shops over there like a gameboy camera and a famicom disk, and of course a bunch of souvenirs for myself and my friends who are big fans of Ghibli movies and such!</p> <p>Only a couple of days to go, can&rsquo;t wait! - Dook</p> Year Review 2023 https://d00k.net/blog/year-review-2023/ https://d00k.net/blog/year-review-2023/ Dook Sun, 31 Dec 2023 13:54:08 EST <p>It&rsquo;s that time of year again! Kind of incredible in a way, it doesn&rsquo;t feel like it&rsquo;s been that long since I wrote last year&rsquo;s review. And what a crazy year it&rsquo;s been, despite a lot of chaos and changes I feel incredibly accomplished with what I managed to achieve and create over the past 12 months.</p> <p>The past couple of years have been marked by bad health for me, and thankfully I&rsquo;ve felt pretty good and have been on the mend in 2023. Surprisingly, this was actually one of the only goals for this year that I got to! I was so intensely focused on design and programming this year that I never got around to working on art, unfortunately there wasn&rsquo;t a Rebble Hackathon this year so I never got around to making more watchfaces for my pebble.</p> <p>I did however manage to make a very strong portfolio of work for college, and got an offer to study Interaction Design (originally I intended to study Product Design) I started studying in September, and despite the high amount of work and stress, I&rsquo;ve been having a blast. Unfortunately this took a hit to my free time, which put a halt on personal projects, but hopefully this should get better next year.</p> <p>With that, lets take a look over everything I did in 2023, as well as some of my favourite things from the year!</p> <hr> <h2 id="changes">Changes</h2><p>Compared to the past few years, the changes to my setup have been pretty minimal this year. I think I&rsquo;m finally settling into the hardware and software that suits me best which makes me pretty happy to see.</p> <h3 id="audio-hardware">Audio Hardware</h3> <img src="https://d00k.net/img/blog/speakers.jpg" loading="lazy" alt="Two sony speakers with an amplifier under them"> <p>The biggest changes to my setup this year were on the audio end. During the summer, I was contacted by someone who was throwing some stuff out and wondered if I wanted a pair of speakers. I said yes before I even saw them, but damn are they gorgeous. They needed a bit of repair to the speaker cone, and are a little grubby, but all in all sound so good.</p> <p>I decided to treat myself a little a spent 100 euro on a second-hand Yamaha amplifier on ebay to power them, and it&rsquo;s easily the best purchase of the year. It sounds great, paired with it&rsquo;s gorgeous design it&rsquo;s so fun to have in my workstation. I have it hooked up to my laptop, iPod as well as some loose aux cables that lets me hook my phone or other things into it.</p> <h3 id="ipod-upgrade">iPod Upgrade</h3><p>After having the parts for a year and a half, I finally modded my iPod replacing the dying battery and adding flash storage. While I was at it I also added a haptic feedback module from an iPhone to replace the click piezo speaker, though this mod was a little unsuccessful as I didn&rsquo;t use a good glue for the job. This has made my iPod actually useful, though I&rsquo;ve yet to switch to fully using it day to day.</p> <h3 id="new-camera">New Camera</h3> <img src="https://d00k.net/img/blog/dscs85.jpg" loading="lazy" alt="A grey camera with a large lens"> <p>A fun purchase this year was a Sony DSC-S85 digital camera from 2001! I&rsquo;ve been interested in Sony&rsquo;s floppy-based <a href="https://en.wikipedia.org/wiki/Sony_Mavica" target="_blank" rel="noopener">Mavica</a> camera line for a while, and I was in the market for a cheap yet fun camera for travelling. The Mavicas were a candidate, however I was apprehensive about the maintenance required by a disc drive in the long run. That&rsquo;s when I stumbled across the parallel line of cameras Sony produced which used Memory Stick media instead, and knew immediately that I should get one.</p> <p>I ended up purchasing mine on ebay for about 30 euro off an older man, it came with it&rsquo;s complete box and even a travel bag! And let me tell you, the camera is such a blast to use. The photos are surprisingly high quality, and you have a large amount of control over focus. It can even shot GIFs and video!</p> <img src="https://d00k.net/img/blog/test.GIF" loading="lazy" alt="a short gif of a flower moving in the wind"> <hr> <h2 id="favourite-things">Favourite Things</h2><p>It&rsquo;s been a bit of a bad year for content for me. I didn&rsquo;t engage much with manga or games like I have in other years, it&rsquo;s been a bit of a bad habit of mine to focus on personal projects instead of just relaxing. It has however been a good music year for me, I&rsquo;ve discovered some incredible music and also expanded my tastes a lot more. I also watched a lot more movies this year, as well as rewatched some of favourite older series like Adventure Time.</p> <div class="text borderless box"> <div><h3 id="music">Music</h3><p><strong>∘ Favourite Artist &amp; Album - Hozier, Unreal Unearth</strong> - It&rsquo;s been an incredible year for Hozier. His third album, <em>Unreal Unearth</em>, launched this August to immediate success. The album is largely inspired by Dante&rsquo;s Inferno, with songs directly referencing parts of the iconic poem. Arguably it&rsquo;s Hozier at his best, with a clear and focused emotional narrative that follows through the album from start to finish. Executed to perfection with a high level of polish, it&rsquo;s a massive achievement for him. I recently saw one of his last shows on this year&rsquo;s leg of the tour, and it was just as incredible live. If you can, listen to the entire album in one sitting!</p></div> </div> <div class="text borderless box"> <div><h3 id="manga">Manga</h3><p><strong>∘ Red Cat Ramen</strong> - I&rsquo;ve read basically no manga this year, I think I burned out that motivation last year, but the one exception has been <em>Red Cat Ramen</em>. A new serial that started this year on Jump&rsquo;s online platform, the manga follows a Ramen shop ran entirely by cats and the human they just employed to help out with tasks they cannot do. It&rsquo;s a novel and enjoyable slice of life series that takes it slow and keeps things wholesome. Already slated for an anime adaptation for 2024, I highly recommend checking it out if you like manga!</p></div> </div> <hr> <h2 id="projects">Projects</h2><p>A lot of time on personal projects this year was spent honing skills I picked up in 2022. I did however dip my toes into some new things like writing GTK apps for Linux, and creating an icon system from scratch. I also began to do logo commissions, which was a great learning experience and helped my skills to grow a lot this year. You can check out the full project list from this year in the <a href="https://d00k.net/design/#2023">design section of my site</a>.</p> <div class="text borderless box"> <div><h3 id="website-redesign">Website Redesign</h3><p>My massive summer project and something I did not expect to do this year, I spent two months rebuilding and redesigning my site from the ground up. This was definitely a necessary project, and it&rsquo;s left me with a far better website than I had before. A massive part of this redesign was making it fully functional on older browsers, something which I&rsquo;ll cover in a new blogpost in the new year. If you&rsquo;re interested in the changes made though, have a look at my previous post: <a href="https://d00k.net/blog/redesigning_again/">Re-designing my site, one more time</a></p></div> </div> <div class="text borderless box"> <div><h3 id="adwaitapod">Adwaitapod</h3><p>Easily my biggest piece of work to date, adwaitapod&rsquo;s rebuild this year was a monumentous undertaking. I set out to update my original iPod theme to be far more performant, better designed and crammed full with even more features than before. The resulting theme has been a massive success, recently crossing 18 and a half thousand downloads and amassing a fantastic userbase. I&rsquo;m incredibly proud of what I&rsquo;ve achieved with adwaitapod this year, and hope to take that energy forward to more iPod projects next year.</p></div> </div> <div class="text borderless box"> <div><h3 id="beryl-logo-design">Beryl Logo Design</h3><p>In May I reached out to <a href="https://thesam.zone/" target="_blank" rel="noopener">Sam</a> on fedi after seeing his post looking for someone to help design a logo for his new markdown-based to-do list software called Beryl. After some chatting, we had a clear vision for what the logo should look like and following ideation and experimentation we settled on a design we both liked a lot. It&rsquo;s going to be an exciting year for the Beryl project, and I can&rsquo;t help but be proud to see the logo! I highly recommend checking out the <a href="https://beryl.md/" target="_blank" rel="noopener">project&rsquo;s site</a>!</p></div> </div> <hr> <h3 id="looking-towards-2024">Looking towards 2024</h3><p>This coming year I&rsquo;d like to focus on honing the skills I have a lot more. <a href="https://d00k.net/design/themify">Themify&rsquo;s</a> next update is deep in development already, and is shaping up to be a project which will define the year for me. I&rsquo;m working with some friends on some exciting new ventures outside of my online life, which I think will help push me as a designer and help me realise my path a bit better. I also hope to travel a lot more next year, and have some exciting trips planned already!</p> <p>Another thing I&rsquo;d like to do is to use this site more, I started more than a few blog posts the past few months but have a habit of making them incredibly long. Expect a lot more short blog posts going forward!</p> <h3 id="conclusion">Conclusion</h3><p>All in all, it&rsquo;s been a rollercoaster of a year. I&rsquo;ve achieved a heck of a lot and looking forward to doing even more next year. Here&rsquo;s to next year!</p> <p>- Dook</p> <p>It&rsquo;s that time of year again! Kind of incredible in a way, it doesn&rsquo;t feel like it&rsquo;s been that long since I wrote last year&rsquo;s review. And what a crazy year it&rsquo;s been, despite a lot of chaos and changes I feel incredibly accomplished with what I managed to achieve and create over the past 12 months.</p> <p>The past couple of years have been marked by bad health for me, and thankfully I&rsquo;ve felt pretty good and have been on the mend in 2023. Surprisingly, this was actually one of the only goals for this year that I got to! I was so intensely focused on design and programming this year that I never got around to working on art, unfortunately there wasn&rsquo;t a Rebble Hackathon this year so I never got around to making more watchfaces for my pebble.</p> <p>I did however manage to make a very strong portfolio of work for college, and got an offer to study Interaction Design (originally I intended to study Product Design) I started studying in September, and despite the high amount of work and stress, I&rsquo;ve been having a blast. Unfortunately this took a hit to my free time, which put a halt on personal projects, but hopefully this should get better next year.</p> <p>With that, lets take a look over everything I did in 2023, as well as some of my favourite things from the year!</p> <hr> <h2 id="changes">Changes</h2><p>Compared to the past few years, the changes to my setup have been pretty minimal this year. I think I&rsquo;m finally settling into the hardware and software that suits me best which makes me pretty happy to see.</p> <h3 id="audio-hardware">Audio Hardware</h3> <img src="https://d00k.net/img/blog/speakers.jpg" loading="lazy" alt="Two sony speakers with an amplifier under them"> <p>The biggest changes to my setup this year were on the audio end. During the summer, I was contacted by someone who was throwing some stuff out and wondered if I wanted a pair of speakers. I said yes before I even saw them, but damn are they gorgeous. They needed a bit of repair to the speaker cone, and are a little grubby, but all in all sound so good.</p> <p>I decided to treat myself a little a spent 100 euro on a second-hand Yamaha amplifier on ebay to power them, and it&rsquo;s easily the best purchase of the year. It sounds great, paired with it&rsquo;s gorgeous design it&rsquo;s so fun to have in my workstation. I have it hooked up to my laptop, iPod as well as some loose aux cables that lets me hook my phone or other things into it.</p> <h3 id="ipod-upgrade">iPod Upgrade</h3><p>After having the parts for a year and a half, I finally modded my iPod replacing the dying battery and adding flash storage. While I was at it I also added a haptic feedback module from an iPhone to replace the click piezo speaker, though this mod was a little unsuccessful as I didn&rsquo;t use a good glue for the job. This has made my iPod actually useful, though I&rsquo;ve yet to switch to fully using it day to day.</p> <h3 id="new-camera">New Camera</h3> <img src="https://d00k.net/img/blog/dscs85.jpg" loading="lazy" alt="A grey camera with a large lens"> <p>A fun purchase this year was a Sony DSC-S85 digital camera from 2001! I&rsquo;ve been interested in Sony&rsquo;s floppy-based <a href="https://en.wikipedia.org/wiki/Sony_Mavica" target="_blank" rel="noopener">Mavica</a> camera line for a while, and I was in the market for a cheap yet fun camera for travelling. The Mavicas were a candidate, however I was apprehensive about the maintenance required by a disc drive in the long run. That&rsquo;s when I stumbled across the parallel line of cameras Sony produced which used Memory Stick media instead, and knew immediately that I should get one.</p> <p>I ended up purchasing mine on ebay for about 30 euro off an older man, it came with it&rsquo;s complete box and even a travel bag! And let me tell you, the camera is such a blast to use. The photos are surprisingly high quality, and you have a large amount of control over focus. It can even shot GIFs and video!</p> <img src="https://d00k.net/img/blog/test.GIF" loading="lazy" alt="a short gif of a flower moving in the wind"> <hr> <h2 id="favourite-things">Favourite Things</h2><p>It&rsquo;s been a bit of a bad year for content for me. I didn&rsquo;t engage much with manga or games like I have in other years, it&rsquo;s been a bit of a bad habit of mine to focus on personal projects instead of just relaxing. It has however been a good music year for me, I&rsquo;ve discovered some incredible music and also expanded my tastes a lot more. I also watched a lot more movies this year, as well as rewatched some of favourite older series like Adventure Time.</p> <div class="text borderless box"> <div><h3 id="music">Music</h3><p><strong>∘ Favourite Artist &amp; Album - Hozier, Unreal Unearth</strong> - It&rsquo;s been an incredible year for Hozier. His third album, <em>Unreal Unearth</em>, launched this August to immediate success. The album is largely inspired by Dante&rsquo;s Inferno, with songs directly referencing parts of the iconic poem. Arguably it&rsquo;s Hozier at his best, with a clear and focused emotional narrative that follows through the album from start to finish. Executed to perfection with a high level of polish, it&rsquo;s a massive achievement for him. I recently saw one of his last shows on this year&rsquo;s leg of the tour, and it was just as incredible live. If you can, listen to the entire album in one sitting!</p></div> </div> <div class="text borderless box"> <div><h3 id="manga">Manga</h3><p><strong>∘ Red Cat Ramen</strong> - I&rsquo;ve read basically no manga this year, I think I burned out that motivation last year, but the one exception has been <em>Red Cat Ramen</em>. A new serial that started this year on Jump&rsquo;s online platform, the manga follows a Ramen shop ran entirely by cats and the human they just employed to help out with tasks they cannot do. It&rsquo;s a novel and enjoyable slice of life series that takes it slow and keeps things wholesome. Already slated for an anime adaptation for 2024, I highly recommend checking it out if you like manga!</p></div> </div> <hr> <h2 id="projects">Projects</h2><p>A lot of time on personal projects this year was spent honing skills I picked up in 2022. I did however dip my toes into some new things like writing GTK apps for Linux, and creating an icon system from scratch. I also began to do logo commissions, which was a great learning experience and helped my skills to grow a lot this year. You can check out the full project list from this year in the <a href="https://d00k.net/design/#2023">design section of my site</a>.</p> <div class="text borderless box"> <div><h3 id="website-redesign">Website Redesign</h3><p>My massive summer project and something I did not expect to do this year, I spent two months rebuilding and redesigning my site from the ground up. This was definitely a necessary project, and it&rsquo;s left me with a far better website than I had before. A massive part of this redesign was making it fully functional on older browsers, something which I&rsquo;ll cover in a new blogpost in the new year. If you&rsquo;re interested in the changes made though, have a look at my previous post: <a href="https://d00k.net/blog/redesigning_again/">Re-designing my site, one more time</a></p></div> </div> <div class="text borderless box"> <div><h3 id="adwaitapod">Adwaitapod</h3><p>Easily my biggest piece of work to date, adwaitapod&rsquo;s rebuild this year was a monumentous undertaking. I set out to update my original iPod theme to be far more performant, better designed and crammed full with even more features than before. The resulting theme has been a massive success, recently crossing 18 and a half thousand downloads and amassing a fantastic userbase. I&rsquo;m incredibly proud of what I&rsquo;ve achieved with adwaitapod this year, and hope to take that energy forward to more iPod projects next year.</p></div> </div> <div class="text borderless box"> <div><h3 id="beryl-logo-design">Beryl Logo Design</h3><p>In May I reached out to <a href="https://thesam.zone/" target="_blank" rel="noopener">Sam</a> on fedi after seeing his post looking for someone to help design a logo for his new markdown-based to-do list software called Beryl. After some chatting, we had a clear vision for what the logo should look like and following ideation and experimentation we settled on a design we both liked a lot. It&rsquo;s going to be an exciting year for the Beryl project, and I can&rsquo;t help but be proud to see the logo! I highly recommend checking out the <a href="https://beryl.md/" target="_blank" rel="noopener">project&rsquo;s site</a>!</p></div> </div> <hr> <h3 id="looking-towards-2024">Looking towards 2024</h3><p>This coming year I&rsquo;d like to focus on honing the skills I have a lot more. <a href="https://d00k.net/design/themify">Themify&rsquo;s</a> next update is deep in development already, and is shaping up to be a project which will define the year for me. I&rsquo;m working with some friends on some exciting new ventures outside of my online life, which I think will help push me as a designer and help me realise my path a bit better. I also hope to travel a lot more next year, and have some exciting trips planned already!</p> <p>Another thing I&rsquo;d like to do is to use this site more, I started more than a few blog posts the past few months but have a habit of making them incredibly long. Expect a lot more short blog posts going forward!</p> <h3 id="conclusion">Conclusion</h3><p>All in all, it&rsquo;s been a rollercoaster of a year. I&rsquo;ve achieved a heck of a lot and looking forward to doing even more next year. Here&rsquo;s to next year!</p> <p>- Dook</p> September Update https://d00k.net/about/journal/2023-09-30/ https://d00k.net/about/journal/2023-09-30/ Dook Sat, 30 Sep 2023 18:41:28 EST <p>It&rsquo;s been a while, huh? I had been intending to update this every month this year, but unfortunately life had other ideas and I got fairly busy.</p> <p>Some major projects have been completed during the summer. <a href="https://d00k.net/design/adwaitapod/">Adwaitapod 3.0</a> was released, and is now pretty much stable and bug-free. This update has really brought the project to where I envisioned it from the start, and brings so much to the table for iPods. I pushed the limits of what Rockbox&rsquo;s theming engine can do, which was difficult, but the results have been worth it. I still have a promo push I want to do for this project, with a friend of mine making up a small trailer for it, and a dedicated website ready to go alongside it. I want to experiment with doing publicity for my themes, hopefully it can save a few more devices from landfill.</p> <p>After that, I got to redesigning and rebuilding my website. A massive undertaking, with a goal to make it more efficient and better designed. It&rsquo;s also now the smallest it&rsquo;s ever been, with the homepage sitting at a tiny 43kB (which includes fonts <em>and</em> a png image!). The css file is 3.33kB, which I&rsquo;m really proud of since I managed to cram so much into it. The wiki has been massively expanded, and now is a lot better organised. There&rsquo;s been a bunch of big changes, I really recommend checking it all out and also <a href="https://d00k.net/blog/redesigning_again/">reading the blog post about it!</a></p> <p>There&rsquo;s been a bunch more stuff completed this summer, but things will also be slowing down a lot now sadly. I recently started back up in college after a two year break, I&rsquo;m now doing a bachelor of arts in Interaction Design, something that is far more catered towards my interests and focuses with design as a tool. It&rsquo;s pretty full on, so my free time is practically non-existent now which is disappointing. But I aim to slowly get to work on stuff when I can!</p> <p>Until next time, whenever that may be - Dook</p> <p>It&rsquo;s been a while, huh? I had been intending to update this every month this year, but unfortunately life had other ideas and I got fairly busy.</p> <p>Some major projects have been completed during the summer. <a href="https://d00k.net/design/adwaitapod/">Adwaitapod 3.0</a> was released, and is now pretty much stable and bug-free. This update has really brought the project to where I envisioned it from the start, and brings so much to the table for iPods. I pushed the limits of what Rockbox&rsquo;s theming engine can do, which was difficult, but the results have been worth it. I still have a promo push I want to do for this project, with a friend of mine making up a small trailer for it, and a dedicated website ready to go alongside it. I want to experiment with doing publicity for my themes, hopefully it can save a few more devices from landfill.</p> <p>After that, I got to redesigning and rebuilding my website. A massive undertaking, with a goal to make it more efficient and better designed. It&rsquo;s also now the smallest it&rsquo;s ever been, with the homepage sitting at a tiny 43kB (which includes fonts <em>and</em> a png image!). The css file is 3.33kB, which I&rsquo;m really proud of since I managed to cram so much into it. The wiki has been massively expanded, and now is a lot better organised. There&rsquo;s been a bunch of big changes, I really recommend checking it all out and also <a href="https://d00k.net/blog/redesigning_again/">reading the blog post about it!</a></p> <p>There&rsquo;s been a bunch more stuff completed this summer, but things will also be slowing down a lot now sadly. I recently started back up in college after a two year break, I&rsquo;m now doing a bachelor of arts in Interaction Design, something that is far more catered towards my interests and focuses with design as a tool. It&rsquo;s pretty full on, so my free time is practically non-existent now which is disappointing. But I aim to slowly get to work on stuff when I can!</p> <p>Until next time, whenever that may be - Dook</p> Re-designing my site, one more time https://d00k.net/blog/redesigning_again/ https://d00k.net/blog/redesigning_again/ Dook Sat, 02 Sep 2023 14:52:19 EST <p>Firstly, I&rsquo;m so sorry for anyone subscribed to my RSS feed that just got spammed. I made some big changes to the site, but I&rsquo;m confident this will be the final time.</p> <p>Secondly, I went and did it. At the end of my first-year celebration post in March, I talked about changing some core parts of this site. Namely new static site generation (SSG) and fixing the janky CSS. Quite frankly, I thought that would be all that was needed, but over the past few months I&rsquo;ve grown less and less satisfied with everything. Since March I&rsquo;ve barely used the site, even though I <em>wanted</em> to add stuff to it. I also was growing quite dissatisfied with the aesthetic appearance, I don&rsquo;t think the old design was terrible, but I felt like it was missing something important. At it&rsquo;s core it lacked concept and identity, and figuring that out gave me the drive I needed to finally do this.</p> <hr> <h2 id="re-thinking-the-process">Re-thinking the process</h2><p>From the start, I had three central goals I wanted to achieve. Each would both limit and influence the other, but getting a balance would be possible. The first and biggest for me was <strong>compatibility</strong>, the old design quite frankly was not usable on older browsers thanks to css variables and other modern features. To achieve this, I set <a href="https://www.netsurf-browser.org/" target="_blank" rel="noopener">NetSurf</a> as the target browser for this new design. This presented some challenges, since NetSurf doesn&rsquo;t have full coverage of css and html (even pre css3 and html5 specs).</p> <p>Which leads into the second goal: <strong>design</strong>. This site has always been built around the idea that good design on the web doesn&rsquo;t need to cost an arm and a leg, and this time I wanted to really prove that. I knew that overall, the communication of content and navigation could do with a boost. But also that I wanted to push the core identity of the site using just design. To best accomplish this, I decided to ditch the vibrant colour-based design of the old version in favour of a greyscale, shape-focused identity.</p> <p>Lastly, the final goal was <strong>speed</strong>. I&rsquo;ve always put a ridiculous amount of time into improving the speed, namely load times, of the website. This was almost always done by hand, and I knew it frankly wasn&rsquo;t as efficient as it could be. I set out on this redesign aiming to improving almost everything, from images and fonts to css and html.</p> <p>Altogether, I feel each of these goals represent a different kind aspect of accessibility on the web. Accessibility on the web is often thought of as the interaction between a site and users with disabilities, however I would argue that this term can also extend to the ability for all users to access your site in the first place. Keeping a website consistent across all connection speeds, devices and browsers, means greater power to the visitor.</p> <h2 id="visual-language">Visual Language</h2><p>The first problem I attempted to tackle was the visual design language. I took a deeper look at the content of my old site, as well as things I had to hack in along the way, and I quickly realised the content had many different contexts on the site that wasn&rsquo;t well communicated.</p> <p>I good example of context being communicated on sites would be codeblocks, the containers commonly used to display lines of code on a webpage. These almost always have a CSS styling to differentiate the content inside from the rest of the text on the page, without it there would be clear confusion. On my old site, there were many confusing cases like this. There was no distinction between content types.</p> <p>I started by sketching some ideas out in inkscape for what different content types I would need to make, as well as how they could be styled. Which directly lead into prototyping these ideas on the site. I ended up with a large range of what I&rsquo;m calling <em>&ldquo;Content Widgets&rdquo;</em>, which can be viewed together on the <a href="https://d00k.net/about/colophon/testpage">test page</a>.</p> <p>These widgets have made life incredibly easier when working on content, and also provided a much simpler model to reference when designing. They&rsquo;ve made the vision of my content-rich wiki possible, while making the user experience of the website far better than it was before.</p> <p>One of the core ideas I wanted to express in the site was the use of abstract shapes instead of logos and wordmarks. These ended up being called &ldquo;<em>Pieces</em>&rdquo;, and have served as the central pillar of the strong identity the site now holds. I want to experiment more with these in the future, and attempt to integrate them even further into the website.</p> <h2 id="static-site-generation">Static Site Generation</h2><p>At the end of my last blog post, I spoke about getting rid of Hugo in favour of a python-based SSG. I had gotten really frustrated with Hugo at that point, and the large amount of hacks I had to employ to make simple pages proved too much. I was certain the solution was held in making my own SSG, or using a more customisable one.</p> <p>Then in June, right as I was thinking of starting this move, <a href="https://solar.lowtechmagazine.com/" target="_blank" rel="noopener">LOW TECH MAGAZINE</a> launched their website rebuild in a <a href="https://solar.lowtechmagazine.com/2023/06/rebuilding-a-solar-powered-website/" target="_blank" rel="noopener">blog post</a>. <a href="https://motsuka.com/" target="_blank" rel="noopener">Marie</a> and <a href="https://test.roelof.info/" target="_blank" rel="noopener">Roel</a> put a incredible amount of work into moving their site from a Python static site generator to Hugo. You can probably see where this is going already, but LOW TECH MAGAZINE&rsquo;s main site is run on solar power and efficiency is of huge importance, so to make their decision they ran some tests. You can see the results in the footnotes of the post, but Hugo was far faster at generation.</p> <p>This motivated me to try Hugo one last time.</p> <p>I was driven largely by the fact that I already had knowledge of using Hugo, so I could jump right in rather than learning a whole new system. This let me see the possibilities of Hugo almost immediately. See, Hugo is canonically used for Blogs and blog-type sites, the idea being you make up a bunch of templates and then all you have to do is write content (while Hugo handles absolutely everything else). Trying to use Hugo in this automation-first way was where I fell on the old site. What I needed to do instead was use Hugo like an assistant, making use of the best of both worlds.</p> <p>Which is essentially what I&rsquo;ve done. I stripped the entire site back to sheer basics, each page simply passes on the content from my markdown files and generates a page. It does add the head, header and footer, and the rss feed is automatically generated, but that&rsquo;s it. Every page on the site is now essentially hand-written. This allows me a huge amount of control over how pages are laid out, and also facilitates pages having different kinds of content together. I wanted this feature especially in my wiki, the old site was a plain and hard to navigate grid of boxes that linked to pages, whereas now it can be far more interesting and full of information.</p> <p>The only major downside to this all has been the new dependency on shortcodes. Shortcodes in Hugo are custom markup syntax that controls how the content inside is rendered, and is used to create all the content widgets and other things like images. These have to be manually written out each and every time, and while I&rsquo;ve tried to design them to be less tedious, it&rsquo;s still some friction I&rsquo;d like to try eliminate in the future.</p> <p>But the final results are something I&rsquo;ve proud of, I&rsquo;ve got a far greater understanding of the generation of the site now alongside far greater control of everything, which will go a long way.</p> <h2 id="old-school-html-and-css">&lsquo;Old School&rsquo; HTML and CSS</h2><p>Slight tangent, but I first learned to make websites about ten years ago now in a weekend coding club of sorts. Back then one of my most vivid memories about it all is how new HTML5 was, since then it feels like the web space has grown and expanded a lot. This time period incidentally lines up with when NetSurf was majorly worked on last, or at least from what I can tell. In a sense, my target for the HTML and CSS portion of the redesign is roughly a browser from 10 years ago.</p> <p>This meant that in order to make a responsive site for all devices, I couldn&rsquo;t rely on flex boxes, grid layouts, calc values and other incredible useful modern features. But ultimately, these constraints led beautifully into the design of the site, contributing to much simpler layouts and better thought out features. From what I can tell as well, NetSurf&rsquo;s implementation of HTML and CSS is very literal. Where some syntax may pass in modern browsers, it wouldn&rsquo;t in NetSurf, something which I feel made me a better web designer by helping me understand what I was doing better.</p> <p>I did have to take several liberties here and there. For example I used clamp values for things like the font size of page titles and window padding in order to preserve the layout properly on screens with very small resolutions. These have respective fallbacks to be used if necessary. Alongside that, there&rsquo;s some features like <strong>:hover</strong> and <strong>:active</strong> selectors that I use which NetSurf hasn&rsquo;t implemented (yet?), as well as <strong>fit-content</strong> widths, <strong>z-index</strong> and <strong>font-family</strong>. These ultimately mean that my site isn&rsquo;t <em>entirely</em> targetting NetSurf, however these features are essential in my eyes to the user experience and design of the site, so exceptions were made.</p> <p>As challenges go, aiming for a less-modern set of HTML and CSS managed to result in better decisions and more solid web design, something I really didn&rsquo;t expect going into this.</p> <h2 id="making-things-small">Making things small</h2><p>And now for my favourite part: making everything as small as humanly possible.</p> <p>There&rsquo;s always the same two offenders when it comes to web pages being too large, custom fonts and images. In the past, I&rsquo;ve tried various different methods to wrangle and control these issues, with <a href="https://d00k.net/blog/web-optimisations/">decent success</a>. However this time I knew I could do a better job.</p> <h3 id="fonts">Fonts</h3><p>I decided to use keep using the two fonts I have always used with this site, <a href="https://tribby.com/fonts/barlow/" target="_blank" rel="noopener">Barlow</a> for headers and <a href="https://www.theleagueofmoveabletype.com/league-spartan" target="_blank" rel="noopener">League Spartan</a> for content. I made a couple of changes, going for the next weight down for Barlow since black was unreadable at smaller sizes, and then swapping out the variable font of League Spartan for a non-variable (in order to improve compatibility with older browsers).</p> <p>While my old font optimisations were doing manually, using FontForge, this time I gave a tool <a href="https://thomasorus.com" target="_blank" rel="noopener">Thomasorus</a> recommended to me called <a href="https://github.com/zachleat/glyphhanger" target="_blank" rel="noopener">glyphhanger</a>. Essentially it&rsquo;s a font subsetting tool (removing unused characters), but most interestingly it can automatically crawl a given website and subset your font based on the content of said website. Even <em>better</em>, you can tell glyphhanger what font-family to look out for and it will only crawl text set to that font! What this means is that using glyphhanger will give you a set of fonts that only contain the characters used in your site, the epitome of optimisation!</p> <p>The results really speak for themselves: ~19kB total for both fonts loaded. This is in comparison to a roughly 28kB total on the old site! (League Spartan alone being 16kB). I expect the total number to fluctuate up a bit as I add more content to the site, but I really cannot complain at the results.</p> <h3 id="images">Images</h3><p>If I was to discuss this in it&rsquo;s totality, it would be far, far too long. But to cut it short: I did a lot of research, which I plan to cover on the <a href="https://d00k.net/wiki/#web-wiki">web wiki</a> really soon.</p> <p>Cutting down images as small as I can has been a rather big obsession on this site. I&rsquo;ve spent countless hours testing and trying different things. Ultimately, my goal has always been the same: get the size down, but don&rsquo;t compromise the information inside. This time round, I&rsquo;ve decided to be far more experimental.</p> <p>Through my research I found that jpg is still the king of full colour images, providing decently small file sizes with little to no loss in visual information in return for a slight loss in quality. However, thanks to some inspiration from <a href="https://tendigits.space/" target="_blank" rel="noopener">TenDigit&rsquo;s new redesign of their site</a>, I decided to incorporate low-colour images into the site. You&rsquo;ll find these as furniture to pages, photos with no real impact on the delivery of the content, purely for aesthetics. These are coloured using the site&rsquo;s greyscale theme, typically with between 3 and 8 colours. It&rsquo;s here that png really excels, producing images with filesizes far smaller than I could achieve with jpg at the same quality and sharpness.</p> <p>This likely wont be the end however, as I continue to perform more detailed research into this topic.</p> <h3 id="css">CSS</h3><p>It&rsquo;s fair to say I truly poured over the css for the site as part of this rebuild. Before, it was quite a mess and rested at around 5-6kBs in size. During the process of designing the stylesheet, I realised that a 3kB css file was within the realm of the possibility in the design. I spent many, many days simple combing over the file to see what miniscule changes or efficiencies could be eked out of it. Several times it did in fact dip under 3kBs, but in the end I made some small additions to improve user experience that leaves the final size of the CSS at 3.36kBs. I&rsquo;m still really proud of this, if I didn&rsquo;t include WOFF files for the fonts, then I&rsquo;d have easily made it to 3kBs flat.</p> <h2 id="conclusion">Conclusion</h2><p>For a long time, I&rsquo;ve sought to make my personal website an example of my philosophy that good design on the web doesn&rsquo;t need to come at a cost of performance or user experience. I think I can finally say that with this redesign, I have finally achieved this goal.</p> <p>Alongside this, I&rsquo;ve finally become excited again about actually using this website. When friction builds up in the system, you will inevitably stop using it, and now with it gone I can finally begin expressing this site even further than before.</p> <p>I want to thank all the people who have been following me along building this site, as well as it&rsquo;s redesign. And for all my friends for providing incredible feedback and advice.</p> <p>Here&rsquo;s to d00k.net, and this design lasting a little bit longer than the last one!</p> <p><em>- Dook</em></p> <p>Firstly, I&rsquo;m so sorry for anyone subscribed to my RSS feed that just got spammed. I made some big changes to the site, but I&rsquo;m confident this will be the final time.</p> <p>Secondly, I went and did it. At the end of my first-year celebration post in March, I talked about changing some core parts of this site. Namely new static site generation (SSG) and fixing the janky CSS. Quite frankly, I thought that would be all that was needed, but over the past few months I&rsquo;ve grown less and less satisfied with everything. Since March I&rsquo;ve barely used the site, even though I <em>wanted</em> to add stuff to it. I also was growing quite dissatisfied with the aesthetic appearance, I don&rsquo;t think the old design was terrible, but I felt like it was missing something important. At it&rsquo;s core it lacked concept and identity, and figuring that out gave me the drive I needed to finally do this.</p> <hr> <h2 id="re-thinking-the-process">Re-thinking the process</h2><p>From the start, I had three central goals I wanted to achieve. Each would both limit and influence the other, but getting a balance would be possible. The first and biggest for me was <strong>compatibility</strong>, the old design quite frankly was not usable on older browsers thanks to css variables and other modern features. To achieve this, I set <a href="https://www.netsurf-browser.org/" target="_blank" rel="noopener">NetSurf</a> as the target browser for this new design. This presented some challenges, since NetSurf doesn&rsquo;t have full coverage of css and html (even pre css3 and html5 specs).</p> <p>Which leads into the second goal: <strong>design</strong>. This site has always been built around the idea that good design on the web doesn&rsquo;t need to cost an arm and a leg, and this time I wanted to really prove that. I knew that overall, the communication of content and navigation could do with a boost. But also that I wanted to push the core identity of the site using just design. To best accomplish this, I decided to ditch the vibrant colour-based design of the old version in favour of a greyscale, shape-focused identity.</p> <p>Lastly, the final goal was <strong>speed</strong>. I&rsquo;ve always put a ridiculous amount of time into improving the speed, namely load times, of the website. This was almost always done by hand, and I knew it frankly wasn&rsquo;t as efficient as it could be. I set out on this redesign aiming to improving almost everything, from images and fonts to css and html.</p> <p>Altogether, I feel each of these goals represent a different kind aspect of accessibility on the web. Accessibility on the web is often thought of as the interaction between a site and users with disabilities, however I would argue that this term can also extend to the ability for all users to access your site in the first place. Keeping a website consistent across all connection speeds, devices and browsers, means greater power to the visitor.</p> <h2 id="visual-language">Visual Language</h2><p>The first problem I attempted to tackle was the visual design language. I took a deeper look at the content of my old site, as well as things I had to hack in along the way, and I quickly realised the content had many different contexts on the site that wasn&rsquo;t well communicated.</p> <p>I good example of context being communicated on sites would be codeblocks, the containers commonly used to display lines of code on a webpage. These almost always have a CSS styling to differentiate the content inside from the rest of the text on the page, without it there would be clear confusion. On my old site, there were many confusing cases like this. There was no distinction between content types.</p> <p>I started by sketching some ideas out in inkscape for what different content types I would need to make, as well as how they could be styled. Which directly lead into prototyping these ideas on the site. I ended up with a large range of what I&rsquo;m calling <em>&ldquo;Content Widgets&rdquo;</em>, which can be viewed together on the <a href="https://d00k.net/about/colophon/testpage">test page</a>.</p> <p>These widgets have made life incredibly easier when working on content, and also provided a much simpler model to reference when designing. They&rsquo;ve made the vision of my content-rich wiki possible, while making the user experience of the website far better than it was before.</p> <p>One of the core ideas I wanted to express in the site was the use of abstract shapes instead of logos and wordmarks. These ended up being called &ldquo;<em>Pieces</em>&rdquo;, and have served as the central pillar of the strong identity the site now holds. I want to experiment more with these in the future, and attempt to integrate them even further into the website.</p> <h2 id="static-site-generation">Static Site Generation</h2><p>At the end of my last blog post, I spoke about getting rid of Hugo in favour of a python-based SSG. I had gotten really frustrated with Hugo at that point, and the large amount of hacks I had to employ to make simple pages proved too much. I was certain the solution was held in making my own SSG, or using a more customisable one.</p> <p>Then in June, right as I was thinking of starting this move, <a href="https://solar.lowtechmagazine.com/" target="_blank" rel="noopener">LOW TECH MAGAZINE</a> launched their website rebuild in a <a href="https://solar.lowtechmagazine.com/2023/06/rebuilding-a-solar-powered-website/" target="_blank" rel="noopener">blog post</a>. <a href="https://motsuka.com/" target="_blank" rel="noopener">Marie</a> and <a href="https://test.roelof.info/" target="_blank" rel="noopener">Roel</a> put a incredible amount of work into moving their site from a Python static site generator to Hugo. You can probably see where this is going already, but LOW TECH MAGAZINE&rsquo;s main site is run on solar power and efficiency is of huge importance, so to make their decision they ran some tests. You can see the results in the footnotes of the post, but Hugo was far faster at generation.</p> <p>This motivated me to try Hugo one last time.</p> <p>I was driven largely by the fact that I already had knowledge of using Hugo, so I could jump right in rather than learning a whole new system. This let me see the possibilities of Hugo almost immediately. See, Hugo is canonically used for Blogs and blog-type sites, the idea being you make up a bunch of templates and then all you have to do is write content (while Hugo handles absolutely everything else). Trying to use Hugo in this automation-first way was where I fell on the old site. What I needed to do instead was use Hugo like an assistant, making use of the best of both worlds.</p> <p>Which is essentially what I&rsquo;ve done. I stripped the entire site back to sheer basics, each page simply passes on the content from my markdown files and generates a page. It does add the head, header and footer, and the rss feed is automatically generated, but that&rsquo;s it. Every page on the site is now essentially hand-written. This allows me a huge amount of control over how pages are laid out, and also facilitates pages having different kinds of content together. I wanted this feature especially in my wiki, the old site was a plain and hard to navigate grid of boxes that linked to pages, whereas now it can be far more interesting and full of information.</p> <p>The only major downside to this all has been the new dependency on shortcodes. Shortcodes in Hugo are custom markup syntax that controls how the content inside is rendered, and is used to create all the content widgets and other things like images. These have to be manually written out each and every time, and while I&rsquo;ve tried to design them to be less tedious, it&rsquo;s still some friction I&rsquo;d like to try eliminate in the future.</p> <p>But the final results are something I&rsquo;ve proud of, I&rsquo;ve got a far greater understanding of the generation of the site now alongside far greater control of everything, which will go a long way.</p> <h2 id="old-school-html-and-css">&lsquo;Old School&rsquo; HTML and CSS</h2><p>Slight tangent, but I first learned to make websites about ten years ago now in a weekend coding club of sorts. Back then one of my most vivid memories about it all is how new HTML5 was, since then it feels like the web space has grown and expanded a lot. This time period incidentally lines up with when NetSurf was majorly worked on last, or at least from what I can tell. In a sense, my target for the HTML and CSS portion of the redesign is roughly a browser from 10 years ago.</p> <p>This meant that in order to make a responsive site for all devices, I couldn&rsquo;t rely on flex boxes, grid layouts, calc values and other incredible useful modern features. But ultimately, these constraints led beautifully into the design of the site, contributing to much simpler layouts and better thought out features. From what I can tell as well, NetSurf&rsquo;s implementation of HTML and CSS is very literal. Where some syntax may pass in modern browsers, it wouldn&rsquo;t in NetSurf, something which I feel made me a better web designer by helping me understand what I was doing better.</p> <p>I did have to take several liberties here and there. For example I used clamp values for things like the font size of page titles and window padding in order to preserve the layout properly on screens with very small resolutions. These have respective fallbacks to be used if necessary. Alongside that, there&rsquo;s some features like <strong>:hover</strong> and <strong>:active</strong> selectors that I use which NetSurf hasn&rsquo;t implemented (yet?), as well as <strong>fit-content</strong> widths, <strong>z-index</strong> and <strong>font-family</strong>. These ultimately mean that my site isn&rsquo;t <em>entirely</em> targetting NetSurf, however these features are essential in my eyes to the user experience and design of the site, so exceptions were made.</p> <p>As challenges go, aiming for a less-modern set of HTML and CSS managed to result in better decisions and more solid web design, something I really didn&rsquo;t expect going into this.</p> <h2 id="making-things-small">Making things small</h2><p>And now for my favourite part: making everything as small as humanly possible.</p> <p>There&rsquo;s always the same two offenders when it comes to web pages being too large, custom fonts and images. In the past, I&rsquo;ve tried various different methods to wrangle and control these issues, with <a href="https://d00k.net/blog/web-optimisations/">decent success</a>. However this time I knew I could do a better job.</p> <h3 id="fonts">Fonts</h3><p>I decided to use keep using the two fonts I have always used with this site, <a href="https://tribby.com/fonts/barlow/" target="_blank" rel="noopener">Barlow</a> for headers and <a href="https://www.theleagueofmoveabletype.com/league-spartan" target="_blank" rel="noopener">League Spartan</a> for content. I made a couple of changes, going for the next weight down for Barlow since black was unreadable at smaller sizes, and then swapping out the variable font of League Spartan for a non-variable (in order to improve compatibility with older browsers).</p> <p>While my old font optimisations were doing manually, using FontForge, this time I gave a tool <a href="https://thomasorus.com" target="_blank" rel="noopener">Thomasorus</a> recommended to me called <a href="https://github.com/zachleat/glyphhanger" target="_blank" rel="noopener">glyphhanger</a>. Essentially it&rsquo;s a font subsetting tool (removing unused characters), but most interestingly it can automatically crawl a given website and subset your font based on the content of said website. Even <em>better</em>, you can tell glyphhanger what font-family to look out for and it will only crawl text set to that font! What this means is that using glyphhanger will give you a set of fonts that only contain the characters used in your site, the epitome of optimisation!</p> <p>The results really speak for themselves: ~19kB total for both fonts loaded. This is in comparison to a roughly 28kB total on the old site! (League Spartan alone being 16kB). I expect the total number to fluctuate up a bit as I add more content to the site, but I really cannot complain at the results.</p> <h3 id="images">Images</h3><p>If I was to discuss this in it&rsquo;s totality, it would be far, far too long. But to cut it short: I did a lot of research, which I plan to cover on the <a href="https://d00k.net/wiki/#web-wiki">web wiki</a> really soon.</p> <p>Cutting down images as small as I can has been a rather big obsession on this site. I&rsquo;ve spent countless hours testing and trying different things. Ultimately, my goal has always been the same: get the size down, but don&rsquo;t compromise the information inside. This time round, I&rsquo;ve decided to be far more experimental.</p> <p>Through my research I found that jpg is still the king of full colour images, providing decently small file sizes with little to no loss in visual information in return for a slight loss in quality. However, thanks to some inspiration from <a href="https://tendigits.space/" target="_blank" rel="noopener">TenDigit&rsquo;s new redesign of their site</a>, I decided to incorporate low-colour images into the site. You&rsquo;ll find these as furniture to pages, photos with no real impact on the delivery of the content, purely for aesthetics. These are coloured using the site&rsquo;s greyscale theme, typically with between 3 and 8 colours. It&rsquo;s here that png really excels, producing images with filesizes far smaller than I could achieve with jpg at the same quality and sharpness.</p> <p>This likely wont be the end however, as I continue to perform more detailed research into this topic.</p> <h3 id="css">CSS</h3><p>It&rsquo;s fair to say I truly poured over the css for the site as part of this rebuild. Before, it was quite a mess and rested at around 5-6kBs in size. During the process of designing the stylesheet, I realised that a 3kB css file was within the realm of the possibility in the design. I spent many, many days simple combing over the file to see what miniscule changes or efficiencies could be eked out of it. Several times it did in fact dip under 3kBs, but in the end I made some small additions to improve user experience that leaves the final size of the CSS at 3.36kBs. I&rsquo;m still really proud of this, if I didn&rsquo;t include WOFF files for the fonts, then I&rsquo;d have easily made it to 3kBs flat.</p> <h2 id="conclusion">Conclusion</h2><p>For a long time, I&rsquo;ve sought to make my personal website an example of my philosophy that good design on the web doesn&rsquo;t need to come at a cost of performance or user experience. I think I can finally say that with this redesign, I have finally achieved this goal.</p> <p>Alongside this, I&rsquo;ve finally become excited again about actually using this website. When friction builds up in the system, you will inevitably stop using it, and now with it gone I can finally begin expressing this site even further than before.</p> <p>I want to thank all the people who have been following me along building this site, as well as it&rsquo;s redesign. And for all my friends for providing incredible feedback and advice.</p> <p>Here&rsquo;s to d00k.net, and this design lasting a little bit longer than the last one!</p> <p><em>- Dook</em></p> April Update https://d00k.net/about/journal/2023-04-30/ https://d00k.net/about/journal/2023-04-30/ Dook Sun, 30 Apr 2023 15:11:13 EST <p>What a fast month! It&rsquo;s hard to believe it&rsquo;s already the end of April. I haven&rsquo;t been working on too many projects this month, but the ones I have been working on were pretty important.</p> <p>The biggest project this month has been the next update to my iPod UI project: <a href="https://d00k.net/projects/ipod/adwaitapod/" target="_blank" rel="noopener">adwaitapod</a>. This has been a major undertaking, rewriting the entire thing from scratch. But it&rsquo;s been worthwhile. The massive gains made with compression, efficiency and so on have made enough room to add a wide range of new features and still come in smaller than the last version of adwaitapod. I took the chance to take a proper design-orientated approach, rather than simply copying the GNOME desktop design, I used their principles to interpret the user experience of an iPod and make it as user friendly as possible. I&rsquo;m immensely happy with the results so far. The last few things to do involve writing documentation and creating some promo materials, which I&rsquo;ve commissioned a friend to help with. All things going well, adwaitapod 3.0 should be out next month!</p> <p>I also completed my first paid work this month! I reached out to <a href="https://thesam.zone/" target="_blank" rel="noopener">Sam</a> on fedi after they made a post looking for a designer to make a logo for their project <a href="https://thesam.zone/blog/beryl-todo/" target="_blank" rel="noopener">Beyrl</a>. I was mostly interested in using it as a chance to gain experience working with a client and designing icons/branding, but we were both very happy with the results! I&rsquo;ll put together a proper page for this project after I deliver the end product.</p> <p>A major milestone this month was the submission of my final college portfolio. I&rsquo;m still looking to complete my degree in Design, so hopefully by this September I&rsquo;ll be back in college again.</p> <p>Lastly, some small changes and updates to the site this month. The colourscheme was changed slightly to be less yellow, and improve reading contrast. I also updated the Bee Encyclopedia with the newly captured <a href="https://d00k.net/knowledge/bees/#early-mining-bee">Early Mining Bee</a>, we&rsquo;re in peak bee season right now so I&rsquo;m hoping to capture some more species that I haven&rsquo;t managed to yet!</p> <p>Things have been slowing down (thankfully) but hopefully sometime next month I&rsquo;ll begin my migration over to a better SSG, I also have a few websites to design and build for friends over the summer that I&rsquo;m very much looking forward to! Till next month - Dook.</p> <p>What a fast month! It&rsquo;s hard to believe it&rsquo;s already the end of April. I haven&rsquo;t been working on too many projects this month, but the ones I have been working on were pretty important.</p> <p>The biggest project this month has been the next update to my iPod UI project: <a href="https://d00k.net/projects/ipod/adwaitapod/" target="_blank" rel="noopener">adwaitapod</a>. This has been a major undertaking, rewriting the entire thing from scratch. But it&rsquo;s been worthwhile. The massive gains made with compression, efficiency and so on have made enough room to add a wide range of new features and still come in smaller than the last version of adwaitapod. I took the chance to take a proper design-orientated approach, rather than simply copying the GNOME desktop design, I used their principles to interpret the user experience of an iPod and make it as user friendly as possible. I&rsquo;m immensely happy with the results so far. The last few things to do involve writing documentation and creating some promo materials, which I&rsquo;ve commissioned a friend to help with. All things going well, adwaitapod 3.0 should be out next month!</p> <p>I also completed my first paid work this month! I reached out to <a href="https://thesam.zone/" target="_blank" rel="noopener">Sam</a> on fedi after they made a post looking for a designer to make a logo for their project <a href="https://thesam.zone/blog/beryl-todo/" target="_blank" rel="noopener">Beyrl</a>. I was mostly interested in using it as a chance to gain experience working with a client and designing icons/branding, but we were both very happy with the results! I&rsquo;ll put together a proper page for this project after I deliver the end product.</p> <p>A major milestone this month was the submission of my final college portfolio. I&rsquo;m still looking to complete my degree in Design, so hopefully by this September I&rsquo;ll be back in college again.</p> <p>Lastly, some small changes and updates to the site this month. The colourscheme was changed slightly to be less yellow, and improve reading contrast. I also updated the Bee Encyclopedia with the newly captured <a href="https://d00k.net/knowledge/bees/#early-mining-bee">Early Mining Bee</a>, we&rsquo;re in peak bee season right now so I&rsquo;m hoping to capture some more species that I haven&rsquo;t managed to yet!</p> <p>Things have been slowing down (thankfully) but hopefully sometime next month I&rsquo;ll begin my migration over to a better SSG, I also have a few websites to design and build for friends over the summer that I&rsquo;m very much looking forward to! Till next month - Dook.</p> March Update https://d00k.net/about/journal/2023-03-31/ https://d00k.net/about/journal/2023-03-31/ Dook Fri, 31 Mar 2023 19:15:47 EST <p>I think this month has been one of my most productive in a really long time! A good chunk of time was spent completing and releasing my latest UI theme for Rockbox, <a href="https://d00k.net/projects/ipod/themify/" target="_blank" rel="noopener">Themify</a>. It&rsquo;s so far been received incredibly well, and has even reached my own goal of using design to convince people to use old devices.</p> <p>Once I finished Themify, I set my eyes on the original UI theme I made called <a href="https://d00k.net/projects/ipod/adwaitapod/" target="_blank" rel="noopener">adwaitapod</a>, based on GNOME&rsquo;s design principals. I decided to remake it entirely from scratch, since I&rsquo;d learned so much in the last year that it was just easier to rewrite it all. This time I approached everything much smarter, the new version is about 65% smaller while having new features and performing much better. I just need to focus on some font issues in the github repo, fix a few bugs and work on the dark theme and then I can release it to the world!</p> <p>Alongside everything else, I was approached recently to design an original user interface for a project. I&rsquo;ve spent some time creating an icon set, which I plan to open source soon, as well as brainstorming other parts of the interface. I haven&rsquo;t had a chance yet to design on a proper scale like this, so it&rsquo;s been very exciting and interesting having free reign as the sole designer on this part.</p> <p>Lastly, my website turned a year old in March! I put together a <a href="https://d00k.net/journal/one-year-of-dook-net/" target="_blank" rel="noopener">blog post</a> where I discussed how the site came to be, as well as the changes it went through during the year. I also took the last paragraph to think about where I want to website to go next, something I hope to work on really soon!</p> <p>That&rsquo;s all for now, I have another 2 weeks to cram some projects in before I need to finish my final portfolio for college entry. Once that&rsquo;s done I plan on taking a break for the rest of the month to refresh and get ready for the rest of the year. Till then! - Dook.</p> <p>I think this month has been one of my most productive in a really long time! A good chunk of time was spent completing and releasing my latest UI theme for Rockbox, <a href="https://d00k.net/projects/ipod/themify/" target="_blank" rel="noopener">Themify</a>. It&rsquo;s so far been received incredibly well, and has even reached my own goal of using design to convince people to use old devices.</p> <p>Once I finished Themify, I set my eyes on the original UI theme I made called <a href="https://d00k.net/projects/ipod/adwaitapod/" target="_blank" rel="noopener">adwaitapod</a>, based on GNOME&rsquo;s design principals. I decided to remake it entirely from scratch, since I&rsquo;d learned so much in the last year that it was just easier to rewrite it all. This time I approached everything much smarter, the new version is about 65% smaller while having new features and performing much better. I just need to focus on some font issues in the github repo, fix a few bugs and work on the dark theme and then I can release it to the world!</p> <p>Alongside everything else, I was approached recently to design an original user interface for a project. I&rsquo;ve spent some time creating an icon set, which I plan to open source soon, as well as brainstorming other parts of the interface. I haven&rsquo;t had a chance yet to design on a proper scale like this, so it&rsquo;s been very exciting and interesting having free reign as the sole designer on this part.</p> <p>Lastly, my website turned a year old in March! I put together a <a href="https://d00k.net/journal/one-year-of-dook-net/" target="_blank" rel="noopener">blog post</a> where I discussed how the site came to be, as well as the changes it went through during the year. I also took the last paragraph to think about where I want to website to go next, something I hope to work on really soon!</p> <p>That&rsquo;s all for now, I have another 2 weeks to cram some projects in before I need to finish my final portfolio for college entry. Once that&rsquo;s done I plan on taking a break for the rest of the month to refresh and get ready for the rest of the year. Till then! - Dook.</p> Celebrating a Year of d00k.net https://d00k.net/blog/one-year-of-dook-net/ https://d00k.net/blog/one-year-of-dook-net/ Dook Tue, 28 Mar 2023 19:14:28 EST <div class="info box">This article was written in March 2023 and, since August 2023, is no longer an accurate reflection of the current site.</div> <p>This time a year ago, d00k.net opened for the first time. The dates are a bit fuzzy, the domain was purchased in early March around my birthday, but I consider the site&rsquo;s first real day to be when it was added to the <a href="https://webring.xxiivv.com/#d00k" target="_blank" rel="noopener">XXIVV Webring</a> on March 22nd. Dates aside, in just this one year the site has changed a lot. I tended to work on it sporadically, for reasons I&rsquo;ll get to later, and it&rsquo;s visual language, style and purpose has grown and changed as well over the past 12 months. I want to take this post to look over some of these changes, as well as take a look at where I want the site to go over the next year.</p> <h2 id="purpose">Purpose</h2><p>I started d00k.net mostly just out of a desire to have a website. I&rsquo;d spent the last year surfing the web more, and webrings like the XXIIVV webring dragged me in easily. The idea of a personal wiki or site really shouldn&rsquo;t have been <em>that</em> radical for me, but I&rsquo;ve really only started using the internet properly in the past maybe 5 or 6 years? These sites made me realise how a website could help me, to motivate me to create and share work but also to help me get better idea of who I was and how everything I do and love links back to me. It sounds a bit strange trying to describe, but I know the results have shown for themselves that this really worked.</p> <p>Going forward, I can see it&rsquo;s purpose changing to being more outward. I make a lot of guides, or well get rather annoyed when I don&rsquo;t and forget how to do or use something. I&rsquo;d love to put a lot more of these guides together both for myself and others, overall just fleshing out the Knowledge wiki to be properly useful.</p> <h2 id="design">Design</h2><p>Being a designer, my instant goal was of course to make a website that looked good. But having been introduced to concepts like <a href="https://limited.systems/articles/frugal-computing/" target="_blank" rel="noopener">frugal computing</a> and the smol web, I had a greater inspiration to build a website that both looked good and ran as small as I could possibly make it. But we&rsquo;ll get into that specific rabbit hole in a bit.</p> <p>The first iteration of my own d00k.net was admittedly a design failure. I had been struggling with grasping Hugo, and used Lizbeth Poirer&rsquo;s <a href="https://ritualdust.com/" target="_blank" rel="noopener">ritualdust.com</a> as a references to work from. Through her site I was brought to <a href="https://thomasorus.com/home.html" target="_blank" rel="noopener">thomasorus.com</a> whose notes on web development, and the site itself, were incredibly helpful. I was really inspired by the theming both sites did, and attempted something similar. The end result was.. definitely something. At the time I thought it was cool, but I honestly have no clue how I put up with it for so long. It had to change.</p> <p>The redesign, which you&rsquo;re looking at now (hopefully), didn&rsquo;t start from scratch as much as it took the old design and made it actually palatable. Specifically, I took the colour scheme from the most usable section, the journal, and made it the site-wide theme. To make each section it&rsquo;s own however, I made the header bar theme-able and made a new range of colours for it. I was inspired by a technique I found on <a href="https://hecanjog.com/index.html" target="_blank" rel="noopener">He Can Jog&rsquo;s site</a> of tiny gifs as a sort of repeating texture for backgrounds which really took the new design to the next level.</p> <p>I also began to create a unique visual language for thumbnails on the site, almost entirely by accident. So when redesigning the entire style, I thought I&rsquo;d lean in on this a lot more, which is how the frontpage came to look like it has. I&rsquo;m immensely proud of these, even if they are rather small, it&rsquo;s something I&rsquo;d love to replicate more throughout the site in the future.</p> <h2 id="making-the-site-small">Making the site small</h2><p>Like a lot of people with websites, whenever I did any work with the site I tried to improve the size or efficiency of assets and the like. From the start, I followed Rekka Bellum&rsquo;s <a href="https://kokorobot.ca/site/image_optimization.html" target="_blank" rel="noopener">guide for image optimisation</a>, eventually tweaking it for example to output images in 720px wide. If I stopped there, it probably would&rsquo;ve been fine. My site doesn&rsquo;t run any javascript, it isn&rsquo;t some electron nightmare hog etc. But if there&rsquo;s room for save even a kilobyte, I&rsquo;ll take it.</p> <p>Some changes were small, like streamlining my css and compressing the file, but some were a lot bigger and some were just downright ridiculous of me. Once I began using SVGs a lot more, I tried reducing their size by hand, and while this worked pretty well, I eventually started using <a href="https://github.com/sonnyp/OhMySVG" target="_blank" rel="noopener">Oh My SVG</a> which is absolute magic and beats me everytime at downsizing SVGs. The real insanity came with fonts.</p> <p>At the start, the site used 3 fonts (text, headers and links). I eventually changed my main font to League Spartan Variable, keeping Barlow as the header font and CMRDD as the link font. Each was equally as large, but instead of using something like fontsquirrel to reduce their character set, I decided to subset them myself.. manually. I had gotten a bit too comfortable at this point with Fontforge, and thought why not? And don&rsquo;t get me wrong, it paid off, the site font files are absurdly small now, but I don&rsquo;t know if it&rsquo;s totally worth it. One thing I did manage to do was edit and successfully output a variable font from Fontforge, which apparently shouldn&rsquo;t be possible? I haven&rsquo;t been able to repeat it again which has been frustrating. I&rsquo;ve gotten around this by creating a fallback font which just the icons I want to add to the site (like my logo&rsquo;s🗦 &amp; 🗧) Since the redesign, I&rsquo;ve also removed the 3rd font for links, deciding to style them instead.</p> <p>Currently my main page sits at around 30kb, I think originally it could&rsquo;ve been something like 140 or 170kb. My main goal has been to keep under a mb for any page, and so far this has been successful. The largest page is one of my photography galleries, around 800kb. Maybe hasn&rsquo;t been the greatest use of my time, but seeing the total page size gives me a huge grin every time I see it.</p> <h2 id="whats-next">What&rsquo;s next?</h2><p>My own static site generator. Hugo was alright to start with, I don&rsquo;t wanna say it&rsquo;s been bad but it hasn&rsquo;t been great either. I had to hack together my own shortcodes for images, and I use rawhtml inputs every time I want to add a list of links to a page. Sometimes hugo makes illogical decisions generating pages, that I just cannot wrap my head around, and I&rsquo;d much rather have an SSG that I can more properly control the output of. I&rsquo;ve decided at least to use python, whether it&rsquo;s a home-made job or an existing solution I&rsquo;m not sure of yet. I do know when I get to it, I plan to do another wash over of the CSS. I threw my styling for bodies of text together mostly on instinct, and it could do with some proper logic and decisions behind it. I also want to add time into the site, since I don&rsquo;t even track the date right now, but I want to do something cool and unique here.</p> <p>Maybe next year I&rsquo;ll have made enough changes to warrant another anniversary post, but I hope not! For everyone who has checked out my site, found it useful, or even just liked it, thank you! I hope for other people who may be considering making a site that d00k.net can inspire you just like other sites inspired me. Thanks for reading, and see you soon.</p> <p>Dook.</p> <div class="info box">This article was written in March 2023 and, since August 2023, is no longer an accurate reflection of the current site.</div> <p>This time a year ago, d00k.net opened for the first time. The dates are a bit fuzzy, the domain was purchased in early March around my birthday, but I consider the site&rsquo;s first real day to be when it was added to the <a href="https://webring.xxiivv.com/#d00k" target="_blank" rel="noopener">XXIVV Webring</a> on March 22nd. Dates aside, in just this one year the site has changed a lot. I tended to work on it sporadically, for reasons I&rsquo;ll get to later, and it&rsquo;s visual language, style and purpose has grown and changed as well over the past 12 months. I want to take this post to look over some of these changes, as well as take a look at where I want the site to go over the next year.</p> <h2 id="purpose">Purpose</h2><p>I started d00k.net mostly just out of a desire to have a website. I&rsquo;d spent the last year surfing the web more, and webrings like the XXIIVV webring dragged me in easily. The idea of a personal wiki or site really shouldn&rsquo;t have been <em>that</em> radical for me, but I&rsquo;ve really only started using the internet properly in the past maybe 5 or 6 years? These sites made me realise how a website could help me, to motivate me to create and share work but also to help me get better idea of who I was and how everything I do and love links back to me. It sounds a bit strange trying to describe, but I know the results have shown for themselves that this really worked.</p> <p>Going forward, I can see it&rsquo;s purpose changing to being more outward. I make a lot of guides, or well get rather annoyed when I don&rsquo;t and forget how to do or use something. I&rsquo;d love to put a lot more of these guides together both for myself and others, overall just fleshing out the Knowledge wiki to be properly useful.</p> <h2 id="design">Design</h2><p>Being a designer, my instant goal was of course to make a website that looked good. But having been introduced to concepts like <a href="https://limited.systems/articles/frugal-computing/" target="_blank" rel="noopener">frugal computing</a> and the smol web, I had a greater inspiration to build a website that both looked good and ran as small as I could possibly make it. But we&rsquo;ll get into that specific rabbit hole in a bit.</p> <p>The first iteration of my own d00k.net was admittedly a design failure. I had been struggling with grasping Hugo, and used Lizbeth Poirer&rsquo;s <a href="https://ritualdust.com/" target="_blank" rel="noopener">ritualdust.com</a> as a references to work from. Through her site I was brought to <a href="https://thomasorus.com/home.html" target="_blank" rel="noopener">thomasorus.com</a> whose notes on web development, and the site itself, were incredibly helpful. I was really inspired by the theming both sites did, and attempted something similar. The end result was.. definitely something. At the time I thought it was cool, but I honestly have no clue how I put up with it for so long. It had to change.</p> <p>The redesign, which you&rsquo;re looking at now (hopefully), didn&rsquo;t start from scratch as much as it took the old design and made it actually palatable. Specifically, I took the colour scheme from the most usable section, the journal, and made it the site-wide theme. To make each section it&rsquo;s own however, I made the header bar theme-able and made a new range of colours for it. I was inspired by a technique I found on <a href="https://hecanjog.com/index.html" target="_blank" rel="noopener">He Can Jog&rsquo;s site</a> of tiny gifs as a sort of repeating texture for backgrounds which really took the new design to the next level.</p> <p>I also began to create a unique visual language for thumbnails on the site, almost entirely by accident. So when redesigning the entire style, I thought I&rsquo;d lean in on this a lot more, which is how the frontpage came to look like it has. I&rsquo;m immensely proud of these, even if they are rather small, it&rsquo;s something I&rsquo;d love to replicate more throughout the site in the future.</p> <h2 id="making-the-site-small">Making the site small</h2><p>Like a lot of people with websites, whenever I did any work with the site I tried to improve the size or efficiency of assets and the like. From the start, I followed Rekka Bellum&rsquo;s <a href="https://kokorobot.ca/site/image_optimization.html" target="_blank" rel="noopener">guide for image optimisation</a>, eventually tweaking it for example to output images in 720px wide. If I stopped there, it probably would&rsquo;ve been fine. My site doesn&rsquo;t run any javascript, it isn&rsquo;t some electron nightmare hog etc. But if there&rsquo;s room for save even a kilobyte, I&rsquo;ll take it.</p> <p>Some changes were small, like streamlining my css and compressing the file, but some were a lot bigger and some were just downright ridiculous of me. Once I began using SVGs a lot more, I tried reducing their size by hand, and while this worked pretty well, I eventually started using <a href="https://github.com/sonnyp/OhMySVG" target="_blank" rel="noopener">Oh My SVG</a> which is absolute magic and beats me everytime at downsizing SVGs. The real insanity came with fonts.</p> <p>At the start, the site used 3 fonts (text, headers and links). I eventually changed my main font to League Spartan Variable, keeping Barlow as the header font and CMRDD as the link font. Each was equally as large, but instead of using something like fontsquirrel to reduce their character set, I decided to subset them myself.. manually. I had gotten a bit too comfortable at this point with Fontforge, and thought why not? And don&rsquo;t get me wrong, it paid off, the site font files are absurdly small now, but I don&rsquo;t know if it&rsquo;s totally worth it. One thing I did manage to do was edit and successfully output a variable font from Fontforge, which apparently shouldn&rsquo;t be possible? I haven&rsquo;t been able to repeat it again which has been frustrating. I&rsquo;ve gotten around this by creating a fallback font which just the icons I want to add to the site (like my logo&rsquo;s🗦 &amp; 🗧) Since the redesign, I&rsquo;ve also removed the 3rd font for links, deciding to style them instead.</p> <p>Currently my main page sits at around 30kb, I think originally it could&rsquo;ve been something like 140 or 170kb. My main goal has been to keep under a mb for any page, and so far this has been successful. The largest page is one of my photography galleries, around 800kb. Maybe hasn&rsquo;t been the greatest use of my time, but seeing the total page size gives me a huge grin every time I see it.</p> <h2 id="whats-next">What&rsquo;s next?</h2><p>My own static site generator. Hugo was alright to start with, I don&rsquo;t wanna say it&rsquo;s been bad but it hasn&rsquo;t been great either. I had to hack together my own shortcodes for images, and I use rawhtml inputs every time I want to add a list of links to a page. Sometimes hugo makes illogical decisions generating pages, that I just cannot wrap my head around, and I&rsquo;d much rather have an SSG that I can more properly control the output of. I&rsquo;ve decided at least to use python, whether it&rsquo;s a home-made job or an existing solution I&rsquo;m not sure of yet. I do know when I get to it, I plan to do another wash over of the CSS. I threw my styling for bodies of text together mostly on instinct, and it could do with some proper logic and decisions behind it. I also want to add time into the site, since I don&rsquo;t even track the date right now, but I want to do something cool and unique here.</p> <p>Maybe next year I&rsquo;ll have made enough changes to warrant another anniversary post, but I hope not! For everyone who has checked out my site, found it useful, or even just liked it, thank you! I hope for other people who may be considering making a site that d00k.net can inspire you just like other sites inspired me. Thanks for reading, and see you soon.</p> <p>Dook.</p> A Look Inside Themify https://d00k.net/blog/inside_themify/ https://d00k.net/blog/inside_themify/ Dook Tue, 14 Mar 2023 15:12:17 EST <p>After a few months of working on and off, I finally finished my next Rockbox theme: Themify. Themify does a lot of things I haven&rsquo;t done yet in Rockbox, I really tried to push myself to create something cool and unique and I think the results definitely speak for themselves! This time, I decided to make a post here going over some of these features and generally looking into the code a bit more for those who are interested in that kind of thing.</p> <h2 id="ui-re-colouring">UI Re-colouring</h2><p>Of course, the main feature of Themify is the ability to completely colour-customise the interface to your taste. This is done by taking full advantage of Rockbox&rsquo;s built in colour settings. Many theme tags support using these user-set default colours, and there&rsquo;s even ways to make bitmap images be drawn with these too. The goal of Themify was to take these to the extreme</p> <h3 id="transparency">Transparency</h3><p>One feature of Rockbox theming that has fascinated me for a while is transparent bitmaps. With regular bitmaps, a form of transparent masking is supported (and used fairly often), however Rockbox also supports <em>true</em> transparent bitmaps. I could only find a handful of themes that used this feature in albeit tiny amounts, it&rsquo;s quite costly in terms of resources, but I felt that the iPod could handle it in larger scales. For Themify, transparent elements provide a vital accent colour for the interface. And thanks to some changes to background drawing, I was able to use it in plenty of places.</p> <h3 id="the-backgrounds">The Backgrounds</h3><p>In recent years, background image switching has become a core part of modern themes. This utilises a layer drawn in the background, where logic is used to display different images per screen. This works great, however even with the best compression you can achieve, each image will come in at around 80Kbs. While this isn&rsquo;t much, over 5 or 6 images it can begin to threaten the file size of your theme over Rockbox&rsquo;s theme site&rsquo;s limits. Instead of taking the standard approach, I decided to try drawing the background elements using theme tags. This involved drawing rectangles in many places and using images to make up for rounded parts, accents and so on. This saved an incredible amount of space and let me use transparent bitmaps far more frivolously.</p> <figure><img src="https://d00k.net/img/journal/themify_01.jpg" loading="lazy" alt="A comparison of the player and it&#39;s backdrop drawing" width="100%" height="100%"> <figcaption>The player screen&#39;s background drawing visualised.</figcaption></figure> <h3 id="1-bit-bitmaps">1-bit Bitmaps</h3><p>One massive space savings was made with icons and other re-coloured UI images. Converting them to 1-bit Bitmaps gave the same result as regular bitmaps, but at a fraction of the size and effort to load. Without this one decision, I don&rsquo;t think Themify would have performed as well as it did.</p> <h2 id="adaptive-ui">Adaptive UI</h2><p>To keep a clean, consistent UI, I aimed to create various dynamic features that would give users the information they need when it&rsquo;s needed, and hide it when not. The main place you can see this is with my icon bar for lossless audio, shuffle and repeat indicators. This uses a rather large amount of basic logic to decide what positions icons should be drawn in and when, and the result is well integrated into theme. I think you&rsquo;d hardly notice what it&rsquo;s doing unless you knew.</p> <pre><code>#An example of the logic for one icon positions %?and(%if(%ps, =, 1),%if(%mm, =, 1),%or(%if(%fc, !=, 4),%if(%fc, !=, 5),%if(%fc, !=, 7),%if(%fc, !=, 11),%if(%fc, !=, 13)))&lt;%xd(statusextra,3)&gt; %?and(%if(%ps, !=, 1),%if(%mm, &gt;, 1),%or(%if(%fc, !=, 4),%if(%fc, !=, 5),%if(%fc, !=, 7),%if(%fc, !=, 11),%if(%fc, !=, 13)))&lt;%xd(statusextra,3)&gt; %?and(%if(%ps, !=, 1),%if(%mm, =, 1),%or(%if(%fc, =, 4),%if(%fc, =, 5),%if(%fc, =, 7),%if(%fc, =, 11),%if(%fc, =, 13)))&lt;%xd(statusextra,3)&gt;</code></pre><p>I also added automatic line splitting to the song title text and playlist position indicator. The song title is a bit imperfect, I detect the length of the title, and if it fits the necessary parameters then it will be displayed in two lines. I intended for this feature to be smarter, splitting the text in a way that respected words and didnt chop them up, however Rockbox theme files are unable to detect space characters, stopping this feature in it&rsquo;s tracks.</p> <img src="https://d00k.net/img/journal/themify_02.jpg" loading="lazy" alt="Examples of adaptive elements in the ui"> <h2 id="the-lockscreen">The Lockscreen</h2><p>Easily my favourite feature, Themify&rsquo;s lockscreen is my most impressive yet. Using a full screen transparent bitmap for the background, it looks stunning. I also added the largest analog clock attempted in Rockbox to date. Using the newer image loading logic, I was able to keep at least the hour hand&rsquo;s code small. I had to compromise with the minute hands since they couldn&rsquo;t be 1-bit bitmaps, and to have 60 individual hands produced a massive file size. I kept the logic as small as I could however, so the result isn&rsquo;t actually half bad, especially compared to other attempts at this feature.</p> <pre><code>#--- Lockscreen Clock ---# %Vl(Lockscreen,15,40,160,160,-) %xd(HourHands,%cl) # %Vl(Lockscreen,89,40,86,86,-) %?and(%if(%cM, &gt;=, 0),%if(%cM, &lt;, 5))&lt;%xd(MinuteHands,1)&gt; %?and(%if(%cM, &gt;=, 5),%if(%cM, &lt;, 10))&lt;%xd(MinuteHands,2)&gt; %?and(%if(%cM, &gt;=, 10),%if(%cM, &lt;, 15))&lt;%xd(MinuteHands,3)&gt; %?and(%if(%cM, &gt;=, 15),%if(%cM, &lt;, 20))&lt;%xd(MinuteHands,4)&gt; %Vl(Lockscreen,89,114,86,86,-) %?and(%if(%cM, &gt;=, 20),%if(%cM, &lt;, 25))&lt;%xd(MinuteHands,5)&gt; #... and so on </code></pre><p>This implementation also features a fix for an issue that has long plagued Lockscreen designs. When the song switches to the next, if a Lockscreen is open, it will refresh the menu the Lockscreen is drawn over. This creates a glitchy mess, and stops this feature from being any more than a neat tech demo. However, I finally fixed this (literally just before I launched the theme) by drawing a viewport over the main menu whenever a song changes, effectively refreshing the Lockscreen effect.</p> <h2 id="final-thoughts">Final Thoughts</h2><p>Overall, I&rsquo;m quite happy and proud of this theme&rsquo;s outcome. I hope many people will find joy in being able to change their colour scheme to fit themselves, or however they feel, whenever they want. If you enjoy Themify, feel free to send some feedback or suggest improvements in the <a href="https://github.com/D0-0K/themify/discussions" target="_blank" rel="noopener">github discussions</a>!</p> <div class="listbox box"><div><h2>Links</h2><p>Themify can be downloaded from the Github, or via Rockbox sources. (The recommended method being the Rockbox Utility app)</p></div><hr><ul> <li><a href="https://d00k.net/journal/inside_themify" >• Themify Web Page</a></li> <li><a href="https://github.com/D0-0K/themify" target="_blank" rel="noreferrer" >↗ Github Repository</a></li> <li><a href="https://themes.rockbox.org/index.php?themeid=3320&amp;target=ipodvideo" target="_blank" rel="noreferrer" >↗ Rockbox Theme page</a></li> </ul></div> <p>After a few months of working on and off, I finally finished my next Rockbox theme: Themify. Themify does a lot of things I haven&rsquo;t done yet in Rockbox, I really tried to push myself to create something cool and unique and I think the results definitely speak for themselves! This time, I decided to make a post here going over some of these features and generally looking into the code a bit more for those who are interested in that kind of thing.</p> <h2 id="ui-re-colouring">UI Re-colouring</h2><p>Of course, the main feature of Themify is the ability to completely colour-customise the interface to your taste. This is done by taking full advantage of Rockbox&rsquo;s built in colour settings. Many theme tags support using these user-set default colours, and there&rsquo;s even ways to make bitmap images be drawn with these too. The goal of Themify was to take these to the extreme</p> <h3 id="transparency">Transparency</h3><p>One feature of Rockbox theming that has fascinated me for a while is transparent bitmaps. With regular bitmaps, a form of transparent masking is supported (and used fairly often), however Rockbox also supports <em>true</em> transparent bitmaps. I could only find a handful of themes that used this feature in albeit tiny amounts, it&rsquo;s quite costly in terms of resources, but I felt that the iPod could handle it in larger scales. For Themify, transparent elements provide a vital accent colour for the interface. And thanks to some changes to background drawing, I was able to use it in plenty of places.</p> <h3 id="the-backgrounds">The Backgrounds</h3><p>In recent years, background image switching has become a core part of modern themes. This utilises a layer drawn in the background, where logic is used to display different images per screen. This works great, however even with the best compression you can achieve, each image will come in at around 80Kbs. While this isn&rsquo;t much, over 5 or 6 images it can begin to threaten the file size of your theme over Rockbox&rsquo;s theme site&rsquo;s limits. Instead of taking the standard approach, I decided to try drawing the background elements using theme tags. This involved drawing rectangles in many places and using images to make up for rounded parts, accents and so on. This saved an incredible amount of space and let me use transparent bitmaps far more frivolously.</p> <figure><img src="https://d00k.net/img/journal/themify_01.jpg" loading="lazy" alt="A comparison of the player and it&#39;s backdrop drawing" width="100%" height="100%"> <figcaption>The player screen&#39;s background drawing visualised.</figcaption></figure> <h3 id="1-bit-bitmaps">1-bit Bitmaps</h3><p>One massive space savings was made with icons and other re-coloured UI images. Converting them to 1-bit Bitmaps gave the same result as regular bitmaps, but at a fraction of the size and effort to load. Without this one decision, I don&rsquo;t think Themify would have performed as well as it did.</p> <h2 id="adaptive-ui">Adaptive UI</h2><p>To keep a clean, consistent UI, I aimed to create various dynamic features that would give users the information they need when it&rsquo;s needed, and hide it when not. The main place you can see this is with my icon bar for lossless audio, shuffle and repeat indicators. This uses a rather large amount of basic logic to decide what positions icons should be drawn in and when, and the result is well integrated into theme. I think you&rsquo;d hardly notice what it&rsquo;s doing unless you knew.</p> <pre><code>#An example of the logic for one icon positions %?and(%if(%ps, =, 1),%if(%mm, =, 1),%or(%if(%fc, !=, 4),%if(%fc, !=, 5),%if(%fc, !=, 7),%if(%fc, !=, 11),%if(%fc, !=, 13)))&lt;%xd(statusextra,3)&gt; %?and(%if(%ps, !=, 1),%if(%mm, &gt;, 1),%or(%if(%fc, !=, 4),%if(%fc, !=, 5),%if(%fc, !=, 7),%if(%fc, !=, 11),%if(%fc, !=, 13)))&lt;%xd(statusextra,3)&gt; %?and(%if(%ps, !=, 1),%if(%mm, =, 1),%or(%if(%fc, =, 4),%if(%fc, =, 5),%if(%fc, =, 7),%if(%fc, =, 11),%if(%fc, =, 13)))&lt;%xd(statusextra,3)&gt;</code></pre><p>I also added automatic line splitting to the song title text and playlist position indicator. The song title is a bit imperfect, I detect the length of the title, and if it fits the necessary parameters then it will be displayed in two lines. I intended for this feature to be smarter, splitting the text in a way that respected words and didnt chop them up, however Rockbox theme files are unable to detect space characters, stopping this feature in it&rsquo;s tracks.</p> <img src="https://d00k.net/img/journal/themify_02.jpg" loading="lazy" alt="Examples of adaptive elements in the ui"> <h2 id="the-lockscreen">The Lockscreen</h2><p>Easily my favourite feature, Themify&rsquo;s lockscreen is my most impressive yet. Using a full screen transparent bitmap for the background, it looks stunning. I also added the largest analog clock attempted in Rockbox to date. Using the newer image loading logic, I was able to keep at least the hour hand&rsquo;s code small. I had to compromise with the minute hands since they couldn&rsquo;t be 1-bit bitmaps, and to have 60 individual hands produced a massive file size. I kept the logic as small as I could however, so the result isn&rsquo;t actually half bad, especially compared to other attempts at this feature.</p> <pre><code>#--- Lockscreen Clock ---# %Vl(Lockscreen,15,40,160,160,-) %xd(HourHands,%cl) # %Vl(Lockscreen,89,40,86,86,-) %?and(%if(%cM, &gt;=, 0),%if(%cM, &lt;, 5))&lt;%xd(MinuteHands,1)&gt; %?and(%if(%cM, &gt;=, 5),%if(%cM, &lt;, 10))&lt;%xd(MinuteHands,2)&gt; %?and(%if(%cM, &gt;=, 10),%if(%cM, &lt;, 15))&lt;%xd(MinuteHands,3)&gt; %?and(%if(%cM, &gt;=, 15),%if(%cM, &lt;, 20))&lt;%xd(MinuteHands,4)&gt; %Vl(Lockscreen,89,114,86,86,-) %?and(%if(%cM, &gt;=, 20),%if(%cM, &lt;, 25))&lt;%xd(MinuteHands,5)&gt; #... and so on </code></pre><p>This implementation also features a fix for an issue that has long plagued Lockscreen designs. When the song switches to the next, if a Lockscreen is open, it will refresh the menu the Lockscreen is drawn over. This creates a glitchy mess, and stops this feature from being any more than a neat tech demo. However, I finally fixed this (literally just before I launched the theme) by drawing a viewport over the main menu whenever a song changes, effectively refreshing the Lockscreen effect.</p> <h2 id="final-thoughts">Final Thoughts</h2><p>Overall, I&rsquo;m quite happy and proud of this theme&rsquo;s outcome. I hope many people will find joy in being able to change their colour scheme to fit themselves, or however they feel, whenever they want. If you enjoy Themify, feel free to send some feedback or suggest improvements in the <a href="https://github.com/D0-0K/themify/discussions" target="_blank" rel="noopener">github discussions</a>!</p> <div class="listbox box"><div><h2>Links</h2><p>Themify can be downloaded from the Github, or via Rockbox sources. (The recommended method being the Rockbox Utility app)</p></div><hr><ul> <li><a href="https://d00k.net/journal/inside_themify" >• Themify Web Page</a></li> <li><a href="https://github.com/D0-0K/themify" target="_blank" rel="noreferrer" >↗ Github Repository</a></li> <li><a href="https://themes.rockbox.org/index.php?themeid=3320&amp;target=ipodvideo" target="_blank" rel="noreferrer" >↗ Rockbox Theme page</a></li> </ul></div> February Update https://d00k.net/about/journal/2023-02-28/ https://d00k.net/about/journal/2023-02-28/ Dook Tue, 28 Feb 2023 19:13:59 EST <p>Spent the first week of this month completing my portfolio for college entry, but in-between made some big improvements to the site. I simplified the inline links style to be far more visible than they were before, which also led to my stand-alone font for links becoming unnecessary. Getting rid of it has made my home page even smaller now, to just over 30kb.</p> <p>After that, I began to work on a new iPod theme called Themify. I made it mostly to showcase some features of Rockbox I found that would let users fully customise the UI&rsquo;s colourscheme. The beta was shared on my Ko-Fi <a href="https://ko-fi.com/s/ec908b61b4" target="_blank" rel="noopener">here</a>, and some people have shown support which has been really nice. At the same time, I&rsquo;ve been working on a commission I received to port a previous Rockbox theme of mine to a touch-screen device which has been a lot of fun.</p> <p>This month I also started learning a few different programming languages including Uxntal, Python and bits of GTK for making a desktop app. I started learning Uxntal after getting an idea for a virtual pet synthesizer in a dream, so far compudanzas&rsquo; <a href="https://compudanzas.net/introduction_to_uxn_programming_book.html" target="_blank" rel="noopener">uxn book</a> has been extremely useful and makes uxn appear quite inviting, even as a relative beginner with programming. On the other hand GTK has been a nightmare to figure out, but I seem to make progress in big leaps at once. It&rsquo;s been quite enjoyable working on apps and software that I want or need.</p> <p>Hopefully by the end of March I should have an update with a bunch of finished projects!</p> <p>Spent the first week of this month completing my portfolio for college entry, but in-between made some big improvements to the site. I simplified the inline links style to be far more visible than they were before, which also led to my stand-alone font for links becoming unnecessary. Getting rid of it has made my home page even smaller now, to just over 30kb.</p> <p>After that, I began to work on a new iPod theme called Themify. I made it mostly to showcase some features of Rockbox I found that would let users fully customise the UI&rsquo;s colourscheme. The beta was shared on my Ko-Fi <a href="https://ko-fi.com/s/ec908b61b4" target="_blank" rel="noopener">here</a>, and some people have shown support which has been really nice. At the same time, I&rsquo;ve been working on a commission I received to port a previous Rockbox theme of mine to a touch-screen device which has been a lot of fun.</p> <p>This month I also started learning a few different programming languages including Uxntal, Python and bits of GTK for making a desktop app. I started learning Uxntal after getting an idea for a virtual pet synthesizer in a dream, so far compudanzas&rsquo; <a href="https://compudanzas.net/introduction_to_uxn_programming_book.html" target="_blank" rel="noopener">uxn book</a> has been extremely useful and makes uxn appear quite inviting, even as a relative beginner with programming. On the other hand GTK has been a nightmare to figure out, but I seem to make progress in big leaps at once. It&rsquo;s been quite enjoyable working on apps and software that I want or need.</p> <p>Hopefully by the end of March I should have an update with a bunch of finished projects!</p> January Update https://d00k.net/about/journal/2023-01-31/ https://d00k.net/about/journal/2023-01-31/ Dook Tue, 31 Jan 2023 19:47:12 EST <p>Happy new year! I&rsquo;ve decided this year to use my short journal as a more detailed monthly record. This month was largely focused on my college application. I&rsquo;m attempting to return to college in September, switching institutions as I do so to be closer to home. This requires a whole new application, portfolio etc which I spent most of this month handling. In my off time I put a decent amount of work into my website, solidifying parts of the website that have been disjointed up until now. I also started a <a href="https://d00k.net/knowledge/linux">Linux Wiki</a> of various cheatsheets I&rsquo;ve written over the past year. These were received quite well, and I hope this knowledge will help others learn too. Lastly, this month I was shortlisted and exhibited in The Photographer&rsquo;s Gallery&rsquo;s <a href="https://unthinking.photography/commissions/small-file-photo-festival" target="_blank" rel="noopener">Small File Photo Festival</a>. I&rsquo;m very proud of this exhibition, combining two of my interests: Photography and Image Compression. I&rsquo;m hoping this year I&rsquo;ll be able to move about more and take photos again.</p> <p>Happy new year! I&rsquo;ve decided this year to use my short journal as a more detailed monthly record. This month was largely focused on my college application. I&rsquo;m attempting to return to college in September, switching institutions as I do so to be closer to home. This requires a whole new application, portfolio etc which I spent most of this month handling. In my off time I put a decent amount of work into my website, solidifying parts of the website that have been disjointed up until now. I also started a <a href="https://d00k.net/knowledge/linux">Linux Wiki</a> of various cheatsheets I&rsquo;ve written over the past year. These were received quite well, and I hope this knowledge will help others learn too. Lastly, this month I was shortlisted and exhibited in The Photographer&rsquo;s Gallery&rsquo;s <a href="https://unthinking.photography/commissions/small-file-photo-festival" target="_blank" rel="noopener">Small File Photo Festival</a>. I&rsquo;m very proud of this exhibition, combining two of my interests: Photography and Image Compression. I&rsquo;m hoping this year I&rsquo;ll be able to move about more and take photos again.</p> Year Review 2022 https://d00k.net/blog/year-review-2022/ https://d00k.net/blog/year-review-2022/ Dook Sat, 31 Dec 2022 19:25:18 EST <div class="listbox box"> <h2 style="padding:12px 5%;">Table of Contents</h2> <details><summary>Menu</summary> <hr> <ul> <li><a href="#changes" >• Changes</a></li> <li><a href="#favourite-things" >• Favourite Things</a></li> <li><a href="#projects" >• Projects</a></li> <li><a href="#the-goal-for-2023" >• The Goal for 2023</a></li> <li><a href="#conclusion" >• Conclusion</a></li> </ul> </details></div> <p>This year I kept my goals fairly open ended, I had a feeling it wasn’t going to be the most straightforward year and it proved to be the correct assumption. One of my main goals was to get my health back in shape, which was thrown an entire curveball when my kidneys spent over half the year in a state of failure. I’m on the mend now though thankfully. The second biggest goal was to rebuild my website from scratch, it took several months as well as redesigning the CSS twice, but I’m quite proud of the final result and especially with how incredibly lightweight I managed to make it. Without a doubt it’s my biggest success this year. The last goal was to learn how to properly program, as well to produce some watchfaces for the Pebble watch. It took until the Rebble Hackathon in November to actually achieve both of these, but I had a lot of fun programming and I hope to keep it up.</p> <p>Overall I had a lot of time this year, much more than even in 2021, but I feel I really put as much of it as I could to use and created some great things.</p> <h2 id="changes">Changes</h2><div class="listbox box"><div><h2>Hardware</h2></div><hr><ul> <li>⚬ Sold my Motorola and got a Pixel 3a so I could use LineageOS.</li> <li>⚬ Bought a Kobo Libra 2 ereader.</li> <li>⚬ Got an old iPod Classic Gen 5.</li> <li>⚬ Bought a cheap Pebble Time Steel which has become my daily driver watch.</li> <li>⚬ Got a Mechanical Keyboard.</li> </ul></div> <div class="listbox box"><div><h2>Software</h2></div><hr><ul> <li>⚬ Switched to LineageOS on my phone.</li> <li>⚬ Started using Cmus in the terminal for my offline music.</li> <li>⚬ Learned how to use SSH and SFTP.</li> <li>⚬ Sorta learned how to use IRC.</li> <li>⚬ Installed KOReader on my Kobo.</li> <li>⚬ Learned how to make Bash Scripts.</li> </ul></div> <div class="text borderless box"> <div> <h2 id="online">Online</h2><p><strong>∘ Switched Mastodon Instance</strong> - Moved over to post.lurk.org in August this year, and I’m so glad I did. I had been on a very beginner instance previously, and quite frankly it was nowhere near as fun as lurk is to me now. It took a few months to really feel settled in, but I’m very happy with how everything is going.- Website - Aside from just remaking it, I started to use my website a heck of a lot more, and it really helped drive me forward in my goals this year as well motivating me to create more. I wrote a couple of blog posts and shared one on HN which got some nice discussion about the pros and cons of music streaming platforms.</p> <p><strong>∘ De-Platforming</strong> - I also moved away from using some platforms this year, for example reddit and snapchat which I only used to keep track of news or in snapchat&rsquo;s case people I didn’t really know anymore. I also sorted my instagram to be exclusively people I’m friends with or wish to keep in contact with. Discord has also become much the same, only using it every so often to chat with friends.</p> </div> </div> <h2 id="favourite-things">Favourite Things</h2><p>In terms of content this year I had a rather large shift compared to last year. I didn’t engage too much in surfing websites, or at least as much as I had in previous years. On the other hand, my music listening felt far more focused and I’ve managed to detail some of my top albums I listened to this year. I also read an absolutely ginormous amount of manga, on top of the monthly and weekly serials I read, I managed to finish 55 different Manga. I got into some series I had always wanted to read but could never find the time, and I really experienced some brilliant stories (as well as some bad ones) through it.</p> <div class="text borderless box"> <div> <h3 id="music">Music</h3><p><strong>∘ Favourite Artist - Snail Mail</strong> - Hoo boy. I’ve been a fan of Lindsey Jordan’s music for a good few years now, her ability to write a great single is incredibly, but this year I found myself listening to her album’s Lush and Valentine a LOT. Valentine deserves serious praise for both Lindsey’s singing and songwriting skills, the album opens on a powerful note and finishes on with an emotional serenade, the songs inbetween creating a seamless transitions between both tones. There was a point this year that I played Valentine at least once a day! Absolutely cannot wait for her to go on tour again and see Snail Mail play live.</p> <p><strong>∘ Favourite Album - How It Ends by TOLEDO</strong> - Released at the end of September, TOLEDO’s first album How It Ends takes a departure from their previous EPs and single’s tones. The biographical nature of this album takes a hold from the start, Soda Can creating an incredibly visual and narrative experience that continues throughout the rest of the 40 minute album. It has a very unique feeling to it all, one that I find a little hard to describe, but I think it can be best described as a very personal album, for both Dan and Jordan, their history and relationship that blends extremely well with their existing sound.</p> </div> </div> <div class="text borderless box"> <div> <h3 id="manga">Manga</h3><p><strong>∘ Top Manga - Nausicaä of the Valley of the Wind</strong> - I slept on this for far, far too long. For the longest time I thought the manga was nothing more than a predecessor to film. Had I known my timelines, I’d have know that the manga continued for over a decade after the film’s release. This is reflected in the manga’s story, the contents of the film are an abstraction of various plot points that occur in the manga’s first book. The remaining four books craft a tale that is quite frankly unmatched in manga. It develops both Nausicaa and the world to a point far beyond the scope of the film, and builds an exceptional hero out of her. I rarely say this, but it is truly a must read. This manga is so good it took one of my favourite ghibli movies and made it even better. 10/10</p> <p><strong>∘ Top Serial - Blue Period</strong> - Once again Blue Period had an exceptional year of chapters. Finishing off the second year arc, Yamaguchi Tsubasa produced some excellent progression of both the story as well as characters. Almost every chapter this year had me feeling that it was ten times better than the last one, which is an impressive feat to still be pulling off this far into it’s serial. We see Yatora progress a lot as character as well, and it’s honestly quite incredible how close to reality Blue Period’s depiction of college is. College isn’t a common setting in manga, however this manga’s dedication to using it as the story’s driving force is commendable as well. Worth keeping an eye on next year for sure.</p> </div> </div> <h2 id="projects">Projects</h2><p>I spent a lot of time this year on things I didn’t expect to work on, but they were definitely time well spent on. My pursuit of a better UX on my iPod drove me down a rabbit hole of theming and customising iPods, which has since branched out into a lot of different projects taking up my time. Most of these projects however have proved quite useful for my college entry portfolio.</p> <p><div class="text borderless box"> <div><h3 id="website-optimisations">Website Optimisations</h3><p>My main goal when rebuilding my website from scratch this year was to make a website that had great design, but was also fast. This led to what I can only describe as an obsession with compression and filesize savings. I went as far as manually editing my font files to remove unneeded glyphs and even removing all spaces in my CSS file. But it was well worth it, the homepage now comes in at just under 48kb! I wrote up a blog post detailing all the techniques I learned which you can find here.</p></div> </div> <div class="text borderless box"> <div><h3 id="ipod-projects">iPod Projects</h3><p>I got into iPods early in the year as part of my move towards owning my music collection. However the UX in both the stock OS and RockboxOS felt clunky and quite hard to read at times, and none of the existing themes met my standards so I set out to make my own theme adwaitapod. Unfortunately the Rockbox theming language is pretty user unfriendly especially to beginners, and with only basic documentation to go on it took months to just get familiar with how things worked. This led me to start writing a book for new users to learn how to make a theme from scratch with no prior knowledge, in doing so I also decided to start making syntax-highlighting for the language from scratch. I hope to finish this project early next year.</p></div> </div> <div class="text borderless box"> <div><h3 id="pebble-watchface">Pebble Watchface</h3><p>I’ve wanted to make a watchface for the pebble for a while, however my programming knowledge has been non-existent. I spent a few months trying to read up on programming in C, but when I heard about the rebble hackathon I knew I had to make something for it. In the space of two weeks in November, I learned how to make a watchface from scratch in C and during the two days of the hackathon produced my first watchface: Time Twist Pop! I’m very proud of it, and have been wearing it everyday since. There’s still some stuff to finish off with the project next year, but that’ll come soon.</p></div> </div></p> <h2 id="the-goal-for-2023">The Goal for 2023</h2><p>Once again, I&rsquo;m keeping my goals for the coming year pretty open-ended. I plan to keep up <a href="https://d00k.net/about/music/bandcamp_buyin_22" target="_blank" rel="noopener">bandcamp buying</a> this year, as well producing some more pebble watchfaces during hackathons. I have some projects from 2022 that need finishing, as well as preparing a portfolio to college but once I finish all that it&rsquo;ll be onto new things. My main goal for 2023 is art, I intend to go back to the basics and relearn everything with my sights set on getting comfortable drawing as well creating a style for myself that I enjoy. I have no clue how this will go, as my health will really put the brakes on this if I can&rsquo;t draw, but nonetheless I&rsquo;m excited. I also hope to do some stuff with self hosting and hosting my own gemini server soon! So keep an eye out here!</p> <h2 id="conclusion">Conclusion</h2><p>This post has really gone on long enough, to wrap up: it&rsquo;s been a year with plenty of highs and lows but I feel incredibly accomplished and proud of how I spent the year. Here&rsquo;s to another year, see you soon!</p> <p>-Dook.</p> <div class="listbox box"> <h2 style="padding:12px 5%;">Table of Contents</h2> <details><summary>Menu</summary> <hr> <ul> <li><a href="#changes" >• Changes</a></li> <li><a href="#favourite-things" >• Favourite Things</a></li> <li><a href="#projects" >• Projects</a></li> <li><a href="#the-goal-for-2023" >• The Goal for 2023</a></li> <li><a href="#conclusion" >• Conclusion</a></li> </ul> </details></div> <p>This year I kept my goals fairly open ended, I had a feeling it wasn’t going to be the most straightforward year and it proved to be the correct assumption. One of my main goals was to get my health back in shape, which was thrown an entire curveball when my kidneys spent over half the year in a state of failure. I’m on the mend now though thankfully. The second biggest goal was to rebuild my website from scratch, it took several months as well as redesigning the CSS twice, but I’m quite proud of the final result and especially with how incredibly lightweight I managed to make it. Without a doubt it’s my biggest success this year. The last goal was to learn how to properly program, as well to produce some watchfaces for the Pebble watch. It took until the Rebble Hackathon in November to actually achieve both of these, but I had a lot of fun programming and I hope to keep it up.</p> <p>Overall I had a lot of time this year, much more than even in 2021, but I feel I really put as much of it as I could to use and created some great things.</p> <h2 id="changes">Changes</h2><div class="listbox box"><div><h2>Hardware</h2></div><hr><ul> <li>⚬ Sold my Motorola and got a Pixel 3a so I could use LineageOS.</li> <li>⚬ Bought a Kobo Libra 2 ereader.</li> <li>⚬ Got an old iPod Classic Gen 5.</li> <li>⚬ Bought a cheap Pebble Time Steel which has become my daily driver watch.</li> <li>⚬ Got a Mechanical Keyboard.</li> </ul></div> <div class="listbox box"><div><h2>Software</h2></div><hr><ul> <li>⚬ Switched to LineageOS on my phone.</li> <li>⚬ Started using Cmus in the terminal for my offline music.</li> <li>⚬ Learned how to use SSH and SFTP.</li> <li>⚬ Sorta learned how to use IRC.</li> <li>⚬ Installed KOReader on my Kobo.</li> <li>⚬ Learned how to make Bash Scripts.</li> </ul></div> <div class="text borderless box"> <div> <h2 id="online">Online</h2><p><strong>∘ Switched Mastodon Instance</strong> - Moved over to post.lurk.org in August this year, and I’m so glad I did. I had been on a very beginner instance previously, and quite frankly it was nowhere near as fun as lurk is to me now. It took a few months to really feel settled in, but I’m very happy with how everything is going.- Website - Aside from just remaking it, I started to use my website a heck of a lot more, and it really helped drive me forward in my goals this year as well motivating me to create more. I wrote a couple of blog posts and shared one on HN which got some nice discussion about the pros and cons of music streaming platforms.</p> <p><strong>∘ De-Platforming</strong> - I also moved away from using some platforms this year, for example reddit and snapchat which I only used to keep track of news or in snapchat&rsquo;s case people I didn’t really know anymore. I also sorted my instagram to be exclusively people I’m friends with or wish to keep in contact with. Discord has also become much the same, only using it every so often to chat with friends.</p> </div> </div> <h2 id="favourite-things">Favourite Things</h2><p>In terms of content this year I had a rather large shift compared to last year. I didn’t engage too much in surfing websites, or at least as much as I had in previous years. On the other hand, my music listening felt far more focused and I’ve managed to detail some of my top albums I listened to this year. I also read an absolutely ginormous amount of manga, on top of the monthly and weekly serials I read, I managed to finish 55 different Manga. I got into some series I had always wanted to read but could never find the time, and I really experienced some brilliant stories (as well as some bad ones) through it.</p> <div class="text borderless box"> <div> <h3 id="music">Music</h3><p><strong>∘ Favourite Artist - Snail Mail</strong> - Hoo boy. I’ve been a fan of Lindsey Jordan’s music for a good few years now, her ability to write a great single is incredibly, but this year I found myself listening to her album’s Lush and Valentine a LOT. Valentine deserves serious praise for both Lindsey’s singing and songwriting skills, the album opens on a powerful note and finishes on with an emotional serenade, the songs inbetween creating a seamless transitions between both tones. There was a point this year that I played Valentine at least once a day! Absolutely cannot wait for her to go on tour again and see Snail Mail play live.</p> <p><strong>∘ Favourite Album - How It Ends by TOLEDO</strong> - Released at the end of September, TOLEDO’s first album How It Ends takes a departure from their previous EPs and single’s tones. The biographical nature of this album takes a hold from the start, Soda Can creating an incredibly visual and narrative experience that continues throughout the rest of the 40 minute album. It has a very unique feeling to it all, one that I find a little hard to describe, but I think it can be best described as a very personal album, for both Dan and Jordan, their history and relationship that blends extremely well with their existing sound.</p> </div> </div> <div class="text borderless box"> <div> <h3 id="manga">Manga</h3><p><strong>∘ Top Manga - Nausicaä of the Valley of the Wind</strong> - I slept on this for far, far too long. For the longest time I thought the manga was nothing more than a predecessor to film. Had I known my timelines, I’d have know that the manga continued for over a decade after the film’s release. This is reflected in the manga’s story, the contents of the film are an abstraction of various plot points that occur in the manga’s first book. The remaining four books craft a tale that is quite frankly unmatched in manga. It develops both Nausicaa and the world to a point far beyond the scope of the film, and builds an exceptional hero out of her. I rarely say this, but it is truly a must read. This manga is so good it took one of my favourite ghibli movies and made it even better. 10/10</p> <p><strong>∘ Top Serial - Blue Period</strong> - Once again Blue Period had an exceptional year of chapters. Finishing off the second year arc, Yamaguchi Tsubasa produced some excellent progression of both the story as well as characters. Almost every chapter this year had me feeling that it was ten times better than the last one, which is an impressive feat to still be pulling off this far into it’s serial. We see Yatora progress a lot as character as well, and it’s honestly quite incredible how close to reality Blue Period’s depiction of college is. College isn’t a common setting in manga, however this manga’s dedication to using it as the story’s driving force is commendable as well. Worth keeping an eye on next year for sure.</p> </div> </div> <h2 id="projects">Projects</h2><p>I spent a lot of time this year on things I didn’t expect to work on, but they were definitely time well spent on. My pursuit of a better UX on my iPod drove me down a rabbit hole of theming and customising iPods, which has since branched out into a lot of different projects taking up my time. Most of these projects however have proved quite useful for my college entry portfolio.</p> <p><div class="text borderless box"> <div><h3 id="website-optimisations">Website Optimisations</h3><p>My main goal when rebuilding my website from scratch this year was to make a website that had great design, but was also fast. This led to what I can only describe as an obsession with compression and filesize savings. I went as far as manually editing my font files to remove unneeded glyphs and even removing all spaces in my CSS file. But it was well worth it, the homepage now comes in at just under 48kb! I wrote up a blog post detailing all the techniques I learned which you can find here.</p></div> </div> <div class="text borderless box"> <div><h3 id="ipod-projects">iPod Projects</h3><p>I got into iPods early in the year as part of my move towards owning my music collection. However the UX in both the stock OS and RockboxOS felt clunky and quite hard to read at times, and none of the existing themes met my standards so I set out to make my own theme adwaitapod. Unfortunately the Rockbox theming language is pretty user unfriendly especially to beginners, and with only basic documentation to go on it took months to just get familiar with how things worked. This led me to start writing a book for new users to learn how to make a theme from scratch with no prior knowledge, in doing so I also decided to start making syntax-highlighting for the language from scratch. I hope to finish this project early next year.</p></div> </div> <div class="text borderless box"> <div><h3 id="pebble-watchface">Pebble Watchface</h3><p>I’ve wanted to make a watchface for the pebble for a while, however my programming knowledge has been non-existent. I spent a few months trying to read up on programming in C, but when I heard about the rebble hackathon I knew I had to make something for it. In the space of two weeks in November, I learned how to make a watchface from scratch in C and during the two days of the hackathon produced my first watchface: Time Twist Pop! I’m very proud of it, and have been wearing it everyday since. There’s still some stuff to finish off with the project next year, but that’ll come soon.</p></div> </div></p> <h2 id="the-goal-for-2023">The Goal for 2023</h2><p>Once again, I&rsquo;m keeping my goals for the coming year pretty open-ended. I plan to keep up <a href="https://d00k.net/about/music/bandcamp_buyin_22" target="_blank" rel="noopener">bandcamp buying</a> this year, as well producing some more pebble watchfaces during hackathons. I have some projects from 2022 that need finishing, as well as preparing a portfolio to college but once I finish all that it&rsquo;ll be onto new things. My main goal for 2023 is art, I intend to go back to the basics and relearn everything with my sights set on getting comfortable drawing as well creating a style for myself that I enjoy. I have no clue how this will go, as my health will really put the brakes on this if I can&rsquo;t draw, but nonetheless I&rsquo;m excited. I also hope to do some stuff with self hosting and hosting my own gemini server soon! So keep an eye out here!</p> <h2 id="conclusion">Conclusion</h2><p>This post has really gone on long enough, to wrap up: it&rsquo;s been a year with plenty of highs and lows but I feel incredibly accomplished and proud of how I spent the year. Here&rsquo;s to another year, see you soon!</p> <p>-Dook.</p> Leaving Spotify for Freer Pastures https://d00k.net/blog/leaving-spotify/ https://d00k.net/blog/leaving-spotify/ Dook Wed, 30 Nov 2022 17:10:26 EST <p>Over the past year, I&rsquo;ve slowly worked on moving my listening activities away from Spotify and towards a setup where I have much more control over how I listen. As people will be checking out their Spotify Unwrapped, I thought it&rsquo;d be a great time to talk about my thoughts on the platform and why I&rsquo;m moving away from it.</p> <h2 id="why-leave">Why leave?</h2><p>Don&rsquo;t get me wrong, Spotify is pretty great. Being able to listen to just about whatever I want, whenever I want and in decent quality is a great privilege. In recent years, there&rsquo;s been less and less songs that aren&rsquo;t available on the platform. And at face value, the price you pay is certainly worth the massive library of music available at your fingers. I quite frankly <em>wouldn&rsquo;t</em> have a music taste if it wasn&rsquo;t for Spotify, being able to listen to recommended playlists and such have introduced me to artists and bands that I never would&rsquo;ve come across without it. However as time moves on, the way I listen to music has changed considerably to something that is less compatible with Spotify&rsquo;s formula.</p> <p>Generally, Spotify&rsquo;s main focuses are user playlists and recommendations. You make a playlist, you listen to it, Spotify plays you some recommended songs which you add to your playlist, eventually moving onto another playlist and the cycle repeats. If you don&rsquo;t pay for premium this is even worse, in playlists it&rsquo;ll just throw songs in and you have no control. This persists even for playlists you didn&rsquo;t make. For most people, this is probably fine, I imagine the majority of people using Spotify aren&rsquo;t diehard music-heads, but simply those looking for a bit of control over the background noise in their lives. But for me, this makes dropping to the free-tier of Spotify an impossibility.</p> <p>To top it all off, as I mentioned, the way I listen to music has changed in recent years. I find I greatly prefer albums over everything else. The cohesive linearity of a good album is a much better experience than a jumbled mess of songs that happen to give me dopamine at a specific time. And this singular preference feels in juxtaposition to Spotify&rsquo;s focus on playlists and recommendations. Just recently, Adele had to convince them to change the play button in albums from shuffling, since the button was clearly built around playlists. At the same time, Spotify still has not added lossless audio to the platform. They&rsquo;re the last major music streaming platform to not have it, and while rumours have bounced around for years about it&rsquo;s impending arrival, there&rsquo;s still no sign of it to come. As a music streaming platform, it clearly is targetted towards more casual listeners (of both music and podcasts) and simply isn&rsquo;t as suited to me anymore.</p> <h2 id="where-to">Where to?</h2><p>I think a lot of people would probably look at my distaste of Spotify and recommend another, more suitable, streaming platform like Apple music or Pandora. However, I thought to truly have control over how I listen, I should start buying and collecting my music. I already spend a set amount of money each year on a Spotify Premium subscription, but I realised with the same amount I could buy an album every month and actually own it.</p> <p>This lead to me starting my <a href="https://d00k.net/about/music/bandcamp_buyin_22/">bandcamp buyin&rsquo;</a> page, every month buying an album from Bandcamp with a few rules. The main rule is I wouldn&rsquo;t more than one album from an artist in a year, I also made sure to buy during a Bandcamp Friday if there was one on. At the end of the year, I plan to write a short review on each of them. I bought a few CDs as well whenever I spotted good sales or older music for cheap in charity shops. Overall, I went from owning just a couple of CDs, to having around 20 albums in both digital and physical formats. I couldn&rsquo;t be happier, and surprisingly Bandcamp has also introduced me to a lot of music I hadn&rsquo;t ever found on Spotify. Some of these, like <a href="https://thebandtoledo.bandcamp.com/music" target="_blank" rel="noopener">TOLEDO</a> have quickly become favourites of mine! I think this really shows that Bandcamp can easily be enjoyable and fresh for those that like finding new music.</p> <h2 id="how-it-has-changed-how-i-listen">How it has changed how I listen</h2><p>At first, I didn&rsquo;t expect thigs to change too much, I&rsquo;ve still kept my Spotify subscription this year, and put in around 30,000 minutes of listening on the platform. But as my collection grew, I found myself listening more and more offline with my music. This has been especially useful during times without power throughout the year, we had about 7 or 8 maintenance days this year and I was able to keep my 4 year old Lenovo going for around 6 hours of work using Cmus for music. I tried several graphical music players, but the simplicity of Cmus really beat the rest for me.</p> <p>One other big change was purchasing an iPod classic 5th gen in April. Having portable music on a separate device is really appealing to me, simply for giving my smartphone one less job. But having a build in DAC, as well as great support for modding and customising, was a top selling point. I&rsquo;ve since loaded it up with <a href="https://www.rockbox.org/" target="_blank" rel="noopener">Rockbox</a>, mostly so I can use custom themes and Flac formats. Not being too pleased with most of the themes available, I set out to make my own inspired by the Gnome desktop&rsquo;s adwaitapod design language. The end result, <a href="https://d00k.net/projects/adwaitapod/" target="_blank" rel="noopener">adwaitapod</a> is jam packed with features, and gives me everything I could want from a music player UI. I also have a bunch of physical mods ready to add to it soon, like flash storage, a larger battery as well as a Taptic engine from an iPhone to replace the click speaker.</p> <figure><img src="https://d00k.net/img/journal/ipod01.jpg" loading="lazy" alt="A white ipod classic, running rockbox. Playing music." width="100%" height="100%"> <figcaption>iPod running Rockbox and adwaitapod</figcaption></figure> <h2 id="whats-next">What&rsquo;s next?</h2><p>Going forward, I want to continue on this path for sure. Next year I&rsquo;ll be doing bandcamp buyin&rsquo; again, and continuing to collect my favourite music off Spotify. For music I can&rsquo;t buy off the platform, there&rsquo;s plenty of methods usable to collect this that I won&rsquo;t go into here, but a quick search online should give you answers. And hopefully by this time next year I&rsquo;ll be in a position where I&rsquo;m happy enough to cancel my Spotify Premium and hop off the platform for once and for all.</p> <div class="listbox box"><div><h2>Further Reading</h2></div><hr><ul> <li><a href="about/music/bandcamp_buyin_22/" >• Bandcamp Buyin</a></li> <li><a href="https://d00k.net/design/adwaitapod/" >• adwaitapod iPod Theme</a></li> </ul></div> <p>Over the past year, I&rsquo;ve slowly worked on moving my listening activities away from Spotify and towards a setup where I have much more control over how I listen. As people will be checking out their Spotify Unwrapped, I thought it&rsquo;d be a great time to talk about my thoughts on the platform and why I&rsquo;m moving away from it.</p> <h2 id="why-leave">Why leave?</h2><p>Don&rsquo;t get me wrong, Spotify is pretty great. Being able to listen to just about whatever I want, whenever I want and in decent quality is a great privilege. In recent years, there&rsquo;s been less and less songs that aren&rsquo;t available on the platform. And at face value, the price you pay is certainly worth the massive library of music available at your fingers. I quite frankly <em>wouldn&rsquo;t</em> have a music taste if it wasn&rsquo;t for Spotify, being able to listen to recommended playlists and such have introduced me to artists and bands that I never would&rsquo;ve come across without it. However as time moves on, the way I listen to music has changed considerably to something that is less compatible with Spotify&rsquo;s formula.</p> <p>Generally, Spotify&rsquo;s main focuses are user playlists and recommendations. You make a playlist, you listen to it, Spotify plays you some recommended songs which you add to your playlist, eventually moving onto another playlist and the cycle repeats. If you don&rsquo;t pay for premium this is even worse, in playlists it&rsquo;ll just throw songs in and you have no control. This persists even for playlists you didn&rsquo;t make. For most people, this is probably fine, I imagine the majority of people using Spotify aren&rsquo;t diehard music-heads, but simply those looking for a bit of control over the background noise in their lives. But for me, this makes dropping to the free-tier of Spotify an impossibility.</p> <p>To top it all off, as I mentioned, the way I listen to music has changed in recent years. I find I greatly prefer albums over everything else. The cohesive linearity of a good album is a much better experience than a jumbled mess of songs that happen to give me dopamine at a specific time. And this singular preference feels in juxtaposition to Spotify&rsquo;s focus on playlists and recommendations. Just recently, Adele had to convince them to change the play button in albums from shuffling, since the button was clearly built around playlists. At the same time, Spotify still has not added lossless audio to the platform. They&rsquo;re the last major music streaming platform to not have it, and while rumours have bounced around for years about it&rsquo;s impending arrival, there&rsquo;s still no sign of it to come. As a music streaming platform, it clearly is targetted towards more casual listeners (of both music and podcasts) and simply isn&rsquo;t as suited to me anymore.</p> <h2 id="where-to">Where to?</h2><p>I think a lot of people would probably look at my distaste of Spotify and recommend another, more suitable, streaming platform like Apple music or Pandora. However, I thought to truly have control over how I listen, I should start buying and collecting my music. I already spend a set amount of money each year on a Spotify Premium subscription, but I realised with the same amount I could buy an album every month and actually own it.</p> <p>This lead to me starting my <a href="https://d00k.net/about/music/bandcamp_buyin_22/">bandcamp buyin&rsquo;</a> page, every month buying an album from Bandcamp with a few rules. The main rule is I wouldn&rsquo;t more than one album from an artist in a year, I also made sure to buy during a Bandcamp Friday if there was one on. At the end of the year, I plan to write a short review on each of them. I bought a few CDs as well whenever I spotted good sales or older music for cheap in charity shops. Overall, I went from owning just a couple of CDs, to having around 20 albums in both digital and physical formats. I couldn&rsquo;t be happier, and surprisingly Bandcamp has also introduced me to a lot of music I hadn&rsquo;t ever found on Spotify. Some of these, like <a href="https://thebandtoledo.bandcamp.com/music" target="_blank" rel="noopener">TOLEDO</a> have quickly become favourites of mine! I think this really shows that Bandcamp can easily be enjoyable and fresh for those that like finding new music.</p> <h2 id="how-it-has-changed-how-i-listen">How it has changed how I listen</h2><p>At first, I didn&rsquo;t expect thigs to change too much, I&rsquo;ve still kept my Spotify subscription this year, and put in around 30,000 minutes of listening on the platform. But as my collection grew, I found myself listening more and more offline with my music. This has been especially useful during times without power throughout the year, we had about 7 or 8 maintenance days this year and I was able to keep my 4 year old Lenovo going for around 6 hours of work using Cmus for music. I tried several graphical music players, but the simplicity of Cmus really beat the rest for me.</p> <p>One other big change was purchasing an iPod classic 5th gen in April. Having portable music on a separate device is really appealing to me, simply for giving my smartphone one less job. But having a build in DAC, as well as great support for modding and customising, was a top selling point. I&rsquo;ve since loaded it up with <a href="https://www.rockbox.org/" target="_blank" rel="noopener">Rockbox</a>, mostly so I can use custom themes and Flac formats. Not being too pleased with most of the themes available, I set out to make my own inspired by the Gnome desktop&rsquo;s adwaitapod design language. The end result, <a href="https://d00k.net/projects/adwaitapod/" target="_blank" rel="noopener">adwaitapod</a> is jam packed with features, and gives me everything I could want from a music player UI. I also have a bunch of physical mods ready to add to it soon, like flash storage, a larger battery as well as a Taptic engine from an iPhone to replace the click speaker.</p> <figure><img src="https://d00k.net/img/journal/ipod01.jpg" loading="lazy" alt="A white ipod classic, running rockbox. Playing music." width="100%" height="100%"> <figcaption>iPod running Rockbox and adwaitapod</figcaption></figure> <h2 id="whats-next">What&rsquo;s next?</h2><p>Going forward, I want to continue on this path for sure. Next year I&rsquo;ll be doing bandcamp buyin&rsquo; again, and continuing to collect my favourite music off Spotify. For music I can&rsquo;t buy off the platform, there&rsquo;s plenty of methods usable to collect this that I won&rsquo;t go into here, but a quick search online should give you answers. And hopefully by this time next year I&rsquo;ll be in a position where I&rsquo;m happy enough to cancel my Spotify Premium and hop off the platform for once and for all.</p> <div class="listbox box"><div><h2>Further Reading</h2></div><hr><ul> <li><a href="about/music/bandcamp_buyin_22/" >• Bandcamp Buyin</a></li> <li><a href="https://d00k.net/design/adwaitapod/" >• adwaitapod iPod Theme</a></li> </ul></div> November Update https://d00k.net/about/journal/2022-11-25/ https://d00k.net/about/journal/2022-11-25/ Dook Fri, 25 Nov 2022 20:05:31 EST <p>What a wild month! I started the month updating a finishing off my <a href="https://d00k.net/projects/adwaitapod/" target="_blank" rel="noopener">adwaitapod</a> theme for rockbox. I also spent the past 3 weeks learning to program in C, building up to the Rebble Hackathon last weekend where I put together my watchface design, <a href="https://d00k.net/projects/pebble/timetwistpop/" target="_blank" rel="noopener">Time Twist Pop</a> and released it! It was incredibly frustrating at times, since I really have very little experience programming. However, by the end of the weekend I was getting into the zone and pumping out some really good stuff and was having a blast! Really looking forward to making more with C in the future!</p> <p>What a wild month! I started the month updating a finishing off my <a href="https://d00k.net/projects/adwaitapod/" target="_blank" rel="noopener">adwaitapod</a> theme for rockbox. I also spent the past 3 weeks learning to program in C, building up to the Rebble Hackathon last weekend where I put together my watchface design, <a href="https://d00k.net/projects/pebble/timetwistpop/" target="_blank" rel="noopener">Time Twist Pop</a> and released it! It was incredibly frustrating at times, since I really have very little experience programming. However, by the end of the weekend I was getting into the zone and pumping out some really good stuff and was having a blast! Really looking forward to making more with C in the future!</p> Autumn Update https://d00k.net/about/journal/2022-10-9/ https://d00k.net/about/journal/2022-10-9/ Dook Sun, 09 Oct 2022 13:27:32 EST <p>It&rsquo;s a crazy couple of months for me, but I finally found some time to tend to the website. First thing I did was get to finalising it&rsquo;s design, the way it had been before was overly garish and pretty difficult to look at on some pages, the new style is far better in this regard. I also took the time to go absolutely overboard on optimising every possible thing I could, making each pretty tiny for what it is, I made a writeup on everything I did <a href="https://d00k.net/journal/web-optimisations/" target="_blank" rel="noopener">here</a>.</p> <p>I also managed to find a new home on mastodon during this time at Lurk! It&rsquo;s a great community. A few new projects have been started as well; an accessible version of my ipod them after some user feedback, as well as a book for other people looking into making their own themes. Currently everything I&rsquo;m doing is building up for my portfolio to switch colleges with next year, so I&rsquo;m gonna be busy for the the next few months!</p> <p>It&rsquo;s a crazy couple of months for me, but I finally found some time to tend to the website. First thing I did was get to finalising it&rsquo;s design, the way it had been before was overly garish and pretty difficult to look at on some pages, the new style is far better in this regard. I also took the time to go absolutely overboard on optimising every possible thing I could, making each pretty tiny for what it is, I made a writeup on everything I did <a href="https://d00k.net/journal/web-optimisations/" target="_blank" rel="noopener">here</a>.</p> <p>I also managed to find a new home on mastodon during this time at Lurk! It&rsquo;s a great community. A few new projects have been started as well; an accessible version of my ipod them after some user feedback, as well as a book for other people looking into making their own themes. Currently everything I&rsquo;m doing is building up for my portfolio to switch colleges with next year, so I&rsquo;m gonna be busy for the the next few months!</p> Extreme Web Optimizations, without Compromising Style https://d00k.net/blog/web-optimisations/ https://d00k.net/blog/web-optimisations/ Dook Wed, 05 Oct 2022 15:50:41 EST <p>Over the past 10 months, I&rsquo;ve worked on and off tweaking my site to get it closer to how I want it to look and perform. The main goal was simple: make a site that looks good, and loads fast. A quick solution would&rsquo;ve been to keep the css to a minimum, use browser defaults for fonts etc. However that would&rsquo;ve made my vision of a styled site difficult if not impossible. This pushed me to seek gains elsewhere as much as I could.</p> <hr> <h2 id="limitations">Limitations</h2><p>One of the major limitations I set was to not use media queries for layouts. While there&rsquo;s nothing wrong in particular with using them, I felt that flexboxes and calculated variables did a much better job in far less lines of css. This does make the site header look a little unusual on mobile devices, however it&rsquo;s grown on me much more than I thought it would to the point that it doesn&rsquo;t bother me. Another big limitation was not using Javascript, however due to the simplicity of my site, it wasn&rsquo;t going to be a problem.</p> <h2 id="fonts">Fonts</h2><p>In other projects this year, I&rsquo;ve messed around with combining and editing fonts in FontForge and when it came to look at the fonts for the site, I returned to it once more. Tools like Fontsquirrel&rsquo;s <a href="https://www.fontsquirrel.com/tools/webfont-generator" target="_blank" rel="noopener">webfont generator</a> are great for optimising fonts quickly, but I had a feeling I could make the filesizes even smaller.</p> <p>The reason I originally thought of using FontForge here was because of issues with default fonts on other systems. In my site logo, I have two unicode &lsquo;whiskers&rsquo; on either side, however one of the only fonts that even has this character is Symbola. On Firefox Desktop, Symbola is a default font and is automatically used to display characters that aren&rsquo;t in the supplied font. However, on other browsers I found this wasn&rsquo;t the case and my characters would show blank boxes. The temporary solution was just throwing Symbola in with the rest, but at a whopping 2.2mb? It wasn&rsquo;t gonna be permanent. So I went and copied what I did when I made single file Latin+CJK fonts for Rockbox, and transplanted the characters into Lunchtype22 for the title. I did a full writeup on how to do this, which you can find <a href="https://d00k.net/knowledge/font_modifying/">here</a></p> <p>When it came to thinning down the character selection of the fonts, FontForge made it pretty easy to pick and choose what stayed and what went. I kept a very minimal range of basic Latin characters, symbols and numbers. In the future I have the option to add some of these back on if they&rsquo;re needed. Tweaking the export settings saved some extra space as well. All in all, these optimisations helped reduce the combined font&rsquo;s filesizes from several MBs to just under 38KBs.</p> <h2 id="optimising-svgs">Optimising SVGs</h2><p>SVGs are always some of the smallest resources you can use, but there&rsquo;s also plenty of room to make optimisations with them. For making simple icons, like my RSS icons, I found <a href="https://wiki.xxiivv.com/site/dotgrid.html" target="_blank" rel="noopener">dotgrid</a> from hundred rabbits to be a fantastic editor that exports good svgs to work with. You&rsquo;ll still want to tweak and edit the file to fit your usecase, but overall the easiest to use for icons. For other svg images, I use Inkscape. But I was only able to get usable files if I exported using their Optimised Svg output, with most options turned on. On top of all these, removing xml declarations, version attributes and other stuff not needed or read by browsers helps to trim even just a kilobyte or two off your files, which adds up.</p> <h2 id="images">Images</h2><p>Easily the largest part of any webpage, images became a tricky problem early on. One of the main parts of my site is the <a href="https://d00k.net/gallery/">Gallery</a> section holding all my photography, and having up to 10 images per page would take forever to load. The first step I took was to match the resolution of the images to their displayed max-width, 720px. I also made a separate folder for section lists images which display at 400px wide, saving loading times for those pages. After doing some searching, I found <a href="https://kokorobot.ca/site/leanimages.html" target="_blank" rel="noopener">Rekka Bellums&rsquo;s guide</a> for optimising images. I took their ImageMagick script and changed it a little to suit my needs, getting rid of colorspace setting and reducing the quality to 80% in order to keep file sizes low. I&rsquo;ve yet to create a good workflow for optimising gifs, using some web tools in the meantime as I don&rsquo;t tend to work with gifs much at all.</p> <h2 id="css-compression">CSS Compression</h2><p>One of the last optimisations I made was to compress the css. It was really only worth doing after I finalised everything, as it makes reading the raw css file pretty difficult (though I do have to scroll less now which is nice). I reduced all functions to a single line, as well as removing any space that wasn&rsquo;t strictly necessary. This saved me over a KB. A lot of functions like borders, margins, text-decorations etc. also have shorthand ways of writing them which reduces overall bloat. I wouldn&rsquo;t recommend the compression step for most use cases, but for simple static sites that wont be used by many, it&rsquo;s such a simple and quick way to save a few KBs.</p> <h2 id="conclusion">Conclusion</h2><p>In the end, I managed to keep even the largest page under 800KBs. For comparison, the most minimal page is the homepage, coming in at just 48KBs. It was probably all in all more work than it was worth, but I&rsquo;m glad with the results. Thankfully wont be having any more urges to tweak and optimise the site when I know there&rsquo;s very little left on the table to save.</p> <p>Over the past 10 months, I&rsquo;ve worked on and off tweaking my site to get it closer to how I want it to look and perform. The main goal was simple: make a site that looks good, and loads fast. A quick solution would&rsquo;ve been to keep the css to a minimum, use browser defaults for fonts etc. However that would&rsquo;ve made my vision of a styled site difficult if not impossible. This pushed me to seek gains elsewhere as much as I could.</p> <hr> <h2 id="limitations">Limitations</h2><p>One of the major limitations I set was to not use media queries for layouts. While there&rsquo;s nothing wrong in particular with using them, I felt that flexboxes and calculated variables did a much better job in far less lines of css. This does make the site header look a little unusual on mobile devices, however it&rsquo;s grown on me much more than I thought it would to the point that it doesn&rsquo;t bother me. Another big limitation was not using Javascript, however due to the simplicity of my site, it wasn&rsquo;t going to be a problem.</p> <h2 id="fonts">Fonts</h2><p>In other projects this year, I&rsquo;ve messed around with combining and editing fonts in FontForge and when it came to look at the fonts for the site, I returned to it once more. Tools like Fontsquirrel&rsquo;s <a href="https://www.fontsquirrel.com/tools/webfont-generator" target="_blank" rel="noopener">webfont generator</a> are great for optimising fonts quickly, but I had a feeling I could make the filesizes even smaller.</p> <p>The reason I originally thought of using FontForge here was because of issues with default fonts on other systems. In my site logo, I have two unicode &lsquo;whiskers&rsquo; on either side, however one of the only fonts that even has this character is Symbola. On Firefox Desktop, Symbola is a default font and is automatically used to display characters that aren&rsquo;t in the supplied font. However, on other browsers I found this wasn&rsquo;t the case and my characters would show blank boxes. The temporary solution was just throwing Symbola in with the rest, but at a whopping 2.2mb? It wasn&rsquo;t gonna be permanent. So I went and copied what I did when I made single file Latin+CJK fonts for Rockbox, and transplanted the characters into Lunchtype22 for the title. I did a full writeup on how to do this, which you can find <a href="https://d00k.net/knowledge/font_modifying/">here</a></p> <p>When it came to thinning down the character selection of the fonts, FontForge made it pretty easy to pick and choose what stayed and what went. I kept a very minimal range of basic Latin characters, symbols and numbers. In the future I have the option to add some of these back on if they&rsquo;re needed. Tweaking the export settings saved some extra space as well. All in all, these optimisations helped reduce the combined font&rsquo;s filesizes from several MBs to just under 38KBs.</p> <h2 id="optimising-svgs">Optimising SVGs</h2><p>SVGs are always some of the smallest resources you can use, but there&rsquo;s also plenty of room to make optimisations with them. For making simple icons, like my RSS icons, I found <a href="https://wiki.xxiivv.com/site/dotgrid.html" target="_blank" rel="noopener">dotgrid</a> from hundred rabbits to be a fantastic editor that exports good svgs to work with. You&rsquo;ll still want to tweak and edit the file to fit your usecase, but overall the easiest to use for icons. For other svg images, I use Inkscape. But I was only able to get usable files if I exported using their Optimised Svg output, with most options turned on. On top of all these, removing xml declarations, version attributes and other stuff not needed or read by browsers helps to trim even just a kilobyte or two off your files, which adds up.</p> <h2 id="images">Images</h2><p>Easily the largest part of any webpage, images became a tricky problem early on. One of the main parts of my site is the <a href="https://d00k.net/gallery/">Gallery</a> section holding all my photography, and having up to 10 images per page would take forever to load. The first step I took was to match the resolution of the images to their displayed max-width, 720px. I also made a separate folder for section lists images which display at 400px wide, saving loading times for those pages. After doing some searching, I found <a href="https://kokorobot.ca/site/leanimages.html" target="_blank" rel="noopener">Rekka Bellums&rsquo;s guide</a> for optimising images. I took their ImageMagick script and changed it a little to suit my needs, getting rid of colorspace setting and reducing the quality to 80% in order to keep file sizes low. I&rsquo;ve yet to create a good workflow for optimising gifs, using some web tools in the meantime as I don&rsquo;t tend to work with gifs much at all.</p> <h2 id="css-compression">CSS Compression</h2><p>One of the last optimisations I made was to compress the css. It was really only worth doing after I finalised everything, as it makes reading the raw css file pretty difficult (though I do have to scroll less now which is nice). I reduced all functions to a single line, as well as removing any space that wasn&rsquo;t strictly necessary. This saved me over a KB. A lot of functions like borders, margins, text-decorations etc. also have shorthand ways of writing them which reduces overall bloat. I wouldn&rsquo;t recommend the compression step for most use cases, but for simple static sites that wont be used by many, it&rsquo;s such a simple and quick way to save a few KBs.</p> <h2 id="conclusion">Conclusion</h2><p>In the end, I managed to keep even the largest page under 800KBs. For comparison, the most minimal page is the homepage, coming in at just 48KBs. It was probably all in all more work than it was worth, but I&rsquo;m glad with the results. Thankfully wont be having any more urges to tweak and optimise the site when I know there&rsquo;s very little left on the table to save.</p> Year Review 2021 https://d00k.net/blog/year-review-2021/ https://d00k.net/blog/year-review-2021/ Dook Fri, 18 Feb 2022 10:52:41 EST <p>At a glance, this year has been a bit of a writeoff for me. I was diagnosed with Crohn&rsquo;s earlier in the year and I&rsquo;ve spent most of the rest recovering, going so far to drop out of college on medical leave. My high risk to covid has left me isolating in my home for a large amount of time as well. Both have hampered my ability to do much physical things, but allowed me to read and research more than I could before.</p> <hr> <h2 id="changes">Changes</h2><div class="listbox box"><div><h2>Hardware</h2></div><hr><ul> <li>⚬ Added a shelf to my desk to allow me to use my computer standing.</li> <li>⚬ Bought a Pebble Time watch.</li> <li>⚬ Repaired my Ds Lite and replaced it&rsquo;s shell with a snazzy Lime one.</li> <li>⚬ Swapped my Thinkpad&rsquo;s old Hard-drive for a new SSD.</li> </ul></div> <div class="listbox box"><div><h2>Software</h2></div><hr><ul> <li>⚬ Ditched Windows for Fedora Linux. Best choice of the year right here.</li> <li>⚬ Went full Free Open Source Software on my phone.</li> <li>⚬ Began using RSS feeds to compile my favourite sites and blogs in one place.</li> <li>⚬ Started my blog!.</li> <li>⚬ Joined Mastodon.</li> </ul></div> <hr> <h2 id="favourite-things">Favourite things</h2><div class="text borderless box"> <div><h3 id="music">Music</h3><p><strong>∘ Favourite Artist - Mkgee</strong> - Most listened artist of the year for me, fantastic producer though his bandcamp is missing his latest album sadly.</p></div> </div> <div class="text borderless box"> <div> <h3 id="podcasts">Podcasts</h3><p><a href="https://fallofcivilizationspodcast.com/" target="_blank" rel="noopener">⬩ Fall of Civilisations podcast</a> - Fantastically engaging podcast that paints the fall of many civilisations in a concise, historical narrative.</p> <p><a href="https://podcast.panic.com/" target="_blank" rel="noopener">⬩ Panic Podcast</a> - A podcast about the portland software company, Panic. Incredibly fun and enjoyable listen!</p> </div> </div> <div class="text borderless box"> <div> <h3 id="websites">Websites</h3><p><a href="https://100r.co/site/home.html" target="_blank" rel="noopener">⬩ Hundred Rabbits</a> - A site covering Rek and Devine&rsquo;s artist collective. I&rsquo;ve spent so many hours reading on this site, with so many adventures, knowledge and projects to read about, it really is a treasure trove.</p> <p><a href="https://ritualdust.com/" target="_blank" rel="noopener">⬩ Ritual dust</a> - the personal site of Lizbeth Poirier, there&rsquo;s a wide range of content to be found on it. From beautiful art, to recipes and the fabulously depthful folklore section that is an absolute joy to read, especially with the site&rsquo;s fantastic design.</p> </div> </div> <div class="text borderless box"> <div> <h3 id="youtube">Youtube</h3><p><a href="https://www.youtube.com/c/DisruptReality" target="_blank" rel="noopener">⬩ Disrupt</a> - Disrupt&rsquo;s tv-imitation aids greatly to it&rsquo;s flowing narrative and visual style. The stories they cover are fascinating, and the videos themselves are incredibly well produced like nothing else I&rsquo;ve seen on the platform.</p> <p><a href="https://www.youtube.com/c/NotJustBikes" target="_blank" rel="noopener">⬩ Not Just Bikes</a> - this channel has fast become a favourite on Hacker News, where I first came across it. The highly informative videos make you rethink the old, pedestrian-unfriendly infrastructure so many countries continue to use.</p> </div> </div> <div class="text borderless box"> <div> <h3 id="manga">Manga</h3><p><a href="https://en.wikipedia.org/wiki/Yokohama_Kaidashi_Kik%C5%8D" target="_blank" rel="noopener">⬩ Yokohama Kaidashi Kikō</a> - A peaceful, warm manga set in a world where humanity is in decline. An unforgettable read.</p> <p><a href="https://en.wikipedia.org/wiki/Lore_Olympus" target="_blank" rel="noopener">⬩ Lore Olympus</a> - There&rsquo;s not much not to love about Lore Olympus. It&rsquo;s style is vivid and easy to read, and it&rsquo;s story engaging, really making you look forward for the next chapter.</p> </div> </div> <hr> <h2 id="going-forward">Going Forward</h2><p>The goal for 2022 is to get my health back into shape and sharpen my mind. I&rsquo;d like to focus my time learning to properly program in a way that will actually be useful to me. The first project of the new year will likely be a rebuilding of this site, I&rsquo;m unhappy hosting the site on github pages, not mention the code being an absolute mess. But I&rsquo;ve got a clear vision of what I want to do this time, which makes it a lot easier to plan for. After that I plan to dabble in some C for the Pebble and make some watchfaces for a challenge.</p> <h2 id="conclusion">Conclusion</h2><p>This hasn&rsquo;t been the best year ever, but I&rsquo;m feeling more hopeful for next year! I&rsquo;ve still got several months of free time left on leave so I&rsquo;m eager to make the most of it. Here&rsquo;s to a happy new year!</p> <p>At a glance, this year has been a bit of a writeoff for me. I was diagnosed with Crohn&rsquo;s earlier in the year and I&rsquo;ve spent most of the rest recovering, going so far to drop out of college on medical leave. My high risk to covid has left me isolating in my home for a large amount of time as well. Both have hampered my ability to do much physical things, but allowed me to read and research more than I could before.</p> <hr> <h2 id="changes">Changes</h2><div class="listbox box"><div><h2>Hardware</h2></div><hr><ul> <li>⚬ Added a shelf to my desk to allow me to use my computer standing.</li> <li>⚬ Bought a Pebble Time watch.</li> <li>⚬ Repaired my Ds Lite and replaced it&rsquo;s shell with a snazzy Lime one.</li> <li>⚬ Swapped my Thinkpad&rsquo;s old Hard-drive for a new SSD.</li> </ul></div> <div class="listbox box"><div><h2>Software</h2></div><hr><ul> <li>⚬ Ditched Windows for Fedora Linux. Best choice of the year right here.</li> <li>⚬ Went full Free Open Source Software on my phone.</li> <li>⚬ Began using RSS feeds to compile my favourite sites and blogs in one place.</li> <li>⚬ Started my blog!.</li> <li>⚬ Joined Mastodon.</li> </ul></div> <hr> <h2 id="favourite-things">Favourite things</h2><div class="text borderless box"> <div><h3 id="music">Music</h3><p><strong>∘ Favourite Artist - Mkgee</strong> - Most listened artist of the year for me, fantastic producer though his bandcamp is missing his latest album sadly.</p></div> </div> <div class="text borderless box"> <div> <h3 id="podcasts">Podcasts</h3><p><a href="https://fallofcivilizationspodcast.com/" target="_blank" rel="noopener">⬩ Fall of Civilisations podcast</a> - Fantastically engaging podcast that paints the fall of many civilisations in a concise, historical narrative.</p> <p><a href="https://podcast.panic.com/" target="_blank" rel="noopener">⬩ Panic Podcast</a> - A podcast about the portland software company, Panic. Incredibly fun and enjoyable listen!</p> </div> </div> <div class="text borderless box"> <div> <h3 id="websites">Websites</h3><p><a href="https://100r.co/site/home.html" target="_blank" rel="noopener">⬩ Hundred Rabbits</a> - A site covering Rek and Devine&rsquo;s artist collective. I&rsquo;ve spent so many hours reading on this site, with so many adventures, knowledge and projects to read about, it really is a treasure trove.</p> <p><a href="https://ritualdust.com/" target="_blank" rel="noopener">⬩ Ritual dust</a> - the personal site of Lizbeth Poirier, there&rsquo;s a wide range of content to be found on it. From beautiful art, to recipes and the fabulously depthful folklore section that is an absolute joy to read, especially with the site&rsquo;s fantastic design.</p> </div> </div> <div class="text borderless box"> <div> <h3 id="youtube">Youtube</h3><p><a href="https://www.youtube.com/c/DisruptReality" target="_blank" rel="noopener">⬩ Disrupt</a> - Disrupt&rsquo;s tv-imitation aids greatly to it&rsquo;s flowing narrative and visual style. The stories they cover are fascinating, and the videos themselves are incredibly well produced like nothing else I&rsquo;ve seen on the platform.</p> <p><a href="https://www.youtube.com/c/NotJustBikes" target="_blank" rel="noopener">⬩ Not Just Bikes</a> - this channel has fast become a favourite on Hacker News, where I first came across it. The highly informative videos make you rethink the old, pedestrian-unfriendly infrastructure so many countries continue to use.</p> </div> </div> <div class="text borderless box"> <div> <h3 id="manga">Manga</h3><p><a href="https://en.wikipedia.org/wiki/Yokohama_Kaidashi_Kik%C5%8D" target="_blank" rel="noopener">⬩ Yokohama Kaidashi Kikō</a> - A peaceful, warm manga set in a world where humanity is in decline. An unforgettable read.</p> <p><a href="https://en.wikipedia.org/wiki/Lore_Olympus" target="_blank" rel="noopener">⬩ Lore Olympus</a> - There&rsquo;s not much not to love about Lore Olympus. It&rsquo;s style is vivid and easy to read, and it&rsquo;s story engaging, really making you look forward for the next chapter.</p> </div> </div> <hr> <h2 id="going-forward">Going Forward</h2><p>The goal for 2022 is to get my health back into shape and sharpen my mind. I&rsquo;d like to focus my time learning to properly program in a way that will actually be useful to me. The first project of the new year will likely be a rebuilding of this site, I&rsquo;m unhappy hosting the site on github pages, not mention the code being an absolute mess. But I&rsquo;ve got a clear vision of what I want to do this time, which makes it a lot easier to plan for. After that I plan to dabble in some C for the Pebble and make some watchfaces for a challenge.</p> <h2 id="conclusion">Conclusion</h2><p>This hasn&rsquo;t been the best year ever, but I&rsquo;m feeling more hopeful for next year! I&rsquo;ve still got several months of free time left on leave so I&rsquo;m eager to make the most of it. Here&rsquo;s to a happy new year!</p>