Pages

Friday, June 26, 2026

How to remove AI from your devices

Nowadays, nearly every single site has an AI chatbot or AI automated feature, similarly to how there are tens of thousands of AI startups that everyone tells you to use. That all really stinks. But why should we be forced to oblige to these tech bros and disconnected trillionaires?

For that nonexistent reason, I’ve made a guide that’ll make you to go cold turkey on AI (and also just enhances your privacy), no matter if you’ve already quit or are trying your hardest to. Anyways, lets quit the blabber and get straight into what we’ll need as

Prerequisites

This guide assumes a few things, so if you don’t have them or can’t set them up, you’re cold outta luck. Oh well. To follow this guide, you’ll need:

  • An internet-connected device, preferably a Windows, Linux, macOS, iOS, or Android device
  • A configurable DNS instance, such as a pi-hole (this of course means you need to have a pi) or a NextDNS profile

If you don’t at least have the first one, what the hell have you been doing for the past 31 years? Unless you use typewriters and only read books and stuff.

Setup

Obviously, we need to configure all of this stuff, since it isn’t going to anti-AI itself on its own.

Pi-hole

Since I am a big idiot dunce and have never used a pi-hole, I highly recommend natalie.dev’s pi-hole guide, with hagezi's blocklists, either multi ultimate mini or multi ultimate, if your device can handle it, and then also obviously the AI blocklist by laylavish. Otherwise, just stick to the guide normally.

NextDNS

This is something I have much better expertise in, as I’ve been using it for about 2 years at this point.

Anyways, pop on over to https://my.nextdns.io, and log in or sign up (if you’re already logged in, ignore this part). Then, go to the Security tab and enable Threat Intelligence Feeds, Google Safe Browsing, Cryptojacking Protection, DNS Rebinding Protection, IDN Homograph Attacks Protection, Typosquatting Protection, Domain Generation Algorithms (DGAs) Protection, Block Dynamic DNS Hostnames, Block Parked Domains, and Block CSAM. For the paranoid, you can add .ai under Block Top-Level Domains, to completely avoid any AI startups, although it may block some regional websites. I highly recommend avoiding the AI-Driven Threat Detection option, as in my experience it has only blocked innocent domains, and also for the obvious reason of avoiding AI.

After that, head to the Privacy tab, and enable whatever blocklists you need, I personally have all of them enabled except for No Google and Anti Facebook, for familial reasons. Scroll down to Native Tracking Protection and enable all of them. Doesn’t matter if you use the products listed or not, it’s good practice. Once again, scroll down and toggle Block Disguised Third Party Trackers.

Then, go to Parental Control, and add ChatGPT under the list of Blocked Websites, Apps & Games. It doesn’t actually work for me, but whatever, a block is a block.

Now, we get to have our fun. We’re done with the basic configurations, so guess what? Blocking spree! Remember when I mentioned earlier the AI blocklist by laylavish? I do. Now, we can use that blocklist. Unfortunately, because NextDNS is a big fat stinky and doesn’t allow you to import lists, we will have to do this manually.

If you blocked the entire .ai TLD like me, you can get to be just a tad bit more lazy with this list. Not too lazy though, you still have to manually block all of the other domains. Once you add the entire huge ~800 domain blocklist (because NextDNS automatically does wildcards for the blocklist, you don’t have to do the WWW part!), there are still some more domains to ensure complete death for those sites with , which can be found here or here (mirror).

Actual Stuff

There’s still more to do, that was just configuring the DNS. Thankfully, none of it is as painstaking as manually adding 800 domains to a blocklist.

Android

This part assumes Android 4.4.2+, but if you aren’t on that, it’s not like Google released the Gemini update to Android 2.2.3, so you should be fine, and thus, can skip this step. 

If you’re on Android 9, you have the leisure of having secure DNS as an OS feature. Go to the Settings app, then to Connections ==> More connection Settings. From there, you’ll find the Private DNS setting. Reopen the NextDNS Setup page, and find the DoT (DNS over TLS) string. You can add an identifier if you want. For me, it looks like “Phone-******.dns.nextdns.io” (profile id obscured). Add the string your page gives you into the input, under “Private DNS provider hostname”. Lucky you, you now have almost all of that AI gunk blocked.

If you’re on anything older than Android 9, however, the process is a bit more difficult. To bypass the lack of the Private DNS setting, you can get Intra from the play store or apkmirror. For Intra, though, you actually need a DoH (DNS over HTTPS) string. It’s virtually the same process though, pop on over to the NextDNS setup page, and grab the DoH string. It’ll look something like this: https://dns.nextdns.io/******/Intra%20DNS (profile string obscured). Open the sidebar in Intra, then go to the Settings, and add your DoH string. Grant Intra its priviledges, and enable it. Should work fine.

Still not done! Make sure you have a mobile browser capable of uBlock Origin, such as Firefox, or a browser with uBlock Origin-style functionality that takes the Adblock blocklist format, such as Brave. If you’re on Firefox for Android, open https://addons.mozilla.org and search up uBlock Origin. Install it, and enable it on private windows if prompted. Then, open up the extensions menu, tap on uBlock Origin, and go to the dashboard (thru settings icon). Go to the Filter lists tab, and scroll all the way down until you find a hidden menu called Import. Reopen it, and paste this URL: https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/list.txt, then on a new line, paste https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/additional_list_nuclear.txt. Once you’re done, apply the changes and wait for the two lists to appear under “Custom”. Done there. If you’re on Brave, beforehand, make sure that Shields is set to be Aggressive for trackers and fingerprinting. Now, open the settings, then go to Brave Shields & privacy. From there, open “Content Filtering” and click on the “Add custom list” setting near the top of the screen. Pasting in the same links should be straightforward from there, with the only difference being that you need to do it one at a time.

