<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Tanih&#x27;s blog</title>
      <link>https://blog.tanih.dev</link>
      <description></description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://blog.tanih.dev/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Mon, 13 Apr 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>NFS:MW 2005: A Love Letter</title>
          <pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://blog.tanih.dev/blog/nfsmw-2005-a-love-letter/</link>
          <guid>https://blog.tanih.dev/blog/nfsmw-2005-a-love-letter/</guid>
          <description xml:base="https://blog.tanih.dev/blog/nfsmw-2005-a-love-letter/">&lt;p&gt;I played Need for Speed &lt;strong&gt;a lot&lt;&#x2F;strong&gt; as a kid. The BlackBox era shaped my taste in cars and music - interests that stick with me today even though I (still) don&#x27;t drive. The original Fast and Furious films came out around the same time, and between them and NFS, that whole era cemented itself in my head as the golden age of street racing aesthetics. Even 20+ years later, the desire to own a Supra or Skyline lives rent free in my head.&lt;&#x2F;p&gt;
&lt;p&gt;Most games from that era are sadly abandonware now, kicked to the curb and locked away in legal grey zones or simply gone - licensing disputes, shifting rights, who knows exactly. But I wanted to know if they still held the same appeal. Recently I&#x27;ve been gravitating toward lower-resolution indie games and pixel art - retro feeling stuff in general - so I wondered if revisiting NFS:MW would scratch that same itch. Turns out it does. It shows its age, sure. But it has something I don&#x27;t think the franchise has had since Carbon in 2006: &lt;em&gt;Charm&lt;&#x2F;em&gt;. The newer NFS games don&#x27;t have it. Heat was okay, visually hollow. Unbound I couldn&#x27;t get into. But Most Wanted? It makes me want to tear through Rockport at 2 AM, cutting between police and street racers, with &lt;a href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;kRrOq4NipQQ&quot;&gt;Shapeshifter&lt;&#x2F;a&gt; blaring.&lt;&#x2F;p&gt;
&lt;p&gt;That&#x27;s what keeps pulling me back.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;story-and-gameplay&quot;&gt;Story and Gameplay&lt;&#x2F;h2&gt;
&lt;p&gt;Now, if you&#x27;ve spent as long gaming as I have, I&#x27;m sure you already know the story, but allow me to quickly recap.&lt;&#x2F;p&gt;
&lt;p&gt;You arrive in Rockport, a stand-in for a city often believed to be inspired by New England, as a street racer. The player&#x27;s (now) iconic blue and silver BMW M3 GTR gets unceremoniously tampered with and stolen in the opening race by Razor, a member of the &lt;strong&gt;Blacklist&lt;&#x2F;strong&gt; - the 15 most notorious racers in Rockport.&lt;&#x2F;p&gt;
&lt;p&gt;From there, the premise is straightforward: work your way up the Blacklist, defeat each member, hunt down Razor, get your car back. Along the way, you develop a feud with the Rockport Police Department and Sergeant Cross who are determined to shut down the illegal racing scene.&lt;&#x2F;p&gt;
&lt;p&gt;The story beats are delivered through cutscenes featuring &lt;a href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;ox3R-L1FyU0&quot;&gt;real actors greenscreened into the game world&lt;&#x2F;a&gt; - a production choice that gives the whole thing a cinematic weight, even if they&#x27;re clearly dated and a little goofy. Unfortunately, each Blacklist member is forgettable and we&#x27;re introduced to each of them via short in-engine cutscenes that give you &lt;em&gt;just&lt;&#x2F;em&gt; enough information to differentiate each member, but not much more. It works as a framing device, but if you&#x27;re expecting character depth.. well, that was never NFS&#x27;s strong point.&lt;&#x2F;p&gt;
&lt;p&gt;As for gameplay, the game alternates between street races, pursuits against police, and checkpoint challenges across a Rockport that feels suitably of the time - grimy industrial areas, &quot;affluent&quot; suburbs, downtown core.  You&#x27;re constantly grinding: win races to build your reputation, evade police to increase your bounty, complete milestones to challenge the next Blacklist member. It&#x27;s a loop that works because each element feeds into the next. The cops aren&#x27;t just obstacles - they&#x27;re part of the progression system. Getting chased, escaping, causing damage - it all contributes to your notoriety.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-it-still-works-in-2026&quot;&gt;Why It Still Works In 2026&lt;&#x2F;h2&gt;
&lt;p&gt;Now, the game does have its shortcomings and places where it doesn&#x27;t hold up &lt;em&gt;quite&lt;&#x2F;em&gt; as well as I remember, but I&#x27;ll get into that later.&lt;&#x2F;p&gt;
&lt;p&gt;To me, the music is the backbone of this game. During street races it sets mood, typical tuner culture tracks that are in their own right iconic now. But during police chases it evolves and comes into its own. The score adapts in real-time - when you&#x27;re clean and pulling away, it&#x27;s triumphant; when the cops are closing in, it shifts to something different, more stripped back - the percussion becoming the only clear thread. You feel the adrenaline through the speakers.&lt;&#x2F;p&gt;
&lt;p&gt;The car progression keeps you invested too. Beating a Blacklist racer gives you the chance to take their car as a pink slip - gambling on winning their vehicle versus guaranteed performance parts called &quot;Junkman&quot; modifications. It&#x27;s a meaningful choice. I&#x27;m still running the Supra I won from Blacklist racer Vic halfway through my playthrough, and that car has weight to it now because of how I got it, and what I did after obtaining it to make it my own.&lt;&#x2F;p&gt;
&lt;p&gt;But what &lt;em&gt;really&lt;&#x2F;em&gt; holds up is the police chases. Early on they&#x27;re manageable, almost easy. Then around heat level 3 the difficulty ramps hard. The cops become tactical. You can hear them over the radio discussing strategy, calling out your position, planning intercepts. If you pay attention, you can actually use that chatter to anticipate what&#x27;s ahead - road blocks, ambushes, pursuit formations. It transforms a chase from a simple &quot;evade&quot; into something that requires reading the world and the enemies at the same time. Even now, I&#x27;ve come close to getting busted and felt myself doing the &lt;a href=&quot;https:&#x2F;&#x2F;i.kym-cdn.com&#x2F;photos&#x2F;images&#x2F;original&#x2F;001&#x2F;754&#x2F;292&#x2F;141&quot;&gt;&lt;em&gt;lean&lt;&#x2F;em&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The races themselves are kind of generic - most people just find the shortest ones and grind those. But the chases are where the game just excels, they still remain one of the best parts of the game and something I don&#x27;t think any of the later NFS games captured in the same way.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;replaying-vs-remembering&quot;&gt;Replaying vs Remembering&lt;&#x2F;h2&gt;
&lt;p&gt;The crux of why I chose to write this is simple: &lt;em&gt;Can we still get the same enjoyment out of a game we played to death in the past?&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I remember playing this game in my bedroom as a kid on my original Xbox. It&#x27;s such a core memory that trying to relive that feeling was never going to hit quite the same, right? Well, one thing is true at least - the races are still kind of disappointing and dull, especially in the early game where you can honestly tune out. Thankfully, around Blacklist 9-10 it feels like the AI Racers offer &lt;em&gt;some&lt;&#x2F;em&gt; challenge, though maybe that&#x27;s due in part to the relentless rubber banding. It&#x27;s just as annoying as it was in 2005. That hasn&#x27;t changed.&lt;&#x2F;p&gt;
&lt;p&gt;But then the menu music kicks in and everything else falls away.&lt;&#x2F;p&gt;
&lt;p&gt;The soundtrack molded me. Hearing any of those songs instantly transports me back to the early 2000&#x27;s - that specific feeling of sitting in my bedroom, controller in hand, thinking about nothing but the next race. The second I booted up Most Wanted again, that same sensation hit. It&#x27;s visceral. It&#x27;s emotional muscle memory. The game didn&#x27;t just entertain me back then; it shaped how I hear music, what I find cool, what draws me in.&lt;&#x2F;p&gt;
&lt;p&gt;That&#x27;s the joy of revisiting old media. Sometimes the gameplay is still solid, more often than not it&#x27;s dated. But the emotional connection? That&#x27;s harder to shake. Most Wanted (and the rest of the Black Box era NFS games, honestly) built something in my head 20 years ago, and stepping back into that world - even knowing what&#x27;s mediocre about it - helps you reconnect to who you were back then and how that reflects on who you are today.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;modding&quot;&gt;Modding&lt;&#x2F;h2&gt;
&lt;p&gt;One element I didn’t plan for was just how active the modding scene actually is for NFS games.&lt;&#x2F;p&gt;
&lt;p&gt;As much as I&#x27;m a sucker for that old piss-filter aesthetic Most Wanted graced us with originally, playing through 2005 textures, 2005 resolution, and 2005 inconsistencies was something I wanted to try and avoid if I could - especially considering I game these days on a Samsung G60SD OLED. I probably would&#x27;ve played through it regardless, but a quiet joy of PC gaming is being able to modify your games and extend their longevity long beyond when the publisher decides to shut off the lights.&lt;&#x2F;p&gt;
&lt;p&gt;So I went hunting for mods that would improve the game just enough to bring it into the (late) 2020s without losing what made it work for me as a kid. ThirteenAG&#x27;s widescreen fix got the game running at 1440p without breaking the UI. Redux 4K retextures handled the world - road surfaces redone, vegetation remastered, textures upscaled and recreated from scratch. Then Extra Options gave me access to toggles and tweaks I wish existed as a kid. So long rubber banding - you won&#x27;t be missed.&lt;&#x2F;p&gt;
&lt;p&gt;The scale of the NFS modding community is honestly kind of wild, from visual overhauls to new cars to even an online free roam mode being available to download, but a bit of modern polish was all I really felt it needed in the moment and I&#x27;m glad I didn&#x27;t go overboard. Anyone who&#x27;s gamed on PC for a while knows the problem of spending more time modding than actually just playing the game you&#x27;re tinkering with.&lt;&#x2F;p&gt;
  &lt;img src=&quot;&#x2F;blog&#x2F;nfsmw&#x2F;supra-nfsmw.png&quot; alt=&quot;NFSMW Supra. Screenshot demonstrates slight visual modding&quot; &#x2F;&gt;
  &lt;figcaption&gt;Vic&#x27;s Supra, with a change of paint colour.&lt;&#x2F;figcaption&gt;
