<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Z Space Blog</title><link href="https://zlg.space/blog/" rel="alternate"/><link href="https://zlg.space/blog/feeds/all.atom.xml" rel="self"/><id>https://zlg.space/blog/</id><updated>2026-09-19T19:44:00-07:00</updated><entry><title>Spring 2026 Updates</title><link href="https://zlg.space/blog/spring-2026.html" rel="alternate"/><published>2026-03-01T14:21:00-08:00</published><updated>2026-03-01T14:21:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2026-03-01:/blog/spring-2026.html</id><summary type="html">&lt;p&gt;Hey Z Space travelers! I wanted to update people who may have been absent from
&lt;a href="https://twitch.tv/zlg_creates"&gt;the stream&lt;/a&gt; on what's been happening and where
Game Z is going in the near future. The TL;DR? I beat a crazy Zelda rando with
CrowdControl, and I was challenged to a Pokémon FRLG Nuzlocke run, so that's
coming soon. Also expect coding and Dark Souls at some point.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Hey Z Space travelers! I wanted to update people who may have been absent from
&lt;a href="https://twitch.tv/zlg_creates"&gt;the stream&lt;/a&gt; on what's been happening and where
Game Z is going in the near future. The TL;DR? I beat a crazy Zelda rando with
CrowdControl, and I was challenged to a Pokémon FRLG Nuzlocke run, so that's
coming soon. Also expect coding and Dark Souls at some point.&lt;/p&gt;


&lt;h1&gt;Retro Goodness&lt;/h1&gt;
&lt;p&gt;Last month, I played through &lt;em&gt;Soul Blazer&lt;/em&gt; and &lt;em&gt;Secret of Mana&lt;/em&gt; on-stream, and 
both were pretty great RPGs that didn't overstay their welcome. They definitely 
show their age in core design, but still important pieces of game history that 
help show the evolution of the Action RPG.&lt;/p&gt;
&lt;h1&gt;Random-sanity&lt;/h1&gt;
&lt;p&gt;For the three year affiliateversary, I completed a pretty nutso &lt;em&gt;Ship of
Harkinian&lt;/em&gt; randomizer, which included one-hit kills, ocarina notes, no wallet,
shuffled entrances, shuffled bosses, grass-sanity, tree-sanity, pot-sanity, and
&lt;strong&gt;SIXTY NINE TRIFORCE PIECES&lt;/strong&gt;! I played with CrowdControl, and it was a pretty
fun three days! The community's participation contributed to at least a dozen of
the &lt;strong&gt;94 deaths&lt;/strong&gt; it took me to finish the run! Big shout-out to those who were
able to show up!&lt;/p&gt;
&lt;p&gt;Any future randomizers will omit the entrance shuffling. Getting turned around
slowed me down quite a bit and it gets frustrating to go in circles looking for
that one specific entrance you found already, but forgot about 20 minutes ago.
Still, it was a great run and I am already considering ways to spice up the next
one.&lt;/p&gt;
&lt;h1&gt;FRLG Nuzlocke&lt;/h1&gt;
&lt;p&gt;While hanging on &lt;a href="https://twitch.tv/torabii"&gt;@torabii's channel&lt;/a&gt;, I mentioned I 
hadn't played through a Nuzlocke run before. So, he &lt;em&gt;quadruple god-dog dared me&lt;/em&gt; 
to do one! Specifically, FireRed or LeafGreen. I'll probably be playing FireRed, 
since I bought and played through LeafGreen back when it was brand new.&lt;/p&gt;
&lt;p&gt;The date's undecided, but I'll try to give people a few days' notice. I'll need
time to research the rules and brainstorm a starting strategy before I begin.&lt;/p&gt;
&lt;h1&gt;Reclaiming Darkness&lt;/h1&gt;
&lt;p&gt;It's been nearly a year since I've touched &lt;em&gt;Dark Souls II&lt;/em&gt;. I still have some 
DLC to finish before I can move on to another Soulslike. &lt;em&gt;Dark Souls III&lt;/em&gt; and 
&lt;em&gt;Sekiro&lt;/em&gt; are in the pipeline next, so if you have a preference, please let me 
know!&lt;/p&gt;
&lt;h1&gt;Code Learning&lt;/h1&gt;
&lt;p&gt;My eye has been on HTMX lately, as have a few other tools. I'd like to devote
a few streams exclusively to learning or trying out new tools to see if any
interest me enough to dive deeper. This sort of content hasn't been on the
stream in a while, but I've been neglecting my tech interests, and it'd
be cool to find other people trying out simpler or lighter-weight solutions to
their problems.&lt;/p&gt;
&lt;p&gt;I was impressed with how easily I put together the screensaver with LÖVE2D last 
year, so I want to get more serious with learning it. We'll start with 
primitives and work our way up to something like a cutscene or textbox. Maybe an 
idea will tickle our fancy and we'll run with it.&lt;/p&gt;
&lt;h1&gt;More Stream Features Incoming&lt;/h1&gt;
&lt;p&gt;Lastly, there are some ideas I've cooked up for the stream, but I want to finish 
them before I'm fully ready to share. Let's just say the interactivity for the 
stream will be going up! These things take time to make, so Please Understand.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;That's it for Spring 2026! See you guys on stream, and stay Game Z!&lt;/p&gt;</content><category term="Twitch"/><category term="Challenges"/><category term="Nuzlocke"/><category term="Pokémon"/><category term="Dark Souls"/></entry><entry><title>Discord Server Deprecation</title><link href="https://zlg.space/blog/discord-server-deprecation.html" rel="alternate"/><published>2026-02-12T20:46:00-08:00</published><updated>2026-02-12T20:46:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2026-02-12:/blog/discord-server-deprecation.html</id><summary type="html">&lt;p&gt;Due to &lt;a href="https://discord.com/press-releases/discord-launches-teen-by-default-settings-globally"&gt;Discord's new age verification policy&lt;/a&gt;, I am in the
process of evaluating alternatives that will not be prone to this sort of
enshittification. Communities deserve to have control over the information that
their members share. I had known Discord wasn't a great platform going into it,
but this surpasses my tolerance for bullshit.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Due to &lt;a href="https://discord.com/press-releases/discord-launches-teen-by-default-settings-globally"&gt;Discord's new age verification policy&lt;/a&gt;, I am in the
process of evaluating alternatives that will not be prone to this sort of
enshittification. Communities deserve to have control over the information that
their members share. I had known Discord wasn't a great platform going into it,
but this surpasses my tolerance for bullshit.&lt;/p&gt;


&lt;h1&gt;What's the deal?&lt;/h1&gt;
&lt;p&gt;Discord's current approach is to send all your messages through an &lt;abbr title="Large Language Model"&gt;LLM&lt;/abbr&gt; to
"guess" your age with different tells, or to ask users to consent to having
their face scanned and analyzed.&lt;/p&gt;
&lt;p&gt;This presents a privacy threat. While Discord has indeed had a problem with
grooming and other behavior on its service, there are other ways to combat abuse
that don't require every single user to be prone to this authoritative and
surveillance-enabling requirement.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://discord.com/press-releases/update-on-security-incident-involving-third-party-customer-service"&gt;Discord has also suffered a data breach&lt;/a&gt;, just in the last
year. We're supposed to trust a company that can't keep its own records secure?
Get serious. &lt;a href="https://arstechnica.com/tech-policy/2026/02/discord-faces-backlash-over-age-checks-after-data-breach-exposed-70000-ids/"&gt;I'm not alone in seeing this irony.&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;What's the problem?&lt;/h1&gt;
&lt;p&gt;I've told people my age online. It isn't about just age, it's about whether or
not you consent to an automated system determining your social access, and being
sorted into one hat or another based solely on an unthinking machine acting on
metrics. That flies in the face of an open and free Internet, and erodes trust
in these platforms. It also introduces a slippery slope. First, the tech will
be used for age verification. What next? Anti-pornography? DRM-enforcement on
file uploads? Silencing unpopular political viewpoints? Yes, these have all been
seen on other platforms. So, what's stopping this rot from proceeding? How will
Discord distinguish itself from other rot happening across the social media
space? My guess is that they won't. There's an &lt;abbr title="Initial Public Offering"&gt;IPO&lt;/abbr&gt; looming in the future, and if
Reddit is anything to go by, we can count on Discord getting considerably worse
after going public.&lt;/p&gt;
&lt;p&gt;With this practice becoming more common, it is safe to assume that any
corporate-owned communication medium will eventually submit to surveillance,
analytics, and data brokering to make money, at least in today's America. All in
the interest of "protecting children", something governments have been failing
to do for their entire existence. They have no metrics for "children saved", no 
proof of threats they've neutralized, no evidence that authoritarian practices 
actually solve any of these problems or keep anyone in the general public safer.&lt;/p&gt;
&lt;h1&gt;What's the solution?&lt;/h1&gt;
&lt;p&gt;For now, contenders look to be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Matrix&lt;/li&gt;
&lt;li&gt;Movim&lt;/li&gt;
&lt;li&gt;Mumble&lt;/li&gt;
&lt;li&gt;Root (proprietary)&lt;/li&gt;
&lt;li&gt;Spacebar&lt;/li&gt;
&lt;li&gt;Steam (proprietary)&lt;/li&gt;
&lt;li&gt;Stoat&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Competition is brewing in this space now, so it's exciting to see who's going
to take the first strike against Discord. I would prefer something I could
self-host, but I don't mind a hosted alternative that I can migrate away from
later.&lt;/p&gt;
&lt;p&gt;The Discord server will remain around until I either can't run it without 
breaching my privacy, or we find a new thing to migrate to. Until then, people 
should rely on the Twitch channel, Ko-Fi page, or this blog for further news.&lt;/p&gt;
&lt;h2&gt;A Stop-Gap Option&lt;/h2&gt;
&lt;p&gt;If you don't already know, I operate a &lt;a href="https://mumble.info"&gt;Mumble&lt;/a&gt; server that
exists precisely for these times where other platforms suck and people need
encrypted comms.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Server:&lt;/strong&gt; &lt;code&gt;zlg.space&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Port:&lt;/strong&gt; &lt;code&gt;64738&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I'll see y'all there! You'll need to create what's called a "client certificate"
to connect. (The wizard will guide you through it) That's also your encryption
token, so you can move it around all of your devices and have access to the same
account.&lt;/p&gt;</content><category term="Twitch"/><category term="Discord"/><category term="Privacy"/><category term="age verification"/><category term="Politics"/></entry><entry><title>12-in-12, 2026 Edition</title><link href="https://zlg.space/blog/12-in-12-2026-edition.html" rel="alternate"/><published>2026-01-29T00:54:00-08:00</published><updated>2026-09-19T19:44:00-07:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2026-01-29:/blog/12-in-12-2026-edition.html</id><summary type="html">&lt;p&gt;It's already the SIXTH year of 12-in-12 for Z Space? Dang.&lt;/p&gt;
&lt;p&gt;What is 12-in-12? It's the initiative to &lt;strong&gt;beat 12 games in 12 months&lt;/strong&gt;. If this
concept is new to you, check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;.
Also check out &lt;a href="https://zlg.space/blog/12-in-12-2025-edition.html"&gt;last year's 12-in-12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With that said, let's list the games I completed this year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Secret of Mana [SNES]&lt;/li&gt;
&lt;li&gt;Soul Blazer [SNES]&lt;/li&gt;
&lt;li&gt;Pokémon Mystery Dungeon: Explorers of Sky [NDS]&lt;/li&gt;
&lt;li&gt;PEAK [Steam]&lt;/li&gt;
&lt;li&gt;Soul Calibur VI [PS4]&lt;/li&gt;
&lt;li&gt;Celeste [Switch]&lt;/li&gt;
&lt;li&gt;Street Fighter Alpha [ARC]&lt;/li&gt;
&lt;li&gt;Ballionaire [Steam]&lt;/li&gt;
&lt;li&gt;Dark Souls III [Steam]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As usual, this list will update as time passes.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;It's already the SIXTH year of 12-in-12 for Z Space? Dang.&lt;/p&gt;
&lt;p&gt;What is 12-in-12? It's the initiative to &lt;strong&gt;beat 12 games in 12 months&lt;/strong&gt;. If this
concept is new to you, check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;.
Also check out &lt;a href="https://zlg.space/blog/12-in-12-2025-edition.html"&gt;last year's 12-in-12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With that said, let's list the games I completed this year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Secret of Mana [SNES]&lt;/li&gt;
&lt;li&gt;Soul Blazer [SNES]&lt;/li&gt;
&lt;li&gt;Pokémon Mystery Dungeon: Explorers of Sky [NDS]&lt;/li&gt;
&lt;li&gt;PEAK [Steam]&lt;/li&gt;
&lt;li&gt;Soul Calibur VI [PS4]&lt;/li&gt;
&lt;li&gt;Celeste [Switch]&lt;/li&gt;
&lt;li&gt;Street Fighter Alpha [ARC]&lt;/li&gt;
&lt;li&gt;Ballionaire [Steam]&lt;/li&gt;
&lt;li&gt;Dark Souls III [Steam]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As usual, this list will update as time passes.&lt;/p&gt;


&lt;h1&gt;January&lt;/h1&gt;
&lt;p&gt;Late in the month, I took out &lt;em&gt;Secret of Mana&lt;/em&gt;, the second game in the &lt;em&gt;Mana&lt;/em&gt; 
series, and in &lt;em&gt;Collection of Mana&lt;/em&gt; [Switch], the system I played on.&lt;/p&gt;
&lt;p&gt;I will save the in-depth thoughts for a full review, but in short, it's a game 
that suffers from poor ally behavior, lots of time spent waiting for cooldowns, 
and too strong a focus on chaining magic spells to overwhelm bosses in a few 
passes. The art, music, and story are fantastic, however, and make the journey 
worthwhile!&lt;/p&gt;
&lt;h1&gt;February&lt;/h1&gt;
&lt;h2&gt;A Soul's Chance&lt;/h2&gt;
&lt;p&gt;One day, I was prepping a stream for upgrading my Gentoo machine and other nerd 
stuff, combined with retro games. When I was done with the tech stuff, I decided 
to give &lt;strong&gt;Soul Blazer&lt;/strong&gt; [SNES] another shot.&lt;/p&gt;
&lt;p&gt;In two days, a passing interest became a realized experience. It was really cool 
to see what Enix was doing with the early Action RPG genre, right around the 
time &lt;em&gt;Zelda: A Link to the Past&lt;/em&gt; came out. It has some rough edges, but it was a 
really satisfying experience without too many ways to screw up.&lt;/p&gt;
&lt;p&gt;There are also shared themes between this, &lt;em&gt;Illusion of Gaia&lt;/em&gt;, and &lt;em&gt;Terranigma&lt;/em&gt;, 
the latter of which will be in the list at some point.&lt;/p&gt;
&lt;h2&gt;Explorer's Delight&lt;/h2&gt;
&lt;p&gt;I had already started &lt;strong&gt;Pokémon Mystery Dungeon: Explorers of Sky&lt;/strong&gt; [NDS] early
in the year, but the end of the story came sooner than I expected. I played it
on the WiiU via the Virtual Console. It was a solid experience, and the changes
from &lt;em&gt;Explorer of Time/Darkness&lt;/em&gt; are very welcome! I consider it the best PMD
game in the series, thus far.&lt;/p&gt;
&lt;h1&gt;March&lt;/h1&gt;
&lt;h2&gt;A Free-Flyer Turned Climber&lt;/h2&gt;
&lt;p&gt;I was originally going to finish up &lt;em&gt;Retrovirus&lt;/em&gt; on Steam, but the launcher 
seemed buggy, the game never supported Cloud Saves, I couldn't find the old 
saves, and when I checked on the community and game page, I found the studio 
shut down and the game was de-listed. Dejected, I scratched it off as a game I 
cannot play. It was a stream day, so I was out of immediate ideas.&lt;/p&gt;
&lt;p&gt;So, against my general ideas and taste, I gave &lt;strong&gt;PEAK&lt;/strong&gt; [Steam] a shot. My
girlfriend already had a copy to play with our Twitch friends. I borrowed this
copy to play with them as well, and one of them bought a copy for me so the
whole group could play.&lt;/p&gt;
&lt;p&gt;I'll be honest, the game is a little better than I was expecting, but the 
performance issues, weird level generation, poor controls, and generally boring 
world leave much to be desired as an actual game. I enjoy the game's positional 
audio, and sometimes the vibes are great when you're climbing. I can't help but 
feel this game could be better without the obscene environmental difficulty, and 
more focus on the gadgets and multiplayer interactions. Knocking each other out 
with thrown items is a huge shenanigans increasing feature!&lt;/p&gt;
&lt;p&gt;Ultimately, this is a game that's only as good as the crew you bring to it. I
honestly kind of dislike this &lt;em&gt;style&lt;/em&gt; of game because it feels unfinished, or
like I'm supposed to imagine the fun in my head. Like a chatroom with a few
interactibles. Mods are almost required for quality of life benefits, and the
game still doesn't have single-press to run.&lt;/p&gt;
&lt;p&gt;That said, I did peak with a group, and solo, to make sure I got the full 
experience.&lt;/p&gt;
&lt;p&gt;I'd like to see crazy modes like Unbreakable Rescue Claws and No Fall Damage, to
compete for time. The engine itself has potential. The way its used is lacking.&lt;/p&gt;
&lt;h2&gt;Transcending History and the World, Again&lt;/h2&gt;
&lt;p&gt;The next game I knocked out is a bit less involved, but &lt;strong&gt;Soul Calibur VI&lt;/strong&gt;'s
[PS4] story mode was way better than I was expecting. I've only completed the
main thread for now, but there are over a dozen other storylines to go down
before I can consider the single player portion complete.&lt;/p&gt;
&lt;p&gt;I'm not sure if it's me or adjusted movesets, but character moves feel a bit
smoother, and I'm still learning how the showdown-style attacks work. Overall,
this installment seems at least halfway decent, but we'll see if it stacks up 
against &lt;em&gt;Soul Calibur II&lt;/em&gt; as I explore it more.&lt;/p&gt;
&lt;h2&gt;Climbing the Mountain&lt;/h2&gt;
&lt;p&gt;Next up in the list is &lt;strong&gt;Celeste&lt;/strong&gt; [Switch], a technical platformer that got
its start as a PICO-8 game! It's one of the indie darlings these days, and the
expanded, full version of it lives up to the hype. Its story touched me in a way
that most games don't. I've only made it to the summit with the standard ending,
so I know there's more to experience, but I'm satisfied with the game for now.&lt;/p&gt;
&lt;h1&gt;June&lt;/h1&gt;
&lt;p&gt;I picked up &lt;strong&gt;Street Fighter Alpha&lt;/strong&gt; [ARC] one night, chose Rose, and played 
through the standard arcade mode. Despite barely learning her moves, Alpha feels 
like a reboot or something. I'll try to be more deliberate in choosing a 
character and learning some moves in Alpha 2, but I've heard the most good 
things about 3rd Strike. Still, I wouldn't mind giving these 'prequel' games 
more of a shot.&lt;/p&gt;
&lt;h1&gt;July&lt;/h1&gt;
&lt;p&gt;I was gifted &lt;strong&gt;Ballionaire&lt;/strong&gt; [Steam], which is an interesting mix of pachinko 
and rogue-ish mechanics combined into a dopamine dispenser. It's an interesting 
game that's good for playing when you largely want to turn off your brain and 
watch the pretty colors. Not a bad thing to have on your off days, you know? 
There's some legitimate strategy behind it, too, and plenty to unlock.&lt;/p&gt;
&lt;h1&gt;September&lt;/h1&gt;
&lt;p&gt;After finishing &lt;em&gt;Dark Souls II&lt;/em&gt;, I was kind of itching to push forward in the
Souls series, and do &lt;strong&gt;Dark Souls III&lt;/strong&gt;! I spent about 90 hours or so grinding
out the main game. I think a lot of the bosses in DS3 are a bit over-powered,
relying on moves that "track" the player's position and turn the model toward
you, and techniques that close the distance and force a roll or block. It made
some of the bosses feel more like reaction-fests than calculated combat.&lt;/p&gt;
&lt;p&gt;Beyond that, I absolutely &lt;em&gt;loved&lt;/em&gt; the architecture, locales, world design, 
story, pacing... just about everything was rock solid in this Souls iteration! I 
played through as a Gerudo warrioress, wielding primarily falchions, axes, and a 
lucerne. In New Game+, I want to lean into more lightning miracles and proper 
tanking, to be an Iron Knuckle!&lt;/p&gt;
&lt;p&gt;There's still the DLC to go through, including the Dreg Heap, Ringed City, and 
Ariendel. Thus far, I see why people love 3 so much. Playing a Souls game at 
60fps feels great, too. A must-play for anyone who appreciates medieval games 
with challenge!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;That's it for now. More as the year progresses!&lt;/p&gt;</content><category term="Video Games"/><category term="Video Games"/><category term="12-in-12"/></entry><entry><title>12-in-12, 2025 Edition</title><link href="https://zlg.space/blog/12-in-12-2025-edition.html" rel="alternate"/><published>2025-03-18T18:12:00-07:00</published><updated>2025-12-31T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2025-03-18:/blog/12-in-12-2025-edition.html</id><summary type="html">&lt;p&gt;Welcome to yet ANOTHER year of 12-in-12 fun. What is 12-in-12? It's the
initiative to &lt;strong&gt;beat 12 games in 12 months&lt;/strong&gt;. If this concept is new to you,
check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;. Also check out &lt;a href="https://zlg.space/blog/12-in-12-2024-edition.html"&gt;last
year's 12-in-12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With that said, let's list the games I completed this year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hatsune Miku: Project DIVA X [Vita]&lt;/li&gt;
&lt;li&gt;Crash Team Racing [PS1]&lt;/li&gt;
&lt;li&gt;Dead Cells [Switch]&lt;/li&gt;
&lt;li&gt;Dark Souls II [PS3]&lt;/li&gt;
&lt;li&gt;Banjo-Tooie [N64]&lt;/li&gt;
&lt;li&gt;Crashmo [3DS]&lt;/li&gt;
&lt;li&gt;Hypnogogia [PC]&lt;/li&gt;
&lt;li&gt;Torchlight [PC]&lt;/li&gt;
&lt;li&gt;Peglin [Steam]&lt;/li&gt;
&lt;li&gt;Marble it Up! Ultra [Switch]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Totaling &lt;strong&gt;10/12&lt;/strong&gt; games. Not too shabby, since I did art and other 
stuff this year!&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Welcome to yet ANOTHER year of 12-in-12 fun. What is 12-in-12? It's the
initiative to &lt;strong&gt;beat 12 games in 12 months&lt;/strong&gt;. If this concept is new to you,
check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;. Also check out &lt;a href="https://zlg.space/blog/12-in-12-2024-edition.html"&gt;last
year's 12-in-12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With that said, let's list the games I completed this year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hatsune Miku: Project DIVA X [Vita]&lt;/li&gt;
&lt;li&gt;Crash Team Racing [PS1]&lt;/li&gt;
&lt;li&gt;Dead Cells [Switch]&lt;/li&gt;
&lt;li&gt;Dark Souls II [PS3]&lt;/li&gt;
&lt;li&gt;Banjo-Tooie [N64]&lt;/li&gt;
&lt;li&gt;Crashmo [3DS]&lt;/li&gt;
&lt;li&gt;Hypnogogia [PC]&lt;/li&gt;
&lt;li&gt;Torchlight [PC]&lt;/li&gt;
&lt;li&gt;Peglin [Steam]&lt;/li&gt;
&lt;li&gt;Marble it Up! Ultra [Switch]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Totaling &lt;strong&gt;10/12&lt;/strong&gt; games. Not too shabby, since I did art and other 
stuff this year!&lt;/p&gt;