Now, we get a bit greasy. Get Shizuku if not already installed from https://shizuku.rikka.app/, and install it. Go through the standard pairing process, but do not start it. Then, get Canta from https://github.com/samolego/Canta/releases/latest, and grant its permissions in the Shizuku app. Get my blocklist from https://files.catbox.moe/xhqo8p, and add it to Canta. Now, start Shizuku. Return to Canta, and apply the preset. This removes some bloatware, most (Samsung and some Google) AI gunk, and some carrier garbage (specifically AT&T’s). Unfortunately, I don’t have the devices to test this preset on anything that isn’t my AT&T S25, so I can’t guarantee that it’ll work elsewhere. Through Canta, you can also uninstall Google (only do this if your Google version is newer than 2023, since that’s when all the AI Overview and AI Mode slop started being added).

Once you do that, return to your browser. To test and make sure that the AI blocklists are working correctly, go to google, bing, or duckduckgo and see if AI Mode, AI Overview, or AI results appear. If they do not show up, that means that the blocklists are properly working. Now, return to the homepage of one of those search engines, go to the browser menu, and click “Add to home page”, or a similar option. You can now access that search engine freely, without AI.

As far as Android goes, that’s it. From me. Regarding Canta, if you find more AI-related system packages, go for it. I’m not forcing you to only use what is within my preset list. Same deal for the DNS section prior, if you find any other AI related domains or servers, be my guest and block em. Do whatever it takes to NOT use AI.

Windows

This guide may be less thorough or detailed because I use Windows 7 which by default has no AI preinstalled, and I don’t regularly use 10 or 11 in any substantial form to warrant something truly detailed like my Android guide from a paragraph ago. Anyways, I’ll do my best, but at least this will be better than my Linux guide. If you’re on Windows 7 or older, you can skip the following paragraph.

Anyways, there’s a very useful project on GitHub, which is https://github.com/zoicware/RemoveWindowsAI. It will remove most of the AI features, given that you toggle on every single removal, don’t even spare it one bit. Just for some extra reassurance, though, I’d also recommend installing a portable version of https://winaerotweaker.com/, since it’ll allow you to completely disable telemetry (aka spyware), give you more granular control over windows, and most importantly for this guide, help you scrape off the remainders of the parasitic AI garbage from Windows.

Make sure you have a browser capable of uBlock Origin, or uBlock Origin’s form of blocklists. For example, you can use Brave, any form of Chromium which still supports MV2, Supermium, or any form of Firefox, which should work fine. If on Firefox or Supermium (or an MV2 supporting browser), grab uBlock Origin from the respective extension store. Once obtained, the steps are identical to Android: open up the extensions menu, tap on uBlock Origin, and go to the dashboard (thru settings icon). Go to the Filter lists tab, and scroll all the way down until you find a hidden menu called Import. Reopen it, and paste this URL: https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/list.txt, then on a new line, paste https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/additional_list_nuclear.txt. Once you’re done, apply the changes and wait for the two lists to appear under “Custom”. (direct copy paste). If on Brave, the instructions are yet again nearly identical: beforehand, make sure that Shields is set to be Aggressive for trackers and fingerprinting. Now, open the settings, then go to Shields. From there, open “Content Filtering” and click on the “Add custom list” setting near the top of the screen. Pasting in the same links should be straightforward from there, with the only difference being that you need to do it one at a time. That one was kind of a copy paste, but not really. Anyways, it’s done.

Oh, wait, didn’t I set up a whole DNS thing for you to use earlier? Right, I forgot about that. Fuck. But not to worry, because I remembered it! Great! Anyways, download https://nextdns.io/download/windows/stable (NextDNS for Windows). Works on 7 and newer, as far as I’m aware. It even logs your device name to prevent confusion! Now, install NextDNS for Windows, and once the icon appears in your tray, right click it and go to Settings. Return to your NextDNS profile’s setup page, grab your profile ID (reminder: 6 character hexadecimal code), and shove it into the input asking for it, and click Save. To ensure it is working, go to your logs on the website (if enabled) and ensure that your device shows up. If it does, amazing. If it doesn’t, retrace your steps and make sure you didn’t fuck anything up.

Linux

I don’t know too much about Linux outside of Android, which is very abstracted to true Linux. I’ll try my hardest, but outside of DNS, there isn’t much I can do.

As far as I’m aware, most Linux distros do not include AI, but for the ones that do, they document it and have options to disable it. Similarly, make sure all tracking and telemetry features are completely disabled, and if you can’t figure out how to disable them, consult documentation. If there are obviously AI features and anti-privacy practices used in the distro, and you cannot disable either, consider a new distro if possible.

However, I can help out with DNS and browsers. To add your NextDNS profile to Linux, open /etc/systemd/resolved.conf and paste the following (insert your configuration id where the stars are):

[Resolve]
DNS=45.90.28.0#******.dns.nextdns.io
DNS=2a07:a8c0::#******.dns.nextdns.io
DNS=45.90.30.0#******.dns.nextdns.io
DNS=2a07:a8c1::#******.dns.nextdns.io
DNSOverTLS=yes

So that handles the DNS, but we still need to deal with the AI in browsers.

Literally gonna directly copy paste the Windows version, asides from Supermium. Anyways, here. Make sure you have a browser capable of uBlock Origin, or uBlock Origin’s form of blocklists. For example, you can use Brave, any form of Chromium which still supports MV2, or any form of Firefox, which should work fine. If on Firefox (or an MV2 supporting browser), grab uBlock Origin from the respective extension store. Once obtained, open up the extensions menu, tap on uBlock Origin, and go to the dashboard (thru settings icon). Go to the Filter lists tab, and scroll all the way down until you find a hidden menu called Import. Reopen it, and paste this URL: https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/list.txt, then on a new line, paste https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/additional_list_nuclear.txt. Once you’re done, apply the changes and wait for the two lists to appear under “Custom”. If on Brave, beforehand, make sure that Shields is set to be Aggressive for trackers and fingerprinting. Now, open the settings, then go to Shields. From there, open “Content Filtering” and click on the “Add custom list” setting near the top of the screen. Pasting in the same links should be straightforward from there, with the only difference being that you need to do it one at a time. That one was kind of a copy paste, but not really. Anyways, that’s done.

