Physical vs Digital

As the Nintendo Switch 2 nears release in a few weeks, there’s been a growing ire over a new element that Nintendo has decided to introduce to the console.

This is the concept of Game Key Cards:

Game Key Cards get a very large disclaimer at the bottom of the art reminding you that, similar to some of the physical DLC codes, they don’t contain any actual code or game data on the cartridge itself.

Typically, most Nintendo Switch games include all the base data for the game right on the cartridge itself, if there isn’t any updates needed, you can just plug it in and start playing. Of course, you can also use the internal storage or a microSD card to purchase a game on the Nintendo eShop, and download it to your system as well. Using the Virtual Game Card system, you can download software to a device, and transfer the license between systems.

Similar to the concept of Virtual Game Cards (an element that took me an excruciatingly long amount of time to setup to play the Pokémon Scarlet DLC due to having to grab my 2 Switches, update them, convert them to the new system, then link them together). Game Key Cards are meant to represent games that simply contain a license for the actual software. Just like Virtual Game Cards, they don’t contain any actual game data and require an internet connection for download, storage space for storing the actual game, and that the cartridge be inserted into the system for the software to be able to launch and function.

If it sounds familiar, it’s probably because it’s what a majority of Nintendo’s competitors are doing for most titles. The disk contains an excruciatingly small amount of data, and the system downloads the game to the consoles internal storage. The only difference with Nintendo is that they continuing to sell some games as coming completely on cartridge, while others will be sold in a similar fashion to the competition.

Now, despite being similar to what the competition is already doing, the concept of Game Key cards has been controversial with fans. Many vowing they will never purchase a game that uses these.

The purpose of physical games

Despite it all, physical games still have a big purpose. Choosing to avoid digital games entirely is a valid consumer decision. Not everyone would like to handle the trouble of buying a special microSD card for their device, and some just hate the idea of managing storage at all. After all, why worry about having to uninstall games to make room for more when you can just attach and detach games as hot swappable hardware modules? Not to mention the ability to resell games if you wish.

In addition, many cultures favor the gifting of actual, material objects and not something fungible like cash. So physical games sold at department stores like Walmart give the ability for those looking to provide someone with something they like with something they can hold.

In addition, there’s also still the digital divide that plagues us. It may not seem like it depending on where you live, but not everyone in the United States has a solid broadband internet connection. And while Satellite Internet and Wireless Internet Service Providers have made increasing expansions across the more rural areas of the US, they still have their limits. And don’t always work reliably.

Preservation Pitfalls

I’ll admit, I’ve been on the side that doesn’t care as much about video game preservation becoming a challenge. Mainly because fans, given enough time, have always managed to find a way to get through software and do it themselves. Whether that’s through the use of reverse engineering to create a private server, an emulator, or any other hardware that could be used to help keep a collection of games safe and playable. The bigger threats are not being able to download software at all. And, while this is an obvious barrier to the aforementioned preservation (and one of the possible problems with Game Key Cards). An even bigger threat exists in the fact that the companies responsible for developing these systems are also responsible for letting you even run the games in the first place.

One experience that will always resonate with me, and has warped my idea about ownership is as follows:

I used to own an Xbox 360, and I loved Terraria. Owning it across there (as a physical game disk, all the data located on there), and Steam.

One day, we got an Xbox One, a game where you could also purchase an enhanced version of the game for the system. Naturally, being young and not having much money (I had already gotten this game as a birthday gift), I tried inserting it into the Xbox One. Only to be told that the game wasn’t compatible with the system despite the Xbox One being compatible with most Xbox 360 games.

Whether or not this was a problem with the game code not running correctly on the newer Xbox, an intentional restriction in place by Microsoft or Redigit, or something else. None of it matters, because I wasn’t able to play my game. Which leads me to my next part.

Physical Ownership ≠ Digital Ownership

Backwards compatibility is a difficult concept. One that intentionally requires sacrificing making better decisions in software development in favor of allowing already existing games to run. It’s likely one of the reasons the Switch 2 is just an incremental upgrade as opposed to being a transformation like the GameCube to the Wii (which could still run GameCube games through the use of a GameCube controller plugged into the top of the system).