&lt;h2 id=&quot;abandonware-why-archives-of-digital-history-are-important&quot;&gt;Abandonware (Why Archives of Digital History Are Important)&lt;&#x2F;h2&gt;
&lt;p&gt;Most Wanted was sadly never released digitally on PC. EA never made the effort to deliver a digital version, it was physical, boxed copies only. A PS2 Classics version &lt;em&gt;briefly&lt;&#x2F;em&gt; appeared on PlayStation 3 in 2012, but was discontinued the following year. The same goes for Underground 1 &amp;amp; 2 and Carbon. Carbon was briefly sold on Origin as a direct download, but is no longer available.&lt;&#x2F;p&gt;
&lt;p&gt;The entire BlackBox era is gone. They are not available to buy digitally anywhere now.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;re left in a situation where there&#x27;s no legal way to buy any of them &quot;new&quot;. The only legal option is hunting for second-hand copies, in whatever condition they&#x27;re in, wherever you can find them. And even then, good luck. Most of us don&#x27;t have disc drives anymore. Imagine having to dust off an external USB drive just to spin the disc up and verify the game still worked. For most people, that&#x27;s not even an option. These games have become physically inaccessible on the hardware we actually use today.&lt;&#x2F;p&gt;
&lt;p&gt;What frustrates me is the inevitability of it. Games aren&#x27;t delisted because they&#x27;re broken or irrelevant. They disappear because of licensing agreements and corporate indifference. These games work fine. People &lt;em&gt;want&lt;&#x2F;em&gt; to play them. But the infrastructure to access them - legally, easily - just... vanished.&lt;&#x2F;p&gt;
&lt;p&gt;The early BlackBox era is still worth experiencing. It matters historically. It shaped taste and preferences for millions of people. Locking it behind second-hand markets and obsolete hardware isn&#x27;t preservation, it&#x27;s abandonment.&lt;&#x2F;p&gt;
&lt;p&gt;Preservation, be it through emulation, archives or community mods, shouldn&#x27;t be seen as piracy. It should be seen as people who love something, wanting to keep it alive. It&#x27;s saying: &quot;this deserves to exist, even if the business case doesn&#x27;t anymore&quot;.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Gaming on Linux in 2026: Just how good is it?</title>
          <pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://blog.tanih.dev/blog/gaming-on-linux-in-2026-just-how-good-is-it/</link>
          <guid>https://blog.tanih.dev/blog/gaming-on-linux-in-2026-just-how-good-is-it/</guid>
          <description xml:base="https://blog.tanih.dev/blog/gaming-on-linux-in-2026-just-how-good-is-it/">&lt;p&gt;Gaming has always held a special place in my heart. Growing up I spent innumerable hours between the consoles in the house. Over the years I&#x27;ve owned most of them, from the Wii and Switch to the PS1 through PS4 and the original Xbox and its older brother the Xbox 360. However, it&#x27;s always been PC gaming that kept me more involved. The flexibility, the modding communities, the ability to shape the experience yourself, the MMO wave. For a long time though, PC gaming came with an implicit catch: Windows. For years that was the price of entry. You wanted to play games? You ran Windows. Most studios only developed for Windows and there really wasn&#x27;t really a good alternative. These days, there is. And it&#x27;s changed everything.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;windows-woes&quot;&gt;Windows Woes&lt;&#x2F;h2&gt;