macOS

Same deal as Linux, and the iOS section after this: never used it. I will, however, combine what I’ve found online into a simple guide.

Head on over to the macOS App Store page for NextDNS (https://apps.apple.com/us/app/nextdns/id1464122853). Install it, and then open it. Ensure it is toggled to start at login. Then, head to the Configuration page, and add your profile id in the input asking for it. Save and enable. Some reviews online are saying that it does not automatically start on login, so ensure that you remember to enable it if not already on every login.

To make sure that this is working, go to your NextDNS logs (if enabled) and check for your device, or go to dnsleaktest.com on a browser and run an Extended test to make sure only NextDNS is your used DNS provider.

Make sure you have a browser capable of uBlock Origin, or uBlock Origin’s form of blocklists. For example, you can use Brave, any form of Chromium which still supports MV2, or any form of Firefox, which should work fine. If on Firefox (or an MV2 supporting browser), grab uBlock Origin from the respective extension store. Once obtained, open up the extensions menu, tap on uBlock Origin, and go to the dashboard (thru settings icon). Go to the Filter lists tab, and scroll all the way down until you find a hidden menu called Import. Reopen it, and paste this URL: https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/list.txt, then on a new line, paste https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/additional_list_nuclear.txt. Once you’re done, apply the changes and wait for the two lists to appear under “Custom”. If on Brave, beforehand, make sure that Shields is set to be Aggressive for trackers and fingerprinting. Now, open the settings, then go to Shields. From there, open “Content Filtering” and click on the “Add custom list” setting near the top of the screen. Pasting in the same links should be straightforward from there, with the only difference being that you need to do it one at a time. If on Safari (I am unknowledged here), install AdGuard from https://apps.apple.com/us/app/adguard-ad-blocker-for-safari/id1440147259, and add the blocklists, as well as making sure all of the privacy and blocking settings are on.

iOS

Forgive me

Open your NextDNS profile, and scroll down to the setup guides. Click on the iOS option, and if available, scan the blue circle-ish code, and follow the steps on your iPhone from there. If that is not an option (for reasons such as you viewing the configuration page on your phone), go to https://apple.nextdns.io and create the necessary .mobileconfig file. Steps are provided on page.

Make sure you have a browser capable of uBlock Origin, or uBlock Origin’s form of blocklists. For example, you can use Brave, any form of Chromium which still supports MV2, or any form of Firefox, which should work fine. If on Firefox (or an MV2 supporting browser), grab uBlock Origin from the respective extension store. Once obtained, open up the extensions menu, tap on uBlock Origin, and go to the dashboard (thru settings icon). Go to the Filter lists tab, and scroll all the way down until you find a hidden menu called Import. Reopen it, and paste this URL: https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/list.txt, then on a new line, paste https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/refs/heads/main/additional_list_nuclear.txt. Once you’re done, apply the changes and wait for the two lists to appear under “Custom”. If on Brave, beforehand, make sure that Shields is set to be Aggressive for trackers and fingerprinting. Now, open the settings, then go to Shields. From there, open “Content Filtering” and click on the “Add custom list” setting near the top of the screen. Pasting in the same links should be straightforward from there, with the only difference being that you need to do it one at a time. If on Safari (I am unknowledged here), install AdGuard from https://apps.apple.com/us/app/adguard-ad-blocker-for-safari/id1440147259, click on the Page Menu button, then tap Manage Extensions, and open up the AdGuard options. From there, add the blocklists, as well as making sure all of the privacy and blocking settings are on.

Conclusion

I am sick of this shit, both in regards to how low quality AI slop and features is constantly shoved in our faces and the mindless, autonomous typing of this post. Anyways, save yourself from the slop, put your privacy on top, but more importantly, for more buzzing bananas and bubbly tech trivia, don’t forget to tune in to the CheeseBlog for more posts. Cya!

Saturday, May 30, 2026

Forced obsolescence is a net negative

We all have one or two devices that you probably can’t use anymore, like an older flip phone or an ancient e-reader. Well, why can’t we use them? They still worked when you bought them. Well, that’s because of forced obsolescence, usually. I’m going to assume you know what that is, and if you don’t, just do a quick search.

Thanks, capitalism

The primary reason for forced obsolescence is capitalism. Even if a truly great product is made, once everyone gets one, you can’t make a profit anymore. So instead, the company starts a subscription service for it (I mean look around in the modern world, how often do you see subscription services) or releases a second rendition with more features. Everyone goes and buys that one, and the company stays afloat. But what happens to the older version?

Well, it gets left in the dust. The general public moves on from it, forgets it. The company may release an update for it, they may not. Tools developed for it drop support, services get shut down. Replacements or replacement parts become more difficult to find, and the company that originally made it turns a blind eye.

Ruh roh spaghettioh

This is where forced obsolescence becomes something problematic and not just something capitalistic and greedy. The device may still work completely fine, mint condition. The battery holds a charge, it doesn’t bootloop, screen still lights up. But because the manufacturer moved on from it, the developers did too, and because those two moved on, the users do, too. A device that functions perfectly meets the weak link in its chain, which wasn’t even its own link.

The biggest problem here is cost. You could be spending thousands upgrading your device, all because big brother decided that you couldn’t use it anymore. People that would normally only get a new device after many years are forced into buying the next one immediately, which puts some obvious wear and tear on the wallets of the consumers, while pouring cash into the wallets of the company, which only promotes this type of behavior.

Can’t forget that this puts pressure on the environment. Relentless purchasing like this is bound to make a hell of a lot of e-waste, which often ends up in landfills or scattered randomly, which poses actual threats to the environment and people. If a single spicy pillow battery gets accidentally popped in a landfill, and it goes up in flames, the rest of the landfill might too. Now, imagine those disgusting fumes that are sinking their way deep into the environment, meanwhile the manufacturer only makes more devices that never needed to be made, accelerating this problem in the first place. Yuck.

Distinction

The issue here isn’t that new devices exist, the issue is how the majority of the modern tech industry treats old devices. Rather than keeping up support while the product naturally wears out, which may cost a small portion of their multi-billion dollar profits, they just choose to discontinue the product, service, tool, whatever it is.

Not every discontinuation is a bad one, let alone forced obsolescence, though. There are genuine reasons why a product may have to lose support or be pulled from the shelves, such as recalls. I’m sure at some point, we all heard of Samsung’s Galaxy Note7 disaster, where they would literally explode, which could be extremely hazardous in environments like an airplane, crowded subway, or flammable place. For that reason, Samsung deployed a software update to the phones that essentially soft bricked it, and then removed them from physical and online storefronts. Another example is the Tesla Cybertruck, which due to shitty engineering (it failed a lot of safety tests), would get the gas pedal jammed under the foot mat, rapidly accelerating the truck and endangering practically everyone inside. Due to this, Tesla fixed this issue somewhat, and slipstreamed the newer version of the Cybertruck into manufacturing.

Fear not, for Homebrew is here

Well, it’s not always called Homebrew, since that’s just a term generally used for consoles. A better umbrella term would be community-maintained software.

When a company abandons its product, the majority of people follow. But not all people. Often, you’ll see other phones, computers, and niche tools still have quite the community, mostly comprised of hobbyists, software developers, and other sorts of enthusiasts. Through them, new life gets shoved into a twitching, dead body, murdered by greed. This often comes in the form of custom ROMs, software revivals, and replacements.

A great example is F-Droid. Rather than dropping support for Android 4.x and prior like Google did in 2023-ish, it kept support, as did the developers on that platform. If you install F-Droid, say, v0.45, on your Android 4 phone, you are bound to still see tons of software for your phone on that platform. To this day, you can still use F-Droid as a replacement app store to Google's Play Store without any restrictions.

Anyways, I hope you enjoyed this post. For more wacky programming practices and information on raising old tech from the dead, don’t forget to tune in to the CheeseBlog for another post. Cya!

Thursday, April 16, 2026

Your IoT devices are your enemy

Internet of Things (IoT) devices are generally considered useful, right? Hell, one could even say made for you specifically. Truth is, though, they do a little more than that. A lot more.

Data for dinner

These devices are very good at 2 things: one, doing exactly as advertised. Two, selling your data to bits. Because these are usually just seen as common appliances, you often use them without thinking. Turn on a light, tap a button on your toaster that makes it toast, open up the fridge, whatever.

Smart devices, because they essentially have a mini computer inside them, and plenty of sensors, track this. See when you regularly flick a light switch, grab the milk from your fridge, put your clothes in the dryer. All of this is harvested, especially if you have an ecosystem of smart devices of the same brand. This can build information profiles on you, which are then sold to whoever is the highest bidder.

Smart devices are often sneaky and chatty little bastards, too.  Because you can’t install a custom Linux distro on your smart microwave, the information flows to and from the appliance and some servers in some dark warehouse in the midwest US completely unseen. They will constantly ping servers with new information and data, slowly giving the manufacturer a general idea of you and your habits.

But whatever will you do? Try out

Starvation

Thankfully, there are ways to figure out what exactly is being sent, and stop it.

My personal favorite way to do this is DNS. Obviously, because your washing machine doesn’t have DNS settings, you can’t set it there, but you can set it on the next best place: your router, or a hotspot.

This is what I do, and have been doing for numerous months. And, wow, it really is disgusting, looking at the DNS logs. I use NextDNS, which is fairly novice friendly while still giving granular console, especially if you’re using the TUI/console app. I’m sure you’ll be just as disgusted as me, once you look at the logs. My DNS profile has every filter and setting on, as well as some more domains in the Denylist, which is a lot when all combined. Works for me, may not work for you. Experiment and find the sweet spot.

When you block the data harvesting domains for these IoT appliances, they usually still work. May lose one or two obscure features, but it’s really nothing to sob about.

Roku is one of the worst offenders. The DNS logs will get bloated, as they will constantly try to phone home to their servers to send lots of disgusting data, including watching habits, ad personalization, and even snapshots of what is on the screen, no matter what it is: the screensaver, a game console like the Wii U, the home screen, or an app like Hulu+. Blocking them via DNS is definitely worth it, next best option is getting a more privacy-conscious smart TV or just ditching the whole smart TV idea and, say, hooking up your computer to the TV.

Conclusion

At the end of the day, convenience comes as a cost, a cost that is constantly changing and becoming more and more worth it to dodge. The line between smart device and surveillance machine (looking at you, Ring) is becoming more and more difficult to spot. Your smart dryer may just seem as a little harmless thing, but when you add up all of the “harmless” smart devices, it becomes a whole lot more dangerous. Anyways, if you want more tips on dodging data and learning about privacy, be sure to tune into the CheeseBlog for another post. Cya!

Saturday, February 21, 2026

My new stance on AI, after over a year

Yuck. Disgusting.

It’s been a while since I’ve talked about AI, and a lot has changed on my perspective of it. There are definitely important distinctions to be made when talking about it, though.

Generative AI

This is the part that I’m grossed out about. Generative AI, by definition, is an artificial intelligence trained off of a ton of a specific form of content that attempts to recreate content based off of its training data. There are many, many reasons why it is bad.

For example, how do you think the groups that create and operate these models collect the data they use to train the models, with billions if not trillions of unique works collected all in usually less than a year or two? Well, I’ll tell you. It has nothing to do with legality. If it is on the internet, their bots will scrape it (unless you put a robots.txt file at the root of your server that explicitly bans bots, but not all groups honor this). It then gets used, and you don’t get anything from it. This also means that some chatting apps like Whatsapp will just go and collect all of your private chats and use them to train their AI. Bye bye, privacy!

Another great example is resource usage. Generative AI generally requires tons of computation power to work properly, so the companies and organizations running the AIs will build datacenters everywhere possible. End result? You end up with a massive datacenter in what is usually a small town that strains local power grids, leading to cost increases for normal citizens that aren’t participating in the whole AI business. It also needs water to cool down the servers inside said datacenter, which pollutes the local water supply and if released back into nature can end up killing tons of animals, aquatic life, and plants. Also, people drink that water, so it is a net loss. And I may hear you say: “But datacenters all over the world use water to cool down their servers, what’s the difference?” Well, here, I’ll tell you with an analogy. If there was a water reservoir, and a person took a glass of water from it daily, would you see it as problematic? No. But if 5,000 people were lined up to get a glass of water from the reservoir daily, then would it be problematic? Yes, especially once you take into account that there are other people that genuinely do need that water to survive. AI datacenters are springing up like wildfire, and so far, nobody has done anything about it, leading to major consequences like the ones I just described.

Also, what happens to creatives? They lose their jobs. People realize that instead of contracting professionals that spent so long mastering their own unique artstyle, or writing style, or music style, or whatever it may be, they can just go to an AI and have it pump out slop after about a minute or so of generating files. Soulless slop that misses the whole point of the arts itself, which is to bring connection with others, joy, and also just act as a creative outlet for those who wish to make something. Much of the economy depends on artists, musicians, writers, programmers, and similar titles in some sort of fashion, and we will see the consequences of abandoning them just to save the extra buck.

Non-Generative AI

I don’t mind AI that isn’t generative, and it has been around for years at this point.

Non-generative AI does have plenty of uses, and there are tons of them that we use all the time, and don’t even notice. For example, translation. Many modern language translation engines do use AI, or more technically, neural networks. They are trained upon tons of different proper translations, which then allow it to properly translate practically any language if it is given enough examples of proper translation from said language to any other.

Another great, positive example of non-generative AI can be seen in the medical field. Often, a properly trained neural network will be given an x-ray, or medical research results, or something similar and it will be able to classify what the issue is: such as, (and these are really basic and oversimplified) “No issue”, “Respiratory”, “Cardiovascular”, “Muscular”, etc. They have existed for decades at this point, constantly helping doctors, nurses, and other sorts of trained medical professionals.

This one is a little more obvious, but AI is in a ton of games. For example, in Mario Kart, there is a neural network (or a similar variant, at least) constantly running that decides when your opponents are going to throw an item, turn, drift, or attempt to slipstream off of you (get a boost by being behind you). Or, in a FPS, like Counter Strike, the bots that are fighting against you or with you are being powered by an AI that controls every single action they make. Many games usually offer an easy, normal, and hard mode for the AI, and that typically just means the AI getting more or less training, or it being trained off of better or worse players.

Conclusion

Anyway, that’s all I have for now. If you want more tech tips and digital blabbering, save yourself, the economy, nature, and most importantly, a bookmark of the CheeseBlog to to stay tuned for more posts. Cya!

Thursday, February 12, 2026

Got a Wii? You’ve got a web server.

Yeah. I’m just as surprised as you are. I mean, just picture it: a bleeding edge game console—or bleeding edge for 2006, anyways—hosting your dream website! Or blog! Or whatever the fuck. Doesn’t it just sound stellar?

Seriously, though, this is pretty interesting. Yeah, it is just a regular web server. And yeah, you could do the exact same stuff or even more on a computer or dedicated server rack. Capability isn’t really the point. It’s a tall, long brick with 88 megabytes of RAM and a CPU roughly as powerful as a low end Intel Pentium 3.

Really, what is most special about this is availability. Everyone and their grandmother had a Wii, which means everyone and their grandmother could host a web server. Just as simple as it is to Homebrew the Wii itself, you can install the web server. Best comparison is installing an app from the Play Store or APKMirror.

Even better, there isn’t anything limiting what you host. There’s no file that is too big, unless it is larger than the storage available on your SD card. There’s never too many files to host. Nothing. So far, I’ve been able to host my entire personal website and then some, with minimal latency for loading. Practically equivalent to if I had just gone to the actual site that is hosted on GitHub Pages. Of course, some of this may be because I’m not actually connecting over the internet, only the local intranet, so speeds are bound to be quicker.

I think the hard limit here is for stuff like node.JS. That requires the Wii to actually act like a server and run its own code outside of just providing a web page and its linked resources. Unless they randomly make an instance that can run on PowerPC, it isn’t gonna work out too well. For that, you’d need an ACTUAL server, likely one running Windows 7+ or Linux.

Anyways, credits to Cboof and Felix123 for making this app. You can find it here on oscwii.org or go onto the Homebrew Browser to install it. And, oh, yeah, this needs a Homebrewed Wii, not any bog standard Wii. Whoops! This also works on a Homebrewed vWii (the virtual Wii inside of a Wii U). Welp, if you want to see any more homebrewing tips or programming advice, stay tuned to the CheeseBlog for more posts. Cya!

Sunday, November 23, 2025

I switched back to Windows 7 from 10—here’s my thoughts so far

It has been exactly a week since I installed Windows 7 Ultimate onto my daily driver laptop. There’s some parts about it I like, some I don’t, but for now, it seems that I’ll be staying on it.

Pros

I like a lot of parts about Windows 7, arguably more than the things I like about Windows 10 or any newer Windows operating system

Speed

Windows 7, at least on my laptop, is able to keep my pace. Windows 10 would continuously drag its feet whenever I tried to do the most basic of tasks.

For example—logging in. On Windows 10, I would have to wait nearly 16 minutes combined just to even begin using my computer. That’s atrocious, especially for a computer that shipped with the operating system. This was already after I had cut out bloat where possible, such as switching to a local account, removing HP bullshit, and killing anything non-essential to the OS. However, even that isn’t enough with the horrendous amount of background processes 10 kickstarts for no reason. Windows 7, on the other hand, only takes a combined 1 minute for me to log in. I don’t have to start it up early like you’d heat up a car in winter before driving. I boot it up, and I get to work (or whatever I am doing on my computer).

Another example is UWP apps. Windows 10 (and lets be honest, most modern apps) expect you to have a fully specced out workstation or gaming computer. That isn’t even a concept when it comes to my laptop. Nada. No no. This means that most apps will pretend they are running on a regular old potato, when they in fact are running on a “fully capable” laptop. The UWP Windows Settings app roleplays as a sloth, and my computer gets hot enough to toast an egg. That’s not a computer issue, that’s an optimization issue. Since UWP doesn’t and literally cannot exist on Windows 7, you get the older native apps that actually run decently. It’s not like these apps are missing much functionality, anyways.

Looks

This definitely isn’t a new point of discussion, I talked about this in my “Why Windows 7 is better than newer Windows versions” blog post. However, it’s just too big of a point to ignore or avoid. Windows Aero is beautiful, and it is a great showcase of the features and functionality Windows 7 has to offer—certainly more than Windows 10 or 11 exhibit, anyways. Even the Windows Basic theme isn’t necessarily bad, just not exactly preferable in comparison to the Aero theme.

Every icon just has this sense of realism to it, and every application just feels right at home on 7. Hell, even just get a modern app like OBS, slap on the light Aero theme to it (yes you can do this by setting the theme to “System”), and it looks relatively decent and fits in well, even if not as well integrated as, say, the Windows Live Essentials pack or the pre-installed applications. With the Aero theme, there’s no app that doesn’t look at least decent.

There’s not much more for me to say that I haven’t said already. Windows 7 simply looks great, that’s that.

Gaming

This may come as a surprise to you, but Windows 7 is actually great for gaming—or rather, retro gaming.

There’s actually some fair reasoning behind this, most of it having to do with the backend of the operating systems, not what the user actually ends up seeing. Windows 10 has mostly killed retro gaming on itself, unless you are under very specific circumstances. This is because likely in an attempt to “streamline” the process of running apps and games, most older DirectX stuff was ripped out, even the parts that weren’t full blown DirectX frameworks. Additionally, a lot of the older .NET things, like .NET framework 2.0 or 3.0, were just completely removed, further battering the corpse of what might have been retro gaming on 10 natively. Some other things, such as a replacement of long-standing tools other games used being launched into orbit, just completely break older games on Windows 10.

Windows 7, on the other hand, honors these games (for the most part). Even if it itself cannot exchange the correct things, it’ll guide the game in the right direction so that it does work and doesn’t completely crumble to pieces. This is what allows somewhat ancient games like Comanche 4 to run natively, even if a little buggy. This is a lifesaver in the case of games such as Half Life (unpatched, not the tampered version on Steam today), The Sims 1, and GTA: Vice City. All of these would be ripped to pieces on 10.

Simplicity

It was part of the original advertising campaigns: Windows 7 is simple. Not too simple to the point where you can’t do anything productive on it (ChromeOS ahem ahem), but not so sophisticated that it alienates half of the userbase that came to it for something that just… works. Balanced. You buy the shiny laptop with 7 preinstalled, you plug it in, set it up, and done. A poweruser? Build your own rig. Get a Windows 7 install disk. Customize it to your heart’s extent. I’m gonna be honest, I genuinely don’t think there will ever be another Windows OS quite like 7.

Cons

Drivers

Do you want to know what isn’t simple? Drivers! Drivers are a pain in the arse nowadays, in terms of Windows 7.  They’re like a necessary evil—your computer is convinced that it is secretly running with an Intel 486 chip and a Big Mac as a GPU without them, but finding them can sometimes feel impossible. Most hardware past like 2019 that had Windows 7 drivers just started dropping like flies. Now, with real gaming rig-level hardware, it’s nearly impossible to make the two be kind to each other without straight up downgrading some parts or hacking together a custom driver that has a 50% chance of working, 50% chance of bricking your install until you enter Safe Mode. Even on older hardware that isn’t necessarily that old, finding drivers that work, let alone bring Aero to the table, is all holy hell. Tools lke DriverIdentifier have made this process a bit quicker, but it is stll so, so annoying.

Compatibility

You probably saw this coming from a mile away, but here it is. Compatibility. It is miserable on Windows 7, when you’re trying to run newer apps and games. Saw that shiny new game on the Steam Store page? Suck it up, Windows 10 support and higher. Java SDKs newer than version 17? Forget it. New-ish apps in your optimized workflow? Sorry, find a Windows 7 alternative. It is pure pain. Most of my workflow already supported Windows 7, but if yours didn’t, you were just out of luck.

My thoughts and a conclusion

I personally think that for the issues, there’s always two benefits to Windows 7, which is why I will be staying on it. Most of the issues are just things you work around, anyways—you get your drivers, you’re done. No more time wasted on the involuntary scavenger hunt. Same deal with the apps. Take from this what you will. If you’re a Linux bro that couldn’t care less about Windows, keep not caring. If you’ve never even heard of me before and are intrigued about my content, read my other posts. If you were contemplating the switch, use this as guidance. I don’t care. I just don’t want this to be a big ol waste of time, there needs to be some value you get from this post. Anyways, if you want more tech related extravaganzas, tune in to the CheeseBlog for another post. Cya!

Friday, November 7, 2025

The pros and the cons of serverless architecture

 Heyo! This was a thought that popped into my mind when I was thinking about apps I could make, and I realized that this would actually be a pretty solid blog post. 

 This isn't usually a decision most developers have to make, as it is almost always clearly cut out. Need to fetch or process stuff from a database? Use a server. Making something simple like a notes app or a calendar? Easy peasy, that goes into serverless. However, there's a few edge cases that force you to make this decision, so I'll help explain what benefits you'd gain from it and the cons you'd gain from it.

For anyone new in the scene of programming, serverless architecture is when you develop an app that does not use a server. Simple, right? All computation needed is done entirely on the client, which can save a TON of money, due to the costs of a dedicated server being super expensive. Whether you're using a server host such as Linode (not sponsored) or even self hosting, costs can rise quickly. Serverless architecture eliminates that extra cost, only leaving you with the cost of hosting the client, which, depending on how much research you do and the type of app you're making, can be free.

 Now, let's start with the pros. I already went over one of them: the cost. If you skipped over that section, I'll do a quick summary: servers cost hella money, no matter what form you choose them in. Serverless architecture doesn't use that money, letting you allocate it to more important things like hosting the client or paying devs for making the app, if you've got a team you pay. Another useful thing that you benefit from it is automatic scaling. If you're a type of person that does minimal feature launches for your projects or products and then slowly expands (think the way Google releases products), this can actually be really useful. The app grows with you, but with a server-based architecture, you'd be forced to periodically upgrade servers which would be really expensive, or get a massive server off the bat, which is insanely risky (what if your product is a total flop?), because then you'd just.. have it. Not much to do with it, unless you decide to split it between projects. Additionally, serverless architecture just frees up your hands and space on the clock. You don't have to spend any extra time dealing with maintenance because a storage unit died, you don't need to investigate why it is returning garbage data with tested-okay code, etc etc. You just deal with the client, and that's it. More time to work on development, more focus on what you need focusing on, so on so forth. Next, the cons.

 A major con about serverless architecture is just how much it relies on the device it is running on, and there isn't exactly any other device to relieve resource usage because all of the code is being ran on the client device. It makes the bold assumption that whatever you're doing and whatever you're using is on the same firmware as the device(s) you test it on, and that the computer is even powerful enough to run it. Please, tell me the last time you saw Minecraft with full shaders running on a Galaxy S2 smartphone (the answer: you probably haven't, let alone at the standard 60fps/120fps of the phone). Instruct me on how to get Firefox 115 running on Windows 98 SE. This is one of the biggest reasons for why servers exist: they do the bulk of the computation. YouTube would NOT be able to run the algorithm everyone tries to manipulate for views without their servers with 10 exabytes of storage for videos with their accompaning metadata and above-the-line processors. And not to mention, serverless applications make exploiting them for personal gain so much easier to do, because exploiters and decompilers will take your program in its full and rip it to shreds just to find a single vulnerability. Better make sure it doesn't connect to the internet!

 Anyways, I had a ton of fun writing this, but that is to be expected when you haven't written any blog posts in over half a year. I really hope you learned at least something decent or useful from this, because that'd make me happy (and maybe attract more viewers to my blog if you REALLY liked it). For more tech related insights and accidental forkbombs, tune into the CheeseBlog for more posts just like this. Cya!

