<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>nanobot567&apos;s blog</title><link>https://vulpine.zone/blog/</link><description>nanobot567&apos;s blog</description><item><title>playdate synth</title><link>https://vulpine.zone/blog/23-05-08.html</link><author>nanobot567</author><pubDate>Mon, 8 May 2023 12:56:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          Here's another project I've started but probably will never finish:
        </p><p><video aria-label="video of a sequencer program running on the playdate handheld" controls=""><source src="https://vulpine.zone/blog/media/video/23-05-08/pdsynth.webm" type="video/webm"></video></p><p>
          I want it to be kind of like a souped-up <a href="https://teenage.engineering/products/po" target="_blank">Pocket Operator</a> with extra features. I plan to bump the step
          count up to 64 and implement the FX and LFO modules soon, but
          unfortunately I can't test on hardware right now since my Playdate's
          kind of dead. I tried updating from recovery OS 1.11.1 to 1.13.7 (for
          reasons I don't want to say here) and it started bootlooping as soon
          as the update began applying. I sent an email to Playdate support but
          honestly I'm skeptical that they'll be able to fix it, from what I can
          tell the serial interface doesn't work and the System partition is
          corrupted. The good thing is, I was able to access the Data partition
          through spamming the reset button in the crank dock so all of my save
          data and games are backed up on my computer. ANYWAYS, as of now my
          synthesizer is unnamed. Name contenders include
          <span style="color: red">Kronos</span>, <span class="rainbow">WaveDate</span>, and Mono(chrome). I'm kind of leaning towards
          Kronos, it definitely sounds the coolest. I'll post an update later
          once I decide on a name.
        </p></body></html>]]></content:encoded></item><item><title>unfixable playdate</title><link>https://vulpine.zone/blog/23-05-12.html</link><author>nanobot567</author><pubDate>Fri, 12 May 2023 13:52:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          Well, my hunch was correct. My Playdate is unfixable. I'm pretty
          bummed about it, partially because it was my fault, but also because
          I'll no longer have the original Playdate that I preordered 10 minutes
          after it went on sale. Sigh.
        </p><p>
          Fortunately, there are a lot more pros than cons in this situation.
          I'll have a fresh, new Playdate; a fully functioning d-pad (the up
          button was a little mushy); and now I know never to do that again. I
          didn't even lose any of my save data, since I backed it up way before
          any of this even happened.
        </p><p>
          Hopefully I'll get the new one pretty soon, from what I've heard
          Panic's pretty good about sending out replacement Playdates quick.
          Pretty sure they say this to everyone, but they told me to send my
          Playdate back to them for inspection, which is really cool! Maybe
          they'll figure out what went wrong...
        </p><p><i>(P.S. Panic's customer support is the absolute BEST! They were
            super nice, and I definitely felt less stressed about everything
            when we were trying to figure out a solution to my issue)</i></p></body></html>]]></content:encoded></item><item><title>ford taurus x radio swap</title><link>https://vulpine.zone/blog/25-05-25.html</link><author>nanobot567</author><pubDate>Sun, 25 May 2025 20:23:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><h2 id=""><u>Replacing a Ford Taurus X radio</u></h2><p>
          Today I successfully replaced the radio of my <span class="rainbow">2008 Ford Taurus X</span>! The CD drive had gotten jammed at some
          point and hadn't ever recovered, so we thought it might be a good idea
          to replace it so we have a (practically) fresh unit.
        </p><p>
          Maybe I'm just used to things being incredibly hard to repair
          nowadays, but honestly it was easier than I expected!
        </p><p>
          Taking off the control panel's front was literally as simple as using
          your fingers to pry it off, and the radio was only held in with a bolt
          in each corner. Actually unbolting it was a bit of a pain though,
          since the front panel was wired to the car and in the way, and it
          would be more trouble than it was worth to unplug everything then plug
          it back in once the repair was done.
        </p><p><img src="https://vulpine.zone/blog/media/img/25-05-25/paneloff.jpg" alt="a Ford Taurus X entertainment center, with its front panel taken off" class="blog-small"></p><p><i>every single time the socket wrench was turned, my hand hit the
            panel xP so annoying</i></p><p>
          I will admit I lost a bolt or two in the abyss below the control
          panel. Thankfully extendable magnets exist and I was able to get them
          out of there X3
        </p><p>
          The radio we bought to replace it didn't look the best, it had a huge
          scuff on the display, and the paint on both of the seek buttons was
          completely worn down. BUT it had a working CD drive, and that was
          really all that mattered.
        </p><p>
          Oh yeah, strangely when installing the new radio, there were only two
          connectors on the back instead of three like on the old one..? I'm 99%
          sure the leftover connector was for Sirius XM, since everything else
          seemed to work okay when I gave it a test run (including the CD drive!
          was a bit skeptical since it was bought off of ebay haha).
        </p><p>
          I feel like I've always seen Sirius XM advertised on cars, but
          personally I've never seen anyone use it (<s>does anyone use it at
            all??</s>
          [<a href="https://d18rn0p25nwr6d.cloudfront.net/CIK-0000908937/261d1b9f-eb18-400a-8347-239efdb571c7.pdf" target="_blank">yes</a>, apparently]).
        </p><p>
          ANYWAY, since our old radio had some relatively cool CDs stuck in it
          (Foo Fighters was a big one) I thought I'd try taking it apart to
          recover them! The front display came off pretty easy, but after
          pulling it away from the mainboard I saw that it was connected through
          ribbon cables, which made me think that it would be possible to just
          swap out the entire display since it looked much better than the
          display on the new one.
        </p><p>
          Unfortunately this meant taking apart the Taurus' control panel again,
          but I was willing to do that just to make everything look a little bit
          nicer.
        </p><p>
          Thankfully the display swap worked perfectly!! Now you can't even tell
          that a new radio was put in.
        </p><p><img src="https://vulpine.zone/blog/media/img/25-05-25/done.jpg" alt="a Ford Taurus X entertainment center, now looking good as new!" class="blog-small"></p><p><i>tadaaaa!</i></p><p>
          Once everything was done and dusted with that, I went back to trying
          to recover the CDs in the old radio. I ended up having to basically
          destroy the top metal cover just to get inside, and tear apart each
          lock tab keeping the CDs in place. I'm not too disappointed though,
          it's not like I was gonna use a broken radio anyway :3
        </p><p>
          Anyway, I guess I'm proud I managed to pull that off today! Never
          really had to work on a car before so this was a cool experience.
        </p><p><img src="https://vulpine.zone/blog/media/img/25-05-25/rip.jpg" alt="a cardboard box full of broken CD reader parts" class="blog-small"></p><p><i>RIP old radio parts <span style="font-style: normal">🪦</span></i></p></body></html>]]></content:encoded></item><item><title>slingshot launcher for playdate</title><link>https://vulpine.zone/blog/23-01-19.html</link><author>nanobot567</author><pubDate>Thu, 19 Jan 2023 20:24:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          Today I started working a custom Launcher.pdx for the <a href="https://play.date/" target="_blank">Playdate</a> console, which I named
          <span class="rainbow">SLINGSHOT</span>! I'm adding all of the features
          that people really want right now, including app searching, sorting,
          and editing. <i>I do feel kind of bad though, there was another person
            working on a launcher but I just kind of ruined that by making my
            own...</i></p><p>
          Creating slingshot was a good idea, not only because having a custom
          launcher is awesome, but also because it gave me an excuse to
          jailbreak my playdate so I could test it on-device! I did this using
          Crank2Unlock, an app that shows your playdate unlock code. Apparently,
          through the serial interface, you can access a million commands hidden
          from the user until you use that code to reveal them, such as <code>sysdisk</code> (share the system partition of your playdate's disk)
          and <code>lcdtest</code> (shows a cool stripes pattern on the
          playdate).
        </p><p>HACKING STUFF IS SO FUNNNNNNNNNN!!!</p></body></html>]]></content:encoded></item><item><title>an interesting day</title><link>https://vulpine.zone/blog/23-03-03.html</link><author>nanobot567</author><pubDate>Fri, 3 Mar 2023 22:28:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>Today was the strangest and most interesting day I've ever had.</p><p>
          It started like a normal school day would. Doing work, slacking off
          because it was nearly the weekend, etc. But during lunchtime someone
          said over the intercom that there was a tornado watch announced for
          our location, so everyone was to grab lunch and hurry to 5th period (I
          still don't know why they said to go to our next class, we could have
          just, I dunno, gone to the massive non-windowed room 5 steps away from
          the cafeteria?). So we went to 5th period. It rained hard for about 10
          seconds, but after that, the sky was blue and there were no clouds in
          the sky. An hour later, someone's Honda got crushed by a falling tree,
          and our local news station came by to cover the story. Not even 30
          minutes after this, a <span style="color: red">TRAIN BLEW UP</span>
          outside and busted a power line, causing my school to lose power for a
          solid 15 minutes. THEN we had to leave early at 2:45 because the
          electrical issues were so bad that it was unsafe to stay in school.
        </p><p>
          At this point you might think that was the end of the story, but no,
          it keeps going. When I got to the bus station, it was super early so I
          grabbed a snack and missed the 3:15 bus, which isn't normally a
          massive deal because I don't usually make it to the station before
          3:15. Well, I ended up having to wait <span style="color: red">45 MINUTES</span> for the next next bus to come, because for some
          reason the bus at 3:35, which I usually depend on, never showed up. So
          I got on this late bus with my friend lilfigurative and another friend
          of mine, expecting it to take the usual route. It ended up dropping us
          off at a random community center. Thankfully I knew where I was and
          could give my location to my dad.
        </p><p>Anyway, there's my insane day. Here's a button for your troubles:</p><p><button>Button!</button></p></body></html>]]></content:encoded></item><item><title>installing arch linux</title><link>https://vulpine.zone/blog/24-12-14.html</link><author>nanobot567</author><pubDate>Sat, 14 Dec 2024 06:08:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><h2 id=""><u>Installing Arch Linux on a MacBook Pro (8,1)</u></h2><p>
          I've always liked the premise of a system so bare-bones that you quite
          literally only install what you need onto it, so I thought I'd try to
          install <a href="https://archlinux.org/" target="_blank">Arch Linux</a> on an old MacBook Pro I had lying around!
        </p><p>
          I had actually put Linux on this MacBook already (<a href="https://www.linuxmint.com/" target="_blank">Linux Mint</a>) alongside an install of Mac OS X Lion and it went
          incredibly smoothly, so I thought that it might be the same story with
          Arch (spoiler: it was not).
        </p><h3 id="so-here-s-how-that-went">So, here's how that went.</h3><p>
          First thing I did was just straight up delete every partition on the
          drive besides the one containing Mac OS in recovery mode's Disk
          Utility. This went fine, but it left behind the old bootloader from
          Mint (GRUB), which I thought would be alright for now.
        </p><p>
          I then flashed Arch onto a spare USB drive and tried to boot from it,
          which... didn't work 😆. It basically just hung on a black screen,
          even with MacBook Pro-specific kernel parameters. After a while I just
          gave up on booting Arch entirely and gave Fedora XFCE a go, and that
          ALSO didn't work. Fedora at least displayed something onscreen, which
          was nice since I could at least try to figure out what was going on.
        </p><p>
          Fedora would hang for a while on boot, but then spout this string of
          messages every couple of seconds:
        </p><p><img src="https://vulpine.zone/blog/media/img/24-12-14/dracut.jpg" alt="an image of a Linux terminal outputting error messages relating to dracut-initqueue" class="blog-fill"></p><p>
          After a quick DuckDuckGo search it seemed like Fedora couldn't find
          any logical volumes on the system (whatever that means LOL), and all
          of the solutions I found dealt with a complete install of Fedora and
          not the live boot version, so I <span style="color: red">couldnt really fix the issue.</span></p><p>
          I thought I should try to delete GRUB off of my EFI boot partition at
          this point since I thought that might update the logical volumes index
          (if there even is one). In hindsight though this was pretty pointless,
          I don't know how that would have helped anything XD
        </p><p>
          I assumed that USB booting was completely impossible (for some reason)
          so I tried to use a tool called bootconfig, but it was written for
          much newer versions of Mac OS, so that was a bust too.
        </p><p>
          Finally, I decided to just bite the bullet and wipe the entire drive
          so I could start fresh.
        </p><p>
          After THAT was done, Arch still wouldn't boot, and neither would
          Fedora for the exact same reason!! I was genuinely worried I screwed
          something up at this point, it made no sense that the error persisted
          even after essentially restoring to factory defaults.
        </p><p>
          It took me an hour or two of tinkering around to realize that I could
          try to install Linux Mint again, since that for sure worked last time.
          So, I did just that, and thankfully it booted up just fine!
        </p><p>
          I ended up reinstalling Linux Mint so I could at least have some Linux
          distro running in case installing Arch was impossible.
        </p><p>
          NOW I could actually start doing stuff! I discovered a tool called
          <a href="https://github.com/wick3dr0se/archstrap" target="_blank">archstrap</a>
          which really saved my neck here. From Linux Mint, I could set up my
          Arch install without ever touching the live boot installer!
        </p><p>
          The first time I ran through the Arch install process I had no idea
          what was going on, it essentially was a massive infodump of command
          line utilities I had never heard of and technological terms I hadn't
          seen before either. So, inevitably, the first try installing Arch was
          a failure, and the second try was too (for various reasons, one of
          which being I ran <code>pacman</code> instead of <code>pacstrap</code>
          when installing necessary packages). But I kept trying stuff, and
          eventually I got a functional Arch install!
        </p><p>
          I then installed
          <a href="https://rodsbooks.com/refind/" target="_blank">rEFInd</a>
          (which worked without any issues). However, after rebooting, I noticed
          that Arch didn't boot at all and it skipped straight to rEFInd (this
          should not have happened :/), and there was also no Arch boot option.
          Apparently I had forgotten to actually create the boot entry with
          <code>efibootmgr</code> 🤦‍. So, I went ahead and did that, and
          Arch booted just fine after restarting!!
        </p><p>
          I went ahead and took this chance to get most of my stuff set up (<a href="https://github.com/swaywm/sway" target="_blank">swaywm</a>,
          <a href="https://sw.kovidgoyal.net/kitty/" target="_blank">kitty</a>,
          <a href="https://www.lunarvim.org/" target="_blank">lvim</a>). I had a
          couple issues with connecting to WiFi though, which were fixed by
          installing the right Broadcom chip drivers (I forget the name of the
          package though, haha), but other than that everything was relatively
          simple to install and configure.
        </p><p>
          Later on I created an actual entry for Arch in rEFInd, and that also
          went well but also took a few tries.
        </p><p>
          Finally, after all of that, I successfully got Arch in a state I'm
          happy with!!
        </p><p><img src="https://vulpine.zone/blog/media/img/24-12-14/macbookarch_screenie.png" alt="a screenshot of a fastfetch output, displaying that a MacBook Pro 8,1 is running Arch Linux!" class="blog-fill"></p><p>
          Something I'll mention about installing Arch is that it's
          fundamentally very simple to do, although the installation guide looks
          scary XD. It all makes sense what you're doing, and that's mostly in
          part to how well everything is explained (thank you, Arch wiki
          contributors). It could also just appear simple to me now because I've
          read the entire guide about five times 💀
        </p><p>
          As for Arch itself, I can definitely see why people love it so much.
          It's honestly kind of fun to set up, since you're picking and choosing
          exactly what you want with absolutely no bloat. Even after getting my
          install the way I'd like it, I only used about four gigabytes of space
          TOTAL!
        </p></body></html>]]></content:encoded></item><item><title>AOS-GUI update, joining mastodon</title><link>https://vulpine.zone/blog/23-02-12.html</link><author>nanobot567</author><pubDate>Sun, 12 Feb 2023 16:40:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          Late yesterday night I released a new version of
          <a href="https://github.com/aos-gui/aos-gui/" target="_blank">AOS-GUI</a>, which I really haven't wanted to work on in a long time.
          I don't really know why I all of the sudden wanted to add a ton of new
          stuff, but hey, progress has been made and I don't regret spending my
          time on it!
        </p><p>
          Another thing that happened, I created a <span class="rainbow"><a href="https://joinmastodon.org/" target="_blank">Mastodon</a></span> account, and I like it a lot more than Twitter.
          It's open-source and its API is free! Hopefully a lot of others move
          over to Mastodon, although a lot of people have already migrated over
          there are still a lot of accounts I followed on Twitter that aren't on
          Mastodon yet. I also hope that more people create bots for it, some of
          the bots I've already seen are really interesting!
        </p></body></html>]]></content:encoded></item><item><title>overflow .map files</title><link>https://vulpine.zone/blog/23-10-23.html</link><author>nanobot567</author><pubDate>Mon, 23 Oct 2023 16:53:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          Ahh, my monthly blog post! I don't write very often, but man, it's
          great to type something out that's personal and not related to school!
        </p><p>
          About a month ago, I decided I was going to make an ACTUAL GAME! The
          current title is <dfn title="ive also styled this as overflow or 0verfl0w. cant really decide which one to choose from XD">Overflow</dfn> (referring to the technical term 'stack overflow'),
          but I do want to change it if I ever come up with a better name.
          Overflow is cool but it's often misinterpreted (as I've witnessed from
          talking to my friends about it...).
        </p><p>
          I'm actually almost finished with the game engine! Once I brush it up
          and smash all of the bugs, I can finally add the story to the game,
          which should be the fun part.
        </p><p>
          Because I feel like it, I'm going to explain the <span class="rainbow">.map</span> file format that I created!
        </p><h2 id="the-map-file-format">THE .MAP FILE FORMAT</h2><p>Here's an example .map:</p><p><img src="https://vulpine.zone/blog/media/img/23-10-23/mapex.png" alt="an example of a .map file" class="blog-fill"></p><ul><li>
            Lines 1-15: This is the map that you will actually see on the
            screen.
          </li><li>
            Lines 16-(line with -END-): Map exits. The format is 'map-name
            startX, startY, endX, endY, playerX, playerY'.
          </li><li>
            Lines (line with -END-) to (line with -ENDI-): Bump interactions.
            Interactions are just big blocks of JSON ¯\_(ツ)_/¯. They're similar
            to the map enter interactions on line 19, except the first value in
            the JSON is a pair of X,Y coordinates instead of the amount of times
            the player needs to enter the map to run the actions.
          </li><li>
            Lines (line with -ENDI-) to (end of file): Map enter interactions.
            Like stated before, it's basically the same as the bump
            interactions.
          </li></ul><p>
          All of this together makes a big moshpit that somehow works when put
          into practice, albeit it is pretty slow to process (~.7 sec.). My
          solution? <span style="color: red">PRELOADING.</span> If preloading
          didn't exist (somehow), I'd have to either rewrite the engine in C or
          rewrite the map format again.
        </p><p>I'm trying to have fun here, this shouldn't be a job!</p><p>
          I also got really excited and started to make music for Overflow! I
          think I created something pretty close to a movie soundtrack, which
          was EXACTLY what I was going for. This song is going to play during
          the ending cutscene!
        </p><p>
          The only problem is that I can't animate for the life of me. And my
          drawings suck. So, I'm going to try to improve art-wise. Hopefully by
          the end of 2024 (that's when I plan to release the game, by the way)
          I'll be good enough to make something that looks kind of okay!
        </p><p>
          To sum up / In conclusion / Finally, I'm super happy that I'm making a
          game! It's been a ton of fun so far, and I don't plan on stopping any
          time soon, unless my creativity tanks and I become too unmotivated to
          continue...
        </p></body></html>]]></content:encoded></item><item><title>AOS-GUI progress, restriction workarounds</title><link>https://vulpine.zone/blog/23-08-15.html</link><author>nanobot567</author><pubDate>Tue, 15 Aug 2023 19:36:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          AOS-GUI is coming along nicely! I'm pretty proud of my changes to the
          shell so far, and I'm really excited to publish the new version!
          Unfortunately school has started back up again, and the workload is
          <span style="color: red">already annoying.</span></p><p>
          Thankfully, I'm working on a couple of ways to increase my
          productivity (non-school wise) on school laptops. USB booting has been
          patched, so sadly that is a no-go :(. I have 16 GB of free storage to
          work with though, so there should be plenty of space.
        </p><p>Current ideas:</p><ul><li><i>PowerShell.</i> This is the most viable option for expanding my
            horizons (don't worry, nothing to do with gaining admin, just simply
            trying to bypass UAC prompts).
          </li><li><i>Online tools.</i> Incredibly, there are many programs available
            online that I can use to my advantage, namely
            <a href="https://copy.sh/v86" target="_blank">copy.sh/v86</a>,
            <a href="https://distrosea.com/" target="_blank">Distrosea</a>,
            <a href="https://github.dev" target="_blank">github.dev</a>, and <a href="https://infinitemac.org/" target="_blank">Infinite Mac</a>. With just these websites I can get my Linux and
            coding fixes.
          </li><li><i>Remote desktop software.</i> As an easy solution, I can simply
            wire into my computer at home and do what I need to do there.
            Without admin access or the ability to run executables not signed by
            Microsoft, my options are pretty limited. However, there are ways to
            pull this off (<a href="https://www.realvnc.com/en/news/control-computer-within-your-web-browser/" target="_blank">VNC</a>,
            <a href="https://github.com/novnc/noVNC" target="_blank">noVNC</a>,
            <a href="https://go.anydesk.com/" target="_blank">anydesk</a>, <a href="https://remotedesktop.google.com/" target="_blank">chrome remote desktop</a> [this one may not be a very good option
            due to some recent... changes on Google's end]).
          </li><li><i>Microsoft MSIXes.</i> There's a way to install Microsoft store
            apps by opening a downloaded .msix file (package file). I've already
            done this to install Python, so it's probably also possible with all
            of the other apps (this solution requires further testing).
          </li><li><i>Just ask for the apps I need ¯\_(ツ)_/¯.</i> I attempted this
            earlier today, I emailed an IT guy about installing Git onto my
            computer along with Neovim. That should hold me off if successful.
          </li></ul><p>
          So there are plenty of backup plans in case something goes wrong or
          one of these methods get patched. I'm also constantly looking for
          other ways to make school more livable and the laptops less annoying
          to work with, so maybe I'll discover the Holy Grail of workarounds
          sometime soon!!
        </p><details><summary>Extra information for the nerds</summary><p><b>Regarding PowerShell:</b> via VSCode you can use pwsh, or you can
            download the .msix bundle and install a new, unblocked pwsh that
            way.
          </p><p><b>Regarding MSIXes:</b> if there's a way to package regular
            installers into MSIXs then all restrictions will be removed
            (candidate could be packaging into MSIX from a personal computer and
            sending it over through USB/FTP/etc.)!
          </p></details></body></html>]]></content:encoded></item><item><title>facing the loss of my childhood</title><link>https://vulpine.zone/blog/26-02-12.html</link><author>nanobot567</author><pubDate>Fri, 13 Feb 2026 03:10:14 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><h2 id=""><u>Facing the Loss of my Childhood</u></h2><p>
          I've recently turned eighteen years old, which means I am now a <b>legal adult</b>. Yay?
        </p><p>Look at all the exciting things I can do now!! -</p><ul><li>taxes <i>(gross but necessary)</i></li><li>smoke <i>(just gross)</i></li><li>join the military <i>(hard pass)</i></li><li>vote <i>(okay this one is actually really great)</i></li></ul><p>
          I've simmered on this for a few months now, and my feelings about it
          have shifted from excitement to indifference, and now to trepidation.
          This sounds cheesy, but I'm feeling this way because I recently
          realized it's the beginning of the end for the life I used to live.
          Which, to be completely honest, is hard for me to accept.
        </p><p>
          I feel incredibly fortunate to have had such an amazing childhood. I
          had so much time on my hands to do pretty much whatever I wanted, and
          for every second I was supported by my family (to which I am <i>immensely</i> grateful, by the way. Words cannot describe how much,
          haha). But now I'm eighteen, and I suddenly find myself running out of
          time. I'm getting my first job in April. I'm graduating high school in
          May. I'm mentally and physically preparing to live somewhere other
          than the place I've lived my entire life.
        </p><p>I have to... move on?</p><p>But I'm not ready yet. I'm very much not ready.</p><p>
          Starting this new chapter of my life is great in a lot of ways, sure,
          but I can't help but think about what I'll be losing. The thing I'm
          most upset about? I'll never again have the kind of time I had when I
          was younger to <i>be human</i>. Learn and create for the hell of it,
          with no expectations whatsoever, without the constant nagging feeling
          in the back of your mind that you need to be productive, or be useful,
          or make money or <i><b>something</b></i>. That sort of thinking has
          already started to creep up on me, and I don't like it at all.
        </p><p>
          But it's not like I can just push those thoughts away, because that's
          what you have to do to survive in today's world. You have to work, and
          work hard, only to earn just enough money to buy the essentials, and
          maybe a little more if you're lucky. Even that's not so simple though,
          every step of the way you have outside forces working against you.
        </p><p>
          Sure, it's what you need to do to survive, but as soon as you become
          an adult and get your first job, your life of being truly free is
          over. You're now, for lack of a better term, "a cog in the machine",
          and I hate that. Everyone has so much potential but I feel like
          usually it's left unrealized, since nine-to-fives take up such a huge
          chunk of time.
        </p><p>
          Anyway, I guess I'm not ready to give that up yet, but at the same
          time I suppose I'd better just suck it up and face it head on.
        </p><p>
          I will say this though: one of these days, I would love to pack up my
          stuff and move out into the middle of nowhere with <code><span style="color: red">[error: universe: person not yet found in this
              timeline]</span></code>. But I can't because that's just an
          unrealistic living situation...
        </p><p>...right?</p><hr><p><img src="https://vulpine.zone/blog/media/img/26-02-12/somewhere_else.jpg" alt="a photo of a Macroeconomics worksheet on GDP, with a pencil-drawn doodle in the corner of the page. this doodle is of a moonlit cabin surrounded by pine trees. coming from a crack in the cabins door is a dreamy-looking speech bubble, saying and now were" class="blog"></p></body></html>]]></content:encoded></item><item><title>announcing furriness</title><link>https://vulpine.zone/blog/25-07-23.html</link><author>nanobot567</author><pubDate>Thu, 24 Jul 2025 04:48:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><h2 id=""><u>The pathOwOgen spreads.</u></h2><p><img src="https://vulpine.zone/blog/media/img/25-07-23/ew.png" alt="a digital comic with several panels arranged vertically. a furry stands to the left, and a human points at the furry and says ew," class="blog-small"></p><p><i>(source unknown)</i></p><p>
          So uh... yeah. I'm a furry! You may have already come to this
          conclusion based on some of the newer additions to this site, but
          here's an 'official' announcement to confirm any suspicions XD
        </p><p>
          I guess I've had this lingering interest in anthros ever since I
          watched <a href="https://en.wikipedia.org/wiki/Robin_Hood_(1973_film)" target="_blank">Robin Hood (1973)</a>
          when I was really young. Around three years ago (I'm gonna be
          completely honest, I think it was <a href="https://en.wikipedia.org/wiki/The_Bad_Guys_(film)" target="_blank">The Bad Guys (2022)</a>
          that did it, haha) this interest started to kind of spiral out of
          control... I've only recently let it show a bit, and now it's gotten
          to the point where I just kinda want to be myself and stop trying to
          hide it.
        </p><p>
          I will say I don't think I'm a <b>furry</b> furry like people usually
          think of when they hear the term. I don't (really) have a fursona and
          I'm not absolutely dying to make one, and I'm also not involved in
          the... uh... <i>interesting</i> side of the community. I really just
          enjoy the art and culture :P It's great stuff, and there are some
          incredibly talented people in the fandom.
        </p><p>
          At first I was a bit hesitant to say I'm actually a furry because of
          that... initially I thought being a furry meant you practically
          <b>were</b> your sona, and suiting had to be a thing you did in order
          to be classified as one. But apparently you just have to have an
          interest in anthros, at least according to
          <a href="https://en.wikifur.com/wiki/Furry" target="_blank">WikiFur</a>--
        </p><blockquote><p><b>What it means to <i>be</i> furry</b></p><p>
            Someone who says they are furry is generally expressing an interest
            in anthropomorphic animals and/or creatures (and perhaps some
            affiliation to furry fandom). They may say that interest in a
            variety of ways - through art and stories roleplay and performance.
            How deep or meaningful interest in furry varies greatly from person
            to person.
          </p></blockquote><p>
          Anyway, just wanted to throw that out there so I feel better about
          expressing that side of me more. Sorry not sorry to all the people who
          despise furries I suppose ¯\_(ツ)_/¯
        </p></body></html>]]></content:encoded></item><item><title>the framework laptop experience</title><link>https://vulpine.zone/blog/23-09-21.html</link><author>nanobot567</author><pubDate>Fri, 22 Sep 2023 03:23:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><h2 id=""><u>The Framework Laptop 13 Experience</u></h2><p>
          I recieved my <a href="https://frame.work" target="_blank">Framework</a> Laptop 13 today! I decided to write a blog post about
          it becuase it seemed like a fun idea :)
        </p><h3 id="first-impressions">First impressions</h3><p>
          I really liked how they organize everything in the box, definitely
          felt professional. And free stickers?? <span style="color: red">Heck yeah!</span></p><p><img src="https://vulpine.zone/blog/media/img/23-09-21/fw1.jpg" alt="framework laptop 13 box" class="blog-small"></p><h3 id="build-process">Build process</h3><p>
          The build was actually much easier than I thought it would be. All of
          the instructions are pretty clearly laid out on the website. As a lot
          of people said, the bezel is pretty flimsy, although when you put it
          on the laptop you can't tell at all. The only problem I had while
          putting it together was the input cover not fitting in perfectly, but
          that fixed itself as soon as I screwed it in.
        </p><p>Here's a picture of the completed build:</p><p><img src="https://vulpine.zone/blog/media/img/23-09-21/fw2.jpg" alt="completed build of framework laptop 13 with red bezel" class="blog-small"></p><p><i>(ignore the cardboard mess in the background XD)</i></p><h3 id="first-boot">First boot</h3><p>
          I didn't even check to see what happens if you don't have an operating
          system installed yet, I went ahead and booted from USB. The system
          took about a minute to boot, but this was because it was doing "memory
          training" (that's what they said online, anyway :P). It installed
          Fedora 38 Cinnamon without a hitch.
        </p><h3 id="first-boot-into-an-actual-operating-system">
          First boot into an actual operating system
        </h3><p>
          Fedora 38 worked flawlessly! I was able to get completely moved into
          the laptop in about 30 minutes (but this was mainly due to a poor WiFi
          connection when downloading package updates and copying stuff over
          from my old computer). It may have been just because I've been using
          ~10 year old hardware for a long time, but MAN it is so fast! Even the
          base CPU (i5-1340P) is lightning quick when opening apps such as
          Firefox, which normally takes a long time.
        </p><h3 id=""><span class="rainbow">~ Gaming ~</span></h3><p>Here's how the Laptop 13 handled some of the games I own:</p><ul><li><b>Superhot and Superhot MCD:</b> Nearly consistent FPS on low
            settings. Normal config is kind of meh in Superhot, but in MCD they
            must have done some crazy optimization, because performance was
            about the same!
          </li><li><b>Minecraft:</b> Almost consistent 60 FPS with a render distance of
            18, the Sodium mod, and VSYNC turned on. (Without VSYNC, I got
            around 200 FPS(<span style="color: red">!!</span>)
          </li><li><b>Portal and Portal 2:</b><span style="color: green">Perfect!</span></li><li><b>Terraria:</b><span style="color: greenyellow">Perfect-er!</span></li><li><b>Risk of Rain 2 (through Wine / Steam Proton):</b> I will say I
            had a couple issues initially, the game crashed often and Cinnamon
            didn't like me running the game in fullscreen, but after a while it
            seemed to have ironed out all of the issues itself, and ran pretty
            well!
          </li></ul><p>
          I also tried running OBS in the background, recording at 60 FPS, 1920
          x 1280. Next to no frame drops on anything, which is a pretty massive
          deal! Maybe I can start doing YouTube stuff again :)
        </p><h3 id="minor-gripes">Minor gripes</h3><ul><li>
            3:2 as a monitor aspect ratio on a modern laptop is really strange,
            although it is pretty cool! (If I desperately need the traditional
            16:9 ratio, I can always just switch the display resolution or use a
            separate monitor)
          </li><li>
            Touchpad is a little bit weird. You press it down with medium
            pressure and it makes a small *click* sound, making you think that
            it has clicked, but in reality you need to press harder! It's like
            how touchpads used to be on MacBook Pros, except the first click
            does absolutely nothing.
          </li><li>
            It's pretty difficult to swap out expansion cards, but I'm sure over
            time it'll become smoother.
          </li></ul></body></html>]]></content:encoded></item><item><title>playdate synth dev finished</title><link>https://vulpine.zone/blog/23-06-08.html</link><author>nanobot567</author><pubDate>Thu, 8 Jun 2023 21:34:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          I have finished working on my Playdate synthesizer!! I decided on a
          pretty neat name which is VERY <a href="https://teenage.engineering" target="_blank">teenage engineering</a> inspired. Honestly with enough time you could
          probably guess the name simply based on their naming scheme, but I
          don't really care because it's cool :D (I take back what I said about
          posting the name I decide on here. I kind of want it to be surprise,
          especially since I now realize people actually read this thing XD)
        </p><p>
          I'm super ahead of schedule though, I planned to have it done by July
          6th, when the Playdate Direct is. I suppose now I have a ton of time
          to beta test it and get everything ready for release!
        </p><p>
          In other news, I got my replacement Playdate in from Panic a couple
          weeks ago! I've been checking my old one's "last sync" status to see
          if they've been able to bring it back from the dead, but it's been 3
          weeks and I don't think it's coming back :(. Shame.
        </p><p>
          In other OTHER news, I plan to finish AOS-GUI v0.9 by the end of the
          summer. If everything goes to plan, AOS will have its first (non-beta)
          release by the end of this year! Super pumped to make it even better.
          I figure I'll have AOS script (working on the name), the programming
          language for doing all sorts of operations in AOS, done by that time
          as well. It'll probably have a lua/python like syntax, but we'll see
          :)
        </p><p><i>*now that i think about it, the name of the synth is probably
            already out there somewhere... i just have no idea where i could
            have posted it haha</i></p></body></html>]]></content:encoded></item><item><title>overflow devlog</title><link>https://vulpine.zone/blog/24-06-19.html</link><author>nanobot567</author><pubDate>Wed, 19 Jun 2024 23:59:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><h2 id=""><u>(almost) A Year of Game Development [SEGFAULT]</u></h2><p>
          Hello! Today I felt like creating a massive devlog document of my
          journey so far developing what is now called <span class="rainbow">Segfault</span> (short for segmentation fault) for the
          <a href="https://play.date/" target="_blank">Playdate</a>. So, here we
          go!
        </p><p>
          I want to say I started working on Segfault at around <b>June 30th of
            2023</b>. According to the last modified date of everything in my
          folder for this project, this image was the first thing created:
        </p><p><img src="https://vulpine.zone/blog/media/img/24-06-19/card-pressed.png" alt="a completely black rectangle" class="blog"></p><p>A work of art, if I do say so myself.</p><p>
          This is actually the game's card-pressed image, located at
          <span style="color: red">/src/SystemAssets/card-pressed.png</span>. I
          guess I didn't really have a clue what I was working on at this point,
          so it makes sense.
        </p><p>
          I didn't start frequently committing to my git repository until
          September 10, when I FINALLY committed my changes. Sitting at <i><b>55
              changed files with 2,420 insertions</b></i>, this commit,
          ambiguously named "backup", contains most of the code which makes up
          the engine.
        </p><p>The README at this point in time:</p><p><img src="https://vulpine.zone/blog/media/img/24-06-19/firstreadme.png" alt="a GitHub README page, reading: coolgame: (needs title), a textmode rpg game for playdate. concept: a nethack style dungeon crawler, similar to the LOZ games, set in a Linux terminal. you have 2-8 real time hours to beat the game, or your run is over and you have to restart." class="blog-fill"></p><p>
          I knew I wanted it to be some sort of text-based RPG, but that was
          about it.
        </p><p>
          The 2-8 hour time limit seemed like an interesting idea. I would
          definitely like to incorporate it into something later on down the
          line, but as development continued I dropped it ¯\_(ツ)_/¯
        </p><p>
          Weirdly, the README says "coolgame" but I must've already decided on
          Overflow as a name, since there's a build of the game under that name.
        </p><p>Speaking of which, here's what it looked like at the time!!</p><p><img alt="a GIF of an at sign moving around a text-based grid and talking with a letter G" src="https://vulpine.zone/blog/media/img/24-06-19/oldoverflow.gif"></p><p>
          ...aaaand that's about it. But hey, <i>it works!</i><img alt="an image of a