While this has gotten a lot easier thanks to internal emulation and other forms of containerization. It still requires making a few tradeoffs to the overall design of the system. In Nintendo’s case, it’s making the system playable with the hundreds of rapid fire release titles they have released over the course of 8 years. And that’s not including the thousands more released by third parties.

A game being playable forever means nothing if the systems that run it, or enable it to run, don’t exist anymore, or don’t work with the other specific components needed to use the software correctly. I already imagine the Switch 2 will likely have issues with Ring Fit Adventure, Nintendo Labo, and possibly even Mario Kart Live: Home Circuit (though far less likely due to it being software to software rather than hardware design).

This is already ignoring concepts like bit rot. The fact that all physical mediums of computer storage will inevitably degrade to a point of being unreadable. But more likely before that, an executive or accountant will decide that activation isn’t worth keeping around.

When the PlayStation 5 requires an internet connection to setup its attachable disk drive, it really doesn’t mean anything 65 years from now when an unsealed unit is discovered. Long after Sony has decided that the PlayStation 5 activation servers aren’t worth keeping around anymore, or perhaps the PlayStation brand entirely.

While the Nintendo Switch may not have anything like Xbox, where specific games don’t work, or both Xbox and PlayStation, where you need to pay extra for physical games. Nintendo still has the ability to change anything they want about the way that a Nintendo Switch System operates at any time through an over the air update.

They could choose, if they wanted, in a useless attempt to keep track of where games are going (given physical games already could qualify for gold points at one time), they will require an internet connection for all new games inserted into your system.

Sure, you might need to update your system for this to happen. But what if you need to reset your system at some point? Or perhaps another game you want to play needs an update to work correctly? You are going to have to cave in at some point and choose to update your system for things to continue running smoothly. Or just buy another system entirely (in spite of having an already working one, despite being outdated)

Closing Thoughts

Overall, I do think that Physical games are a good option for those who want them. However, they aren’t the saving grace to video game preservation or ownership like some fans try to make them out to be. It feels extremely trivial that someone can state that a game will be Game Key Card only. And then have tons of comments complaining about said release. And indeed, those on the digital divide will certainly have a problem. But we are also going to have a problem with the things we already own if Nintendo decides to change the way that they already make their existing things work as well.

Instead of exclusively focusing on physical games, we should also be focusing on how companies are going to be handling their existing systems, and getting an idea of a timeline of support for a given system. Games don’t work like they did in the 90s, and development companies have managed to pull a lot more rein over their systems than they used to. We have to make sure that they aren’t going to throw us over, or they will do it themselves.

Vibe Coding: How to Amplify Your Technical Debt

So recently, there’s been this new term describing a new phenomenon that’s starting to go around.

It’s called Vibe Coding, and it basically involves people writing code entirely through the use of Generative AI. Not just small snippets they need help.The. Whole. Thing.

I just want to get this off the table. I think this is a really bad idea. And I’ll admit, that I’ve ended vibe coding a few times. Writing out elaborate prompts that build a whole app or system. But more often than not, I’ve ended up abandoning those things for one reason or another. Or they’ve ended up having bigger consequences (such as deleting an entire bunch of video files I had wanted to download and organize in my media server based on file name).

My worst moment with it involved a script I had made for self hosting various docker services split across various compose files. The script was supposed to go into each directory, spin up or down the compose file in each one (depending on the flag), and thus save me a lot of typing out for different files.

Eventually though, the script started getting too complex to maintain as different sections started making no sense. Exacerbating the entire problem was an inexplicable bug involving compose containers being given the wrong names, and it was enough for me knock down everything and just move to Proxmox.

The lack of inspection of what Copilot was outputting, coupled with a general lack of knowledge of what I was doing made it difficult to figure out why things weren’t working.

Things like code autocompletions and quick prompts to generate small snippets aren’t inherently bad. But once you start taking advantage of a tool like GitHub Copilot, it can be really hard to stop relying on it and start abusing it for things you have to do. Especially as you want to start getting things done sooner and out of the way.

It’s why companies are constantly pushing AI down our throats, and wasting millions giving it away to students and other businesses in hope it will get them hooked on it. They are fully aware of the power that these tools have, especially in a society that favors quantity over quality, and have the upper hand in pedaling these things.

It’s not just that Large Language Models don’t have an understanding of the text they output, it’s also the lack of knowledge you discover along the way. It’s certainly not always easy to find. And can often take longer than writing the actual code itself. Which is also what makes using a Large Language Model for code assistance appealing to begin with. Write now, understand later, build up more technical debt in the process.