Sunday, November 2, 2025

Why this blog has been dead and my plans for the future

Heyo! I'm well aware that I haven't posted anything in multiple months. This wasn't really my choice, but I'm going to explain what has been happening in my life that has been stopping me from blogging.

Number one: school. This may sound like a weak or fake excuse, but it is very real to me—I've been drowning in classes and homework, and with a household that isn't very forgiving when it comes to making space on the clock, I just haven't had the opportunity to finish my work, let alone write a blog post. I'm not really planning to drop from any classes, so I'm just going to have to stick it out until the end of the year.

Number two: my computer finally croaked. Dunno what caused it, but the laptop that I've been using for pretty much all of my work everywhere that is digital, just decided to die. Thankfully, all of my data remains, but the laptop doesn't. I'm in the process of backing up everything to an external drive and getting a new Windows 7 laptop, but tight budgets make this very difficult and time consuming. Very unfortunate, but oh well. At least everything is there, right?

There's a few more things, but I'm not going to get into those because they dig a little too close into my personal life. I'm sorry that I haven't really done anything here, and I hope you understand. 

In the meantime, I'm trying to get a decent-ish setup on my phone so I can at least try to blog on here. Still, don't expect much.

If you really want to see new content from me, I'm trying my best to still get new stuff onto my site, the cheese spot, so go check that out. Once I finally fix everything and return to normal routine, remember to check out the CheeseBlog for more tech related shenanigans. Cya!