&lt;h1&gt;February&lt;/h1&gt;
&lt;p&gt;At the end of the month, I picked up my Vita for a couple songs of Miku, only to
finish up the last challenges of &lt;strong&gt;Hatsune Miku: Project DIVA X&lt;/strong&gt; [Vita]. The
finale consisted of choosing one major song of each "vibe" and killing it with a
great score. Considering I bought this so long ago, it's about time I get around 
to enjoying the main game!&lt;/p&gt;
&lt;h1&gt;March&lt;/h1&gt;
&lt;p&gt;At the end of the month, I was streaming some &lt;strong&gt;Crash Team Racing&lt;/strong&gt; [PS1] for
funsies via the PS1 classics on PS3, and ended up finishing the Adventure Mode!
I played through as Crash, though I generally prefer Pura. It was fairly tough
just to get through, and the extra challenges leave you with plenty of game to
explore and savor. It reminded me of Diddy Kong Racing in its design.&lt;/p&gt;
&lt;h1&gt;April&lt;/h1&gt;
&lt;p&gt;In this month, I took apart my copy of &lt;em&gt;Dragon Warrior 3&lt;/em&gt; for GameBoy Color
after it nuked my save AGAIN, only to notice that, uh.. the board didn't have
"Nintendo" anywhere on it. And the cartridge was black, instead of the GBC-only
clear cartridges. In other words, I had a bootleg cartridge! This takes it out
of the backlog, despite it not being beaten. I'm going to count it as a backlog
&lt;em&gt;reduction&lt;/em&gt; if nothing else; the same as if it was destroyed or stolen. Some day
I would like to play through this, but not on a cartridge that lost its saves 3
separate times since buying it.&lt;/p&gt;
&lt;p&gt;To avoid confusion, we're &lt;em&gt;NOT&lt;/em&gt; going to take any credit for this at the top of
the post. I just wanted to share this story!&lt;/p&gt;
&lt;h1&gt;May&lt;/h1&gt;
&lt;p&gt;This month, I tackled &lt;strong&gt;Dead Cells&lt;/strong&gt; [Switch]! It was nice to finish a game
that's been in the backlog since 2018.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Dead Cells&lt;/em&gt; itself is a fantastic Metroidvania and roguelite fusion that gets
better the more you play it. Permanent upgrades are unlocked via Cells, and
dying resets the game and you lose your things. Each thing you put cells into
makes the game that much better, that much easier, and attainable. You have to
go through it multiple times in order to unlock all of the traversal abilities,
so it's not a game for people with a short temper or lacking patience.&lt;/p&gt;
&lt;h1&gt;June&lt;/h1&gt;
&lt;p&gt;The tough games keep coming, with &lt;strong&gt;Dark Souls II&lt;/strong&gt; [PS3] getting beaten early
in the month! It was a great, if frustrating and odd sequel to the beloved &lt;em&gt;Dark
Souls&lt;/em&gt;. There's still DLC for me to get through, but I'm chomping at the bit to
get through again.&lt;/p&gt;
&lt;p&gt;This playthrough, I was a "battle mage", aiming for DEX-based weapons and high 
INT and ATN. Though, I must say speccing it out doesn't start to materialize 
until around level 100. I'm not sure how I would refine it, but I'm looking 
forward to exploring hexes in my next playthrough. After that, I should be ready 
to explore the top-level stuff like heavy armor + heavy gear builds.&lt;/p&gt;
&lt;p&gt;Suffice to say, I actually kinda like the linearity, but it's somewhat open 
during a significant chunk of the game.&lt;/p&gt;
&lt;p&gt;At the end of the month, my friend &lt;a href="https://twitch.tv/elomeno_"&gt;Elomeno_&lt;/a&gt; and I
played through &lt;strong&gt;Banjo-Tooie&lt;/strong&gt; [N64]. It was a trip, full of collectibles. A ton
of the game is locked behind the abilities; I'd love to play a version that has
the abilities unlocked from the start.&lt;/p&gt;
&lt;h1&gt;September&lt;/h1&gt;
&lt;p&gt;This month, I finished up &lt;strong&gt;Crashmo&lt;/strong&gt; [3DS]. It's a cute puzzle game where you
grab various 3D shapes and can move them in the four cardinal directions. I beat
the initial 100 levels, but the difficulty of them was becoming so grueling,
that I didn't feel up to finishing the bonus content.&lt;/p&gt;
&lt;p&gt;Still, you unlock a music player when you beat the game, and I believe it has a 
level editor, too. What else could you really ask for from a puzzle game? I 
might mix it up and have different play area themes instead of the same one for 
the whole game, but there's a story reason for that which I won't reveal.&lt;/p&gt;
&lt;h1&gt;October&lt;/h1&gt;
&lt;p&gt;My girlfriend and I played a bunch of games we found on Itch.io and other
places. One that captivated me long enough to finish is &lt;strong&gt;Hypnogogia&lt;/strong&gt; [PC],
named after the state of consciousness between wakefulness and sleep. It's a
game jam game that was developed in a single month. Pretty cool for what it
attempts to do, it was a solid evening exploring the game.&lt;/p&gt;
&lt;h1&gt;November&lt;/h1&gt;
&lt;p&gt;A long-standing game in the backlog was finished early in the month. Runic
Games' &lt;strong&gt;Torchlight&lt;/strong&gt; [PC] came at a time when there were precious few Western
ARPGs to choose from. It was okay for what it was, but playing it really made
me want to go back to &lt;em&gt;Diablo II: Resurrected&lt;/em&gt; or even just &lt;em&gt;Diablo: The Hell&lt;/em&gt;.
It's clear from the music direction and general design that it comes from the
same minds that developed &lt;em&gt;Diablo&lt;/em&gt;, but it's aimed at too casual of an audience
for me to find much satisfaction in the game. I played through as a Vanquisher
and focused on critical hits for much of the game. My build seemed decent for
the most part. Still, it wasn't the worst 20-30 hours I've spent on a game. I'd
be interested in hearing the thoughts of the original developers concerning this
game, considering it was developed in only 11 months!&lt;/p&gt;
&lt;h1&gt;December&lt;/h1&gt;
&lt;p&gt;I spent most of this month working on creative stuff and playing games that were 
gifted to me. I beat two of them, on the same day!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Peglin&lt;/strong&gt; [Steam] is a fun pachinko + roguelike combination that is accessible,
but deep enough to warrant careful decision-making. I pulled off my first win
after about 6-8 attempts and 10 hours of playing. However, there's a bunch more
to unlock and see after that first win! This is a game that I see myself coming
back to when I'm feeling something casual and don't want to think too hard.&lt;/p&gt;
&lt;p&gt;Next, I finished up &lt;strong&gt;Marble it Up! Ultra&lt;/strong&gt; [Switch], a modern marble obstacle
game. It has multiplayer modes and a bunch of unlockables for all of your hard
work finding hidden items and getting fast times! It'd be nice try out the
online with people some time.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;That's it for the 12-in-12 this year! We did 10 out of 12. Not my worst!&lt;/p&gt;</content><category term="Video Games"/><category term="Video Games"/><category term="12-in-12"/></entry><entry><title>The Coolest Game About Teenage Rebellion</title><link href="https://zlg.space/blog/persona-5-review.html" rel="alternate"/><published>2024-10-25T00:00:00-07:00</published><updated>2024-11-12T00:02:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2024-10-25:/blog/persona-5-review.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Persona 5&lt;/em&gt; released to the world in April of 2017. It was released to an uproar
of praise, from critics and players alike. This is despite other heavy-hitters
like &lt;em&gt;Zelda: Breath of the Wild&lt;/em&gt; and &lt;em&gt;Horizon: Zero Dawn&lt;/em&gt; releasing around the
same time. Additionally, the &lt;em&gt;shonen anime&lt;/em&gt; style is in no short supply these
days. However, Atlus is not known for being a slip-shod or lazy developer.
&lt;em&gt;Persona 5&lt;/em&gt; marks the second major Persona game to be a hit in the West, but
P5 in particular reached a broader audience than past entries, pulling in fans
from places like South America! Joker's later appearance in &lt;em&gt;Super Smash Bros
Ultimate&lt;/em&gt; via DLC practically confirms Persona 5's place in gaming history as
one of The Greats.&lt;/p&gt;
&lt;p&gt;That said, I am writing this review in 2024, after &lt;em&gt;P5 Royal&lt;/em&gt;, &lt;em&gt;P5 Strikers&lt;/em&gt;,
&lt;em&gt;Persona Q2: New Cinema Labyrinth&lt;/em&gt;, &lt;em&gt;P5 Tactica&lt;/em&gt;, and &lt;em&gt;P5 Dancing in Starlight&lt;/em&gt;
have all come out. Some are side-stories, but some are soft prequels or sequels,
so if JRPGs aren't your thing, &lt;em&gt;Persona 5&lt;/em&gt; has a few other genres that it
shows up in. &lt;strong&gt;This review will focus exclusively on the base Persona 5, for
Playstation 3.&lt;/strong&gt; This means I won't be addressing the new content in &lt;em&gt;Royal&lt;/em&gt;,
which is a remix or director's cut of sorts.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;em&gt;Persona 5&lt;/em&gt; released to the world in April of 2017. It was released to an uproar
of praise, from critics and players alike. This is despite other heavy-hitters
like &lt;em&gt;Zelda: Breath of the Wild&lt;/em&gt; and &lt;em&gt;Horizon: Zero Dawn&lt;/em&gt; releasing around the
same time. Additionally, the &lt;em&gt;shonen anime&lt;/em&gt; style is in no short supply these
days. However, Atlus is not known for being a slip-shod or lazy developer.
&lt;em&gt;Persona 5&lt;/em&gt; marks the second major Persona game to be a hit in the West, but
P5 in particular reached a broader audience than past entries, pulling in fans
from places like South America! Joker's later appearance in &lt;em&gt;Super Smash Bros
Ultimate&lt;/em&gt; via DLC practically confirms Persona 5's place in gaming history as
one of The Greats.&lt;/p&gt;
&lt;p&gt;That said, I am writing this review in 2024, after &lt;em&gt;P5 Royal&lt;/em&gt;, &lt;em&gt;P5 Strikers&lt;/em&gt;,
&lt;em&gt;Persona Q2: New Cinema Labyrinth&lt;/em&gt;, &lt;em&gt;P5 Tactica&lt;/em&gt;, and &lt;em&gt;P5 Dancing in Starlight&lt;/em&gt;
have all come out. Some are side-stories, but some are soft prequels or sequels,
so if JRPGs aren't your thing, &lt;em&gt;Persona 5&lt;/em&gt; has a few other genres that it
shows up in. &lt;strong&gt;This review will focus exclusively on the base Persona 5, for
Playstation 3.&lt;/strong&gt; This means I won't be addressing the new content in &lt;em&gt;Royal&lt;/em&gt;,
which is a remix or director's cut of sorts.&lt;/p&gt;


&lt;h1&gt;Initial Impressions&lt;/h1&gt;
&lt;p&gt;From the beginning of the game, &lt;em&gt;Persona 5&lt;/em&gt; hits you in its intro with sick
urban shots and acrobatic dancing to bass-heavy jazz music. This ain't your
typical JRPG with wizards and slimes! Although yes, they are sort of there in
the game. :)&lt;/p&gt;
&lt;p&gt;The plot begins with the main character encountering a man harassing a woman,
stopping him, and later being sued for assault in his defense of the woman.
During the altercation, the harassing man makes it clear he is socially powerful
and will not let the woman tell the truth. This results in your character's
arrest. As punishment, your character is to go to a different school under the
care of a man named Sojiro until your probation is over.&lt;/p&gt;
&lt;p&gt;So, you did &lt;em&gt;the right thing&lt;/em&gt; and defended someone, but an adult misusing their
power damaged your life for stopping their abuse. This sets the stage for the
vast majority of the game. As you make new friends throughout the story, you also
encounter numerous situations and problems that people are dealing with. The
core theme is innocent people being taken advantage of by those with power over
others in some capacity or another, be it emotional, financial, or political
power.&lt;/p&gt;
&lt;p&gt;Soon after settling into school, your character wakes up in a dream to a jail
cell and a man named Igor tells him he must carry out tasks for his
"rehabilitation", if he can muster the power to carry it out. The power of the
Fool Arcana unlocks soon after, and you awaken as Joker, the Phantom Thief.&lt;/p&gt;
&lt;p&gt;What do the Phantom Thieves do? Why, they steal the hearts of evil adults who
misuse their influence of the world to harm others, of course! Seriously, using
a mysterious smartphone app, a group of teenagers gains access to a "Metaverse"
where they can steal the Treasure from a distorted mind's Palace, and reform
evil-doers by compelling them to confess their crimes. Stealing the treasure of
their distorted heart removes the distortion, and returns them to a reasonable
person, but there have been rumors of mental shutdowns in Tokyo...&lt;/p&gt;
&lt;p&gt;Given how much I've blabbed about the premise above, I don't want to spoil.
There is a lot to read, see, and experience in this game. This game has an edgy
anime style to its art, but the &lt;em&gt;subject matter&lt;/em&gt; includes everything from
financially abusing the elderly, to sexual harassment and extortion, art fraud,
overbearing vicarious parents, exploitative CEOs, and corrupt politicians trying
to steal an election. Between you and your rag-tag group of misfit teenagers,
the group will witness or undergo many trials that will keep you playing "just
another (in-game) day" for that new Persona or next story beat.&lt;/p&gt;
&lt;h1&gt;Visuals&lt;/h1&gt;
&lt;p&gt;The artistry on display in this game is absolutely top-of-class. Menus are the
most dynamic and interesting I've seen them since &lt;em&gt;Meteos&lt;/em&gt; on the Nintendo DS.
Each and every menu of the game is a different layout and feel, with different
arrangements of the signature red, black, and white motif for the game. Palettes
and shapes change between various menus, such as Takemi's white, black, and blue
palette, Iwai's white, green, and sometimes orange palette, and so on.&lt;/p&gt;
&lt;p&gt;Each element of style in this game is clearly inspired from other things, but by
combining it in the fashion that Atlus has, it takes on a flavor of its own. The
edginess of ransom-note text and graffiti-style cursor boxes is great. The
readability &lt;em&gt;definitely&lt;/em&gt; takes a hit to pull this off, but after a while, you
learn to adjust and not get too hung up on it.&lt;/p&gt;
&lt;h1&gt;Music and Sound Design&lt;/h1&gt;
&lt;p&gt;It goes beyond just the art, too. The music and its track names are references.
Iwai's gun shop theme is "Layer Cake", which not only refers to the progression
of the piece going through phases, but also how Iwai himself is a character with
a rough layer on the outside and softer layers inside, like a cake. The game and
its OST are filled with these little nods to their own designs. I can't talk
enough about this game's music. I love everything from the infiltration music to
battles, daytime in Tokyo, there is SO much music in this game to enjoy. There
have been times I've just left the game sit so I could listen to the music,
especially inside Futaba's Palace.&lt;/p&gt;
&lt;p&gt;Sound design is often overlooked by a lot of reviewers, so I'd like to include 
that. Many of the confirmation sounds in the game sound like some sort of 
weaponry or gear you're preparing. It's a satisfying motif that I never got 
tired of, even after beating the game. Sound effects all sounded believable and 
were mixed really well. Nothing ever stood out as "that's way too loud" or "I 
can't hear that effect". Top notch sound, as I would expect from Atlus.&lt;/p&gt;
&lt;h1&gt;Design Inspired by Real Mythology&lt;/h1&gt;
&lt;p&gt;The references don't stop there. This game is FULL of references, to all sorts
of occult and legendary stuff. Personas come in many different flavors, from
things like Yamato-no-Orochi and Kushinada to Thor, Dionysus, Hanuman,
Quetzalcoatl, and tons more. Most of the world's religions or pantheons are
represented &lt;em&gt;somewhere&lt;/em&gt; in Persona, with their own crazy Atlus flair.&lt;/p&gt;
&lt;p&gt;The most present references are the two main themes: &lt;em&gt;picaresque fiction&lt;/em&gt;
where plucky, noble thieves overturn unjust societies, and &lt;em&gt;tarot houses&lt;/em&gt;,
known as Arcana in the Persona series. Each of the main characters gets a
Persona representing a noble thief from some mythology or another. Think of
characters from folklore like Robin Hood, Zorro, or Goemon. Each Persona and
confidant also has an &lt;em&gt;affinity&lt;/em&gt; with an Arcana, which influences various
aspects of gameplay.&lt;/p&gt;
&lt;p&gt;Personas in general tend to be references to existing cultural relics or legends
from history, so each one you meet and add to your ranks is also a little
archaeology lesson with the flavor text telling you what they were inspired by
for the monster design. Really fun stuff for cultural nerds.&lt;/p&gt;
&lt;h1&gt;Gameplay&lt;/h1&gt;
&lt;p&gt;So, what about the game itself? &lt;em&gt;Persona&lt;/em&gt; is a series typically about high
school students fighting through some sort of supernatural event and saving the
world. Part of the game is also a constant dichotomy between RPG mechanics and
Social Simulator mechanics, which build on each other as you progress. Certain
breakpoints come up throughout the game's calendar where you need to meet
certain social criteria, or you cannot continue down a particular social
pathway. Sometimes it's only a temporary block, but there are multiple hard
blocks too, where you either have the Knowledge, Guts, Profiency, Kindness, or
Charm to Do The Thing, or you don't.&lt;/p&gt;
&lt;p&gt;That's why they give you a million save slots. You will save-scum a lot if
you don't like missing things. Personally, I played through mostly naturally,
and used YouTube videos to catch any cutscenes or moments I may have missed.
Considering that it took me nearly 200 hours to play through it the first time,
I think that's a better use of one's limited life.&lt;/p&gt;
&lt;p&gt;Speaking of limited life, that's the name of the social game. Every day, your 
character gets one (and later two) actions to choose to do with their in-game 
calendar day. Since you're a high schooler, you have a school schedule to keep 
that you have no say in. The leftover time is when you choose to hang out with 
people, go out to Shibuya or other places to do business, get a job, and so on. 
There's &lt;em&gt;always&lt;/em&gt; something to do in Persona 5, as long as Morgana isn't telling 
you to go to bed...&lt;/p&gt;
&lt;p&gt;When you make your way back to the Metaverse, you can take as long as you want 
for that one visit. This is where the role-playing and dungeon-crawling of the 
game is. It's my favorite part of the game because it's also the most 
interactive and dynamic. In the story dungeons there is a ton to explore and 
uncover, with fun puzzles to break up the stealthy monotony. Some of the puzzles 
got a little obtuse, and one of the later ones really overstayed its welcome, 
but overall I would say each major puzzle mechanic is interesting and compelling 
long enough for it to be a fun distraction between grinding.&lt;/p&gt;
&lt;p&gt;While you're out hunting Shadows, sometimes you'll corner them after smackin' a 
weakness or two, and they'll beg for forgiveness. When you corner enemies, you 
have the options to take their money, an item, or recruit them to your team, if 
your level is at least as high as theirs. This is how you "capture" Personas, 
and where the game starts to feel like a grown-up Pokémon. During negotiations, 
you have to appeal to the personality of the Persona you're trying to convince 
to join you, so it throws a little social sim action at you in the middle of the 
JRPG action. Atlus really knows how to throw gameplay elements together!&lt;/p&gt;
&lt;p&gt;Old-school JRPG fans might already be thinking of &lt;em&gt;Dragon Quest Monsters&lt;/em&gt;, which
has a similar mechanic, including fusing monsters together! &lt;em&gt;Persona 5&lt;/em&gt; has its
Fusion system where you lose both original Personas and get a more powerful one
out of it, with bonus EXP based on your relationship level with that Arcana.
Setups like this are how the social stats you build in your "normal" life will
affect your performance in the "real" game, where your relationships alter
the gameplay options available to you. However, you can also summon any prior
Persona you've had, for some Yen, and re-use them to fuse other Personas, or
just bring one back that you liked! (Hello, Rangda and Trumpeter!)&lt;/p&gt;
&lt;p&gt;I could spend another entire post covering the mechanics, match-up dynamics,
status inflictions, and gear setups you could use across this game. Rest
assured, the turn-based gameplay of Persona 5 is some of the best you'll find in
what amounts to a fancy "monster battler". You can get a preview of who's acting
next turn, relationships unlock various perks like auto-recovering from status
effects with a team-mate's help, to active buffs and healing from Navigators,
completely new mechanics like the shoot-up you can unlock when a battle starts,
taking would-be-fatal hits for other team mates, and so on. If you're looking
for impactful decision-making in a monster battler, it's here for you to bask 
in.&lt;/p&gt;
&lt;h1&gt;Characterization&lt;/h1&gt;
&lt;p&gt;The last major thing I want to cover is mostly for the skeptics. &lt;strong&gt;Don't let
Persona 5's anime exterior keep you from enjoying a heartfelt and hopeful story
full of excitement, despair, righteous fury, sadness, relief, joy, and every
other human emotion.&lt;/strong&gt; Many of the cast come across as somewhat trope-y when
they're first introduced. Like a person, you can't judge how they come across
and run with it. I found myself pushing away characters at first, who actually
turned out to be deep characters during the story, and invaluable allies in
combat.&lt;/p&gt;
&lt;p&gt;Part of the trouble I had is my inexperience with Persona (5 is my first), but
also, I was sticking to the goal of staying on the down-low, so I assumed I
needed to hold off on relationships for a while. Don't do that.&lt;/p&gt;
&lt;p&gt;And, that leads me to the reason for the review to begin with... An RPG hasn't
touched me on such a relatable and human level in a long time. Even when I'm
done playing, I reflect on how characters reacted to events in their lives, or
how I would feel in one of the characters' positions. I don't remember the last
time an RPG's characters got me thinking of them off the screen.&lt;/p&gt;
&lt;p&gt;In one of the major goals of the game, you're trying to save a teenage girl from
her self-isolation and hallucinations induced from losing her mother. The pain
and distress is well-conveyed in this section, having gone through my own fair
share of witness to things I was too young to process. Futaba's Palace holds a
special place in my heart; Midway through my playthrough, I sat down to listen
to the music for a while, and eventually nodded, "I get it."&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Persona 5&lt;/em&gt; isn't about teenagers, Personas, or Big Bads. It's about Life, the
decisions you make with the limited time you have each day. It's about viewing
relationships and self-improvement as keys to progress in life. It's about
planning for the times where life is &lt;em&gt;going&lt;/em&gt; to kick your ass, or accepting
that some decisions are forever locked behind prior mistakes. But most of
all... &lt;strong&gt;Persona 5 is about seeing requests for help as opportunities to reverse
injustice in the world, one stolen heart at a time.&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;Final Verdict&lt;/h1&gt;
&lt;p&gt;If you like JRPGs and are looking for a monster battler to take up 200 hours of 
your life, piss you off, make you laugh and cry, rage and despair... then hell 
yeah, do it! I cannot recommend this experience enough for anyone who enjoys a 
good story and RPG mechanics. This game is one of the greats, wholly deserving 
of the accolades it's received over the years.&lt;/p&gt;
&lt;p&gt;That said, it's a &lt;em&gt;long&lt;/em&gt; game, and you &lt;em&gt;will&lt;/em&gt; miss things. Some decisions open
doors and close others. You cannot 100% this game in a single run, since there
is New Game+ content. If you are a completionist, do not like missing things, or
are getting exhausted from longer games, then I wouldn't blame you for skipping
it, but at least watch a Let's Play or something if you don't. The characters
and plot are worth it!&lt;/p&gt;
&lt;p&gt;If this review stole &lt;em&gt;your&lt;/em&gt; heart, please consider contributing to my Ko-Fi to
encourage more content like this. Thanks!&lt;/p&gt;</content><category term="Reviews"/><category term="Reviews"/><category term="JRPGs"/><category term="Atlus"/><category term="Persona"/></entry><entry><title>A Worker's Treatise on Industrial Abuse and Political Abandonment</title><link href="https://zlg.space/blog/a-workers-treatise-on-industrial-abuse-and-political-abandonment.html" rel="alternate"/><published>2024-09-01T07:52:00-07:00</published><updated>2024-09-01T07:52:00-07:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2024-09-01:/blog/a-workers-treatise-on-industrial-abuse-and-political-abandonment.html</id><summary type="html">&lt;p&gt;This post is written in solidarity with workers worldwide who face oppressive
capitalist enterprises, locking hands with the government charged with
protecting them and being an ally. In truth, government and business work
together to harm the citizenry. It's an affront to everything decent to rob
a man of his usefulness and then discard him like trash. Moreso to be in a
position of power and let it happen, against your own professed allegiance. This 
is another story of labor abuse to add to the pile.&lt;/p&gt;
&lt;p&gt;In this post, I am specifically naming Mountain Shadow Nursery as the party
who harmed me in the course of labor, and the State of Washington as the
governing party abdicating its responsibility to help me, a tax-paying and
L&amp;amp;I-contributing resident of Washington since 2014, get back to proper working
health.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;This post is written in solidarity with workers worldwide who face oppressive
capitalist enterprises, locking hands with the government charged with
protecting them and being an ally. In truth, government and business work
together to harm the citizenry. It's an affront to everything decent to rob
a man of his usefulness and then discard him like trash. Moreso to be in a
position of power and let it happen, against your own professed allegiance. This 
is another story of labor abuse to add to the pile.&lt;/p&gt;
&lt;p&gt;In this post, I am specifically naming Mountain Shadow Nursery as the party
who harmed me in the course of labor, and the State of Washington as the
governing party abdicating its responsibility to help me, a tax-paying and
L&amp;amp;I-contributing resident of Washington since 2014, get back to proper working
health.&lt;/p&gt;


&lt;p&gt;In September of 2022, I started working as a lab technician at Mountain Shadow
Nursery, a plant tissue culture facility in Littlerock, WA, off of Exit 95 in
Washington's I-5 highway. It's a small compound with two primary buildings in
an open field, owned by Bryan and Joanna McCulloch of Littlerock, WA. There are
two driveways -- one gravel, for the workers, and one that is paved, for the
business owners. They go parallel down the length of their property, so one is
rather curious about why these two roads coexist so closely together. Their home
is at the back of the vast field, with a forest of decent thickness on its rear
and right flanks. The shortest of commutes, for sure, since the business itself
is less than a football field away from the front door of their house.&lt;/p&gt;
&lt;p&gt;The work at this place is essentially chopping up plants and putting them into
vials of various fertilization media, for the purpose of cloning plants. To
do it, you need to wield long pairs of tweezers and scalpels under a plastic
"hood" part, which you will be hunching over for 8 hours a day. Then, you'll
need to put together dozens of these containers per day. The typical standard
is 96 containers of the 30-piece variety. So that's 96 containers of 30 pieces,
ergo &lt;em&gt;thousands of times&lt;/em&gt; daily that you're squeezing and releasing tweezers.
And you can't just toss'em into the vessel, they need precise placement to grow
correctly.&lt;/p&gt;
&lt;p&gt;The less experienced people had to spend multiple days a week in the dish room,
where they shake out the dead plant matter and extra media in the vessels,
then wash them. The tooling for getting the media out of these containers is
rudimentary, demanding that the worker shake the vessels repeatedly to get the
medium out. I think their idea was to mix it up, but both jobs are actually
quite hard on the wrists, but in slightly different places.&lt;/p&gt;
&lt;p&gt;In November of 2022, I had issues with my shoulder caused by the small stations
that I had to cram my 6'2" frame into. It caused me to miss a few days due to
the posture required for me to fit into the station. Mtn Shadow worked with me
to try to find a suitable chair, but the stations themselves were still just too
small.&lt;/p&gt;
&lt;p&gt;I was adapting to the job, or so I thought, when I began having wrist issues. I
took it easy at first, until I was waking up with numbness in my hands. I
eventually brought this up after determining that it was indeed the working
conditions causing my problem. This was in February of 2023. By March, I was
unable to make it through an entire day's worth of work without significant pain
and discomfort in my hands and wrists.&lt;/p&gt;
&lt;p&gt;During this process, Joanna took multiple pictures of the way I worked, but not
others. This felt like I was being singled out or setup for something, but I
assumed she was just being responsible. I was wrong. The same happened when a
comment box was introduced at the facility shortly after I began working there.
Did I mention I was one of only two male employees? Did I mention that when I
used the box for its intended purpose, my message was ignored for two weeks? The
box did not exist in the business before I was hired, and it was introduced VERY
shortly after.&lt;/p&gt;
&lt;p&gt;Logically, this means someone had a problem with me but did not communicate it,
and wanted to use the message box to add plausible deniability. I understand
that a workplace is not a court of law, but the Sixth Amendment of the
Constitution was written for good reason: you cannot defend yourself against an
attacker you cannot face, or accusations you're not allowed to read. Due to the
secret nature of this message box and its timing, I have no reason to believe
that my presence wasn't related to its installation. It's too perfect for it not
to be.&lt;/p&gt;
&lt;p&gt;It is at this point, in mid March 2023, that Joanna took me aside and suggested
that I call and apply for L&amp;amp;I. I did so, at her suggestion. During the process
of filing for L&amp;amp;I, I was fired by Mountain Shadow Nursery because of a job I
worked but did not disclose on my resume, due to using one that was out of
date. Nothing about the resume was a lie, and I was wrongly accused of lying
by Mountain Shadow Nursery. So that means the advice given to me by Joanna was
given in bad faith. Washington State then referred Mtn Shadow Nursery to a
Corporate Liability firm to help them fuck me over.&lt;/p&gt;
&lt;p&gt;L&amp;amp;I dragged their feet on things at first, and I waded through the extreme
amount of paperwork. One thing that Washington L&amp;amp;I does that I think is quite
manipulative and misleading is the focus on encouraging you to stay working. I
managed to get a 10 hr/wk job a couple of months after Mountain Shadow fired me,
but it was for less pay &lt;em&gt;and&lt;/em&gt; I was left with less earning ability, because I
could not work the initial 25 hour weeks. I am still unable to work full time
as of September 2024. I did this because I thought staying in &lt;em&gt;some&lt;/em&gt; sort of
work might actually help my hands, and help me get assistance by showing some
initiative.&lt;/p&gt;
&lt;p&gt;I did not tell the new employer that I needed any special light duty but I did
mention that I was on L&amp;amp;I and trying to recover from an injury. There was also
no indication from L&amp;amp;I that I might need to travel extensively, to the tune of
100+ miles to get to a facility that is approved. And they'll only tell you
this after the cutoff for getting mileage has passed.&lt;/p&gt;
&lt;p&gt;Due to waiting list issues getting into medical facilities and physical therapy,
my case was marked "chronic" and reassigned. This new person must have a goal
to cut off any sort of progress I was making, because I was denied my last few
physical therapy sessions, and the full extent of medical massage. Every step of
the way, Washington L&amp;amp;I tried to shortchange me on getting better.&lt;/p&gt;
&lt;p&gt;They suggested that I get steroid injections, which they also noted a possible
error rate. Due to the already damaged trust in both the state and the medical
side, the risks of the procedure, and having to travel over 200 miles round trip
to have a needle stuck in my wrist, I turned down the injection. They'd already
damaged my trust. What was wrong with the cheaper and more effective therapy I
was receiving? Under physical therapy, I made actual progress and felt like I
had a chance of recovery. The medical massages helped ease my shoulder and
wrists a bit, but I was left mid-recovery. How do they expect me to get better?
I'll answer that: They don't WANT me to get better, and they don't care that
they injured me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Today, I can't lift a 40 lb bag of feed or dog food without lasting pain in
my wrists. I can't sweep and mop a floor without intermittent pain and tingling.
You can forget wiping down surfaces or cleaning anything with manual effort,
because the pain begins and starts to build the more I do it. Is this what
acceptable recovery looks like to you!?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I was raised to take responsibility for hurting others if I brought harm to
them. Last time I checked, it was simply The Right Thing To Do. And in my
own life, I have been charged with taking responsibility for any property I
destroyed, or people that I harmed. So then, why should it be any different for
a business to restore the health of the people it exploits to make its money?
Did your father teach you to leave your workers hanging, Bryan? Is that how he
made his money and passed the business to you? I'd like to think that man had a
little integrity, but who knows. The apple doesn't fall far from the tree.&lt;/p&gt;
&lt;p&gt;I challenge the State of Washington and Mountain Shadow Nursery to defend their
careless and cruel disregard for harming me, and explain why I should not seek
damages for lost wages and emotional distress. I worked this job for only six
months, and I have been incapacitated from the injury for &lt;strong&gt;over 12 months&lt;/strong&gt;. In
what world is this acceptable?&lt;/p&gt;
&lt;p&gt;My hands are important to me, and Mountain Shadow Nursery injured them
and doesn't want to help me get back to 100%. I am not even at 50%! They
and Washington State think barely getting by on 10 hours a week of work is
acceptable recovery for tendinitis. This economic impact also affects my ability
to provide for my children, so in effect these parties have damaged both me and
my family.&lt;/p&gt;
&lt;p&gt;The writing's on the wall, Washington. If you so flagrantly turn away someone
who has contributed to your economy for the past decade or more, including funds
for L&amp;amp;I, do you really think you deserve defense when the time comes to defend
this land? Allies and respect are earned, not entitled or owed. And you are
losing both in me if you allow a business to injure a worker and not get him
back in working order. Why do I deserve to be abandoned by my country? I pay
taxes like any other damned citizen. I had to sign my life over to your pathetic
organization to even get the right to vote. If anyone owes shit here, it's you.&lt;/p&gt;
&lt;p&gt;How committed is Washington to her people? I dare say she's not invested at all.
Put up or shut up. I am seeking workplace injury counsel to hold these fools
accountable. This is not justice, nor is it acceptable to do this to &lt;em&gt;any&lt;/em&gt;
worker.&lt;/p&gt;
&lt;p&gt;You break it, you buy it.&lt;/p&gt;</content><category term="Life"/><category term="Business"/><category term="Politics"/><category term="Government"/><category term="Labor"/></entry><entry><title>Holiday 2023 Outage Post-Mortem</title><link href="https://zlg.space/blog/holiday-2023-outage-post-mortem.html" rel="alternate"/><published>2024-02-02T00:00:00-08:00</published><updated>2024-02-02T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2024-02-02:/blog/holiday-2023-outage-post-mortem.html</id><summary type="html">&lt;p&gt;In the days leading up to the end of 2023, &lt;code&gt;zlg.space&lt;/code&gt;'s primary hard drive
began having errors and locking up the entire server. It began with simple
unresponsiveness, and ended in a replacement drive, new OS, and a bumpy road
of &lt;code&gt;/opt&lt;/code&gt; self-compiled madness to bring the backup to the modern ages of PHP.
The server is now on bigger, faster storage and an OS that won't get in the way
if/when it breaks again, but it didn't come without an arduous test of patience.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;In the days leading up to the end of 2023, &lt;code&gt;zlg.space&lt;/code&gt;'s primary hard drive
began having errors and locking up the entire server. It began with simple
unresponsiveness, and ended in a replacement drive, new OS, and a bumpy road
of &lt;code&gt;/opt&lt;/code&gt; self-compiled madness to bring the backup to the modern ages of PHP.
The server is now on bigger, faster storage and an OS that won't get in the way
if/when it breaks again, but it didn't come without an arduous test of patience.&lt;/p&gt;