I’m looking through the r/vibecoding subreddit, and it’s kind of horrifying to see how others are just enthusing around writing sentences to write code with very little knowledge about writing code in while also encouraging others to do the same.

Some of the posts here (and I know I shouldn’t be believing everything I read on the internet) are just horrifying to see in terms of incompetence, others are really funny, like this one with one user mentioning all the different things they’ve built, and then just.

Later today I am going to build a billboard system for my local theater so that they can plan and track all of their movies between offices.

I am loving this.

EDIT: The billboard project is MUCH bigger than I thought that it would be and is taking a lot more time than I anticipated. That’s okay, it is helping me to learn good practices for Vibe coding.

Basically, the realization that trying to work with a business to meet it’s needs requires much more than the ability to just prompt your way out of coding.

As for the more horrifying stories, slightly less related to coding. I heard on that subreddit about a person who managed to become a data analyst after having worked in the automotive industry… By learning from AI.

It’s impressive as a challenge, to try and see what you can do when the control is locked away from you. And I’m certainly not against there being systems that enable anyone in the world to start creating their own software. But it’s also easy to start building up a sense of false confidence as you begin to think that you are an expert at what you are doing.

The risks may not be as high for personal offline projects, or code that’s just needed to automate something once and never again, but my general anxiety lies in the fact that people are deploying entire services onto the internet with not only very little knowledge about hosting online services, but not even what exactly they’re hosting to begin with.

When you host an off the shelf service like Nextcloud or Uptime Kuma, you don’t need to know everything about the service you’re hosting. As long as you have a good knowledge of how the internet works, awareness of common vulnerabilities and maintenance, and you read enough of the documentation to gain an understanding of the software you’re deploying, you’re usually good to go.

But many of these people are just typing out a few sentences, taking the output, and deploying something they don’t fully understand beyond a rough description (that may not even match what they wrote), and exposing it to the internet.

There’s already been a few cases of people having their vibe coded services pwned with minimal ease. And with no knowledge of how your system might work or what parts might be included, I couldn’t imagine trying to do an autopsy on such a system.

It’s not “trendy” or “hip” to be building entire projects without an understanding of what you’re doing. It may be fun as well, but it can also be really dangerous. Especially if you don’t have a plan or vision for what you are doing.

So please, be careful with AI tools, and don’t end up like me, or any so-called “vibe coders”.

Videos

One of the biggest benefits that the rise of consumer technology has brought to us is that it’s essentially let anyone become their own videographer.

Unfortunately, that shift has rooted itself way too deep into the society. And while it’s great that anyone can make their own video about whatever they want, and then share it with the rest of the world, it’s become obnoxious that there’s now this codependence on the consumption of video for understanding the world around us.

I see this generally as I’m mostly complaining about the classwork I’ve been doing that has required me to make videos, despite my degree having nothing to do with video production or broadcasting. It’s a process that’s distracted from me getting other things done (regardless of how much I actually have to do it) as I need to go and record a bunch of things, then stitch them all together in iMovie. And with university requirements on closed captioning. It’s a process that feels even worse.

I genuinely have nothing wrong with the closed captioning requirement. But closed captioning is also a process that requires writing out a better script and having a general understanding of what you are writing about to avoid as much prose as you can. and in general, the fastest way has just been to upload to YouTube and use their captioning services there. Which also feels like it violates the spirit of the rule. 

But honestly what makes the whole video production process obnoxious is the lack of information I have on it. I may have experience working with several video editing tools, but I certainly don’t have any experience with designing a good informative video. And while others, as part of their jobs, may be able to whip out videos quickly before a deadline. I don’t have that kind of workflow. 

It’s true that some things can only be understood in the form of a video. But there are a lot of things that also genuinely don’t need it explained like that. I feel like throughout my classes, I’ve had to waste a ton of time editing and putting videos together just to avoid the inconvenient feeling of having a watermarked submission there’s some cheap third-party tool.  and then worrying if my editing is too fast or slow paced that an instructor is going to be able to understand it. 

Many people don’t even seem aware that their devices may even be able to record their screen without the use of third-party technology. And the ones that don’t clearly don’t seem to know about applications like OBS they can do everything watermark free.