Wednesday, July 30, 2025

I finally found a cheap way to circumvent AI skimmers

It is called Anubis. It doesn’t require some complicated CAPTCHA, nor does it cost literally any amount of money. It’s open source and available on GitHub.

Now, the interesting part about this skimming circumventer is how it works. In fact, it doesn’t do any of that stuff that the typical anti-bot website addon requires, such as asking the user to do some annoying test of vision that also secretly tracks clicks and mouse movement (or taps if it detects the connected client is a mobile device via the User Agent sent by the browser) to decide whether or not you’re a bot. It’s actually really simple.

Instead, it just does some math. Not math as in stuff that watches your every move and calculates some garbage. Hell, I’m pretty sure it lets the skimmers right in without doing some block or whatever. It just does some really complicated math with some really big numbers, and the math usually varies each time you visit. See, for normal users, this isn’t a problem. Maybe just an extra half a second or two of the page loading—no big problem. But when you’re running a big database with tons of computers skimming every page on a site, the extra money that costs piles up, and quick. Especially if your site has over a hundred pages and tons more links that lead to repetition.

This usually deters the person managing the skimmers or AI from, well, skimming your site, often trying to steer away from it instead. That means your work (probably) won’t be used as often by people putting together AIs or large masses of data! Even better, you can give a big middle finger to search engines like Google and Bing that really aren’t that good! Anyways, if you want to see more tech alerts and cool news like this, remember to tune in to the CheeseBlog for another post. Cya!