&lt;p&gt;The past 18 months have been rough for Windows 11. Microsoft keeps shoving new (often unwanted) features in - Copilot, Recall, AI integrations - and they&#x27;ve created a mess for themselves, honestly. The File Explorer is slow, updates break things constantly, and the whole thing feels bloated and more sluggish each update. I waited until October when Windows 10 was officially put to the sword, then upgraded to 11. It was fine at first. But watching the problems pile up, combined with Microsoft clearly prioritizing AI upselling over actually making Windows stable, well.. it got old fast. My friends felt the same way. A few months ago we started looking at Linux again. Yesterday, I finally moved the last few drives to CachyOS, sans one drive. My Windows C: drive, waiting for the inevitable cull.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;linux-and-gaming&quot;&gt;Linux and Gaming&lt;&#x2F;h2&gt;
&lt;p&gt;As a longtime gamer, being able to play my games is the main consideration. I&#x27;ve always believed dev work on Linux was superior, so if gaming could work the same way, I&#x27;d ditch Windows permanently. But for years, that wasn&#x27;t realistic. The last time I tried to daily drive Linux was around 2011 on Mint. I wasn&#x27;t as technically savvy back then, and the experience was rough enough that I abandoned it after a week or two.&lt;&#x2F;p&gt;
&lt;p&gt;That hesitation made sense at the time. Linux gaming &lt;em&gt;had&lt;&#x2F;em&gt; a terrible track record. It started in 1994 when Doom was ported over, but it stayed niche. Loki Software tried to change that in 1999 with major commercial ports, but they collapsed in 2001 and took Linux gaming with them. For over a decade, there was almost nothing worth playing. Getting anything to run that wasn&#x27;t Linux native required dedication and tinkering. But everything changed when Steam arrived on Linux in 2012. Valve showed that Left 4 Dead 2 actually ran better on Linux than Windows. Suddenly the industry paid attention. Proton followed - Valve&#x27;s compatibility layer that lets Windows games run natively on Linux - and by the time the Steam Deck launched in 2021, gaming on Linux was no longer a joke. It was viable. It was actually good.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-i-don-t-need-windows-anymore&quot;&gt;Why I Don&#x27;t Need Windows Anymore&lt;&#x2F;h2&gt;
&lt;p&gt;Gaming was my last justification for Windows. Everything else I do or care about - dev work, privacy, system customisation and control - Linux already won a long time ago. But gaming had kept me tethered. Now it doesn&#x27;t.&lt;&#x2F;p&gt;
&lt;p&gt;Two things shifted. First, Proton matured. When it started, it was experimental, rough around the edges. Now it&#x27;s solid. Updates roll out constantly, new flavours exist for specific games, and community builds like Glorious Eggroll handle edge cases the official releases miss. It&#x27;s not perfect but it is reliable. Second, the ecosystem became more accessible. Installing games on Linux in the 2010s felt like a chore if you weren&#x27;t already plugged into how things worked. Now? Lutris, Heroic, Steam - pick your launcher, add your game, play. It&#x27;s trivial. The friction that used to exist is gone. And to top it off, performance is often better too. No Windows bloat, no background services hogging resources, no forced updates mid-session. The same game runs cleaner on Linux than it does on Windows 11. That alone was worth the migration for me. I&#x27;m yet to find a game I was running on Windows that doesn&#x27;t just feel smoother on CachyOS.&lt;&#x2F;p&gt;
&lt;p&gt;The only thing I haven&#x27;t gotten working is Android emulation. But that&#x27;s a hardware limitation on my end, not a software problem. Arknights will get a Steam launcher soon anyway, right? Everything else works.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-bigger-picture&quot;&gt;The Bigger Picture&lt;&#x2F;h2&gt;
&lt;p&gt;Linux gaming has slowly been rising, recently hitting 5% of all Steam users according to the &lt;a href=&quot;https:&#x2F;&#x2F;store.steampowered.com&#x2F;hwsurvey&quot;&gt;Steam Hardware survey&lt;&#x2F;a&gt;. It&#x27;s becoming a legitimate alternative for more than just niche enthusiasts. For anyone wanting to escape Microsoft&#x27;s ever-bloating ecosystem, it&#x27;s now a genuine choice. What essentially started as a joke in my friend group has turned into about half of us daily driving Linux now, across various distros. There are caveats - games with kernel anti-cheat don&#x27;t work - but I&#x27;ve always hated that practice anyway, so it&#x27;s a trade-off I&#x27;m obviously fine with.&lt;&#x2F;p&gt;
&lt;p&gt;However, the barrier that kept people on Windows has disappeared. For years, &quot;PC gaming&quot; meant Windows, full stop. But now it doesn&#x27;t have to. You&#x27;re no longer sacrificing anything and you&#x27;re gaining control, privacy, performance, and freedom from forced updates and unwanted bloat.&lt;&#x2F;p&gt;
&lt;p&gt;The excuses have run out. If you&#x27;ve been clinging to Windows &quot;just for games,&quot; that doesn&#x27;t hold anymore.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Der Compiler mag mich nicht: Learning Rust (and German) in 2026</title>
          <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://blog.tanih.dev/blog/der-compiler-mag-mich-nicht-learning-rust-and-german-in-2026/</link>
          <guid>https://blog.tanih.dev/blog/der-compiler-mag-mich-nicht-learning-rust-and-german-in-2026/</guid>
          <description xml:base="https://blog.tanih.dev/blog/der-compiler-mag-mich-nicht-learning-rust-and-german-in-2026/">&lt;p&gt;My relationship with programming and computing goes back quite a way, honestly.. about as far back as I can remember I enjoyed spending time tinkering with hardware. My wife would never say it, but the stack of old computers and components in our cellar probably is taking up more room than she&#x27;d like.&lt;&#x2F;p&gt;
