[{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/tags/links/","section":"Tags","summary":"","title":"Links","type":"tags"},{"content":"Welcome back to Dispatch, a personal roundup of videos, records, and anything that I found interesting this month. Think of Dispatch as my monthly mixtape from the internet with no real theme except “this was neat.”\nFor a moment I considered skipping this Dispatch. I had only saved most of these links but not described them which seemed like a tedious task. This meant I had to quickly skim some of the older links to jog my memory and avoid inaccurate descriptions. For one, I\u0026rsquo;ve learnt that I need to write a quick note for every single recommendation at the point of saving.\nVideos The BLUETOOTH CONNECTED Voice Actors - almost each one of us has heard of the classic \u0026ldquo;zee bluetooth device is connected successfully\u0026rdquo; and I really thought this video was about that voice actor but I was still equally impressed and left wondering if I can get in on the voice acting act.\nWhy You Can\u0026rsquo;t (Quite) Take a Train Across Africa - a bit of South African history primarily about Cecil Rhodes and why I think he deserves even more hate but predominantly about the difficulty of traversing the vast continent from Cape Town to Cairo.\nWhy Do the BEST Singers Always End Up Being British? - this is something I\u0026rsquo;ve noticed before but never thought to look into it. I think someone should make a video about British actors too.\nHow Bicycle Helmets Are Engineered to Protect Your Brain - this is one of those topics I didn\u0026rsquo;t know I was curious about but ended up being fully engrossed about the video especially with the direct and practical presentation style of the presenter.\nMusic \u0026lsquo;Human Nature\u0026rsquo; - Jan\u0026rsquo;s Collective Live (feat. Josh Babu) - Michael Jackson and I might be the only people who haven\u0026rsquo;t watched his movie but my YouTube feed has been full of MJ related content. This orchestral arrangement of Human Nature is particularly impressive and beautifully done.\nIn other news, I\u0026rsquo;ve discovered Genesis Owusu through triple j from his \u0026lsquo;Paint It, Black\u0026rsquo; cover. And so far I\u0026rsquo;m loving his discography including the few songs I\u0026rsquo;ve heard from his new album such as STAMPEDE and RUNNIN OUTTA TIME.\nBooks I haven\u0026rsquo;t finished a single book this month but I realised I didn\u0026rsquo;t mention my favourite book from April. Swimming in the Dark by Tomasz Jedrowski was a beautiful read and I don\u0026rsquo;t I can describe it any better than how I did on my Goodreads review: \u0026ldquo;A quiet, aching book about forbidden love in Communist Poland, where the personal and political are impossible to untangle. The central moral dilemma hangs over every page. To betray your lover or country. The story is told in the past tense and addressed to Janusz meaning we get the sense of loss and feel the darkness from the first page. The prose is beautiful and vivid despite the bleakness of the world it describes. This is deeply moving and hard to put down.\u0026rdquo;\nArticles How to kill a blog - for all the bloggers out there and those who want to join the want, please don\u0026rsquo;t go niche.\nDon\u0026rsquo;t reject yourself - in a similar fashion to the article above, just hit the publish button for the draft you have. Some of us as perfectionists but it gets to a point where you just have to release something\nSoftware Engineering Practices (are also) Useful for Token Reduction - this is a clear reiteration on the importance of minimisation and maintaining good software engineering practices even more so with agents.\nSignals #002: The Frame vs. The Framer - i consider this a hopeful food for thought for anyone who dreads an AI apocalypse. Christopher explores how AI benchmarks and automation operate inside human-defined constraints, so the deeper human role remains intact.\n","date":"31 May 2026","externalUrl":null,"permalink":"/may-2026-dispatch/","section":"Posts","summary":"A quick collection of what I watched, listened to, and read this month.","title":"May 2026 Dispatch","type":"posts"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/","section":"Mordecai Kipng'etich","summary":"","title":"Mordecai Kipng'etich","type":"page"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/posts/","section":"Posts","summary":"","title":"Posts","type":"posts"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/categories/web/","section":"Categories","summary":"","title":"Web","type":"categories"},{"content":"For most of this year, I\u0026rsquo;ve travelled every Thursday to and fro Nanyuki for work. That is exciting on it\u0026rsquo;s own. But\u0026hellip; on our first trip there, we had about an hour to spare before the business of the day and so we stopped by a mall for a quick snack and chill. That was the best idea cause we soon spotted that the mall has a bookshop and the readers among us had their interest piqued.\nThe place was called Wine \u0026amp; Spine. First of all what a name! Full props to the guy or girl that came up with that name, I wish I had so. However, the shop was a bit pricey. Actually not even that pricey, it\u0026rsquo;s just that some of us are used to thrifted books and even ebooks (aargh). I can\u0026rsquo;t fault the vibes though, it was immaculate.\nI got myself a copy of Kafka on the Shore by Haruki Murakami and I totally blame that book for my recent reading slump. I have a thing where I find it difficult to pick up a book upon completing something amazing. That was the case with my first foray into Haruki Murakami\u0026rsquo;s work.\nI tried East of Eden by John Steinbeck and other classics, resumed a book I had abandoned but nothing scratched my reading itch. The only thing that came close was The Girl with the Louding Voice by Abi Daré which I have been slowly reading. The reason I say \u0026lsquo;it comes close\u0026rsquo; is I find the broken English writing style a bit jarring despite that being the point of the writing, but the story is interesting so far.\nAnd so\u0026hellip; I was a bit excited when my weekly trips to Nanyuki returned cause Lord knows I needed a recommendation.\nThe lovely lady at Wines \u0026amp; Spine was welcoming as always. She could tell I was undecided as usual. I wanted every single book on there. I thought of getting Another Country by James Baldwin who\u0026rsquo;s one of my favourite authors. However, she shed a light on the fact that classics might not be the best cure to my reading slump. I hadn\u0026rsquo;t thought of but it makes sense seeing I had tried a bunch of classics but only Abi Daré\u0026rsquo;s book, not a classic, could tickle my fancy. My criteria before was looking for shorter reads forgetting that the same type of book in a shorter format was still the type of book I didn\u0026rsquo;t need. Truly a lapse of judgement on my part.\nAnyway, once again I walked away with a book in hand, this time from an author I didn\u0026rsquo;t know and a book I had no idea of. Total blind faith on this lady. I was torn between Theft by Abdulrazak Gurnah and my eventual pick by the same author. Her other recommendations were Augustown by Kei Miller and Dance of The Jacaranda by Peter Kimani but perhaps they were not the right medicine for my problem according to the doctor. Eventually, I settled on By the sea by Abdulrazak Gurnah mostly based on the blurb at the back but also it being cheaper than Theft 😂.\nI write this a few days after purchasing that book and I gotta say I love it so far. I don\u0026rsquo;t want to make this a book review but I enjoy the subject matter and the writing style. Abdulrazak\u0026rsquo;s words make me want to savour the book slowly with no rush whatsoever.\nSo what\u0026rsquo;s the point of writing all this? I don\u0026rsquo;t exactly know but perhaps a need to urge you all, readers and wannabe readers, to place your faith on a librarian or an avid reader for your next read. Pop into a bookshop or library near you, mention your interests, lay bare your current situation and await a recommendation. Perhaps, you might get a banger like I did. If not, then at least their future recommendation will be more precise and better.\nThis could also apply to other forms of media, so get out there for more human recommendations.\n","date":"19 May 2026","externalUrl":null,"permalink":"/blind-faith-on-librarians/","section":"Posts","summary":"A bookshop, a reading slump, and a unfamiliar recommendation.","title":"Blind Faith on Librarians","type":"posts"},{"content":"","date":"19 May 2026","externalUrl":null,"permalink":"/tags/books/","section":"Tags","summary":"","title":"Books","type":"tags"},{"content":"","date":"19 May 2026","externalUrl":null,"permalink":"/categories/opinion/","section":"Categories","summary":"","title":"Opinion","type":"categories"},{"content":"","date":"19 May 2026","externalUrl":null,"permalink":"/tags/reading/","section":"Tags","summary":"","title":"Reading","type":"tags"},{"content":"Welcome back to Dispatch, a personal roundup of videos, records, and anything that I found interesting this month. Think of Dispatch as my hopefully monthly mixtape from the internet with no real theme except “this was neat.”\nVideos This School Is Now our Family Home… Come Inside! - Renovation videos scratch my home design itch and this does that very well. The house has a charm that most modern houses lack and the owner made some amazing design choices while actively honouring the house\u0026rsquo;s past as a school.\nWhat do you do when life gives you a million lemons? - South of France is undoubtedly beautiful but add a lemon (yes, the citrus fruit) festival to it with a Luke O\u0026rsquo;Sullivan twist and that makes for an interesting video.\nSomething very weird is happening on Tinder - Christophe investigates why more and more dating profiles look normal up until you hit the last photo. The rabbit holes leads down to potential scams.\nCHINA - Why did I not know China was like this? - who doesn\u0026rsquo;t love a hidden gem? This easily makes China climb up my travel wish list.\nMusic 2500 Montréalers sing L. Cohen’s “Hallelujah” in perfect harmony at Place Des Arts - It’s quite amazing what a bunch of people can do in a choral setup with minimal practice.\nThe only new full length album I listened to and really liked was WOR$T GIRL IN AMERICA by Slayyyter. A friend of mine put me on CRANK and thank heavens they did cause the entire album is funky, ravey and stank-faceable. CRANK IT (UH).\nFilms \u0026amp; Shows I absolutely loved these shows that had their season finales air in April:\nShrinking - tender is the word. Invincible - they still need to improve the animation style but what a story. Abbott Elementary - thank the Lord for mockumentary shows. A Knight of the Seven Kingdoms - this is the only one I didn\u0026rsquo;t watch this month but since Dispatch didn\u0026rsquo;t even exist when it aired, I\u0026rsquo;ll make the exception. The show is a great relaxed prequel to Game of Thrones following Dunk \u0026amp; Egg (think Pod \u0026amp; Tyrion) while closely resembling the books. It remains my favourite show of the year\u0026hellip; so far at least. While I also enjoyed these movies:\nCruella (2021) Dune (2021) - I finally gave in and fell head over heels . My initial thought was I\u0026rsquo;d watch in bits just due to the sheer length of the film and my time back then but I ended up watching it in one seating. I\u0026rsquo;ll definitely get to the second part soon in anticipation of the third. Podcast George Michael: Beyond the Scandal, Behind the Icon - The hosts cover star behind \u0026ldquo;Careless Whisper\u0026rdquo; beyond the headlines and scandals. They describe is as \u0026ldquo;a moving reexamination of fame, queerness, and survival in a decade that preferred not to look too closely\u0026rdquo; and I couldn\u0026rsquo;t agree more. This podcast is quickly becoming one of my favourites, and some other amazing episodes for me are that of Amy Winehouse and Sir David Attenborough.\nArticles How I Discover New Blogs - I\u0026rsquo;ve been asked this question more than once before and Kev very nicely answers it. I love it when bloggers link to other posts/blogs in their post and that\u0026rsquo;s my primary method of discovery.\nThat’s all for this month’s Dispatch. See you in May 🤞.\n","date":"30 April 2026","externalUrl":null,"permalink":"/april-2026-dispatch/","section":"Posts","summary":"A quick collection of what I watched, listened to, and read this month.","title":"April 2026 Dispatch","type":"posts"},{"content":"","date":"21 April 2026","externalUrl":null,"permalink":"/tags/google-photos/","section":"Tags","summary":"","title":"Google Photos","type":"tags"},{"content":" TLDR First of all, check out if you have the official Google Photos to iCloud Photos option available in Google Takeout. If not, then try out google-photos-migrate for a simple way to merge your Takeout metadata files and the images. After years and years of Apple bugging me to upgrade to iCloud+, I finally jumped ship. The logical next step was to migrate from Google Photos to iCloud Photos. But let me tell you Maina, the process was not easy.\nI knew I would likely need to get my data from Google Takeout and so I did. The process was straightforward despite Google seemingly never updating that page. In all honesty, the UX could be improved, and finding that page in the first place is its own challenge. It honestly feels buried on purpose.\nAnyway, I downloaded my photos and that\u0026rsquo;s when I discovered every image file had a separate JSON file associated with it. Turns out the images didn\u0026rsquo;t have any metadata embedded in them and if I were to upload them as-is, all the images would show as being from the day of the download. The actual metadata was being stored in the JSON file. What a pain in the a-\nHowever, I discovered there is an official migration option but lo and behold, Google didn\u0026rsquo;t offer it to me. I had to figure out how to somehow merge my photos and the metadata files. So it was back to the drawing board.\nExifTool emerged as the best option through my quick research with this article from Mathieu Legault (and others) shedding light on it. I didn\u0026rsquo;t end up using the guide because once again, Google did what they do best. They changed the metadata naming scheme with no backward compatibility, and somehow introduced filename inconsistencies too.\nI wasn\u0026rsquo;t the only one in this boat, so it was only a short time before I stumbled upon an elegant solution by Rodrigo Panachi. He had a simple Ruby script to fix the filenames before using ExifTool. That gave me the idea that perhaps there may be newer scripts out there that did everything.\nThat\u0026rsquo;s when I found what I was looking for, a tool called google-photos-migrate. It could do exactly what I wanted. It resolves the filename issue, finds duplicates, moves errored images to a separate folder, and of course corrects the photo metadata. The hassle afterwards is that if you already had some images on iCloud Photos, it would take some time for duplicates to surface and even longer to accurately recognise faces or even recognise them at all.\nBut at least all your photos AND their metadata finally made it to your new home.\n","date":"21 April 2026","externalUrl":null,"permalink":"/google-photos-to-icloud/","section":"Posts","summary":"Surprisingly, getting my photos and their metadata out of Google and into iCloud is not simple.","title":"How I Migrated from Google Photos to iCloud Photos","type":"posts"},{"content":"","date":"21 April 2026","externalUrl":null,"permalink":"/tags/icloud-photos/","section":"Tags","summary":"","title":"ICloud Photos","type":"tags"},{"content":"","date":"21 April 2026","externalUrl":null,"permalink":"/categories/technical/","section":"Categories","summary":"","title":"Technical","type":"categories"},{"content":"","date":"21 April 2026","externalUrl":null,"permalink":"/categories/updates/","section":"Categories","summary":"","title":"Updates","type":"categories"},{"content":"A lot of individuals on the \u0026ldquo;indie web\u0026rdquo; have a periodic dump of links and I always find them cool, so why shouldn\u0026rsquo;t I give it a try? Hopefully this series won\u0026rsquo;t be the only thing I post on this website.\nSo\u0026hellip; welcome to Dispatch, a personal roundup of videos, records, and anything that I found interesting this month. Think of Dispatch as my hopefully monthly mixtape from the internet with no real theme except “this was neat.”\nVideos I made a SPACE MOVIE 🚀 without leaving my apartment - That is not clickbait, Caroline Klidonas did just that. This is a quirky video that will have you smiling.\nWhy the internet hates my surname - Luke O\u0026rsquo;Sullivan goes into an issue he faces with his second name on the internet and boy do I relate. It\u0026rsquo;s annoying that some modern systems still have issues or arbitrary restrictions when it comes to special characters.\nThe Novel Technologies Of Singapore\u0026rsquo;s Library System - Whoever titled this clearly had a blast and they deserve an award for enthusiasm. This is an interesting behind the scenes of a highly effective system from auto-sorting and cataloguing to book returns. You don\u0026rsquo;t have to love libraries to like this video.\nCan MKBHD\u0026rsquo;s Team Make ANY Phone Look Cinematic?? - I watched this expecting a video akin to a tutorial but got something much better. It felt more like a short film festival from an insanely creative team. And it’s hilarious too.\nWhy do office chairs have 5 legs? - If you\u0026rsquo;ve ever wondered (or not) why four legs might work for tables but not office chairs, this one\u0026rsquo;s for you.\nIf This Dam Fails, It Pollutes Half of Europe. - What On Earth Is This covers the back story of a toxic dam in Romania, how it came to be and the bleak future of it.\nMusic Here are some albums I listened to this month for the first time and enjoyed:\nJ. Cole - The Fall-Off. Àsgeir - Julia. James Blake - Trying Times. Björk - Homogenic Books I read only one book this month and I would totally recommend it. Kafka on the Shore by Haruki Murakami is a beautiful read. However, I\u0026rsquo;d be lying if I said I fully understood everything but the journey was worthwhile. It\u0026rsquo;s like an acid trip (not that I have indulged) on steroids with wild things happening.\nArticles Tetris at 40: A chat with creator Alexey Pajitnov – “I never imagined anything like what we see today” by The Escapist - if you\u0026rsquo;re like me and you love Tetris or are mildly interested in the game, then this is a lovely interview of the game creator. Additionally, you can watch Tetris the movie to quench that thirst.\nThe Performative Male “Problem” - some of us are not \u0026ldquo;performing\u0026rdquo; and simply love reading, wired headphones, records by female artists and whatever next thing that will be branded as performative.\nFellas, is it gay to like pop music? (or: “Toxic”) - not the first time linking to this article online but first time in this space. Plus the post is highly relatable for a bunch of fellas including myself.\nThat’s all for this month’s Dispatch. See you in April 🤞.\n","date":"31 March 2026","externalUrl":null,"permalink":"/march-2026-dispatch/","section":"Posts","summary":"A quick collection of what I watched, listened to, and read this month.","title":"March 2026 Dispatch","type":"posts"},{"content":"","date":"20 March 2026","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":"Watching Linus Tech Tips\u0026rsquo; latest Linux challenge video, especially Linus\u0026rsquo; sections, is a genuinely painful experience.\nI might not be a Linux pro, but I sure am seasoned enough to know my way around. And a few things immediately stood out. So here\u0026rsquo;s a quick rundown of do\u0026rsquo;s and don\u0026rsquo;ts when picking a Linux distro:\nDon\u0026rsquo;t bother with niche distros. What I mean is don\u0026rsquo;t get caught up looking for a \u0026ldquo;gaming distro\u0026rdquo; or something overly specialised. Most of these are just mainstream distributions with a few extras pre-installed or minor tweaks. You can replicate all of that yourself, so it shouldn\u0026rsquo;t be your deciding factor. Pick you preferred desktop environment first. Start with the UI flavour you actually want to use (your desktop environment), then choose a popular distro that supports it well. For most people, that matters more than the distro itself. Avoid distros in transition. I get why Pop OS was given another shot, especially after the feedback from the last challenge. But a bit of research goes a long way. COSMIC may be at version 1.0, but it\u0026rsquo;s still not fully stable, especially for the niche hardware or edge use cases like the one Linus tends to have. Don\u0026rsquo;t rely on AI to pick your distro. It\u0026rsquo;s often outdated, lacks nuance, and sometimes confidently wrong. That being said, AI can be genuinely useful for troubleshooting. It\u0026rsquo;s surprisingly effective for straightforward issues as long as you keep the usual LLM caveats in mind. I think most of the frustration came from the distro choice and doing the installation at a LAN event. A more relaxed environment, without the pressure, would have helped a lot.\nLinux isn\u0026rsquo;t hard, everyone just needs to stop overthinking the entry point. Most of the time I\u0026rsquo;ve broken my system, it was me, not the distro. So\u0026hellip; just pick a popular mainstream distribution and play around. With time, you\u0026rsquo;ll naturally get to the distrohopping phase.\n","date":"20 March 2026","externalUrl":null,"permalink":"/linux-one-more-time/","section":"Posts","summary":"A quick take on LTT’s Linux challenge and the common mistakes people make.","title":"Re: FINE! I’ll Try Linux ONE MORE TIME...","type":"posts"},{"content":"","date":"20 March 2026","externalUrl":null,"permalink":"/tags/reaction/","section":"Tags","summary":"","title":"Reaction","type":"tags"},{"content":"","date":"9 March 2026","externalUrl":null,"permalink":"/tags/cloudflare-tunnel/","section":"Tags","summary":"","title":"Cloudflare Tunnel","type":"tags"},{"content":"After getting my media stack stable as shown in my previous post, the next question was remote access.\nAs a side note, since I\u0026rsquo;ll be changing my homelab setup, I\u0026rsquo;m thinking of adding Tailscale as a VPN to securely connect to certain services.\nAnyway, I already manage my domains on Cloudflare, so using Cloudflare Tunnel would always the cleanest option. I had used it before in Fedora and tried a containerized version on Arch. So it was only natural for me to side-step to a Docker Compose setup.\nThis is how I set mine up.\nWhy Cloudflare Tunnel No port forwarding No exposing my public IP Encrypted traffic by default Works well if you already use Cloudflare for DNS It\u0026rsquo;s simple. It\u0026rsquo;s predictable. And it removes a lot of the usual home network headache.\nThat being said, exposing internal services always carries risk. Try to understand what you\u0026rsquo;re doing before making anything public.\nSetup Process Create a tunnel from the Cloudflare dashboard: Zero Trust → Network → Connectors.\nAfter creating it, Cloudflare gives you a command to run the connector. For Docker, it looks like this:\ndocker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token randomTextHereAsTokenlSP1kY34p8^jKaX28XGo5xR5uVXftLHP0Y3+pBmT$jg Copy the token that appears after --token and add it to your .env file:\nTOKEN=randomTextHereAsTokenlSP1kY34p8^jKaX28XGo5xR5uVXftLHP0Y3+pBmT$jg Deploy the container using your compose setup. If you look at my setup in the previous post, I create a shared network. This is simply to make it easy for the containers to communicate with each other since I have Cloudflared and the Arr Apps running in different stacks.\nApplication Routes Back in the Cloudflare dashboard, configure application routes for the tunnel.\nEach route maps:\nA public hostname (for example seerr.yourdomain.com) To a local service (for example http://seerr:5055) You can point different subdomains to different containers inside your Docker network. Once saved, traffic flows through Cloudflare to your connector, and then into your local container. No open ports required.\nA Note on Security Just because you can expose something doesn\u0026rsquo;t mean you should.\nMake sure:\nStrong authentication is enabled (check out Explore Further section below for guide on Access Control) Default credentials are changed Services are updated You actually need remote access Cloudflare Tunnel makes exposure safer, not magically safe.\nIf you\u0026rsquo;re unsure, keep everything local.\nThat\u0026rsquo;s It Once the tunnel is running, it\u0026rsquo;s mostly invisible. It just works in the background.\nFor me, this paired perfectly with my Docker media stack. Clean internal networking, and controlled external access when needed.\nYou can find compose files here: github.com/insidemordecai/homelab/tree/blog-media-stack-2026\nExplore Further Cloudflare Tunnel Official Docs How to create a tunnel (dashboard) - step‑by‑step guide to creating and connecting your first tunnel directly from the Cloudflare dashboard. Cloudflare Tunnels for Your Home Server - Benjamin Tseng has a solid section on authentication and access control that you can adapt for your media stack. How to SECURELY gain access to your locally self-hosted services from outside - a Reddit guide on r/selfhosted. Securing Cloudflare with Cloudflare: a Zero Trust journey - a deeper dive into how Cloudflare applies Zero Trust principles to its own stack. ","date":"9 March 2026","externalUrl":null,"permalink":"/homelab-cloudflare-tunnel/","section":"Posts","summary":"Using Cloudflare Tunnel to securely expose my homelab services.","title":"Cloudflare Tunnel for Homelab Services","type":"posts"},{"content":"","date":"9 March 2026","externalUrl":null,"permalink":"/tags/homelab/","section":"Tags","summary":"","title":"Homelab","type":"tags"},{"content":"","date":"28 February 2026","externalUrl":null,"permalink":"/tags/docker/","section":"Tags","summary":"","title":"Docker","type":"tags"},{"content":"I originally built this media stack as a complete beginner to homelabbing. It started as a way to learn Docker while automating my setup and slowly turned into something I rely on daily. Over time I refined it to the point where it runs quietly and flawlessly in the background.\nI\u0026rsquo;m planning to migrate everything to Proxmox soon, so I\u0026rsquo;m posting my internal documentation before I tear it down. This isn\u0026rsquo;t the only way to do it. It\u0026rsquo;s simply how I did mine.\nHardware This runs on my old laptop with an Intel Core i5-7200U with 8 gigs of DDR4 RAM and no dedicated GPU on bare metal Linux. The distro doesn\u0026rsquo;t really matter since everything runs inside Docker but if you really need to know, I\u0026rsquo;ve used this setup with Arch Linux, Omarchy (which is basically pre-configured Arch) and CachyOS. Nothing fancy. No enterprise gear. Just hardware I had lying around.\nWhy This Stack Jellyfin because it\u0026rsquo;s open source. No paid tiers. No \u0026ldquo;upgrade to unlock this feature\u0026rdquo;. No authentication that needs to phone home. I want my media server to be mine. qBittorrent because it\u0026rsquo;s reliable and I\u0026rsquo;m used to it. Prowlarr because managing indexers in one place is significantly cleaner. Radarr / Sonarr / Bazarr because automation is the whole point. Docker because I can tear this down and spin it back up anywhere. Folder Mapping At a high level, all the files live under /data on the host. This is my current structure:\ndata ├── torrents │ ├── completed │ └── incomplete └── media ├── movies └── tv Create your directories before proceeding. Here\u0026rsquo;s an easy command to run in your /data directory if you want a similar scheme:\nmkdir -p torrents/{completed,incomplete} \u0026amp;\u0026amp; mkdir -p media/{movies,tv} Setup Process The full docker-compose.yml files and .env.example templates live in my homelab repository: github.com/insidemordecai/homelab/tree/blog-media-stack-2026.\nClone it or download a zip of it.\nStep 0 In the root directory, copy all .env.example templates as .env in each subdirectory: find . -name \u0026#39;.env.example\u0026#39; -execdir cp .env.example .env \\; Navigate to the directory with the docker-compose.yml file. Add your user to the docker group so you don\u0026rsquo;t need sudo for every command: sudo usermod -aG docker $USER newgrp docker Change ownership of the data volume specified in the .env file so all services can access it: chown -R 1000:1000 /data/volume/in/.env/file Create a shared Docker network: (I prefer this approach with Cloudflare Tunnels) docker network create stacknet Lastly, use the appropriate commands with the containers: docker compose up -d # to deploy containers docker compose stop # to stop containers docker compose rm # to remove containers (stop them first) Now configure each application. Caution .env files in my repository are ignored by Git. Do not commit or push tokens or credentials.\nqBittorrent http://localhost:8080\nLaunch qBittorrent and log in. The username is admin while the password is randomly generated on first launch. To find the password:\ndocker logs qbittorrent Change the credentials under Web UI → Authentication.\nConfigure qBittorrent to your liking. My preferences are:\nWeb UI → Authentication Bypass authentication for clients on localhost Set \u0026ldquo;Ban client after consecutive failures\u0026rdquo; to 0 (be careful if exposing qBittorrent) Downloads → Saving Management Default save path: /data/torrents/completed Keep incomplete torrents in: /data/torrents/incomplete Enable Automatic torrent management Connections → Listening Port Match whatever you forwarded on your router BitTorrent Configure queueing and seeding limits to your liking Arr Apps Prowlarr http://localhost:9696\nGo to Settings → Download Clients and add qBittorrent.\nMatch the Web UI port (default 8080) and enter credentials. Host can be qbittorrent, test and save.\nAdd your indexers, test and save.\nFlaresolverr No configuration required in the container itself.\nIn Prowlarr:\nSettings → Indexers Add Flaresolverr Host: http://flaresolverr:8191/ Tag: flaresolverr Attach the tag to any problematic indexer that needs to bypass Cloudflare Captcha.\nRadarr http://localhost:7878\nUnder Settings → Media Management, add Root Folder: /data/media/movies (match your docker-compose.yml)\nUnder Settings → Download Clients, add qBittorrent (similar process to Prowlarr above) and test.\nConfigure Remote Path Mapping:\nHost: localhost Remote path: /WHERE_YOUR_DATA_VOLUME_IS/data/torrents/completed Local path: /data/torrents/completed Copy the API key from Settings → General.\nIn Prowlarr:\nSettings → Apps Add Radarr Use http://container-name:port format in the Prowlarr/Radarr server field Paste the API key My tweaks:\nMedia Management Check \u0026ldquo;Unmonitor Delete Movies\u0026rdquo; Set \u0026ldquo;Proper and Repacks\u0026rdquo; to \u0026ldquo;Do Not Prefer\u0026rdquo; Adjust Movie Folder Format (I include IMDb ID inline with Jellyfin\u0026rsquo;s naming scheme) Custom Formats Medium File Size - set your minimum and max file size for media downloaded and check \u0026lsquo;Required\u0026rsquo;. You can create another for Small and Large file sizes if desired. x264 - use preset under Release Title and check Required to find files encoded with H.264. x265 - use preset under Release Title and check Required to find files encoded with H.265. Repack/Proper from TRaSH Guide\u0026rsquo;s Collection to allow Radarr to still pick repacks/proper files. Profiles Disable Remux, they tend to be large files. Score the custom formats according to preference e.g 1000 for Medium File Size, 100 for Repack/Proper and another score x264 and x265. Sonarr http://localhost:8989\nSame process as Radarr, but Root Folder: /data/media/tv.\nConfigure Download Client and Remote Path Mapping the same way. Link Sonarr to Prowlarr the same way using the API key.\nIn Media Management:\nFollow Jellyfin TV naming scheme to Include IMDb ID in Series Folder Format. Check Rename Episodes Bazarr http://localhost:6767\nUnder Settings → Sonarr, enable and configure connection. Set the minimum score in Options to 90 (TRaSH-Guide recommendation).\nUnder Settings → Radarr, enable and configure the connection. Minimum score: 80\nUnder Settings → Languages, pick your desired language under Languages Filter. Create a Language Profile under Languages Profile and assign it as default for Series and Movies under Default Language Profiles For Newly Added Shows.\nAdd subtitle providers under Settings → Providers. Create an account with a provider such as opensubtitles.com first.\nUnder Settings → Subtitles:\nEnable \u0026lsquo;Ignore Embedded PGS Subtitles\u0026rsquo; and \u0026lsquo;Ignore Embedded ASS Subtitles\u0026rsquo; under Embedded Subtitles Handling. This is important if your media player has issues with these type of subtitles e.g Jellyfin for Samsung TV (check out Jellyfin 2 Samsung and Install Jellyfin Tizen for how to sideload the app) Enable \u0026lsquo;Automatic Subtitles Audio Synchronization\u0026rsquo; under Audio Synchronization / Alignment. Score Threshold: Series: 96 Movies: 86 Jellyfin http://localhost:8096\nComplete initial setup in browser and map your libraries:\nMovies: /data/media/movies TV: /data/media/tv That\u0026rsquo;s it. Tweak the settings to your liking.\nJellyseerr Note And wouldn’t you know it, just after posting this article I learned that the Seerr team announced they’ll be merging Overseerr and Jellyseerr. You can find the migration guide here. Also, you can find my Seerr implementation on my GitHub repo.\nhttp://localhost:5055\nFollow the on-screen guide.\nJellyfin hostname: jellyfin Leave the port as is unless you had changed this Test and save, the API keys will auto-configure Add Radarr and Sonarr Firewall You may need to allow certain ports, but only if necessary.\nFor example, if using ufw:\nsudo ufw allow 6881/tcp #default qBittorrent listening port sudo ufw allow 6881/udp Be deliberate. Don\u0026rsquo;t open ports blindly.\nA Note on Exposing Services If you decide to expose any of these services outside your local network, understand the risks first.\nDo not just forward ports and hope for the best. Use proper authentication, reverse proxies, or secure tunnels. Know what you\u0026rsquo;re exposing and why.\nThis stack runs perfectly fine entirely within a local network. The next post will show how to use Cloudflare Tunnels to securely expose some services.\nThe full compose files and configuration templates are available here: github.com/insidemordecai/homelab/tree/blog-media-stack-2026\nThis setup has been stable for me for a long time. If I ever need to rebuild it on another machine, it\u0026rsquo;s just a matter of cloning the repo and running docker compose up -d.\nNext step: rebuilding this properly under Proxmox.\nExplore Further Servarr Wiki TRaSH Guides TechHut\u0026rsquo;s Setup ","date":"28 February 2026","externalUrl":null,"permalink":"/self-hosted-media-with-docker/","section":"Posts","summary":"My homelab setup using a media stack on Docker with Jellyfin and the Arr apps","title":"Self Hosted Media With Docker","type":"posts"},{"content":"","date":"28 February 2026","externalUrl":null,"permalink":"/tags/self-hosting/","section":"Tags","summary":"","title":"Self-Hosting","type":"tags"},{"content":"","date":"21 February 2026","externalUrl":null,"permalink":"/tags/cloudflare-pages/","section":"Tags","summary":"","title":"Cloudflare Pages","type":"tags"},{"content":"","date":"21 February 2026","externalUrl":null,"permalink":"/tags/cloudflare-workers/","section":"Tags","summary":"","title":"Cloudflare Workers","type":"tags"},{"content":"","date":"21 February 2026","externalUrl":null,"permalink":"/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"Cloudflare has been gently (and not so gently) nudging folks away from Pages for a while now. Their new option, Workers, promised to be bigger and better but I didn\u0026rsquo;t need it since I run a simple static site. Nonetheless, I tried deleting my Pages project to switch over, but it turns out you can\u0026rsquo;t do that with a single click if you have a lot of deployments. Their guide didn\u0026rsquo;t seem as straightforward as I\u0026rsquo;d hoped, but looking back, it\u0026rsquo;s actually pretty easy.\nSo\u0026hellip; I recently ran into an unrelated issue with my site, and my attempts to fix it pushed me try out different deployment environments. In the process, I gave in and moved everything over to Workers.\nI won\u0026rsquo;t bore you with the why, the differences, or other minutiae. Here\u0026rsquo;s what I\u0026rsquo;ll cover and how I did it:\nHow to clean up old Cloudflare Pages project. Configuring your Hugo site for the switch Migrating to Workers. Cleaning up the Old Pages Project The first obstacle, as mentioned, was simply getting rid of the old Pages project.\nCloudflare’s UI will happily let you click “Delete project” and then complain if you have a long deployment history. At least that\u0026rsquo;s the limitation at the time of writing. In my case I had hundreds of previous deployments since switching to Cloudflare Pages back in 2023. The workaround is a small Node tool they document that iterates through deployments and deletes them via the API.\nHere is there guide on the Known Issues page.\nI struggled with finding the correct Account ID, but even more with configuring the API token. Here\u0026rsquo;s what to note / rough steps:\nIf you\u0026rsquo;re like me and only have a single account, simply click the menu button next to your account name in the Cloudflare dashboard and select Copy Account ID. If that isn\u0026rsquo;t clear or you have multiple accounts, then follow the official guide: Find account and zone IDs. For the API token, simply head into your Cloudflare dashboard and go to My Profile \u0026gt; API Tokens. Click on Create Token and pick the Create Custom Token option. Give your token a name and these permissions: Scope: account‑level, not zone or user-level. Permission: Cloudflare Pages: Edit You can define how long the token will stay active under the TTL section or simply delete it after using it. Run the script to purge deployments until only the active deployment remains. Remove any custom domains in the Cloudflare Pages project setting and now delete the project. It\u0026rsquo;s actually pretty straighforward. Now we can think about migrating to Workers, but we first need to configure a few things.\nHow to Deploy a Hugo Site on Cloudflare Workers While Cloudflare hasn’t killed off Pages yet, it\u0026rsquo;s no secret that it isn’t getting the attention it used to. They even recommend starting with Workers.\nCloudflare Pages will continue to be supported, but, going forward, all of our investment, optimizations, and feature work will be dedicated to improving Workers.\nAdd a Wrangler Config Start by adding a wrangler.jsonc file to the root of your site. Workers use this file to understand how your Hugo site should be built and deployed.\n{ \u0026#34;name\u0026#34;: \u0026#34;insidemordecai\u0026#34;, \u0026#34;compatibility_date\u0026#34;: \u0026#34;2026-02-21\u0026#34;, \u0026#34;assets\u0026#34;: { \u0026#34;directory\u0026#34;: \u0026#34;./public\u0026#34;, \u0026#34;html_handling\u0026#34;: \u0026#34;auto-trailing-slash\u0026#34;, \u0026#34;not_found_handling\u0026#34;: \u0026#34;404-page\u0026#34;, \u0026#34;run_worker_first\u0026#34;: false }, \u0026#34;build\u0026#34;: { \u0026#34;command\u0026#34;: \u0026#34;hugo --gc --minify\u0026#34;, }, \u0026#34;workers_dev\u0026#34;: true, \u0026#34;preview_urls\u0026#34;: true } Replace the name field to match your domain or project name. You can adjust the compatibility date to the day you’re generating the config. The remaining defaults should work as-is.\nPin Workers to a Specific Hugo Version Note This section is totally optional. If you don\u0026rsquo;t need it, skip right ahead to the next section.\nWhile attempting to fix my previously mentioned unrelated issue, I tried to force Workers to use a specific Hugo version. I wasted a lot of time trying this, but Workers kept using a different version. After scouring the build logs, it turns out you don\u0026rsquo;t declare this in the wrangler.jsonc file since that only makes it a runtime variable.\nYou have two options if you want Workers to use a specific Hugo version:\nCreate a build.sh script and update the subsequent build line in the wranger.jsonc file. It worked, though in the end I didn’t need it for my issue. I’d like to think someone out there might find it helpful though. #!/bin/bash set -e # Pin to a specific Hugo version (update when needed) HUGO_VERSION=\u0026#34;0.155.3\u0026#34; HUGO_URL=\u0026#34;https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz\u0026#34; curl -sL \u0026#34;$HUGO_URL\u0026#34; | tar xz hugo chmod +x hugo HUGO_ENV=production ./hugo --gc --minify \u0026#34;build\u0026#34;: { \u0026#34;command\u0026#34;: \u0026#34;chmod a+x build.sh \u0026amp;\u0026amp; ./build.sh\u0026#34;, }, Configure it in your Workers project setting under the Variables and secrets option of the Build sub-section. Variable name: HUGO_VERSION Value: 155.3 (enter the version you want) I didn’t realise the second option existed at first, so you’re welcome for the script. Otherwise, I recommend the second option. It’s what I used back in Cloudflare Pages, and it’s just neater.\nCreate the Workers Project With everything in place, configure your Worker for deployment:\nOpen the Cloudflare Dashboard, press the Add button in the upper right corner, and select “Workers” from the drop down menu. Click on Continue with GitHub (or your preferred option) and choose the project repository. Name your Workers project. Leave the rest at their defaults. Click Deploy. With everything configured, Workers will build the site and deploy it. It should be live within a minute.\nConfigure Custom Domain Now it\u0026rsquo;s time to reconfigure the custom domains you used with your Pages project and be done with it, unless you want to stick with the default *.workers.dev URL.\nOpen your Workers project and navigate to the Settings tab. Under the Domains \u0026amp; Routes sub-section, click Add. Pick Custom Domain and enter your domain name. Click Add domain at the bottom and that\u0026rsquo;s it. Cloudflare will handle DNS configuration automatically.\nThat\u0026rsquo;s it, your Hugo site should be available on your domain in a couple of minutes.\nIf you deploy often and plan to keep scaling, Workers feels like the right long-term home. Pages still works, but it’s clear where Cloudflare’s focus is.\nExplore Further Host on Cloudflare Your frontend, backend, and database — now in one Cloudflare Worker Workers Compatibility dates Migrating from Cloudflare Pages to Workers - Do You Even Need To? - a different method to migrate. ","date":"21 February 2026","externalUrl":null,"permalink":"/hugo-migration-cloudflare-pages-workers/","section":"Posts","summary":"How I moved my site to Workers, including cleaning up a Pages project with many deployments.","title":"Migrating a Hugo Site from Cloudflare Pages to Workers","type":"posts"},{"content":"Like every previous year, Goodreads prompted me to set how many books I wanted to read as the year began. I had read 28 books in 2024 and you\u0026rsquo;d think this would have been the bare minimum for 2025, but no, I went a different route. 20 books seemed like a more reasonable target, with a twist: reading thiccc books.\nSo\u0026hellip; I typed out my reading goals in my notes app:\nRead 20 books Read at least one chunky book (~500 pages or more) Read more African literature at least one Kenyan author at least one Chimamanda Ngozi Adichie book Start on the GOT/ASOIAF series, continue the Red Rising series Read at least one (auto)biography or memoir Overview of books I read in 2025 So, how did this all pan out? I achieved my target, but not in terms of book size. The upside is that my average page count was 219 pages, up from 192 pages in 2024. Regarding A Song of Ice and Fire (the book series that Game of Thrones is based on), I never got to turn those pages but my priority was on the Dunk \u0026amp; Egg novellas due to the upcoming HBO series. I read A Knight of the Seven Kingdoms and loved it. George R.R. Martin has a way with words and world-building that has you deeply fixated on the book. I didn\u0026rsquo;t resume the Red Rising series and I really wish I had, though. Perhaps I wouldn\u0026rsquo;t have had a major reading slump. That said, it wasn\u0026rsquo;t a total loss.\nWith that out of the way, here are all the books I read in 2025 and some details of my favourite picks.\nBooks I read in 2025 Out of everything I read, a few stood out from the rest. My top recommendations in no particular order have to be:\nJames by Percival Everett I Who Have Never Known Men by Jacqueline Harpman Martyr! by Kaveh Akbar Half of a Yellow Sun by Chimamanda Ngozi Adichie Misery by Stephen King James is the first book (303 pages) I can remember ever reading in 24 hours. It\u0026rsquo;s a reimagining of Adventures of Huckleberry Finn told from Jim\u0026rsquo;s point of view. He goes on a dangerous journey as a runaway slave until he can figure out how to rescue his family. Percival Everett manages to weave in a bit of humour but even then, I can\u0026rsquo;t provide a description that will do this book justice. Just simply read it. If I was forced to pick my favourite book of the year, then this would be it.\nWhile James was gripping in its momentum, the next book stayed with me for entirely different reasons. I Who Have Never Known Men is the only non-5 star read on this list but it started life as a 3 star read before its upgrade to 4 stars. Simply because, the story stuck with me. It felt like a new take on an old tired idea of being the last man standing on earth. We follow the young main character alongside 39 other women in a dystopian and desolate world as the last people alive. Along the way, we get glimpses of hope but it\u0026rsquo;s quickly dashed every single time right till the final traumatising sentence. I have a positive spin on the outcome but I fear spoiling the book, so\u0026hellip; there\u0026rsquo;s a reply link at the bottom.\nStill thinking about meaning and survival, we move on to my next pick – Martyr!. Kaveh Akbar shifts between different points of view with lyrical writing and a unique structure to cover martyrdom. The main character is an Iranian boy living in America exploring the idea of making your death matter. Alongside this, the author covers themes of sobriety, grief, and identity with a sprinkle of humour to lighten the subject. Again, if I had a gun to my head, then I\u0026rsquo;d pick this as my second favourite book of the year.\nOne of my goals this year was to read more African literature, which is how I ended up with Half of a Yellow Sun. I\u0026rsquo;m always left in awe after watching a Chimamanda interview. I get the need to protest or take an action. I\u0026rsquo;d joke with myself that when I grow up, I want to be as eloquent as her. However, it felt sacrilegious to have never read a book from her so I started off with this. It\u0026rsquo;s a popular book and many Kenyans have at least heard of the title. I was not surprised by the writing and the detail in the book. What I wasn’t prepared for, though, were the events themselves. I was shocked by the accounts of the characters. The book is largely based on the Nigeria-Biafra war so this was a learning moment for me. It showcases how tribalism can lead to widespread bloodshed and degradation of humanity. Reading this in the present day made it feel uncomfortably relevant. We aren\u0026rsquo;t taught about this war in school but it totally should especially with some local leaders spewing tribal rhetoric at the time of reading. This book is a stark reminder that such division remains close to the surface, bubbling slowly as it waits for a moment of eruption. It\u0026rsquo;s very reminiscent of other tragedies across Africa with many rooted in, perhaps unsurprisingly, colonial era divide-and-conquer tactics.\nAfter all that emotional weight, my next pick is something completely different, a little more unsettling – Misery. This was my first foray into Stephen King\u0026rsquo;s massive catalogue and I was not disappointed. I mean what a writer! The book is basically a chilling tale on how obsession can turn hellish and how far a \u0026ldquo;fan\u0026rdquo; can go. It\u0026rsquo;s beautifully descriptive yet bleak in the best way and soul-crushing, especially because the horror feels so real and within the realms of possibility. This is such a gut-wrenching, gripping and unforgettable story.\nSo yeah, that was my reading year and those are my picks.\nWhich one do you like the sound of? How many books did you read? What was your best read of the year? Any other recommendations? I\u0026rsquo;d love to hear from you all.\nMy most read genres in 2025 Monthly overview of books I read in 2025 ","date":"6 January 2026","externalUrl":null,"permalink":"/2025-in-books/","section":"Posts","summary":"A look back at my 2025 reading year and the books I’d recommend.","title":"2025 in Books","type":"posts"},{"content":"","date":"6 January 2026","externalUrl":null,"permalink":"/series/my-reading-year-in-review/","section":"Series","summary":"","title":"My Reading Year in Review","type":"series"},{"content":"","date":"6 January 2026","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","date":"24 December 2025","externalUrl":null,"permalink":"/tags/streaming/","section":"Tags","summary":"","title":"Streaming","type":"tags"},{"content":"All I want for Christmas is to find that darn movie I’ve been meaning to watch. What was it called again? I could have sworn I bookmarked it somewhere…\n\u0026ndash; Janko Roettgers on Streaming wish lists are broken. Federation could fix them.\nLike many of you, I have a list that endlessly grows and that is a list of shows and films I want to watch. The process is always the same. I find something I like from YouTube, or a friend, or an article and I simply append it to my master list.\nFor a long time I tracked this on paper, but I made the switch to using TV Time very early on. The process remained the same but my list was now more \u0026ldquo;mobile\u0026rdquo;. With this switch to digital, my media tracking did not end up simpler, but much more segregated. I had a long list on Netflix, another on Plex (when I liked it back then), with some on Showmax while others were somehow on Google as well. Quitting Netflix made it quite a tedious process to migrate my watch list, but I soldiered on. I doubled down on having everything on TV Time and my setup was everything I could wish for. I could track what I wanted, get a heads up when my shows aired and plan around film releases.\nAll was rosy until the frustrations crept in. The app didn\u0026rsquo;t seem to improve, updates reduced, bugs here and there but that was just the tip of the iceberg. My biggest drawback with the app was (and still is) how laggy it became over the years. I would open the app and be faced with a spinning wheel for what seemed like an eternity. Sometimes I\u0026rsquo;d simply go back to where I got my recommendation and screenshot the film/show name or write it down to add to TV Time later.\nThe issues made it seem like I was moving back to the days when I had a single list on paper.\nSo in 2024, I spent some time on many subreddits searching for a different solution. Nothing could match my criteria and the perfect TV Time alternative eluded me. The simplicity of my setup with how I could track both my films and shows in one place was what I liked most. I didn\u0026rsquo;t want to opt for platforms that handle only one type of media.\nWith no success in my search, I caved in and finally signed up to Letterboxd and Serializd. I initially wanted to phase out TV Time but the force of habit made me think otherwise. So\u0026hellip; I juggled and still juggle three applications. Definitely not the ideal setup I signed up for.\nAnyway, the process of tracking anything goes like this nowadays: I watch a trailer that I like, fish out my phone, add it to TV Time, actively try to distinguish if the trailer is of a film/show and finally opening Letterboxd/Serializd to add it there too. This is in stark contrast to when I would simply watch something, pull up my phone and add it to TV Time.\nI really wish there was a simpler way to have your data. The huge issue in my case is having to do media tracking in multiple apps when federation seems like a logical solution. Janko Roettgers wishes for a future where you simply add something on Netflix and it gets federated across different applications.\nInstead of keeping all watch-list data in a silo, these services should enable consumers to opt into sharing it between services. That way, if I bookmark a movie on Netflix, the Netflix app shares that information with my Plex watch list. Once I watch it, it disappears from both lists again.\nIdeally, I’d want to have a bunch of different ways to enter this kind of data and just as many ways to consume it. Maybe I’d keep one master list maintained by Plex, Google, or another company. But I’d also want to be able to keep smashing that bookmark button in whatever streaming app I’m in and have all my lists across all providers update in real time.\n\u0026ndash; Janko Roettgers on Streaming wish lists are broken. Federation could fix them.\nFederation isn\u0026rsquo;t sexy but oh boy is it useful. Its end goal shouldn\u0026rsquo;t be social media lest it succumb to the same fate as the blockchain (stay with me) where ideology trumped practicality with crypto as its only major use case. Media tracking seems more feasible and practical than social media that\u0026rsquo;s proven difficult and high stakes. There won\u0026rsquo;t be a need for virality, moderation, or algorithmic manipulation. Just simple, low-frequency data.\nThe problem is who owns this data and not the platforms themselves. I remember how once a movie left Netflix, that\u0026rsquo;s how it also simply ceased to exist in your watch list with no remnant of what used to be. This is a loss of history and not just inconvenience. You end up losing proof it ever mattered to you and that\u0026rsquo;s why federation makes sense. The current solution makes the different places act like temporary custodians of this data. I should be able to easily migrate something as personal as my taste in media between platforms. Our bookmarks should be liberated and only then, will everyone (or at least those as nitpicky as myself) be happy.\nI know this is just but an idea that likely won\u0026rsquo;t materialise. Different networks and platforms have an incentive to keep you locked in. Watchlists act as an engagement tool to them. A way to reduce their subscription churn rate. What Janko Roettgers proposes benefits users, not platforms.\nFor now we can hope for one neutral, user-controlled list where apps act as clients. We can add once, mark as watched once, export our data anytime, and switch apps without losing years of history.\nI know no executive is reading this but I thought I\u0026rsquo;d chime in with my two cents. A guy can only wish, and in that spirit, happy holidays.\n","date":"24 December 2025","externalUrl":null,"permalink":"/watch-lists-federation/","section":"Posts","summary":"A case for federated watch lists","title":"The Fragmentation Problem of Watch Lists","type":"posts"},{"content":"Marques Brownlee sometimes mentions on his podcast that TV viewership of YouTube videos is on the rise. I have to say I fall squarely within this camp. The bigger screen makes everything, especially cinematic videos, so much more enjoyable. Using the remote also feels far more seamless than using a phone. A kid recently told me that\u0026rsquo;s the reason they watch Shorts on TV. I refuse to go down that path, but I understand their logic.\nThe downside to watching on TV is that I\u0026rsquo;m spending more time on the home page. This habit has also spilled over onto my laptop.\nI\u0026rsquo;ve long had my YouTube bookmark set to lead me straight to my subscriptions page, where I would sift what I want to watch and add it to my Watch Later playlist. That playlist became my home for all my media needs. This worked flawlessly by allowing me to watch from my favourite creators while not falling into an uncontrollable crave for new videos.\nAt the moment, I still operate from my Watch Later playlist but the source of the videos has changed. Some still come from my subscription page, but an increasing amount is coming from our YouTube overlords. The TV app spits you straight onto the home page where the almighty algorithm tries its best to grab you with its hooks. And, well\u0026hellip; I\u0026rsquo;ve definitely been grabbed. That sounded wrong 😂 but you get me. I end up scrolling the home page as I add videos to my main playlist along the way.\nPerhaps ironically, I came across this video earlier today and it does seem to address a part of this issue (it doesn\u0026rsquo;t solve landing on the YT home page – I might just have to learn to avoid/tolerate it). Lilla Björn Stationery recommends having a media journal. She writes down all the videos she wants to watch in a list and crosses them off one by one. She even went above and beyond to colour-code it depending on the type of video it is. It feels a little extreme to keep tabs of your media this way but that is not far from what I used to do a couple years back.\nIn high school, I used to have yearly notebooks where I\u0026rsquo;d jot down fun (questionable) stories, poems and other random things but there was always one constant in each notebook, a media section. Being in a boarding school with no access to mobile phones or internet, I would always write down what I wanted to research, watch and listen to at the back of my book. Once the school holiday began, I\u0026rsquo;d start with what was on my list before trying other things and the cycle would repeat itself in the next school term. That\u0026rsquo;s not too far from what the video suggests.\nI\u0026rsquo;d be lying if I said I\u0026rsquo;d do that again but it does beg me to question my intentionality in media consumption. My system has worked for years, but it crumbles when I can\u0026rsquo;t avoid the home page. Perhaps I can embrace it by choosing to only add a video to my Watch Later playlist if it appears on the first screen that pops up instead of scrolling endlessly.\nThat way I can balance recommendations from the algorithm (which sometimes are golden), from friends and newsletters, and videos from my favourite creators. As a personal recommendation, check out Tom Scott\u0026rsquo;s weekly newsletter. He shares about three good videos every Monday, some links to interesting articles and a few of his own stuff.\nMoral of the story: watch your YouTube habits. It’s the one social platform that pretends it isn’t one.\nAnyway, go touch some grass and try some hobby.\n","date":"10 December 2025","externalUrl":null,"permalink":"/living-with-too-many-recommendations/","section":"Posts","summary":"Notes on watching with fewer scrolls and more intention","title":"Living With Too Many Recommendations","type":"posts"},{"content":"","date":"10 December 2025","externalUrl":null,"permalink":"/tags/media-consumption/","section":"Tags","summary":"","title":"Media Consumption","type":"tags"},{"content":"","date":"10 December 2025","externalUrl":null,"permalink":"/tags/youtube/","section":"Tags","summary":"","title":"YouTube","type":"tags"},{"content":"","date":"3 December 2025","externalUrl":null,"permalink":"/tags/apple-music/","section":"Tags","summary":"","title":"Apple Music","type":"tags"},{"content":"Besides Mariah Carey having fully thawed, it\u0026rsquo;s that time when we all realise how much we repeat the same tunes over and over while pretending we\u0026rsquo;ve discovered something new. Just kidding. Additionally, for the second year running, I\u0026rsquo;m prioritising posting my music recap on here.\nOverall, when it comes to the big number everyone likes to share, I had 57,645 total listening minutes – pretty much in line with every year from 2023.\nSo\u0026hellip;. let\u0026rsquo;s get down to it.\nThe elephant in the room is I actually stuck with Apple Music after switching to it back in February, so this year\u0026rsquo;s recap is a little fragmented. I\u0026rsquo;ll probably post about my time away from Spotify at some point, but I\u0026rsquo;m enjoying my time off.\nMy 2025 Apple Music Replay Overview My 2025 Spotify Wrapped Overview Anyway, if we take a short view back to the recent past, I dove into Radiohead\u0026rsquo;s discography last year and \u0026ldquo;saying I love them is a massive understatement\u0026rdquo;. I was shocked/disappointed that they didn\u0026rsquo;t make any of my 2024 list but my god are they all over it this year. Oh, they showed up.\nI listened to Radiohead for a whopping 1,731 minutes, with In Rainbows leading my Top Albums list. The Bends came in third, and OK Computer rounded it out in ninth. I never used to understand why certain songs of theirs held onto me, but the last year and a bit has made it very clear: give me anything melancholic, floaty, or drenched in bewitching vocals, and I\u0026rsquo;m gone.\nDurand Bernarr was my second-most-listened artist, and once again, I\u0026rsquo;m not shocked. He released BLOOM which took over my May, but he\u0026rsquo;s always been someone I revisit a lot. His Tiny Desk Concert is one of my all-time favourites, along with his many appearances on The TERRELL Show. Now that I\u0026rsquo;ve mentioned Terrell: y\u0026rsquo;all need to seriously listen to The Terrell One Million Show or watch it. It\u0026rsquo;s rather amazing. There are so many great covers and mashups on there. My Testimony / Let Go by Kelontae Gavin and Masterpiece (Mona Lisa) by Riley are my favourites. The latter was on repeat so much that my parent now randomly sings it whenever someone mentions the name \u0026ldquo;Mona Lisa\u0026rdquo;.\nBack to the recap: I\u0026rsquo;ll be honest, Somebody That I Used To Know was the only Gotye song I knew since it went viral, until late last year when I discovered State of the Art in some reaction video and immediately loved it. That one and Hearts a Mess are my favourites, but do yourself a favour and listen to his entire album, Making Mirrors.\nMelanie Fiona also had her moment in my year. Her appearance on the blue wall reminded me how incredible she is, and I ended up looping It Kills Me and 4AM in March and April\u0026hellip; and apparently the entire year. She really had a grasp on the 2000s music scene, and it\u0026rsquo;s such a shame she never got the recognition she deserved.\nTo wrap things up: Tame Impala finally released something new, but I\u0026rsquo;m still stuck on Currents. I\u0026rsquo;ll definitely listen to it soon. A Jeff Buckley documentary also dropped, which I haven\u0026rsquo;t watched yet – but I enjoyed revisiting his 1994 album Grace. If you\u0026rsquo;ve listened or watched either, let me know how they are.\nI also enjoyed the latest rap entry by Joey Valence \u0026amp; Brae, HYPERYOUTH in November. Tyler, The Creator fans will definitely enjoy this too. The features are great and their interview on turning the tables Podcast is a fun watch too.\nFinally, I surprisingly liked Spotify Wrapped this year, even though mine was based on only a few months of usage. I guess they took the flack they got last year to heart – though with this year\u0026rsquo;s controversial headline about the platform and Daniel Ek, maybe not.\nAnyway, here are all the screenshots for you to scour through if you\u0026rsquo;re inclined. I didn\u0026rsquo;t break down everything in them, but there are definitely some gems.\nSo here\u0026rsquo;s my little call to action, send me a song recommendation from your recap, why you like it, and maybe a thought about mine (a song/artist you also love, a question, anything). If you want, you can send your recap screenshot too. My email inbox is open.\nFor now – till next year.\nMy Apple Music Top Albums My Apple Music Top Artists My Apple Music Top Songs My Apple Music Top Genres My Apple Music Top Albums by Month My Apple Music Top Artists by Month My Apple Music Top Songs by Month My Spotify Top Albums My Spotify Top Genres My Spotify Top Songs ","date":"3 December 2025","externalUrl":null,"permalink":"/apple-music-replay-2025/","section":"Posts","summary":"Quick overview of my 2025 music listening patterns.","title":"Apple Music Replay 2025 (and a bit of Wrapped)","type":"posts"},{"content":"","date":"3 December 2025","externalUrl":null,"permalink":"/tags/music/","section":"Tags","summary":"","title":"Music","type":"tags"},{"content":"","date":"3 December 2025","externalUrl":null,"permalink":"/series/my-music-year-in-review/","section":"Series","summary":"","title":"My Music Year in Review","type":"series"},{"content":"","date":"3 December 2025","externalUrl":null,"permalink":"/tags/spotify/","section":"Tags","summary":"","title":"Spotify","type":"tags"},{"content":"Guess what? I use Arch btw 😂. Kinda. I got the Omarchy bug recently and migrated from vanilla Arch Linux — if you can call it that.\nFor context, I\u0026rsquo;ve been a serious Linux dual-booter for nearly ten years but went full-time about four years ago. I wouldn\u0026rsquo;t say I\u0026rsquo;m a Linux sage or a Penguin whisperer, but neither am I a noob. I wouldn’t recommend Arch as a first Linux flavour for someone jumping ship from Windows 10 now that it\u0026rsquo;s discontinued — that honour probably goes to Linux Mint, but it\u0026rsquo;s becoming surprisingly easy to use.\nAbout a year and a half ago, I got myself a MacBook, and that presented the perfect opportunity to change my setup. My interest in Arch had been growing, and I felt safe enough to risk stability now that my old laptop was relegated to backup duty for the shiny new kid on the block. I booted Fedora off the HP and fired up archinstall.\nFor the uninitiated, archinstall is a simple automated install script for Arch Linux. It simplifies the process greatly. This reminded me of my first time installing Linux back in 2017 in the form of Kali Linux with its step-by-step Debian installer (I think that\u0026rsquo;s what it\u0026rsquo;s called?). The installation was super straightforward and didn\u0026rsquo;t take long. Heck, I even repeated it on an even older 2011 Dell Inspiron (the chunky kind). Back to the story: I was greeted with a nice, minimal KDE Plasma desktop environment and everything was rosy. It didn\u0026rsquo;t last long though — I quickly ran back to GNOME like the simpleton I am, but that wasn\u0026rsquo;t due to instability. I had covered my bases there by opting for an LTS kernel from the get-go. The switch was simply down to my preference for the clean GNOME experience and perhaps years of muscle memory.\nThen the YouTube gods performed their magic trick and made me question if they have my microphone tapped. Videos of archinstall started showing up — negative ones though. I found creators (also, some bloggers and Redditors) looking down on people using install scripts like archinstall. Preaching that you must take the long, convoluted route, like it\u0026rsquo;s some rite of passage. I mean, sure, it\u0026rsquo;s okay to take the scenic route if you want to learn, but that doesn\u0026rsquo;t have to be the constitutional method of installation.\nAnd that\u0026rsquo;s where it gets funny. The same folks who claim Arch is about freedom and the choice to tinker are the ones deciding how \u0026ldquo;real\u0026rdquo; users should install it. Isn\u0026rsquo;t that preaching water while drinking wine? If you can\u0026rsquo;t accept someone\u0026rsquo;s way of setting up their system, maybe the whole philosophy flew right by you. That\u0026rsquo;s just the epitome of Linux elitism. Not everyone needs to spend a couple of hours (exaggerated of course) partitioning drives manually just to prove a point. If anything, tools like archinstall make Arch more accessible — less of a secret cult, more of an open invitation. That should be celebrated, not mocked.\nSo for goodness\u0026rsquo; sake, stop gatekeeping Arch Linux. At the end of the day, the install command doesn’t define the user — the way they use and tweak their system does.\nMy time with it has been amazing, and I will vehemently argue that Omarchy isn\u0026rsquo;t a distro but Arch with extra flair on top. So in a sense, I still use Arch btw 😏.\nExplore Further Arch \u0026amp; Hyprland - The Future of Linux? by The Lunduke Journal Why Linux Is Both a Religion and a Meme (And That\u0026rsquo;s Beautiful) by Anton Van Assche 🧠 Arch Linux: Not Just an OS — A Philosophy of Choice by Devika Elitism, Identity, and the Open Source Community by Matthew (TechTea) This Is What\u0026rsquo;s Wrong With The Linux Community by Kev Quirk ","date":"1 November 2025","externalUrl":null,"permalink":"/linux-is-not-a-religion/","section":"Posts","summary":"Apparently, using archinstall is a crime now. Who knew?","title":"Linux Is Not a Religion","type":"posts"},{"content":"Perhaps the universe willed me on after writing the previous article, or maybe it was just sheer luck. After expressing my regret about deleting old pieces and media, I decided to dig through some things in storage, and what a surprise lay before me. I found a few old novels and novellas I’d completely forgotten about, and even better, a couple of notebooks were mixed in there too.\nAll my early write-ups used to start on paper, and because of that, I now have access to some of my old poems, articles, and stories — some finished, others still in draft form.\nI won’t lie, they’re a bit cringey as expected, but over the coming weeks and months I’ll figure out how to upload them here. I’m not planning to actively promote them, but I’m genuinely excited to have recovered what feels like my lost archives.\nDiscovering them felt as if I’d stumbled upon a portable teleportation device. In an instant I was pulled back: old habits, old friends, and familiar places flashing through my mind. Each scribble, sketch up, sticky note, and all sorts of attachments in the notebooks carried a piece of who I used to be — a quiet reminder of how much of that version of me still lingers, and how much has changed.\n","date":"13 October 2025","externalUrl":null,"permalink":"/found-the-cringe/","section":"Posts","summary":"I found the old stuff, and maybe a bit of me along with it.","title":"Found the Cringe","type":"posts"},{"content":"","date":"30 September 2025","externalUrl":null,"permalink":"/tags/archiving/","section":"Tags","summary":"","title":"Archiving","type":"tags"},{"content":"I pride myself on having old photos backed up somewhere, and I also cheekily threaten some friends with posting their old photos but the irony never escapes me.\nIt always seems much easier to laugh at others\u0026rsquo; old stuff than face your own. So, my younger self went on an innocent purging spree of any photo I found somewhat embarrassing. I even tore up some old writing from notebooks and deleted old blogs I had from about 2014.\nThe purging spree might also have been down to a fear of judgement or a desire to curate an image but that feels like the least of my worries now. The notion that an old piece of work is not fit for existence seems very archaic to me now. Archiving is crucial — it\u0026rsquo;s why sites like The Wayback Machine exist, to recover our lost memories by preserving scraps of what might otherwise disappear.\nI get frustrated with my younger self when I recall some obscure memory, a project, a piece of writing, or a particular photo I can’t quite place. I end up questioning whether my memory is playing tricks on me. Did this moment even exist, or is my mind exaggerating it?\nLuckily, I recovered some of the important photos, but most of my old write-ups are gone forever. The writing was probably not all that impressive and less polished than it is now (not that it is all that right now, but you get me), but that is perhaps what I crave. There is a sense of growth in the cringe that comes with looking back. Progress feels more real when you have tangible old pieces to measure yourself against.\nWhat this experience taught me is that there\u0026rsquo;s nothing wrong with \u0026lsquo;over-backup\u0026rsquo;. I\u0026rsquo;m not at the hoarding level where I refuse to delete anything, but I pause and think before aimlessly purging now. Maybe one day I\u0026rsquo;ll even celebrate the cringey stuff by sharing a crazy photo or video. The funny thing is, I feel less ashamed of sharing an old cringey piece of writing than I do a photo but that\u0026rsquo;s a thought for another day.\nWe\u0026rsquo;ve all had an embarrassing era: a deleted Tumblr page, old blogs, or near-ancient Facebook albums. I think we should embrace the \u0026ldquo;mess\u0026rdquo; as part of the story. I wish we all kept more of it — the raw, messy, and authentic proof of who we’ve been — because perfection was never the point.\n","date":"30 September 2025","externalUrl":null,"permalink":"/save-the-cringe/","section":"Posts","summary":"On why the embarrassing stuff is worth keeping.","title":"Save the Cringe","type":"posts"},{"content":"The loss of a dear pet is one of the hardest things to bear. I’ve lost pets before, in different ways, but nothing truly prepares you for the slow, painful anticipation of a loss you see coming.\nIt all started when my guard dog, Odie, missed his rabies shot. If only he could talk to remind us, nudge us. I was oblivious, until a few nights back when the signs began to show. The vet confirmed it, and more painfully still, there’s no choice but to watch him go, slowly.\nHe’s fighting a battle he can’t win, and he seems to know it. He isn’t wild or restless but just lies there quietly waiting for dusk to come. His exit will be gracious (if that word even fits), full of dignity… but I still can’t bring myself to accept it. Maybe writing this down, setting it free, will help.\nHe may just be a guard dog, not a house pet curled up on the couch, but words can’t quite hold his absence and the emptiness left behind. I named him after the dog from my favourite childhood movie — Garfield. The resemblance was there — he had the same look, the same naivety and even the cheerfulness. Not to forget his little beef with my cats (little Garfields themselves). He was the bully though 😂.\nWe expect him to guard the stars tonight but he is deeply missed.\nRun free, little one.\n","date":"30 July 2025","externalUrl":null,"permalink":"/odie/","section":"Posts","summary":"A short, honest goodbye and the silence that remains.","title":"Odie","type":"posts"},{"content":"","date":"30 July 2025","externalUrl":null,"permalink":"/tags/personal/","section":"Tags","summary":"","title":"Personal","type":"tags"},{"content":" Someone shared this photo recently as a status update and it had me intrigued. I didn’t want to repost it because I thought it had an air of uncoolness but the statement is grounded in truth.\nWe all have a unique relationship with music. We scour different sources to discover new music. Some of us go deep, digging through obscure corners of the internet for new gems. Others stick to radio hits or build a collection of vinyls and high-end setups.\nWhatever the approach, music can be more than just a personal escape. It can bridge the gap in our relationships.\nWe lose touch with old friends as life changes. Sometimes I want to reconnect with some but never quite know where to start. There\u0026rsquo;s always the fear that a simple \u0026ldquo;hey\u0026rdquo; might open doors I\u0026rsquo;m not ready to walk through \u0026ndash; there\u0026rsquo;s always too many questions and much more explaining.\nBut maybe music can be that spark.\nSo, if you\u0026rsquo;re reading this and feel like reconnecting, you can send me a song, however you want. It could be a tune that reminds you of yours truly, one I sang (or butchered), a new favourite, or one to express the pain I caused you or any other passionate feeling.\nAnd hey, it doesn\u0026rsquo;t have to be me. If someone else comes to your mind, reach out to them. I\u0026rsquo;m sure, just like me, they\u0026rsquo;d love to hear what\u0026rsquo;s playing on your end.\n","date":"3 June 2025","externalUrl":null,"permalink":"/send-me-a-song/","section":"Posts","summary":"How music might help reconnect with old friends.","title":"Send Me a Song","type":"posts"},{"content":"","date":"8 May 2025","externalUrl":null,"permalink":"/tags/email/","section":"Tags","summary":"","title":"Email","type":"tags"},{"content":"Guess what? Email is not dead! And this is yet another post about emails 😬\nOf course email is not dead and might not die any time soon but it might as well be declared a relic of the past in regards to informal communication and that’s quite sad.\nI feel like it should not be used purely for work, newsletters, scams, receiving codes when we sign up for yet another account and such.\ni have a quest for you - to make email something you cherish. \u0026ndash; Jes Olson\nThere is something interesting about communicating through a slow medium in the modern age (relative to instant messaging) that gets rid of the pressure to be constantly accessible 24/7 and encourages a more thoughtful message.\nAlso, please don’t make personal email formal with your ‘Best Regards’, ‘Sincerely’ and the many corporate alternatives out there. Don’t bother with rules of capitalisation, play around ala Margo from John Green\u0026rsquo;s Paper Towns. Attach funky gif, rick-roll someone. Spice it up a bit, show some personality.\nOn a different note, I have recently reconnected with old friends via email. Most of them find it odd but what’s a mere mortal got to do when someone changes their phone number for some reason or moves country and you lose touch. Email often is the only constant in this case.\nWe should use email more to connect with each other. To start it off, if you have anything you want to share with me, send me one. Ask me about my hometown or country, my experiences, previous topics I’ve written about, tech, music, reading, anything really. Don’t be shy, just write away.\nIf you don’t know where to get my details, hint hint, my contact page has something 😂.\nExplore Further Email is Still Useful there is beauty in the minimalism of email Just Use Email - a site dedicated to the various ways people and small to medium-sized businesses (SMBs) should Just Use Email Email is not dead. But email IS changing. ","date":"8 May 2025","externalUrl":null,"permalink":"/email-is-not-dead/","section":"Posts","summary":"Make Email Cool Again.","title":"Email Is Not Dead","type":"posts"},{"content":"After 10 years on Sweden’s finest app, 4000+ liked songs, a bunch of playlists and 100+ albums, I made the switch to Cupertino just over a month ago.\nThis wasn’t an easy decision to make. It took a couple of months, and this time it might be for real. I still love Spotify and it’s hard to hate on it.\nSo… Why the Switch? I know Spotify are trying to be profitable and being the everything audio app is their strategy but I like my music player being just a music player.\nObjectively, the app became a bit more bloated and messy as soon as they started shoving all the podcast crap down our throats, and that was just the start. Don’t get me wrong, I do love me some podcasts, but the experience is quite lacklustre on the green behemoth compared to dedicated podcast apps. On a side note, do yourself a favour and use Pocket Casts or something else for podcasts, you’ll thank me later.\nThe algorithm, which I consider to be their biggest asset, started to deteriorate. Connect bugged out on me for a couple of months. Shuffle kept repeating the same five songs that also appeared on every playlist. I got the same old recommendations and nothing that explored the waters like before. I discovered more new songs from my social circles than my music player, unlike before. All this, just started to stain the app’s experience for me.\nI first realised I wasn’t fully satisfied when YouTube Music officially launched in Kenya in 2023. I gave their free trial a shot - twice actually. The audio quality was slightly worse but the algorithm was significantly better. I rediscovered old favourites and new songs that I would go back and add on my Spotify playlists. Ultimately, I didn’t like the app but this proved once again that the streaming king didn’t have a firm grip on its throne.\nSo, my 4-year student plan came to an end and this felt like the most natural time to start over.\nWhy Apple Music, Though? I first felt the urge to switch when Apple introduced lossless audio, but back then, the experience on the other side was still amazing. As soon as that changed, the lure of switching became greater.\nThis is not my first rodeo with Tim Cook’s app but it sure does feel like a fresh start. The UI is clean and more polished with less clutter like the TikTok-like feeds across the garden. The lyrics view is amazing compared to how Spotify just regurgitates text from Musixmatch. The animated cover art is amazing. It strikes a good balance between freshening things up while maintaining the ethos of the album cover unlike Canvas that I always disabled on the other side.\nThe biggest difference though is the audio quality. Audiophiles will tell you that you can’t truly experience lossless audio wirelessly due to the inherent deficiencies of Bluetooth. That’s true, but I primarily use wired In-Ear Monitors (IEMs) and the difference is night and day.\nAdele does background vocals on My Yvonne by Jack Peñate and this was one of the first songs I played. The difference in audio quality was immediately noticeable that it had me questioning if the arrangement was slightly different.\nIt feels like tracks are more dynamic with a different mix and better instrument separation. A drum might pack more punch, the bass might be tighter, the strings might be more lifelike, the vocals might have a slightly different timbre etc. Every song is just a bit fuller.\nMy appreciation of music has been refreshed and this makes the transition worth it.\nMaking The Jump The process is quite easy with the different playlist transfer tools available, but one can struggle with the paradox of choice.\nI used a mix of the free offering by SongShift and Playlistor and they were good. They missed less than 4% of my library which isn’t all that good but not too bad.\nAnother amazing and highly recommended tool is Playlisty. It worked well for my short playlists, and I would have paid to use it, but I wanted something free.\nIt remains my top recommendation though (plus its paid option is not a subscription).\nI highly recommend you read the comparison article linked below by Frida B.\nNot Gonna Lie, It’s Not All Sunshine and Rainbows I struggled with the UX in Apple Music especially when it comes to library organisation and some other small things but I’ve got a hang of it all.\nI’m yet to miss the social aspect but I’m well aware I’ll have to contend with sticking out like a sore thumb while using the fruit company’s jukebox.\nThe biggest thing I’m missing, though, is Spotify Connect.\nConnect is super easy and very useful. I switch from my phone to laptop quite a lot and the ability to open the app anywhere and simply resume playback is great. Frankly, Apple should blatantly copy this feature because Connect is woefully underrated. I hate that I have to start my music all over when switching devices. For now, AirPlay is a decent “equivalent” but this is only available in the walled garden.\nWould I Ever Go Back? Right now, I simply don’t know.\nSpotify could fix some of the major grievances I had, finally ship HiFi at a decent price and I would switch back. Apple could significantly change prices and I would reconsider. Either of them could introduce a revolutionary feature and I would follow them or to throw a spanner in the works, I could do an A/B test and discover I can\u0026rsquo;t tell the difference between lossy and lossless audio and my life has been a lie.\nThere are quite a number of things both companies or their competitors could do to sway me one way or another but I’m satisfied with where I am for at least the next couple of months.\nMy ideal option would be simply owning my music with a collection of lossless audio files, an iPod Classic and a decent pair of IEMs but a guy can only dream for now.\nExplore Further: Playlist Transfer Tools: Which is best? Spotify VS Apple Music - Does lossless matter? - explains if your platform supports true lossless. What are IEMs? ","date":"2 April 2025","externalUrl":null,"permalink":"/spotify-to-apple-music/","section":"Posts","summary":"Going over why I’m switching from Spotify to Apple Music","title":"Bye Spotify, Hello Apple Music","type":"posts"},{"content":"I refreshed Unread a few moments ago only to find three posts with the same title as this. And guess what? They all coincidentally reference each other.\nI started with Kev’s post, then Manu’s and finally Dalton’s. Upon reading those, I thought why not give this a go, after all, I’ve never participated in any blogging challenge.\nWhy did you start blogging in the first place? This all started around 2014 in high school with my first blog. Back then, I was very confident of my writing and even had the ambitions of publishing. I no longer share that ambition with my younger self but I still enjoy the act of writing.\nI found writing to be an outlet to be more open and creative. My blog was something some schoolmates found surprising in contrast to how I was a bit more reserved to some of them.\nAt some point in my teenage years, my motivation was recognition and perhaps fame while trying to emulate my contemporaries and those I looked up to. Ultimately, I still think the current iteration remains to be an outlet for what comes to mind.\nWhat platform are you using to manage your blog and why did you choose it? I love the idea of static site generators with how flexible and extremely lightweight they are and as such I’m currently using Hugo hosted on Cloudflare Pages.\nHugo is file based where all my posts and configurations are just Markdown files granting me full control of my site unlike other closed and often bloated offerings. It might not be the easiest option for those who are not tech-savvy but all it takes is a little curiosity and a can-do attitude to get started.\nThe community behind Hugo is also a big factor behind my decision, I can easily find resources online to help me set up or fix something.\nHave you blogged on other platforms before? Yes! I started with Blogger when Google+ was my jam.\nFor most of my time writing online, I’ve had two concurrent blogs on different platforms sometimes due to my curiosity while constantly changing them. Inevitably I’ve used Tumblr, WordPress, Medium and everything in between.\nHow do you write your posts? I currently start my writing on Apple Notes with all the necessary Markdown syntax be it on my phone or laptop. I try to write one sentence per line. Afterwards, it’s just a matter of quickly proofreading it, improving sentence structure if needed since I typically end up rambling on and finally correct grammar. Of course mistakes end up on the published piece, I correct them sometimes, I never realise sometimes and sometimes I couldn’t care less. It’s a part of blogging.\nWhen do you feel most inspired to write? Most of my posts tend to be in response to something new I have discovered, read or listened to. This can be from my growing collections of blogs I read, podcasts, books I dive into, news stories and even music sometimes.\nOften times, though, inspiration comes when I least expect it to. I might be in the shower, in public transport, running or walking. In such a situation I simply just note something down on Apple Notes or record a voice memo and get to it when I have the time.\nDo you publish immediately after writing, or do you let it simmer a bit as a draft? I would love to say that I publish immediately after my final full stop but I rarely do that. This post is one of those few instances I’ve done that.\nIn some cases, I let it simmer for quite some time as I collect the necessary resources, information or form a coherent well articulated thought.\nOn most occasions though, I let it sit for a few hours before hitting the enter button.\nWhat\u0026rsquo;s your favourite post on your blog? Hmm, this is a tough question. On some days it’s I don’t like streaks, on another it’s On Single-Use Devices and sometimes The Joy of Libraries.\nEither way, I find Manu’s answer of “Always the next one” as the best way to look at this question.\nAny future plans for your blog? I find Hugo ticks all my boxes at the moment. I’m also satisfied with Blowfish by Nuno Coração, it’s clean, well documented, constantly improving and I contribute to it at times.\nBasically, I don’t have immediate plans but I know for a fact something will change in the far future.\nThose are my answers to the Bear Blog challenge, it felt very therapeutic answering them and I would urge anybody with a website to answer them. Let\u0026rsquo;s keep this rolling!\n","date":"7 January 2025","externalUrl":null,"permalink":"/blog-questions-challenge/","section":"Posts","summary":"Why I blog, my inspiration, the platform in use and other questions","title":"Blog Questions Challenge","type":"posts"},{"content":"","date":"7 January 2025","externalUrl":null,"permalink":"/tags/blogging/","section":"Tags","summary":"","title":"Blogging","type":"tags"},{"content":"","date":"7 January 2025","externalUrl":null,"permalink":"/tags/meta/","section":"Tags","summary":"","title":"Meta","type":"tags"},{"content":"This was meant to be posted end of last year but as a result of the festivities and perhaps procrastination, here we are.\nI wrapped up the year having read 28 books surpassing my reading goal of 20 books. That may sound impressive but my 2024 reads were filled with small and medium sized books with my average page count being 192 pages proving that my fear of chunky books remains present.\nOverview of books I read in 2024 The books that really stood out for me and I highly recommend were Madeline Miller’s The Song of Achilles, Philip Besson’s Lie With Me, Ray Bradbury’s Fahrenheit 451, Pierce Brown’s Red Rising (which I intend to continue with the series) and Elif Shafak’s The Island of Missing Trees.\nBooks I read in 2024 A film that I find amazing and I’ve watched more than once is Life of Pi. Why am I talking about a film? Well, I was rudely surprised that it’s actually based on a book. I read it and loved it especially the exploration of Pi’s relationship with religion which was only briefly mentioned in the film.\nAnyway, my greatest discovery in the world of texts and characters was audiobooks as a direct result of a book slump.\nAs reading slumps go, I had one during a period of uncertainty mid-2024. I wasn’t interested in anything whatsoever and I had no way of getting out of this vicious rut. Out of nowhere, the least expected item came to my rescue - House of The Dragon.\nI had never watched Game of Thrones and I wasn’t intending to. This was down to my preconceived notions, it being eight seasons long and the joke that is the series finale (spoiler alert: I watched all eight seasons in a week) but House of The Dragon was still fresh and enticing… I dove right in and binged season one, caught up with season two as it aired and after the final episode, I was sold on the entire Game of Thrones franchise but more so the books as well.\nA friend suggested I should get an Audible free trial to read George R.R. Martin’s Fire \u0026amp; Blood and so I gave this a go. I got a wickedly nice three-month Audible Plus trial with two monthly credits. Since I didn\u0026rsquo;t intend to keep the subscription, I hatched the quite original plan to \u0026ldquo;buy\u0026rdquo; all the chunky books on my to be read list. With that, I finally tried out some of the free books only available with my Audible Plus trial.\nI had never seriously tried audiobooks before but what a lovely way to get off a reading slump! I listen to a lot of podcasts so this came naturally to me. I know some people don\u0026rsquo;t rate audiobooks but isn’t the end goal to consume high quality books so if someone prefers it in audio form then let them be. Nevertheless, out of the need to be more attentive, my system was to listen to the books while following along the text on my Kindle and this served me well.\nI highly recommend audiobooks to anyone who has second-guessed them or if you want to get off a reading slump.\nAnyhow, here are two extra screenshots to summarise my 2024 reading, you can also have a look at my Goodreads profile for my book ratings/reviews or my 2024 Year in Books. Also, tell me about your 2025 reading goals/plans and recommend some reads you find interesting.\nCheers ✌️\nMy most read genres in 2024 Books I finished in 2024 and the month I finished them in ","date":"3 January 2025","externalUrl":null,"permalink":"/2024-in-books/","section":"Posts","summary":"Quick overview on my 2024 in reading.","title":"2024 in Books","type":"posts"},{"content":"","date":"20 December 2024","externalUrl":null,"permalink":"/tags/libraries/","section":"Tags","summary":"","title":"Libraries","type":"tags"},{"content":"James from James’ Coffee Blog wrote The Joy of Bookshops and just the title sparked something within me inspiring this piece.\nI barely frequent bookshops or libraries. Actually, I don’t think I remember the last time I was in one despite being an avid reader but when I try to recall them, I get pleasant memories. It’s a fact that they were becoming less popular worldwide but perhaps the only good thing out of TikTok is that BookTok has rekindled reading.\nMy experience and memories with libraries is more about the emotions and sensation than even the books themselves - which is odd.\nWhen I was a kid I used to visit shagz (grandparent’s hometown) over the holidays. Days would be spent reconnecting with cousins, telling stories, walking around the town and other typical activities but sometimes I went to the library. This was the only public library in my shagz. It was grand and it felt like being transported to a different world when you walk in.\nPrevious Next Photo credits: The Kenya National Library Service The area was secluded among trees, it was calm with mostly the sounds of birds and nature and out of this serene environment sprang this stone library. I remember the lady at the front desk was not too welcoming but that would never dampen my joy. The building inside was massive with different sections depending on your age. I always wanted to explore the big boys section, and I did sometimes, but the front desk lady had a keen eye. There were books and more books towering over my younger self, you would think that was the entire knowledge base of the world but thank god I was wrong.\nMaybe I\u0026rsquo;m nostalgic with clouded memory and perhaps the library might not have the same feel to it, but the experience was glorious back then.\nBack in primary school, one of the schools I was at was still new and expanding and as such we had this tiny library. That’s an overstatement, it was more of a small room you borrowed from but didn’t overstay your welcome. There were books everywhere, on the shelves and piles on the floor. At some point we had a requirement to read a certain number of books every week and have a short synopsis of them so this was somewhere I frequented. The place might have seemed claustrophobic but that was far from what I felt. It’s like getting a big tight hug or having a cup of hot chocolate when it’s cold outside.\nThis experience isn’t just with physical libraries, I enjoy books based on experiences at bookshops or libraries. Japanese books have beautiful covers and a subset within them are books with bookshops on the cover. It’s basically a cheat code to have me read something, I mean that’s how Satoshi Yagisawa got me to read Days at The Morisaki Bookshop.\nI know this might not be representative of everyone’s experience with bookshops or libraries but these places are cozy and welcoming.\nIf only they sold coffee then perhaps they might be profitable cause nothing beats reading with your favourite hot beverage by the side. Paired up with the woody smell of old books, the moody lighting, the mosaic of textures when you run your fingers along book spines and the perfectly damped soundscape as if the books conspired to hush every sound that dared to intrude. It’s a feeling that fully envelopes you and tingles all your senses, and boy oh boy would I want more of them in Kenya.\n","date":"20 December 2024","externalUrl":null,"permalink":"/joy-of-libraries/","section":"Posts","summary":"Exploring the allure and vibes of libraries from my past","title":"The Joy of Libraries","type":"posts"},{"content":"I thought I’d post my Spotify Wrapped on this corner of the internet this year and not just on social media.\nIt’s not Christmas, but it’s that time of the year to unwrap our music taste, discover how basic it is and have our egos crushed. Being a Wednesday, I expected Wrapped to drop any time soon but nothing came while I jealously watched Apple Music users share their Replay. As I drove back home, I kept wondering, who would end up on my list alongside Adele?\nI have a list of albums to get to, be it to explore new artists or delve deeper into the discographies of some of my favourite musicians. Top on that was Pink Floyd’s The Dark Side Of The Moon and Radiohead’s In Rainbows and I managed to get to them. Saying I love them is a massive understatement because I absolutely devoured those two albums, I was definitely expecting them to make an appearance. Lo and behold, they did not make it.\nMy Spotify Wrapped 2024 Summary I got home and my top two songs came as no surprise to me. I have a soft spot for ballads that I can learn from while stretching my vocal pipes — no wonder Adele is my favourite artist.\nTEEKS has mentioned before that he listens to Adele and the inspiration is clear on Without You. He delivers an emotive performance with just the piano for accompaniment. The background vocals join in and they are just so ethereal and velvety like embracing a cloud, the same could be said of Tamino’s Arabian touches. I had never heard of Tamino before but Indigo Night and Habibi took over my life for some time. The writing, tender runs and other captivating vocal nuances have you in awe.\nThe simplicity in those songs make them stand out. I want to me close my eyes and get lost in their world as sounds envelope my ears.\nThe other top songs are:\nGloRilla - Wanna Be (with Megan Thee Stallion) Billie Eilish - BIRDS OF A FEATHER Adele - Love In The Dark and here\u0026rsquo;s the full list. I love Beyoncé and, retrospectively, it makes sense she appeared on my list but I did not expect her to top it. I was in disbelief until I realised she dropped COWBOY CARTER this year and I finally gave RENAISSANCE another go on top of my usual Beyoncé rotations. Clearly the data doesn’t lie, heck I was top 1% of her listeners.\nBillie Eilish had quite an amazing year. HIT ME HARD AND SOFT was a masterpiece in my books with great production from FINNEAS. We get glimpses of Billie’s emotions with poignantly rich lyrics exploring different topics from love, sexuality, weight and everything in between. This is an album where something will deeply resonate with you.\nI don’t have much to say about Doja Cat besides she’s a talented well-rounded artist. Mooo! is a satirical play on words and classic tunes while poking fun at the rap landscape of the time. You could say the track was childish, but it was fun. I still love it and that’s what got me onto her music back then.\nJames! James! James! My friends will probably tell you he’s the only artist I speak so much about besides the obvious one starting with an A. He’s my favourite male vocalist and producer of recent years with his angelic voice.\u2028I constantly revisit Friends That Break Your Heart which was my first full album from him. It’s the easiest entry point into his rich catalogue that stretches all the way back to his experimental electronic origins.\nPerhaps this list wasn’t a surprise after all.\nMy top genres would probably have been Pop, Rap, R\u0026amp;B, Rock and EDM, in that order, if Spotify had included them this year. That’s just one of the disappointing misses of Spotify Wrapped 2024. Who would have guessed firing the entire office would be a detriment to them?\nAnyway, what was on your Spotify Wrapped this year? And what would you definitively recommend I should listen to?\nHere\u0026rsquo;s my Top Songs of 2024 playlist.\nSpotify Wrapped 2023 \u0026amp; 2022 I won\u0026rsquo;t retroactively post articles of my previous ones but here\u0026rsquo;s the data, playlists and social media posts of the time.\n2023 Top Songs Top Artists 1. RAYE - Escapism. (with 070 Shake) 1. James Blake 2. James Blake - Mile High (feat. Travis Scott) 2. Metro Boomin 3. Metro Boomin - Creepin\u0026rsquo; (with The Weeknd \u0026amp; 21 Savage) 3. Doja Cat 4. Frank Ocean - Pink + White 4. Adele 5. Metro Boomin - Metro Spider (with Young Thug) 5. Rihanna Minutes Listened: 56,787 Top Genre: Pop, Rap, Pop Dance, R\u0026amp;B, Alternative R\u0026amp;B Playlist: Top Songs of 2023 Social Media Posts: Tweet, Thread, Skeet 😂 2022 I\u0026rsquo;m still shocked by the total minutes listened but I guess that\u0026rsquo;s what endless hours of programming uni projects does to your stats.\nTop Songs Top Artists 1. James Blake - Life Is Not The Same 1. Adele 2. FKA Twigs - Two Weeks 2. Kendrick Lamar 3. Lil Dicky - Molly (feat. Brendon Urie of Panic at the Disco) 3. Kanye West 4. Elaine - You\u0026rsquo;re the One 4. Doja Cat 5. Doja Cat - Streets 5. James Blake Minutes Listened: 117,052 🤯 Top Genre: Pop, Rap, Alternative R\u0026amp;B, EDM, Afropop Playlist: Top Songs of 2022 Social Media Posts: Tweet 2018 - 2021 Sadly, I just have the playlists from between 2018 and 2021 but not any other data. I can only recall that Adele topped the list every year and there was an increase in minutes listened every consecutive year.\nWith that, cheers ✌️.\n","date":"11 December 2024","externalUrl":null,"permalink":"/wrapped-2024/","section":"Posts","summary":"Quick overview of my 2024 music habits.","title":"Spotify Wrapped 2024","type":"posts"},{"content":"While relaxing with a freshly brewed cup of coffee in hand, I got this wave of inspiration. The thought was always around but I could never find a way to put it in writing. This time I was enthralled in a flow state, the words were floating around, spilling onto my keyboard and within no time I was done with the draft of my previous post.\nI gave it a quick read and for the first time I knew I had to ask someone else to review my work.\nI don’t like having my creation “reviewed” or “approved” since after all, this is MY personal corner of the internet.\nThe reason for this exception is I was dealing with a contentious topic and of course I didn’t want to offend anyone. You have tread delicately nowadays and walk on egg shells while handling certain topics. Additionally, you could put out something and have it haunt your future self. Is that the best way to live? I doubt that.\nI think the problem is we are living publicly either through social media or under the media’s watchful eye if somehow you are a celebrity reading my site. Previously you would stumble your way through your mistakes and come out the other end a better human without fear of some old tweet resurfacing. Sadly, that’s no longer possible.\nWe should have more leeway since each one of us changes their ideologies and opinions throughout their life. If you don’t then, you’re not growing or good on you for getting it right from the beginning.\n","date":"28 November 2024","externalUrl":null,"permalink":"/cancelled/","section":"Posts","summary":"Why I second-guessed my previous post.","title":"Fear of Being Cancelled","type":"posts"},{"content":"I struggle with the pronouns ‘they/them’ but let’s get things straight, I do not hate or discriminate against people who use these pronouns or the queer community at large. Quite contrary so please approach this with an open mind.\nGenuine relationships are hard to come by, so you do you. You may not feel comfortable in your own skin or fit a certain mould, and to each their own. I’ll say goodbye to your old name and call you by your new one. I’ll even make sure others respect your wishes and help you feel comfortable.\nWhat I struggle with is referring to a single person as ‘they/them’. My challenge might stem from trying to be grammatically correct. In that sense, I recognise ‘they’ as a third person pronoun that pairs with the verb ‘are,’ and that’s where difficulty lies. ‘Are’ just oozes plurality making it difficult to say something like ‘they are eating’ to describe someone’s actions. Additionally, it can be hard to comprehend, especially if the person you’re speaking to isn’t aware you are referring to a single individual.\nShould communication be challenging? Definitely not. That’s why, in most cases, I don’t mind if someone mispronounces something or has a typo as long as the message gets across. Regarding pronouns, I think this is one of those situations where everything is evolving right in front of us. All I can do is be open-minded, adapt and treat everyone like I’d want to be treated.\nYou might ask yourself, how does this affect me given my location? I barely get to refer to someone using ‘they’ due to the rarity of finding non-binary individuals. Despite that, in random discussions, I end up talking about some non-binary people, such as Sam Smith due to my love for music. Another situation is social media. I form connections with various people and I respect them. I actually refer to them using their preferred pronouns, though sometimes I might forget or slip and use a binary pronoun. That’s probably down to English and years of language habit.\nI’m curious about your feedback and would genuinely like to get your take on this. There’s a reply-by-email link at the bottom (please keep responses respectful). Share materials with me, your experience, and let’s have a genuine chat.\nCheers!\n","date":"16 November 2024","externalUrl":null,"permalink":"/pronouns/","section":"Posts","summary":"Navigating preferred pronouns, language, and the learning curve.","title":"I Struggle with Some Pronouns","type":"posts"},{"content":"There are some songs that just feel grand and Iron Sky is absolutely one of them.\nThe songs starts off with a slow and deep string. You almost get the feeling something heavy is lingering which is foreshadowing the message that Paolo will deliver. Some piano chords join in with the drums for percussion.\n27 seconds into the song is when Paolo soulfully comes in. With his raspy yet powerful voice, he enunciates his words and paints an image. The image is that of a city that is working FOR something or someone bigger similar to slavery. How people are turning to religion for salvation, but he questions if that is the ultimate source of power.\nIn the chorus, the painting is that of how people in authority use love and hate to politically charge us against each other. We are urged to overcome fear and get freedom.\nAfter a couple bars of instrumentations and reflection, the painting continues. You get to see how governments can skew reality and truth in their favour and how the masses can quickly gobble it up. We blindly follow those filled with greed, bitterness and hate.\nAs we return back to the chorus, we find it slightly changed. Passionate as ever but now some brass instruments chime in. Contrary to the first chorus where Paolo was making an observation and addressing us, this time he uses the pronouns ‘we’ to show he is part of us and wants us to unite - “we’ll rise.”\nWe also get the refrain where he urges us to hold on despite the all-consuming emotions used against us.\nOn top of that he brilliantly weaves in a powerful excerpt of Charlie Chaplin’s speech from The Great Dictator (1940).\nTo those who can hear me, I say, do not despair.\nThe misery that is now upon us is but the passing of greed, the bitterness of men who fear the way of human progress. The hate of men will pass, and dictators die, and the power they took from the people will return to the people.\nAnd so long as men die, liberty will never perish. Don\u0026rsquo;t give yourselves to these unnatural men!\nMachine men with machine minds and machine hearts!\nYou are not machines, you are not cattle, you are men! You, the people, have the power to make this life free and beautiful, to make this life a wonderful adventure. Let us use that power.\nLet us all unite!\nI haven’t watched the film but it is a satirical comedy by Charlie Chaplin. The situation was dire considering he was known for silent pictures. This time he talks and voices his disapproval of the atrocities that was happening in Europe as World War II began.\nThroughout Charlie Chaplin’s speech, the guitarist strums along as the excerpt is used to stylise the message Paolo has been painting. The instrumentation builds up as well as Charlie and we conclude that ultimately the power is with the people.\nThe final painting is that of a nation that is divided by the political class.\nWe come back to the chorus feeling charged with this newfound knowledge. We can unite and rise over the current lows of our cold society and freedom is nigh.\nAfter following Paolo’s journey through the song, you get the urge to start a revolution.\nMany find Charlie Chaplin’s speech in the film to be one of the greatest speeches and I agree with them. It is about the climate in the late 1930s but boy oh boy is it still relevant today. In the end it’s about the love for humanity among all.\nIron Sky adds to that and is relevant in the political landscape in Kenya right now with the recent anti-government protests but also in most parts of the world.\nExplore Further Paolo Nutini - Iron Sky - live session at Abbey Road. Charlie Chaplin’s final speech from The Great Dictator in full Mo Adeniran performing Iron Sky on The Voice UK during his Blind Audition - this is how I discovered the song a couple of years back. Spoiler alert: he picked Jennifer Hudson and eventually won the season. The Great Dictator trailer - more of a clip than a trailer but I guess it still works and it’s quite metaphorical. The Great Dictator’s Wikipedia page ","date":"16 October 2024","externalUrl":null,"permalink":"/iron-sky/","section":"Posts","summary":"My understanding of a politically charged song by this well renowned Scot.","title":"Iron Sky by Paolo Nutini","type":"posts"},{"content":"Years ago, I left comments on people’s blogs which led to interesting discussions and even friendships. I\u0026rsquo;d like to return to that habit because it encourages interactions, and learning.\nA few months back, I responded to a post by Niq via email and I found the interaction quite pleasant albeit short. He even shared with me extra details on my latest post at that point.\nThrough this interaction, I realised the benefits of this feature on a website, which led me down a rabbit hole of old posts I read before from Niq and Kev Quick.\nThat’s when I noticed many independent blogs have a \u0026lsquo;Reply by Email\u0026rsquo; option. I liked it due to its simplicity.\nSo you might ask yourself, what is \u0026lsquo;Reply by Email\u0026rsquo;? It’s simply a way to leave a comment but via email 😂\nEmail has been there for years and everyone has it so you don’t need to create an account to leave a comment. It also minimises spam because few will put in the effort just to send irrelevant comments. Additionally, email encourages fleshed-out responses unlike the quick \u0026rsquo;nice read\u0026rsquo; comments typical on social media.\nI could go on but I recommend you read Niq’s and Kev Quirk’s post on it.\nWith all that, I got to working, developed the feature for Blowfish, and it’s now live on this website - feel free to give it a try.\n","date":"10 September 2024","externalUrl":null,"permalink":"/reply-by-email/","section":"Posts","summary":"Introducing blog comments via email.","title":"Reply by Email","type":"posts"},{"content":"Thank you for expressing interest in my blog! You can subscribe to this website via RSS by copying this link into your feed reader:\nhttps://insidemordecai.com/index.xml For the uninitiated, check out About Feeds or RSS Made Easy to learn more about RSS. You\u0026rsquo;ll thank me later!\nI recommend either of these feed readers:\nNetNewsWire - What I currently use. Free and open source (iOS/Mac). Inoreader - allows 150 subscriptions on the free plan (iOS/Android/Web). Unread - core features available for free (iOS/Mac). Need a hand? Don’t hesitate to reach out — I’ll show you the light! 😂\n","date":"29 August 2024","externalUrl":null,"permalink":"/subscribe/","section":"Mordecai Kipng'etich","summary":"Information on how to subscribe to this website.","title":"Subscribe 🤩","type":"page"},{"content":"If you enjoy my content and feel generous, here are some ways you can support what I do and fund my coffee/tea addiction:\nBuy Me a Coffee / Ko-fi PayPal You can also contact me to collaborate and make something cool! If anything on here strikes a chord, you can repost/quote and tag me while at it to let me know.\nThanks a lot - I appreciate it! 😊\n","date":"28 August 2024","externalUrl":null,"permalink":"/support/","section":"Mordecai Kipng'etich","summary":"If you enjoy my content and feel generous, here are some ways you can support what I do and fund my coffee/tea addiction:\nBuy Me a Coffee / Ko-fi PayPal You can also contact me to collaborate and make something cool! If anything on here strikes a chord, you can repost/quote and tag me while at it to let me know.\n","title":"Support ☕","type":"page"},{"content":" The source code for this website is available here. Credits Currently, this site is hosted on Cloudflare Workers and built using Hugo static site generator and Blowfish theme by Nuno Coração.\nThe background image is by Hassaan Here on Unsplash.\nPrivacy This site makes use of GoatCounter which is an open-source and privacy-friendly web analytics platform to view basic analytics.\nAdditionally, Cloudflare logs some analytics but I can assure you, I don\u0026rsquo;t do anything with this data or even check it on most occasions.\nFinally, this is not a billboard and as such no ads are in place.\nUsage and License This site is licensed under the Creative Commons BY-NC-SA 4.0 International license \u0026ndash; feel free to use any content provided you credit me and don\u0026rsquo;t use it commercially.\n","date":"27 August 2024","externalUrl":null,"permalink":"/colophon/","section":"Mordecai Kipng'etich","summary":"Technical information about this website","title":"Site Information 🛠️","type":"page"},{"content":"","date":"21 August 2024","externalUrl":null,"permalink":"/tags/camera/","section":"Tags","summary":"","title":"Camera","type":"tags"},{"content":"","date":"21 August 2024","externalUrl":null,"permalink":"/tags/dumbphone/","section":"Tags","summary":"","title":"Dumbphone","type":"tags"},{"content":"","date":"21 August 2024","externalUrl":null,"permalink":"/tags/ereader/","section":"Tags","summary":"","title":"EReader","type":"tags"},{"content":"","date":"21 August 2024","externalUrl":null,"permalink":"/tags/ipod/","section":"Tags","summary":"","title":"IPod","type":"tags"},{"content":"Recently, I find myself watching and reading materials on single-use devices. My YouTube home page is filled with videos about iPods, e-readers, dumbphones, and other similar devices.\nWhy do I gravitate towards content about dedicated devices? Why are more people creating content around this topic? I’ve also noticed more content about physical media and ownership.\nWhile going through my bags in my room earlier last month, I found an old digicam, a Sony Cyber-shot W710, and to my surprise, it worked perfectly. I could still post the old photos on it to social media, and no one would question the image quality. I mean, it would lose when put side by side with a Google Pixel, but it was a cheap entry-level digicam back then. Since discovering it, I get the urge to take more photos; I even went on a run with it since it’s pocketable.\nModern smartphones will be better than most single-use devices, but sometimes they can suffer from being a ‘Jack of all trades and master of none.’ Digging The Greats in his iPod miniseries (linked below) analogised this to a Swiss army knife. When you want to do some task, you don\u0026rsquo;t instinctively go for the multi-tool but rather a dedicated more capable tool.\nThe main areas that appeal to me about single-use devices are that they excel at what they are made for and they don’t carry the baggage of distractions that come about with smartphones. I’ll use the example of an e-reader. I own a Kindle and I can confidently say it is significantly superior to a smartphone or an iPad at reading. The screen is perfect, the battery lasts an eternity, and to tie in the other aforementioned reason, I get to have a proper reading session where I am not bombarded with notifications and other forms of distractions.\nIt’s not the manufacturer’s fault, but big tech companies want eyeballs on their apps, and this has brought forth dire consequences, but that’s a topic for another day.\nI think the popularity of these devices will continue increasing as more and more people want to rid themselves of dependency on smartphones.\nTruth be told, there is also a huge aspect of nostalgia that gets me (and probably a lot more people) googly eyes. Is that even a saying/phrase? I think you know what I mean though.\nI never thought I’d be the one to enjoy this regression back to the mid-2000s, but I kinda like it. A dumbphone for calls, messages, MPESA, and basic functionality, iPods for music, e-readers for reading, a camera for photography.\nWhile we’re at that, can someone make a dumbphone with decent Spotify (where\u0026rsquo;s lossless audio?) and a proper digital-to-analog converter (DAC)? Please!\nDigging The Greats\u0026rsquo; iPod Miniseries From time to time, I watch videos by Digging The Greats and he just started this 4-part miniseries of his experience listening to music on just an iPod for a month. The first video is what made me want to make this post of what\u0026rsquo;s been on my mind and as such I also recommend watching the miniseries.\nHe naturally goes through various stages until his eventual resolution to make technology work for him and more of a tool.\nUsing This iPod For 30 Days Changed My Life The REAL Reason Algorithms are Bad For Culture (iPod Week 2) I Dumb-i-fied my iPhone and Got My Life Back (iPod Week 3) - personal favourite! How to Use Technology WITHOUT the Addiction (iPod Week 4) ","date":"21 August 2024","externalUrl":null,"permalink":"/on-single-use-devices/","section":"Posts","summary":"Thoughts on the appeal of dedicated gadgets in a smartphone era","title":"On Single-Use Devices","type":"posts"},{"content":"Posting on here is great, but often times I get a bigger smile engaging with different people to discuss music, books, projects, get feedback and anything under the sun.\nYou could try to reach me via social media but I have a complicated relationship with it. The easiest and most reliable way to get me is via email. After all, email is not dead, so open up your preferred app and email mk [at] insidemordecai [dot] com.\nAlso, if you use iMessage, you can ping me with the same email.\nPhysically, you\u0026rsquo;ll often find me in Nakuru or Nairobi. If you\u0026rsquo;re around, we can have a chat over coffee.\nReach out, I promise I don\u0026rsquo;t bite.\n","date":"19 August 2024","externalUrl":null,"permalink":"/contact/","section":"Mordecai Kipng'etich","summary":"Details on how to contact me","title":"Say Hello 👋","type":"page"},{"content":"","date":"12 August 2024","externalUrl":null,"permalink":"/tags/google/","section":"Tags","summary":"","title":"Google","type":"tags"},{"content":"Recently, Google ‘killed’ Chromecast and launched a new product. As expected, media outlets ran with titles in the vein of ‘Yet another Google product is killed’.\nIt’s odd, but not surprising, that Google keeps ‘killing’ beloved products that are recognisable in favour of the sometimes bland ones, with added complexity and a touch of confusion for the end-customer.\nThey also have an identity crisis with Gemini and Assistant. Heck, Bard was a really good name and they had some sort of clear distinction back then. Look at the Google Duo, Google Meet (Original), and Google Meet mess, but I digress.\nIn this case, Google didn’t really kill Chromecast but rather rebranded it into a much more capable device with a generic name. You can’t convince me Google TV Streamer was the best name they could come up with. The problem is, with time, we’ll just get used and possibly attached to this name right in time for them to ditch it.\nThey somehow always make it seem like they have killed certain products when in most cases they could easily spin it off that they’ve merged features into another product while retaining a beloved name.\nIf marketed properly, then we wouldn’t have the infamous Google Graveyard, or the bodies would have been significantly fewer.\nUltimately, I think it’s a marketing issue.\n","date":"12 August 2024","externalUrl":null,"permalink":"/google-killing-products-marketing-issue/","section":"Posts","summary":"Thoughts after Google ‘killed’ Chromecast","title":"Google ‘Killing’ Products Is Just a Marketing Issue","type":"posts"},{"content":"Apple is working on bringing watchOS 11 in a few weeks, and one of the features that got people excited is the ability to have rest days on the Apple Watch.\nIt’s amazing how that wasn’t possible before, but I’m glad it’s here. The human body needs to rest, and as such you wouldn’t expect someone to work out every day just to close their ring.\nA lot of apps employ similar gamification strategies, which is unhealthy, and I hate it.\nI used to be a huge Snapchat user, and its streaks feature ensured I opened the app every single day even if I wasn’t inclined to do so. That little fire emoji next to a friend’s name with the number of how many consecutive days you’ve sent pictures to each other was really valuable.\nHowever, things started changing. On top of outgrowing the app, it started to feel like I’m forcing myself to keep the 1000+ streaks active.\nIt’s quite telling when it reaches a point where you’re doing the bare minimum just to keep a streak active.\nOn Snapchat, that’s usually a black photo with a lightning bolt or fire emoji. On Duolingo, that’s taking one short lesson or a practice session.\nI mean, it’s desperate if a Bible app introduces gamification. Yes, you can spin it that it’s getting people to read a scripture every day but that’s not usually the case. Someone can simply open the app and close it swiftly after. I began to dislike this feature in YouVersion Bible and I’m not alone.\nThose are just three examples of apps that I quit or barely use because of gamification.\nI think we, as developers, should re-evaluate if apps really need gamification added to them. For some, the strategy is to ensure constant use of their apps but it shouldn’t be the case.\nOf course, it will seem like turning a huge ship since in most cases some big tech is involved but generally, something needs to change as it’s clearly becoming unhealthy for most.\nExplore Further Inside the global computer crash - have a listen to this The Vergecast podcast (starts after the Crowdstrike IT outage discussion) where Adrian Hon talks about his experience with Fitness apps and his approach to co-creating the popular fitness game Zombies, Run! without including streaks and aggressive notifications but relying solely on a good storyline/motivator: Broken Streaks and Broken Hearts. Cheers ✌️\n","date":"24 July 2024","externalUrl":null,"permalink":"/on-gamification/","section":"Posts","summary":"Critiquing gamification in apps for engagement.","title":"I don't like streaks","type":"posts"},{"content":"","date":"15 June 2024","externalUrl":null,"permalink":"/tags/electric-vehicles/","section":"Tags","summary":"","title":"Electric Vehicles","type":"tags"},{"content":"Recently, The Verge had this headline about the EU imposing more tariffs on Chinese electric vehicles (EVs). This mirrors similar actions by the US and to me, it screams of hypocrisy.\nOn one hand, Western countries preach free trade yet these tariffs clearly contradict that. I know this might be to protect their local markets/companies but what irks me the most is this is particularly something that hinders the global effort towards tackling climate change.\nThey talk about countries switching to clean energy within a certain timeframe and sometimes in a condescending manners when to be fair most African countries rely on mainly green sources of energy - I acknowledge generalising.\nIt feels wrong when China have put their money where their mouth is and developed something that is good for the global goal of decarbonisation and all that. They are producing really good EVs from the likes of BYD at a lower price than its competitors.\nLook at European brand, most of them manufacture their EVs in China, leveraging Chinese EV architecture that they have clearly perfected.\nThere is the argument that the Chinese government is unfairly playing its hand with the subsidies but I don’t think the end-consumer cares.\nThese tariffs and similar discussions shouldn’t be a thing when your goal is to transition from internal combustion engine (ICE) vehicles rapidly.\nThe relevant people should practice what they preach and foster actual competition that will result in better innovation around battery tech and ultimately economies of scale will work its wonders to bring EVs to the masses.\n","date":"15 June 2024","externalUrl":null,"permalink":"/western-hypocrisy-on-chinese-evs/","section":"Posts","summary":"Protecting markets or stifling EV innovation?","title":"Western Hypocrisy on Chinese EVs","type":"posts"},{"content":"","date":"24 December 2023","externalUrl":null,"permalink":"/tags/amazon/","section":"Tags","summary":"","title":"Amazon","type":"tags"},{"content":"","date":"24 December 2023","externalUrl":null,"permalink":"/tags/kindle/","section":"Tags","summary":"","title":"Kindle","type":"tags"},{"content":"We all have those items that linger in our Amazon baskets. For over a year, the Kindle Paperwhite sat patiently on my wish list, awaiting the moment when I could muster enough willpower (and perhaps some extra cash under my mattress) to check out.\nFinally, I stumbled upon someone with a Kindle device, but it was the Basic version. Everything about it appealed to me, including the smaller size that I had previously thought would be less than ideal. This alone convinced me to finally get my own Kindle Basic.\nJust go ahead and check out if you have a product that you\u0026rsquo;ve wanted for some time.\nI\u0026rsquo;m definitely not promoting needless spending. Heck, I waited a bit longer to snag a Black Friday offer. My philosophy is that you should only do this for items that have gathered dust in your basket but you find yourself going back to frequently.\nSo, just get that Kindle.\n","date":"24 December 2023","externalUrl":null,"permalink":"/wishlist-to-reality/","section":"Posts","summary":"Just buy that product in your wishlist - that is what I did","title":"Wishlist to Reality","type":"posts"},{"content":"Some of you might have noticed that I\u0026rsquo;m gradually shifting the tone and style of my writings on this blog. I\u0026rsquo;m moving away from more technical articles to focus on personal opinion pieces. While still centred around tech, these posts will lean less on \u0026lsquo;how-to\u0026rsquo; and more on \u0026lsquo;here\u0026rsquo;s why.\u0026rsquo;\nI may include a few technical articles occasionally but not too often. Additionally, I might explore other topics of interest.\nI don\u0026rsquo;t want to box myself into a small corner, considering that my life has been anything but that. Looking at Manu Moreale\u0026rsquo;s blog and 47nil among others, I\u0026rsquo;ve come to appreciate the freedom to write as little as a one-liner, a paragraph, or something longer, without feeling compelled to reach a certain length.\n","date":"27 November 2023","externalUrl":null,"permalink":"/more-think-pieces/","section":"Posts","summary":"Update on the evolution of this website","title":"Less Technical, More Think Pieces","type":"posts"},{"content":"Roundabout 100 people from the streets, ask them about subscriptions, and you\u0026rsquo;ll find that nearly everyone is familiar with the concept, unlike a few years ago - at least here in Kenya. Most likely, the majority among them have an active subscription.\nDo I like subscriptions? Not really, but I don\u0026rsquo;t have a strong opposition to them, especially when done right.\nWhat I definitely don\u0026rsquo;t like is everything becoming a subscription - seems everything has got a toll booth these days. From the controversial locking certain built-in features in vehicles behind a paywall to certain platforms offering subscriptions but still bombarding you with ads - it\u0026rsquo;s like paying for a quiet library and getting a live concert.\nSubscriptions used to be an ad-free and privary-respecting alternative to the free services we are used to.\nOne bad example is the entertainment industry - not only is it getting pricier but also more fragmented. It\u0026rsquo;s increasingly becoming better and easier to resort to piracy and use solutions like Plex/Jellyfin or your local media player.\nPerhaps we should switch to local-first solutions or self-hosting everything but not everyone is tech-savvy enough to DJ their own digital content.\nMost of the content on the web is a labour of love and for now, I support subcriptions especially when it contributes to the creation of content I enjoy but I hope something changes, be it the profit-hungry business models or the economic system itself.\nTo conclude, have a listen to this Vergecast podcast that delves into the dilemma of self-hosting: An impossible journey into self-hosting | The Vergecast\n","date":"9 November 2023","externalUrl":null,"permalink":"/subscriptions/","section":"Posts","summary":"Delving into current subscription complexities and advocating for changes","title":"On Subscriptions","type":"posts"},{"content":"","date":"9 November 2023","externalUrl":null,"permalink":"/tags/subscriptions/","section":"Tags","summary":"","title":"Subscriptions","type":"tags"},{"content":"","date":"7 September 2023","externalUrl":null,"permalink":"/attic/","section":"Attics","summary":"","title":"Attics","type":"attic"},{"content":" Use Table of Content to quickly jump to desired section WIP: Still updating this post whenever something comes up. Download Windows/Office Images For Windows disk images, you can get the latest versions directly from Microsoft via these links:\nWindows 10 Windows 11 Alternatively, you can download Windows/Office using sites that host the image files. Microsoft provides consumer ISOs for free on their site, but other versions, and crucially older ISOs are locked behind paywalls thus various sites have popped up that host the files on their servers such as:\nmassgrave.dev/genuine-installation-media tb.rg-adguard.net (the OG) Activating Windows/Office It\u0026rsquo;s a constant game of cat and mouse between Microsoft and unofficial activators and as such the information below may easily get outdated. For the latest activation scripts, check massgrave.dev (MAS).\nWindows Disable your third-party antivirus if applicable. For ESET, this will mean disabling real-time protection and HIPS. Windows will re-enable Windows Security, so we will need to disable it. Head over to virus and threat protection settings, disable all the options Head over to app and browser control, then into reputation based settings and disable all the options For Windows 8/8.1, open Windows Defender and disable real-time protection. Open KMS Auto Net (no need to unzip) Run the executable Select activation and pick Windows After activation, re-enable Windows Security Re-enable your third-party antivirus Office For Office 2016, follow the same instructions as Activating Windows but upon running the KMS software, select Office.\nFor Office 2019, open Powershell as an administrator and run this command:\nirm https://massgrave.dev/get | iex From there, follow the guide selecting relevant numbers to activate Office.\nFor Office 2021:\nCopy the script below into notepad and save it. @echo off title Activate Microsoft Office 2021 (ALL versions) for FREE - MSGuides.com\u0026amp;cls\u0026amp;echo =====================================================================================\u0026amp;echo #Project: Activating Microsoft software products for FREE without additional software\u0026amp;echo =====================================================================================\u0026amp;echo.\u0026amp;echo #Supported products:\u0026amp;echo - Microsoft Office Standard 2021\u0026amp;echo - Microsoft Office Professional Plus 2021\u0026amp;echo.\u0026amp;echo.\u0026amp;(if exist \u0026#34;%ProgramFiles%\\Microsoft Office\\Office16\\ospp.vbs\u0026#34; cd /d \u0026#34;%ProgramFiles%\\Microsoft Office\\Office16\u0026#34;)\u0026amp;(if exist \u0026#34;%ProgramFiles(x86)%\\Microsoft Office\\Office16\\ospp.vbs\u0026#34; cd /d \u0026#34;%ProgramFiles(x86)%\\Microsoft Office\\Office16\u0026#34;)\u0026amp;(for /f %%x in (\u0026#39;dir /b ..\\root\\Licenses16\\ProPlus2021VL_KMS*.xrm-ms\u0026#39;) do cscript ospp.vbs /inslic:\u0026#34;..\\root\\Licenses16\\%%x\u0026#34; \u0026gt;nul)\u0026amp;echo.\u0026amp;echo =====================================================================================\u0026amp;echo Activating your product...\u0026amp;cscript //nologo slmgr.vbs /ckms \u0026gt;nul\u0026amp;cscript //nologo ospp.vbs /setprt:1688 \u0026gt;nul\u0026amp;cscript //nologo ospp.vbs /unpkey:6F7TH \u0026gt;nul\u0026amp;set i=1\u0026amp;cscript //nologo ospp.vbs /inpkey:FXYTK-NJJ8C-GB6DW-3DYQT-6F7TH \u0026gt;nul||goto notsupported :skms if %i% GTR 10 goto busy if %i% EQU 1 set KMS=kms7.MSGuides.com if %i% EQU 2 set KMS=e8.us.to if %i% EQU 3 set KMS=e9.us.to if %i% GTR 3 goto ato cscript //nologo ospp.vbs /sethst:%KMS% \u0026gt;nul :ato echo =====================================================================================\u0026amp;echo.\u0026amp;echo.\u0026amp;cscript //nologo ospp.vbs /act | find /i \u0026#34;successful\u0026#34; \u0026amp;\u0026amp; (echo.\u0026amp;echo =====================================================================================\u0026amp;echo.\u0026amp;echo #My official blog: MSGuides.com\u0026amp;echo.\u0026amp;echo #How it works: bit.ly/kms-server\u0026amp;echo.\u0026amp;echo #Please feel free to contact me at msguides.com@gmail.com if you have any questions or concerns.\u0026amp;echo.\u0026amp;echo #Please consider supporting this project: donate.msguides.com\u0026amp;echo #Your support is helping me keep my servers running 24/7!\u0026amp;echo.\u0026amp;echo =====================================================================================\u0026amp;choice /n /c YN /m \u0026#34;Would you like to visit my blog [Y,N]?\u0026#34; \u0026amp; if errorlevel 2 exit) || (echo The connection to my KMS server failed! Trying to connect to another one... \u0026amp; echo Please wait... \u0026amp; echo. \u0026amp; echo. \u0026amp; set /a i+=1 \u0026amp; goto skms) explorer \u0026#34;http://MSGuides.com\u0026#34;\u0026amp;goto halt :notsupported echo =====================================================================================\u0026amp;echo.\u0026amp;echo Sorry, your version is not supported.\u0026amp;echo.\u0026amp;goto halt :busy echo =====================================================================================\u0026amp;echo.\u0026amp;echo Sorry, the server is busy and can\u0026#39;t respond to your request. Please try again.\u0026amp;echo. :halt pause \u0026gt;nul Rename the file to change the file extension to .cmd (instead of .txt).\nIf you can\u0026rsquo;t see the file extension, head over to File Explorer and enable file extensions.\nRun the script as administrator\nIf it fails to reach a server, try it over and over. When successful, it will prompt you to read the MS Guides blog. Type Y if you\u0026rsquo;d like to read it or N for no.\nResolve \u0026lsquo;Get genuine Office\u0026rsquo; Warning If Office prompts you to get genuine office, copy the command below, paste into text document and save it with a .cmd file extension.\n\u0026#34;C:\\Program Files\\Common Files\\microsoft shared\\ClickToRun\\officec2rclient.exe\u0026#34; /update user updatetoversion=16.0.13801.20360 What it does is downgrade the office to an older version that doesn\u0026rsquo;t have this warning. After which you can disable office updates otherwise it will upgrade back to a higher version with the same banner.\nTo avoid the banner in the first place, then activate office using MAS.\nRead \u0026lsquo;Get genuine Office\u0026rsquo; banner for more info.\nBurn Windows Onto a USB Stick All Windows Version Connect USB stick to computer Run Rufus software Ensure the program has selected the correct external storage (your USB stick) Click SELECT to pick your Windows ISO file Choose between GPT or MBR partition scheme depending on the computer you want to install Windows. General rule of thumb, pick GPT for newer computers and MBR for older ones Leave the remaining options as is. Click START Once complete you can eject the USB stick (except for Windows 8.1, continue with the guide below) Windows 8.1 skip product key By default, there is no option to skip adding a product key during Windows 8.1 installation but we can bring it back.\nAfter flashing Windows 8.1 onto a USB stick, open file explorer and head over to /sources folder in the USB stick. Create a text file called ei.cfg and paste this.\n[EditionID] [Channel] Retail [VL] 0 Source: Elmo on StackExchange\nUseful Tools Rufus Ventoy Winget ","date":"7 September 2023","externalUrl":null,"permalink":"/it-support/","section":"Attics","summary":"Simple guide to some IT Support concepts","title":"IT Support","type":"attic"},{"content":"For about a month, this website was not sending data to GoatCounter. I managed to resolve this but the rabbit hole led me to rediscover Cloudflare Pages.\nI still love and recommend GitHub Pages, with a simple GitHub Action you can deploy your project and even make use of custom domains.\nAnyway, for my use case, the top alternatives were Cloudflare Pages and Netlify. I currently manage domains on Cloudflare making it the obvious choice.\nSome of the benefits of Cloudflare Pages include:\nFast site performance on the Cloudflare network. Easy to add a custom domain especially so if you use Cloudflare for domain management. Free SSL certificate with any plan. Ability to have preview deployments before rolling to production. The process of switching over was smooth. I connected Cloudflare Pages with my Git repository, set up build settings (just selecting Hugo as my framework) and deployed it. That easy! In my case, to setup a custom domain, Cloudflare simply added the necessary DNS records automatically.\nThat\u0026rsquo;s the update, for a guide on setting up Cloudflare Pages, have a look at Cloudflare Docs or this YouTube Video\n","date":"18 August 2023","externalUrl":null,"permalink":"/switched-to-cloudflare-pages/","section":"Posts","summary":"This website has migrated from GitHub Pages to Cloudflare Pages","title":"Switched to Cloudflare Pages","type":"posts"},{"content":"","date":"14 August 2023","externalUrl":null,"permalink":"/tags/activitypub/","section":"Tags","summary":"","title":"ActivityPub","type":"tags"},{"content":"","date":"14 August 2023","externalUrl":null,"permalink":"/tags/at-protocol/","section":"Tags","summary":"","title":"AT Protocol","type":"tags"},{"content":"","date":"14 August 2023","externalUrl":null,"permalink":"/tags/social-media/","section":"Tags","summary":"","title":"Social Media","type":"tags"},{"content":"","date":"14 August 2023","externalUrl":null,"permalink":"/tags/social-networking-protocol/","section":"Tags","summary":"","title":"Social Networking Protocol","type":"tags"},{"content":"On 7th October 2022, Elon Musk concluded his purchase of Twitter and it has been quite a journey since then. A journey Reddit took a liking to.\nLet\u0026rsquo;s take it back: the year is 2012, and behind my parent\u0026rsquo;s back, I joined Facebook and revelled in this new world, all the while trying to be discreet. This did not last long, but surprisingly, I was not scolded. We had a talk of how I should use it and it was free rein from there.\nCue in a spree of joining every imaginable social media platform. It was love at first sight when I created my first Twitter account in 2013 but my teenage self picked up the bad habit of tweeting every minute from TV shows, and to this day, I still get tagged in those old cringe tweets.\nGoogle+ came onto the scene and I have to admit that was one of the best platforms, alongside Twitter, if not the best.\nBlogging became a huge thing and I jumped right in. However, one thing I regret is deleting my old blogs. I understand how cathartic that could have been but I have come to appreciate the importance of maintaining an archive where you can revisit your earlier work and perhaps find joy in observing your progress (or lack thereof) over time.\nFacebook faced the Cambridge Analytica scandal and consequently I deleted most of my accounts in 2018/19 but replaced some with a clear focus on privacy.\nCircle back to Elon\u0026rsquo;s takeover of Twitter and alternative platforms like Mastodon rise but this time I\u0026rsquo;m not hasty in joining them.\nMeta capitalised on Twitter\u0026rsquo;s issues by launching Threads, and technically, every Instagram user already had an account. To me, it felt like it was launched prematurely. It was great but it lacked a lot of features and Meta wasn\u0026rsquo;t as aggressive as I expected in achieving feature parity with Twitter and building upon that.\nIn the same week, I got an invite into BlueSky and it was amazing. It was everything I had hoped for albeit the userbase was minuscule. It had the same vibe as Twitter in its early days.\nWill the alternatives dethrone Twitter? Unlikely. Twitter is the juggernaut that popularised \u0026lsquo;microblogging\u0026rsquo; and it will take a lot to bring it down. Perhaps Elon himself will do that.\nSo, what does the future hold? I don\u0026rsquo;t know but juggling between Twitter, its alternatives and other platforms can be tiring. Ideally, platforms would be interoperable.\nThis will likely be a battle between protocols rather than the apps themselves. For example, Mastodon is built on top of ActivityPub, which enjoys support of multiple companies, while BlueSky utilises the AT Protocol. If one of these protocols (or a new one) gains significant traction then the social networking landscape will change drastically. In theory, we wouldn\u0026rsquo;t be tied to an organisation or a CEO which is quite exciting. Hopefully in the end we don’t all gravitate back towards a centralised platform.\nI, for one, hope personal websites make a comeback. A place to call your home base.\n","date":"14 August 2023","externalUrl":null,"permalink":"/state-of-social-media/","section":"Posts","summary":"Here’s my social media story and my hope for it’s future.","title":"State of Social Media and My Journey Through It","type":"posts"},{"content":"For the love of God, please stop installing bloatware on your computer. I have noticed that people have a tendency to install every software they stumble upon, despite the fact that modern operating systems have a lot of features built-in.\nI\u0026rsquo;ll use Windows as an example, as it has the largest market share and a lot of people have this tendency. For example, if all you do with zip files is extract them, then Windows has you covered - you don\u0026rsquo;t need WinRAR. Additionally, many people overlook the built-in disk cleanup utility provided by Windows. It\u0026rsquo;s a powerful tool to clean up temporary files, various clutter as well as chunks left after Windows updates. Why do you need a registry cleaner, a cleanup utility or some driver pack installer? It\u0026rsquo;s most likely just malware. Don\u0026rsquo;t even mention those free antivirus software like McAfee - they\u0026rsquo;re totally pointless.\nFinally, if you only open PDFs but don\u0026rsquo;t manipulate them, please don\u0026rsquo;t install that Adobe software or Nitro PDF just for that. It\u0026rsquo;s like trying to kill a bug with a car - your default browser has the capability to view PDFs.\nI could go on and on but that\u0026rsquo;s enough for now.\nPerhaps it\u0026rsquo;s a lack of understanding of newer applications and operating systems, or being stuck in the days of Windows Vista. Having a million apps will just slow down your computer, be a pain to update, or worse, be a potential cyber threat. Just don\u0026rsquo;t install bloat on your computer.\n","date":"19 May 2023","externalUrl":null,"permalink":"/bloatware/","section":"Posts","summary":"Cut the bloat and embrace simplicity of default features.","title":"Enough with the Bloat","type":"posts"},{"content":"","date":"19 May 2023","externalUrl":null,"permalink":"/tags/operating-systems/","section":"Tags","summary":"","title":"Operating Systems","type":"tags"},{"content":"","date":"19 May 2023","externalUrl":null,"permalink":"/tags/software/","section":"Tags","summary":"","title":"Software","type":"tags"},{"content":"","date":"19 May 2023","externalUrl":null,"permalink":"/tags/windows/","section":"Tags","summary":"","title":"Windows","type":"tags"},{"content":"","date":"14 April 2023","externalUrl":null,"permalink":"/tags/dns-request/","section":"Tags","summary":"","title":"DNS Request","type":"tags"},{"content":"","date":"14 April 2023","externalUrl":null,"permalink":"/tags/firewall/","section":"Tags","summary":"","title":"Firewall","type":"tags"},{"content":"","date":"14 April 2023","externalUrl":null,"permalink":"/tags/load-balancing/","section":"Tags","summary":"","title":"Load Balancing","type":"tags"},{"content":"","date":"14 April 2023","externalUrl":null,"permalink":"/tags/networking/","section":"Tags","summary":"","title":"Networking","type":"tags"},{"content":" This article was done in fulfillment of an assignment for a Software Engineering course. Billions of people on earth open their browsers everyday and type their favourite website\u0026rsquo;s URL - be it a social media site or some news outlet. Depending on your internet speed, this might be a matter of milliseconds but have you ever wondered what happens behind the scenes? I\u0026rsquo;ll get into that, hint - it\u0026rsquo;s a lot.\nDNS Request Your browser does not know what \u0026lsquo;google.com\u0026rsquo; is so as soon a you hit enter, it tries to resolve this into an IP address - it does this using a DNS (Domain Name System) lookup. This is where your browser checks different locations for cached DNS data starting from its own cache, operating system, router and finally the DNS server at your Internet Service Provider (ISP). In the event the IP address of the website you want to visit can\u0026rsquo;t be found, your browser does a recursive DNS lookup where it asks multiple DNS servers around the internet which in turn ask other DNS servers until it gets the DNS record.\nAt this point the DNS record is cached so that future requests for the same domain can be resolved more quickly.\nFirewall Once the browser sends a request, before it gets to the server it will pass through a firewall.\nA firewall is a network security device that monitors incoming and outgoing network traffic and decides whether to allow or block specific traffic based on a defined set of security rules.\nIts main function is to protect the network from threat actors so when you type google.com, the request passes through the firewall on its way to Google\u0026rsquo;s servers where depending on the security rules access may be denied.\nBrowser Performs TCP 3-Way Handshake Packets from the browser are sent to the server the IP address connects to using transmission control protocol (TCP). This is because TCP/IP is reliable and ensures data is sent in the correct order with no packetloss which is crucial when trying to load a website.\nHere\u0026rsquo;s what happens:\nThe browser sends the initial packet with a SYN (SYNchronize) header bit to establish connection. (\u0026ldquo;Hey, are you available next Tuesday?\u0026rdquo;) Upon receiving, the web server sends back a SYN-ACK (SYNchronize-ACKnowledge). (\u0026ldquo;Hey, yes I am free.\u0026rdquo;) The browser send back ACK. (\u0026ldquo;A-Okay, let\u0026rsquo;s talk.\u0026rdquo;) That is the 3-way handshake after which a socket is created. This is a two way communication link that facilitates transfer of data.\nMost websites have migrated to HTTPS which encrypts the web traffic so if you had typed http://www.google.com, the web server will return a 301 error code for Permanent Redirect. The browser will be redirected to https://www.google.com but it will first send a FIN packet, the server will respond with ACK and the socket is closed afterwhich the browser will attempt to connect to the redirected link.\nThe DNS request and the 3-way handshake happen again as well as a SSL/TLS handshake. This is a negotiation between two parties on a network to establish the details of their connection. It determines what version of SSL/TLS will be used in the session, which cipher suite will encrypt communication, verifies the server (and sometimes also the client), and establishes that a secure connection is in place before transferring data.\nOther Concepts To Know Load Balancing A load balancer sits in front of a server and distributes network traffic across all servers capable of fulfilling those request. It does this through various load balancing methods but its ultimate goal is to ensure no single server is overloaded by maximizing speed and capacity.\nIt is important to know that it is very likely that the first connection to google.com was made to a load balancer instead of actual web servers due to the large amount of traffic they receive.\nIf a server goes down, traffic is sent ot the remaining servers and if a new server is added, the load balancer starts sending requests to it.\nWeb Servers vs. Application Servers In a typical deployment, a website that provides both static and dynamically generated content runs web servers for the static content and application servers to generate content dynamically.\nA web server is a computer program whose fundamental job is to accept and fulfill requests from clients for static content from a website (HTML pages, files, images, video, and so on).\nAn application server\u0026rsquo;s fundamental job is to provide its clients with access to what is commonly called business logic, which generates dynamic content; that is, it’s code that transforms data to provide the specialized functionality offered by a business, service, or application.\nAll in all, the two concepts differ but they are usually deployed together to fulfill the request of a user for a website\u0026rsquo;s content.\nFor the case of typing google.com into your browser, their web server will receive your request and process it, generate a response (static content) and send it back to the user\u0026rsquo;s browser to render the web page. The web server will also get in touch with the application server to generate search results and in some complex cases, it may need to make a request to a database server.\nDatabase Server A database server runs a Database Management System (DBMS) and provides database services to clients. Its main role is to receive requests from client machines, search for the required data, and pass back the results. It consists of physical hardware as well as the software that runs the database.\nIt is a crucial component in the client-server computing environment where it provides business-critical information requested by the client systems. This information is sent back to the user and their browser will render it.\nBrowser Renders The Content Once the browser has received the response from the servers, it inspects the response headers for information on how to render the resource.\nIn the response, there is a Content-Type header that tells the browser which resource it has received in the response body. For the case of a HTML file, the browser will render the structure of the page and if it gets other resources such as CSS, JavaScript or images, it will render them accordingly.\nSumming Up This is the simplified final flow:\nOn pressing enter, the browser finds the website\u0026rsquo;s IP address with the help of a DNS server. The browser then makes a connection with the web server (either directly or through a load balancer) using TCP/IP to send a copy of the website. All the while, the back and forth communication passes through firewalls and if everything is approved, the servers (web, application and database server) start sending the website\u0026rsquo;s content in small chunks (data packets). The browser assembles the small chunks and renders the page to the user. You have successfully landed on google.com or any other website after multiple steps that barely takes more than a second.\nExplore Further AWS: What happens when you type a URL into your browser? Cisco: What Is a Firewall? SSL.com: The SSL/TLS Handshake: an Overview Moz: HTTP Status Codes NGINX: What Is Load Balancing NGINX: What Is an Application Server vs. a Web Server? phoenixNAP: What Is a Database Server \u0026amp; What Is It Used For? ","date":"14 April 2023","externalUrl":null,"permalink":"/tracing-url-request/","section":"Posts","summary":"We trace a URL request from the browser to the server and its rendering.","title":"What Happens When You Type 'google.com' Into Your Browser","type":"posts"},{"content":"My journey has been one where I find a text editor I like and I settle with that. I learnt programming around 2015 but nothing too serious, heck, I used Notepad on Windows. By 2016, I got more into it, discovered Atom and immediately fell in love with it.\nIt was marketed towards the kind of person who would tinker with things to suite their needs. Superficially though, I also liked the default colour scheme - One Dark.\nAtom was my ride-or-die even though VS Code had gained some traction by now but that was until I joined uni in 2018. I noticed students who were more experienced than I was using VS Code, the least I could do was give it a try. I adopted it and it has been my preferred text editor. So what\u0026rsquo;s changed?\nWhy I Still Like VS Code Yes, I still like VS Code. I have it configured as best as I can to how I like, it\u0026rsquo;s easy to tweak so we could make a case for why I shouldn\u0026rsquo;t leave it.\nIt has an integrated terminal, an entire marketplace for extensions, easily syncs my settings and has lots of themes. Also, any new technology or programming language will most likely have a guide on how to setup VS Code for it. It can act like an IDE or a simple text editor.\nI still prefer using it for larger projects such as mobile development with Flutter because it gets the job done.\nThese and many more are the reasons why year on year, VS Code leads in various surveys.\nWhy Vim? My previous encounter with Vim was the classic, enter and get stuck trying to exit. That was until I enrolled for a Software Engineering course with ALx Africa and we had to use Vim full time.\nI watched a lot of tutorials on YouTube and one channel that kept popping up was ThePrimeagen. Using VS Code after watching him felt inefficient. I mean the dude was flying through, I couldn\u0026rsquo;t keep up but it inspired me.\nVim is minimal with great freedom on how maximal you want to make it. I mean minimalism is not the current trend but I still practice some of the learnings from it.\nCoupled with the fact that as a Linux user, I often use the terminal, Vim was essentially shouting my name.\nThe Switch My course forced me to dive headfirst into Vim since we had to SSH into remote servers and the terminal was our only option.\nWe had a two-week period to get the gist of things so my plan was to quickly learn the basics before slowly swimming to the deep end.\nVimtutor came to the rescue in learning Vim movements and other basic commands, it\u0026rsquo;s literally a program that runs you through a tutorial of vim.\nI later realised we didn\u0026rsquo;t need to SSH into ALx Africa\u0026rsquo;s servers, that was just an easier way to facilitate those who don\u0026rsquo;t use Linux or don\u0026rsquo;t have easy access to computers. At this point, I could use VS Code on my PC and forget about Vim but I had the itch from my Atom days to stick and tinker around.\nIt felt amazing to use Vim, maybe I\u0026rsquo;m better than everyone else 😂.\nHow\u0026rsquo;s the going? It\u0026rsquo;s been about 4 months now, and I\u0026rsquo;m not ThePrimeagen level but I feel comfortable with Vim.\nI mentioned Vim comes with great freedom on how maximal you want to make it, I started with the simple basics of adding line numbers, configuring indentation, syntax processing etc.\nThereafter, I discovered TJ Devries and opted to go with Neovim due to some good defaults it packs and the community behind it. I slowly added more to my config, setup plugins, language support and even migrated from Vimscript to Lua.\nCurrently I use it for most of my projects.\nConclusion So why I\u0026rsquo;m I ditching VS Code? I like the minimal nature of Vim, the fact it\u0026rsquo;s terminal-based, the endless configuration options and it\u0026rsquo;s just fun. Perhaps ditching is overexaggerating but I will use VS Code way less than I used to. Who knows, I might switch back to it in the far future.\nVim is a great tool but can be very overwhelming with its steep learning curve. The trick is to add things bit by bit as well as understanding what you add to you config rather than blindly copying someone\u0026rsquo;s setup. That being said, here\u0026rsquo;s my dotfiles for inspiration.\nIt is also an interesting and fun rabbit hole to go down from vanilla Vim to the variety of flavours. There\u0026rsquo;s always something to learn.\nTill next time, cheers.\nExplore Further What is Vim? ","date":"15 February 2023","externalUrl":null,"permalink":"/why-im-leaving-vs-code-for-vim/","section":"Posts","summary":"VS Code is good enough but here’s why I prefer Vim.","title":"I'm Ditching VS Code","type":"posts"},{"content":"","date":"15 February 2023","externalUrl":null,"permalink":"/tags/text-editors/","section":"Tags","summary":"","title":"Text Editors","type":"tags"},{"content":"","date":"15 February 2023","externalUrl":null,"permalink":"/tags/vim/","section":"Tags","summary":"","title":"Vim","type":"tags"},{"content":"","date":"15 February 2023","externalUrl":null,"permalink":"/tags/vs-code/","section":"Tags","summary":"","title":"VS Code","type":"tags"},{"content":"Here is a collection of other blogs, podcasts and posts that I frequently reference or find interesting and inspirational and would wholeheartedly recommend.\nBlogroll 47nil - The owner describes it as a personal blog about common sense where he dumps everything on his mind. A Very Good Blog - honest reflections, messy truths, and relatable reckonings. Case in point: Fellas, is it gay to like pop music? (or: “Toxic”) which is one of my favourite pieces on the internet. Christopher Butler - thoughts on evolution of design and culture. Herman\u0026rsquo;s Blog - short-to-mid length essays about life, tech, and anything interesting. Kev Quirk - posts about tech, web design, watch collecting and Kev\u0026rsquo;s other interests. Kwon.nyc - an \u0026lsquo;online journal\u0026rsquo; about things Rachel observes in her daily life, thoughts on them, and more. Labnotes - think of this as a witty and informative weekly compilation of links, images, posts and pretty much everything on tech, design, and culture. Manu - Manuel writes about independent web, minimalism, tech, personal insights and a lot about people. You can discover some of them in his People \u0026amp; Blogs series. Also, his site has a tasteful and thoughtful minimal style. Minutes to Midnight - opinions on improving the web, sustainability, tech, and audio, along with other interests. Naz Hamid - everyday reflections, personal stories and a lot of outdoor activities. niqwithq - Nicolas tells stories and reflects on topics that are very close to his heart. Public Diary Records - daring poetry and reflections. Robb Knight - fun and colourful website on tech, blogging, and other interests. Robert Birming - a mix of thoughts and experiences (mostly Swedish), put into words. Starbreaker.org - raw thoughts \u0026lsquo;with something to offend everyone.\u0026rsquo; Tangible Life - Steve\u0026rsquo;s attempt at pushing against the feeling that \u0026rsquo;the tangible characteristics of modern human life have been slipping away.\u0026rsquo; The Jolly Teapot - this covers Nicolas\u0026rsquo; comments and experience with tech. Podroll Darknet Diaries - this is my favourite podcast and it\u0026rsquo;s about \u0026rsquo;true stories of the dark side of the internet.\u0026rsquo; Jack Rhysider is a wonderful storyteller and has a way of making cyber-crime, hacking and all that fun jazz beginner-friendly. Filter Stories - stories from the coffee world and how a simple coffee bean impacts millions of people. You\u0026rsquo;ll also enjoy an extra shot with the companion spin off shows: A History of Coffee and Science of Coffee. Heavyweight - Jonathan Goldstein untangles the “what ifs” and unfinished stories of people\u0026rsquo;s past, giving old regrets a second chance. Also, the theme song is amazing. Hemispheric Views - three blokes with a light-hearted approach to tech, media, cultural differences (from both hemispheres) and family life. Hyperfixed - for all Reply All podcast fans, Alex Goldman tries to get to the bottom of different issues or annoyances. Kill List - tech journalist Carl Miller discovers a secret \u0026ldquo;kill list\u0026rdquo; targeting innocent people on a murder-for-hire website and is thrown into a race against time to warn those in danger and uncover the truth before it too late. Lateral - Tom Scott hosts a comedy panel game of weird questions and answers. Redacted - lies and secrets from the darkest corners of history (mostly government and military offices) based on declassified information. Reply All - about the internet and its compelling stories. My favourite ep. is #158. Search Engine - PJ Vogt answers all sort of questions you might search online when you can\u0026rsquo;t sleep. Twenty Thousand Hertz - stories behind the world\u0026rsquo;s most recognisable and interesting sounds. Who Shat On The Floor At My Wedding? - a comedic investigation into bizarre non-crime mysteries. Text Playlist Inspired by Scott Nesbitt\nminimal web Digital Minimalism My Coffee Maker Just Makes Coffee Some Thoughts on Social Media Unsolicited blogging advice This Page is Designed to Last Seeking Inspiration? Why Make a Website in 2025 ","date":"30 January 2023","externalUrl":null,"permalink":"/links/","section":"Mordecai Kipng'etich","summary":"A collection of links to sites/podcasts/posts I want to share, and bookmark for future reference.","title":"Links","type":"page"},{"content":"","date":"9 January 2023","externalUrl":null,"permalink":"/tags/custom-domains/","section":"Tags","summary":"","title":"Custom Domains","type":"tags"},{"content":"","date":"9 January 2023","externalUrl":null,"permalink":"/tags/github/","section":"Tags","summary":"","title":"GitHub","type":"tags"},{"content":"GitHub Pages publishes your site on a domain that looks like USERNAME.github.io. This is all fine and good but you can make it yours by adding a custom domain and still benefit from the free hosting.\nPrerequisites The only prerequisites are:\nOwn a domain or have access to one. Have a site making use of GitHub Pages. Have a look at how I created this site for free with Hugo and GitHub pages to get you started if you do not have a site up and running.\nFor the domain, you can buy yourself one on Namecheap or Google Domains or any other registrar. They are relatively inexpensive.\nUpdate Your DNS Settings I typically add my custom domain to GitHub Pages at the end after configuring my DNS settings.\nYour DNS records should point to USERNAME.github.io and NOT the repository name. Once set up, GitHub will figure out which page to serve. Configure a subdomain If you own a subdomain such asblog.example.com then all you have to do is:\nHead over to where you manage your DNS configurations (typically your registrar) Add a CNAME pointing to your GitHub Page. For my other blog, auto.insidemordecai.com, that meant adding a CNAME record called auto that points to insidemordecai.github.io I recommend leaving the TTL setting in Auto until you understand more about it then you can tweak to your liking.\nConfigure an apex domain For an apex domain such as example.com or this site, then the steps are:\nHead over to where you manage your DNS configurations (typically your registrar) Add four A records with the name as your apex domain (in my case, insidemordecai.com) that each point to GitHub Pages\u0026rsquo; IP addresses as seen here (just copy-paste). I recommend also setting up a configuration for a www subdomain as it is easy for someone to assume your site\u0026rsquo;s address starts as so. The steps for this are the same as above, for me that meant creating a CNAME record named www pointing to insidemordecai.github.io\nUpdate Your GitHub Repository Head over to your GitHub repository and navigate to the GitHub Pages settings. Under \u0026lsquo;Custom domain\u0026rsquo;, type your custom domain and click save. GitHub will check for the DNS configuration we made and your site should be live on this new address in a few. To not spook the visitors of your site when their browser warns them of an unsecure site, you can check the Enforce HTTPS box on this page.\nFix GitHub Actions Removing the CNAME File After adding your custom domain to the site\u0026rsquo;s repository, GitHub commits a CNAME file but if you have a GitHub Actions workflow then this file is deleted with every new change and your site is inaccessible.\nFor Hugo sites, we can fix this by:\nOn the root of our repository, create a directory called static Navigate into the new directory and create a file called CNAME Edit the file to have a single line that is just your custom domain, either your apex domain (insidemordecai.com) or your subdomain (auto.insidemordecai.com) Push your local changes to GitHub. You\u0026rsquo;re done!\nTill next time, feel free to reach out. Cheers!\n","date":"9 January 2023","externalUrl":null,"permalink":"/custom-domains-with-github-pages/","section":"Posts","summary":"How to switch from GitHub Pages’ default github.io domain.","title":"Setting up Custom Domains on GitHub Pages","type":"posts"},{"content":"","date":"9 January 2023","externalUrl":null,"permalink":"/tags/static-site-generators/","section":"Tags","summary":"","title":"Static Site Generators","type":"tags"},{"content":"","date":"26 December 2022","externalUrl":null,"permalink":"/tags/github-pages/","section":"Tags","summary":"","title":"GitHub Pages","type":"tags"},{"content":"If you are like me, then you\u0026rsquo;ve probably wanted to create a personal site but the available options were either expensive or simply not good enough. That was until I learnt of static site generators and their simplicity. This blog you are reading is made using Hugo and hosted on GitHub.\nHere is the process:\nInstalling Hugo Creating your new hugo site Building the site Hosting with GitHub Pages Installing Hugo This part may differ based on your development setup. I\u0026rsquo;d recommend Chocolatey for Windows and Homebrew for Mac but Hugo has documentation on the many installation methods. For Linux, Hugo is most likely on your distribution\u0026rsquo;s repository but you can check out the documentation.\nCreating Your New Hugo Site Open your console, navigate to where you want to save your site and run hugo new site . to create the site in the current directory. If you\u0026rsquo;d like to create the site in a new directory, run hugo new site SITE_NAME. Look for a Hugo theme and setup the site skeleton based on the theme\u0026rsquo;s documentation. I personally use Blowfish I recommend downloading themes as a Git Submodule as this will make it easier to update them. It\u0026rsquo;s also important to choose a theme with great documentation for your ease of use.\nBuilding The Site At this point we already have a skeleton of a site and we can run hugo server at the root of our site. This will also allow us to observe the changes we make and their effect. You can run hugo server -D if you want to test out with some draft posts as by default Hugo doesn\u0026rsquo;t show drafts.\nYour site is now available at localhost:1313\nGoogle as well as your theme\u0026rsquo;s documentation will be your friend from hereon. You can check out the exampleSite and other sites that use the same theme for inspiration.\nHosting with GitHub Pages Create a public GitHub repository named YOUR_GITHUB_USERNAME.github.io but can use any other name. (we\u0026rsquo;ll get to that later)\nAs you might have noticed, when you run hugo or hugo server, some directories are created. These aren\u0026rsquo;t required and therefore we can create a .gitignore file and add /public and /resources to it.\nPush your changes to the GitHub repository we created.\nSet up GitHub Actions by creating a file in .github/workflows/gh-pages.yml. Copy the content of the file from this section of the Hugo documentation.\nWhat this does is once GitHub notices changes to your main branch, it will perform a set of actions to publish your site to gh-pages branch.\nPush the GitHub Actions file and you\u0026rsquo;re done.\nYour site is now live at YOUR_GITHUB_USERNAME.github.io. If you chose to use a different repository name then your site is live at YOUR_GITHUB_USERNAME.github.io/REPOSITORY_NAME\nSome YouTube channels that I found helpful when creating my site were Chris Stayte, Eric Murphy and Luke Smith.\nTill next time, feel free to reach out. Cheers!\n","date":"26 December 2022","externalUrl":null,"permalink":"/how-i-created-my-site-for-free/","section":"Posts","summary":"In this post we go over the ease of creating a site using Markdown","title":"How I Created My Site For Free with Hugo and GitHub Pages","type":"posts"},{"content":"","date":"27 October 2022","externalUrl":null,"permalink":"/tags/fedora/","section":"Tags","summary":"","title":"Fedora","type":"tags"},{"content":"","date":"27 October 2022","externalUrl":null,"permalink":"/tags/post-install/","section":"Tags","summary":"","title":"Post Install","type":"tags"},{"content":"This is exactly as the title suggest - setting up Fedora Workstation, feel free to follow my guide tweaking where necessary.\nDNF Configuration By default DNF is slow (maybe DNF5 might change that in the future), to fix that we shall add a DNF flag to allow more than one download at a time and set yes as the default option for future DNF commands.\necho \u0026#39;max_parallel_downloads=10\u0026#39; | sudo tee -a /etc/dnf/dnf.conf echo \u0026#39;defaultyes=True\u0026#39; | sudo tee -a /etc/dnf/dnf.conf System Update sudo dnf update -y Enable RPM Fusion This will give us access to way more apps/software that are not available on the standard Fedora repository.\nsudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm sudo dnf groupupdate core For more information, check out the RPM Fusion website\nEnable Flathub Older Fedora versions ship with a filtered Flathub enabled,therefore, we need to add unfiltered Flathub to use their store.\nflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo Install Media Codecs After setting up RPM Fusion, you can add these multimedia packages:\nsudo dnf groupupdate multimedia --setop=\u0026#34;install_weak_deps=False\u0026#34; --exclude=PackageKit-gstreamer-plugin sudo dnf groupupdate sound-and-video sudo dnf group upgrade --with-optional Multimedia Recently, Fedora removed some hardware accelerated codecs from their default install but the guys at RPM Fusion have done their magic. Head over to the Multimedia page of RPM Fusion and under the Hardware Accelerated Codec section, pick the command(s) for your setup. For those running Intel 5th Gen (Broadwell) and above pick the intel-media-driver option while those running older processors can opt for libva-intel-driver.\nFor more information, check out the RPM Fusion website.\nAdd Extra Fonts sudo dnf install fira-code-fonts \u0026#39;mozilla-fira*\u0026#39; \u0026#39;google-roboto*\u0026#39; -y For compatibility, Microsoft fonts may be needed:\nsudo dnf install -y curl cabextract xorg-x11-font-utils fontconfig sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm I also add these fonts to ~/.local/share/fonts since I use them in my terminal emulator and other apps:\nComic Mono SF Mono Nerd Font If not satisfied, there is always the option of adding fonts into the fonts directory from Windows or another Operating System Install GNOME Tweaks This allows us to make some customization changes like adding/removing titlebar buttons (maximize/minimize), changing themes and fonts among other things. I tend to change the Monospace Text font to a Nerd Font.\nsudo dnf install gnome-tweaks In my experience, changing these helps a lot:\nHinting: Slight Antialiasing: Subpixel (this may vary depending on your display setup). Use adw-gtk3 as the theme for legacy apps for them to look more cohesive with other apps using libadwaita.\nInstall Apps and Extensions Apps I use include:\nBrowsers: Firefox (flatpak version), Brave Browser Coding: VS Code, Android Studio, Neovim Gaming: Steam Multimedia: Spotify, VLC, Jellyfin Terminal Emulator: Alacritty (including nautilus-open-any-terminal and starship) Torrent Client: qBittorrent Utilities: htop, Xtreme Download Manager (only for YouTube and large downloads) Others: Discord, Extension Manager, gThumb, ProtonVPN, Solaar (for Logitech peripherals) Afterwards, I remove the extra apps thats I don\u0026rsquo;t need, for me these include totem (GNOME Videos), GNOME Weather, Firefox (pre-installed version), GNOME Terminal etc.\nTypically I play around with some extensions or have mixed feelings about some (*) but these are the extensions that I install from the Extensions Manager app and use:\nAppIndicator and KStatusNotifierItem Support Blur my Shell * Caffeine Dash to Dock GSConnect Pano - Clipboard Manager Rounded Window Corners I do not recommend installing a lot of extensions as they could slow down your system or some could be left unmaintained/lose support across GNOME updates. Firefox Tweaks On Firefox, YouTube shows the scrollbars in fullscreen which makes it very easy for me to accidentally click it and suddenly move down the page. To fix this, I add this line to my uBlock Origin filter:\nwww.youtube.com##ytd-app:style(overflow: hidden !important;) That line disables YouTube\u0026rsquo;s scroll-to-comments \u0026ldquo;feature\u0026rdquo; which to me is not as important but used to be to quickly check video publish date.\nCredit: This Reddit comment\nBy default, hardware acceleration is disabled but head over to about:config and toggle this option:\nmedia.ffmpeg.vaapi.enabled I\u0026rsquo;ve also noticed that the flatpak version of Firefox does not have two finger swipe by default, run this command to fix that:\nsudo flatpak override --env=MOZ_ENABLE_WAYLAND=1 Setup Coding Environment and Dotfiles I usually create a directory in ~ where I set up Flutter and any other SDK in this directory. Afterwards, I create another directory in ~ to store most of my projects.\nAt this point, I clone my dotfiles backup into ~ and run the script to setup my config files.\nMake It Yours Change wallpaper Schedule night light Add online accounts Mute system sounds and mic Switch to 24h clock format Add, reorder and remove items from the dock Anyway, feel free to reach out.\nCheers ✌️\nNote To Self The curled scripts below are meant for my personal use. It performs most of the things listed in this article apart from: installing extensions, installing Android Studio, Firefox tweaks, changing GNOME Tweaks, setting up Flutter\ncurl -s -o- https://raw.githubusercontent.com/insidemordecai/.dotfiles/main/quick-setup/fedora.sh | bash curl -s -o- https://raw.githubusercontent.com/insidemordecai/.dotfiles/main/quick-setup/rpm-apps-install.sh | bash curl -s -o- https://raw.githubusercontent.com/insidemordecai/.dotfiles/main/quick-setup/flatpaks-install.sh | bash ","date":"27 October 2022","externalUrl":null,"permalink":"/fedora-linux-setup-guide/","section":"Posts","summary":"A beginner friendly way of how I go about setting up Fedora Linux and GNOME.","title":"Things To Do After Installing Fedora Workstation","type":"posts"},{"content":"Thank you for passing by.\nThis is just a short introduction piece to mention what I intend to do with this website. Very much like how printing \u0026ldquo;Hello world\u0026rdquo; is usually the first thing one learns when they begin programming.\nI plan on this being more like a frankenstein of a blog and a portfolio - blogfolio, is that even a word? It will host articles on things I find interesting around tech including concept breakdowns, Linux and FOSS or how-tos just for my referral in the future and in the process benefit whoever stumbles upon this.\nAlso, as a side-effect, this website will function as a landing page to replace link aggregators like Linktree that I currently use.\nAs this is a static site, currently a comment section is not implemented and I am not sure if I\u0026rsquo;ll do so. I am weighing up the pros and cons of having it but we\u0026rsquo;ll see how this goes.\nAnyway, feel free to reach out to me. You can have a look at my About page.\nCheers\n","date":"27 October 2022","externalUrl":null,"permalink":"/hello-world/","section":"Posts","summary":"A short introduction to mention what I intend to do with this website.","title":"Hello World","type":"posts"},{"content":"Hi 👋 I\u0026rsquo;m a STEM Instructor, a freelance Software Developer and a Computer Science graduate based in Kenya. I write code, teach tech, build things, and learn as I go.\nI\u0026rsquo;ve shared more about my professional life over on LinkedIn if you\u0026rsquo;re keen on that.\nOutside of work, I obsessively watch motorsport \u0026ndash; mainly Formula 1 and its feeder series \u0026ndash; and run a car/motorsport blog when I remember.\nI also read a lot, you can check out my Goodreads to see what I\u0026rsquo;ve been flipping through.\nIn my former years, I did some piano playing and singing. These days, the singing\u0026rsquo;s still there but just to a much smaller (and furrier) audience.\nNoticed a bug or got a suggestion? Open an issue or let me know. ","date":"25 October 2022","externalUrl":null,"permalink":"/about/","section":"Mordecai Kipng'etich","summary":"Introduction on Mordecai Kipng’etich","title":"whoami 🤷‍♂️","type":"page"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"}]