Saturday, June 21, 2025

A collection of fun facts not long enough to make an entire post

Some of these are short, some are long, none of them should actually matter to you—but they all are interesting and weird enough when together to make a full blog post. Most of these are just interesting bugs or things that were never patched out in consoles or games.

Minecraft go map, 3DS go crash

This one is fairly well known already, but one of the quickest ways to crash a 3DS and make it force restart is by clicking something once. To prepare, go to a stronghold, and put your bed there. Specifically, put it in the library if possible. If a library didn't generate, redo these steps over and over into one does. Then, after you placed your bed, set it as your respawn point, and save.

Now, you are ready. Reopen Minecraft for New 3DS, open the world, and spam click every chest as fast as possible. You see, Minecraft for New 3DS makes great use of the lower screen. It uses it for inventory management and maps (that you just so happen to get and keep for free without additional inventory space being used)—but this is its downfall, where the error stems. Anyways, there is a high chance that in one of those chests there is a map. Even though the actual map you use isn't an item in the game, Mojang never remembered to remove the possibility of a map generating inside chests in strongholds for this version. Anyways, if you click the map in any chest (or try to use it), kaboom. Successfully crashed your console.

Minecraft for New 3DS never implemented proper error handling for missing item assets and code because they didn't know it would be a problem. It came with available mods on its proprietary addon store, but these were hardcoded into the game, especially if you downloaded Minecraft for New 3DS with DLC.