&lt;p&gt;My first &lt;em&gt;proper&lt;&#x2F;em&gt; foray into programming proper came during University. It introduced me to Python and R, mostly for data analytics work, as you&#x27;d expect of someone studying Astrophysics. We love our numbers and graphs.&lt;&#x2F;p&gt;
&lt;p&gt;I never really struggled with them, always found them practical for getting the job at hand done. Between a macro simulation model of the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Grand_tack_hypothesis&quot;&gt;Grand Tack&lt;&#x2F;a&gt; hypothesis to trying to use the data available in an attempt to plot the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Malaysia_Airlines_Flight_370&quot;&gt;flight path of MH370&lt;&#x2F;a&gt;, they served me well.&lt;&#x2F;p&gt;
&lt;p&gt;After my Masters finished, I did a brief internship, dabbling for a few weeks in the god awful IDL.. a language significantly older than me. While the language itself didn&#x27;t really grip me, it was just another part of the adventure towards research I&#x27;d been pursuing and it helped me land a spot (granted, temporarily) at another University, working on some climate modelling and machine learning. Man, it feels like machine learning was the thing back then and now look where we are. Anyway, sadly, ill health led me to leaving academia behind and after a bit of time, I found myself building websites in Drupal.&lt;&#x2F;p&gt;
&lt;p&gt;So, I&#x27;ve been writing PHP professionally for a number of years now, it started off willingly I swear, but lately I&#x27;ve been feeling the itch that I imagine most developers get from time to time: the nagging sense that you&#x27;ve been idle too long.. I&#x27;ve always tried to find time for upskilling, but the ever present dilemma of finding time during work hours or using my free time for it, alongside a busy 9-5 and other commitments has made it difficult to do that effectively.&lt;&#x2F;p&gt;
&lt;p&gt;To make things even more interesting, I&#x27;ve been attempting to learn German since moving to Germany in late 2024. I finished A1 in mid 2025, which felt like a small miracle at the time, and I&#x27;m starting language school for A2 next week. So I guess 2026 is shaping up to be a year of pushing my comfort zones and learning things that make my brain hurt in magical new ways.. Yippee.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-rust&quot;&gt;Why Rust?&lt;&#x2F;h2&gt;
&lt;p&gt;For a good while I&#x27;ve been interested in moving more toward security focused development. Now, I&#x27;ll be honest.. I don&#x27;t know how often you find Rust in your average Cybersecurity gig. &lt;em&gt;But&lt;&#x2F;em&gt;, as I mentioned before, I&#x27;m a recent returner&#x2F;convert to the desktop Linux experience and Rust seems to be mentioned everywhere, from random rewrites of everyone&#x27;s favourite CLI tools to down and dirty in the 7.x Kernel.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;d been racking my brain for a little bit trying to decide what would be fun to work on, we all know learning projects often amount to &quot;hey, reverse engineer this tool that everyone already has&quot; like a calculator or a to-do list or &quot;rewrite this codebase in a new language&quot;. Seeing as &quot;rewrite in&#x2F;switch too Rust&quot; is an ongoing tech meme, I decided to sort of embrace both. There&#x27;s plenty of tools online that will shorten URLs for you, but have you ever wanted to do it from the CLI? No? Me neither.. but hey, it&#x27;s where my mind settled.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ll be honest, a few people who knew I wanted to just build &lt;em&gt;something&lt;&#x2F;em&gt; suggested Go was probably the safer choice for a first step, I&#x27;ve heard it described as &quot;similar to Python and C&quot; - a sentence that frankly made me shudder. Now, I can&#x27;t validate those claims yet, maybe I&#x27;ll try it another time, who knows.. or maybe I&#x27;ll become a Rust convert too.&lt;&#x2F;p&gt;
&lt;p&gt;So I picked the harder road. I&#x27;d briefly used C in university, over a decade ago now (and given I&#x27;m only now mentioning it, I&#x27;m sure you can tell there&#x27;s no love lost there). That was the extent of my compiled language experience. Rust is not C, thankfully, but it shares the compiled nature and the close-to-the-metal philosophy. So, honestly, if it wasn&#x27;t for the meme potential, I probably would&#x27;ve avoided it.. but also, I do kinda like a challenge once in a while.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-project-a-url-shortener-cli&quot;&gt;The Project: A URL Shortener CLI&lt;&#x2F;h2&gt;
&lt;p&gt;But the idea was simple enough, build a command-line tool that shortens URLs. Small enough scope to be achievable, but with enough surface area to actually learn something (and expand upon it later if I ever feel like it). I called it &lt;strong&gt;Shurl&lt;&#x2F;strong&gt; (short-url). I&#x27;ll say now, I mostly picked the name because it reminded me of an episode of Brooklyn 99. Why that is, I&#x27;ll leave ambiguous.&lt;&#x2F;p&gt;
&lt;p&gt;At its most basic, it just calls the &lt;a href=&quot;https:&#x2F;&#x2F;is.gd&quot;&gt;is.gd&lt;&#x2F;a&gt; API with a URL and prints back a shortened version. That core was working within a few hours of setting up the environment. Rust installed via &lt;code&gt;rustup&lt;&#x2F;code&gt;, VS Code (bleh) with the &lt;code&gt;rust-analyzer&lt;&#x2F;code&gt; extension, and &lt;code&gt;cargo new url-shortener&lt;&#x2F;code&gt; (pre the amazing naming, naturally) to scaffold the project. Honestly, the tooling setup was one of the smoothest parts of the whole experience. Coming from PHP, and Drupal in particular, where getting a consistent dev environment in the dark days before tools like &lt;a href=&quot;https:&#x2F;&#x2F;www.drupalvm.com&quot;&gt;DrupalVM&lt;&#x2F;a&gt; (rest in peace) and &lt;a href=&quot;https:&#x2F;&#x2F;ddev.com&quot;&gt;DDEV&lt;&#x2F;a&gt; could be a whole project in itself, having everything just work out of the box was a pleasant surprise.&lt;&#x2F;p&gt;
&lt;p&gt;Unrelated side note, I&#x27;ll always be grateful for the day I found DrupalVM during my first proper Drupal role and set up a bunch of scripts to help spin up all my companies sites in minutes.. hugely helped onboarding back then. Props as ever to Jeff Geerling for maintaining it as long as he did.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-learning-curve-is-real&quot;&gt;The Learning Curve is Real&lt;&#x2F;h2&gt;
&lt;p&gt;So, I won&#x27;t sugarcoat it. Rust is &lt;em&gt;confusing&lt;&#x2F;em&gt;, especially coming from day to day PHP use for years on end. PHP sort of holds your hand in ways you don&#x27;t appreciate until the hand is gone.. or maybe I&#x27;m just too used to it. I spent a good bit of time scratching my head at documentation and syntax and trying to understand things in a way that my PHP brain could convert on the fly - a bit like trying to have a conversation in German by translating the incoming words into English, formulate your response and translate it back before speaking. We&#x27;ll pretend it doesn&#x27;t usually end with me having my own form of &quot;404 Words Not Found&quot; error.&lt;&#x2F;p&gt;
&lt;p&gt;The biggest shift is the &lt;strong&gt;ownership model&lt;&#x2F;strong&gt;. In PHP, you pass things around, objects get reference counted, the garbage collector sorts out the mess eventually. You don&#x27;t really think about it if it works.. at least, I try not too.&lt;&#x2F;p&gt;
&lt;p&gt;In Rust, every value has exactly one owner, and the compiler will refuse to let you compile code that violates that. At first it felt like the compiler was being pedantic. After a while you start to realise it&#x27;s actually just making explicit all the things you were subconsciously relying on other mechanisms to handle — and those mechanisms have costs and failure modes you never had to think about.. classic checks and balances.&lt;&#x2F;p&gt;
&lt;p&gt;The other thing that trips you up constantly coming from PHP is that &lt;strong&gt;Rust has no null and no exceptions&lt;&#x2F;strong&gt;. Instead, you get &lt;code&gt;Option&amp;lt;T&amp;gt;&lt;&#x2F;code&gt; for values that might not exist and &lt;code&gt;Result&amp;lt;T, E&amp;gt;&lt;&#x2F;code&gt; for operations that might fail. The compiler forces you to handle both cases. Every. Single. Time. This, of course, is initially a bit annoying, but after a while you start to appreciate never accidentally hitting a null pointer or an uncaught exception at runtime, especially one you&#x27;d then have to go and debug, which in the types of projects I work with on a day to day basis.. it can be kind of rough. But in Rust, the errors happen at compile time, where they&#x27;re apparent and visible, rather than say.. in production on a Friday afternoon, where they&#x27;re really not.&lt;&#x2F;p&gt;
&lt;p&gt;There were a couple of moments where I&#x27;d stare at a compiler error for a good minute just trying to dissect what in reality was a simple error. People say Rust&#x27;s error messages are famously good, which is true (so far), but &quot;good for a compiler error&quot; and &quot;immediately obvious to someone coming from PHP&quot; are not the same thing.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ai-as-a-learning-aid&quot;&gt;AI as a Learning Aid&lt;&#x2F;h2&gt;
&lt;p&gt;So, in my last post, at the tail end I said &quot;..oh and don&#x27;t get me started on AI.&quot; Now is the time to address my feelings there. As a developer, it&#x27;s been basically impossible to ignore the existence and surge of AI in both the development sphere and the general sphere of.. everyday life. It feels like there&#x27;s an AI for bloody everything, especially things that it has no need being involved in. I can&#x27;t even count the number of articles I&#x27;ve seen this week on &quot;AI lost me X&quot; this week. Real or not, I find peoples lack of foresight on safeguards to be a giant oversight.&lt;&#x2F;p&gt;
&lt;p&gt;As much as I&#x27;ve resisted, AI in development is coming and frankly, I&#x27;ve only been able to resist for so long. Internally at work my team is trying to decide on future tooling and as a bit of a control freak, who wants to change his processes as little as humanly possible.. I&#x27;ve been trying out tools to find what works so I can influence our internal decision making both in a way that benefits the team, but also benefits me. Selfish, I know.. alas, if I have to use something, I want it to work for me. I&#x27;m very set in my habits, which.. to be fair, is one of the goals I had with this project overall - build new habits, find new ways to do things.&lt;&#x2F;p&gt;
&lt;p&gt;So, with my feelings and disclaimer out of the way.&lt;&#x2F;p&gt;
&lt;p&gt;I tried using Claude throughout this project, and of course, even without my above feelings being made clear, I feel mentioning usage of AI tooling in this project was worth being upfront about that rather than pretending I figured everything out from documentation alone. The way I &lt;em&gt;attempted&lt;&#x2F;em&gt; to use it was less &quot;write my code for me&quot; and more &quot;explain why this works the way it does.&quot; Though, I admit, at times I do wish I could just tell it to write the code for me, I know for sure in this case it could, it&#x27;s a pretty simple project overall and I&#x27;ve seen the things my friends have done with it of late, mostly on a similar curiosity whim like myself.&lt;&#x2F;p&gt;
&lt;p&gt;So, basically, when I hit a compiler error I didn&#x27;t understand, I&#x27;d ask what it meant. When I was confused about why &lt;code&gt;&amp;amp;str&lt;&#x2F;code&gt; and &lt;code&gt;String&lt;&#x2F;code&gt; are different things, I asked for an explanation in PHP terms. When I wanted to understand why some expressions in Rust don&#x27;t end with semicolons, I asked. Having something that can explain concepts in terms of what you already know, at the exact moment you&#x27;re confused, is admittedly, genuinely quite useful in a way that documentation really often isn&#x27;t — documentation assumes you know what you&#x27;re looking for, and when you&#x27;re new to a language, you often don&#x27;t. Though, years of googlefu and stack overflow articles have certainly helped me muddle through problems in the past.&lt;&#x2F;p&gt;
&lt;p&gt;What I&#x27;ve always cautioned against is these tools as a shortcut to avoid understanding. There were times where I was given code, and rather than just copying it, I made sure I at least &lt;em&gt;try&lt;&#x2F;em&gt; to understand what each part was doing before moving on. If I didn&#x27;t, well, I imagine it&#x27;d be like those times where I read up on grammar and try to blindly apply it without it really sinking in (and frankly, I&#x27;m not sure it ever will, German grammar is brutal folks). But that&#x27;s not a Rust problem or an AI problem, that&#x27;s just kinda how learning works unfortunately. How I miss the days of being a &quot;gifted&quot; child and not just a tired adult.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-can-shurl-do&quot;&gt;What Can Shurl Do?&lt;&#x2F;h2&gt;
&lt;p&gt;What had started as a simple API call has grown into something with, I&#x27;d like to think, a few at least tangentially useful features:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Tracking parameter stripping (&lt;code&gt;--clean&lt;&#x2F;code&gt;)&lt;&#x2F;strong&gt; — URLs from Instagram, YouTube, well frankly most platforms carry tracking identifiers in their query parameters. The &lt;code&gt;igsh&lt;&#x2F;code&gt; parameter on Instagram links, the &lt;code&gt;si&lt;&#x2F;code&gt; parameter on YouTube links — none of these affect what the link points to, they just tell the platform who shared it. The &lt;code&gt;--clean&lt;&#x2F;code&gt; flag strips these before shortening, which is a small privacy win for whoever sends the link.&lt;&#x2F;p&gt;
&lt;p&gt;Interestingly, while building this I spotted a parameter on YouTube Shorts links I hadn&#x27;t seen documented anywhere — &lt;code&gt;is&lt;&#x2F;code&gt; — which appeared to be a Shorts-specific tracking identifier similar to &lt;code&gt;si&lt;&#x2F;code&gt;. Whether it&#x27;s a new roll-out alongside their inane attempts to bring back DMs to the platform or some kind of A&#x2F;B test I&#x27;ve no way to confirm, but the pattern was obvious enough that it went into the strip list regardless.&lt;&#x2F;p&gt;
&lt;p&gt;I know these tracking codes have their uses, for example the various campaign and creator codes you&#x27;ll find in the bios of a YouTube video.. but I&#x27;m not a fan of tracking, so unless I&#x27;m clicking your link to support you directly, I tend to remove those parameters when I forward on a link.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Embed-friendly domain substitution (&lt;code&gt;--embed&lt;&#x2F;code&gt;)&lt;&#x2F;strong&gt; — Certain platforms, Discord being the obvious one, don&#x27;t generate previews for links from Instagram, Twitter, Reddit and others. There are community-run alternative domains — &lt;code&gt;kkinstagram.com&lt;&#x2F;code&gt;, &lt;code&gt;fxtwitter.com&lt;&#x2F;code&gt;, &lt;code&gt;rxddit.com&lt;&#x2F;code&gt; — that mirror the content but produce embeds that Discord and similar platforms actually render. The &lt;code&gt;--embed&lt;&#x2F;code&gt; flag handles the domain swap automatically.&lt;&#x2F;p&gt;
&lt;p&gt;Worth noting: when you use &lt;code&gt;--embed&lt;&#x2F;code&gt;, shortening is skipped entirely. A shortened URL might defeat the whole purpose, as depending on platforms, it might not read the domain correctly, and a shortened URL may not trigger an embed. I felt it made sense to skip shortening here, just in case, though I did test Discord with the short links from is.gd and it &lt;em&gt;sometimes&lt;&#x2F;em&gt; worked, so.. maybe I over complicated it, but making it platform agnostic made more sense, Discord won&#x27;t last forever (hopefully).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Clipboard support&lt;&#x2F;strong&gt; — By default, the result gets copied to your clipboard automatically. On Linux this required a bit more thought than on other platforms — the clipboard on Linux is owned by the process that wrote to it, so when the program exits the contents disappear unless a clipboard manager picks them up in time. The fix involves spawning a background thread to keep the contents alive just long enough until after the main process finishes. Not a problem I&#x27;d encountered before, and not one that would have been obvious without digging into how X11 and Wayland handle clipboard ownership. But, its lessons like this that I was hoping to run into, all operating systems function differently and finding those little edge cases is the perfect way to learn where those difference exist. Besides, having it auto copy to clipboard is just good manners, copying in the terminal can be very annoying depending on your flavour of terminal&#x2F;distro and other speculative factors. Not a skill issue, I promise.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Input validation&lt;&#x2F;strong&gt; — Beyond the basics, the tool now checks for bare IP addresses, private and local network ranges, missing TLDs, and enforces a maximum URL length before ever hitting the API. Better to fail fast with a clear error than to fire off an API request that was never going to work. I dread to think how I&#x27;d deal with random API errors coming back.. though, I built the functionality without trying to see what the API would spit back out in an incorrect scenario. I just wanted to get ahead of that curve.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-i-ve-actually-learned&quot;&gt;What I&#x27;ve Actually Learned&lt;&#x2F;h2&gt;
&lt;p&gt;Beyond the specific Rust syntax and concepts, a few broader things have stuck:&lt;&#x2F;p&gt;
&lt;p&gt;The module system in Rust is something PHP developers will find both familiar and different. Each file (or folder containing several files) is a module, declared explicitly with &lt;code&gt;mod&lt;&#x2F;code&gt;. Nothing gets auto-loaded. Visibility defaults to private, the opposite of PHP where everything is public unless you say otherwise. This forces you to think about your public interface versus your implementation details in a way that PHP doesn&#x27;t require at all.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;code&gt;pub fn&lt;&#x2F;code&gt; versus private function distinction becomes genuinely meaningful when you have a module like &lt;code&gt;validator.rs&lt;&#x2F;code&gt; where the public function is &lt;code&gt;validate_url&lt;&#x2F;code&gt; and everything else — the IP range checking, the TLD logic — is internal detail that the rest of the program never needs to know about. It&#x27;s a cleaner separation, which I actually appreciate.&lt;&#x2F;p&gt;
&lt;p&gt;And we all know that building a real thing, even something small, beats tutorials every time. I&#x27;ve started tutorials for new languages (both programming and &lt;em&gt;actual&lt;&#x2F;em&gt; languages) before and abandoned them when they stopped feeling relevant or when I felt I wasn&#x27;t absorbing any of the information. Whereas, having an actual tool to build, with features I explicitly wanted to add, has kept me engaged in a way that working through contrived examples sort of never does.&lt;&#x2F;p&gt;
&lt;p&gt;The funny thing is, learning Rust and learning German has felt surprisingly similar, especially the &quot;first steps&quot;. Both have rigid, unforgiving structure that feels deeply arbitrary until suddenly it doesn&#x27;t. Both require you to stop translating from what you already know and start thinking more natively, be it how sentences are built or when a structure is imported versus just declared inline. And both have moments where something finally clicks and you feel briefly, disproportionately pleased with yourself before the next wall appears to ruin your day.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;where-it-goes-next&quot;&gt;Where It Goes Next&lt;&#x2F;h2&gt;
&lt;p&gt;The next planned feature I&#x27;ll probably tackle is multiple provider support, being able to choose between is.gd and TinyURL with a &lt;code&gt;--provider&lt;&#x2F;code&gt; flag. This should help to introduce Rust &lt;strong&gt;traits&lt;&#x2F;strong&gt; properly, which I hope is the language&#x27;s equivalent of interfaces in PHP, and will mean restructuring the HTTP logic behind a common interface rather than hardcoding it to one service.&lt;&#x2F;p&gt;
&lt;p&gt;After that, maybe history tracking? Saving shortened URLs locally with timestamps. It would introduce file I&#x2F;O and working with the filesystem, which is another area I haven&#x27;t touched yet.&lt;&#x2F;p&gt;
&lt;p&gt;Rust is not the language I&#x27;d reach for to build a quick web endpoint or process a CSV, hell.. I&#x27;ve no idea what I&#x27;d use it for right now beyond silly little CLI tools and that&#x27;s fine with me right now. PHP and Python are still the right tools for a lot of what I do daily. But for the direction I want to move in, it&#x27;s exactly the right kind of challenge and will hopefully help rewire some of my thinking.&lt;&#x2F;p&gt;
&lt;p&gt;If you want to try (beta) shurl or look at the code, it&#x27;s on GitHub at &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tanihisadev&#x2F;shurl&quot;&gt;github.com&#x2F;tanihisadev&#x2F;shurl&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>The Erosion of Digital Freedoms: Privacy, Age Verification, and the New Surveillance Era</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://blog.tanih.dev/blog/the-erosion-of-digital-freedoms-privacy-age-verification-and-the-new-surveillance-era/</link>
          <guid>https://blog.tanih.dev/blog/the-erosion-of-digital-freedoms-privacy-age-verification-and-the-new-surveillance-era/</guid>
          <description xml:base="https://blog.tanih.dev/blog/the-erosion-of-digital-freedoms-privacy-age-verification-and-the-new-surveillance-era/">&lt;p&gt;In the last year we’ve seen an ever-increasing slew of &lt;em&gt;seemingly&lt;&#x2F;em&gt; well-intentioned tech policies and corporate maneuvers that are always marketed to the general public as &quot;looking out for the children&quot;, yet they raise serious questions about digital privacy and the future of online freedom. From major platforms like Discord to legislative moves in the United States, the push to &lt;em&gt;verify&lt;&#x2F;em&gt; who we are online is squeezing the freedoms that made the internet a unique space for both creativity and relative anonymity.&lt;&#x2F;p&gt;