smiling face with a thumbs up" src="https://vulpine.zone/blog/media/img/24-06-19/nice.png"></p><p>
          The map format is about the same here, except for the action format.
          Instead of JSON, like it is now, it was some goofy proprietary thing I
          made. No clue what I was thinking, but at least I made the switch
          before things got too complicated 😅
        </p><p><img src="https://vulpine.zone/blog/media/img/24-06-19/oldmapformat.png" alt="an example of the previous map file version, with clearly labeled sections exits and interactions" class="blog-fill"></p><p>
          I'd also like to point out a mistake that would come back to bite me
          later. This function in funcs.lua:
        </p><p><img src="https://vulpine.zone/blog/media/img/24-06-19/mistake.png" alt="a Lua function which contains a large key-value table of characters and their corresponding numerical IDs" class="blog-fill"></p><p>Can you spot the issue here? XD</p><p>
          Basically, this massive table would get redefined every time
          <code>getIDfromChar()</code> is called. But I wouldn't notice this
          until much further down the line. Onward!
        </p><p>
          Fast forward a couple commits (and a couple weeks), and I swapped my
          action format to JSON. At first I wanted to use something like msgpack
          to compress all of my mapfiles down, but for some reason the Playdate
          has difficulty reading binary files from disk (or maybe I'm just being
          incredibly stupid haha), so I dropped the idea later on.
        </p><p>
          I decided on a class-based system for all of the collectibles you can
          get in the game here as well. From experience, object oriented
          programming scales very well and makes it super easy to keep
          everything organized. I don't know what I'd do without it!
        </p><p>
          I also added some basic player stats to the top left, as well as
          upgraded the battle engine to have a little menu in the bottom left
          corner.
        </p><p><img alt="a GIF of a menu containing submenus for items, weapons, programs,