Anyways, it is one of the coolest but most interesting ways to crash Minecraft New 3DS Edition with a good bit of backstory behind it.

Mii sleep paralysis??

In Tomadachi Life, Miis normally sleep around the same time you would—sometimes going to bed as early as 6 PM (or 18:00) and usually wake up when the sun comes up, whether or not you have the game open. When they go to bed, it is very obvious they go to bed. Their little window on on the screen showing all apartments will have the curtains shut, and when tapping on their apartment, you can usually see them sleeping and sometimes enter if they are dreaming.

However, your Miis will occasionally get sleep paralysis (as a bug, not a feature). Their eyes will remain open even though the game tells you they are in a sleeping state and none of their animations (e.x. tossing and turning) will properly play, resulting in something resembling sleep paralysis for that Mii. It’ll usually fix itself when you go to some other Mii’s apartment and then back to the original Mii’s apartment, ending the sleep paralysis.

Wii time travel everything kaboom

There was an interesting issue with the Wii that was never patched in its lifetime. It was a calendar overflow glitch, involving setting the date to something like 2099. In doing this, the glitch would occur.

This glitch would essentially softlock you in certain parts of the OS or break features. For example, by doing this, trying to do anything on the Wii Message Board would make it infinitely hang while it was “attempting to fetch” mail or whatever. This may or may not have also caused glitches in time-dependent games like Animal Crossing: City Folk, but I’m not entirely sure because I do not have a copy of that Animal Crossing game to test with.