Of course, OBS can also be a difficult app to work with if you’re just wanting to do some basic recording. Especially given that an app also built for livestreaming. Which leads me back to square one, making videos are not easy. And we shouldn’t be asking every day folks to be compiling their findings into presentations that end up going either too long, or far too short (definitely looking at TikTok here).

In addition to it being difficult to make videos, finding the information you need in one isn’t easy. Especially when trying to solve a computer problem.

Several times while looking for guides on configuring certain software, I’ve encountered online articles that are actually just the transcripts for a video. So they’ll be referring to things that there is no context to because they’re entirely on screen.

It’s not to say that I don’t like watching videos at all. It’s just that it’s frustrating when the only source of information you can find for something is a video. And since you can’t just use the find text shortcut to jump around a specific portions as you need. you have to keep track of a long playback bar and repeat small segments over and over again. And there’s also just sitting around waiting for the specific part you’re looking for to come up to if the person or platform you’re using doesn’t include time stamps.

In addition, while everyone can read at different speeds, everyone is forced to watch a video at the same speed. Sure, many clients allow you to adjust the speed of the video. But now, unlike reading, where you can tell if you might be going too fast if you’re not understanding things, and slow down if you need to. A video is always going to go fast, and adjusting the speed any further doesn’t guarantee that you’re going to be picking up anything further.

Google seems to be aware of the mess that they’ve created with YouTube and it’s impact on society. So, using the Next Big Thing, they’re putting everything uploaded to their website through their information shaped sentence generator so you can get a water down, potentially incorrect digest of bits and bobs here and there.

AI kind of feels funny here because it shows you just sometimes how messed up society‘s workflow as a whole is. And all the weird bending over backwards, we have to do to get things done. Like sending arbitrary amounts of emails, engaging in meetings that could’ve been emails, or making large video presentations that could’ve been an email.

Writing a lot of it out (mostly just saying it aloud, because I do a lot of the writing for this blog through the dictation function on my phone), it makes me realize just how much people hate reading. Perhaps there’s a bit of a literacy crisis maybe? I’m honestly not sure. But it actually does almost look like it could be a sign of a bigger problem. 

Sonos Ecosystem Review

So, a while ago, there was this huge uproar over this company called Sonos, which is a manufacturer of wireless speakers, mainly because of a new version of their app that they deployed,

While the whole idea of this uproar was essentially to stay away from the speakers, it drew me in closer to the idea for some reason.

Basically, to talk about what makes Sonos speakers unique, there’s a little bit of background. In addition to being relatively high quality speakers (disclaimer: I’m not an audiophile, nor am I affiliated with Sonos), Sonos speakers are essentially within their own ecosystem that consists of speakers capable of having their audio playback grouped, ungrouped, and transferred between speakers. If this sounds familiar to what AirPlay (also available on speakers) or what select Google Cast devices can do, that’s probably because Sonos was the one to popularize the concepts behind it.

What separates Sonos from these devices however, is that unlike these services. Sonos speakers play audio directly from a streaming source. Which can be configured to either be a popular streaming service, or a local SMB library of your own music, and this is mostly the only thing they do. In addition, these speakers aren’t just individual endpoints to play to, multiple of the same speaker can be setup to work as if it was a stereo system. Essentially, these speakers let you create an entire home audio system without the need for excessive wiring or drilling through your home.

The app itself functions essentially as an audio remote, as well as the main place to manage the settings for your speakers and quickly setup new ones.

A screenshot of the Sonos App on an iPhone
The Sonos app is fairly simple. It’s primary purpose serving as a controller for your audio. With the media player at the bottom pulling out to reveal all the speakers on your network. Changing the output to another controlled device is as simple as tapping it from the list.

Despite needing to create an account for speaker setup and music streaming linking, the app has no cloud connection to it unlike most IoT apps. Meaning that you need to be connected to the same network as the speakers in order to control them and adjust their settings. However, other users can also download and join an existing system to their app, as well as start playing and controlling audio without needing to sign in or create an additional account (signing in is needed in order to adjust settings, however)

One of the major benefits Sonos puts off about their app is the fact audio can continue playing, even while there’s a phone call. Since the app doesn’t rely on any system media players and simply streams the audio directly to the speaker. I’ve personally found the app a lot nicer for playing streaming radio stations (something I can get through Apple Music as well as their own in-house, Ad supported, radio service. The latter I only really use for the Ad-free white noise and rain stations)