&lt;h1&gt;December 28th, 2023&lt;/h1&gt;
&lt;p&gt;The problem happens for the third time since before Christmas. By the end of the
year, I discovered via &lt;code&gt;smartctl&lt;/code&gt; that the drive had experienced many hundreds
of error events concerning the reallocation of damaged sectors. It would detect
bad sectors, but either would not or could not tag them as bad and reallocate
the data elsewhere. The hard drive was in a laptop-sized enclosure and had
not been thrown, dropped, stepped on, or otherwise physically disturbed since
October. At this point I determined it was some sort of unrecoverable hard drive
damage. Before using SMART, I had tried to use &lt;code&gt;fsck&lt;/code&gt; to repair filesystem
errors, in case the problem was at that level. It didn't seem to help.&lt;/p&gt;
&lt;h1&gt;January 1st, 2024&lt;/h1&gt;
&lt;p&gt;I decided to order a new storage device in the same form factor; the enclosure's 
controller could correctly read and interact with other drives that I inserted, 
so I know it wasn't the enclosure which errored. This new drive is an SSD, so 
even if I put it into the same environment, it will be less prone to vibrations.&lt;/p&gt;
&lt;h1&gt;January 9th, 2024&lt;/h1&gt;
&lt;p&gt;The drive arrives and I start considering my options for moving forward. The 
primary candidates were Gentoo, KISS, or PiLFS.&lt;/p&gt;
&lt;h1&gt;January 11th, 2024&lt;/h1&gt;
&lt;p&gt;I tried one last time to get the drive to work, so I could attempt to get data 
off of it. I had performed a backup of the website's data a month or two prior, 
so not much data, if any, was lost. I guess there are perks to being the only 
active user of your own site, haha.&lt;/p&gt;
&lt;p&gt;The server was formerly using Ubuntu Server, which uses systemd and cloud-init
to provision your server as if it were part of a fleet. This is entirely
overkill for a singular Raspberry Pi server, and includes many more layers of
complexity than I need. I spent more time trying to figure out the Ubuntu way
than I did just using tools I already know. "Modern" Linux with its container
app formats and cloud-init shit and XDG portals and incomplete Wayland specs are
just annoying. Like it or not, those technologies are not the way forward for Linux.&lt;/p&gt;
&lt;p&gt;After reconfiguring the Pi's firmware to boot directly from USB, I chose to go
back to Gentoo Linux for my server. I was leaning toward KISS Linux, but their
Pi ecosystem isn't quite ready for what I need. Gentoo gets out of the way,
has the tooling to pick and choose, and ebuilds are hackable for anyone who
knows shell scripting. I really wish distros could get the experience right for
developers, server owners, power-users, etc.&lt;/p&gt;
&lt;h1&gt;January 12th, 2024&lt;/h1&gt;
&lt;p&gt;Configuration and installation of Gentoo continued, and tweaks were put in place
to reduce the number of writes that will be made to the SSD, to extend its life
a little. Using a source-based distro is already going to be a mild problem when
it comes to writes, but it can be mitigated.&lt;/p&gt;
&lt;h1&gt;January 13th, 2024&lt;/h1&gt;
&lt;p&gt;I fought against a chicken-and-egg problem created by the proprietary nature of 
the Raspberry Pi's Wi-Fi and Bluetooth, so I had to fetch distfiles for a few 
packages to bootstrap wifi. I could have just finished prepping ssh instead, but 
I want this machine to be adaptable to networking conditions. Also, who doesn't 
like watching the first boot?&lt;/p&gt;
&lt;p&gt;The data from the backup was only from &lt;code&gt;/srv&lt;/code&gt;, the Nextcloud installation, and 
the Postgres database cluster. System configs were not backed up before the old 
drive failed, but a backup from 2021 should make most of the restoration a 
smooth process. Now that this is all on one device, making backups should be 
trivial in the future.&lt;/p&gt;
&lt;p&gt;Networking eventually was put into place, and after adding a few extras to get 
started, I now have a user accessible via SSH and the correct security needed 
for the admin account. We can begin the actual rebuilding!&lt;/p&gt;
&lt;h1&gt;January 14th, 2024&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;The real Gentoo Linux starts here.&lt;/em&gt; It feels wonderful to have a system ready 
to be hacked on! The process begins to put together a firewall, webserver, 
smarter log rotation, and install the software I was running before!&lt;/p&gt;
&lt;p&gt;fail2ban and logrotate are the first goals, which went off without any major 
problems. Mostly just small configuration and boot-persistence kind of stuff. 
The next major goals are lighttpd and certbot, which will open up most of this 
server's available software. I sure miss my Nextcloud...&lt;/p&gt;
&lt;h1&gt;January 15th, 2024&lt;/h1&gt;
&lt;p&gt;I had to work and handle some errands and chores today, so not as much time to
do big things. I installed ddclient and got started on Gopher. Fun little story
there. I went to install my Gopher server of choice, &lt;code&gt;sgopherd&lt;/code&gt;, and learned
that its only available version in Portage was out of date. "Hmm, weird. I guess
I'll go ahead and update it," I thought. So I did what one does when you need to 
bump an ebuild, double-checked on current dev tools/standards, made sure things 
were good, and...&lt;/p&gt;
&lt;p&gt;I'm aware it's in &lt;em&gt;maintainer-needed&lt;/em&gt; status, but if I'm the only person who
cares about it in five years, I'm not bothering to interface with the community.
I don't mind maintaining my own ebuilds, having prior active experience with the
distribution. I have no plans to publish a repository/overlay, however. My prior 
experiences weren't a net-positive, so I will not be sharing my work. People 
don't think it be like it is, but it do.&lt;/p&gt;
&lt;h1&gt;January 18th, 2024&lt;/h1&gt;
&lt;p&gt;It didn't take overnight; instead it got hung up on &lt;code&gt;dev-lang/rust-bin&lt;/code&gt; due to 
insufficient space in &lt;code&gt;/var/tmp/portage&lt;/code&gt;. No worries, I updated the 
&lt;code&gt;package.env&lt;/code&gt; file to use the SSD instead of RAM, cleared &lt;code&gt;$TMPDIR&lt;/code&gt;, and moved 
on. It wasn't going to take all night anyway.&lt;/p&gt;
&lt;p&gt;Eventually, I orchestrated the dance of &lt;code&gt;lighttpd&lt;/code&gt;, &lt;code&gt;lexicon&lt;/code&gt;, my registrar's
DNS servers, and &lt;code&gt;certbot&lt;/code&gt; to get a new certificate through Let's Encrypt. Now
I can hook it up to cron again and wash my hands of it. I'm glad that having a
partial certificate chain, and enough time between issuances was enough to get
me back on track and not need any extra configuration or tweaking.&lt;/p&gt;
&lt;p&gt;Later in the evening, &lt;code&gt;php-fpm&lt;/code&gt; was brought up and, with it, the wiki is now 
online! Next in line are cgit/gitolite and mumble. Then we'll only have one 
service left to bring up...&lt;/p&gt;
&lt;h1&gt;January 23rd, 2024&lt;/h1&gt;
&lt;p&gt;I did some admin configuration behind the scenes to formalize system structure. 
It was smaller than I thought it was, which is a sign that I'm doing things 
correctly.&lt;/p&gt;
&lt;p&gt;Due to the way Gentoo packages webapps -- and my complete lack of need for 
virtual hosts and other crap their tooling does, like needing versioned 
directories -- I compiled cgit myself and just threw it in a folder somewhere.&lt;/p&gt;
&lt;p&gt;To be fair, Gentoo generally packages things in a decent manner, so when I have 
the time and patience I may revisit &lt;code&gt;webapp-config&lt;/code&gt;. For now, I just set the 
vhost provider to lighttpd so it stopped yelling at me about apache2.&lt;/p&gt;
&lt;h1&gt;January 25th, 2024&lt;/h1&gt;
&lt;p&gt;Cgit was installed and hooked up to Gitolite. I verified that I could push 
commits, and Cgit was displaying the 'About' page correct, after telling it to 
use my own &lt;code&gt;cm2html&lt;/code&gt; which calls &lt;code&gt;mistletoe&lt;/code&gt; instead of &lt;code&gt;markdown&lt;/code&gt;.&lt;/p&gt;
&lt;h1&gt;January 26th, 2024&lt;/h1&gt;
&lt;p&gt;It felt good to make some progress with relatively little effort, so I restored 
the Postgres cluster from a &lt;code&gt;.sql&lt;/code&gt; backup and verified the data was present and 
ready to be interacted with.&lt;/p&gt;
&lt;h1&gt;January 27th, 2024&lt;/h1&gt;
&lt;p&gt;The database restore made MantisBT work almost immediately, so that was 
encouraging!&lt;/p&gt;
&lt;p&gt;The final task, Nextcloud, took a number of days before I succeeded. Nextcloud
23 supports PHP 7.3, 7.4, and 8.0. The Gentoo install was on 8.1, and none of 
the 7.x series was available. So, I needed a way to run Nextcloud &lt;em&gt;juuuuust long
enough&lt;/em&gt; to get to a Nextcloud version that supports PHP 8.1. So, I tried with a
third party overlay to install PHP in an older SLOT, because Gentoo is cool and
can do that. Sadly, that did not work.&lt;/p&gt;
&lt;p&gt;I'm not shy on the command line, so the journey began to build OpenSSL, PHP, and
APCu outside of the Portage tree (generally not recommended). I installed things
to &lt;code&gt;/opt&lt;/code&gt;, customized a few things, and... partial success? &lt;code&gt;occ&lt;/code&gt; didn't quite
work yet but a &lt;code&gt;phpinfo();&lt;/code&gt; page worked mostly fine. We're getting there!&lt;/p&gt;
&lt;p&gt;Across the 28th through the 30th, I wrestled with dependencies and other things
that were needed, until eventually the &lt;code&gt;occ&lt;/code&gt; command worked and I was able to
upgrade to Nextcloud 24, which supports PHP 8.1!&lt;/p&gt;
&lt;h1&gt;January 31st, 2024&lt;/h1&gt;
&lt;p&gt;The circus continues as I tried to mitigate each new tiny problem that came up. 
The funniest took me some digging. Across the 6 or 7 rebuilds of PHP (each 
taking at least two hours), I learned that Nextcloud stores passwords with 
different crypto functions, and missing any of those functions makes login 
break! Why this isn't covered by its dependencies, I'll never know. BUT, be sure 
to enable &lt;code&gt;argon2&lt;/code&gt; in PHP if your Nextcloud logins don't work! I ended up 
locking myself out and having to disable bruteforce detection for my local IP 
for a bit before I found and fixed the password issue.&lt;/p&gt;
&lt;p&gt;In the end, &lt;strong&gt;all data was okay and the server is in better shape now than it 
was before the event&lt;/strong&gt;. But, because Nextcloud itself took nearly a week to get 
working, that is the first piece of software I'm targeting for removal should I 
have to do this dance again. There's no excuse for something like a webapp to be 
that difficult to put together and maintain as an admin.&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Ultimately, I could not determine the root cause of the SMART errors. The drive 
had operated for around 30,000 hours across 3.5 years. I'm not sure
if that's a good run or not, for a dinky little laptop drive. Vibrations from
loud speakers &lt;em&gt;could&lt;/em&gt; create the physical damage needed to eventually render
the drive useless, but without greater access to tooling and a means to test, I
cannot form a confident conclusion.&lt;/p&gt;
&lt;p&gt;A few days after I discovered the problem, the drive failed to spin up. I don't
know what any next steps would be for data recovery, but I'm confident that if
anyone lost files, it was me, and only files or changes since December
1st, 2023. I'll hold onto it until I get the gumption to take a hammer to it. If 
anyone has ideas on further inspection before I destroy it, hit me up.&lt;/p&gt;
&lt;p&gt;We'll just go forward with what we have. I apologize for such a lengthy outage.
I would have fixed it sooner if real life hadn't been so adamant at getting in
the way of things that are important to me. Keeping Nextcloud upgraded will 
prevent me needing to manually compile things in the future. &lt;em&gt;The website is 
here, and that's all that matters.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I'm available for hire if anyone needs an administrator or someone who isn't 
afraid to get their hands dirty in the command line.&lt;/p&gt;</content><category term="Life"/><category term="Life"/><category term="downtime"/><category term="Linux"/><category term="PHP"/></entry><entry><title>12-in-12, 2024 Edition</title><link href="https://zlg.space/blog/12-in-12-2024-edition.html" rel="alternate"/><published>2024-01-06T00:00:00-08:00</published><updated>2025-01-12T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2024-01-06:/blog/12-in-12-2024-edition.html</id><summary type="html">&lt;p&gt;What's up guys? It's time for my FOURTH 12-in-12, the initiative to beat
&lt;strong&gt;twelve games in twelve months&lt;/strong&gt; and take out the backlog! Newbies to this
concept can check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;; then you'll get
what's up here. Also check out &lt;a href="https://zlg.space/blog/12-in-12-2023-edition.html"&gt;last year's 12-in-12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As always, here's the successful hit list for 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TMNT III: Radical Rescue [GB]&lt;/li&gt;
&lt;li&gt;Sonic CD [Sega CD]&lt;/li&gt;
&lt;li&gt;Factorio [Steam]&lt;/li&gt;
&lt;li&gt;Final Fantasy Adventure [GB]&lt;/li&gt;
&lt;li&gt;MagiCat [Switch]&lt;/li&gt;
&lt;li&gt;Yoku's Island Express [Switch]&lt;/li&gt;
&lt;li&gt;Hades [Switch]&lt;/li&gt;
&lt;li&gt;The Misadventures of Tron Bonne [PS1]&lt;/li&gt;
&lt;li&gt;Persona 5 [PS3]&lt;/li&gt;
&lt;li&gt;Resident Evil 2 Remake [Steam]&lt;/li&gt;
&lt;li&gt;Narita Boy [Switch]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That makes for &lt;em&gt;eleven&lt;/em&gt; games this year! Not quite hitting the mark, but we're 
still on track to clear this backlog! There are some stats at the end of the 
post, if you're into that sorta thing.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;What's up guys? It's time for my FOURTH 12-in-12, the initiative to beat
&lt;strong&gt;twelve games in twelve months&lt;/strong&gt; and take out the backlog! Newbies to this
concept can check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;; then you'll get
what's up here. Also check out &lt;a href="https://zlg.space/blog/12-in-12-2023-edition.html"&gt;last year's 12-in-12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As always, here's the successful hit list for 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TMNT III: Radical Rescue [GB]&lt;/li&gt;
&lt;li&gt;Sonic CD [Sega CD]&lt;/li&gt;
&lt;li&gt;Factorio [Steam]&lt;/li&gt;
&lt;li&gt;Final Fantasy Adventure [GB]&lt;/li&gt;
&lt;li&gt;MagiCat [Switch]&lt;/li&gt;
&lt;li&gt;Yoku's Island Express [Switch]&lt;/li&gt;
&lt;li&gt;Hades [Switch]&lt;/li&gt;
&lt;li&gt;The Misadventures of Tron Bonne [PS1]&lt;/li&gt;
&lt;li&gt;Persona 5 [PS3]&lt;/li&gt;
&lt;li&gt;Resident Evil 2 Remake [Steam]&lt;/li&gt;
&lt;li&gt;Narita Boy [Switch]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That makes for &lt;em&gt;eleven&lt;/em&gt; games this year! Not quite hitting the mark, but we're 
still on track to clear this backlog! There are some stats at the end of the 
post, if you're into that sorta thing.&lt;/p&gt;