This glitch was never patched out and remains in the latest version, 4.3, as something you can do. If this bricks your Wii and you can’t change the time settings back, don’t blame me.

Miiverse change? it also go kaboom

There was a weird bug with Miiverse (Nintendo’s proprietary social media on the Wii U and 3DS) where changing your profile picture would sometimes cause Miiverse to crash when you opened it. This bug was exclusive to Wii U, as far as I’m aware.

Rebooting wouldn’t fix this either—it was a bug that was semi-permanent. Once you did it, it would stay forever unless you took measures against it. I have absolutely no idea why it is that way. It might have something to do with a conflict between the cache and the data on the server which causes Miiverse to crash? I don’t really know.

Anyways, the only measure you could take against this bug that was likely extremely problematic is straight up wiping your profile from the console. That’s it. You might’ve been able to redownload games after from the eShop but all of your hard earned save data would be gone, just to fix a bug with Miiverse. Was it really worth it?

Streetpass sucks at counting

Streetpass on the 3DS is known to only allow you to streetpass 10 people at a time, which you would then have to greet in app or if you paid for some other thing in the Streetpass Plaza you could send them to a line with a capacity of 100 people total just to streetpass the next 10.

Why does this cap even exist? Well, it’s pretty simple. Out of the already miniscule RAM available on the 3DS (256 megabytes on old 3DS models or 512 megabytes on new 3DS models), Streetpass got even less of it reserved for all of its operations. This ended up with 10 being the optimal number to work with between storing temporary streetpasses, storing your StreetPass profile, and constantly searching for 3DSes to streetpass.

It might’ve been a little hard to notice then if you were in a rural area and really hard to notice nowadays because of how few and far people who actually still use StreetPass are now, but back then it was really easy to notice when you were at a StreetPass Relay spot, because it would not only hit that 10 limit but it would hit it FAST.

mini fact: new leaf villager go poof but no say… why?

There was a chance in Animal Crossing: New Leaf that if you time-jumped a lot to get exclusive items or benefits and didn’t interact with 1 villager in specific, they would leave without even saying a goodbye to you and the others. Just.. gone. So if you play Animal Crossing, maybe stop time jumping if you do and start interacting with your villagers a little more.

Conclusion

That’s it. Not much else to say. I gave some fun facts. If you want more fun facts like this, then don’t forget to tune into the CheeseBlog soon for another post. Cya!