&lt;p&gt;Personally, while I do believe the internet can be a dangerous place, these &quot;safeguards&quot; and legislation miss the mark. I believe education for children and parents would be more beneficial, teaching everyone how to remain safe online, without eroding the freedoms of citizens who have nothing to hide, but still deserve their digital freedoms nonetheless.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m going to list a few of the current major topics that come to mind in a bit more detail below and try to get to the bottom of my feelings.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;international-context-uk-and-australia&quot;&gt;International Context: UK and Australia&lt;&#x2F;h2&gt;
&lt;p&gt;In the &lt;strong&gt;United Kingdom&lt;&#x2F;strong&gt;, where I spent the majority of my life, new laws were passed under the guise of protecting children online from bad actors and threats. These regulations, while aiming to increase safety, expand corporate and government oversight of digital activity. Not something I support.&lt;&#x2F;p&gt;
&lt;p&gt;Similarly, &lt;strong&gt;Australia recently passed legislation&lt;&#x2F;strong&gt; prohibiting the use of social media by anyone under the age of 16, signalling a global trend toward rigid digital age enforcement.&lt;&#x2F;p&gt;
&lt;p&gt;While I agree that social media is not a place for children (I personally avoid it quite often) these laws are misguided in the way they are implemented. More consultation should be done with &lt;strong&gt;experts in digital privacy, cybersecurity, and user behavior&lt;&#x2F;strong&gt;, as well as people who use these technologies daily, before enacting such sweeping measures.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;discord-s-age-verification-backlash&quot;&gt;Discord’s Age Verification Backlash&lt;&#x2F;h2&gt;
&lt;p&gt;One of the main and most personal flashpoints of late has been &lt;strong&gt;Discord’s attempt to implement global age verification&lt;&#x2F;strong&gt;. This is off the back of their implementation last year to comply with UK governments new regulations.&lt;&#x2F;p&gt;
&lt;p&gt;Discord initially planned to mark existing accounts as “teen by default” until users verified their age with facial scans or government IDs. Users would not be allowed full access until they complied. (&lt;a href=&quot;https:&#x2F;&#x2F;www.wccbcharlotte.com&#x2F;2026&#x2F;02&#x2F;25&#x2F;discord-postpones-age-verification-rollout-amid-criticism-promises-transparency&quot;&gt;wccbcharlotte.com&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;Of course, as you&#x27;d expect backlash was swift, I myself cancelled my nitro subscription not long after (it runs out tomorrow morning).&lt;&#x2F;p&gt;
&lt;p&gt;Privacy advocates and everyday users pushed back against the prospect of handing sensitive biometric or identity data to a corporate platform. Myself and my online communities have been looking for alternatives, but so many who are less privacy conscious or who have tied a lot of their online identity to this platform either are reluctant to find a new platform. This is a personal frustration of mine, seeing friends so willing to give up privacy for convenience.&lt;&#x2F;p&gt;
&lt;p&gt;On Feb 24th, Discord postponed the roll-out to the latter half of 2026 and promised more transparency and alternative verification methods. (&lt;a href=&quot;https:&#x2F;&#x2F;apnews.com&#x2F;article&#x2F;f508653aad57f9f1b45175acee1ebcde&quot;&gt;apnews.com&lt;&#x2F;a&gt;)
(&lt;a href=&quot;https:&#x2F;&#x2F;discord.com&#x2F;blog&#x2F;getting-global-age-assurance-right-what-we-got-wrong-and-whats-changing&quot;&gt;discord.com&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;While the discussion has simmered down in the past week, at least in my communities, the tension is still present and will likely heavily depend on what Discord says going forward. Personally, I hope that nitro cancellations make them think twice - especially with their plans to go public this month.&lt;&#x2F;p&gt;
&lt;p&gt;Ultimately, can a platform make the internet safer without creating new privacy hazards? So far, I&#x27;d say no. Not in the ways they are currently doing things. It looks like a cheap data grab and nothing more. If anything, making everyone &quot;teen&quot; or something similar doesn&#x27;t protect children. I believe it inversely makes them more vulnerable to bad actors who can mimic the process even easier now.&lt;&#x2F;p&gt;
&lt;p&gt;Collecting data from adults doesn&#x27;t protect the vulnerable people in our society, it really is that simple.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;persona-and-privacy-risks&quot;&gt;Persona and Privacy Risks&lt;&#x2F;h2&gt;
&lt;p&gt;Discord’s initial age verification plans were further complicated by its association with &lt;strong&gt;Persona&lt;&#x2F;strong&gt;, an AI-driven identity verification service backed in part by investors who are tied to projects such as Palantir. One such backer is Peter Thiel. That should say enough, frankly.&lt;&#x2F;p&gt;
&lt;p&gt;Also, not to mention, in recent weeks, researchers found &lt;strong&gt;Persona’s front-end code exposed on U.S. government-authorised infrastructure&lt;&#x2F;strong&gt;, revealing systems that go beyond simple age checks and run hundreds of verification processes tied to broad surveillance categories.
(&lt;a href=&quot;https:&#x2F;&#x2F;www.malwarebytes.com&#x2F;blog&#x2F;news&#x2F;2026&#x2F;02&#x2F;age-verification-vendor-persona-left-frontend-exposed&quot;&gt;malwarebytes.com&lt;&#x2F;a&gt;)
(&lt;a href=&quot;https:&#x2F;&#x2F;tech.yahoo.com&#x2F;cybersecurity&#x2F;articles&#x2F;discord-faces-backlash-cuts-ties-145152635.html&quot;&gt;tech.yahoo.com&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;This discovery &lt;em&gt;obviously&lt;&#x2F;em&gt; increased distrust, &lt;strong&gt;as it should&lt;&#x2F;strong&gt;. Even though Discord has distanced itself from Persona due to privacy concerns, leading to a very funny exchange of &#x27;evil corporation A is upset they got called out by evil corporation B&#x27;, many users, rightly, view these systems as a &lt;strong&gt;gateway to persistent identity tracking&lt;&#x2F;strong&gt; rather than a narrow safety tool. (&lt;a href=&quot;https:&#x2F;&#x2F;appleinsider.com&#x2F;articles&#x2F;26&#x2F;02&#x2F;24&#x2F;discord-caves-under-pressure-wont-verify-user-ages-yet?utm_source=chatgpt.com&quot;&gt;appleinsider.com&lt;&#x2F;a&gt;) (&lt;a href=&quot;https:&#x2F;&#x2F;afrotech.com&#x2F;discord-cut-ties-persona-data-mishap&quot;&gt;afrotech.com&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;Vendors like Persona, even if only unintentionally, appear to act as proxies for surveillance infrastructure, quietly eroding anonymity on the internet. There&#x27;s numerous other examples online, just look at the backlash against Ring and Flock, leading to the subsequent backtracking of involvement between the two companies. Because we all totally need neighbourhood wide surveillance on amazon servers. (&lt;a href=&quot;https:&#x2F;&#x2F;edition.cnn.com&#x2F;2026&#x2F;02&#x2F;13&#x2F;tech&#x2F;amazon-ring-flock-partnership-ice&quot;&gt;edition.cnn.com&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;data-breaches-proof-of-the-danger&quot;&gt;Data Breaches: Proof of the Danger&lt;&#x2F;h2&gt;
&lt;p&gt;As I eluded too above with the recent breach of Persona, data breaches are becoming a bigger and bigger problem as companies collect more and more data on us, only for it to be exposed due to security negligence on their part. There have been several high profile leaks and breaches in the past decade, but I&#x27;ll put the boot into Discord again here specifically.&lt;&#x2F;p&gt;
&lt;p&gt;In late 2025, age verification processes tied to Discord led to a breach of sensitive user data, including government ID photos that had been submitted for appeals. Discord claims there was around 70,000 affected user. The hackers claimed it was in the region of 2,000,000. Now, who you choose to believe in this is up to you and I can&#x27;t prove A or B is correct, nor will I speculate. The thing to remember here is, this was only a roll-out to the UK (and perhaps AUS?) at this point in time. If Discord has already proven once they themselves and their chosen partners can&#x27;t be trusted with our data, so why should we gift them more of it on a global scale.
(&lt;a href=&quot;https:&#x2F;&#x2F;cybersecuritynews.com&#x2F;discord-data-breach-sensitive-data&#x2F;&quot;&gt;cybersecuritynews.com&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;These breaches outline an obvious and inevitable risk of these legislative and corporate actions: trying to protect children online can (and will) inadvertently endanger everyone’s privacy, irreparably.&lt;&#x2F;p&gt;
&lt;p&gt;Amendment: In a nice twist of irony, there was an incident today where hackers gained access to a hotels system and sent out emails, whatsapp and booking.com messages to users trying to gain access to their credit cards. My wife was one of those people they tried to con, thankfully, she is of course far more tech savvy than the average user.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;u-s-legislation-os-level-age-verification&quot;&gt;U.S. Legislation: OS-Level Age Verification&lt;&#x2F;h2&gt;
&lt;p&gt;Even just this week, we’ve seen moves in both &lt;strong&gt;California and Colorado&lt;&#x2F;strong&gt; to require some form of age verification during operating system installation or account creation. Though honestly, I&#x27;m not sure how they plan to really make these things enforceable, given most of the worlds server ecosystem runs on Linux based systems, which are.. yknow, built for privacy. As a recent convert back to the world of desktop Linux (CachyOS) and someone who works in web development on the daily, if these things are allowed to continue, I dread to think how they will affect my daily usage and workflows. It might start off small, but as with many things, give an inch and they&#x27;ll take a mile.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;California&lt;&#x2F;strong&gt;: The &lt;em&gt;Digital Age Assurance Act&lt;&#x2F;em&gt; (AB 1043) requires operating system providers to collect users’ ages and share them with app developers. (&lt;a href=&quot;https:&#x2F;&#x2F;www.tomshardware.com&#x2F;software&#x2F;operating-systems&#x2F;california-introduces-age-verification-law&quot;&gt;tomshardware.com&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Colorado&lt;&#x2F;strong&gt;: Similar initiatives are being discussed to embed age verification in OS-level systems and online services. (&lt;a href=&quot;https:&#x2F;&#x2F;www.windowscentral.com&#x2F;microsoft&#x2F;windows&#x2F;new-california-law-requires-age-checks-in-windows&quot;&gt;windowscentral.com&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Another amendment, apparently Cannonical developers are looking at  potentially adding changes to the D-Bus interface (and in turn attempt to force these changes on other Distros). This is all still fresh information and likely subject to some level of scrutiny, but its a space to watch. (&lt;a href=&quot;https:&#x2F;&#x2F;9to5linux.com&#x2F;ubuntu-fedora-linux-mint-eye-age-verification-amid-california-law-backlash&quot;&gt;9to5linux.com&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;broader-legislative-context&quot;&gt;Broader Legislative Context&lt;&#x2F;h2&gt;
&lt;p&gt;Beyond California and Colorado, legislative efforts like the &lt;strong&gt;Kids Online Safety Act (KOSA)&lt;&#x2F;strong&gt; in the USA aim to regulate children’s experiences online. While these laws focus on protecting minors, they also normalise &lt;strong&gt;intrusive&lt;&#x2F;strong&gt; identity verification systems and the erosion of anonymity across platforms. Instead, as I said much earlier in this now quite long rambling, education for parents and kids would go a long way. Governments and Corporations should be at the bottom of the list. Heck, Corporations have very little place in this, in my view. Governments should only step in when it is necessary, not as a first port of call. (&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Kids_Online_Safety_Act&quot;&gt;en.wikipedia.org&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-slippery-slope-of-digital-identity&quot;&gt;The Slippery Slope of Digital Identity&lt;&#x2F;h2&gt;
&lt;p&gt;Corporate age gates, Government mandates, and surveillance-linked vendors mark a new stage in the erosion of digital freedoms:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Identity over anonymity&lt;&#x2F;strong&gt;: The internet is shifting from anonymous spaces to identity-linked ecosystems, we see it daily. If our younger selves saw the amount of information we give up so freely on the daily, I&#x27;m sure we&#x27;d be terrified at how far we&#x27;ve fallen from our principles.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Security versus liberty&lt;&#x2F;strong&gt;: Data collection meant to protect users so often weakens privacy protections and has been used and abused by bad actors, be it hackers or corporations.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Normalisation of surveillance&lt;&#x2F;strong&gt;: Tools designed for age verification can easily become tools for mass population monitoring and control.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;In all of this though, the important question remains:&lt;&#x2F;p&gt;
&lt;h1 id=&quot;can-we-protect-vulnerable-users-without-eroding-digital-freedom-for-everyone&quot;&gt;&quot;Can we protect vulnerable users without eroding digital freedom for everyone?&quot;&lt;&#x2F;h1&gt;
&lt;p&gt;Everyone is entitled to a safe and fulfilling experience in the digital worlds we inhabit, but if that comes at the cost of our privacy.. I&#x27;m not sure if it&#x27;s worth it.&lt;&#x2F;p&gt;
&lt;p&gt;The internet we grew up in, where privacy was the default, is fading. The next few years will probably determine whether the anonymity, creativity and autonomy we grew up with online will survive or whether our identities will be permanently tied to the systems that once promised to protect us.. Oh and don&#x27;t even get me started on AI.&lt;&#x2F;p&gt;
</description>
      </item>
    </channel>
</rss>