&lt;h1&gt;January&lt;/h1&gt;
&lt;h2&gt;A Radical Finale&lt;/h2&gt;
&lt;p&gt;I started the year off with a bang, finishing Donkey Kong Country 3's 103% with 
a friend. I've already beaten that game, however, so it wasn't quite the 
accomplishment it could have been. That said, a day or two later I started and 
finished &lt;strong&gt;TMNT III: Radical Rescue&lt;/strong&gt; [GB]! This marks the final game that I 
needed to beat as part of the &lt;em&gt;Cowabunga Collection&lt;/em&gt; that I got last year.&lt;/p&gt;
&lt;p&gt;It's a neat Metroidvania for the original GameBoy which somehow lends a special 
ability to each turtle, has a world that makes use of those abilities, and even 
a few collectibles to motivate you to explore.&lt;/p&gt;
&lt;p&gt;The extensive use of one-way doors and unfair enemy positioning makes the game 
begin to get tedious toward the end, and the hitboxes for boss attacks are 
laughably aggressive in their disproportional power. You hit them for a single 
bar of damage, while they hit for 2 or 3! The gameplay boils down to locating 
keycards to open doors, which lead to bosses. Defeat bosses to get keys which 
will free each of the missing characters. Very basic design.&lt;/p&gt;
&lt;p&gt;There are also only four collectibles that you can miss, so this may be the 
longest, but also shortest game I've 100%ed. Considering it took me about 3 
hours to 100%, but there only being 4 collectibles, it's in a weird place of 
"you didn't do much extra compared to a basic playthrough" but also "it turns 
out this game isn't actually lengthy".&lt;/p&gt;
&lt;p&gt;For what it is and the time period, it's impressive. I would love to see a 
studio do a modern take on a Turtles Metroidvania. There's a lot of potential.&lt;/p&gt;
&lt;h2&gt;Gotta Go Fast&lt;/h2&gt;
&lt;p&gt;I picked up &lt;em&gt;Sonic Origins&lt;/em&gt; [Switch] in January, just to relive the classic 
Sonic games with some upgrades. It turns out the "Plus" part in the physical 
release is just a code for the DLC! Talk about misleading...&lt;/p&gt;
&lt;p&gt;Anyways, I've beaten the main 4 games in the series, but didn't remember if I 
beat Sonic CD or not. Well, with Origins now I have! So we'll count that as 
beating Sonic CD, rather than Origins entirely, since it's a collection.&lt;/p&gt;
&lt;h1&gt;February&lt;/h1&gt;
&lt;p&gt;I spent a lot of the month playing classics, but also chipping away at the goals 
in &lt;em&gt;Factorio&lt;/em&gt;! It's a mind-absorbing automation sim where you try to escape a 
planet you crash on by... building another rocket from scratch, of course!&lt;/p&gt;
&lt;p&gt;To say that this game has infected my mind would be an understatement. I've 
learned about various real world engineering things simply because the way 
Factorio has you do them is &lt;em&gt;really similar&lt;/em&gt; to how it's done in the real world. 
I can build train networks, automated warehouses, wagons with fricken 
&lt;em&gt;artillery&lt;/em&gt; on them...&lt;/p&gt;
&lt;p&gt;Honestly, if you bounced off of Minecraft or Terraria, Age of Empires or 
Starcraft, give this one a shot. It has many different play options, many 
different technology trees to go down, and a steadily increasing difficulty that 
doesn't feel too harsh on its default setting.&lt;/p&gt;
&lt;p&gt;The developers of this game stood out because they don't offer it on sale. Ever. 
I scoffed at this idea, but after experiencing how many different interlocking 
gameplay and resource systems there were... I'm amazed at how well everything 
runs, considering the level of complexity happening. It deserves every penny of 
the $35 USD I paid for it.&lt;/p&gt;
&lt;p&gt;For better or worse it's still getting new content, but it seems to be QoL or 
advanced interaction stuff, which is still important but feels like the 
refinement stage. I approve of this sort of stuff.&lt;/p&gt;
&lt;p&gt;If I could change things about Factorio, I would lean into the Landfill and get
into Terraforming. It's nice that we can lay stone down, and concrete, but we
can't dig trenches (to put water in) or build cliffs. Being able to do those
things would greatly add to the base planning capabilities of the game and give
the player a lot of defensive control.&lt;/p&gt;
&lt;p&gt;The team at WuBe has more locales in the making, so that's exciting! Imagine 
playing on a planet where there's lava, or more biomes for the standard planet!&lt;/p&gt;
&lt;p&gt;Anyways, it's a great game and you should get it if you appreciate design and 
automation in any capacity. It's multiplayer, too!&lt;/p&gt;
&lt;h1&gt;March&lt;/h1&gt;
&lt;h2&gt;The Beginning of Mana&lt;/h2&gt;
&lt;p&gt;I had played this a long time ago when I borrowed my brother's copy, but I 
recently finished &lt;em&gt;Final Fantasy Adventure&lt;/em&gt; [GB], which is also known as 
&lt;em&gt;Adventures of Mana&lt;/em&gt; or &lt;em&gt;Sword of Mana&lt;/em&gt;, if you're playing the GBA version. I 
played through on &lt;em&gt;Collection of Mana&lt;/em&gt;, for the Switch, which uses the original 
GB version.&lt;/p&gt;
&lt;p&gt;Considering that it came out in 1991, FFA is a &lt;em&gt;fantastic&lt;/em&gt; Action/RPG that 
captures the feeling of a fantasy game quite well. Its story is simplistic, but 
considering the time of its release, it avoided a lot of pitfalls that other 
classic RPGs missed.&lt;/p&gt;
&lt;p&gt;One of the things that stands out to me is, you can 100% the game through a pure 
intuitive exploration of the world. I ventured out when it was time to find the 
final sword of the game, and ended up learning two spells and fighting two 
bosses that the story was going to send me on later anyway. It felt nice to not 
need to go back and do anything; the game keeps its dungeons self-contained and 
doesn't rely on backtracking until the very end of the game.&lt;/p&gt;
&lt;p&gt;The title screen music is part of what makes this game stick with me. It tells 
such a simple little fantasy story, but holds within a deep (for its time) and 
fun action game!&lt;/p&gt;
&lt;p&gt;There are really only two or three things I would fix in this game to make it
top-tier for its age: faster text option, better enemy placements (just don't
spawn on top of me or block the entrance, please?), and let the Bone Key double
as a skeleton key for the entire game. By that point, the player's earned it.
Just give it to them. It would make the post-waterfall portion much better and
not force the player to farm skellies for keys in the final area. That was the
only thing that slowed me down to a degree strong enough to be annoying.&lt;/p&gt;
&lt;p&gt;Anyways, if you like action RPGs, you owe it to yourself to at least play for
a few hours. Part of why this game is a big deal is because it came out before
Nintendo's &lt;em&gt;Zelda: A Link to the Past&lt;/em&gt; and &lt;em&gt;Zelda: Link's Awakening&lt;/em&gt;, so they
were paving new ground in terms of equippable weapons and magic, and in puzzles
more complex than pushing a block.&lt;/p&gt;
&lt;h1&gt;July&lt;/h1&gt;
&lt;h2&gt;Magical Cats?&lt;/h2&gt;
&lt;p&gt;After some considerable determination, I finished up &lt;em&gt;MagiCat&lt;/em&gt;, on Switch. I 
think this was originally a mobile game. It shows due to its increasing 
punishments for death, rather high skill floor, and mechanics that overall feel 
like it was meant to be padding. There are some great gameplay ideas here, but 
they're all missing that extra polish that makes them feel comfortable.&lt;/p&gt;
&lt;p&gt;One mechanic that stands out is the spirit cat ability. MagiCat stands on a 
button, and can direct a spirit around, which can attack ethereal enemies while 
his corporeal form cannot. Why do both the spirit and the physical 
body have hurtboxes while this power is activated?&lt;/p&gt;
&lt;p&gt;Another: There's a mechanic where you stand on a button, and a series of blocks 
that you can steer come out from somewhere. Why can you move around while these 
blocks are reading your input, and why is the time limit for their disappearing 
so short? This isn't a "git gud" complaint; some of the level design for these 
mechanics is overly punishing and it feels like not much testing went into 
making these levels more feasible to No Damage or even No Dash.&lt;/p&gt;
&lt;p&gt;If MagiCat was my game, I would tone down a few of the frame traps and 
near-pixel-perfect jumps needed to get red jewels, and provide a way for players 
to backtrack in the level, where applicable. Games that only allow you to move 
forward were common &lt;em&gt;in the 1980s&lt;/em&gt;. Platformers can do better now!&lt;/p&gt;
&lt;p&gt;Bosses are another source of frustration. Every level has a boss that's 
a twist on an existing enemy. While the extra effort of bosses is appreciated, 
it became stale quickly. I preferred the end-of-world bosses, but the difficulty 
for them was also tuned for a mobile game and frustrate you so you'll play more 
and get some paw prints in prior levels.&lt;/p&gt;
&lt;p&gt;With just a &lt;em&gt;little&lt;/em&gt; tuning, this game can redeem itself while still retaining 
99% of its current content. The level design and enemy design need work. The 
end-of-level bosses shouldn't be there and it can have a mini-game or other 
simple reward instead. The cost for death should also be more reasonable. 
Doubling every death until you take 32 paw prints is kind of overkill. (so is 16 
with the item)&lt;/p&gt;
&lt;p&gt;I'm relieved to finish this game, which is disappointing because I went into it
thinking it was cute and fun. I still like some of the mechanics and abilitiess,
like dashing upward! I discovered by accident you can heal by pressing down and
X, so that's nice too.&lt;/p&gt;
&lt;h2&gt;A Bug-driven Postal Service&lt;/h2&gt;
&lt;p&gt;The next target was &lt;em&gt;Yoku's Island Express&lt;/em&gt;, on Switch. It took a little 
patience, but it was worth it. It's a fun, light-hearted pinball and 
Metroidvania fusion. I really enjoyed the different ways to manipulate the 
pinball, on top of the movement of Yoku himself. The customizable ball sprinkles 
were cool, and some of the sidequests weren't half bad. I finished the game at 
97% even though I collected basically everything, so there's probably some small 
quests leftover or something. Still, it was a solid game and I'm glad I played 
through it. If you like both pinball and Metroidvanias, give it a whirl.&lt;/p&gt;
&lt;h2&gt;A Dark and Treacherous Ascent&lt;/h2&gt;
&lt;p&gt;Lucky me, I managed to clear &lt;em&gt;Hades&lt;/em&gt; for Switch. It's an interesting roguelike 
that innovates in the storytelling department. It rewards continued play, but at 
a rate that is less than ideaal for my liking. Even after clearing the game 
once, I will need to clear it multiiple times in order to get a "true" ending. 
While it was a great romp, and new gameplay options are opened up, I'm rather 
weary of the mechanics I had to endure to get where I am now. I assume the more 
readily available diamonds and Titan Bloods will make subsequent runs a bit 
easier, but for now I'm walking away from the game due to tedium. I feel that 
this game, like &lt;em&gt;Blasphemous&lt;/em&gt;, is one whose sequels I will likely be skipping 
out on.&lt;/p&gt;
&lt;h1&gt;August&lt;/h1&gt;
&lt;p&gt;It had been percolating for a little while, but I finally finished &lt;em&gt;The 
Misadventures of Tron Bonne&lt;/em&gt;, for PS1.&lt;/p&gt;
&lt;p&gt;It's a fun and cute game where you're essentially paying off a debt to get your 
family members back who've been taken hostage, but you do various missions with 
your Servbots to earn the money and get the upgrades you need to confront Mr.
Loath. In-between, there are fetch-quests, mini-games and scouting to improve
your Servbots, and conversing with all of your minions.&lt;/p&gt;
&lt;p&gt;I finished the game in about 15 and half hours. Not too shabby, and there's more 
that I haven't done, like the Casino level.&lt;/p&gt;
&lt;p&gt;I will say that the mini-games for building Servbot stats are too strict. The 
Attack-building one isn't all that terrible, but it still depends on getting at 
least one pie and bazooka for the last level. I could barely manage the second 
series of levels in the food serving mini-game.&lt;/p&gt;
&lt;p&gt;Overall, I'm glad I played it despite the jank. The world of &lt;em&gt;Mega Man Legends&lt;/em&gt; 
has so much potential, I'm still sad about MML3...&lt;/p&gt;
&lt;h1&gt;October&lt;/h1&gt;
&lt;h2&gt;Becoming a Phantom Thief&lt;/h2&gt;
&lt;p&gt;The push for Playstation games continues! I picked up &lt;em&gt;Persona 5&lt;/em&gt; for the PS3 
back in 2018, played it to level 7, and never got around to picking it back up 
until this year. My girlfriend wanted to experience it with me, so most of our 
time this year was spent watching movies, or playing this game.&lt;/p&gt;
&lt;p&gt;It was a wonderful JRPG, telling a story that I think most people can relate to; 
of fighting injustice and fighting for those who can't fight for themselves. 
It's a game of self-discovery, reflection, and tenacity. It shocked, angered, 
surprised, intimidated, elated, and even tore at my heart.&lt;/p&gt;
&lt;p&gt;Across the game, you and your plucky gang of misfits face up to a sexual 
predator, con artist, blackmailer, gang leader, and even a malevolent god. Each 
stage of progression makes you feel closer to each of your teammates, not as 
sit-in avatars for mooks on a battlefield, but as somewhat believable and 
relatable characters. I feel like everyone who plays Persona 5 will find someone 
in its cast that they most closely resemble, be it in attitude, life 
circumstances, or personal challenges.&lt;/p&gt;
&lt;p&gt;It's not for the faint of heart, though. This game will trigger people who have 
been through trauma, if they aren't prepared to think about fictional characters 
going through things. Personally, I found it reasonable and found it to be a 
great opportunity to reflect on the feelings characters made me feel.&lt;/p&gt;
&lt;p&gt;Futaba in particular struck my heart to its core. To say that I relate to her 
life experience is an understatement. Without any spoilers, I think anyone with 
a troubled childhood will have trouble making it through her story arc with dry 
eyes.&lt;/p&gt;
&lt;p&gt;Not ashamed to admit I cried a few times. Only the truly great games will make 
me do that anyway. &lt;em&gt;Persona 5&lt;/em&gt; has left an unforgettable mark on me. When I get 
the time to percolate more thoughts, you can look forward to a review. A story 
that's over 100 hours long deserves more than a mention on a timely listicle.&lt;/p&gt;
&lt;h2&gt;Becoming a Real Cop&lt;/h2&gt;
&lt;p&gt;Not even a full day later, I wrapped up the end of &lt;em&gt;Resident Evil 2 Remake&lt;/em&gt; on 
Steam. Apparently, when I paused playing in 2019, I was only two bosses away 
from the end! It feels great to wrap up a long-standing game right after a 
really long game. It was a satisfying and atmospheric game that I'll come back 
to some day to play through as Claire.&lt;/p&gt;
&lt;h1&gt;December&lt;/h1&gt;
&lt;h2&gt;Becoming a Narita Boy&lt;/h2&gt;
&lt;p&gt;The next game I finished up was &lt;em&gt;Narita Boy&lt;/em&gt; for the Switch. It's a decent 
action-platformer with basic puzzles, but a wonderful story and great art 
direction. It tells the heartfelt story of a man's life and how he turned 
tragedy into a legacy for his son. Except, you're in a digital world on the 
verge of total ruin and you're tasked with saving it, with no context.&lt;/p&gt;
&lt;p&gt;I really enjoyed the storytelling in this one, and the graphics. Unfortunately, 
the gameplay isn't as tight as I'd prefer, enemies and mechanics are a little 
too simple, and you can't go back to get any of the four missable collectibles 
in the game. Your choices are "watch the missing memory on Youtube" or replay 
the game entirely for a single paragraph of text. I'm glad I didn't do a second 
playthrough for such a small reward, but the story itself was cool. It was a 
worthwhile game that has left an impression on me, which is the best kind of 
game purchase if you ask me.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Sadly, I wasn't able to beat twelve games in 2024. However, we finished the 
&lt;em&gt;gargantuan&lt;/em&gt; Persona 5, which was one of the big JRPGs on the list. I also took 
the liberty to tally up my progress since blogging about 12-in-12:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2021, 16 games;&lt;/li&gt;
&lt;li&gt;2022, 4 games;&lt;/li&gt;
&lt;li&gt;2023, 18 hames;&lt;/li&gt;
&lt;li&gt;2024, 11 games.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This puts my total at &lt;strong&gt;49 games over four years&lt;/strong&gt;. At one game per month, that 
puts me &lt;em&gt;one month ahead&lt;/em&gt; of my projected progress at this point! There are 
still many more games to beat. I can't stop now!&lt;/p&gt;</content><category term="Video Games"/><category term="Video Games"/><category term="12-in-12"/></entry><entry><title>Vim Author Bram Moolenaar Has Died</title><link href="https://zlg.space/blog/vim-author-bram-moolenaar-has-died.html" rel="alternate"/><published>2023-08-05T12:38:00-07:00</published><updated>2023-08-05T12:38:00-07:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2023-08-05:/blog/vim-author-bram-moolenaar-has-died.html</id><summary type="html">&lt;p&gt;I woke up to a &lt;a href="https://lobste.rs/s/yrlb5m/message_from_family_bram_moolenaar_he"&gt;huge&lt;/a&gt; &lt;a href="https://news.slashdot.org/story/23/08/05/1632219/vims-creator-bram-moolenaar-dies-at-age-62"&gt;gut&lt;/a&gt; &lt;a href="https://news.ycombinator.com/item?id=37011324"&gt;punch&lt;/a&gt; this
morning: &lt;a href="https://groups.google.com/g/vim_announce/c/tWahca9zkt4"&gt;Bram Moolenaar, legendary author of the Vim text editor, has passed
away&lt;/a&gt;. Given the occasion, I want to express some thoughts
regarding both Bram and his software. Without his work, I'm not sure I would be
the same person.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;I woke up to a &lt;a href="https://lobste.rs/s/yrlb5m/message_from_family_bram_moolenaar_he"&gt;huge&lt;/a&gt; &lt;a href="https://news.slashdot.org/story/23/08/05/1632219/vims-creator-bram-moolenaar-dies-at-age-62"&gt;gut&lt;/a&gt; &lt;a href="https://news.ycombinator.com/item?id=37011324"&gt;punch&lt;/a&gt; this
morning: &lt;a href="https://groups.google.com/g/vim_announce/c/tWahca9zkt4"&gt;Bram Moolenaar, legendary author of the Vim text editor, has passed
away&lt;/a&gt;. Given the occasion, I want to express some thoughts
regarding both Bram and his software. Without his work, I'm not sure I would be
the same person.&lt;/p&gt;