hacks, personal statistics, and settings, as well as a battle where the
at sign goes against a letter O called 'idiot' with
3hp" src="https://vulpine.zone/blog/media/img/24-06-19/overflow2.gif"></p><p>
          The next commit, also called "backup" (man, incredibly helpful commit
          names lol) added what was the beginning of the title screen that is
          still in place today.
        </p><p>
          In this commit I added the first revision of the introduction as well.
          The alert boxes are very off center, however XD
        </p><p>Saving was added here too!</p><p><img alt="a GIF of the Overflow title screen, with the game's name in a large,
DOS era font, with a starfield in the
background" src="https://vulpine.zone/blog/media/img/24-06-19/overflow3.gif"></p><p>
          At this point I must've woken up and realized in order for git to be
          helpful I should probably commit more and name them half-decently,
          since after this every major change has its own commit.
        </p><p>
          I added some placeholder art (still haven't changed any of it haha),
          shops, and the first "attack game" in commit <code>461179f</code>,
          finally started throwing together the introduction to one of the main
          characters in <code>3d09875</code>, and completed map preloading in
          <code>79aaaf8</code>.
        </p><p>
          Eventually, I figured out that <code>getIDfromChar()</code> issue I
          mentioned earlier, which boosted map loading a considerable amount on
          device, from 0.7 seconds to ~0.05! Ugh, that had been bugging me the
          entire time. I'm glad I'm not still stuck with it.
        </p><p>Before the fix, preloading looked like this:</p><p><img alt="a GIF of the game loading, quite slowly" src="https://vulpine.zone/blog/media/img/24-06-19/beforefix.gif"></p><p>Afterwards, it looks like this!</p><p><img alt="a GIF of the game loading, much faster!" src="https://vulpine.zone/blog/media/img/24-06-19/afterfix.gif"></p><p>
          To this day I'm still wondering if I should preload maps at all or
          just load them on the fly, since it's so quick now. I'm pretty sure
          I'll get rid of preloading when the game releases. I may need the
          extra RAM, haha.
        </p><p>
          In commit <code>d80eb14</code> ("fixed battle damage rounding, cleaned
          up introchoices, updated docs", February 29) my documentation for the
          game became much more massive. I find that more Markdown is always
          better for big projects. Personally, I use it for both ideas and TODO
          lists that I divide into high, medium, and low priorities. Very
          helpful to have :)
        </p><p>
          I officially changed the name of the game from Overflow to Segfault in
          commit <code>a4ec205</code>! Honestly, this wasn't really a hard
          decision and I don't regret it, although Overflow does roll off the
          tongue better.
        </p><p><img alt="the word SEGFAULT in a big DOS-era font." src="https://vulpine.zone/blog/media/img/24-06-19/newname.png"></p><p>
          Achievements were added in <code>cd918f1</code>, in March of this
          year. Currently, I'm waiting for the Playdate Squad's
          <a href="https://github.com/PlaydateSquad/pd-achievements" target="_blank">pd-achievements</a>
          standard to be finalized before I do too much work on them. I suppose
          I could go ahead and add what they have, but I'd rather not do
          anything substantial if they make some drastic changes down the line.
        </p><p>
          I finished a bunch of status effects (such as regeneration, vigor,
          fortitude) in commit <code>7bd0424</code>, which are only utilized in
          battles at the moment. Around this time, my main focus was on the
          battle engine that I assumed would be the most "exciting" part of the
          game, and I was constantly trying to figure out new ways to make it
          more fun. Even now, the game is still a bit of a top-down walking
          simulator.
        </p><p>
          In commit <code>f540897</code>, I created the second attack game
          besides the standard "bar" game: reload. It involves the user cranking
          backwards and forwards and pressing A in quick succession. The faster
          you do this, the more damage is inflicted. Not the most realistic
          thing ever, but I find it pretty fun!
        </p><details><summary>WARNING: Flashing text, gunplay</summary><p><img alt="a GIF of a battle sequence, in which the player uses the Playdate's
crank to cock an on-screen gun" src="https://vulpine.zone/blog/media/img/24-06-19/reload.gif"></p></details><p><code>284c40a</code> added an item count to the "items" menu, which is
          a pretty huge deal considering the sheer amount of items I'll probably
          have in this game closer to release. It was already a pain trying to
          scroll through all of them even in testing, so (for me at least) this
          is a very nice QoL change.
        </p><p>
          It took me way too long to add game restarting on death, which was
          added in May 27 in commit <code>2a40577</code>. I guess since I had
          been manually refreshing the game up to this point anyway, it didn't
          seem like too big of a deal, but now that I'm kind of getting down to
          the wire on the game engine it occurred to me that this is a
          no-brainer that should have been in the game from the start, haha.
        </p><p>
          A couple weeks ago I revamped the title screen. At first it was kind
          of a buggy mess, and editing save files was a bit of a pain and not
          the most intuitive thing ever (you had to press B to access a menu
          that displayed on the save file box itself... it was lame), but now
          all of the options are there when you press A on a file, kind of like
          how The Legend Of Zelda does things.
        </p><details><summary>WARNING: Quick pattern changes</summary><p><img alt="quick alternating patterns of glitchy-looking text
characters" src="https://vulpine.zone/blog/media/img/24-06-19/newtitlescreen.gif"></p></details><p>
          And that brings us to today! Currently I'm working on a way to upgrade
          items and weapons, and polishing off the engine.
        </p><h3 id="final-thoughts">Final thoughts</h3><p>
          So far, I've had a great time working on this game. It's helped me
          learn so many concepts and tips, and it's been fun seeing it all come
          together over time! I've written 6215 lines so far, which to be honest
          isn't really that much for nearly a full-fledged product. I feel like
          I'll have written 15000 lines by the end of this project, but we'll
          see!
        </p><p>
          Can you tell I'm putting off finalizing the story and creating all of
          the maps, though? 😆 It's just so.. daunting. Like, it's all coming
          together, but it's difficult to make it all a cohesive whole. Or maybe
          it's just scary to start &amp;gt;w&amp;gt;
        </p><p>
          I guess my goal for this project is to take my time and really make it
          look nice and feel really good to play. I'd hate to make my first
          "real" game (the adventures of horse the horse hardly counts haha)
          some rushed-out-the-door thing. So, maybe it'll be a while before
          anyone can actually play Segfault, but hopefully it'll be worth it in
          the end!
        </p><hr><p>
          Thanks for reading this kind of ranty blog post!! Hope you enjoyed(?)
          it :3
        </p><p><i>(Oh, by the way, if you ever want to try gamedev yourself, I highly
            recommend Playdate development, the SDK is probably one of the most
            simple yet powerful SDKs I've ever used. Massive props to Panic for
            making it so easy for people to make cool stuff for Playdate!!)</i></p><p><i>(and yes, i am embracing my inner :3, and there's nothing you can
            do to stop me!! hahahahaha)</i></p></body></html>]]></content:encoded></item><item><title>n9600</title><link>https://vulpine.zone/blog/23-12-06.html</link><author>nanobot567</author><pubDate>Thu, 7 Dec 2023 03:34:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          Not too long ago I bought a breadboard starter kit, since I had an old
          Arduino Uno lying around! Almost immediately I tried to throw together
          a sort of mini-computer, which currently looks like this:
        </p><p><img src="https://vulpine.zone/blog/media/img/23-12-06/n9600.jpg" alt="a picture of a breadboard with red, green, and RGB LEDs, as well as a Piezo buzzer attached to an Arduino Uno" class="blog-x-small"></p><p>
          My unoriginal name for it is the <span class="rainbow">n9600</span>
          (the n stands for nanobot567, and 9600 is the baud rate of the serial
          port). Currently it can do two things, boot up and poke to memory
          addresses XD
        </p><p>
          I plan to write a BASIC interpreter for it and attach
          <a href="https://www.adafruit.com/product/498" target="_blank">this</a> LCD I also got, but that will require me to switch over to
          my Raspberry Pi 3 (I got that from a <a href="https://kano.me" target="_blank">Kano</a> computer kit I got when I was younger!) since it has more
          GPIO pins, AND I'll have to do some soldering to get the header pins
          on there. Hopefully I won't screw up the display, that'd be $30 down
          the drain!
        </p><details><summary>Kind of personal..?</summary><p>
            If you clicked on this, first of all, why? Second of all, thanks for
            caring I guess lol
          </p><p>
            On Saturday, June 24th of 2023 at 4 PM, I started drawing because of
            reasons I don't want to discuss here. I guess I'm typing it out now
            because I want to talk to a brick wall about it, haha. But I think
            I've gotten a lot better at drawing, especially on the facial
            expression front. There's been definite improvement, which is
            incredibly exciting since soon I may be able to draw EXACTLY (or
            pretty close to) what I'm thinking of! I'm still nowhere close to
            the talent of some people, but as long as I can get my point across
            I'm happy :)
          </p></details></body></html>]]></content:encoded></item><item><title>macbook factory reset</title><link>https://vulpine.zone/blog/23-04-05.html</link><author>nanobot567</author><pubDate>Thu, 6 Apr 2023 04:27:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          So my dad and I decided today was the day to <span style="color: red">factory reset</span> an old MacBook of his. We had been meaning to do
          this for a long time, but hadn't gotten the chance until today.
        </p><p>
          He already made a backup of everything on a drive of his so we got
          cracking. I restarted the computer and put it into <span class="rainbow">Recovery Mode.</span></p><p>
          Then we went into Disk Utility. Now, here's where things got dicey,
          there were two drives under a category called "Macintosh" so we didn't
          know which to delete. After looking up a guide online, my dad saw that
          we should just go ahead and erase the entire category. So we did. And
          then he said, "Wait, I think we did this wrong."
        </p><p>
          Turns out we should have enabled "show all drives" so we could see an
          option called "Apple SSD", then we should have deleted THAT whole
          thing instead. He looked pretty nervous about it, but I reassured him
          that we had a backup and everything was probably fine. We deleted the
          entire category anyway.
        </p><p>
          Dad wanted to check if we still had the backup after that, so we
          checked out the drive we had plugged in. We opened a new finder
          window, and the drive was there, but something was a bit strange about
          it. No icons were on any of the files, but we saw our stuff was there
          so we brushed it off, unplugging the drive <span style="color: red">without ejecting properly</span>, which I hadn't noticed until now.
        </p><p>
          Then we tried running the Mac OS Ventura installer, and it said we
          needed to be on WiFi, but for some reason you couldn't turn on or off
          WiFi, or connect to a network. At this point I was starting to get a
          bit nervous myself, I thought we deleted a driver or something and
          broke the entire computer.
        </p><p>
          But eventually, the WiFi turned off by itself and we were able to
          start installing Mac OS. Dad realized something though.
        </p><p>
          "Did we delete the data on this drive when we erased that disk
          category?"
        </p><p>
          My dad and I discussed for a moment and tried to figure out why this
          would have even happened. I was trying so hard to reason with myself,
          why would the drive even have been deleted? We didn't touch it at all
          with disk utility... I thought anyway.
        </p><p>
          Dad wanted to double check that the drive was OK, so we borrowed my
          mom's computer so we could check.
        </p><p>We plugged the drive in. Nothing.</p><p>
          Now, I have nightmares about this sort of stuff. Losing precious data
          that I know will never be recovered. And it's terrible in real life,
          but I also deny things a ton before I allow reality to sink in, so we
          unplugged and plugged it back in. Nothing again.
        </p><p>Then we tried another port. <span style="color: red">Nada.</span></p><p>
          Dad already put his face in his hands, as we realized that we had lost
          many important photos and documents. I wanted to try a couple more
          things before we gave up, though. I unplugged the USB hub on the
          computer and plugged the drive in directly. Still nothing, and at this
          point we knew that was it, but we checked Disk Utility to make sure.
        </p><p>
          Suddenly, in the Finder window behind Disk Utility, the sidebar's item
          positions shifted by one. "Hey, wait, the sidebar just moved!" We
          looked at each other, the color coming back to our faces. Dad opened
          the drive and BOOM! <span class="rainbow">Everything was there!</span></p><p>
          We laughed for about a solid 5 minutes about what had just happened
          and shared a sparkling water, toasting to "data".
        </p><p>
          Ugh. What an emotional rollercoaster. Looking back, I don't know why
          we were so worried, there was nothing that could have ever happened to
          the data on that drive. As I write this, that Mac is installing Mac OS
          Ventura and should be perfectly fine when I wake up in the morning and
          see that everything works... hopefully.
        </p><p><i>P.S. My dad just mentioned to me that he had a backup of his work
            computer. He had moved all of the stuff on the Mac we were worried
            about to that one when he got it, so we were literally worried about
            nothing. Ha!</i></p></body></html>]]></content:encoded></item><item><title>a full year of blogging</title><link>https://vulpine.zone/blog/24-01-13.html</link><author>nanobot567</author><pubDate>Sat, 13 Jan 2024 17:07:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>Today officially marks a full year of blogging!!</p><p>
          I may rework the blogging page soon, in case I end up writing a lot
          more this year. Maybe with a dropdown for 2023 blog posts? We'll see,
          I guess.
        </p><p>Here's a bunch of things I did last year:</p><ol><li>
            I finished
            <a href="https://github.com/AOS-GUI/AOS-GUI" target="_blank">AOS-GUI</a> v0.9!
          </li><li>
            I released
            <a href="https://github.com/nanobot567/CS-16" target="_blank">CS-16</a>!
          </li><li>
            I updated my website to look a lot better (in my opinion, anyway)
          </li><li>I joined Mastodon!</li><li><span style="color: red">IT ENDED.</span></li><li>I broke my Playdate, but got a replacement!</li><li>I got a little better at drawing</li><li>I started doing hardware stuff (breadboards for now)</li><li>I joined a robotics team!</li><li><span class="rainbow">I bought my <a href="https://frame.work/" target="_blank">Framework</a><a href="9-21-23.html">Laptop</a> 13!</span></li><li>I somehow got a 4.0 GPA???</li><li>I traveled to Canada!</li></ol><p><b>I think overall it was pretty successful. There were definitely a
            lot of dips in the road, though.</b></p><p>Oh, and by the way...</p><h2 id=""><span style="color: green">HAPPY NEW YEAR!</span></h2><p>
          Here's to the future! Let's hope that we as a human race get our act
          together..
        </p></body></html>]]></content:encoded></item><item><title>xythese development</title><link>https://vulpine.zone/blog/24-02-14.html</link><author>nanobot567</author><pubDate>Wed, 14 Feb 2024 17:14:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          In my spare time, I have slowly been piecing together a new language
          (written and spoken!) called <span class="rainbow">XYTHESE</span>. I
          plan to use it in Segfault (formerly known as Overflow) and perhaps in
          real life, if I get the hang of it.
        </p><p>
          The grammar is pretty similar to English, except adjectives are after
          nouns and negativity is implied through the "noi" prefix (basically, I
          fixed all of the stuff that I think is stupid in English)
        </p><p>
          Here's a simple sentence: "sniyo koda o'utan." It means "your code is
          stupid".
        </p><p>
          You also do not conjugate verbs! Instead, there are tense
          specification words. For example, the word "kasta" indicates past
          tense. More complex verb forms can be achieved with word suffixes such
          as "-don", which is the "-ing" suffix. I've tried to account for word
          suffixes as well, such as "-er" and "-est". So to say "beautiful", you
          would first get the word for "beauty" (betsuru), then add the proper
          suffix, which in this case is "-fulu" for "-ful", resulting in
          "betsuru-fulu". Pretty easy, I think! :)
        </p><p>
          I already have a thousand or so words translated from English, so it's
          already possible to formulate most simple sentences, and I'll slowly
          add more as I need them!
        </p><p>
          It sounds a lot like Japanese, partially because I'm really trying for
          that same sort of "feel" of the language. I think I've sort of
          succeeded, haha. I still need to fine tune a couple of the words since
          they are a bit hard to pronounce along with, though.
        </p></body></html>]]></content:encoded></item><item><title>replacing discord (and gushing about IRC)</title><link>https://vulpine.zone/blog/26-03-03.html</link><author>nanobot567</author><pubDate>Wed, 4 Mar 2026 00:29:55 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><h2 id=""><u>Replacing Discord (and Gushing About IRC)</u></h2><p><img alt="screenshot of weechat IRC client, with one user saying 'mreeeaow!' and another responding 'rawrf!'" src="https://vulpine.zone/blog/media/img/26-03-03/irc.png"></p><p><i>average IRC interaction</i></p><hr><p>
          On August 26th, 2020, I created my first Discord account. I honestly
          loved Discord back then, it was an excellent way to chat with friends
          while the COVID pandemic was at its prime (man, crazy times those were
          XD)! Unfortunately, over time Discord lost its luster; the app's sleek
          simplicity eventually gave way to the usual suspects, notably <a href="https://discord.com/ads/quests" target="_blank">advertisements</a> (<a href="https://discord.com/press-releases/announcing-quests-advertising-on-mobile" target="_blank">on mobile too</a>!) and <a href="https://web.archive.org/web/20230319111933/https://support.discord.com/hc/en-us/articles/13066317497239" target="_blank">AI integration that literally no one asked for</a> (they did shut the
          bot down, but who's to say they won't try something like this again?).
          These changes were annoying, but they were at least tolerable, so I
          continued to use Discord.
        </p><p>
          On February 9th, 2026, Discord announced they were rolling out <a href="https://discord.com/press-releases/discord-launches-teen-by-default-settings-globally" target="_blank">facial-scan based age verfication</a>. Although I do agree that kids
          below a certain age shouldn't be allowed on the platform, <b>this is
            <i>definitely</i> not the way to go about restricting access</b>. I
          will say that there may not <i>be</i> a foolproof way of verifying
          one's age besides showing up in person and presenting ID (and of
          course this is impossible for every single user on the plaform to do),
          so I understand why they chose this method. BUT, that doesn't make it
          okay.
        </p><p>
          The rollout has been delayed until late 2026, but it's coming no
          matter what. So, I started looking for Discord alternatives.
        </p><p>
          Finding good alternatives is tricky because there really isn't a lot
          of competition in Discord's field. <a href="https://matrix.org/" target="_blank">Matrix</a> is honestly pretty good, but I had a lot of issues with
          spam and infamous "could not decrypt message" error. <a href="https://stoat.chat/" target="_blank">Stoat</a> is excellent! The UX is solid, I've had no major issues,
          and it's probably what I'll be pointing friends and family to if they
          want to leave Discord as well. But, there's a risk of it going down
          the same path as Discord in the future since it's held by a single
          company, and I'd rather pick something that's decently future-proof.
        </p><p>
          Enter: <b><a href="https://en.wikipedia.org/wiki/IRC" target="_blank">IRC</a></b>, <b>I</b>nternet <b>R</b>elay <b>C</b>hat.
        </p><p>
          I had my first experience with IRC sometime in 2020 or 2021. I forget
          exactly how I had heard about it to be honest, but I do remember <code>freenode</code> being the first server I joined (and <a href="https://weechat.org/" target="_blank">Weechat</a>, a TUI IRC client, being my client of choice :P). I had a
          ton of fun and actually made friends?? Sadly I happened to join just
          months before <a href="https://hackaday.com/2021/05/20/freenode-debacle-prompts-staff-exodus-new-network/" target="_blank">everything fell apart</a> though, LOL. I stopped using IRC when
          freenode went offline.
        </p><p>
          Around the time Discord made their age verfication announcement, I was
          reminded of IRC's existence when <code>@whitequark@treehouse.systems</code><a href="https://social.treehouse.systems/@whitequark/116089585784234453" target="_blank">posted about IRCv3 on Mastodon</a>, and thought I'd give it another
          go. I connected to <a href="https://libera.chat/" target="_blank">Libera.Chat</a>, joined a few channels, and...
        </p><p>...it is <b>awesome</b>.</p><h3 id="why-irc-freakin-rocks">Why IRC Freakin' Rocks</h3><h4 id="irc-is-decentralized">IRC is Decentralized</h4><p>
          Meaning anyone can host an IRC server if they want to, and if one
          server goes bad, users can migrate over to a new one! I think this is
          an incredibly important feature to have nowadays, since it is
          inevitable that <b>every service will collapse given enough time</b>,
          or simply become so profit-oriented to the point where using the
          platform is impossible without giving something up.
        </p><p><b>Exhibit A: Twitter</b>. You can't even view an account without
          creating or logging into an account now. Creating an account with
          Twitter opens the door for them to gather endless amounts of
          information about you, which they will then sell. Remember when you <i>could</i> view accounts without logging in? That was before it was
          sold off and transformed into whatever the heck it is now,
          meticulously designed to squeeze every last dollar out of its users.
          And the last thing anyone* wants is for the rich to get <i><b><u>even
                richer</u></b></i>.
        </p><p>But I digress ;^w^ back to IRC, haha-</p><h4 id="irc-is-text-based">IRC is Text-Based</h4><p>
          I lot of people would see this as a downside, but personally I'm a
          huge fan! There's just something about the text-only restriction that
          makes it more fun to have conversations with people. And, as an added
          bonus, you have to make the conscious decision to view a piece of
          media (as it's behind a link), so you aren't forced to see something
          you... really don't want to see.
        </p><h4 id="hardly-anybody-uses-irc-anymore">
          Hardly Anybody Uses IRC Anymore
        </h4><p>
          Yes, this is a reason why IRC rocks. The only people using IRC now are
          nerds (complimentary), and I <i>love</i> hanging out with nerds. But
          again, that's personal preference xP
        </p><h4 id="irc-is-tried-and-true">IRC is Tried and True</h4><p>
          IRC has been in use since 1988(!!), and like <code>@whitequark</code>
          said, it's only getting better. The IRCv3 standard has some superb
          quality-of-life features that we often take for granted (chat history,
          for example), and IRC clients/servers are actively implementing them!
        </p><h4 id="there-are-many-irc-clients">
          There Are Many, <i>MANY</i> IRC Clients
        </h4><p>
          And some great ones, too. This allows for a kind of user customization
          that really doesn't exist on Discord (unless you *ahem* use something
          like <a href="https://codeberg.org/vee/cord" target="_blank">Vencord</a>)! I mainly use <code>Weechat</code> (some things never
          change, including preferred IRC clients), but I also love <a href="https://halloy.chat/" target="_blank">Halloy</a> and <a href="https://github.com/ObsidianIRC/ObsidianIRC" target="_blank">ObsidianIRC</a> :)
        </p><h4 id="but">But...</h4><p>
          IRC is definitely not for everyone, and it's certainly not perfect. It
          takes some getting used to, especially concepts like talking with
          <code>NickServ</code> to manage your account and channel modes, and
          understandably (I cannot emphasize this enough, I get it HAHA), people
          are lazy. Most people don't want to spend a lot of time configuring an
          app, they want it to Just Work™. Until IRC gets to the point
          where it's as simple as logging into Discord, I doubt it'll have a
          resurgence. That's just the way things are ¯\_(ツ)_/¯.
        </p><h3 id="shoot-i-want-to-use-irc-now">
          "Shoot, I want to use IRC now-"
        </h3><blockquote><p><i><b>Yesssss, join usssss!</b></i></p></blockquote><p>
          Libera Chat has a great getting started guide on <a href="https://libera.chat/guides/basics" target="_blank">their website</a>! I highly recommend you at least give it a try if
          you're interested. If you'd like someone to talk to, feel free to
          shoot me a message, my username is <code>nanobot567</code> (you can
          send me a message on most clients by typing <code>/msg nanobot567
            [YOUR_MESSAGE_HERE]</code>, if I'm not online you can also send me a
          memo: <code>/msg MemoServ SEND nanobot567 [YOUR_MESSAGE_HERE]</code>)
          :D
        </p></body></html>]]></content:encoded></item><item><title>xovanaphobia breakdown</title><link>https://vulpine.zone/blog/25-10-20.html</link><author>nanobot567</author><pubDate>Mon, 20 Oct 2025 23:03:00 +0000</pubDate><content:encoded><![CDATA[<html><head></head><body><p>
          On 10/17/2025, I released my second album, <span class="rainbow">Xovanaphobia</span>!! It's a (much needed) departure from the cringe
          hacker rap whatever I had going on in 2022, and I'm actually pretty
          proud of it this time!
        </p><blockquote><p><i>If you're interested in listening to it, it's on most streaming
              services (I like
              <a href="https://tidal.com/album/466228488" target="_blank">Tidal</a> personally haha), and also on
              <a href="https://nanobot567.bandcamp.com/album/xovanaphobia" target="_blank">Bandcamp</a>
              for $5 if you'd rather download the lossless audio :)</i></p></blockquote><p>
          I thought I'd give some background information on all of the songs,
          just for funsies :P
        </p><h3 id="on-the-full-album">On the full album</h3><p>
          The entire album was written over the course of a year or two (off and
          on), but most of the songs were produced in the span of four months!
          Why did it take so long to write ten songs? I find that forcing
          creativity only leads to mediocre creations (at least for me), so I
          only wrote a song when an idea came to me naturally.
        </p><p><b>Xovanaphobia</b> has a meaning, but I'd rather leave it a mystery.
          I
          <i>think</i> it's possible to figure it out just through song
          lyrics..?
        </p><p>
          The album cover is a security camera picture, with some non-English
          text overlaying it! The picture was taken on May 23rd, 2025. To this
          day I'm still not entirely sure why the fox stopped by...
        </p><p><img src="https://vulpine.zone/media/img/album-cover/xovanaphobia.png" alt="a square image of a security camera picture, featuring a red fox standing on the pavement of a driveway, and facing towards a sliding door. overlaying this picture is some text in a blocky, arcane language, and some company logos in the bottom right corner. These company logos consist of one which looks like a human with their eyes redacted by a rectangle, a flag with three vertical stripes, a bipedal organism with antlers running through a door (similar to the exit sign person), and a glyph which looks like a lambda." class="blog-small"></p><h3 id="intro">Intro</h3><p>
          This is the first song I wrote for the album! I believe I wrote it in
          2023 or 2024.
        </p><p>
          I used <a href="https://tal-software.com/products/tal-vocoder" target="_blank">TAL Vocoder</a>
          alongside <a href="https://vital.audio/" target="_blank">Vital</a>
          (which provided the vocoder waveform) for the vocals.
        </p><h3 id="ruleset">Ruleset</h3><p>
          Ruleset was written in a <b>single day</b>! I discovered
          <a href="https://aberrantdsp.com/plugins/digitalis/" target="_blank">Digitalis</a>' voice modulation capabilities while making it, leading
          to the inclusion of the female-sounding vocals in this song and pretty
          much every other one-
        </p><h3 id="frills">Frills</h3><p>
          I was inspired by some of TOBACCO's work in Sweatbox Dynasty to make
          Frills. Thank you <a href="https://www.excite-audio.com/lifeline/lifeline-console" target="_blank">Lifeline Console Lite</a>
          :D
        </p><h3 id="anthrocon-2634">Anthrocon 2634</h3><p>
          The desire to create a drum and bass track overcame me, and this is
          the result. I envisioned an anthro rave in the year 2634 (no way
          <a href="/archives/lore/ii/xythia.html">Xythia</a> reference??)!
        </p><p>...the idea sounded cooler in my head, haha.</p><h3 id="húxiān-ambrosia">Húxiān / Ambrosia</h3><p>
          The mix on this song is very meh, but I had fun writing it ¯\_(ツ)_/¯
        </p><p><a href="https://en.wikipedia.org/wiki/Huxian" target="_blank">Húxiān</a> is a Chinese fox deity!
        </p><h3 id="g-p-b-i">G.P.B.I.</h3><p>Definitely a filler track. I don't feel very attached to it xD</p><h3 id="sol">Sol</h3><p>
          Sol is (I think?) the oldest song I began working on for Xovanaphobia.
          About a month after [REDACTED]'s release I had the idea for it, put
          together a messy four-bar loop, and promptly let it gather dust in the
          corner of my Logic Pro projects folder... until I rediscovered it!
        </p><h3 id="vulpine-visions">Vulpine Visions</h3><p>
          Probably around half a year ago, I had a dream about an
          anthropomorphic red fox named <b>Tess</b>. Vulpine Visions is kind of
          based on that, but the dream itself definitely wasn't as interesting
          as I made it out to be. We quite literally interacted once.
        </p><h3 id="lodestone">Lodestone</h3><p>
          Named mostly in reference to the <a href="https://minecraft.wiki/w/Lodestone" target="_blank">Minecraft block</a>, but also the <a href="https://en.wikipedia.org/wiki/Lodestone" target="_blank">real-life mineral</a> :)
        </p><p>
          Lodestone replaced a song called <b>Social Cues</b> which had a
          similar vibe. The only reason why Social Cues didn't make it was
          because the mix was atrocious, and I could not fix it for the life of
          me.
        </p><h3 id="just-for-you-clinging-to-firsts">
          (Just For You) Clinging to Firsts
        </h3><p>
          This song is actually a segment of some of my improvised piano
          playing, on my grandparents' piano! You could probably tell it was
          written on the fly, based on how off-beat everything is xP
        </p><p>
          Most of the lyrics are not English! They're purely nonsense, I pulled
          a Ryan Lindsey and just threw in whatever mouth sounds sounded best in
          the moment.
        </p><blockquote><p>iϵɳ</p><p>no iuʈoʋɐn'α</p><p>noʋ'oh</p></blockquote><hr><p>...aaaaand that's it!</p><p>
          For the record, I probably won't be releasing new music more often...
          but I am feeling kind of motivated now that I have something new out!
        </p><p>We shall see.</p></body></html>]]></content:encoded></item></channel></rss>