While I’ve never seen the original app, I can tell that the new app is likely built on some cross platform framework, and, while not as drastic as some users have complained (much of the work at Sonos had gone into damage control over the app as newer products were pushed aside, so it’s likely many of the greater issues had been worked out), I have had a few hiccups here and there with the mobile apps.

Other features

Music playback aside, the app lets you set up quite a few other features as well. For example, alarms can be setup within the app. Which basically just play a predetermined song at a certain time. There’s also sleep timers that can be setup as well, which basically work like most sleep timers on other platforms where the song fades out after a set amount of time.

The speakers themselves also work with Apple AirPlay, allowing Apple devices to cast audio to them, or asking a HomePod to play audio in a specific room. And can be setup to be controlled from Alexa, as well as Apple and Google Home. The former being a little more limited, and can only actually control playback from speakers currently using AirPlay.

One of the other features that can be setup is Trueplay, which as an equalizer that is setup either using an iphone held upside down and waved around the room, or by using a speakers built in microphones to measure the acoustics of a room, and adapt the audio to it. Whether or not you hear any enhancements will depend on the shape and size of your room, as well as the method of calibration you use. I personally found the former to sound a lot better.

The aforementioned microphones also can double up for speech recognition with a voice assistant. With Alexa being the main supported one through the Alexa built-in program. While I don’t actively use Alexa in my home. Alexa on the Sonos speaker is better suited as being a satellite to a home already using an Amazon Echo as opposed to being the main set of devices due to the inability for a Sonos speaker to function as a Matter controller for neither Wi-Fi nor Thread.

In addition to Alexa, Sonos also maintains their own in-house assistant as well called Sonos voice control. It mainly just functions as a companion to the main app, letting you perform some of the most common functions of it with our the need to actually open it. But other than that and a few other minor things, that’s mostly all it does.

API

In my opinion, one of the biggest saving graces to Sonos over the app fiasco was their well crafted local API. While they do have a separate cloud based API for more cloud based control (such as creating content providers the speakers can stream from, or 3rd party web apps), there’s a more local API as well relying on open standards like UPnP. While it’s not as documented as their cloud API’s, it’s still great that the speakers even have such a local API. While it won’t really save anyone if the company shuts its doors and all the cloud functions go offline. It still gives more ways for other apps to latch on.

One of these apps is on my list of favorites… Home Assistant. Sonos is actually a featured integration within HA. And the experience really shows as speakers are automatically discovered and added, and also update in real time. Including a couple of HACS cards that can even show you the exact playback time on a speaker.

Ironically, while writing this. The Sonos API documentation introduction has actually given me a better understanding of what Sonos products do compared to their actual marketing pages.

Verdicts

Personally, I would recommend Sonos to anyone with an Apple device, or anyone who is looking for something more streamlined for music compared to the bells and whistles of most smart speakers.

Compared to the competition of other smart speakers. The speakers can seem much more limited at a much higher cost. But overall, Sonos is really a product category that isn’t really in that of smart speakers Like Echo or HomePod. It’s not just a regular Bluetooth speaker (though some do have that functionality), but being an assistant isn’t it’s goal either.

I have found Sonos speakers much better for playing audio in part thanks to their well designed (if not well coded) app. And it feels like a device I actually want to play music to (and feel a twinge of guilt constantly that I’m not making the most of the one sitting on my desk aside from falling asleep to white noise). While AirPlay suggestions on iPhone make it a little easier to find a device to play music to, casting from any device can sometimes be frustrating (especially during the process of disconnecting). Considering the way you get most smart speakers to play music is by asking for a specific song, which can be wishing upon a star sometimes as you get the same song, but from a different album, or another song entirely. If all you are wanting to do at a given moment is just play something around the house, the app feels really well designed for that, even if it requires a few extra seconds of grabbing your phone. And the fact I can share that ability with my family, without the need for them to go through the process of signing up, was a really great design choice.

My only real concerns about Sonos have been a few class action lawsuits around the company and some general uncertainty around the amount of security updates products get, but other than that. They do work exceptionally well, and I wish I had the ability to acquire more of the speakers for my home.