&lt;h1&gt;How I found Vim&lt;/h1&gt;
&lt;p&gt;On a wintry Wisconsin night in 2004, I was looking for better, more customizable
software. I was a teenager, learning about alternative OSes and losing patience
with Windows every passing day. I had started getting more serious about
learning web development, and began trying different text editors, to see what
was to my taste. As we all know, Notepad on Windows is &lt;em&gt;NOT&lt;/em&gt; sufficient for 
programming.&lt;/p&gt;
&lt;p&gt;On this path of discovering text editors, I stumbled across all sorts of things,
from UltraEdit to metapad, Notepad++, gedit, AceHTML, Emacs, and eventually I
found this free software called "vim", but it came with some newbie-friendly
settings, called &lt;a href="https://cream.sourceforge.net/"&gt;Cream&lt;/a&gt;. (I was surprised to see it's still around!) One
thing that stood out to me about Vim, at the time, was the fact I didn't have
to enter some weird licensing scheme. I didn't have to pay to unlock features,
and the big thing was -- if I wanted to help, I could donate to a charity that
actually helped people! That stuck with me, morally. "Huh, all these companies
are making software for profit, but this guy from Europe just wants me to help
some less fortunate people. That's awesome."&lt;/p&gt;
&lt;p&gt;I would not realize it until years later, but discovering Vim was a key step in
my journey to libre software and GNU/Linux. Had I not been looking for a free,
customizable text editor to do what I wanted, it may have delayed or slowed my
introduction to that world.&lt;/p&gt;
&lt;h1&gt;How I Use Vim Today&lt;/h1&gt;
&lt;p&gt;These days, I keep a small group of plugins (mostly things like &lt;code&gt;fugitive&lt;/code&gt;,
&lt;code&gt;tabular&lt;/code&gt;, &lt;code&gt;sparkup&lt;/code&gt;, and some syntax stuff), a hefty &lt;code&gt;vimrc&lt;/code&gt; with keyboard
layout switching capabilities, and there's almost always a Vim process open on
my machines. It earned a place as my favorite piece of software when I learned
how easy it is to extend its behavior. No other piece of software evolves &lt;em&gt;with&lt;/em&gt;
me and my skill level like Vim does.&lt;/p&gt;
&lt;p&gt;I love Vim's documentation system the most, I think. If there's anything I don't 
know about Vim, I can consult &lt;code&gt;:help&lt;/code&gt; and get answers &lt;em&gt;immediately&lt;/em&gt;. For 
anything else, there is a broad community of fellow &lt;em&gt;text-heads&lt;/em&gt; out there, who 
might even have saved a fricken macro for the task you're trying to achieve.&lt;/p&gt;
&lt;p&gt;Each time I learn something new about Vim, I feel like I've unlocked a new 
ability, or added a new text wrangling tool to my belt. This, in turn, improves 
my ability to manipulate text and makes the editing experience that much better.&lt;/p&gt;
&lt;h1&gt;The Future of Vim&lt;/h1&gt;
&lt;p&gt;It seems that Bram had tapped a successor, in some way, before he died, but
the state of things with the Vim project seem to indicate his death was not
&lt;em&gt;expected&lt;/em&gt;, per se, though he had been ill for a few months prior to his death.
It is sad to see another one of the "original breed" of FOSS hackers pass on.
It stands as a reminder of how little time we really have on this rock, and the
importance of choosing goals that one can look back on with pride. I hope that
the new primary author and maintainer, Christian Brabandt, leads the project
with the same core values that Bram did. &lt;a href="https://groups.google.com/g/vim_dev/c/6_yWxGhB_8I/m/ibserACYBAAJ"&gt;Christian expresses his thoughts in 
the Google Groups thread.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vim is the reason I discovered the Free Software movement. It's the software
that I use most in my day-to-day computing. How strange, that a journey for a
good text editor led to me discovering an entire social movement of hackers that
I still hover around to this day, nearly 20 years later. Thank you, Bram, for
bringing joy to my computing and rewarding every new morsel of knowledge I gain
about this beautiful tool.&lt;/p&gt;
&lt;p&gt;I have nothing but condolences for the Moolenaar family in their time of 
grieving. I hope their hearts are made lighter by the worldwide celebration 
of Bram's wonderful work, and the many testimonies people are publishing today 
which show how influential he was. We are all privileged to have received his 
work.&lt;/p&gt;
&lt;p&gt;Please consider donating to &lt;a href="http://iccf.nl/news.html"&gt;ICCF Holland&lt;/a&gt; if you wish to leave a token of
appreciation for Bram. It's what he would ask for.&lt;/p&gt;</content><category term="Software"/><category term="Software"/><category term="Vim"/><category term="Libre Software"/><category term="Major Events"/></entry><entry><title>12-in-12, 2023 Edition</title><link href="https://zlg.space/blog/12-in-12-2023-edition.html" rel="alternate"/><published>2023-04-19T00:00:00-07:00</published><updated>2024-01-19T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2023-04-19:/blog/12-in-12-2023-edition.html</id><summary type="html">&lt;p&gt;What's up guys? It's time for yet another 12-in-12, the initiative to beat
&lt;strong&gt;twelve games in twelve months&lt;/strong&gt; and take out the backlog! Newbies to this
concept can check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;; then you'll get
what's up here. Also check out &lt;a href="https://zlg.space/blog/12-in-12-2022-edition.html"&gt;last year's 12-in-12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As always, here's the successful hit list for 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dark Souls [PS3]&lt;/li&gt;
&lt;li&gt;Marble it Up [Switch]&lt;/li&gt;
&lt;li&gt;FAST rmx [Switch]&lt;/li&gt;
&lt;li&gt;Zelda: Tears of the Kingdom [Switch]&lt;/li&gt;
&lt;li&gt;Terraria [Steam]&lt;/li&gt;
&lt;li&gt;TMNT: Shredder's Revenge [Switch]&lt;/li&gt;
&lt;li&gt;BIT.TRIP RUNNER [Steam/PC]&lt;/li&gt;
&lt;li&gt;Cogs [Steam/PC]&lt;/li&gt;
&lt;li&gt;Furi [Switch]&lt;/li&gt;
&lt;li&gt;Geometry Wars 3 [PS3]&lt;/li&gt;
&lt;li&gt;Symphony [Steam]&lt;/li&gt;
&lt;li&gt;Bloodstained: Ritual of the Night [Switch]&lt;/li&gt;
&lt;li&gt;Super Mario Bros. Wonder [Switch]&lt;/li&gt;
&lt;li&gt;Castlevania: Dracula X [SNES]&lt;/li&gt;
&lt;li&gt;TMNT: Tournament Fighters [NES]&lt;/li&gt;
&lt;li&gt;TMNT: Tournament Fighters [SNES]&lt;/li&gt;
&lt;li&gt;TMNT: Tournament Fighters [Genesis]&lt;/li&gt;
&lt;li&gt;TMNT 2: Back From the Sewers [GB]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(yep, those TMNT games are each different!)&lt;/p&gt;
&lt;p&gt;That's a total of &lt;strong&gt;eighteen games beaten&lt;/strong&gt; this year! Huzzah!&lt;/p&gt;
</summary><content type="html">&lt;p&gt;What's up guys? It's time for yet another 12-in-12, the initiative to beat
&lt;strong&gt;twelve games in twelve months&lt;/strong&gt; and take out the backlog! Newbies to this
concept can check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;; then you'll get
what's up here. Also check out &lt;a href="https://zlg.space/blog/12-in-12-2022-edition.html"&gt;last year's 12-in-12&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As always, here's the successful hit list for 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dark Souls [PS3]&lt;/li&gt;
&lt;li&gt;Marble it Up [Switch]&lt;/li&gt;
&lt;li&gt;FAST rmx [Switch]&lt;/li&gt;
&lt;li&gt;Zelda: Tears of the Kingdom [Switch]&lt;/li&gt;
&lt;li&gt;Terraria [Steam]&lt;/li&gt;
&lt;li&gt;TMNT: Shredder's Revenge [Switch]&lt;/li&gt;
&lt;li&gt;BIT.TRIP RUNNER [Steam/PC]&lt;/li&gt;
&lt;li&gt;Cogs [Steam/PC]&lt;/li&gt;
&lt;li&gt;Furi [Switch]&lt;/li&gt;
&lt;li&gt;Geometry Wars 3 [PS3]&lt;/li&gt;
&lt;li&gt;Symphony [Steam]&lt;/li&gt;
&lt;li&gt;Bloodstained: Ritual of the Night [Switch]&lt;/li&gt;
&lt;li&gt;Super Mario Bros. Wonder [Switch]&lt;/li&gt;
&lt;li&gt;Castlevania: Dracula X [SNES]&lt;/li&gt;
&lt;li&gt;TMNT: Tournament Fighters [NES]&lt;/li&gt;
&lt;li&gt;TMNT: Tournament Fighters [SNES]&lt;/li&gt;
&lt;li&gt;TMNT: Tournament Fighters [Genesis]&lt;/li&gt;
&lt;li&gt;TMNT 2: Back From the Sewers [GB]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(yep, those TMNT games are each different!)&lt;/p&gt;
&lt;p&gt;That's a total of &lt;strong&gt;eighteen games beaten&lt;/strong&gt; this year! Huzzah!&lt;/p&gt;


&lt;h1&gt;April&lt;/h1&gt;
&lt;p&gt;I spent the first few months of the year dabbling in classics, but &lt;em&gt;Dark Souls&lt;/em&gt;
[PS3] had hung out in my backlog -- with an unfinished save -- since 2016! I
decided to push through it, while streaming, and it turned out to be a great
experience. I may come back to it some day, but I'm beginning to see flaws in
the structure of the Soulslike genre. I think a little more work could be put
into discoverability, but the art direction and world building is stellar. It
has absolutely earned its place as a classic and I'll never forget my first time
through.&lt;/p&gt;
&lt;p&gt;I also picked up &lt;em&gt;Marble it Up&lt;/em&gt; [Switch] in March and finished it in April, so
despite the drought in game progress since &lt;em&gt;Box Pusher&lt;/em&gt; in 2022, it feels good
to knock out a long-running, 100+ hour RPG. Those are the true phantoms of a
backlog, right?&lt;/p&gt;
&lt;p&gt;Toward the end of the month, I knocked out the last of the cups I needed to
finish in &lt;em&gt;FAST rmx&lt;/em&gt; on the Switch. It's a great racing game if you're looking
for edge-of-your-seat, white-knuckle driving! I got it years ago, but lacked the
grit to finish out the races (placing at least 3rd) until recently. I'll come
back to it from time to time, like I do most racing games that I hold onto.&lt;/p&gt;
&lt;h1&gt;June&lt;/h1&gt;
&lt;p&gt;After picking it up on release day in May, I finished &lt;em&gt;Zelda: Tears of the
Kingdom&lt;/em&gt; [Switch], a game I'd been anticipating for six years! There is a
whirlwind of thoughts in my head for this game, and it's definitely changed
how I view video games, and the Zelda series as a whole. I correctly predicted
that we're getting a third game: the plot lends itself to a continuation for
this pair of protagonists. I give it a year max before Nintendo announces work
on a third game. Overall, TotK was a wonderful romp, but a kind reminder that
I'm getting too old for certain genres that require huge blocks of time to get
anywhere in. There are still some sidequests and collections to complete, but
I've done all the shrines and exposed all the map, and most of the equipment is
found too. I hope the next Zelda leans less on device-building and open world
mechanics.&lt;/p&gt;
&lt;h1&gt;July&lt;/h1&gt;
&lt;p&gt;At the beginning of the month, my partner and I finished up &lt;em&gt;Terraria&lt;/em&gt; [Steam]!
We ended up cheesing through some parts using the Builder's Workshop, but
everything we skipped was essentially farming and repeating stuff we had already
done. We still beat bosses and crafted ingredients legitimately.&lt;/p&gt;
&lt;p&gt;Having beaten both &lt;em&gt;Terraria&lt;/em&gt; and &lt;em&gt;Minecraft&lt;/em&gt;, I'm solidly convinced that
sandboxes and crafting/survival games are not my cup of tea. They're two of the
most famous and popular games in the genre, and I'm walking away from them
rather disappointed in all the time I spent doing what amounts to busy work.&lt;/p&gt;
&lt;p&gt;In &lt;em&gt;Terraria&lt;/em&gt;, the primary way you discover the game is through the Guide NPC,
and later other NPCs, depending on the quest. Almost none of the game is clearly
conveyed to you, and it reeks of a game that has organically grown in scope
creep for ten years, just like Minecraft. You really can't make appreciable
progress in games like this without a wiki. Discoverability is a huge part of
games, especially for games with interacting systems or concurrent mechanics.&lt;/p&gt;
&lt;p&gt;Additionally, it's not enough to have one or two primary crafting stations. In
&lt;em&gt;Terraria&lt;/em&gt;, there are &lt;em&gt;dozens&lt;/em&gt; of them! If I were to redesign the game, it would
be in its progression. I'm totally cool with bosses being the gates for world
progress, but the crafting stations and whatnot would be a single crafting
station, and a single chest that has tabs/pages you can unlock or purchase. The
visual mess that you end up with by the endgame is overwhelming, even though you
know what everything's supposed to do.&lt;/p&gt;
&lt;p&gt;If I ever come back to &lt;em&gt;Terraria&lt;/em&gt;, it will be to build random creations, just
like &lt;em&gt;Minecraft&lt;/em&gt;. Sad to say, the genre has an extreme amount of work to do in
the accessibility and discoverability departments. I shouldn't need an online
resource to grok your game.&lt;/p&gt;
&lt;h1&gt;August&lt;/h1&gt;
&lt;p&gt;I had picked it up a few weeks prior, but once I got into &lt;em&gt;TMNT: Shredder's
Revenge&lt;/em&gt; [Switch], I couldn't put it down for a good few days! It's the
spiritual successor to &lt;em&gt;Turtles in Time&lt;/em&gt;, right down to a lot of the bosses! It
feels more complete, featuring bosses and enemies from both new and old TMNT,
though the focus is mostly on the old style. I like that you can finally play as
Master Splinter and April O'Neill; a first since &lt;em&gt;Tournament Fighters&lt;/em&gt;, on the
SNES!&lt;/p&gt;
&lt;p&gt;There is at least one unlockable character that I won't spoil, which is
nice, but it seems all additional content will be coming in DLC form. That's
disappointing, because I bought the game in physical form with the expectation
that a classic-styled sequel would have 100% of its content from launch day. The
release of the DLC gives me some trepidation about buying new Turtles games,
despite the quality gaming experience. I expected better from Dotemu,
considering that &lt;em&gt;Wonder Boy: The Dragon's Trap&lt;/em&gt; launched earlier in the
Switch's life and had 100% of its content on day one. What happened, guys?&lt;/p&gt;
&lt;h1&gt;September&lt;/h1&gt;
&lt;p&gt;This month, I targeted some older games in the backlog, starting with &lt;em&gt;BIT.TRIP
RUNNER&lt;/em&gt;, the first in the BIT.TRIP series.&lt;/p&gt;
&lt;p&gt;It was essentially a precursor to games like Harmoknight on the 3DS, but unlike
Harmoknight, RUNNER will bump you back to the beginning of the level if you hit
ANY obstacles! The variability in playing the game is mostly "how many of the
gold bars did you get?" You unlock bonus levels by completing the normal levels
while getting all of the gold bars.&lt;/p&gt;
&lt;p&gt;Also, despite being a rhythm game, I didn't feel much like I was interacting
with a beat or any particularly well-placed musical sounds. Mid-level
checkpoints would go a long way to improving the game's accessibility.&lt;/p&gt;
&lt;h2&gt;Machinations&lt;/h2&gt;
&lt;p&gt;Later in the month, I tackled &lt;em&gt;Cogs&lt;/em&gt;, a fun gear-based puzzle game that's also a
sliding tile and PipeDream clone, all in one! I had got it as part of a Humble
Bundle back in 2011 or so, and had barely played it. I was surprised at how well
I adapted to coming back to this. It's still worth booting up just to study the
puzzles a little. Glad to have come back to check it out. That said, I'm
definitely more of a Move guy than a Time guy. I enjoy how the Challenge modes
allow you to pick between time and moves as a way to challenge yourself and get
easier stars. After 300 stars, you can unlock the credits, which is a level!
It's one of the most complicated in the game, and it certainly tested my skill
in sliding tile puzzles. Much like &lt;em&gt;Box Pusher&lt;/em&gt; from last year, I think &lt;em&gt;Cogs&lt;/em&gt;
has burned me out on this style of game. It was a solid playthrough, but I'm
kind of over it.&lt;/p&gt;
&lt;h2&gt;Escaping a cosmic jail&lt;/h2&gt;
&lt;p&gt;Toward the end of the month, I finished out &lt;em&gt;Furi&lt;/em&gt; [Switch]. I had left off on
the third boss, then over the course of the past week, butted my head against
the wall of challenges that are this game's bosses.&lt;/p&gt;
&lt;p&gt;Overall, I believe the game is an interesting blend of bullet hell and
edge-of-your-seat reflex-oriented combat. Though every boss is meant to be an
immense challenge, only one of them felt unrealistically unfair and tedious: a
female sniper named The Burst.&lt;/p&gt;
&lt;p&gt;She begins the boss fight by hiding, and can shoot you from across the arena,
which is 3-4 screens wide and tall. This shot can take one of your three life
stocks &lt;em&gt;in a single hit&lt;/em&gt;. Living up to her name of Burst, this makes sense for
a super or something; as a primary attack, it's bonkers! Her game of keep-away
is what is most annoying, because the actual combat against her was fairly well
done. The hide and seek phases and one-shot kills are what make this boss fight
ridiculous. By contrast, the very next fight after her is more intense and
imposing, and yet he does less damage than her auto-lock one-shotter.&lt;/p&gt;
&lt;p&gt;As the credits rolled, I was blown away by the landscape in this peaceful realm.
Discovering the true identity of The Stranger was crazy, and defeating the
mothership was a satisfying end to the saga for me. I &lt;em&gt;do&lt;/em&gt; wonder what would
have happened if I chose the other option, but that's what Youtube is for.&lt;/p&gt;
&lt;p&gt;This game sat around in my backlog for a solid five years. It's a relief to
bring it to rest. I might some day play through just so I can fight the rest of
the bosses. We'll see. The Burst is such a bitch that I really don't want to
fight her again.&lt;/p&gt;
&lt;h1&gt;October&lt;/h1&gt;
&lt;h2&gt;Angular Ownage&lt;/h2&gt;
&lt;p&gt;I'm on a roll at the end of the year now, aren't I? This month is off with a
bang with &lt;em&gt;Geometry Wars 3&lt;/em&gt; [PS3]! I bought this game very shortly after getting
a Playstation 3, back in 2015. I had played the OG at a friend's house on Xbox
back in 2009 or so, and had &lt;em&gt;Geometry Wars: Galaxies&lt;/em&gt; on both my DS and Wii
at some point, so the third entry in the series was a must-own, naturally.
Its gameplay is wonderful and the same it's always been, with the bonus of
drone behaviors you can upgrade that isn't as grueling as Galaxies, but just as
rewarding. I have to admit that I don't like the weird and warpy levels, because
they're zoomed in too much. The biggest issue I have with this game is the
frequency that enemies will end up spawning on top of you. The pillar of light
that appears before a spawn is super helpful, but perhaps not quite enough
warning. Overall, I'm still satisfied with this game even if it kicks my ass
from time to time.&lt;/p&gt;
&lt;h2&gt;Liberating My Music&lt;/h2&gt;
&lt;p&gt;The next target was &lt;em&gt;Symphony&lt;/em&gt; [Steam]! It's a Galaga-style shmup that is
similar to &lt;em&gt;Beat Hazard&lt;/em&gt; in that it analyzes your music and generates levels (in
this case, enemy patterns) to play to. There's a story involved, but it's really
just an excuse to play more levels.&lt;/p&gt;
&lt;p&gt;Overall I felt it was okay, but it's much easier to earn Kudos than it is to
acquire Inspiration, so I reached a point toward the end of the game's
progression where I would have to farm songs on lower difficulties to get more
dependable rates of inspiration. There are also rare items that I still haven't
unlocked yet, despite seeing many multiples of other items that, if bought,
cannot be converted into a resource, nor can kudos be exchanged for inspiration.
As a result, I ended up with millions of kudos, but lacking the inspiration (by
around 80%) to purchase all of the equipment upgrades that I wanted to.&lt;/p&gt;
&lt;p&gt;It was okay but I think I'm done with music games. Between Guitar Hero, Hatsune
Miku, Taiko Drum Master, Beat Hazard, and now Symphony, I've played so much of
the genre that I don't think there's much left to explore.&lt;/p&gt;
&lt;h2&gt;Déjà Vu of the Night&lt;/h2&gt;
&lt;p&gt;Later in the month, I struggled my way through &lt;em&gt;Bloodstained: Ritual of the
Night&lt;/em&gt; [Switch]. To be honest with you, as a backer of the game at the $100
tier, I am somewhat disappointed in the game. Not because it's bad, per se, but
because it has so many technical problems. I intend to write a more thorough
review when I've had some time to refine and reflect on my thoughts.&lt;/p&gt;
&lt;p&gt;I think this is one I'll be 100%ing, despite the difficulties that come with the
Switch version. The nostalgia is strong for me, and the smooth framerates and
responsiveness of &lt;em&gt;Symphony of the Night&lt;/em&gt; all through &lt;em&gt;Order of Ecclesia&lt;/em&gt; were
all fantastic! That's what lets me down the most about Bloodstained; Igarashi's
past games were all great in the technical department. His staff at Konami
must've had more experience or something.&lt;/p&gt;
&lt;p&gt;I may eventually pick Bloodstained up on Steam at a steep sale so I can
experience the "proper" version, but thus far I will probably not be getting
aboard another Igarashi project without some proof he has a capable and
dedicated team that can churn out a minimum of a solid 30 frames per second, and
no input problems. This is not an unreasonable standard, even back in the mid
2010s when it was being developed. Perhaps Inti Creates should've been
contracted for the main game instead of just the two &lt;em&gt;Curse of the Moon&lt;/em&gt; games.&lt;/p&gt;
&lt;p&gt;There are all sorts of other weird things that happen to me on Switch too, like
Great Swords auto-attacking a second time if you attack in the air with any buff
that increases attack speed. If you strike an enemy with the air attack, it
cannot hit with the attack that starts as soon as you land. This seems like a
design error; either the sword shouldn't auto-attack when you land, or it should
be able to hit both times.&lt;/p&gt;
&lt;p&gt;This marks the twelfth game beaten this year! Hell yeah!&lt;/p&gt;
&lt;h1&gt;November&lt;/h1&gt;
&lt;h2&gt;A Wond(er)ous Adventure&lt;/h2&gt;
&lt;p&gt;I received a copy of &lt;em&gt;Super Mario Bros. Wonder&lt;/em&gt; [Switch] for my birthday, and 
once I started playing it, I couldn't put it down. It was a blast the whole way. 
I ended up 100%ing it in around 15 hours. Like many other games, I want to give 
it the attention it deserves in its own review. It's a great game, though, so if 
you have a Switch, you owe it to yourself to try Modern Mario. It's great!&lt;/p&gt;
&lt;p&gt;Following that, Bloodstained's 100% completion wasn't too far away, so I 
finished that up just after 100%ing Mario! I've not felt like I was making 
progress like this in quite a while.&lt;/p&gt;
&lt;h2&gt;X Does NOT Mark the Spot&lt;/h2&gt;
&lt;p&gt;The next target in my continued onslaught is &lt;em&gt;Castlevania: Dracula X&lt;/em&gt;, part of 
the Advance Collection on Switch. After having played through it now, it's 
definitely not as good as &lt;em&gt;Rondo of Blood&lt;/em&gt;, and is straight confusing if you go 
from &lt;em&gt;Dracula X&lt;/em&gt; to &lt;em&gt;Symphony of the Night&lt;/em&gt;, due to the differences in story 
and, in some cases, total lack of certain characters or stages from &lt;em&gt;Rondo&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The chief problem I have is the relationship between the clunky movement and the 
invulnerability from being hit. Too often in Dracula X, you get hit out of the 
air, only to get knocked into &lt;em&gt;another&lt;/em&gt; hit that you have no control of, and can 
sometimes be juggled, with little recourse available to you. This is because 
your only special move is a backflip, and the landing lag prevents you from 
doing any evasive maneuvers. Richer lacks his attacking dash, his slide (and its 
dash), he can't run or spin his whip, he can't angle the direction of his 
whip... Honestly one of the weaker entries in the series.&lt;/p&gt;
&lt;p&gt;That said, the music and graphics are both great. A mod of this game
with a double-tap dash and some better movement options would turn it
around completely. You can still have clunky movement without super-short
invulnerability times and overly aggressive AI. It feels like it was meant to be
an arcade game with its janky mechanics.&lt;/p&gt;
&lt;h2&gt;Not Quite Turtley Enough&lt;/h2&gt;
&lt;p&gt;I wanted to beat the &lt;em&gt;Tournament Fighters&lt;/em&gt; games from the TMNT collection. I was 
quite let down by the lack of techniques available for each character, and the 
utterly unfair CPU opponents that I was up against. There's not much room for 
juggling, parrying, reversing or blocking a grab, etc. I appreciate how 
different each of the NES, SNES, and Genesis versions are, but because they're 
so different, I feel each one is missing some depth that it would have if 
perhaps there was a more unified vision for the final product.&lt;/p&gt;
&lt;p&gt;They're okay for what they were, but definitely not a reason to buy the 
collection. All that's left for me on the collection now are the 2nd and 3rd 
GameBoy games, the latter of which I'm saving for last since it's a 
Metroidvania!&lt;/p&gt;
&lt;p&gt;I knocked out &lt;em&gt;TMNT 2: Back From the Sewers&lt;/em&gt; [GB] just in time for the end of 
the year!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;That's it for 2023! I'll see you again in 2024!&lt;/p&gt;</content><category term="Video Games"/><category term="Video Games"/><category term="12-in-12"/></entry><entry><title>Mountain Shadow Nursery Review</title><link href="https://zlg.space/blog/mountain-shadow-nursery-review.html" rel="alternate"/><published>2023-04-18T00:00:00-07:00</published><updated>2023-04-18T00:00:00-07:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2023-04-18:/blog/mountain-shadow-nursery-review.html</id><summary type="html">&lt;p&gt;It occurred to me recently that I operate my own website, which is a distinct
advantage when platforms like Indeed try to silence legitimate and truthful
communication from users. Owning your publishing medium gives you a freedom that
most others on the Internet don't have. Someone in such a position can 
communicate freely, without interference from those who would be embarrassed by 
their communication. There are no voting, reporting, or comment systems that can 
make their pages disappear.&lt;/p&gt;
&lt;p&gt;I already review video games and books on this blog, in addition to my other
content; why shouldn't I review employers and businesses I've interacted with?
Reputation is a key ingredient to a successful business, and every person has a
voice. It's time to use mine. Businesses are not so special that they are immune
to the mechanics of sociology.&lt;/p&gt;
&lt;p&gt;Mountain Shadow Nursery is a plant tissue culture facility in Littlerock, WA, 
specializing in propagation/cloning and research.&lt;/p&gt;
&lt;p&gt;Here's the review, copy-pasted verbatim as I posted to Indeed. But first, the 
verdict:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I do not recommend working for this firm, or doing business with them if you 
are in the agriculture industry.&lt;/strong&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;It occurred to me recently that I operate my own website, which is a distinct
advantage when platforms like Indeed try to silence legitimate and truthful
communication from users. Owning your publishing medium gives you a freedom that
most others on the Internet don't have. Someone in such a position can 
communicate freely, without interference from those who would be embarrassed by 
their communication. There are no voting, reporting, or comment systems that can 
make their pages disappear.&lt;/p&gt;
&lt;p&gt;I already review video games and books on this blog, in addition to my other
content; why shouldn't I review employers and businesses I've interacted with?
Reputation is a key ingredient to a successful business, and every person has a
voice. It's time to use mine. Businesses are not so special that they are immune
to the mechanics of sociology.&lt;/p&gt;
&lt;p&gt;Mountain Shadow Nursery is a plant tissue culture facility in Littlerock, WA, 
specializing in propagation/cloning and research.&lt;/p&gt;
&lt;p&gt;Here's the review, copy-pasted verbatim as I posted to Indeed. But first, the 
verdict:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I do not recommend working for this firm, or doing business with them if you 
are in the agriculture industry.&lt;/strong&gt;&lt;/p&gt;


&lt;blockquote&gt;
&lt;p&gt;The work is basically cutting plants in a particular way and moving them to
another vessel, in another particular way. The processes require multiple
documentation steps along the way, most of which are manual. So when you're
not actively processing plant material, you'll be fumbling around with
stickers you write on by hand, and an inventory system that belongs in a
kindergarten. The firm is behind on the benefits of automation for their core
business, and processes change too often for workers to gain true mastery of
each new way to do things. This results in an almost ad-hoc way of running the
business. That approach works for some. To me it appeared as if people were
playing things by ear and didn't actually have a clue.&lt;/p&gt;
&lt;p&gt;One could look past this most of the time, but the ergonomics are not suited
for people with large frames. The stations you sit at are designed for people
with smaller frames. Taller women and just about any man will have issues
fitting into the tight stations.&lt;/p&gt;
&lt;p&gt;In addition, the majority of the staff (90%+) are female. I saw one other
man working among the women in transferring, and didn't see another man even
coming through for an interview during my time there. I suspect I and the
other man were token hires to avoid scrutiny.&lt;/p&gt;
&lt;p&gt;This job has the potential to be rewarding, streamlined, and efficient for
all parties. It also has potential to be a positive place for workers, if
diversity were appreciated in practice rather than in word.&lt;/p&gt;
&lt;p&gt;One good thing I will indicate is that they will try to work with you on some
things; particularly anything that keeps you producing. But realistically,
don't apply unless you're okay with squeezing tweezers or cutting with
scissors 4000+ times a day. If you get hurt on the job, they'll push you
out the door and look for the next person's hands to wear out. Typical for
agricultural outfits, I guess. There are better places to work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Just a gentle reminder to employers who think they can control the narrative
on their business: People will spread the word about their experiences at your
firm. Some of them operate their own websites and are not subject to your
influence online. It's not wise to assume you can walk on someone without
consequence, or assume their skill level in navigating communication networks.&lt;/p&gt;
&lt;p&gt;Indeed.com can do better by communicating which aspects of the review they
disagree with. The rejection included no language on what was wrong with it, but
encouraged me to re-submit, which is lazy and flippant design meant to waste the
reviewer's time. Stifling the voice of workers is despicable for a company who
purports to court both workers and employers. Do better.&lt;/p&gt;</content><category term="Reviews"/><category term="Businesses"/><category term="Employers"/></entry><entry><title>Why I learned C "Category-0" Style</title><link href="https://zlg.space/blog/why-i-learned-c-category-0-style.html" rel="alternate"/><published>2023-03-16T20:02:00-07:00</published><updated>2023-03-16T20:02:00-07:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2023-03-16:/blog/why-i-learned-c-category-0-style.html</id><summary type="html">&lt;p&gt;I've been asked a few times over the years why I chose to learn C with the
colloquially-known "K&amp;amp;R C Bible", and specifically the &lt;a href="https://clc-wiki.net/wiki/K%26R2_solutions:Ancillary:Category_numbers"&gt;&lt;em&gt;Category-0&lt;/em&gt;&lt;/a&gt;
style, coined on USENET back in the day.&lt;/p&gt;
&lt;p&gt;For those unfamiliar, I'm talking about &lt;em&gt;The C Programming Language, 2nd Ed.&lt;/em&gt;,
by Brian Kernighan and Dennis Ritchie, the creators of the language. In it are
a series of exercises that the reader can work on to build their knowledge of
C through actually building something with it. On &lt;code&gt;comp.lang.c&lt;/code&gt;, people would
share their solutions to exercises in this book. After a while, they coined
different categories of solutions, to refer to their robustness and complexity.&lt;/p&gt;
&lt;p&gt;Category-0 is solving each exercise &lt;em&gt;using only the knowledge the book gives 
you, up to that point&lt;/em&gt;. In other words, it's to approach it as a complete newbie 
and see what you can put together using only the stuff you've learned in the 
book.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;I've been asked a few times over the years why I chose to learn C with the
colloquially-known "K&amp;amp;R C Bible", and specifically the &lt;a href="https://clc-wiki.net/wiki/K%26R2_solutions:Ancillary:Category_numbers"&gt;&lt;em&gt;Category-0&lt;/em&gt;&lt;/a&gt;
style, coined on USENET back in the day.&lt;/p&gt;
&lt;p&gt;For those unfamiliar, I'm talking about &lt;em&gt;The C Programming Language, 2nd Ed.&lt;/em&gt;,
by Brian Kernighan and Dennis Ritchie, the creators of the language. In it are
a series of exercises that the reader can work on to build their knowledge of
C through actually building something with it. On &lt;code&gt;comp.lang.c&lt;/code&gt;, people would
share their solutions to exercises in this book. After a while, they coined
different categories of solutions, to refer to their robustness and complexity.&lt;/p&gt;
&lt;p&gt;Category-0 is solving each exercise &lt;em&gt;using only the knowledge the book gives 
you, up to that point&lt;/em&gt;. In other words, it's to approach it as a complete newbie 
and see what you can put together using only the stuff you've learned in the 
book.&lt;/p&gt;


&lt;p&gt;I had considerable difficulty learning C at first, due mostly to its 
similarities to C++, the challenge of finding good advice and practice, etc. I 
settled on the K&amp;amp;R because it was written by the original language authors. By 
choosing my reference on that criteria, I was certain to find a book that was 
more accurate than most, at minimum.&lt;/p&gt;
&lt;p&gt;After buying my copy and eventually discovering the
&lt;a href="https://clc-wiki.net/wiki/"&gt;clc-wiki&lt;/a&gt;, I started grinding out &lt;a href="https://git.zlg.space/knr"&gt;my own K&amp;amp;R
solutions&lt;/a&gt;. As you can see via the commit log on the
repository, it was a very slow advancement due to real life interfering. But I
did eventually complete it, so that's cool, right?&lt;/p&gt;
&lt;p&gt;Similarly, I have a copy of &lt;em&gt;Programming in Lua&lt;/em&gt;, by Roberto Ierusalimschy, one
of the language's authors, and it's also a wonderful resource in teaching me
Lua. I've heard Stroustrup's C++ books are great for learning. I would buy a
similar reference for Python by Guido van Rossum, but Python is a large beast
that evolves quickly via PEPs and its online docs are superb, so I'm not sure 
what the value of it would be.&lt;/p&gt;
&lt;p&gt;If you're into C, feel free to give it a look. Patches and constructive feedback
are both welcome. There are plans to make a "modern C standard" version of the 
solutions as well, to illustrate the difference between "good code for learning" 
and "the way you should actually build this".&lt;/p&gt;</content><category term="Software"/><category term="C"/><category term="Category-0"/><category term="Programming"/></entry><entry><title>A Look Back on 2022</title><link href="https://zlg.space/blog/a-look-back-on-2022.html" rel="alternate"/><published>2022-12-17T23:45:00-08:00</published><updated>2023-11-10T16:21:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2022-12-17:/blog/a-look-back-on-2022.html</id><summary type="html">&lt;p&gt;I've spent the past few weeks reflecting on the sort of content that tends to 
get posted this time of year: retrospectives. Opportunities to review the events 
of the year, look at what went well, what didn't, what we'll do in the future to 
be better. Even though companies and other bullshit are joining in the spirit, 
it's still important to give yourself moments to look back and self-assess your 
life. A new year is a new opportunity to improve. You don't &lt;em&gt;need&lt;/em&gt; a new year to 
justify it, but it feels right for some people. I kicked a nicotine habit 
cold-turkey with a New Year's resolution, back in 2005. It can be done.&lt;/p&gt;
&lt;p&gt;So, what was 2022 like? Let's try to exclude the grim politics and general state 
of the world. Life is rough right now. Some countries are at war. Some are 
dealing with radical extremists. Some are starving or struggling to stabilize 
their currencies. Others are fighting for basic rights of expression with 
clothing, or to keep their culture alive in the face of re-education camps. 
Let's &lt;em&gt;try&lt;/em&gt; to find the good stuff.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;I've spent the past few weeks reflecting on the sort of content that tends to 
get posted this time of year: retrospectives. Opportunities to review the events 
of the year, look at what went well, what didn't, what we'll do in the future to 
be better. Even though companies and other bullshit are joining in the spirit, 
it's still important to give yourself moments to look back and self-assess your 
life. A new year is a new opportunity to improve. You don't &lt;em&gt;need&lt;/em&gt; a new year to 
justify it, but it feels right for some people. I kicked a nicotine habit 
cold-turkey with a New Year's resolution, back in 2005. It can be done.&lt;/p&gt;
&lt;p&gt;So, what was 2022 like? Let's try to exclude the grim politics and general state 
of the world. Life is rough right now. Some countries are at war. Some are 
dealing with radical extremists. Some are starving or struggling to stabilize 
their currencies. Others are fighting for basic rights of expression with 
clothing, or to keep their culture alive in the face of re-education camps. 
Let's &lt;em&gt;try&lt;/em&gt; to find the good stuff.&lt;/p&gt;


&lt;h1&gt;How was it for others?&lt;/h1&gt;
&lt;p&gt;Let's start with what happened in general, that stands out to me. That generally 
means new developments in GNU/Linux or the video gaming world.&lt;/p&gt;
&lt;h2&gt;Libre Software&lt;/h2&gt;
&lt;p&gt;Sadly, I can't think of much that happened this year in libre software that was
notable. Maybe I'll come back and edit this before the end of the year.&lt;/p&gt;
&lt;h2&gt;Video Games&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Elden Ring&lt;/em&gt; was released. I thought I'd be much more hyped about it. I ended up 
not getting it at all. I still have &lt;em&gt;Dark Souls&lt;/em&gt; 1 through 3, and Sekiro, to 
finish. I'm not thirsting for Soulslike content at all, lol.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pokémon Legends: Arceus&lt;/em&gt; also came out this year, I believe? It almost had what 
it takes to get me to buy. &lt;em&gt;Scarlet&lt;/em&gt; and &lt;em&gt;Violet&lt;/em&gt; have technical issues and 
design flaws that prevent me from enjoying 9th gen as much as I'd like to, so I 
have avoided buying them as well.&lt;/p&gt;
&lt;p&gt;The only games I bought this year were either games that I already owned
(&lt;em&gt;Quake&lt;/em&gt; for Switch), replacements for the Switch that was stolen from me, or
&lt;em&gt;Narita Boy&lt;/em&gt;. I haven't played enough to give any solid opinions, but I love the
motif of the game so far.&lt;/p&gt;
&lt;h2&gt;Anime&lt;/h2&gt;
&lt;p&gt;In the latest season finale of &lt;em&gt;Pokémon&lt;/em&gt;, Ash Ketchum becomes the World
Coronation Monarch; the most accomplished and dominant trainer in the world!
With his dream achieved, The Pokémon Company is bringing Ash's story to a close
with 11 episodes set to air in Japan in mid January 2023. The new season has
already been teased, featuring two new protagonists. One of them has a hairpin
with a design resembling Ash's original hat design. There may be more to what's
going on.&lt;/p&gt;
&lt;p&gt;As someone who's not been watching the anime, I came back to it when I heard the
rumor that Ash might become world champion. To see the twerp I used to make fun
of for being a nublet in the 2nd season end up facing off against, and defeating
the most accomplished trainer &lt;em&gt;ever&lt;/em&gt; in Pokémon is quite impressive. Finally
giving Ash a proper send-off is almost like a milestone for the first generation
of Pokémon fans. All I could think at the end of the season was, "The kid
actually pulled it off!" I am filled with a sort of bittersweet happiness. For 
the first time in a while, I'm looking forward to anime content!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Dragon Prince&lt;/em&gt; got its next series, which I haven't started yet. &lt;em&gt;Cyberpunk 
2077: Edgerunners&lt;/em&gt; has been pretty intense and quite interesting, despite my 
total lack of knowledge of the series. I hope it's true to the source material.&lt;/p&gt;
&lt;p&gt;That about wraps up what hit my radar, outside of whatever real life events were 
happening.&lt;/p&gt;
&lt;h1&gt;My Life&lt;/h1&gt;
&lt;p&gt;Things were challenging for me. Near the end of 2021, I left a profitable job
that was sapping my energy and motivation. I ended up going into a part time
job for a while until getting back to full time work this year. This job isn't
really my cup of tea either, so I'm looking for more computer-oriented work.&lt;/p&gt;
&lt;p&gt;My partner was diagnosed as Celiac. The change has been very difficult for her 
due to her appreciation for baked goods, but also foods from different cultures. 
She has such a broad palate, and to see her health restrict her food choices 
has been challenging. She's been strong and diligent at checking ingredients, 
and I do what I can to help find or make safe food for her.&lt;/p&gt;
&lt;p&gt;A good friend of mine had to leave the state due to economic reasons. It sucked 
to see him leave, but we were lucky enough to be able to spend some quality time 
together before he had to go. I'll always remember our trip to Ocean Shores.&lt;/p&gt;
&lt;h2&gt;Projects&lt;/h2&gt;
&lt;p&gt;As always, it's been difficult to get enough free time to put something 
together that I can give a shit about. One such thing is an &lt;a href="https://www.lexaloffle.com/bbs/?tid=50210"&gt;anxiety meter in 
PICO-8&lt;/a&gt;! It took a decent amount of planning and experimentation, but 
it's a complete feature that looks and acts really well. With any luck, my work 
on core gameplay elements will come to a pause soon, and I can start churning 
out assets and get some level design going!&lt;/p&gt;
&lt;p&gt;If you're reading this, then the blog was relaunched, after being dormant for
&lt;em&gt;three years&lt;/em&gt;. Some content was still produced in the time the blog was absent,
but not anywhere it would get attention.&lt;/p&gt;
&lt;h2&gt;Gaming&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://zlg.space/blog/12-in-12-2022-edition.html"&gt;12-in-12 for this year&lt;/a&gt; doesn't look too hot, unless I can 
pull a game or two out of my ass in the next two weeks, haha. I did, however, 
knock out &lt;em&gt;Box Pusher&lt;/em&gt;, another long-standing entry in the backlog. It took 
nearly 6 months, so it took up a lot of time I could've spent on other games. 
For one reason or another, my year's been spent playing games I've already 
beaten. &lt;em&gt;Risk of Rain 2&lt;/em&gt; is almost 100%ed; the gameplay challenges are all 
finished and all that's left is farming monster logs.&lt;/p&gt;
&lt;h1&gt;The Future&lt;/h1&gt;
&lt;p&gt;The future holds many things, depending on what you're looking at. For me, it's 
primarily the new &lt;em&gt;Zelda&lt;/em&gt; game, &lt;em&gt;Tears of the Kingdom&lt;/em&gt; in May. The new Pokémon 
episodes are coming in January for subbed, and the Mario movie is coming next 
year. I'm still on the fence on whether I'll watch it. Hollywood just doesn't do 
anything my style any more.&lt;/p&gt;
&lt;p&gt;Work has begun on VGStash-Tk, and I am experimenting with date-oriented fields 
for games in one's collection, to cut down on needless note taking within 
vgstash. As the software's only user (that I know of), I am solely guiding 
development, haha. &lt;a href="https://pypi.org/project/vgstash"&gt;Check out VGStash on PyPI&lt;/a&gt; if you haven't 
already. It's cross-platform and should work on a potato.&lt;/p&gt;
&lt;p&gt;That wraps up the major thoughts for me on this year. Overall, it was kinda 
shitty. Would not want to relive, haha. Here's hoping to a better and brighter 
2023.&lt;/p&gt;
&lt;p&gt;-z&lt;/p&gt;</content><category term="Life"/><category term="Life"/><category term="PICO-8"/><category term="Video Games"/><category term="Health"/><category term="Anime"/><category term="VGStash"/></entry><entry><title>Box Pusher » Level Data for Solvers</title><link href="https://zlg.space/blog/box-pusher-level-data-for-solvers.html" rel="alternate"/><published>2022-09-12T22:17:00-07:00</published><updated>2022-09-13T21:37:00-07:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2022-09-12:/blog/box-pusher-level-data-for-solvers.html</id><summary type="html">&lt;p&gt;Back in 2012, I bought this cute little game called &lt;em&gt;Box Pusher&lt;/em&gt; [DSi]. It
features gameplay from a 1982 game called &lt;a href="https://en.wikipedia.org/wiki/Sokoban"&gt;Sokoban&lt;/a&gt;. In Sokoban, you
are a warehouse worker and push boxes around an enclosed area onto target
squares. This is the entirety of its gameplay. Think of ye olden Zelda block
puzzle, on crack, and you get Sokoban. Box Pusher contains 250 levels worth
of this craziness, and features a level editor, in case that's not enough box
pushing for you. It was certainly enough for me. But, you don't have to do the
work needed to get some Box Pusher solutions; I did it for you!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://files.zlg.space/s/jWYwyFSBMtXCaCi"&gt;Box Pusher » Level Data for Solvers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hook it up to a solver, and you're good to go! Putting this together was a
journey.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Back in 2012, I bought this cute little game called &lt;em&gt;Box Pusher&lt;/em&gt; [DSi]. It
features gameplay from a 1982 game called &lt;a href="https://en.wikipedia.org/wiki/Sokoban"&gt;Sokoban&lt;/a&gt;. In Sokoban, you
are a warehouse worker and push boxes around an enclosed area onto target
squares. This is the entirety of its gameplay. Think of ye olden Zelda block
puzzle, on crack, and you get Sokoban. Box Pusher contains 250 levels worth
of this craziness, and features a level editor, in case that's not enough box
pushing for you. It was certainly enough for me. But, you don't have to do the
work needed to get some Box Pusher solutions; I did it for you!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://files.zlg.space/s/jWYwyFSBMtXCaCi"&gt;Box Pusher » Level Data for Solvers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hook it up to a solver, and you're good to go! Putting this together was a
journey.&lt;/p&gt;


&lt;p&gt;About halfway through the puzzles, I realized "I'm an adult and have other shit
I want to do. It'd be cool to beat this game, though." So I decided to make it
a little fun, and use Sokoban solvers. I used a combination of &lt;a href="https://www.sokoban-online.de/"&gt;JSoko&lt;/a&gt;,
&lt;a href="https://computerpuzzle.net/english/sokoban/ver740/index.html"&gt;takaken's Sokoban Solver&lt;/a&gt;, and &lt;a href="https://sourceforge.net/projects/sokobanyasc/"&gt;YASC Solver&lt;/a&gt; to get solutions. I
then used JSoko's optimizer to shorten those solutions. Between these tools and
a few strays that I was able to solve on my own, it only took raw determination
to see it through.&lt;/p&gt;
&lt;h1&gt;Building the Levels&lt;/h1&gt;
&lt;p&gt;The first part of this task was transcription. I started this project in March
of 2022. Due to the game's design of only allowing you to play 5 levels at a
time, I had to rely on the small level previews (and my phone camera's zoom) to
get level layouts ahead of where I was, or solve puzzles as I transcribed. It
was an arduous process, but Vim's &lt;code&gt;virtualedit&lt;/code&gt; setting was a huge time saver.
It allows you to move the cursor anywhere in the buffer, which is key to making
text-based diagram creation approachable.&lt;/p&gt;
&lt;p&gt;To make matters worse, my &lt;a href="http://typematrix.com"&gt;TypeMatrix&lt;/a&gt; Dvorak keyboard got a sticky key and
I was unsuccessful in reassembling it after I cleaned it, damaging the keyboard.
I tried everything I knew to do to keep the silicone/rubber membrane to stay in
place; even glue, but in the end, the key is permanently mushy. Unusable to me,
so I kept it around for parts. Being stuck back on a staggered, QWERTY keyboard
sucks, but I'm glad that the muscle memory is still there.&lt;/p&gt;
&lt;p&gt;Getting back to the game, I enjoyed the variety of skins and music, and the
camera options are cool, too. Ultimately, I feel like the game has way too
much content, and some puzzles are really similar. A better curated set of 100
puzzles would be more palatable, and a more realistic goal for someone to meet.
Perhaps that wasn't the goal in developing Box Pusher, though. If you are a
hardcore Sokoban player, Box Pusher has it in spades! As it turns out, I'm not
super into Sokoban.&lt;/p&gt;
&lt;h1&gt;Sharing the File and Looking Back&lt;/h1&gt;
&lt;p&gt;I appear to be the only person out there who's finished this game. I wasn't able
to find any guides, FAQs, solution lists, blog posts, &lt;em&gt;nothing&lt;/em&gt; to indicate
anyone else had played or beaten it. To remedy that, I'm sharing &lt;a href="https://files.zlg.space/s/jWYwyFSBMtXCaCi"&gt;a text file
containing level layouts for Box Pusher, in machine-readable form&lt;/a&gt;,
ready for use by all the major Sokoban solvers.&lt;/p&gt;
&lt;p&gt;Comments at the top of the file contain advice for usage, and certain levels are
commented where I had issue with the solvers. Level 225 and 232 are particularly
rough for solvers. None of the solvers that I ran against those levels produced
a result, even after 2 hours of running. I ended up following the solution shown
in-game by using a solution credit, recording it with my phone, and playing it
back at 0.25x speed so I could follow it. Publishing solutions would require me
to do 250 puzzles again, and that's just &lt;em&gt;not happening&lt;/em&gt;. I've seen enough
variations of UDLR to make my head spin.&lt;/p&gt;
&lt;p&gt;Despite the slog of completing the puzzles, I did appreciate the different
strategies required to solve the levels, and I got to learn about an entire
hobby group that uses automation not only just to solve levels, but to gain
knowledge of AI techniques and get programming practice. Some levels were solved
lightning fast in one solver, but timeout in another. It appears that Sokoban is
a game that requires an adaptable AI that relies on numerous algorithms to make
its choices, to get best results. Single algorithms can work, too, but it was
the variety in algorithms that helped me clear &lt;em&gt;Box Pusher&lt;/em&gt;'s levels.&lt;/p&gt;
&lt;h1&gt;Final Thoughts&lt;/h1&gt;
&lt;p&gt;I think parallel processing would improve the solvers that are the current
state of the art. The most I could get for a solver were 2 threads! I have a
6-core, 12-thread CPU. How much faster could I have solved these, if I had a few
cores assigned to a few algorithms, so they could all "compete"? Threading is a
hard thing to program correctly, so I understand why someone might want to keep
things simpler. Perhaps next-gen solvers will integrate parallel computing in
some way, to improve performance for modern hardware.&lt;/p&gt;
&lt;p&gt;Please enjoy using this file to solve Box Pusher levels! Big thanks to the 
hackers putting together solvers for the rest of us to use. My file would be 
useless without them.&lt;/p&gt;</content><category term="Projects"/><category term="Video Games"/><category term="Guides"/><category term="Nintendo DSi"/><category term="Sokoban"/></entry><entry><title>A Brief History of Web Versions</title><link href="https://zlg.space/blog/a-brief-history-of-web-versions.html" rel="alternate"/><published>2022-04-25T00:00:00-07:00</published><updated>2022-12-11T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2022-04-25:/blog/a-brief-history-of-web-versions.html</id><summary type="html">&lt;p&gt;Ever since Mark Zuckerburg pitched the Metaverse, the "Web 3.0" buzzword blew
up, describing a "Web" that is backed by cryptocurrency-like ledgers. Proof of
work, proof of stake, etc. NFTs (Non-Fungible Tokens) are also involved in a
scene like this.&lt;/p&gt;
&lt;p&gt;What in this picture is an evolution of existing Web technology? How does this
enhance the state of hypertext? To me, this is Meta's vision for their next Web
product. It is not a new version of an existing, open platform. It has nothing
to offer me as a programmer, gamer, writer, or server admin. It seems to be the
mixture of NFT scamming, VR, and botnet. It looks like an addiction chamber
for whales.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Ever since Mark Zuckerburg pitched the Metaverse, the "Web 3.0" buzzword blew
up, describing a "Web" that is backed by cryptocurrency-like ledgers. Proof of
work, proof of stake, etc. NFTs (Non-Fungible Tokens) are also involved in a
scene like this.&lt;/p&gt;
&lt;p&gt;What in this picture is an evolution of existing Web technology? How does this
enhance the state of hypertext? To me, this is Meta's vision for their next Web
product. It is not a new version of an existing, open platform. It has nothing
to offer me as a programmer, gamer, writer, or server admin. It seems to be the
mixture of NFT scamming, VR, and botnet. It looks like an addiction chamber
for whales.&lt;/p&gt;


&lt;p&gt;By "whales", I'm referring to customers who invest a &lt;em&gt;ton&lt;/em&gt; into their
entertainment, seemingly impulsively. It has led to moral questions in society
over "dark patterns", or methods of design which aim to keep the user engaged
and, in this case, paying for more microtransactions. These people will spend
literally thousands of dollars on mobile games. Many developers of this sort
of dark-patterned tech offer the software for free, with a few hooks like free
items to get started with. Then, once you're out of items, you find you can only
get them with real money, or spend time to grind it out. Whales are, in a sense,
people with poor impulse control unable to get out of the dopamine loop.&lt;/p&gt;
&lt;p&gt;Is it moral to allow a company to design their software in a way to take
advantage of vulnerable people? That's what I think of when I think of
metaverses and NFTs.&lt;/p&gt;
&lt;p&gt;Without diving into NFTs and blockchain, what I'm really looking at in the
Metaverse is Facebook-branded VRChat that preys on addictive personalities. No
thanks. I don't want to contribute to a platform owned by the creepiest social
media company on Earth. In what way does the Metaverse, or other so-called
"web 3.0" software, compare to today's Web tech? Why should we want VR or even
GPU-intense games on the Web?&lt;/p&gt;
&lt;p&gt;Metaverse and anything else built on NFTs and cryptocurrencies is just &lt;em&gt;an
application&lt;/em&gt; of what Web 3 actually is. Not will be. Is.&lt;/p&gt;
&lt;p&gt;If we divide the history of the Web into eras, we get three distinct periods of
development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sharable, linkable documents. Early forums and fansites, early e-commerce,
  early rich media&lt;/li&gt;
&lt;li&gt;Syndication, blogging, early streaming, social sites and big-business
  e-commerce&lt;/li&gt;
&lt;li&gt;Web as a Software Platform; expanding to the desktop and mobile, analytics
  booms, data brokerage becomes a thing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Buckle up, stay a while and listen.&lt;/p&gt;
&lt;h1&gt;Web 1: The Beginning&lt;/h1&gt;
&lt;p&gt;Tim Berners-Lee began development on HTTP, HTML, and CSS (and thus the Web) in
1989, but the W3C wouldn't exist until 1994, and the protocol wasn't finalized
until 1996. However, plenty of early Websites (such as WikiWikiWeb, which
inspired the creation of Wikipedia) existed in this early time.&lt;/p&gt;
&lt;p&gt;In Web 1, the paradigm was the document that can link to other documents with
a click. Servers could do things, but computing resources were scarce in the
'90s, so they kept it simple like visitor counters or variable replacement. This
lasted quite a while as the dominant paradigm, but plenty of effort went into
making the server side smarter and the client side prettier. The Web gained
things like CGI servers, and support for higher level languages like Perl and
PHP through server modules. Server Side Includes, ColdFusion, and ASP were also
created in the Web 1 era.&lt;/p&gt;
&lt;p&gt;Over time, HTTP gained support for more headers, which could better inform the
server how to serve the page. This included things like smart Content-Type
handling, serving different markup for different browsers &lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;, and other
tricks. The cookie was invented during this time, too, so browsers could send
certain data for every request, and the server could process (and update) said
data as needed. This was used for logging into a site (a novel concept at the
time!), remembering site settings, or early e-commerce. Speaking of e-commerce,
back then you were required to purchase a security cert from a company if you
wanted to process payments online. Let's Encrypt wasn't a thing, and eBay and
PayPal wouldn't exist until 1998. SSL was much slower than unprotected Web
back then, due to the decryption step and limited hardware support for the
algorithms.&lt;/p&gt;
&lt;p&gt;In the late Web 1 days, it gained plugin support in most browsers. This allowed
support for Java and Macromedia (later Adobe) Flash, right in the browser! This
jump in abilities for the Web allowed media-heavy sites to exist, like Joe
Cartoon, Homestar Runner, Newgrounds, Yahoo Games, and Neopets.&lt;/p&gt;
&lt;p&gt;I would put the end of Web 1 around 2001-2002.&lt;/p&gt;
&lt;h1&gt;Web 2: The Explosion&lt;/h1&gt;
&lt;p&gt;The Web 2 days were marked by a few things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTTP/2, HTML 4, and CSS 2&lt;/li&gt;
&lt;li&gt;rounded borders, gradients, and diagonal stripes on EVERYTHING&lt;/li&gt;
&lt;li&gt;link sharing and syndication&lt;/li&gt;
&lt;li&gt;early social media, topic-based sites&lt;/li&gt;
&lt;li&gt;blogging&lt;/li&gt;
&lt;li&gt;Javascript starts getting beefy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The biggest thing to happen in the Web 2 era is the ease of access to a server.
Web 1 had Angelfire and Lycos and friends, but Web 2 had cheap shared hosting
and project-specific hosting, like Wordpress. Becoming a web developer in this
era was easy, and due to how new it was for a lot of small businesses, it was a
great time to be a capable web developer. Groups were forming to create better
compatibility between frameworks, there was a big push in the industry &lt;em&gt;and&lt;/em&gt;
community to upgrade skills and clean up the markup. Accessibility for the blind
and other impaired people also became an initiative.&lt;/p&gt;
&lt;p&gt;In doing a lot of this work, designers began to pay some real attention and
effort to website design. Websites like &lt;a href="http://csszengarden.com"&gt;CSS Zen Garden&lt;/a&gt; were created, to
show what's possible JUST with HTML and CSS. The same rings true today, with
even more possible now thanks to CSS 3 transitions and animations.&lt;/p&gt;
&lt;p&gt;As part of this trend, a lot of websites began adopting a similar look: usually
rounded borders around their main content, with a header containing a vertical
gradient. The background would be a muted, low contrast alternating diagonal
stripe pattern. Some later Web 2 sites would try to go for a "glass" look,
similar to Windows 7's taskbar.&lt;/p&gt;
&lt;p&gt;This era also gave rise to topic-dedicated social sites. While the late Web 1
era had LiveJournal and Xanga, Web 2 gained things like Deviantart, Flickr,
Imageshack, and numerous file hosting websites, meant solely just to link to
others. This could be understood as early cloud storage. Combine this with the
prevalence of pre-built Web packages like Wordpress, phpBB, SMF, and others, and
we see a Web of interaction and sharing.&lt;/p&gt;
&lt;p&gt;A key part of this sharing was syndication. RSS and Atom are two such standards
used to facilitate this. All it is is a "feed", or list of items. When the
website publishes, the feed updates. So all you have to do is check if your feed
updated to see if there's a real update. This avoided you having to visit every
day, or F5 periodically. Blogging took off due to the advancement of this tech,
and it created thousands of communities worldwide.&lt;/p&gt;
&lt;p&gt;A big issue of this era was finding reliable links with fun, interesting, or
valuable info. Search engines existed, but they weren't as refined and weren't
as good at indexing the relevant data. What if, instead of linking to someone
every time a topic came up, you could post your bookmark &lt;em&gt;as the topic itself&lt;/em&gt;?
Community link-sharing websites came together, like Fark, Digg, and later
Reddit. (Yep, it was founded in 2005!) There were some underground ones, too.&lt;/p&gt;
&lt;p&gt;Myspace launched in 2003. It was one of the first websites that allowed you to
add a "friend". You could also rank your friends, and have custom CSS on your
profile. There was a huge attraction to Myspace, partly for this customization,
and the built in blogging feature. It was around this time that some began
suggesting to use real names online, to find people you knew. This was counter
to the prevailing knowledge of "cover your ass and use a pseudonym". As we
see today, there are very real risks and problems when you use your real name
online. That didn't stop people back then, though.&lt;/p&gt;
&lt;p&gt;Facebook was launched in 2004. It wasn't opened up to the general public until
around 2007. Soon after, it got games and began expanding into other avenues of
social activity, like Marketplace, Business and Group pages, etc.&lt;/p&gt;
&lt;p&gt;Others contended around this time, sometimes for different purposes. Friendster
was one of the first social media sites, but it never took off. A lot of dating
sites and job boards popped up on the Web around this time, too.&lt;/p&gt;
&lt;p&gt;HTML 5 and CSS 3 were released in the late Web 2 era. With them came better
parsing support due to clearer markup rules, rounded borders without images,
images as borders, composite layering inside the background of an element, and
many other Quality of Life improvements. HTML 5 and CSS 3 wouldn't gain their
crazy features like animations and Web platform integration until Web 3. At the
end of Web 2, the canvas element was being played with and some small games were
released.&lt;/p&gt;
&lt;h1&gt;Web 3: The Panopticon&lt;/h1&gt;
&lt;p&gt;The start of Web 3, I think would be somewhere around the time NodeJS and
Electron came onto the scene. WebRTC, WebGL, and EME are also key to this era.&lt;/p&gt;
&lt;p&gt;I posit that we are already in Web 3. Web 3 is Web as a Software Platform.
In this era, the Web gained support for restricting the freedom of viewers
through Encrypted Media Extensions (thanks for &lt;em&gt;selling out&lt;/em&gt;, Tim), lots of new
headers to better control inter-site behavior, and new tech that only works on
the Web, like WebAssembly, WebGL, WebUSB, WebRTC, and so on. This is distinct
from Web 2 in that it's continuous effort to turn the Web into a platform
that's as equal to a universal OS as it can be. However, this results in a lot
of over-engineering and actively prevents new browser makers by raising the
technical floor so high that only multi-billion dollar companies like Google
can negotiate licensing for EME code and devote the resources to standards
adherance.&lt;/p&gt;
&lt;p&gt;Some people and companies actively build ONLY for the Web, and containerize a
browser on as many different platforms as possible to achieve that effect. It's
kind of like using the Web as a virtual machine language like Java.&lt;/p&gt;
&lt;p&gt;One of the reasons I think Web 3 is popular, for companies at least, is the
evolution of tracking technology that began as a curiosity in the Web 2 era. If
you implement your software on the Web, you get most of the groundwork done for
free, devs are cheaper, and other companies like Google want your users data, so
they'll help you track and optimize your site for revenue, for the price of the
data and some fees, of course.&lt;/p&gt;
&lt;p&gt;Another facet of Web 3 is using it for things like text editors, IDEs, and other
productivity software. This can be done in a serverless way using Electron. Have
you noticed a pattern here though? Most of the advancement of Web 3's tech has
come from Google, a company that was born on the Web in 1998 as a search engine.
Today, it has a vested interest in gathering as much information as possible
since it sells ad space and analytics tech to other companies. Making it simple
and easy to build an application in Electron and hook it up to Google Analytics
makes Web as a Software Platform (Web 3) an easy sell for small business and is
hugely profitable for Google.&lt;/p&gt;
&lt;p&gt;The big problem I have with Web 3 is the total disregard for privacy and
security that the major writers of the Web have for those that visit, and
the intent on expanding the Web into an unmaintainable mess of standards.
So little of Web 3 technology is meant to enrich the Web for &lt;em&gt;everyone&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It's mostly a monetization platform with flashy things that give you more
access to the client's system so you can manipulate or control what's possible
on your site or app. The advantages of deploying on the Web are countered by
massive RAM use compared to a native program, fitting a square peg into a
round hole, and the continuous invasion of privacy that gets hand-waved with
as-of-yet-unchallenged Privacy Policies. Perhaps governments are right to want
to regulate &lt;em&gt;some&lt;/em&gt; aspects of Web development, if corporate participants can't
behave themselves.&lt;/p&gt;
&lt;p&gt;(Psst, America and the EU are both looking at ways to hold tech companies
accountable for how they conduct business online, especially in regards to user
data and viewing algorithms, given that the misuse of social media has led to
disruption of elections.)&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;There is way too much history, too many websites, and too many cool side
things that evolved in or next to the Web over the years to cover it all in an
article about eras of the whole thing. Things like microprotocols via markup,
decentralized social media like StatusNet and ActivityPub, Tor, freenet, ssb,
the list goes on. So if I missed anything, know that it's not because I don't
know about it. I probably do. :P&lt;/p&gt;
&lt;p&gt;The main reason I wrote is to counter the idea that Web 3.0 is on the horizon,
like some tech companies or uninformed communities want us to believe.&lt;/p&gt;
&lt;p&gt;The Web has already reached its third major era. If you use VSCode, Atom,
Etcher; if you use codepen, ideone, or Google Docs... you're using Web 3 stuff.
We reached Web 3 when we built traditional software with Web tech.&lt;/p&gt;
&lt;p&gt;Web 4 will probably be when it goes truly decentralized, or a bare metal OS
is implemented in Web tech. (ChromeOS doesn't count; it's Gentoo Linux with
an Android emulator) Who knows; right now it's looking like the Web has been
taken over by Google, both in terms of market share and in terms of "who guides
the standards". However the Web moves ahead, it needs to do so while keeping
businesses from snuffing out the rest of the community, or using their greater
resources to fill positions and exert undue influence over the technical
community.&lt;/p&gt;
&lt;p&gt;The modern Web giants do not play nicely with others, and the greatly increased
complexity of Web tech has forced a duopoly in mainstream browsers. To my
knowledge, Google &lt;em&gt;still&lt;/em&gt; pays Mozilla to be the top search engine, so they're
paid competition... There are only two others that I know of in development
(Pale Moon/Goanna and Serenity) that are anywhere close to Firefox and Chrome in
features. Netsurf and Dillo exist, but from what I can tell are stagnating...
probably due to lack of people to contribute and the sheer number of standards
you need to implement to call yourself a browser.&lt;/p&gt;
&lt;p&gt;I think a fork of HTTP is inevitable, due to its complexity. It either needs
to branch off and serve app developers, or resist corporate influence and
selectively choose the standards they support. Bonus points if they explain why
they won't implement certain tech. It sends a clear message of differentiation, 
reminding me of the fun server &lt;a href="https://tildegit.org/solderpunk/shizaru"&gt;shizaru&lt;/a&gt;, which allows you to set 
specific limits on what you're serving..&lt;/p&gt;
&lt;p&gt;Where do you think the lines between Web eras are? I'd love to read peoples'
ideas on this.&lt;/p&gt;
&lt;p&gt;Thanks for reading,&lt;/p&gt;
&lt;p&gt;-z&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;This was really a thing. Netscape and IE both had some big
 incompatibilities in the early days. Even their Javascript implementations
 were largely incompatible!&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Software"/><category term="HTTP"/></entry><entry><title>Free Software *is* Politics</title><link href="https://zlg.space/blog/free-software-is-politics.html" rel="alternate"/><published>2022-04-21T00:00:00-07:00</published><updated>2022-12-12T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2022-04-21:/blog/free-software-is-politics.html</id><summary type="html">&lt;p&gt;It seems that &lt;a href="https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/33329"&gt;the systemd debate has made its way to Alpine Linux&lt;/a&gt;, and
naturally that gets people out of the woodwork to &lt;a href="https://christine.website/blog/politics-cudgel-experimentation-2022-04-21"&gt;bang their drum about it
again&lt;/a&gt;. The irony's not lost, either. It's really tiring to see people
complain about politics, in a software movement that's entirely about the
politics of software to begin with. Have you guys forgotten why we're here? Are
you more open source instead of free software? That's still a political
statement; one of practicality and reduced costs.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;It seems that &lt;a href="https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/33329"&gt;the systemd debate has made its way to Alpine Linux&lt;/a&gt;, and
naturally that gets people out of the woodwork to &lt;a href="https://christine.website/blog/politics-cudgel-experimentation-2022-04-21"&gt;bang their drum about it
again&lt;/a&gt;. The irony's not lost, either. It's really tiring to see people
complain about politics, in a software movement that's entirely about the
politics of software to begin with. Have you guys forgotten why we're here? Are
you more open source instead of free software? That's still a political
statement; one of practicality and reduced costs.&lt;/p&gt;


&lt;p&gt;For those unfamiliar, Alpine Linux is a Linux distribution (NOT GNU/Linux)
powered by busybox, musl libc, and OpenRC. By contrast, systemd is a project
aiming to provide a "system layer" between userland and the kernel. It
explicitly depends on a recent build system (meson) and generally only supports
glibc and the Linux kernel. It explicitly does not support any alternative
libc. In short, Alpine and systemd go together like oil and water, on purely
a technical basis. The social half even moreso, since this incompatibility
resulted in users having access to a simpler system that isn't built on systemd.
Choice is great, right? Some disagree, but they're free to make their own
projects.&lt;/p&gt;
&lt;p&gt;When dealing with the systemd debate, many try to reduce it to the early years
of the debate, where people used the false dichotomy of technical and social.
Or they derail and assume it's a personal vendetta against Lennart Poettering,
without accounting for Lennart's behavior when he was advocating for systemd,
and the smug ways that his project has treated contributions, criticisms, and
distros like Gentoo. We do personal responsibility, first impressions, and all
that civil shit, right? Can we not apply this to our fellow developers? Are we
not responsible, to some degree, for how others perceive us and our projects? If
so, then I think it's fair to criticize a developer.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lists.freedesktop.org/archives/systemd-devel/2014-May/019657.html"&gt;Lennart said "Gentoo, this is your wakeup call,"&lt;/a&gt; concerning the ability to
run udev without systemd, when eudev was created. &lt;a href="https://mail.gnome.org/archives/desktop-devel-list/2011-May/msg00427.html"&gt;He actively asked GNOME to
depend on systemd.&lt;/a&gt; Granted, GNOME was probably going to use it anyway due to
Red Hat employing both Poettering and many GNOME developers... A number of Arch
developers (particularly its sysvinit maintainer) were early contributors to
systemd. It's safe to say, influencing other projects is the bread and butter of
the systemd project, and I challenge anyone to argue otherwise.&lt;/p&gt;
&lt;p&gt;If you're going to participate in the debate, at least understand the history of
the project and the actions of the principal authors -- cultural origin matters
here because their values are baked into the project. The discussions from
the Arch and Debian communities are also worthwhile, to show examples of how
NOT to deal with the issue. Arch promised sysvinit would remain as an option,
then pulled the rug out from users with their switch. Debian had an &lt;em&gt;ugly&lt;/em&gt;
debate that resulted in some developers leaving the distribution altogether, and
sparked the creation of the systemd-free Devuan distribution.&lt;/p&gt;
&lt;p&gt;Arch and Debian both went systemd, while Fedora and SuSE leaned into systemd
first. As a witness to both Arch and Debian's decisions as-it-happened, the
one thing most distro devs missed was user transparency. Whatever plan you go
with, you need a pathway for the users who get left out, or you're going to
create a rift in the community or even a fork. So many users who didn't want
systemd got stuck with it. Some people who were using systemd on neutral distros
found themselves having to make a decision, where there wasn't a need to before.
Systemd support was not uniform across the ecosystem (wrt build options), and
still isn't.&lt;/p&gt;
&lt;p&gt;The decisions affected a ton of users, ironically creating &lt;em&gt;more&lt;/em&gt; forks and
attempts to maintain control of one's computing -- the dreaded "fragmentation"
boogeyman, often coming from those who don't see the value in a diverse software
ecosystem. The fatal flaw of consolidation is the assumption that every
developer in the problem space can agree on how its problems get solved. Given
human nature, that is very flatly a false assumption. Every solution in software
has different benefits and pitfalls. Some optimize for CPU speed. Some for
memory. Some for I/O. Others for networking! No single project can solve every
problem in a space. The solution to this is coexisting via multiple projects,
all of which can solve the problem(s) in the style that they choose. The
openness of software diversity is why systemd had a chance of adoption at all.&lt;/p&gt;
&lt;p&gt;The ways that various distributions handled their decisions were decidedly high
temperature, and it's clear from the beginning of the systemd project that
it was intent on changing distributions. Denying that is to side with groups
trying to manipulate the ecosystem into carrying their software on every default
install. It's competitive behavior that has no place in a collaborative
environment.&lt;/p&gt;
&lt;p&gt;Not every piece of disruptive software causes this much trouble, though. One of
Lennart's other projects, PulseAudio, hasn't caused nearly as much trouble even
though it, too, has its share of critics. I posit that the limited scope of the
project and its less aggressive appeal to the ecosystem allowed it to coexist
with ALSA and JACK in a better way than systemd does with other inits. Many
environments can treat PulseAudio as "another supported stack" with a little
maintenance, without upsetting their software's architecture.&lt;/p&gt;
&lt;p&gt;Even the Wayland project, with its own brand of smugness and the specific goal
of replacing X11, hasn't done much to create an actual, damaging rift in the
communities they are near. Programs can support both Xorg and Wayland; at least
for the features that they both share.&lt;/p&gt;
&lt;p&gt;It could also just be the nature of init systems. You generally have to make
an all-or-nothing decision. Coexisting init or service systems are a somewhat
new idea, which is why most distributions choose a single init. Apparently it's
possible, though, to mix and match between OpenRC, s6, and runit. Neat.&lt;/p&gt;
&lt;p&gt;The technical and social are inescapably intertwined, just like politics is
to free software. Two sides of the same coin. The movement itself began as
the desire to fix a printer driver and compute &lt;em&gt;their way&lt;/em&gt;. Furthermore, the
decision of which packages to include in a distribution is also political. It
affects the "computing lives", for lack of a better phrase, of the users who
trust the distribution's choices on software, or are otherwise aligned with
their software philosophy. Anything that has far-reaching consequences on how
people interact or conduct themselves could be interpreted as political.&lt;/p&gt;
&lt;p&gt;So, what's really being called for when we're asked to "stahp being political"?
To ignore the social history of a project? To censor jokes we don't find
funny? To ignore prior debates, the outcomes of said debates, or the project
management of upstream? Software isn't developed in a vacuum, and software
with a big picture agenda (anything involving the desire to standardize is
automatically political) is not doing itself any favors by accusing others
of being problematic, when &lt;em&gt;the politics is the point&lt;/em&gt;. It comes off as
intellectually dishonest or in bad faith.&lt;/p&gt;
&lt;p&gt;Why &lt;em&gt;shouldn't&lt;/em&gt; we consider the whole when we make software decisions? If given
the choice between two technically identical upstreams, would you rather deal
with the upstream who's helpful and receptive to contributions and doesn't
mind if people don't use their software, or one that sees itself above you,
decides the structure of your system without helpful or constructive feedback
for contributions, wants every system you touch to run their software, and has a
nasty habit of displacing other software? You sure that last part is really an
oopsie? Am I "not allowed" to notice that part?&lt;/p&gt;
&lt;p&gt;I know what I'd choose, and it doesn't have to be highly personal. It's a matter
of one's own software standards. As a programmer, I find it shameful to push
one's project in a way that creates a lot of discord in the community. I don't
try to get people to use VGStash over Backloggery or their other favorite game
manager, but I might bring it up in a conversation if someone doesn't sound sure
of how they want to fix that problem, and it's relevant to the conversation.
Even then, I'd rather know that I have users because they like the software, and
not because I screamed about it from the digital rooftops or pressured people
into using it. That's a false merit, if anything.&lt;/p&gt;
&lt;p&gt;Coexisting as a software project is not particularly hard. I could not, in good
conscience, act in the ways that Lennart has regarding systemd, even if it was
my own project. While some of the responses he's gotten have been over the top
(death threats? Crazy), I think it's entirely fair to apply my personal standard
to my software choices, and the people who write them.&lt;/p&gt;
&lt;p&gt;I think there are many other people in free software who use similar criteria to
determine which software they use. This is especially important for software
that you think you might contribute to! If you don't like the ideas of the
author, or their tech choices, or their philosophy to software, those are valid
reasons to avoid their software! It's also valid to tell others that's your
reason. They don't have to agree with you.&lt;/p&gt;
&lt;p&gt;But, I have to question the motives and values of a person who tells me to stop
paying attention to the politics that happen from a project with a decidedly
political aim. The technical and social parts of free software cannot be
reliably separated, any more than a human being's identity can be separated
between heart and mind. Separating the art from the artist only shows half the
picture.&lt;/p&gt;
&lt;p&gt;Focus on the whole, and make the right decision for your computing. No outside
entity knows your needs better than you do.&lt;/p&gt;
&lt;p&gt;-z&lt;/p&gt;
&lt;p&gt;(Who can read the &lt;a href="https://www.gnu.org/gnu/manifesto.html"&gt;GNU Manifesto&lt;/a&gt; and not gather that it's political?)&lt;/p&gt;</content><category term="Software"/><category term="systemd"/><category term="Libre Software"/><category term="Linux"/></entry><entry><title>12-in-12, 2022 Edition</title><link href="https://zlg.space/blog/12-in-12-2022-edition.html" rel="alternate"/><published>2022-01-16T00:00:00-08:00</published><updated>2023-01-21T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2022-01-16:/blog/12-in-12-2022-edition.html</id><summary type="html">&lt;p&gt;Hello once again, and welcome to another year of 12-in-12, the initiative to
beat twelve games in twelve months and take out one's backlog! If you want a
history lesson, check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;; then you'll get
what's up here.&lt;/p&gt;
&lt;p&gt;Just as before, here's the successful hit list for 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dadish [Switch]&lt;/li&gt;
&lt;li&gt;A Short Hike [Switch]&lt;/li&gt;
&lt;li&gt;ToeJam &amp;amp; Earl [Genesis]&lt;/li&gt;
&lt;li&gt;Box Pusher [DSi]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That's it, unfortunately. Here's hoping for a better 2023! Read on for the 
details, as usual.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Hello once again, and welcome to another year of 12-in-12, the initiative to
beat twelve games in twelve months and take out one's backlog! If you want a
history lesson, check out &lt;a href="https://zlg.space/blog/12-in-12-2021-edition.html"&gt;my maiden post on the subject&lt;/a&gt;; then you'll get
what's up here.&lt;/p&gt;
&lt;p&gt;Just as before, here's the successful hit list for 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dadish [Switch]&lt;/li&gt;
&lt;li&gt;A Short Hike [Switch]&lt;/li&gt;
&lt;li&gt;ToeJam &amp;amp; Earl [Genesis]&lt;/li&gt;
&lt;li&gt;Box Pusher [DSi]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That's it, unfortunately. Here's hoping for a better 2023! Read on for the 
details, as usual.&lt;/p&gt;


&lt;h1&gt;January&lt;/h1&gt;
&lt;p&gt;I was bored one day and decided to fire up &lt;em&gt;Dadish&lt;/em&gt; [Switch], a cute platformer
about a radish, who's a dad (get it...?) gathering up his children who've run
off to play and gotten into trouble. The dialogue is silly and light-hearted,
and the art style is fairly clean, if a bit simple. The platforming mechanics
and bosses were somewhat disappointing for me, but I wasn't expecting a
masterpiece in the first place. I just learned it has a sequel, too, but I think
I've had my fill of it. It was still a fun little diversion, and I appreciate
that it wasn't 20-30 hours of collecting crap.&lt;/p&gt;
&lt;h1&gt;February&lt;/h1&gt;
&lt;p&gt;I played way too much Minecraft. Nothing of importance accomplished.&lt;/p&gt;
&lt;h1&gt;March&lt;/h1&gt;
&lt;p&gt;I couldn't resist picking up &lt;em&gt;A Short Hike&lt;/em&gt; [Switch] when it went on sale. I
love the art style, the humorous writing, and the general chill tone that the
game conveys. It lives up to its name, with roughly 4-5 hours of content to
cover. You can even speedrun it! Goodness. I beat it in like two days, but those
two days were quite lovely.&lt;/p&gt;
&lt;h1&gt;July&lt;/h1&gt;
&lt;p&gt;This month, my girlfriend and I finished our co-op playthrough of &lt;em&gt;ToeJam &amp;amp; 
Earl&lt;/em&gt; [Genesis] on the Genesis Classics Collection on Switch. We ended up using 
the savestates between levels, and sometimes rewound to better handle obstacles.&lt;/p&gt;
&lt;p&gt;I really dislike how many of the enemies just plain move faster than you. 
Dodging is not really a thing. Splitting up creates an animation, while 
re-uniting doesn't. Item mechanics while both characters are on-screen versus 
off-screen are somewhat interesting. It allows for better teamwork I guess. 
Overall, I feel like it's a game with better art than gameplay. Definitely a 
relic of the 1990s.&lt;/p&gt;
&lt;h1&gt;September&lt;/h1&gt;
&lt;p&gt;I finished a months-long project in tackling &lt;em&gt;Box Pusher&lt;/em&gt; [DSi]. It was a big
enough deal to &lt;a href="https://zlg.space/blog/box-pusher-level-data-for-solvers.html"&gt;write about it separately&lt;/a&gt;. Suffice to say, I will
not miss Sokoban, but I enjoyed the adventure in automated solvers.&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Sadly, progress in my backlog basically stopped after September. &lt;em&gt;Box Pusher&lt;/em&gt; 
took so much out of me, I ended up playing classics the rest of the year. Here's 
hoping I can get more done in 2023!&lt;/p&gt;</content><category term="Video Games"/><category term="Video Games"/><category term="12-in-12"/></entry><entry><title>GNOME as a Platform</title><link href="https://zlg.space/blog/gnome-as-a-platform.html" rel="alternate"/><published>2021-10-28T00:00:00-07:00</published><updated>2022-12-12T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2021-10-28:/blog/gnome-as-a-platform.html</id><summary type="html">&lt;p&gt;I came home today and strolled my usual Web haunts before diving into the
Underground, and stumbled across a piece by GNOME developer jwestman, titled
&lt;a href="https://www.jwestman.net/2021/10/26/platforms-compatibility-the-future-of-the-free-desktop.html"&gt;Platforms, Compatibility, and the Future of the Free Desktop&lt;/a&gt;. In it,
he advocates for GNOME (and by extension XDG) to become &lt;em&gt;the&lt;/em&gt; platform that
"everyone can work on together". Isn't it funny that the kind of people that
suggest this are always talking about the platforms, software, or APIs that
&lt;em&gt;they&lt;/em&gt; have control over? Does this person not understand why people choose
other software, or choose to create something different? Do they not understand
the risks present when the vast majority of your userbase is on one or two
platforms and a 0-day is found?&lt;/p&gt;
</summary><content type="html">&lt;p&gt;I came home today and strolled my usual Web haunts before diving into the
Underground, and stumbled across a piece by GNOME developer jwestman, titled
&lt;a href="https://www.jwestman.net/2021/10/26/platforms-compatibility-the-future-of-the-free-desktop.html"&gt;Platforms, Compatibility, and the Future of the Free Desktop&lt;/a&gt;. In it,
he advocates for GNOME (and by extension XDG) to become &lt;em&gt;the&lt;/em&gt; platform that
"everyone can work on together". Isn't it funny that the kind of people that
suggest this are always talking about the platforms, software, or APIs that
&lt;em&gt;they&lt;/em&gt; have control over? Does this person not understand why people choose
other software, or choose to create something different? Do they not understand
the risks present when the vast majority of your userbase is on one or two
platforms and a 0-day is found?&lt;/p&gt;


&lt;p&gt;Something jwestman doesn't comprehend about the libre software world, I think,
is that its diversity is both a help and a hindrance. To get the best software
from the community, it needs to be able to grow, change, and adapt at the
individual level. Those adaptations will create the behavior of the ecosystem.
This is observable in wildlife, as well.&lt;/p&gt;
&lt;p&gt;Congregating the majority of an ecosystem so that they all use the same platform
is not helpful to anyone except the builder of the platform and those that
depend on them. It's &lt;em&gt;commercial&lt;/em&gt; behavior, not &lt;em&gt;social&lt;/em&gt;. These projects can
exist just fine on their own without trying to get everyone to use them.&lt;/p&gt;
&lt;p&gt;The overarching goal of organizations like GNOME are to have control over the
future of the software ecosystem. If you provide the platform, you control the
platform, you control the users. If you define the standards, you control the
platform.&lt;/p&gt;
&lt;h1&gt;Where's the incentive?&lt;/h1&gt;
&lt;p&gt;What do I gain from XDG and GNOME as a software developer? It's yet another
piece of software or interface I don't control, forcing me to update &lt;em&gt;my&lt;/em&gt;
software if I want to remain functional &lt;em&gt;ON&lt;/em&gt; your platform. It's based on
bureaucratic consensus, where decisions are gatekept by the top two funded and
top two largest implementations (GNOME and KDE). If I disagree with a decision
or propose an addition to the standards, or the interfaces, what hope does my
voice have of being heard and given honest consideration? That's the problem I
have with these organizations that are companies pretending to be communities,
so they can gain resources from the community.&lt;/p&gt;
&lt;p&gt;GNOME has not demonstrated themselves to be a good player when it comes to
collaboration. A lot of concerns have been cast aside, and their chief funding
company, Red Hat, employs these developers.&lt;/p&gt;
&lt;p&gt;Do tell me why I would want to work with such an organization. I challenge GNOME
to show the choices they allow within their platform, especially in light of the
recent &lt;em&gt;dwindling&lt;/em&gt; in options across GTK, GNOME, and GNOME core apps like the
file chooser and Nautilus. Interestingly, jwestman does a rhetorical trick where
they characterize the choices GNOME offers as "real" while other choices are
less "real". If someone switches away from GNOME, there is still a cost!&lt;/p&gt;
&lt;p&gt;GNOME is and has been obsessed with image, UX, branding, and community outreach
the past 5-8 years. To increase broader appeal, you dumb things down. Novice
users overwhelmed by options? Remove some, or hide them in dconf/gsettings!
Marketing alone isn't going to make a good platform, and neither is suggesting
people use your platform because of some fake appeal to collaboration that
doesn't hold to scrutiny if you look at your bug tracker.&lt;/p&gt;
&lt;p&gt;The direct result of coalescing on any standard is to give power to those who
wrote the standard. I do not trust the groups in charge of FreeDesktop or GNOME,
so I have no reason to learn how to write a GNOME app.&lt;/p&gt;
&lt;h1&gt;Some Thoughts on the GNOME Experience&lt;/h1&gt;
&lt;p&gt;For the record, &lt;del&gt;I'm a daily user of GNOME right now&lt;/del&gt; (nope, lol &lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;),
since my laptop shipped with it as the default environment and I chose to try my
best to set it up, so I could zero in on what I dislike about it.&lt;/p&gt;
&lt;p&gt;It's a struggle to use this environment. It's a struggle to navigate the
bullshit XDG docs for defining a desktop file, so I could make a launcher for
PICO-8. The one GUI program I found to manipulate the menu and launchers didn't
have a clear interface as to which fields meant what, and the launchers it &lt;em&gt;did&lt;/em&gt;
produce didn't work. I ended up returning to the spec, and fucking around until
something finally worked. Then I needed a systemd unit to get some semblance of
"run this bash script once on boot" so I could set a sysfs value while waiting
for an EC firmware fix. GNOME also can't switch audio output when I plug in
headphones, and there isn't a GUI to fetch programs that have tray icons, like
Nextcloud and Steam. I have to use the Task Manager clone that GNOME has and
make sure it's not in the process list. (&lt;code&gt;ps aux | grep&lt;/code&gt; is loads better btw) I
often leave Steam, Nextcloud, and Mumble all in their own workspaces, to avoid
losing the windows. How on Earth is that better than a system tray!? The worst
part about this is a naive GNOME user would assume these programs are broken,
when they are not: GNOME simply doesn't implement tray icons! Load them on any
&lt;em&gt;other&lt;/em&gt; DE, and I can access the tray icons with no problem.&lt;/p&gt;
&lt;p&gt;Add to that the uselessness of the icon spec. For defining something visual, you
might want to provide a complete set of blank or example icons. Nobody wants to
navigate through the ridiculous amount of XDG-defined icon names and try to
figure out the correct one to use. Can't we use sane names, and document them
better? Half the problem are the atrocious docs. They're not written for app
developers or even independent, self-taught folks. They're written &lt;em&gt;for other
standards writers&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Honestly it just feels like GNOME and XDG, if we were to consider them "a
platform", are designed to be difficult to integrate with, and you're stuck with
whatever Trolltech/KDE and Red Hat/GNOME decide on for their systems because
there's no evidence that any outside opinion would be given consideration or be
able to get any ideas merged into the standard(s).&lt;/p&gt;
&lt;p&gt;Every step of the way of my using this "platform" is a disaster. It's like it
actively doesn't want me to use it, or enjoy myself at the computer.&lt;/p&gt;
&lt;p&gt;My first Linux experience was on Ubuntu, back in 2005. It used GNOME 2 and had
tons of options and supported a great amount of shit. I got bored and frustrated
trying to customize it, so I moved onto Fluxbox and Openbox, then got into
tiling WMs: dwm, awesomewm, ratpoison, finally settling on i3-gaps.&lt;/p&gt;
&lt;p&gt;So, GNOME used to be good, and I come from an angle of control and
customizability. GNOME 3 is not good, and as a libre software developer I do not
see GNOME as a stable platform to build software on. Between version 2 and
3 there was a huge upheaval, both technical and social. GTK3 to GTK4 is already
pissing off developers and some users. What do you really have to offer other
than an API that doubles as a treadmill?&lt;/p&gt;
&lt;h1&gt;Choice is Empowering&lt;/h1&gt;
&lt;p&gt;The diversity of the software ecosystem is precisely why initiatives like XDG
could even form. Were this not possible, the platform we'd be using would in
fact be called GNU, or we'd be stuck on XFree86 or some other big project
nobody wanted to fork from at first. It's odd to me that those peddling new
technologies -- pipewire, wayland, GNOME3/4, systemd, they all lament that
there are choices in the environment and seek to actively replace other choices
instead of trying to just be a good choice. This competitive approach does not
convey an air of collaboration at all.&lt;/p&gt;
&lt;p&gt;Why should people all use one platform? "So they can gain the benefits of
standardization." Yeah I get the boilerplate answer, but think about long term
risks of using someone else's platform to build &lt;em&gt;your&lt;/em&gt; program. If FreeDesktop
changes something, now you have to change with them. "Bitrot happens," one might
riposte. Bitrot is an artificial phenomenon caused by other people intentionally
changing things so that other software does not work. It's not a magic force of
nature.&lt;/p&gt;
&lt;h1&gt;A Fractal of Projects&lt;/h1&gt;
&lt;p&gt;I think the last part of jwestman's post was the most accurate. I would take it
a step further: &lt;em&gt;computing itself&lt;/em&gt; is fragmented. We use computers for different
reasons; already, we cannot reasonably expect every interface or API to be
suitable for everyone. Standardization helps for interoperability, yes, but to
make the most of that, you need a stable spec from a level-headed, experienced
group of API writers and implementers, developers who are aware of computer
users who don't use MacBook Airs or desktops with kilowatt power supplies, and
people who are good at simplifying.&lt;/p&gt;
&lt;p&gt;The best standards are the ones easiest to understand and easiest to implement.
But another truth is, some have seen the downsides of standardization and
fully understand what you're giving up when you "just use XDG" or "just use
this framework", etc. You're inviting an entirely new set of bugs into your
code, and problems to your project. And they don't come up at first. At first,
integration's great! You &lt;em&gt;just&lt;/em&gt; read the spec and tested it a bunch. It's when
change happens upstream, long after you've committed resources to this platform,
that it bites you in the ass. And by that point, you're dealing with the Sunken
Cost fallacy. Congrats, your pet project is now dependent on Daddy Platform. Do
you beg and plead with upstream to address your problem, refactor to suit Daddy
Platform's preferences (i.e. making development decisions FOR you), or
fork/restart on another toolkit? If you choose the latter, now you're stuck for
a minimum of a few months, if your tool is non-trivial.&lt;/p&gt;
&lt;p&gt;If you build from scratch, there are only a few things that can change and upset
your project. First is any libraries you happen to use, then the standard
library of your language. Lastly, the kernel.&lt;/p&gt;
&lt;p&gt;That may result in a less integrated app, but I'm not concerned with my software
looking like it belongs in GNOME or KDE. We are never going to have One True
Interface that everybody likes. We won't have One True Audio Stack, or One True
Networking Stack. This pursuit in finding The (only) One seems... almost
religious.&lt;/p&gt;
&lt;p&gt;Personally, I like the vast software diversity available to me in the libre
software world. If XDG was the only game in town, it'd be really dull. Same for
Apache, or even just GNU. What we need is for platforms to try being platforms
on their own merits instead of parroting advocacy.&lt;/p&gt;
&lt;h1&gt;Choice is Inspiring&lt;/h1&gt;
&lt;p&gt;One of the most exciting things I experienced in libre software was realizing
"I'm not stuck with Paint or Paint Shop Pro or Photoshop!" I learned about
The GIMP, and Krita, MyPaint, mtpaint, libresprite, and so on. If we take the
ideology of "consolidate and collaborate" to its conclusion, there would only be
one image editor available for Linux, and it would have such a slew of features
it would be an unmaintainable mess. I feel the same way about platforms. Whether
it's elementaryOS, Tizen, enlightenment, GNOME, or KDE, each one has a different
flavor of GUI, with conflicting or oddly accenting views on how a GUI should
behave. As I mentioned before, humans use computers differently. That should
reflect in their interfaces, and yes, even their choice of software.&lt;/p&gt;
&lt;p&gt;As for The Free Desktop, it's been around for a long time, and it's practically
a meme at this point. What people are shooting for with the Linux desktop now is
mainstream appeal. That is not going to result in improved software, any more
than adding more people to the Internet will improve its discourse. What we're
more likely to see is less helpful bug reports, burned out or frustrated triage
devs, lots of stupid community positions to fill, arbitrating all this labor
coordination now needed from the influx of users... it sounds a lot like the way
a business grows...&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;So yeah, I dunno who jwestman thinks they're fooling. A platform isn't what
GNU/Linux needs. It needs APIs that can be left alone for a year or two and not
need babysitting because upstream took Adderall and is gazing at glowsticks
while they design the next iteration. If things are designed well, they
don't need to be changed as much. Platforms need to be stable, predictable,
reproducible, portable, and perhaps MOST importantly, slow moving!&lt;/p&gt;
&lt;p&gt;Ideally, we shouldn't be asking anyone to waste lines of code on a standard
that's not ready to be finalized in print. It's disrespectful to ask developers
to rely and build on something you can't make any stability or mutability
promises on. It's like building a Jenga tower on a table someone lent to you,
but they shake the table every so often, ruining your progress up to that point.
Would you want to build on that surface anymore? I wouldn't.&lt;/p&gt;
&lt;p&gt;Stay independent, fellow devs.&lt;/p&gt;
&lt;p&gt;-z&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;I no longer run GNOME on my laptop, mostly due to the lack
of a proper tray without using an extension, and issues capturing windows in
OBS. There doesn't appear to be a way to run or build OBS so that it sees both
Wayland and X11 windows. Since most of my software was X11, I switched to XFCE
until I get the gumption to put together an awesome-wm or i3 config for my
laptop. While it still uses XDG standards, it at least doesn't limit me in how I
arrange my UI or spin up my GPU for fancy effects. It's quite adaptable and gets
out of the way. It also hasn't crashed yet.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Software"/><category term="GNOME"/><category term="XDG"/><category term="Libre Software"/></entry><entry><title>Twelve Years of The After Years</title><link href="https://zlg.space/blog/twelve-years-of-the-after-years.html" rel="alternate"/><published>2021-10-23T00:00:00-07:00</published><updated>2021-10-23T00:00:00-07:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2021-10-23:/blog/twelve-years-of-the-after-years.html</id><summary type="html">&lt;p&gt;The year is 2009. Square Enix releases a digital sequel to the long-loved Final
Fantasy 4, titled "The After Years". It concerns the story of Ceodore -- the
son of FF4's protagonist, Cecil -- and &lt;em&gt;his&lt;/em&gt; journey in saving the world from
a mysterious moon that appears. The After Years pulls in all of the characters
from the prior game, extends character development and story for a lot of
characters, and introduces more; most of them simply the progeny of some main
character from the prior game. Fan bait!&lt;/p&gt;
&lt;p&gt;I had recently 100%ed Final Fantasy 4 Advance, back around 2008, so naturally
I bought its sequel! However, it was not quite what I expected. While the new
characters were welcome, a lot of the changes to gameplay negatively impacted
my experience for the entire game, despite my initial interest in them. This
article isn't a review, per se, but I will briefly discuss what I didn't like
about the game, to add context.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;The year is 2009. Square Enix releases a digital sequel to the long-loved Final
Fantasy 4, titled "The After Years". It concerns the story of Ceodore -- the
son of FF4's protagonist, Cecil -- and &lt;em&gt;his&lt;/em&gt; journey in saving the world from
a mysterious moon that appears. The After Years pulls in all of the characters
from the prior game, extends character development and story for a lot of
characters, and introduces more; most of them simply the progeny of some main
character from the prior game. Fan bait!&lt;/p&gt;
&lt;p&gt;I had recently 100%ed Final Fantasy 4 Advance, back around 2008, so naturally
I bought its sequel! However, it was not quite what I expected. While the new
characters were welcome, a lot of the changes to gameplay negatively impacted
my experience for the entire game, despite my initial interest in them. This
article isn't a review, per se, but I will briefly discuss what I didn't like
about the game, to add context.&lt;/p&gt;


&lt;p&gt;The Moon Phase system turns the game's various damage types into its own form of
Pokémon. Each phase makes one of the four types of damage stronger, and another
weaker. This idea &lt;em&gt;sounds&lt;/em&gt; cool on its surface, but changing the moon phase is
done only by resting via Tent or Cottage, sleeping in a bed, or waiting long
enough gameplay time for it to automatically advance. These mechanics turn the
system into something tedious and unnecessarily annoying, forcing you to pad
your inventory with Tents to have any sort of control over the phases.&lt;/p&gt;
&lt;p&gt;Co-operative moves, called Bands, are another mechanic that seems interesting at
first. The moves themselves are cool: they allow multiple characters to band
together and pull off things like a team-wide heal or buff, a unique magic
attack that neither character has on their own, etc. The catch is both
characters get their turns tied up to perform the move (reasonable!) and the
move itself takes about 3 times as long to cast as anything else. That
translates to a good 7-10 seconds you have two characters sitting like ducks.
You also don't know about what bands are available until you attempt to Band,
and choose the correct menu option on the second character. As a result, there
were a number of Bands I simply never acquired.&lt;/p&gt;
&lt;p&gt;Next, the encounter rate was frustratingly inconsistent. The After Years was
originally a mobile game, and sadly it shows. Most areas contain a higher
leveled enemy ready to swoop and murder a member or two of your party, almost as
if to add an arbitrary punishment to exploring. On a related note, the enemies
you run into tend to be MUCH faster than you. I experienced this throughout the
entire game, even after grinding at the end of the game.&lt;/p&gt;
&lt;p&gt;Lastly, there are a bunch of items across the 8 or so episodes that are
completely missable, and missing them blocks you from getting some of the best
equipment in the game later. Yes, optional content is optional, but permanently
missable things in an RPG leads to pointless replays.&lt;/p&gt;
&lt;p&gt;So, with the character of the game established, I played it off and on for the
first few years of having the game. Made it pretty far, about halfway through.
However, the mechanics were really agitating me, and I was frustrated. Final
Fantasy 4 was a great game; was I just not appreciating the design of its
sequel? The characters weren't as well written as the prior game, either, but
the story was still compelling enough to make me want to see the next scene.&lt;/p&gt;
&lt;p&gt;It sat there, unplayed, for a good 5-6 years. Whenever I thought about playing
it, I'd think about another classic JRPG I'd rather play, or a different game on
my backlog that felt more rewarding. When I came back to it, I played through
every episode until the last one, where it sat again for 1-2 years. I started
the end of the game some time last year, in 2020, and finished it yesterday,
2021-10-12.&lt;/p&gt;
&lt;p&gt;The After Years was a sort of "dark horse" game for my backlog. It's the game
that I had the most trouble coming back to and advancing. Don't get me wrong,
I've played through some bad games in the past, but none stayed in the backlog
for &lt;em&gt;twelve years&lt;/em&gt;. It's a ridiculous amount of time for a game to sit around
unbeaten. Your mileage may vary, but there's my take on it.&lt;/p&gt;
&lt;p&gt;Back in 2016, I started the vgstash project to manage my backlog; by that point
I had more money than I did time, so the collection of unfinished games began to
get bigger. The After Years was one of the first games to stick around long
enough to consider tracking. I made the software to practice programming, and
to optimizing my gaming time so I could catch up on my backlog.&lt;/p&gt;
&lt;p&gt;In a weird sense, The After Years will be a special game for me going forward.
Not because it was particularly well designed. It's not. (sorry, Matrix
Software. This one was just a miss.) It's special because it was one of the
stubborn games in my backlog. It motivated me to write code to solve my own
problem. It helped me see &lt;em&gt;why&lt;/em&gt; I was having a backlog problem, and &lt;em&gt;how&lt;/em&gt; to
solve it. Now that it's beaten, I can also say it gave me more patience. Not
only for beating a game, but the greater lesson of waiting to buy a game until
you have the space in your life for it.&lt;/p&gt;
&lt;p&gt;Great deals happen all the time, even as much as 80%, and it happens on a yearly
cycle. Since mainstream gaming is going digital (much to my dismay), the need
to have a game right when it comes out is moot. Most games are published in
unfinished form these days, and even if they are complete and just get DLC,
there's always a "Definitive Edition" a few years later.&lt;/p&gt;
&lt;p&gt;This lines up very closely to the "Patient Gamers" ideology of waiting to buy
games so you don't get burned by preordering or other &lt;abbr title="Fear Of Missing Out"&gt;FOMO&lt;/abbr&gt; tactics. The idea
is, if the game is good then people will talk about it, and eventually it will
go on sale or even become good if it was released unfinished. It's a wise way to
purchase in the chaotic world of games publishing.&lt;/p&gt;
&lt;p&gt;In the twelve years since starting The After Years, I went through some of my
own character growth and struggles, just as Cecil and the gang did. I started
and ended a relationship, injured my back, reconnected with my dad, met and
moved in with my current SO, became more active in libre software, lost my dad
and cat, moved in with the SO's parents, endured the loss of her father with her
family, and now today... one step closer to a clear backlog, and relieved to be
done with such a long, flawed game that I wanted to like but ultimately didn't.&lt;/p&gt;
&lt;p&gt;The lesson to learn from all of this is twofold: (a) don't buy games you aren't
sure you'll like, especially if they're digital, and (b) it's okay to remove a
game from your collection if you don't enjoy playing it. I chose to stick it out
through The After Years because I really wanted to know the story and finish the
game legitimately, but pride isn't exactly a good reason. :) At some point, you
have to be conservative with your use of time or you'll feel like the time you
&lt;em&gt;do&lt;/em&gt; spend gaming is wasted. Games are entertainment, and you're supposed to
have fun.&lt;/p&gt;
&lt;p&gt;What games have taken &lt;em&gt;you&lt;/em&gt; forever to beat? I'd love to hear about other games
people have had trouble finishing. Hit me up at &lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#122;&amp;#108;&amp;#103;&amp;#43;&amp;#98;&amp;#97;&amp;#99;&amp;#107;&amp;#108;&amp;#111;&amp;#103;&amp;#64;&amp;#122;&amp;#108;&amp;#103;&amp;#46;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;"&gt;&amp;#122;&amp;#108;&amp;#103;&amp;#43;&amp;#98;&amp;#97;&amp;#99;&amp;#107;&amp;#108;&amp;#111;&amp;#103;&amp;#64;&amp;#122;&amp;#108;&amp;#103;&amp;#46;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;-z&lt;/p&gt;</content><category term="Video Games"/><category term="Final Fantasy"/><category term="Backlogs"/><category term="Video Games"/><category term="Wii"/></entry><entry><title>Purism Librem 14v1 Review</title><link href="https://zlg.space/blog/purism-librem-14v1-review.html" rel="alternate"/><published>2021-10-01T00:00:00-07:00</published><updated>2022-02-11T00:00:00-08:00</updated><author><name>zlg</name></author><id>tag:zlg.space,2021-10-01:/blog/purism-librem-14v1-review.html</id><summary type="html">&lt;p&gt;Purism is a small company in the hardware space aiming to provide software
freedom (via their Debian-based PureOS and coreboot-based Pureboot) while also
protecting your privacy and security. One of the key selling points to their
hardware are killswitches, which allow you to physically disconnect internal
hardware to prevent abuse. The Librem 14 has two such switches: one controlling
the webcam and microphone, and the other controlling the Wi-Fi and Bluetooth
radios.&lt;/p&gt;
&lt;p&gt;Due to COVID, supply shortages, and other difficulties of the business, Purism
has had some trouble meeting their shipping obligations; this delay has caused a
number of people to seek refunds or issue chargebacks. Backers for the Librem 5
in particular seem to have rough luck getting their hardware. I was a backer for
the OpenPandora back in 2010, and never received a unit, so I understand their
frustration when it comes to not getting what you pay for. &lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;1&lt;/a&gt;&lt;/sup&gt; I must note,
however, that my experience with Purism was better than I anticipated.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Purism is a small company in the hardware space aiming to provide software
freedom (via their Debian-based PureOS and coreboot-based Pureboot) while also
protecting your privacy and security. One of the key selling points to their
hardware are killswitches, which allow you to physically disconnect internal
hardware to prevent abuse. The Librem 14 has two such switches: one controlling
the webcam and microphone, and the other controlling the Wi-Fi and Bluetooth
radios.&lt;/p&gt;
&lt;p&gt;Due to COVID, supply shortages, and other difficulties of the business, Purism
has had some trouble meeting their shipping obligations; this delay has caused a
number of people to seek refunds or issue chargebacks. Backers for the Librem 5
in particular seem to have rough luck getting their hardware. I was a backer for
the OpenPandora back in 2010, and never received a unit, so I understand their
frustration when it comes to not getting what you pay for. &lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;1&lt;/a&gt;&lt;/sup&gt; I must note,
however, that my experience with Purism was better than I anticipated.&lt;/p&gt;


&lt;p&gt;I ordered my Librem 14v1 in March 2021, when the website said "Shipping in May".
May came and went, and I sent out an e-mail asking them what happened to my
order. I gave it some time, assuming I wasn't the only one with shipping delays,
and reached out again in August. Eventually, a Purism employee reached out to me
via their personal e-mail address to deduce the issue.&lt;/p&gt;
&lt;p&gt;It turns out that shipping confirmation was sent to me in early July. When I
read the e-mail from the employee, I checked my e-mail client configuration.
Lo and behold, it wasn't syncing my Spam folder at all! It had also been more
than 30 days since the e-mail was sent, so Spam was empty. I updated the
configuration, confirmed proper receipt of e-mail from Purism, and my order was
marked Priority to ensure it got out sooner. I received the laptop on
2021-09-15. While I would've preferred it in May or June, as advertised, I'm
just glad to have actually gotten the product. I was worried that I'd funded
another OpenPandora... it was just &lt;abbr title="Problem Exists Between Chair and Keyboard, i.e. user error"&gt;PEBCAK&lt;/abbr&gt;! How apropos. :)&lt;/p&gt;
&lt;p&gt;So, with that saga over, let's take a look at the thing and see how it holds up!&lt;/p&gt;
&lt;h1&gt;Specifications&lt;/h1&gt;
&lt;p&gt;Note: Purism offers a number of different choices for storage, RAM, and OS. I
opted for the model with 16GB RAM, 512GB NVMe SSD, and PureOS with Librem Key and
PureBoot.&lt;/p&gt;
&lt;!-- TODO: turn this into a table or definition list --&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Dimensions:  322mm x 17mm x 220mm
Weight:      1.4kg
Screen:      14&amp;quot; matte, 1920x1080 @ 60Hz
CPU:         Intel Core i7 10710U (Comet Lake)
             4.70GHz, 6 cores, 12 threads
RAM:         16GB DDR4 (up to 64GB)
Graphics:    Intel UHD Graphics 620, 9th gen (Coffee Lake), device 9BCA
Wi-Fi:       Atheros AR9462, 802.11n
Audio:       Intel Comet Lake PCH-LP cAVS
Ethernet:    Realtek RTL8111 series Gigabit Ethernet
Bluetooth:   Atheros AR3012 (NON-FREE BINARY DRIVER ath3k REQUIRED)
Storage:     Samsung NVMe SSD SM981/PM981/PM983
Ports:       1x HDMI 2.0
             2x USB 3.1 Type-A
             1x USB 3.1 Type-C, data only (left side)
             1x USB 3.1 Type-C, with PD (right side)
             1x DC-IN jack, barrel style connector
             Genesys Logic SD Card Reader
             3.5mm audio (mic-in and headphone-out combined)
Keyboard:    Full size chiclet, QWERTY, no numpad, backlit with 5 light levels
Chassis:     Aluminum, black matte finish; flat, good for stickers
             Five grommets on the bottom to improve airflow and add stability
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h1&gt;Hardware Experience&lt;/h1&gt;
&lt;p&gt;Out of the box, the laptop feels heavy enough to know you're carrying it, but
light enough to where it's not a big deal &lt;em&gt;to&lt;/em&gt; carry it. The aluminum chassis
feels nice, but due to it being matte black, smudges and fingerprints are an
inevitability. The backlight on the keyboard is clearly uneven in places --
mostly around Caps Lock, backslash, and the Logo key.&lt;/p&gt;
&lt;p&gt;Typing on the keyboard isn't quite as satisfying as my TypeMatrix, but I
recognize my choice of input isn't exactly popular. For what it is, the Librem's
chiclet keyboard gets the job done and isn't particularly weird, aside from the
right side Shift key. It lacks a Menu key, so those of us who like Compose keys
get stuck losing right Alt.&lt;/p&gt;
&lt;p&gt;The webcam supports up to 1280x720 pictures and video, but frame rate decreases
with resolution:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1280×720: 10fps&lt;/li&gt;
&lt;li&gt;960×720: 15fps&lt;/li&gt;
&lt;li&gt;640×480: 30fps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You're not using this for OnlyFans or pro streaming. :) Video calls with family
or coworkers will do.&lt;/p&gt;
&lt;p&gt;The grommets on the bottom aren't bad, but the one in the back center feels like
one good snag will take it off. It's made out of a harder rubber than the other
four, however, so maybe it's sturdier than it appears. I'd rather be careful
than find out. :)&lt;/p&gt;
&lt;h1&gt;Software Experience&lt;/h1&gt;
&lt;p&gt;The default PureOS uses GNOME 3 Wayland on top of systemd. It has a decent
amount of packages pre-installed, like LibreOffice, the GNOME suite,
Thunderbird, Polari, Boxes, TeXinfo, and some other extras.&lt;/p&gt;
&lt;p&gt;This is the first time I've 'committed' to learning a GNOME 3 interface, and
while some of its features are handy, the window management workflow seems like
it's on rails. I could maximize-half horizontally, but not vertically (to have
two wide but short windows stacked together). Resizing uses Meta+Middle Click
instead of Meta+Right Click. There's no equivalent to the taskbar, so you lose
the minimize paradigm; the workflow seems to encourage putting each program
in its own workspace and having the user depend on Meta+Tab to swap between
programs. I haven't found a more sane way to navigate with it.&lt;/p&gt;
&lt;p&gt;Hitting Meta to get the overview is kinda neat since it doubles as a launcher
and window switcher. If I wanted to improve GNOME, I would add a drop-down style
terminal for drive-by commands, and an info widget like conky. Keyboard toggle
mapping targets for Bluetooth and WiFi would be nice, too.&lt;/p&gt;
&lt;h1&gt;What I Like&lt;/h1&gt;
&lt;p&gt;Requiring the use of the Librem Key in order to boot is pretty awesome. It adds
risk to losing the key, but I've done pretty good at not losing my car keys.
However, I don't feel comfortable attaching it to my physical keyring. I'll
need to come up with another strategy in the future, but things are working
okay for now.&lt;/p&gt;
&lt;p&gt;Most of the system does indeed work out of the box. I had some issues with
Cheese wrt the camera killswitch, but rebooting seemed to fix it and I haven't
had it happen since. Bluetooth also didn't work out of the box due to needing
a non-free binary blob. Everything else I've thrown at this Debian derivative
has worked as I expect it to, including non-free stuff like Minecraft, Discord,
PICO-8, and Steam.&lt;/p&gt;
&lt;p&gt;The backlit keyboard is a game changer when you're trying to relax in bed &lt;em&gt;and&lt;/em&gt;
be creative. It's a full sized keyboard, too, so despite a few key placements
being weird, it's not terrible for a staggered QWERTY board.&lt;/p&gt;
&lt;h1&gt;What I Don't Like&lt;/h1&gt;
&lt;p&gt;I had to correct an issue with the power IC initializing to weird values of
charging thresholds in &lt;code&gt;/sys/class/power_supply&lt;/code&gt;. On one hand, I learned how
to make a run-on-boot script work with systemd. On the other, why was such a
feature not already baked into the OS? Both the autorun script (like rc.local)
and the battery issue; the latter is said to be getting fixed in an upcoming &lt;abbr title="Embedded Controller"&gt;EC&lt;/abbr&gt;
firmware update. Maybe a better question is: Why doesn't GNOME have adequate
battery charging threshold settings? If I was a 'normie', I'd be stuck with a
laptop at 2% battery until the &lt;abbr title="Embedded Controller"&gt;EC&lt;/abbr&gt; update ships.&lt;/p&gt;
&lt;p&gt;There's not an easy way to toggle function of the touchpad from the keyboard.
Prior Librem models seem to have this feature via the Fn key (according to
pictures), but I see no such method on the Librem 14. Sometimes I want to go
keyboard-only, like when writing this review.&lt;/p&gt;
&lt;p&gt;The 'A' key feels mushier than the other keys. I've hit it with canned air a few
times and it's somewhat loosened, but maybe it's just a side effect of chiclet
keyboards. My TypeMatrix Dvorak fits across the laptop really well, so if it
gets unbearable, I can always bust it out.&lt;/p&gt;
&lt;p&gt;Some programs that I consider essential weren't installed out of the box. Some
were understandable, but you'd expect a free software platform running GNOME
to offer The GIMP for an image editor at the very least. PureOS doesn't appear
to ship with an image editor so this seems like an odd choice, or perhaps an
oversight.&lt;/p&gt;
&lt;p&gt;For the record, the other programs are scdaemon, vim, htop, and tmux. I can
understand their exclusion since the default install is desktop-oriented, but
lacking scdaemon when they support the Librem Key is another odd decision. Not
every Librem owner was interested in such a device, but it makes sense to put it
in the default installation.&lt;/p&gt;
&lt;p&gt;The Bluetooth controller requires a non-free binary driver. One of the chief
reasons to buy Purism is software freedom. While the FSF makes exceptions for
microcode, it's inconsistent to claim support for freedom while sporting
hardware that's literally unusable with free software drivers, at present.&lt;/p&gt;
&lt;p&gt;While we're at it, let's discuss the Management Engine. It is not fully
disabled, due to the way Intel's architecture is designed. In the interest
of fairness, &lt;a href="https://puri.sm/posts/reverse-engineering-the-intel-management-engine-romp-module/"&gt;Purism wrote about their efforts of reverse engineering the 
&lt;abbr title="(Intel) Management Engine"&gt;ME&lt;/abbr&gt;&lt;/a&gt;, and &lt;a href="https://puri.sm/posts/deep-dive-into-intel-me-disablement/"&gt;why certain parts needed to remain&lt;/a&gt;. It's just a shame that it's
this difficult to provide libre x86_64 hardware due to these enterprise-focused
features that enable abuse in the wrong hands.&lt;/p&gt;
&lt;p&gt;Due to choosing GNOME 3 on Wayland, livestreaming is a nightmare, especially if,
like me, you ended up using a mix of xorg and Wayland programs. I gave it
nearly 5 months... GNOME (and Wayland) are still unable to meet the same use
cases that xorg has fulfilled for years. As such, I moved to XFCE for now, until
I get back to Fluxbox or i3. For all the fancy features, if it doesn't work with
core use-case software, it's useless.&lt;/p&gt;
&lt;h1&gt;What I Hope For&lt;/h1&gt;
&lt;p&gt;Above all else, I want to see continued improvement on Purism's behalf. On
messaging, and pushing for their next devices to be even &lt;em&gt;more&lt;/em&gt; libre. I can
appreciate purism itself as an ideal rather than an absolute goal, but
completely free hardware &lt;em&gt;can&lt;/em&gt; be achieved. Perhaps we'll be using RISC-V some
time in the future.&lt;/p&gt;
&lt;p&gt;I hope Purism moves their focus away from GNOME, with the upcoming changes for
GTK 4 essentially pushing non-GNOME development out of the circle. Solus and
others have expressed interest in moving to the Enlightenment stack. That will
be an interesting development if done. It's unfortunate, because Purism has
contributed to both GTK and GNOME, but the tide is against them in crafting
their own experience on the GNOME stack. I'd rather see their efforts go where
they'll be appreciated and move the desktop forward.&lt;/p&gt;
&lt;p&gt;Lastly, I hope this machine helps me in becoming more creative. I'm trying to
take a hands-off approach so I can focus on programming. I gave GNOME 3 an
honest try, and as I suspected it still isn't up to par.&lt;/p&gt;
&lt;h1&gt;GNOME Dislikes&lt;/h1&gt;
&lt;p&gt;(Yep, special enough for its own section)&lt;/p&gt;
&lt;p&gt;Some things like Alt+Tab have unintuitive function compared to its use in other
environments. Super+Tab is what you &lt;em&gt;really&lt;/em&gt; want most of the time. Oh, and
selecting sub-windows or tabs of a program is a separate keystroke. I see &lt;em&gt;why&lt;/em&gt;
it was done, but the usability on a freeform "every window, period" flow is
ruined.&lt;/p&gt;
&lt;p&gt;You also can't launch a program twice from the overview to get a second window,
like gnome-terminal; you have to focus the terminal and bring up a new window
instead. Wat?!&lt;/p&gt;
&lt;p&gt;Can we talk about how hard it is to get a custom program to show up under Show
Applications? You have to write an INI-style &lt;code&gt;.desktop&lt;/code&gt; file, move it to &lt;em&gt;just&lt;/em&gt;
the right place, and wait for GNOME to figure it out and display it. The GUI to
make a launcher is not very good, and quite confusing. I had better luck reading
the desktop file spec; it too was bad in its own verbose and abstract
way, like most other FDO documents.&lt;/p&gt;
&lt;p&gt;Why oh why is subpixel antialiasing enabled for font rendering? It's ugly and
makes screenshots non-portable between displays. I don't want to see bits of
color on the edge of my text. You need higher display dpi to get the full
'benefit' of it anyway. You can change this via Tweaks, which tells me GNOME
ships with this on by default.&lt;/p&gt;
&lt;p&gt;Sometimes, windows like the Nextcloud client or PICO-8 won't show window
decorations, so exiting or manipulating them isn't as easy as it is in a regular
window manager. Part of this may be due to GNOME running in Wayland instead of
Xorg.&lt;/p&gt;
&lt;p&gt;OBS Studio cannot seem to record the entire screen, or PICO-8; the window does
not show up in the list of windows to capture. This is due to Wayland being
unable (or rather, unwilling) to share the entire composited screen with a
program, and the micro-protocol approach that Wayland uses in its
design-by-consensus ensures it'll be a few more years before something like
PipeWire and Wayland can deliver a quality broadcasting stack. OBS inside an
xorg server session can see all windows. For being so 'modern' and a 'mature'
project at over 10 years old, Wayland still somehow isn't capable of such a
workload, while the 'old, busted' xorg still chugs along. Maybe in another 10
years, Wayland will support this use case.&lt;/p&gt;
&lt;p&gt;GNOME lacks a system tray equivalent, so programs like Steam can be closed, but
in the 'background', which GNOME then produces a notification for. So it knows
it's there, but won't give me a way to interact with it to bring it back to the
foreground? Mumble is the same way, to use a libre example. Come on, guys...
What was wrong with having a tray for arbitrary icons that you don't necessarily
want an open window for all the time but are still &lt;em&gt;useful&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;Please drag GNOME Files out back and shoot it. SpaceFM gets the job done and
hands control to me.&lt;/p&gt;
&lt;p&gt;A quick look under Tweaks gave me a few of the features I was missing before,
like resizing with Right Click, but those are in the form of extensions that
might or might not be there, or might not work on the next GNOME version. Some
of these settings I consider basic and expected in a cutting edge desktop, so
it's difficult to commit too much to the DE. I'm glad that most of my computer
use can be distilled to a browser and terminal window.&lt;/p&gt;
&lt;p&gt;I switched away after 5 months of trying to get a workable and pleasant
environment. The single best feature was the overview access via tapping Super,
which I can emulate in any other environment. XFCE will be a good xorg-based
substitute for now, while I build toward my eventual LFS or similar OS with i3
on top.&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;For what you get, you're paying a premium for the hardware killswitches and
security-focused design. I knew these things going into it, and I got what I
purchased, more or less. It's Debian under the hood, so I can use a totally
different OS if I want, as long as the &lt;abbr title="Embedded Controller"&gt;EC&lt;/abbr&gt; firmware is applied and PureBoot
is still in use, it's still the same machine. I want to do some research and
testing to be sure I can do so before messing with the installation, just so
I have another OS to go to if PureOS goes defunct. Virtual machines may be a
better idea for now.&lt;/p&gt;
&lt;p&gt;One thing I wasn't 100% on was the RAM. I will probably upgrade both the RAM and
SSD in this machine, since the iGPU uses shared memory. Had I known that, I
would've gone to 32GB. But for now, I'll see how hard I can push it before
needing those things. The SSD alone makes things feel so much snappier, coming
from HDDs.&lt;/p&gt;
&lt;p&gt;Consider me satisfied, but I will wait before buying another Purism device.
To be fair in this conclusion, I have avoided essentially everyone else for
a laptop, for various reasons. Every brand I've come across has made some
concessions; a single binary blob for Bluetooth is something I can live with
until they source a BT radio with a libre driver. Otherwise, the machine has
been what I expected it to be and it gives me the control and assurance that I'm
looking for in a modern laptop. I can't ask for much better than that.&lt;/p&gt;
&lt;p&gt;Before I go, &lt;a href="https://files.zlg.space/s/kYQraGP88NkPjfB"&gt;a photo with my TypeMatrix, bluetooth mouse, and external HDD
hooked up to the Librem 14&lt;/a&gt;. I am taking sticker suggestions for its lid!&lt;/p&gt;
&lt;p&gt;Thanks for reading.&lt;/p&gt;
&lt;p&gt;-z&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;OpenPandora and Purism are not related at all. They're just two companies
 trying to provide open hardware. I was a backer through the UK Ltd, which
 was not solvent and left some 1100 customers (like me) holding a bag. The
 German GmbH (now DragonBox) &lt;em&gt;was&lt;/em&gt; solvent and offered to get us our units
 for the difference in cost to produce, but by that point we had all spent
 over $500 and he needed another $200 to make it cost effective for him. VAT
 made this worse, and I didn't have cash at the time, so I effectively threw
 away money. From what I understand, DragonBox is today offering the Pyra
 and units are reaching people.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Reviews"/><category term="Reviews"/><category term="Laptops"/><category term="Libre Hardware"/><category term="GNOME"/><category term="GNU/Linux"/></entry></feed>