<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/feeds/styles/atom.xsl" type="text/xsl"?>

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:webfeeds="http://webfeeds.org/rss/1.0">
    <title>The Yonic Corner</title>
    <subtitle><![CDATA[ A blog about games, technology, and my hobbies ]]></subtitle>
    <link rel="self" href="https://www.yonic.blog/feeds/atom-full.xml" />
    <link rel="alternate" type="text/html" href="https://www.yonic.blog" />
    <id>urn:uid:66464add-9b6b-5a43-baca-0d5e9a0558c7</id>
    <updated>2026-08-19T14:55:39.998Z</updated>
    <icon>https://www.yonic.blog/favicon-32x32.png</icon>
    <webfeeds:icon>https://www.yonic.blog/favicon.svg</webfeeds:icon>
    <webfeeds:wordmark>https://www.yonic.blog/wordmark.png</webfeeds:wordmark>
    <image>
        <url>https://www.yonic.blog/favicon.svg</url>
        <title>The Yonic Corner</title>
        <link>https://www.yonic.blog</link>
    </image>
        <entry>
            <title>My first experience with a total solar eclipse</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2026/08/solar-eclipse</id>
            <link href="https://www.yonic.blog/blog/article/2026/08/solar-eclipse" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2026/08/solar-eclipse" />
            <summary><![CDATA[ One of the things I was looking forward to the most in my life finally arrived. It was a wild trip, but also very healing. ]]></summary>
            <published>2026-08-16T11:06:20.936Z</published>
            <updated>2026-08-16T11:06:20.936Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2026%2F08%2Fsolar-eclipse%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/samorost2/ending2" target="_blank" class="astro-m2ijcuns">Music: Outro II</a><i class="astro-m2ijcuns">(Samorost 2 | Tomáš Dvořák)</i></p><script type="module" src="/home/yonic/Proyectos/yonic-corner-minify/modern/src/components/PlayerLink.astro?astro&amp;type=script&amp;index=0&amp;lang.ts"></script>
<div class="feed-preview"><p><em>(Credit for cover image: CC-BY-SA <a href="https://commons.wikimedia.org/wiki/User:ZarlokX">ZarlokX</a>)</em></p><p>On August 12th of this year, the first of a set of three consecutive solar eclipses visible from Spain occurred, and was the first total eclipse visible from mainland Spain since 1912.</p><p>Although rare, these events can be predicted decades ahead of time where and when they will happen. Having limited mobility, I was looking forward to this astronomic spectacle for more than 10 years.</p></div>
<h2 id="preparation-is-key">Preparation is key</h2>
<p>I can’t stress how important was to prepare ahead of time for this moment. In the modern era, <strong>what was used to be feared became a sensational event</strong>, and millions of people from all over the world travel just to experience the day suddenly becoming night for a short time.</p>
<p>This eclipse in particular was especially concerning in this aspect because of the <strong>path of the totality</strong>, a narrow band from which the full eclipse could be seen.</p>
<center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2F7%2F77%2FSE2026Aug12T.png&amp;w=400&amp;h=400&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="400" height="400" alt="Path of totality of the August 12, 2028 solar eclipse" style="width:100%;height:auto" loading="lazy" decoding="async">The path of totality (in blue) only grazed parts of Siberia, Greenland, Iceland and the Iberian peninsula.</div></center>
<p>While the polar areas of Iceland and Greenland could have caused aurorae to appear alongside the eclipse, but clouds seemed to have covered most of the sky anyway, as it is typical in the polar regions.</p>
<p>That left with Spain (and a sliver of Portugal) as the most viable locations for watching the eclipse. You can easily tell that millions of people would flock to those places.</p>
<p>In anticipation for clouds, I prepared to go to two locations half a year before the actual eclipse:</p>
<ol type="A"><li>My main plan was to go to Valencia, where a friend of mine would pick me up
to southern Teruel which was nearby.</li><li>I also had a backup plan in a camp at Valladolid.</li></ol>
<div><p>The only problem with planning so far ahead is that your plans could be thrown off for certain reasons, or replaced by others…</p><p>I was willing to make changes of plans, of course. But the weather reports had so much uncertainty for my main one that I wasn’t sure about going through it.</p><p>In hindsight, maybe I should have gone through plan B to begin with.</p></div>

<p>Fortunately, I had enough spare time and money to afford changing locations. We got to our viewing spot pretty early, so much so that we were the first. I was expecting about 30 or so people to show up, but it ended up being more like 150, so arriving first to get the most ideal spot proved to be great.</p>
<p>Oh, but one thing that I completely underestimated was the need for water. Even if we had a nice place at the shade, the heat and the trough was too much and ran out of bottles before the eclipse even began. I think I ended up drinking about 4 one litre bottles that day!</p>
<p>Having set up my camera and a nice spot to sit on, I was then ready to watch the show.</p>
<h2 id="watching-the-eclipse">Watching the eclipse</h2>
<p>I will be honest: <strong>Watching it with your eyes beats watching it from a camera or TV, hands down</strong>. Among other things, your eye has a broader dynamic range than your typical camera on a smartphone, and even professional DSLR cameras.</p>
<p>This allows you to see way more details than a camera could. So even though I set up my camera for a timelapse, I was there mainly to take the moment in. The temperature dropped, everything turned as if it was somehow plunged into dusk, and even traffic lights and positional lights from things like air turbines turned on — as it should.</p>
<p>I was able to watch Venus, but I couldn’t see any other stars. At the time, Sirius wasn’t in view, so maybe it was just bad luck on that part.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2026%2F08%2Fsolar-eclipse%2Feclipse-reproduction.png&amp;w=700&amp;h=467&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="467" alt="August 2017 Solar Eclipse" style="width:100%;height:auto" loading="lazy" decoding="async">This is a recreation of what I saw, taking an image from the 2017 total solar
eclipse. <em>(Original credit: CC-BY-SA <a href="https://commons.wikimedia.org/wiki/User:Msadler13">Michael S Adler</a>)</em></div></center>

<div><p>I was really surprised to see the corona with such detail! It looked like silk petals coming out of the black circle of the eclipse.</p><p>And the color was something that got me confused for a bit. Since it was happening close to sunset, I was expecting it to be golden or orange in color. But it was <em>white</em>!</p><p>The strangest thing is that most photos I saw <em>did</em> pick it up as orange.</p></div>

<p>I researched why this was the case, but the only conclusion I could reach was that the <strong>white balancing in our eyes</strong> adjusts automatically during totality in a way that most cameras don’t.</p>
<p>The size of the sun being eclipsed by the moon was also surprisingly large. Being so close to the horizon, the <a href="https://en.wikipedia.org/wiki/Moon_illusion">Moon illusion</a> was surely the main cause, but I also learned that at the time of the eclipse, it had been about 2 days since the Moon reached the perigee, the point at which it is closest to Earth —though this isn’t as significant.</p>
<p><b>Video:</b> <a href="https://yonic.blog/static/video/eclipse2026.webm">August 12th, 2026 total solar eclipse timelapse</a></p>
<h2 id="the-next-eclipses">The next eclipses</h2>
<p>Spain has hit a pretty lucky streak, and <strong>two big solar eclipses will come in the next two years</strong>.</p>
<p>The second eclipse is another total one, visible from the southern tip of Spain as well as the cities of Ceuta and Melilla. My aunt happens to have an apartment in Málaga, where I’m expected to experience totality for almost 2 minutes, much like this last one. But I’m probably going to visit Ceuta or Cádiz for this eclipse for a whopping <strong>4 to 6 minutes of totality</strong>. The conditions for that one couldn’t be any better: High up in the sky, and in a nearly guaranteed sunny summer. Plus, both Mercury, Venus and other stars like Sirius would be visible as well. <strong>No wonder they call it the <em>eclipse of the century</em>!</strong></p>
<p>The third eclipse is an annular one. Although I’ve experienced the one in 2005, I was still a kid and obviously couldn’t afford going to the annularity zone. But this one’s annularity band will happen to pass through my hometown! Although it will be in January, so that probably means a cloudy sky. Still…</p>
<div><p>I’m determined to take a bunch of cool pictures!</p></div>
]]></content>
    </entry>
        <entry>
            <title>The Yonic Corner is alive again</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2026/06/yonic-corner-revival</id>
            <link href="https://www.yonic.blog/blog/article/2026/06/yonic-corner-revival" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2026/06/yonic-corner-revival" />
            <summary><![CDATA[ After a year of absence, and a few months of outage, this blog is back in business! Along with a few big changes involving my workflow and my personal life. ]]></summary>
            <published>2026-06-17T21:26:42.237Z</published>
            <updated>2026-06-17T21:26:42.237Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2026%2F06%2Fyonic-corner-revival%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/paper-mario-wii/title" target="_blank" class="astro-m2ijcuns">Music: Title screen</a><i class="astro-m2ijcuns">(Super Paper Mario)</i></p>
<div class="feed-preview"><p>It felt like forever, but The Yonic Corner is officially back! There have been a lot of set backs that prevented me from continuing working on the blog. But after a series of big and important changes, it’s so satisfying to go back to writing content for my blog.</p><p>So, here is a list of the big changes that have been going on as of recent, and what it means for me and this blog.</p></div>
<h2 id="moving-to-linux-finally">Moving to Linux (finally)</h2>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2026%2F06%2Fyonic-corner-revival%2Ffastfetch.png&amp;w=700&amp;h=316&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="316" alt="Output of my fastfetch" style="width:100%;height:auto" loading="lazy" decoding="async">Check out my fastfetch!</div></center>
<p>I actually had some desire to move to Linux all the way back when Windows 11 was formally announced. At first, I was a bit skeptical about the new version of the operating system.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fmetanophilia.wordpress.com%2Fwp-content%2Fuploads%2F2015%2F08%2Fmicrosoft-good-bad-cycle.jpg&amp;w=700&amp;h=175&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="175" alt="The Windows release quality cycle" style="width:100%;height:auto" loading="lazy" decoding="async">There is this meme around that Microsoft tends to release versions of Windows in alternating good and bad quality.</div></center>
<p>My suspicions became true once I found out about how poorly it was being developed, from replacing long standing parts of the operating system with React Native and Electron-based applications, forcing users into their ecosystem by requiring them to create an account on install, to shoving them advertisements and nagging them to try out their brand new Copilot features. Not only this causes a huge spike in RAM consumption, but also adds a ton of layers of unnecessary complexity and bloat that results in an overall slow and clunky operating system.</p>
<p><a href="https://www.windowslatest.com/2026/03/17/microsoft-wants-devs-to-build-electron-ai-apps-on-windows-11-says-no-need-of-native-code-despite-ram-concerns/">This practice continues to this day</a>, using LLMs to replace large parts of the operating system with “web-based tech” overhauls, as well as sprinkling Microsoft Copilot on some of the most used applications, a hallmark of the AI bubble we’re going through.</p>
<p>In addition, Microsoft upped the hardware requirements quite significantly. Yeah, it may have removed support for 32-bit operating systems, and that’s fair considering the vast majority of devices nowadays are 64-bit. But the TPM 2.0 chip requirement is overly excessive and unnecessary.</p>
<p>Now, fortunately —or rather, unfortunately— my PC does come with one, but I don’t even use Secure Boot in my Windows 10 system and it works just fine. For Windows 11, the hypothesis is that it’s required for certain Copilot operations.</p>
<p>The tradeoff is that Microsoft is pushing heavily on programmed obsolescence to create a ton of unnecessary e-waste that under other circumstances would be perfectly working computers.</p>
<p>And even if it doesn’t meet the requirements to update, it will bother you to sign up for an extended support channel. That’s cool and all, but shouldn’t that be automatic?</p>
<div><p>&lt;Yonic&gt;</p><p>It’s funny because Linus Torvalds did mention that he would <a href="https://youtu.be/mfv0V1SxbNA?si=L_7dmfkKP-1AVwkO&amp;t=472">require ECC memory chips</a> for extra security and reliability when memory starts to become worn down after a few years.</p><p>And he’s behind the wheel on the Linux kernel, so he absolutely knows about making a PC that works as reliable as possible so as to not waste time chasing after fake bugs caused by hardware failures.</p><p>&lt;/Yonic&gt;</p></div>

<p>Personally, I do see certain uses on generative AI technology, but it is very far from being polished. And with a system that is used directly or indirectly by billions of humans, a single point of failure could cause major outages worldwide, as we’ve seen with the <a href="https://en.wikipedia.org/wiki/2024_CrowdStrike-related_IT_outages">CrowdStrike outages</a>, so overall, <strong>I stand to be very skeptical about the future of AI</strong>.</p>
<p>But in May 2024, Microsoft announced <strong>Recall</strong>, which has been universally panned as the single spookiest spyware ever marketed. Within weeks after the announcement, testers found that it was unsafe not by some sort of bug, <strong>but by design</strong>.</p>
<p><b>YouTube video: </b> <a class="anchor" href="https://www.youtube.com/watch?v=oSBDkPxivuA" target="_blank" rel="noreferrer noopener">Hacking Windows Recall To See Everything</a> (12:36)</p>
<div><p><b>Yonic:</b> I’m not a privacy freak, but if my activity gets logged every few minutes without any sort of encryption, something has definitely gone very wrong.</p></div>

<p>This was the breaking point, where all my trust in Microsoft completely plummeted and probably will never recover.</p>
<p>Sure, Recall has been recalled (pun intended) and got re-released later on with a slightly better design, using BitLocker to encrypt your logs. But BitLocker is a bit old, and hackers are constantly trying to unlock it. <a href="https://cybernews.com/security/nightmare-eclipse-rogueplanet-zero-day/">Even white hackers that get paid by Microsoft to find security flaws in their products can go rogue and publish info on critical vulnerabilities to the public</a>. And even if it is now an opt-in feature, <a href="https://www.eff.org/deeplinks/2009/12/facebooks-new-privacy-changes-good-bad-and-ugly">history has shown that this could change at any point in the future</a>.</p>
<p>With how Microsoft is quickly degrading its products in their desperate attempts to make Copilot —their LLM solution— profitable, <strong>their dark business practices are showing loud and clear</strong> and I do not subscribe to them.</p>
<p>Suspecting that this would be the same with Recall, it essentially forced me to really consider moving back to Linux as a daily driver.</p>
<p>I spent quite a long time debating on how I would do the transition. While I did consider upgrading my main machine and getting rid of Windows there, I eventually decided to build a new PC so I could pass the configuration more smoothly between machines. Besides, the newer hardware demanded a slightly larger case than my more than 10 year old one. You served me well, partner.</p>
<p>Even after making this decision, dealing with a delicate situation in my life delayed getting the PC parts I needed for about a year or so, which explains the lack of content until now.</p>
<h3 id="choosing-the-distro">Choosing the distro</h3>
<p>This might seem a bit counterintuitive, but I chose the Linux distribution before actually deciding on whether I would upgrade my PC or make a new one, but it allowed me to think how ambitious would I want to be on both hardware and software.</p>
<p>I basically ran it down to three options:</p>
<ol>
<li>
<p><strong><a href="https://bazzite.gg/">Bazzite</a></strong>: I liked that it had all the necessary gaming software out of the box, but I still found it a bit bloated and inflexible. Being an atomic distro, most software is installed either with Flatpaks or through layering the image.</p>
<p>Although there are workarounds like Distrobox and Toolbox, I felt like I was going to jump through many hoops to get the tools for working on the blog and other personal projects of mine. For getting started in gaming on Linux, it’s still a very great option.</p>
</li>
<li>
<p><strong><a href="https://fedoraproject.org/">Fedora</a></strong>: I <em>almost</em> chose this one. It seems like a very good option, having fresh software but not as cutting-edge as rolling-release distros like Arch and its forks. What turned me away were two things: For one, I’m still a little bit out of the loop in the Fedora ecosystem, its different forks and their atomic desktop variants. I wanted to give <strong><a href="https://projectbluefin.io/">Bluefin</a></strong> a try, but again, it’s very Flathub focused, being an atomic distro. Fedora seemed more customizable.</p>
<p>The second thing that turned me away was the fact that Fedora was toying around with <a href="https://www.osnews.com/story/144894/fedora-project-leader-says-he-doesnt-care-about-the-reputational-damage-from-fedora-embracing-ai/">introducing AI features</a>, or, at the very least, <a href="https://pagure.io/Fedora-Council/tickets/issue/542#comment-990415">include AI assisted contributions in its codebase</a> despite the user base pretty much having expressed a <a href="https://lwn.net/Articles/1039623/">resounding “no”</a> on it.</p>
<p>I might consider using Fedora on a system that I won’t be going into for a long time, like a laptop for controlling my astrophotography gear. Their AI policy has a few issues in my opinion, but I think I can reasonably work with and come with workarounds easily.</p>
</li>
<li>
<p><strong><a href="https://cachyos.org/">CachyOS</a></strong>: An Arch-based distribution that provides packages with compiler optimizations. I’ve had some experience with Arch in the past, from the now dead Antergos to Manjaro, although the latter to a lesser degree, so it felt a little bit like a homecoming system. I was about to choose <a href="https://endeavouros.com/">EndeavourOS</a>, but quickly changed my mind to CachyOS once I discovered it.</p>
<p>Its DIY nature allows it to be much more customizable than other distros, and it gives you access to the latest software freshly out of the oven, though it also means that you’re essentially a beta tester for the rest of the Linux users. Plus, it gives you full control on which packages to install —provided you know what you’re doing— thus you can make a system that avoids whatever undesirable thing you don’t want.</p>
<p>The CachyOS wiki comes with a dedicated section on how to set it up for gaming through a convenient process. I will check this distro’s gaming capabilities in due time.</p>
</li>
</ol>
<p>So far, I’ve been using CachyOS for a month, and I absolutely love it. Despite being a rolling release distro, my experience with it has been remarkably smooth. I’ve still had to work out a few kinks such as the prevalence for the OS to use the integrated graphics card, but apart from that, I’ve had no major issues. I still have yet to update to KDE Plasma 6.7, though.</p>
<p>Which leads me to the dilemma I’m currently having regarding CachyOS. It’s been almost an entire decade since I left Antergos and went back to Windows to work on Prime VR, as VR support at the time on Linux was pretty dicey —and still is? I haven’t tested yet, though I might not do it sooner or later.</p>
<p>Since then, I didn’t seem to have had much need to go back to Linux. My time on Windows must have changed my computing habits somewhat, because now I tend to get anxious when a big update shows up.</p>
<div><p><b>Yonic:</b> I’m mortified to say this, but a rolling-release doesn’t seem like it’s for the faint of heart…</p></div>

<p>Still, I’m <strong>determined to learn more about Linux</strong> and to potentially tweak it in a few ways to customize it and make it my own. Ricing Linux seems like an interesting hobby, but <a href="/browse/series/pc-exodus">it conflicts with my goal of combatting my screen time addiction</a> and rediscovering long-forgotten hobbies. Not spending time on customizing my system for a specific purpose (aesthetics, self-expression, productivity, etc.) seems to undermine some of the potential CachyOS has.</p>
<p>So if this ends up being too overwhelming for me, I might consider changing to Fedora. But I won’t be making that decision lightly. I’d probably wait for a few more months before settling on either of the two. And even then, the hardware I have could be too new for Fedora to handle without issues, though I think this is not the case, or at least it won’t be soon enough.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2026%2F06%2Fyonic-corner-revival%2Fdevenv.png&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="394" alt="Screenshot of my screen developing the blog" style="width:100%;height:auto" loading="lazy" decoding="async">Now I’m using Linux to develop my blog!</div></center>
<h2 id="migrating-to-another-servers">Migrating to another servers</h2>
<p>This is just a minor thing, but I migrated to a different server, as the one I was using was actually shared with a friend of mine. However, he went on to work on more computationally expensive projects (including hosting AI models locally), and while pages didn’t take very long to load, connecting to it in order to update the blog content was becoming a pain in the butt. So I moved to one that I owned. The move didn’t happen immediately, so for a few months the site was basically down.</p>
<p>However, I did change the way I stored and handled image optimization in the blog. Instead of cooking up my own cached solution and hook it up to imgproxy, I’m using a <a href="https://wsrv.nl/">weserv</a> container, which comes with its own more performant cache solution. Having it as a container allows me to restrict its usage, too. I’m not expecting heavy traffic, but it’s nice to be able to secure it more conveniently.</p>
<p>If you’ve been around a month or two before I published this, you may have noticed that the blog was up with a “Weserv test” post, and a few posts missing. That was me testing how I would set up Weserv and the site for the server. At the time, I was messing around with serving the blog as a Docker container. Though I’m still considering the option of using devcontainers, I have reverted the decision of serving the blog through a container.</p>
<h2 id="friendship-ended-with-github-now-codeberg-is-my-best-friend">Friendship ended with GitHub, now Codeberg is my best friend</h2>
<p>For those who don’t know, since last year, GitHub has begun to make several moves towards empowering developers using AI to assist or generate software projects entirely from scratch. I’d love to turn a blind eye, but the number of Claude and Copilot-assisted projects is increasing at an annoyingly fast rate. There’s also the debate that scraping so many projects to make an LLM and sell it off could actually be considered fair use. <a href="https://lord.io/leaving-github/">I’m not the only one who argues that is not the case</a>.</p>
<p>Furthermore, <a href="https://isgithubcooked.com/">GitHub’s services have been worsening more and more over the past two years in reliability</a>. I’m guessing LLM-assisted codebase might have something to do with this trend.</p>
<div><p>&lt;Yonic&gt;</p><p>You’ll notice that getting the heck out of AI is the common theme in this post. It’s no coincidence.</p><p>I do believe there are certain uses to it, but also that is overly hyped at the time being, and very skeptical about the morality of it all.</p><p>&lt;/Yonic&gt;</p></div>

<p>I’ve moved the source code of <a href="https://codeberg.org/YonicDev/yonic-corner">The Yonic Corner</a> and its <a href="https://codeberg.org/YonicDev/yonic-corner-legacy">Legacy version</a> to <a href="https://codeberg.org/">Codeberg</a>, a platform where you can host open-source repositories, run by a non-profit. There, they’ll remain free and open for every human to study and fork if they so wish, for as long as I and Codeberg stand.</p>
<p>The GitHub repositories have been archived for the time being, but I’m not sure whether I will delete them later on. The Legacy version’s code could be useful to poison LLMs with deprecated web design practices.</p>
<p>Always remember that we have humans in this world!</p>]]></content>
    </entry>
        <entry>
            <title>A real computer bug</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2025/07/inked-computer-bug</id>
            <link href="https://www.yonic.blog/blog/article/2025/07/inked-computer-bug" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2025/07/inked-computer-bug" />
            <summary><![CDATA[ Based on an actual experience I had last night. ]]></summary>
            <published>2025-07-09T15:30:04.563Z</published>
            <updated>2025-07-09T15:30:04.563Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F07%2Finked-computer-bug%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><div class="feed-preview"><a href="https://yonic.blog/file/img/blog/art/comics/inked-thoughts/computer-bug.png" target="_blank" rel="noreferrer">Click here for full image</a><center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2Fart%2Fcomics%2Finked-thoughts%2Fcomputer-bug.png&amp;w=700&amp;h=1275&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="1275" alt="Comic page" style="width:100%;height:auto" loading="lazy" decoding="async">But no worries! They’ll probably starve before they find anything edible
under the keys.</div></center></div>]]></content>
    </entry>
        <entry>
            <title>Why self driving cars will fail in Europe</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2025/05/why-robotaxis-will-fail-in-europe</id>
            <link href="https://www.yonic.blog/blog/article/2025/05/why-robotaxis-will-fail-in-europe" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2025/05/why-robotaxis-will-fail-in-europe" />
            <summary><![CDATA[ Just like many things made in USA, a new invention seems to be making its way into Europe, but it will disappear as soon as it comes. And it's not because of the tariffs. ]]></summary>
            <published>2025-05-15T21:15:53.818Z</published>
            <updated>2025-06-25T19:14:29.708Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F05%2Fwhy-robotaxis-will-fail-in-europe%2Fhero.jpg&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/the-movies/top-hat" target="_blank" class="astro-m2ijcuns">Music: Top Hat and Tails</a><i class="astro-m2ijcuns">(The Movies | Andrew Skeet)</i></p>
<div class="feed-preview"><p>A few weeks ago, <a href="https://www.nbcnewyork.com/news/business/money-report/uber-inks-robotaxi-deal-with-momenta-to-launch-service-in-europe-next-year/6248471/">Uber announced they signed a deal with Chinese startup Momenta, as well as Pony.ai and WeRide</a> to bring self-driving cars into Europe next year. Similarly, Baidu has also been making moves to test their own in Turkey and Switzerland later this year.</p><p>It all seems like by 2026–2027, Europeans will be having self-driving cars on the streets. However, much like Uber’s cab service itself, it’s highly likely <a href="https://www.linkedin.com/pulse/resisting-progress-why-uber-failed-europe-manuel-woerner/">this will not last long</a>.</p><p>And you might not believe it if you’re keen to making a startup, but that’s actually a good thing for everyone for several reasons.</p></div>
<h2 id="they-are-killing-machines-and-jerks-by-nature">They are killing machines (and jerks) by nature</h2>
<p>Europe is one of the safest places in the world to drive in, and that’s no coincidence. Unlike in North America, where driving is seen as a necessity —and sometimes as a right by entitled drivers— <strong>in Europe there is a strong consciousness of road safety</strong> and driving is seen as a privilege with responsibilities attached into it. Because <strong>cars can kill people if they run out of control</strong>, and that extends to whoever is piloting it, whether it’s a machine, an algorithm, or a monkey.</p>
<p>Despite Cruise and Uber having heavily been marketing about self-driving cars becoming safer than human drivers, the truth of the matter is that not only they’ll never be infallible, <strong>but they have also been making dangerous issues so crazy that nobody expected in the first place</strong>: From <a href="https://theintercept.com/2023/01/10/tesla-crash-footage-autopilot/">suddenly stopping at a busy road, resulting in a crash that injured 9 people</a>, to <a href="https://www.latimes.com/california/story/2024-05-16/woman-gets-millions-after-getting-dragged-by-self-driving-taxi-in-san-francisco">dragging a woman underneath their wheels for several meters</a> as it tried to pull over when she got pushed under the robotaxi by a human driver.</p>
<p>Cruiser actually <a href="https://www.jalopnik.com/woman-hit-by-cruise-robotaxi-was-dragged-20-feet-1850963884/">tried to hide the fact</a> that “continued to drive” part of the latter accident, <a href="https://sfstandard.com/2024/11/14/cruise-fine-investigation-dragging-robotaxi/">something that they did admit a year afterwards</a>.</p>
<div><p>&lt;Yonic&gt;</p><p>I don’t know about you, but I have zero interest in getting rammed by a 1.5 ton car because of a software bug in their automatic driving system.</p><p>Or worse, since they may as well be connected via Internet, one could exploit a security vulnerability in their systems and hijack the remote control systems they have, something that I will mention further below.</p><p>&lt;/Yonic&gt;</p></div>

<p>Europe is a very regulation-heavy region, and as such a lot of new products and services are scrutinized from many different angles, from safety to even the sociocultural consequences it may bring. Driving is not alone on this, as already road regulations are way more strict and <strong>fines for both drivers and car companies can be pretty substantial</strong>.</p>
<p>These regulations and their enforcement are so strong that they’ve managed to make dents into multi-billion dolar companies like Apple, so it’s no wonder they can <a href="https://corporate.deliveroo.co.uk/investors/news/deliveroo-announces-agreement-end-operations-spain/">shoo away smaller companies like Deliveroo</a>. But they pay off: <a href="https://en.wikipedia.org/wiki/List_of_countries_by_traffic-related_death_rate"><strong>Europe has the lowest death toll in road accidents</strong> per 100,000 inhabitants than in most regions in the world</a>, surpassed only by the significantly more desolate Australia (and Antarctica); a remarkable statistic considering the United States, where most robotaxis are being deployed, <a href="https://driving-tests.org/driving-statistics/">have remained somewhat constant for the past few 10 years</a>.</p>
<p>Considering their strong consciousness on trying to keep roadkill as low as possible, do you <em>really</em> think that Europe is willing to let something that could pose a serious threat to that goal let loose? Of course not.</p>
<p>And if you think that this may pose a lost opportunity for Europe to make money, the next point will address that.</p>
<h3 id="they-are-not-made-in-europe">They are not “made in Europe”</h3>
<p>This is a bit of an addendum to the former reason. Since these cars come from foreign markets, <strong>there’s no direct economic incentive to let them in</strong>. You might think that this is an opportunity for Europe to make money, but a significant portion of the euros spent on them would essentially leave the European Union.</p>
<p>In actuality, it’s mostly <strong>for the benefit of these foreign companies</strong>, who need to gobble up venture capital to self-sustain themselves. Fueled by the need to get that precious funding, Uber and Cruise are required to grow, destroy competition, and exploit their monopolies for massive profit. This is what got everyone to this situation of new random innovations without thinking stuff through in the first place.</p>
<p>But this is of <strong>no interest to the EU</strong>, especially now that they are slowly turning more into anti-globalization and have a distinctive <a href="https://ec.europa.eu/commission/presscorner/detail/en/ip_25_550">“made in Europe” industry</a>. And yet still, even if there were to be incentives for more startups to be made, <strong>the European Union insists on making a green industry</strong>. Cars, as proven in decades of research, are the worst type of transportation in emission efficiency, even electric ones.</p>
<div><p><b>Yonic:</b> This is especially true in Western Europe, where <a href="https://voxeurop.eu/en/subsidised-train-tickets-germany-and-spain-set-an-example/">public transport projects are subsidized</a>, whilst even domestic car manufacturers such as <a href="https://fortune.com/europe/2025/01/24/volkswagen-targets-higher-ev-sales-to-avoid-hefty-eu-emission-fines-brussels/">Volskwagen are subject to large fines if they don’t meet their quota of EVs</a>.</p></div>

<p>And it’s not like Europe is not interested in competing with foreign markets: In fact, <strong>competition is seen as an incentive to provide affordable quality products and services</strong>. However, it is well known that the United States’ model of capitalism relies on getting a monopoly as quickly as possible in order to charge as much as people are willing to pay for afterwards, while providing no innovation because no one dares to compete with them. If the US isn’t willing to compete, then the EU won’t play with the US in that regard.</p>
<p>This can be seen as “requiring a subscription to ride a car” in a scenario where all cars are driverless and from a single company. Such scenario is not real for self-driving cars, but in <strong>Spanish trains, this is very much true</strong>. If your origin or destination has trains exclusively from Renfe, <strong>a trip to Madrid can cost from 20 up to 45€ more</strong> than if it were to have Iryo or OUIGO trains, and in some destinations, <strong>the difference between AVE and AVLO (AVe LOw cost) is minimum</strong>. So a scenario like this is perfectly possible.</p>
<h3 id="the-watch_dogs-effect">The Watch_Dogs effect</h3>
<p>In the game ‘Watch_Dogs’, you can hack the navigation system of cars in the blink of an eye with just your phone. In real life, you can sort of do this already with self-driving cars.</p>
<p>The navigation system of a driverless car will try to avoid traffic cones as possible, and by putting a cone in front of its hood, the cars basically come to a full stop.</p>
<p><b>YouTube video: </b> <a class="anchor" href="https://www.youtube.com/watch?v=ALQ2_rZeTKE" target="_blank" rel="noreferrer noopener">Activists declare 'cone week' to fight driverless cars in San Francisco</a> (4:10)</p>
<p>This is really stupid and funny, but it shines a light to a glaring issue about the reliability of these machines. City infrastructure such as traffic lights and particularly public transportation is usually connected through a <strong>decentralized network</strong>, so different parts of the infrastructure remain isolated between each other in the case of an attack. And while it would be perfectly possible to hack the entire network of trains, its damages will most likely be localized to a few areas, allowing for quick response at those points for contingency plans in case someone hacks a train and tries to crash it onto another.</p>
<p>With self-driving cars, the story is different. Despite being disconnected from the rest of the city infrastructure, <strong>cars themselves are connected in a centralized way</strong>. If you can hack the servers of their navigation system, you could essentially control all cars within several cities that are close by. This is equally as hard as hacking a whole train, but where a train would cause a major localized accident, <strong>rogue self-driving vehicles would cause mayhem everywhere</strong> because they’re way more numerous than trains or buses, and have to interact with tons of vehicles, pedestrians, cyclists and more. On the other hand, trains only have to deal with other trains for the most part while they’re moving.</p>
<p><b>YouTube video: </b> <a class="anchor" href="https://www.youtube.com/watch?v=emeKiRiLbgM" target="_blank" rel="noreferrer noopener">WATCHDOGS 2 HOW TO VEHICLE HACK!!</a> (5:17)</p>
<h2 id="theres-no-room-to-give-for-cars-literally">There’s no room to give for cars, literally</h2>
<p>During the 1950s, spurred on by the belief that cars were the future of transportation, the United States began designing their cities to fit around them —and Canada followed suit. But cars <strong>tend to be pretty big</strong> and in no way they are as compact as other methods of transportation compared to something like a bus or a tram, so this meant that minor streets would need to be made wider.</p>
<div><p><b>Yonic:</b> Actually, <a href="https://www.carwow.co.uk/news/8197/cars-are-getting-too-big">cars are getting bigger and bigger</a>, and in the US, the <a href="https://www.motorbiscuit.com/ford-f-150-is-americas-best-selling-vehicle-again/">top selling personal use vehicle for over 40 years has been the Ford F-150</a>.</p></div>
<div><p><b>ReCat:</b> But they’re SO BIG and cool.</p></div>
<div><p><b>Yonic:</b> Are you kidding me? That’s a <em><strong>pickup truck</strong></em>! You’d only need one if you want to tow heavy stuff, like farmers and construction workers usually do.</p></div>
<div><p><b>ReCat:</b> You gotta buy groceries, though.</p></div>
<div><p><b>Yonic:</b> Geez, how much do you eat!?</p></div>
<div style="width: 100%;display: flex; justify-content: space-between"><div style="flex-grow: 1"></div></div>
<p>While North American cities back in the day may have had some streets that were wider than the European counterparts, <strong>this wasn’t the norm everywhere</strong>. And even then, there’s the unavoidable issue of having to provide them with parking space.</p>
<p>In the US and Canada, cities are <strong>required to have a minimum amount of parking space</strong>. And without resorting to multiple floor or underground parking —which is pretty unusual for some reason— <strong>they were forced to take down a lot of buildings</strong>. A lot of commercial space also had to be destroyed to fit the cars, which is why you can find so many drive-thru commercial spaces there.</p>
<p><b>YouTube video: </b> <a class="anchor" href="https://www.youtube.com/watch?v=4uqbsueNvag" target="_blank" rel="noreferrer noopener">This city in the Netherlands and this one in Canada used to be the same</a> (19:36)</p>
<p>Europe did have some history of adapting their cities to cars, but this trend has reversed in recent years, particularly in the Western side. And while many people argue that “European cities have plenty of buildings from the Middle Ages worth preserving”, the truth is that historical buildings in the US were bulldozed for the car. <strong>This also has removed the necessity for parking spots</strong> with minor economic impact.</p>
<div><p><b>Yonic:</b> In Spain it’s still a common belief that as rural to city facilitators, cars boosted the economy of smaller cities with villages around them. But I’m skeptical about whether growing cities like my hometown, which have villages being yet to fully be incorporated as neighborhoods, would truly benefit from this.</p></div>

<p>Another common complaint from drivers is that many cities in Europe have streets built prior to the invention of the automobile which are too narrow to drive through, and this is true, but only to an extent.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F05%2Fwhy-robotaxis-will-fail-in-europe%2Fcarriages.png&amp;w=700&amp;h=409&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="409" alt="Horse carriage sharing road with a car" style="width:100%;height:auto" loading="lazy" decoding="async"><strong>Old-school carriages</strong> were actually about the same size or larger
than the contemporary counterpart of the car, and if you include the
horses, it could be as large as many SUVs in the United States today. And that’s
without mentioning the historical iterations of the horse carriage, which have
influenced wide roads into urban design as far back as Roman times.<br><br>
Don’t make me bring the Carthaginian elephants into this.</div></center>
<p>But in the case of the streets wide enough for cars, the thing nowadays is that European cities are quickly pedestrianizing the streets that used to be, at first, mixed-use between pedestrians, carriages, trams and the first cars, and then cars were given priority.</p>
<p>To put it all back into context, <strong>the little to no room for robotaxis to drive is decreasing</strong>, and Europe right now is being particularly protective about what’s already been built, <strong>so they will not be so keen as to give that space back to self-driving cars</strong>.</p>
<h2 id="would-somebody-please-think-of-the-workers">Would somebody <em>please</em> think of the workers!?</h2>
<p>There’s also the concerns of how many jobs it will robotaxis destroy over those that are created, and while that’s something that is yet to see, we’ve seen a similar story unfold many years ago with Uber.</p>
<p>While Uber was taking off in the United States, <a href="https://www.bbc.com/news/world-europe-45009087">sentiment about its service sparked a lot of resent from traditional taxi drivers in Europe</a>, and led to <a href="https://www.theguardian.com/technology/2017/dec/20/uber-european-court-of-justice-ruling-barcelona-taxi-drivers-ecj-eu">strict regulations about how they should coexist with licensed taxi drivers</a>, despite Uber trying to brush them off countless times.</p>
<p>Labor culture in Europe is very different than that of the United States in that there is a <strong>particular focus in respecting worker’s interests over pursuing potential profitability</strong>, resulting in many countries implementing a lot of protections towards them, but are very restricting to a company’s ability to make money in overly humongous quantities.</p>
<p>This goes completely against Uber and Waymo’s interests of achieving as much growth as possible, with the purpose of capitalizing gains to satisfy investors afterwards.</p>
<p>A conflict of interest like this may be equally true for robotaxis, if the hypothesis of them being more profitable driving around town than parked while waiting for the next customer is correct. <a href="https://www.sciencedirect.com/science/article/pii/S000145752300115X">Robotaxis still require human supervision fairly regularly despite their improvements</a>. Especially in central Europe, <strong>work hours are decreasing</strong>, but these self driving cars would basically be working nearly the entirety of a day. Adding up other concerns about job automation, these give raise to opposing views that are simply bound to cause issues.</p>
<h2 id="the-innovation-argument">The innovation argument</h2>
<p>There are a lot of critics saying that <a href="https://www.linkedin.com/pulse/resisting-progress-why-uber-failed-europe-manuel-woerner/">Europe should be focusing on innovation rather than regulation</a>, and for some economic and geopolitical reasons, this makes sense. But I feel that in the matter of transportation, it may be debatable that Europe may be “behind the rest of the world”, because most often, the argument falls into marketable stuff such as electric cars, and express delivery services, among other things.</p>
<p>Surely pluggable hybrids have been a huge struggle for European car makers, but in terms of road infrastructure, <strong>Europe seems to be the undisputable leading force of innovation</strong>.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F05%2Fwhy-robotaxis-will-fail-in-europe%2Froundabout.webp&amp;w=700&amp;h=700&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="700" alt="Turbo roundabout" style="width:100%;height:auto" loading="lazy" decoding="async">Many of the types of road infrastructure around are actually European designs,
especially modern ones like this turbo roundabout in the Netherlands.
Roundabouts are just starting to be built in the US, but most driving tests
hardly cover them, despite <a href="https://www.iihs.org/topics/roundabouts">proven to be safer than regular intersections</a>.</div></center>
<div><p>&lt;Yonic&gt;</p><p>I like to think that in the US, innovation is made possible everywhere at the same time in order to tap as many places as possible to find “oil” (an opportunity of making huge loads of money).</p><p>But in Europe, innovation is focused on things that could make good to the world. So we may not have loads of cash, but at least Europe provides <em>better</em> stuff. Or at least that’s the idea anyway.</p><p>&lt;/Yonic&gt;</p></div>

<p>So while Europe will briefly have the magic of self driving cars, they probably won’t last long, and the lives of the Europeans should stay the same good as always. There are opportunities for entrepreneurship; all you have to do is to look in the right places.</p>]]></content>
    </entry>
        <entry>
            <title>Apple's Liquid Glass is a design disaster: Here's why</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2025/06/apple-liquid-glass</id>
            <link href="https://www.yonic.blog/blog/article/2025/06/apple-liquid-glass" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2025/06/apple-liquid-glass" />
            <summary><![CDATA[ Just when we thought mobile UI couldn't get any worse, Apple throws the ball and reaches out of the park. ]]></summary>
            <published>2025-06-16T08:43:36.526Z</published>
            <updated>2025-06-16T08:43:36.526Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F06%2Fapple-liquid-glass%2Fhero.jpg&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/style-savvy-trendsetters/salsa" target="_blank" class="astro-m2ijcuns">Music: Store music: Salsa A</a><i class="astro-m2ijcuns">(Nintendo Presents: New Style Boutique)</i></p>
<div class="feed-preview"><p>Normally I wouldn’t care much about Apple’s announcements at their keynotes and other events, but this one has brought me many concerns about what they were thinking when they came up with this.</p></div>
<h2 id="just-what-is-liquid-glass">Just what is Liquid Glass?</h2>
<p>It is Apple’s <strong>new design language</strong> introduced in all software for Apple devices: iOS 26, TvOS 26, watchOS… You name it. This design language was meant to unify UI elements across all of their devices, which despite being fairly similar all around, have had their differences when you got specific in their functionality.</p>
<p>They managed to do this by using <strong>glassmorphism</strong> and crank it up to 11. When I hear that term, which reflects the look of glass to everything in the UI of an app, I usually retort with “I bet it looks worse than Aero Glass”.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F06%2Fapple-liquid-glass%2Faero.jpg&amp;w=700&amp;h=525&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="525" alt="Screenshot of Windows 7, featuring Aero Glass" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center>
<p>Aero was first introduced in Windows Vista all the way back in 2007 and further refined in Windows 7 two years later, by turning borders of windows into translucent, frosted glass.</p>
<p>And from there, it just went worse, except for that time with the Wii U, which I believe it was the best iteration of that aesthetic. The “web” iteration that you can pull off with <code>backdrop-filter</code> <strong>often lacks contrast</strong>, and in some cases, the edges are too fuzzy to figure out the bounds of an UI element.</p>
<div style="display:flex;flex-direction:column;gap:1em;align-items:center;justify-content:center;margin:0 auto;position:relative;background-size:contain;padding:1em;background-image:url('https://s3.eu-central-003.backblazeb2.com/yonic-corner-public/img/blog/2023/05/first-post/hugo-version.png');color:black;background-repeat:no-repeat repeat"><div style="border-radius:5px;padding:0 1em;background-color:rgba(194, 236, 255, 0.4);text-align:center;backdrop-filter:saturate(300%) blur(10px)"><p>This is a transparent window as it’s usually done on the web.</p></div><div style="border:1px solid silver;box-shadow:2px 5px 10px rgba(0,0,0,0.333),0px 0px 4px rgba(0,0,0,0.5),inset 0px 0px 5px rgba(255,255,255,0.75),inset 0px 0px 50px rgba(255,255,255,0.4),inset 0px 0px 6px rgba(0,0,0,0.3);font-family:system-ui;font-size:12px;border-radius:5px;padding:0 6px;background-color:rgba(135, 217, 255, 0.5);text-align:center;backdrop-filter:blur(5px);"><p style="text-shadow:0px 0px 10px white,0px 0px 3px white, 0px 0px 2px white, 0px 0px 1px white, 0px 0px 15px white;margin:0;padding:8px 0">This is a transparent window recreated as it was on Windows Vista and 7.</p><p style="background-color:white;border:1px solid rgba(0, 43, 59, 0.45);box-shadow:0px 0px 2px white;0px 0px 1px white;padding:1em 0;margin:0;margin-bottom:8px">Mind you that its content was usually not transparent.</p></div><div style="border-radius:20px;box-shadow:inset 0px -2px 8px rgba(10, 145, 155, 0.5),inset 0px 0px 5px rgba(10, 145, 155, 0.75);padding:0 1em;background-color:rgba(41, 217, 248, 0.5);text-align:center;backdrop-filter:blur(5px)"><p style="-webkit-text-stroke:4px rgb(10, 145, 155);paint-order:stroke fill; color:white;">This is a transparent colored window as it was done on Wii U.</p></div><div style="border-radius:20px;padding:0 1em;text-align:center;backdrop-filter:blur(10px) brightness(95%);box-shadow:inset -2px 2px 15px rgba(255,255,255,0.1),inset -1px 1px 2px rgba(255,255,255,0.45);color:white"><p>And this is Apple Liquid Glass on iOS.</p></div></div>
<p>Which one do you see more clearly? I assume that the <strong>iOS one isn’t very clear</strong>. Aero and the Wii U have implemented certain techniques such as text shadows and outlines to increase the text contrast of their transparent elements.</p>
<p>At least, Apple seems to have tried to add some volume and edges to the design, but it’s clearly inconsistent between platforms and even between parts of the same operating system. Apple Liquid Glass seems to completely forget this and instead it changes from dark to light depending on what’s underneath. Impressive, but there are simpler ways of achieving universal contrast.</p>
<div><p>&lt;Yonic&gt;</p><p>As far as I’m aware, macOS and maybe iOS have some pseudo “global illumination” feature that allows windows to light up with the colors of the surrounding windows. Pretty and —again— impressive, sure, but how many resources would that consume on their dedicated GPU of their system on a chip?</p><p>At least they seem sensible enough to have coded it in their native platforms, unlike <a href="https://winaero.com/windows-11-start-menu-revealed-as-resource-heavy-react-native-app-sparks-performance-concerns/">Windows 11’s React Native start menu</a>…</p><p>&lt;/Yonic&gt;</p></div>

<h3 id="gestalt-breaking-content">Gestalt-breaking content</h3>
<p>Also, it doesn’t really help much that reflections and refractions tend to get a lot in the way of the content that you’re viewing, despite Apple marketing it as “putting content first”. I assume they refer to that as making everything more transparent and reducing everything to a bunch of windows, and removing divisions from sections altogether, which is fine for reducing clutter, but it may also introduce other problems.</p>
<p>The <strong>principles of the Gestalt</strong> list how human vision tends to follow certain patterns. These things include grouping elements by how similar they are and how spaced they are relative to each other, and it even knows how to keep continuity of things even though they’ve been broken apart on purpose. Usually, UI designers rely on these to intentionally direct the attention of the user or to instruct them what things do what, and how related they are to each other, and <strong>Apple is definitely making use of them, even on this iteration</strong>. But what they haven’t seem to have considered is <strong>how these principle can also work <em>against</em> you</strong>.</p>
<p>By removing closure on some things, not only they’re removing one way to clearly add a separation between what some elements do and what don’t, they’re also adding new visual patterns that can disrupt the user’s attention. This has the effect when the bottom bar and its tabs were pulled apart in iOS 26, they started to behave like buttons now, which implies that they sort of work like “one-time actions” instead of “tabs to switch from one context to another”, in some cases.</p>
<p>But there’s something within this system that I just find truly hideous.</p>
<h2 id="the-clear-theme">The “clear” theme</h2>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F06%2Fapple-liquid-glass%2Fios-clear-theme.jpg&amp;w=700&amp;h=393&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="393" alt="Comparison of themes in iOS 26" style="width:100%;height:auto" loading="lazy" decoding="async"><a href="https://www.youtube.com/watch?v=tMe_5gVeRno">Whose idea was this!?</a></div></center>
<p>The clear theme on iOS clears out all the colors of app icons and turns them all into this odd, grayscale opacity cacophony. <strong>This is accessibility hell</strong>, and there’s nothing that reads loud and clear in this home screen. You can’t just remove the color information from an UI; it’s a key factor in its design that’s as fundamental as things like contrast, flow, shapes and hierarchy. Here, color has been sacrificed for uniform looks, allowing you to color the backgrounds of app icons as you please. But this trades out readability immensely.</p>
<p>White gradients are also sources of light, so if implemented incorrectly, the <strong>apparent 3D shape of an icon may change</strong>, which affects its shape. The Photos and Safari app icons have been seriously affected by this. Let alone the terrible contrast ratio that you could get in some icons. It almost feels like a personal attack to accessibility guidelines.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F06%2Fapple-liquid-glass%2Fandroid.webp&amp;w=700&amp;h=511&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="511" alt="Comparison of themed icons in Android 13" style="width:100%;height:auto" loading="lazy" decoding="async">This is even worse than the already terrible themed icons on Android. At least
those have clear contrast.</div></center>
<p>This is a big deal because, even for tech savvy people like me, sometimes I struggle finding the application I want to use because of the clutter of the home screens. I can easily tell them apart by their discrepancies between their looks, but with that being gone in these interfaces, <strong>the times I twiddle my finger trying to find the right app are going to increase</strong>. And if someone like me is already feeling like that’s a difficulty, imagine people who aren’t as tech savvy as me.</p>
<p>And even without the clear theme, there are certain UI elements that still try to emulate that look regardless, like the clock display (extremely important for watchOS, which by the way, has clearly shied itself away from the glassmorphism) and other widgets such as the quick controls panel.</p>
<h2 id="why-am-i-so-upset-about-this">Why am I so upset about this?</h2>
<p>Normally I would just cringe when I see a design that I find it provides a bad user experience. But this is Apple we’re talking about here, a company who has always been a trendsetter when it comes to UI design.</p>
<p>In the mid 2000s, the Californian company brought skeumorphism to the world by designing icons and UI elements as if they were actual objects, from sliders and buttons taking the shape and even texture of their real counterparts, all the way up to imitating the color and texture of a notepad and a calendar, and designers from all parts of the world liked it so much that they wanted to emulate that photorealistic realism imitating real objects (among others) into their products and UI designs.</p>
<p>But when iOS 7 came out in 2013, a radical redesign changed everything for simpler, abstract designs. While controversial at its time, it quickly grew up with everybody, and it influenced other companies to do the same minimalistic makeover.</p>
<div><p><b>Yonic:</b> This has spurred on a <a href="https://knowyourmeme.com/memes/oversimplified-logo">meme about oversimplifying the logos of many brands</a> to the point of removing their character and soul. Though I think it all started with Firefox, and even that was a misunderstanding.</p></div>

<p>While Microsoft has brought several contributions to the new skeumorphism wave of the present with their Fluent design language, nobody really caught on it as much because they aren’t exactly known for setting trends. But <strong>Apple has embraced this trend of uniform looks and all transparency, so glassmorphism might start to spread in all places</strong>.</p>
<p>I don’t really have a problem with glassmorphism. And I’m aware that I’m mostly criticizing the iOS part of the design. From what I’ve seen, <strong>Apple TV seems to have the best iteration of this design</strong>, but that’s mostly because it hardly needs to have an UI at all times. As for Apple Vision and macOS, I still have my doubts, but I haven’t gotten in my hands neither of the hardware to make an opinion about it. Besides, <strong>there’s way more iPhones than Macs or Apple TVs</strong> in the market, so iOS is definitely the flagship of all of the new features from Apple.</p>
<p>Hopefully, <strong>it <em>does</em> seem like it might not live on to become a huge trend.</strong> Lately, Apple hasn’t been delivering a lot of enticing features and it’s clearly failing to both follow red hot trends such as AI, and trying to set themselves up in a niche where nobody is competing with VR and their horrendously expensive Apple Vision. But then again, I wouldn’t say it’s too much of a farfetched claim that design changes can be piggybacked by the coming of new features. In the case of the “modern skeumorphism”, it was VR at first, and then became more abstract with AI. So it may be that “glass” is the new face of AI. Who knows.</p>]]></content>
    </entry>
        <entry>
            <title>How the Great Iberian Peninsula Blackout briefly gave me back the night sky</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2025/04/great-iberian-blackout</id>
            <link href="https://www.yonic.blog/blog/article/2025/04/great-iberian-blackout" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2025/04/great-iberian-blackout" />
            <summary><![CDATA[ It lasted only a few hours and only in very few select places within Spain, but I was lucky enough to take some stunning pictures. ]]></summary>
            <published>2025-04-29T19:23:10.618Z</published>
            <updated>2025-04-29T19:23:10.618Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F04%2Fgreat-iberian-blackout%2Farc.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/eyewitness/space/history" target="_blank" class="astro-m2ijcuns">Music: History</a><i class="astro-m2ijcuns">(Eyewitness Encyclopedia of Space and the Universe | Ian Hawkridge)</i></p>
<div class="feed-preview"><p>On April 28th, 2025, the Iberian Peninsula power grid malfunctioned, causing a nation-wide blackout on Spain, Andorra and Portugal. Some towns in the Spain-France border also got affected.</p><p>For most of these areas, power went back on within the following 6 to 10 hours. But the region where I live was among the ones that took the longest for lights to return.</p><p>This gave me an opportunity that I sort of hoped would happen, but never thought there would ever be a realistic chance of happening within my lifetime: Taking photos of the night sky while in the downtown of a city. This was an occasion that was so rare that I had to take the chances at whatever the cost to not miss out.</p></div>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F04%2Fgreat-iberian-blackout%2Fcathedral-small.png&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="394" alt="Cathedral at night with stars" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center>
<p>You can check the <a href="https://yonic.blog/file/img/blog/2025/04/great-iberian-blackout/cathedral.png">cathedral</a> and <a href="https://yonic.blog/file/img/blog/2025/04/great-iberian-blackout/hero.png">archway</a> photos I took in their full resolution, too.</p>
<p>Honestly, it’s a bit of a miracle that I managed to take these two pictures. Not only the lights were off long enough for it to stay incredibly dark at night, but the moon was just past its new moon phase, so it was pretty much below the horizon for the entirety of the night. <strong>This effectively made what I’d argue has been the darkest skies this city has seen in the last 250 years.</strong></p>
<p>Even so, I was playing safe here: I didn’t bother to set up my star tracker and I took pretty basic short exposures. I had no idea when power would come back after all. Because of that, I couldn’t correct the artifacts you can see in the full resolution version of these photos.</p>
<div><p>&lt;Yonic&gt;</p><p>What amazes me the most about these pictures is how <strong>unsaturated</strong> they are, especially the starry skies.</p><p>I think it could be partly because of the tools I’ve used to process the source images—unshackled from Adobe’s control, now I had to make my way without Photoshop and Lightroom—but another possibility could be that this is because of the sky lacking so much light that it’s not enough to make the atmosphere scatter the light, making it blueish.</p><p>&lt;/Yonic&gt;</p></div>

<p>Light pollution is a thing that exists in our modern world and has become particularly prominent since the 1990s. My parents (and also a bypassing gentleman who approached me taking these photos; had a nice chat with him about how astronomy was back then vs now) still remember that in their youth, they were able to spy the Milky Way with the naked eye. But with the widespread of artificial lighting —particularly LED— this is no longer the case. <a href="/blog/article/2024/04/astronomy-decline">Last year I made a post talking about light pollution and some of the problems caused by it</a>.</p>
<p>But without power, all artificial light stopped working. However, the outage began at midday. It was announced that power would gradually return while the sun would be still up. Luckily for me, the north and south were the first to get power, while I, who was at the center, was in one of the areas that would be last. So the chance <em>was</em> there.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F04%2Fgreat-iberian-blackout%2Fsidebyside-small.png&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="394" alt="Cathedral at night with stars" style="width:100%;height:auto" loading="lazy" decoding="async">Shortly before I finished capturing a frame for my cathedral photo, the lights
came back on, severely overexposing the shot. This stark comparison of before,
while and after the power restore shows the sheer effect artificial lights have
on the night sky.</div></center>
<p>If you’re keen about details, you can see the <a href="https://yonic.blog/file/img/blog/2025/04/great-iberian-blackout/sidebyside.png">full sized version here</a>.</p>
<p>What I also find quite shocking is how little people seemed to care about this once in a lifetime event that added some positive light onto the disaster. Some apparently did take the chance that it got dark and focused on taking pictures for their social feed, but I don’t think there was anybody who was staying out for the evening were focused on the stars, let alone take pictures of them.</p>
<p>But it’s totally understandable. Watching the sky suddenly have a bunch more stars than usual is probably something way less important than worrying about your food in the freezer and refrigerator going bad. Although it probably would have been way more impressive and attention-catching if the Milky Way were to be visible —at this time of the year it’s a bit difficult to spot it at the time of the blackout. And even if it were to be in its full splendor, many people would simply think it wouldn’t be worthwhile watching if the city lights would be back on before sunset anyway.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F04%2Fgreat-iberian-blackout%2Fphonepic.jpg&amp;w=700&amp;h=525&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="525" alt="Photo of the same night sky taken by someone with a phone" style="width:100%;height:auto" loading="lazy" decoding="async">Or maybe they <strong>did</strong> try, but the stars would hardly come out because you need
methods and tools that are not conventional to your average phone camera user to
take pictures with quality on par with the ones I did.</div></center>
<p>Still, the people who take the chance to make cool pics of themselves on Instagram sadden me in a way, because it’s definitely showing that looking at the stars, <strong>one of the most ancestral cultural aspects humanity has had since the dawn of time, is rapidly disappearing</strong>. Apparently, having higher numbers on social media than everyone else so you can feel socially accepted is more important nowadays. Sometimes I wonder, if this is the way cultures are naturally meant to evolve, making preserving such cultural heritages an ultimately futile effort.</p>
<p>Of course, I’m not saying that we should all turn our power off just like how it happened on that day. My point is that light can be used in a more responsible way, and that in order to improve our quality of life just a bit more and to preserve something so ubiquitous across civilizations and generations, showcasing humanity’s evolution in science and philosophy, we should try to start implementing those.</p>]]></content>
    </entry>
        <entry>
            <title>The price of convenience: Why the cloud is a trap for you and app developers</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2025/04/the-cost-of-convenience</id>
            <link href="https://www.yonic.blog/blog/article/2025/04/the-cost-of-convenience" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2025/04/the-cost-of-convenience" />
            <summary><![CDATA[ It's not just subscriptions or proprietary software anymore. This is a problem with only a bunch of winners and tons of losers. But it has a very simple fix, even if it's a bit of a hard to swallow pill. ]]></summary>
            <published>2025-04-19T09:41:48.793Z</published>
            <updated>2025-04-19T09:41:48.793Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F04%2Fthe-cost-of-convenience%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><div class="feed-preview"><p>Throughout the 2010s, we’ve seen the surge of <strong>apps that run on your browser</strong>. You simply log into a web page and you’d be able to make things do with your life. With that sparked the beginning of a dream: What if you could have your app running <em>literally anywhere</em>? With the web, that dream was made true.</p><p>However, it came at a bunch of hidden costs that even Big Tech is fully aware of, but the general public isn’t. And I don’t think it’d be too farfetched to say that there is a collective of app developers —particularly the most junior— who have yet to realize this trap that is affecting both users, maintainers and developers of these apps alike.</p><p>This is a cautionary tale for everyone about the upcoming future of apps that you can use on any of your devices.</p></div>
<h2 id="cloud-computing-web-apps-what-are-you-talking-about">Cloud computing? Web apps? What are you talking about?</h2>
<div><p>&lt;Yonic&gt;</p><p>If you already know all about this, feel free to <strong><a href="#the-traps-of-cloud-computing">skip this introduction by clicking here</a></strong>. Saves you a bunch of scrolling! You’re welcome.</p><p>Otherwise, keep reading along.</p><p>&lt;/Yonic&gt;</p></div>

<br>
<p class="astro-m2ijcuns"><a href="/player/mario-luigi/bowser/tutorial" target="_blank" class="astro-m2ijcuns">Music: Doing It Right</a><i class="astro-m2ijcuns">(Mario &amp; Luigi - Bowser's Inside Story | Yoko Shimomura)</i></p>
<p>In the very beginning (we’re talking almost 100 years ago!), computers would run programs and applications from inside the computers themselves, and programs (software) would rely on the components inside them (hardware) to do whatever they’ve been programmed for.</p>
<p>This can range from calculators, operating sophisticated machinery, videogames and even programs that run or maintain other programs; not in an Inception kind of way, but as a manager and worker model. Although sometimes it’s the former too, through emulation or virtualization.</p>
<p>Because computers could be built for different purposes, <strong>software was usually made for a specific or a very select group of devices</strong>. Cross-platform and porting solutions would eventually appear, but until fairly recently in computing history, there was no builtin solution for developing the same application for all kinds of devices, such as your PC, wearables, and tablets.</p>
<center><div style="width:300px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F04%2Fthe-cost-of-convenience%2Fdoom.png&amp;w=300&amp;h=400&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="300" height="400" alt="DOOM running in a cotton candy machine" style="width:100%;height:auto" loading="lazy" decoding="async">Although some examples can be quite extreme, like running 1993’s <em>DOOM</em>
on the display of a cotton candy machine, you still have to hack your way to
make it run in the most absurd places.</div></center>
<p>But even then, what if you had some data that you wanted to have in all of your devices? What about posting videos publicly?</p>
<h3 id="how-the-web-became-the-cloud">How the web became the cloud</h3>
<p>This is where the <strong>Internet</strong> comes in: The system that provides scaffolding and protocols for devices to communicate with each other, no matter how far away they are. Under the Internet runs the <strong>World Wide Web</strong>, or the web for short.</p>
<p>When you make an operation through the web, you connect to another computer. Most often, it will be a <strong>server computer</strong> that will send some content that your own device (client) will display for you, like a blog post or a company’s website. But it can also allow you to <strong>send data</strong> in, which is the relying principle behind social networks.</p>
<p>All of this is handled by both server and client computers, and the software they run are what encompass a <strong>web application</strong>. The key insight is that, unlike regular applications mentioned above, the <strong>inner workings of web apps span more than one device</strong>. Regular apps can still connect to other places through the web from time to time, such as for sharing files through multiple devices or online activation of your favorite Adobe product, but most of the heavy lifting is exclusively performed by your computer, whereas on web apps, you request other computers to do it in stead of your own.</p>
<p><strong>Cloud computing</strong>, broadly speaking, encapsulates all of the ping-ponging between the servers and the clients of a web app, in a way that can sort of manage itself and give insights to human users and developers. This means that web apps can save on resources when there isn’t much activity, and beef up when traffic spikes up. This is wonderful for startup companies because they’d have to put very little work on increasing resources as more people use the app.</p>
<div><p>&lt;Yonic&gt;</p><p>Another benefit of web apps and cloud computing is that this allows an otherwise incapable system to delegate computing power to the server.</p><p>As a web app, the <a href="http://legacy.yonic.blog">Legacy version</a> of this blog uses a modern framework, but it’s capable of delivering content compatible with computers made all the way back in 1995. As for cloud computing, the former Stadia service and the “cloud” versions of many games on the Nintendo Switch come to my mind.</p><p>I will come back to this in a bit.</p><p>&lt;/Yonic&gt;</p></div>

<p>But setting up a cloud data center is very complex and expensive. That’s why the vast majority of web apps that use cloud computing rely on companies that specialize in making and maintaining their own and borrow them at a price. These are the <strong>cloud computing services</strong> that I will be referring as cloud providers from this point onward, and they are the main topic for this post.</p>
<p>After all, hiring the service is way more straightforward than:</p>
<ol>
<li>Budgeting how much hardware you need to make the most bang for your buck.</li>
<li>Having to build a tech stack for a computer that you need to maintain to make
it work continuously without blackouts, overloads, corruptions or hardware
failures.</li>
<li>Coming up with a system to update the app with new features in a way that
doesn’t interrupt or break what the users are doing at the time you upload the
update — some apps even selectively enable certain features for a group of
users.</li>
<li>Keeping your tech stack up to date to keep it safe from hackers and bots,
while at the same time making sure that the updates don’t break your app because
of breaking changes.</li>
<li>Coming up with a system to get user diagnostics that will help solving
problems with your app.</li>
<li>In the event that there’s an outage, you also have to develop a system to
restore it back in place with minimal losses.</li>
</ol>
<p>And yes, that most definitely means learning a programming language like PHP and a completely different operating system than Windows called ‘Linux’, as well as more tech savvy concepts such as version control, containerization, unit tests, and more.</p>
<h2 id="the-traps-of-cloud-computing">The traps of cloud computing</h2>
<p class="astro-m2ijcuns"><a href="/player/mario-luigi/bowser/deep-castle" target="_blank" class="astro-m2ijcuns">Music: The Castle Depths</a><i class="astro-m2ijcuns">(Mario &amp; Luigi - Bowser's Inside Story | Yoko Shimomura)</i></p>
<p>I’ve been a web developer for about 8 years now, and I’ve relied on cloud computing for spinning up a few personal projects. But it wasn’t until a little before <a href="/blog/article/2024/08/self-hosted-blog">moving my blog out of Netlify</a> when I realized of the shortcomings that their cloud hosting services provided for my blog.</p>
<p>My relationship with Netlify was fairly simple and straightforward — I just needed a place to host my personal projects, and I wanted to showcase them for free, so the lower the hosting costs, the better. But I was aware of many of the services they offered: Image optimization, caching, edge functions… <strong>But I was just making simple static content.</strong> I only cared about the hosting.</p>
<p>So if I was able to host my web projects for pretty much free, why did I move my blog out? To put it simply…</p>
<h3 id="the-horrors-of-lock-in">The horrors of “lock-in”</h3>
<p>This is mostly a concern for app developers. <a href="#a-small-detour-single-page-applications-and-the-atom-fa%C3%A7ade">Feel free to skip this section if you’re just an user</a>.</p>
<p>Since relying on cloud computing essentially defaults you to enrolling to a service, you must agree to whatever terms they have on their platform. I’m not saying that you shouldn’t be trying to break the rules, but you’re also agreeing to the fact that the <strong>cloud providers can (and probably will at some point) change those rules</strong>, whether you like it or not.</p>
<p>If you feel like a lightbulb just lit up on your head and thought: “Huh, this sounds a lot like something Adobe would do with their Creative Cloud subscriptions”, that’s a gold star for you! This is pretty much equivalent to the <strong>flex pricing models</strong> that Autodesk uses for their 3D software: You pay as you use their programs —or in this case, their data centers. Except it can get <em>worse</em> than Adobe.</p>
<p>A common meme in the web app development space is that code can end up on <strong>infinite loops</strong> that never end until you force it to stop. If that’s happening on one of the cloud computing datacenters, the costs could turn into hundreds of thousands all the way up to millions of eurodollars of usage, <a href="https://www.reddit.com/r/Firebase/comments/kaa5t6/we_burnt_72k_testing_firebase_cloud_run_and/">potentially bankrupting your business if you’re not careful</a>. Thankfully, <a href="https://www.reddit.com/r/Firebase/comments/ke11xg/what_if_i_accidentally_run_an_infinite_loop_that/">most of these cloud providers do have countermeasures that you can set in place to mitigate this</a>.</p>
<p>But the thing is, <strong>having hundreds of thousands of users in your app is pretty similar to an infinite loop</strong> of operations within your app and its cloud computing network. It just runs comparatively slower depending on the size of your userbase. So as your app grows in size, the expenses of the cloud infrastructure go up so much that eventually, <strong>a cloud provider will be vastly more expensive than having to develop your own cloud computing service with the same traffic</strong>.</p>
<p>In fact, the lock-in situation is so bad that even cloud providers like Vercel, despite being perfectly capable of having their own data centers now, in the past they have relied on other companies like Amazon as the backbone of their service, and they could impose fees as high as they want should you wish to leave. And this goes even worse off for developers using Netlify or Vercel, because despite the fact that they’re using the same underlying infrastructure from Amazon, Google or Microsoft, they set it up in their own ways, <strong>making it harder to migrate data and configuration from one service to another</strong>.</p>
<p><strong>They became popular simply because the higher up web services they’re reselling such as Amazon’s AWS or Google Cloud are too complex for the end user</strong>. If Amazon or Google decide to work on their services to become more accessible for the end user, it could spell doom for companies like Vercel and Netlify. As a response, these companies will take huge <strong>egress fees</strong> to ensure you stay with them.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F04%2Fthe-cost-of-convenience%2Faws.png&amp;w=700&amp;h=379&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="379" alt="AWS services" style="width:100%;height:auto" loading="lazy" decoding="async">This is a list of all AWS service <strong>categories</strong>. If you thought Adobe
had too many programs already, you don’t want to look inside these.</div></center>
<p>And it’s not those companies: The Big Tech companies can also supersede or downright turn down their services at their will.</p>
<div><p>&lt;Yonic&gt;</p><p>Alphabet Inc. has a long history of <a href="https://killedbygoogle.com/">killing several of their widely used Google services</a>. Microsoft has a <a href="https://microsoftgraveyard.com/">similar history</a>.</p><p>If your service depends on Big Tech’s, who says they’d keep it around forever?</p><p>&lt;/Yonic&gt;</p></div>

<p>In my case, I’m one of the bunch of people who used Netlify for the free hosting, so while leaving would force me to host my own blog myself, for a simple static blog it’s not that big of a cost if you start small.</p>
<p>And yet still, my blog isn’t still fully out of the cloud. Optimized image caches tend to grow pretty big, so I’m using an AWS storage bucket as part of my cache tech stack. I could have gone with an image CDN, but that’s still the cloud and it would force me to use HSTS (forced HTTPS), which I normally wouldn’t mind, but it would make my blog for older browsers pointless <a href="/blog/article/2024/02/legacy-death">because HTTPS legacy support is dropping on many cloud services</a>. Netlify does have an option to turn that off, but the looming threat that they could enforce HSTS on every Netlify site was my dealbreaker for this very specific niche project.</p>
<p>HSTS is still great, though, and you should have it enabled in pretty much all of your projects for safety and privacy reasons.</p>

<h3 id="generative-ai-is-pretty-much-cloud-computing">Generative AI is pretty much cloud computing</h3>
<p>Generative AIs are bulky resource intensive pieces of software that you’ll hardly ever have in your own computer. Just downloading their language models can take hundreds of gigabytes or even <em>tera</em>bytes of storage. There’s a reason why language models have an extra L in LLMs: They’re Large.</p>
<p>And even if you had that storage, you need a ton of power for running the thousands of computing operations needed to run them. Yet another reason to use thousands of power mongering GPUs for anything other than playing games.</p>
<p>Considering the obnoxiously large costs of running generative AI on your own, as a startup you’ll have no option but to rely on OpenAI, DeepSeek, or whatever may pop up in the future, to use those kinds of features. And it gets pricy pretty quickly, too.</p>
<p>So if any app you are using has an AI feature, you can rest assured there’s a datacenter behind it. Simply because setting up an AI is far too complex of a task for your everyday developer.</p>
<h2 id="but-im-just-a-regular-person-i-dont-make-web-apps">But I’m just a regular person. I don’t make web apps.</h2>
<p>This should still concern you. Cloud computing makes developing a web app so easy, it hugely increases the amount of people willing to make an app without much knowledge on computer science, leading to <strong>lots of apps —several of them being basically the same— with questionable quality and security</strong>.</p>
<p>One of the main targets of cloud computing are <strong>startups backed by venture capital</strong> because venture capitalism is driven by growth; if your project makes it big, scaling up is nothing you should worry about.</p>
<p>However, venture capitalism carries a <strong>high risk of failure</strong> because startups are not consolidated companies.</p>
<p>And you know what happens when a company fails, right? They’d have to give away the datacenters they use. In other words, <strong>the apps developed by them you use will stop working</strong>. And if that app is tied to a specific product, <strong>that product would essentially become waste that won’t do anything</strong>.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F04%2Fthe-cost-of-convenience%2Finsulin.png&amp;w=700&amp;h=700&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="700" alt="When your insulin pump app fails" style="width:100%;height:auto" loading="lazy" decoding="async">You don’t want this to happen to your insulin pump.</div></center>
<p>That’s pretty much one of the main reasons why many apps these days have tiers, one of them being free of charge: To grow and impress investors. But these often come with certain costs that may be pretty well hidden, or throw some shenanigans like “your personal data is the product they’re selling”. Likewise, once you’ve signed up, it will be easier for you to get “converted” to a paying user through a subscription, the hottest trend in tech nowadays and a more widespread concern in the last few years. Cloud computing isn’t the source of the surge of subscriptions, but a <em>catalyst</em>.</p>
<p>But <strong>computing is not free</strong>. It requires power and hardware to run, and that costs money. As the number of free users enroll in whatever plan they have grows, <strong>so does the company’s credit</strong>. Even if they impose harsher limits on the service on free users, <strong>you’re still using it without being charged any eurodollar; credit is unavoidable</strong>.</p>
<div><p>&lt;Yonic&gt;</p><p>Cloud computing is just one of the many signature examples of the Uhmerican economy being driven by a growth fetish fueled by credit of any kind.</p><p>And then you get kicked where it hurts most: Your debt.</p><p>&lt;/Yonic&gt;</p></div>

<p>All of these startups and not so startup anymore companies are basically operating at a loss. <a href="https://www.reuters.com/technology/artificial-intelligence/openai-does-not-expect-be-cash-flow-positive-until-2029-bloomberg-news-reports-2025-03-26/">OpenAI is not expected to turn profit until 2029</a>, and although Forbes has stated that Notion is “profitable”, it’s fairly small and they’ve just began using AI. I wouldn’t be surprised if that situation were to change soon.</p>
<p>It’s hard to find apps that don’t use cloud computing, but the telltale signs that one of them doesn’t is if these conditions apply:</p>
<ul>
<li>It doesn’t ask you to make an account to get started.</li>
<li>You have to download the app and install it in your system.</li>
<li>It still <em>fully</em> works if you’re not connected to the Internet.</li>
</ul>
<p>If these conditions apply, then it’s highly likely that the app you’re using doesn’t use cloud computing.</p>
<h2 id="conclusions-for-developers">Conclusions for developers</h2>
<p class="astro-m2ijcuns"><a href="/player/mario-luigi/bowser/nice-talk" target="_blank" class="astro-m2ijcuns">Music: Persistent Joy</a><i class="astro-m2ijcuns">(Mario &amp; Luigi - Bowser's Inside Story | Yoko Shimomura)</i></p>
<p>Simply put, <strong>don’t use cloud computing unless necessary</strong>. You’re definitely not gonna need one if you’re doing a todo list app. And you probably won’t need one for productivity apps of most kinds either. Or cookbooks. Heck, if your e-commerce is also localized, <strong>you might be fine with just a regular web app</strong>. No need for Shopify or WooCommerce.</p>
<p>Sure, <strong>this adds a significant amount of inconvenience</strong>, which is something that our ever increasingly demanding brains don’t want. But my life philosophy has taught me that <strong>willing to suffer a bit of an inconvenience will make you more humble and more grateful for everything</strong>, even if it fails. At the end of the day, <strong>would you be willing to pay millions just to make something one step less convenient?</strong> In the long run, this effort may pay off…</p>
<p>Don’t get me wrong, <strong>cloud computing is still pretty good</strong> for hosting prototypes or proof of concepts that you might not end up developing further into commercialization. But it can be easy to fall for the trap that this is cheaper in the short term, but not if it becomes a viral hit.</p>
<p>Cloud computing is most effective when you need to share things to the general public, too. So for things like YouTube and streaming platforms it’s basically their only way to share media effectively. But if you’re just sharing data with a select few devices or users, there may be another way.</p>
<p>Although very popular in the 2000s, they’ve pretty much disappeared off the map 20 years later, but the <strong>peer-to-peer</strong> networking technology is still there. With P2P, your computer <strong>becomes a server</strong> and a client at the same time. In other words, you use your computer for computing on the web instead of relying on someone else’s.</p>
<p>People still use them to torrent movies and games, but one could use P2P networks for file syncing between devices, <strong>removing the need for databases</strong>. An user would just need a small file with all relevant data in their devices, with maybe backups in the event of a conflict or corruption. It’s what powers things like games with multiplayer lobbies (Animal Crossing, Minecraft, and even some Call of Duty games used it), and some video calling programs used to use peer-to-peer. It may be potentially safer because it’s decentralized: If a computer is compromised, only them and those connected to that user may be at risk, instead of millions of users when hackers manage to breach databases of large corporations.</p>
<div><p>&lt;Yonic&gt;</p><p>Regardless of what you use, you definitely should be concerned about what would happen should your service close down, and make actions to mitigate damages, something that the technological industry seems to have forgotten about these days.</p><p>I think it’s time to bring that consciousness of responsibility back.</p><p>&lt;/Yonic&gt;</p></div>
]]></content>
    </entry>
        <entry>
            <title>Testing 3D videos!</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2025/02/3d-video-test</id>
            <link href="https://www.yonic.blog/blog/article/2025/02/3d-video-test" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2025/02/3d-video-test" />
            <summary><![CDATA[ Do you have your 3D glasses ready? Or your New 3DS? I'm doing some experiments with anaglyph video that you may be able to try. ]]></summary>
            <published>2025-02-27T13:18:27.236Z</published>
            <updated>2025-02-27T13:18:27.236Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F02%2F3d-video-test%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p>While I was adding a video player functionality to my blog, I came across the idea of making a stereoscopic 3D video to test on the Nintendo 3DS, since the <a href="http://legacy.yonic.blog/blog/article/2025/02/3d-video-test"> Legacy version of this blog</a> is compatible with the Nintendo Wii and 3DS.</p>
<p>So here are two 3D videos for you to check out! Both versions will work on the <em>New</em> Nintendo 3DS. Regular, older models of the console don’t support any way for video playback with its built-in Internet Browser.</p>
<p><b>Video:</b> <a href="https://yonic.blog/static/video/kirby3d.mp4">Kirby 3D test (side-by-side version)</a></p>
<p><b>Video:</b> <a href="https://yonic.blog/static/video/kirby3d_L.mp4">Kirby 3D test (anaglyph version)</a></p>
<h2 id="how-did-i-make-them">How did I make them?</h2>
<p>Basically, I made use of the stereoscopy features from Blender cameras. I seemed to have achieved better results when setting both cameras parallel to each other —this can be easily configured in Blender without fiddling with the cameras.</p>
<div><p>&lt;Yonic&gt;</p><p>I haven’t done much experimenting with this, though. But it’s really fun!</p><p>I think I might do a few more 3D videos like this in the future.</p><p>&lt;/Yonic&gt;</p></div>
]]></content>
    </entry>
        <entry>
            <title>Why you should resize images using aspect ratios</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2025/02/why-you-should-resize-images-using-aspect-ratios</id>
            <link href="https://www.yonic.blog/blog/article/2025/02/why-you-should-resize-images-using-aspect-ratios" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2025/02/why-you-should-resize-images-using-aspect-ratios" />
            <summary><![CDATA[ When optimizing images, it's common to set a custom width and height. However, when developing my blog I actually found out a more elegant way of resizing them that doesn't involve setting both dimensions. ]]></summary>
            <published>2025-02-09T00:01:23.967Z</published>
            <updated>2025-02-09T00:01:23.967Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F02%2Fwhy-you-should-resize-images-using-aspect-ratios%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/style-savvy/hair-salon" target="_blank" class="astro-m2ijcuns">Music: Hair Salon</a><i class="astro-m2ijcuns">(Nintendo Presents: Style Boutique)</i></p>
<div class="feed-preview"><p>It’s no question that optimizing images is one of the best practices web developers must take into account for a fast loading page. Not doing so can lead to a surge of bounce rates, resulting in an unfavorable SEO score.</p><p>When optimizing images, it’s common to set a custom width and height. But I found a more elegant way to resize them that doesn’t involve manually setting a width and height: <strong>Using aspect ratios</strong>.</p></div>
<h2 id="whats-the-aspect-ratio-and-why-do-we-care-about-it">What’s the aspect ratio and why do we care about it?</h2>
<p>An aspect ratio is a quantity that defines the proportions of an image or video in terms of its width and height. You can calculate it by dividing the width by the height, but its more common representation is by taking its fractional representation.</p>
<p>For example: A typical widescreen monitor (1920 × 1080 pixels) has an aspect ratio of 1.<span style="text-decoration:overline">7</span>, but it can also be represented as 16:9 (since 16 ÷ 9 is also 1.<span style="text-decoration:overline">7</span>)</p>
<p>In film and photography, and as of recent display screens and social media, aspect ratios were used to fit content within a rectangle with the same proportions. This way, no matter how small or large the image was, you can always make it fit within a rectangle of the same shape.</p>
<h2 id="how-we-normally-resize-images">How we normally resize images</h2>
<p>Since the early days of graphical computing, we used to scale images using their image dimensions. In some cases, some alterations were necessary, such as making the width or the height of an image divisible by 2 or a power of 2. Nowadays, most image manipulation libraries still measure the size of an image in terms of width and height, so this metric is still important to this day.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F02%2Fwhy-you-should-resize-images-using-aspect-ratios%2Fstride.png&amp;w=700&amp;h=299&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="700" height="299" alt="Visual representation of images being stored in computer memory" style="width:100%;height:auto" loading="lazy" decoding="async">This is how image data is normally stored in computers. As you can see,
width and height are relevant.</div></center>
<p>It goes without saying, then, that when changing the size of an image, we traditionally plug in new values for the width or height. A common technique is by scaling both dimensions by the same number. When done in this way, <strong>the proportions remain the same</strong>, and the representing rectangle will remain <a href="https://en.wikipedia.org/wiki/Similarity_(geometry)">geometrically similar</a>.</p>
<p>But sometimes, you might want to set both to arbitrary values. This can result in a change of aspect ratio, meaning that the resulting represented rectangle will have different proportions. This can lead to various ways of making it fit with the new rectangle:</p>
<ul>
<li><strong>Stretch to fill</strong>: The image is stretched in its entirety so the whole
image fills the new rectangle. This will break geometric similarity compared to
the original image. For example, squares become rectangles and circles become
ellipses.</li>
<li><strong>Scale to fit</strong>: The image is scaled so that the whole image fits within the
new rectangle. This will show the entirety of the image, but will leave empty
space; when it’s on the sides of the image, it’s a phenomenon known as
“letter-boxing”.</li>
<li><strong>Scale to fill</strong>: The image is scaled so that it fills the new rectangle.
It’s similar to stretch to fill, but keeping geometric similarity. This leaves
no empty space, but it will result in parts of the image being cropped.</li>
<li><strong>Scale to width/height</strong>: The image is scaled until either the width or
height of the image matches the new rectangle’s. Depending on which one is
widest for the image and the new rectangle, this will result in either scale to
fill or scale to fit.</li>
</ul>
<center><div style="width:300px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F02%2Fwhy-you-should-resize-images-using-aspect-ratios%2Fscale-methods.png&amp;w=300&amp;h=422&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="300" height="422" alt="Scaling methods" style="width:100%;height:auto" loading="lazy" decoding="async">Overview of the different scaling methods, excluding the stretch to
fill one.</div></center>
<p>As you can see, putting in the numbers for width and height blindly can result in wildly different results, depending on whether geometric shapes remain the same, and how the software chooses to resize the image when the image rectangle and the resized one don’t match in shape.</p>
<p>But what if we didn’t need to worry about that? This is where <strong>aspect ratio</strong> comes in.</p>
<h2 id="aspect-ratio-preserves-shapes">Aspect ratio preserves shapes</h2>
<p>Unlike width and height, aspect ratio is not a quantity that represents length. Instead, it’s a relationship of the two: “How many pixels wide are there compared to pixels tall”. And since it’s a simple fraction, any multiple —in other words, any scale— of that fraction still conserves that ratio.</p>
<p>This means that the aspect ratio is intrinsically related to the proportions of a rectangle. Two rectangles or images with the same aspect ratio will have the same geometrically similar shape. Only their sizes can differ.</p>
<center><div style="width:490px"><img src="https://yonic-corner.vulpes.life/file/img/blog/2025/02/why-you-should-resize-images-using-aspect-ratios/resizing.gif" width="490" height="311" alt="Resizing a rectangle while keeping aspect ratio" style="width:100%;height:auto" loading="lazy" decoding="async">Overview of the different scaling methods, excluding the stretch to
fill one.</div></center>
<p>This means that if you were to set a specific aspect ratio when scaling the image, you are (almost) guaranteed to have the same shape. And this could also ease converting from one aspect ratio to another, <strong>even if you don’t know the original aspect ratio</strong>.</p>
<h2 id="but-how-do-we-actually-use-the-aspect-ratio">But how do we actually use the aspect ratio?</h2>
<p>Refer to the definition of the aspect ratio:</p>
<center><center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F02%2Fwhy-you-should-resize-images-using-aspect-ratios%2Fformula1.png&amp;w=700&amp;h=231&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=gif" width="700" height="231" alt="Aspect ratio = Width / Height" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<p>With a bit of algebra, we can rearrange the equations to get the width and height in terms of the aspect ratio.</p>
<center><center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F02%2Fwhy-you-should-resize-images-using-aspect-ratios%2Fformula2.png&amp;w=700&amp;h=115&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=gif" width="700" height="115" alt="Width = Height x Aspect" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<center><center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F02%2Fwhy-you-should-resize-images-using-aspect-ratios%2Fformula3.png&amp;w=700&amp;h=104&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=gif" width="700" height="104" alt="Height = Width / Aspect" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<p>And this applies for any shape. But how do we apply these formulas in practice? You only need to know one of the dimensions you want to set to, and the aspect ratio you want the final rectangle to be in. The formula will calculate the missing length for your CDN or your image optimizer to figure out how to resize it. It’s that simple!</p>
<p><strong>But what if you want to keep the same proportions?</strong> Well, just set it to the original image’s aspect ratio! And if you don’t know the aspect ratio, then you can just divide the image’s width by its height; it’s by definition after all!</p>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" data-language="jsx"><code><span class="line"><span style="color:#D32F2F">function</span><span style="color:#6F42C1"> Image</span><span style="color:#24292EFF">(props) {</span></span>
<span class="line"><span style="color:#D32F2F">    const</span><span style="color:#24292EFF"> {</span><span style="color:#1976D2">src</span><span style="color:#212121">,</span><span style="color:#1976D2"> alt</span><span style="color:#212121">,</span><span style="color:#1976D2"> width</span><span style="color:#212121">,</span><span style="color:#1976D2"> aspectRatio</span><span style="color:#24292EFF">} </span><span style="color:#D32F2F">=</span><span style="color:#24292EFF"> props;</span></span>
<span class="line"><span style="color:#1f3d95;background-color:rgba(121, 173, 227, 0.285)">    The rounding is important! I will explain this later.</span></span>
<span class="line"><span style="color:#D32F2F">    const</span><span style="color:#1976D2"> height</span><span style="color:#D32F2F"> =</span><span style="color:#1976D2"> Math</span><span style="color:#6F42C1">.round</span><span style="color:#24292EFF">(width</span><span style="color:#D32F2F">/</span><span style="color:#24292EFF">aspectRatio);</span></span>
<span class="line"><span style="color:#D32F2F">    return</span><span style="color:#24292EFF"> &lt;</span><span style="color:#22863A">img</span><span style="color:#24292EFF"> {src} {alt} {width} {height} /&gt;</span></span>
<span class="line"><span style="color:#24292EFF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C2C3C5">// This is a 1920×1080 image.</span></span>
<span class="line"><span style="color:#C2C3C5">// When converted here, it'll be resized to 1024×576.</span></span>
<span class="line"><span style="color:#24292EFF">&lt;</span><span style="color:#1976D2">Image</span><span style="color:#6F42C1"> src</span><span style="color:#D32F2F">=</span><span style="color:#22863A">"image.png"</span><span style="color:#6F42C1"> width</span><span style="color:#D32F2F">=</span><span style="color:#24292EFF">{</span><span style="color:#1976D2">1024</span><span style="color:#24292EFF">} </span><span style="color:#6F42C1">aspectRatio</span><span style="color:#D32F2F">=</span><span style="color:#24292EFF">{</span><span style="color:#1976D2">16</span><span style="color:#D32F2F">/</span><span style="color:#1976D2">9</span><span style="color:#24292EFF">} /&gt;</span></span></code></pre></div></div><script type="module" src="/home/yonic/Proyectos/yonic-corner-minify/modern/src/components/CodeBlock.astro?astro&amp;type=script&amp;index=0&amp;lang.ts"></script>
<p>The essence of using aspect ratios is that you’re <strong>explicitly indicating what shape you want your image to have</strong>, and sizes come second.</p>
<div><p><b>Yonic:</b> What’s cool about the aspect ratio is that it’s dimensionless, meaning that it doesn’t carry any measurement information. This ensures it will always work, regardless of how big or small the image and the resulting transformed image are.</p></div>

<p>For these reasons, this is why I’d probably think a designer would prefer thinking in terms of aspect ratios and shapes rather than the spacing and the dimensions of the image.</p>
<p>Still, there is one catch: Remember when I said you’re almost guaranteed to keep the same shape by scaling with the same aspect ratio? There’s a reason why it’s “almost”.</p>
<h3 id="accounting-for-rounding-errors">Accounting for rounding errors</h3>
<p>By definition, aspect ratios are <strong>rational numbers</strong>. But when it comes to computer imaging, we prefer to have images with <strong>natural numbers</strong>. Which means that at the end of the day, <strong>some rounding</strong> is going to be required.</p>
<p>There are many ways of rounding a number, but it doesn’t really matter which one you pick: The act of rounding a number <strong>will alter the final aspect ratio</strong>, since you’re approximating all of the decimals that come from the rational number.</p>
<p><strong>This can be quite nagging when images are scaled to fit</strong>, because this will potentially result in a single column or row of pixels of empty space if you’re trying to make it fit within a specific rectangle. To ensure that this doesn’t occur, pick a number that, when multiplied by the denominator (number at the right) of the aspect ratio, is divisible by the numerator (number at the left).</p>
<p>If you’re scaling the image to fill, this is less of a problem, because it will only cause either one row or column of pixels to be cropped off.</p>
<div><p>&lt;Yonic&gt;</p><p>In the case of The Yonic Corner, I scale the post images to fill by default. However, for the version of the blog that’s compatible for legacy browsers, I make them a few pixels smaller to address an <a href="/blog/article/2024/09/making-legacy-2#understanding-the-fundamentals-once-again">issue regarding widths and border/padding sizes</a>.</p><p>Still, since I apply the aspect ratio transformation <em>after</em> cropping the extra width and height, I still end up with the same aspect ratio I want.</p><p>&lt;/Yonic&gt;</p></div>

<p>While compromising accuracy, scaling with aspect ratios has proven me to be more versatile than having to manually calculate the widths and heights over and over again. I hope that in the future, CDNs and image optimizers take this into account, as well.</p>]]></content>
    </entry>
        <entry>
            <title>Game dev in 2025: At revolution's doorstep… or not?</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2025/01/gamedev-summary-2024</id>
            <link href="https://www.yonic.blog/blog/article/2025/01/gamedev-summary-2024" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2025/01/gamedev-summary-2024" />
            <summary><![CDATA[ The videogames industry this year has been slow, but we may be in the brink of a change of course unlike never before. ]]></summary>
            <published>2025-01-06T15:07:56.343Z</published>
            <updated>2025-01-06T15:07:56.343Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F01%2Fgamedev-summary-2024%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/smg/deep-dark" target="_blank" class="astro-m2ijcuns">Music: Deep Dark Galaxy</a><i class="astro-m2ijcuns">(Super Mario Galaxy Original Soundtrack | Mahito Yokota)</i></p>
<div class="feed-preview"><p>Unlike the <a href="/blog/article/2023/12/gamedev-summary">previous year</a>, 2024 has been a fairly slow one in terms of game releases as a result of the fallout of layoffs that affected many studios and developers during these past 2 years.</p><p>However, new developments are bringing a new wave of change that’s bringing new players in the market, but also hanging its future in the balance.</p></div>
<h2 id="the-asian-imposition">The Asian imposition</h2>
<p>We’ve already seen a preview of what’s to come in the past edition of the Game Awards: <em>Nearly all</em> of the nominees for the Game of the Year award were mostly developed by studios in Eastern Asia, with Balatro being the sole exception, and that wasn’t even developed by someone in the United States.</p>
<div><p>&lt;Yonic&gt;</p><p>By the way, I have to admit, this last edition of the show has been <em>a bit</em> nicer to game developers compared to the previous ones. But honestly, I think that they did a very half-assed job at addressing the controversies.</p><p>Particularly the “please wrap it up” one. That was brought up very quickly at the start of the show and was never mentioned again.</p><p>&lt;/Yonic&gt;</p></div>

<p>Something like this is a testament to just how awful it has been for Western developers. Balatro was for the most part there because there had to be at least an indie game in the mix.</p>
<p>China in particular has been sticking their panda paws on the market, and hard. It’s only a matter of time before they start to dominate it. Unlike the United States and Canada, East Asian economies function differently, so they haven’t really been subject to layoffs. In fact, Tencent has begun to purchase controlling shares of Western studios that had gone public like Riot Games, and recently <a href="https://www.yahoo.com/entertainment/tencent-eyes-greater-stake-ubisoft-155054097.html">they have been keen to buying Ubisoft</a>, which could be a turning point for European AAA studios in the long run.</p>
<p>Game developers from China have also been doing remarkably well lately. MiHoYo has been featured in the Game Awards for the past 4 years with games such as <em>Genshin Impact</em>, <em>Honkai Star Rail</em>, and most recently, <em>Zenless Zone Zero</em>. Also, <em>Black Myth: Wukong</em> has been a huge commercial success for China’s first dive into the AAA market.</p>
<p>While I wouldn’t say that China is going hard on the AAA market for now, <strong>we’re definitely going to see more games of such scale</strong>. China is going to be more ambitious and its current trend of transitioning to the console market will speed up this year.</p>
<p>Is this a good thing or not? It depends on how you see Chinese competition.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2025%2F01%2Fgamedev-summary-2024%2Flycaon.jpg&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="394" alt="Zenless Zone Zero" style="width:100%;height:auto" loading="lazy" decoding="async">Somebody is hungry and wants a <em>big</em> piece of cake.</div></center>
<p>Another important factor is the upcoming release of the so-called Nintendo Switch 2, <a href="/blog/article/2024/03/switch2-2025">which I predicted would come not before this summer</a>. From the current officially disclosed data we know, it’s going to be backwards compatible with the original Switch and will use the same Nintendo Switch Online service, although it’s not clear if it will have cross-play with the original console.</p>
<p>Combined with the fact that the Japanese economy has been steadily improving, this is a good moment for Nintendo to strike big, bringing back a lot of interest into the Japanese videogame industry, since there’s a strong correlation between the success of a console and local game development studios’ reach.</p>
<p>Considering the huge fiasco of the PS5 and Xbox Series X, it’s all in the Big N’s hands to maintain the future of the console market for the next generation. The other big player here is —shocking but unsurprisingly— Valve with the Steam Deck, which is currently competing with its clones and the Nintendo Switch. And those aren’t technically consoles, but glorified PCs!</p>
<h2 id="the-stagnation-of-generative-ai-yes-thats-a-thing">The stagnation of generative AI (yes, that’s a thing)</h2>
<p>You may have heard that gen-AI technology was going to revolutionize society as a whole for the past 4 years. But just as any new craze, <strong>it eventually has started to slow down in adoption</strong> despite its recent advancements.</p>
<p>Many people, myself included, are reading the tea leaves and are starting to believe that the <strong>AI bubble burst is imminent</strong>. So you’re probably gonna expect something very similar to what happened with the games industry in the last two years, but on a much larger scale. Potentially as devastating as the dot-com bust.</p>
<p>This could bring <strong>some opportunity in Europe</strong>. Videogame studios have been pretty affected by investors flocking off to AI companies, and videogames could pose as a good alternative for them to invest in again.</p>
<div><p>&lt;Yonic&gt;</p><p>I can’t help but think that investors trust videogames only whenever there is a crisis looming or ongoing, as if the videogame industry was some sort of a safety net for them.</p><p>Then again, high risk for a slow ROI? I don’t blame them.</p><p>&lt;/Yonic&gt;</p></div>

<p>This, however, could also be a double-edged sword, particularly outside Europe. After many consecutive failures (don’t forget crypto and Web 3.0), investor sentiment could turn very sour, and may not be willing to drop a dime on anything tech-related for a while.</p>
<p>Worst of all? The videogame industry is somewhat linked to all this.</p>
<h2 id="the-gpu-market-is-in-danger">The GPU market is in danger</h2>
<center><div style="width:700px"><img src="https://yonic.blog/static/img/2025/01/gamedev-summary-2024/this-is-fine.gif" width="700" height="525" alt="GPU market share" style="width:100%;height:auto" loading="lazy" decoding="async">Oh, this is fine. Just me training an LLM.</div></center>
<p>Spurred by both the crypto and the generative AI booms, <strong>Nvidia has reached outlandish share prices</strong>. Its market cap as of January 2025 is 3.7 <strong>trillion</strong> USD (a billion for those who use the long scale). That’s more than 10% of the GDP of the United States, and it’s getting extremely close to the levels reached by Lehman Brothers before the 2008 financial crisis. Suffice it to say, this is extremely overpriced.</p>
<p>Economists are still debating whether this is a bust or the start of Nvidia consolidating itself as a tech giant, but I see this as something inevitable, as Large Language Models and other AI technologies depend heavily on GPUs for matrix multiplication and parallel processing for machine learning, so much so that Nvidia has began to create products specifically for these use cases. Like with all very risky investments, <strong>it’s all speculative</strong>.</p>
<p><b>YouTube video: </b> <a class="anchor" href="https://www.youtube.com/watch?v=io15Jwte3kk" target="_blank" rel="noreferrer noopener">Why I bet $250,000 that Nvidia will crash</a> (15:14)</p>
<p>If Nvidia crashes, not only the game industry will take a hit, but the tech industry as a whole. This could be troublesome for Nintendo, as they rely on Nvidia for the Switch’s GPU, and it seems like it could be the same for its successor. It may not matter much if units are already in production, however.</p>
<div><p>&lt;Yonic&gt;</p><p>Honestly I’m a bit torn about Nvidia crashing. Their GeForce cards are generally not well regarded within the Linux community and their overuse has been a major source of controversy by environmentalists because of their power consumption.</p><p>But I don’t want the games industry to be going down hard like this, either. We’re already having bad times with consoles, and I wouldn’t like at all the PC market following suit.</p><p>&lt;/Yonic&gt;</p></div>

<h2 id="the-takeaway-of-this-year">The takeaway of this year</h2>
<p>If 2024 was the year we screamed with the layoff nightmare, 2025 is probably going to be the year we hold our breaths. <strong>There is a lot of uncertainty</strong> in the air, particularly in the gaming hardware market, but there is still the hope of the Asian industry in the realm of software, particularly in the mobile and console market.</p>
<p>If you are a gamer, you may want to consider switching to PC or either Valve’s Steam Deck or Nintendo’s Switch 2, and be more patient to Western developers as they struggle in these hard times. You’re going to expect new big names in your games store, particularly Chinese ones. And probably get an Radeon GPU if you are concerned about Nvidia’s future —although I’d bet that AMD would also be in big trouble if the green team goes down.</p>
<p>If you are a game developer, though… I would consider looking for other opportunities outside of tech, just in case the tech bubble bursts. Even in Europe, it’s going to get icky. But if you are still insistent on working on games, you might want to start learning Mandarin.</p>]]></content>
    </entry>
        <entry>
            <title>Anti-cheat demystified: What's the big deal about kernel-mode anti-cheat?</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/11/anticheat-demistifyed</id>
            <link href="https://www.yonic.blog/blog/article/2024/11/anticheat-demistifyed" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/11/anticheat-demistifyed" />
            <summary><![CDATA[ Many games have something like Riot's Valorant or Denuvo's anti-cheat programs, which have sparked a lot of controversy. Here's a simple explanation. ]]></summary>
            <published>2024-11-12T15:11:20.354Z</published>
            <updated>2024-11-12T15:11:20.354Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F11%2Fanticheat-demistifyed%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/cod/bo2/multiplayer" target="_blank" class="astro-m2ijcuns">Music: Multiplayer Mode</a><i class="astro-m2ijcuns">(Call of Duty: Black Ops II | Jack Wall)</i></p>
<div class="feed-preview"><p>If you’ve been recently playing online games, you may have noticed that a bunch of games have switched to what’s called “<strong>kernel mode anti-cheat software</strong>” for catching cheaters: <a href="https://www.msn.com/en-us/news/technology/will-vanguard-kill-league-of-legends/ar-AA1oFimn">League of Legends switched to Riot’s Vanguard AntiCheat</a>, and most notoriously, <a href="https://rockstarintel.com/new-gta-online-update-adds-anti-cheat-for-11th-anniversary-with-battleye/">GTA Online also switched to BattlEye</a>.</p><p>These updates, while they do bring a lot of major improvements to anti-cheating, they also bring with them a lot of controversy: From tech experts showing a lot of concern over them, to people <a href="https://www.gamesradar.com/games/grand-theft-auto/gta-5-and-red-dead-redemption-2-online-services-suffer-outages-in-apparent-ddos-attack-over-gta-onlines-new-anti-cheat-tech/">DDoS’ing GTA V Online services</a> in protest for this change. But why make such a fuss about something that should, in theory, make things fair for all players? Or is there a danger lurking around?</p><p>As it turns out, kernel mode anti-cheat is a powerful tool, but it may be <em>too</em> powerful. In this post I want to give a layman explanation without the technical mumbo jumbo.</p></div>
<h2 id="a-simple-case-of-anti-cheating">A simple case of anti-cheating</h2>
<p>Let’s say you want to buy the most powerful weapon you can get at a shop in an MMO game. An interaction without any anti-cheating would work like this:</p>
<div><p><b>Player:</b> Hi, I’d like to buy the Ultima Laser.</p></div>
<div><p><b>Shopkeeper:</b> That’ll be 100,000 gold. How much do you have?</p></div>
<div><p><b>Player:</b> A billion.</p></div>
<div><p><b>Shopkeeper:</b> Alright, here you go! Have fun!</p></div>
<p>This is just a simple example of an interaction between the client (the player) and the server (the shopkeeper). In practice, a lot of other metrics are considered for other situations, such as checking for speeding or performing abilities that could only be done in higher levels.</p>
<p>Now, it may be actually possible for a player to get that amount of gold in a legitimate manner. Regardless, the oblivious shopkeeper will think you can pay for it and the purchase goes through. But do <em>you</em> think the player really did get the gold fair and square?</p>
<p>An anti-cheat is basically a <strong>lie detector</strong>, and it scans for something coming from the player to detect if they are answering truthfully or not. In some cases it may choose to just reject the purchases, and in others it may ban the player. The key of the fuss, however, is in <strong>how the lie detector works by design</strong>.</p>
<p>There are three kinds of anti-cheat, depending on how their work, and each have their own pros and cons.</p>
<h2 id="the-doing-the-detective-work-approach">The “doing the detective work” approach</h2>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F11%2Fanticheat-demistifyed%2Fla-noire.jpeg&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="394" alt="Questioning in L.A. Noire" style="width:100%;height:auto" loading="lazy" decoding="async">Press <em>X or □</em> to doubt.</div></center>
<p>A lie detector doesn’t have to be a machine. A human can also detect cues on when a person is lying or not, such as voice and nervous ticks, and they can also refer to evidence to prove someone is lying. Detectives do this in all kinds of criminal investigations.</p>
<p>This is what <strong>server-side anti-cheats</strong> are doing: Corroborating records of the game with the player’s actions and using the intended game rules as a way of detecting whether they are cheating or playing legitimately.</p>
<p>But they aren’t very reliable, because they rely on intuition and the evidence gathered, and they may often get too biased with false positives or, worse, false negatives when detecting a cheater. It all depends on how capable it is, and how good is the player at concealing their tactics.</p>
<p>But if there’s one thing in which they shine is that  they are the <strong>least invasive</strong> anti-cheat software. If the anti-cheat gets compromised in any way, it doesn’t pose a threat to the player —at least not directly— resulting in merely a ruined game experience.</p>
<h2 id="the-scanner-approach">The scanner approach</h2>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F11%2Fanticheat-demistifyed%2Fsimpsons.jpg&amp;w=700&amp;h=525&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="525" alt="Lie detector in The Simpsons" style="width:100%;height:auto" loading="lazy" decoding="async">I’ll ask you a few yes or no questions and you just answer truthfully.</div></center>
<p>When people think of a lie detector, they usually think of a device that scans brainwaves or checks the heartbeat of a person. When it comes to detecting a cheater in a game, this is what’s called <strong>client-side anti-cheat</strong>.</p>
<p>You see, when you download an online multiplayer game, you’ll often get what’s called a <strong>client</strong> of the game, which is the program that sort of handles the game from a player’s perspective; the game master has the <strong>server</strong> version, and depending on the type of game, you may be able to download it and make your own server on your own computer. This is a bit of a simplification, of course, but it gets the gist of it.</p>
<p>Inside the client, there may be some code that will check what’s happening within the game client, a bit like checking your heartbeat when you’re being questioned. This can give a <strong>more accurate reading</strong> of what the player’s doing at any given moment while you run the game.</p>
<p>However, you trade off a bit of <strong>security</strong>. If the lie detector is compromised, <strong>it could be harmful to the person being questioned</strong>, but because it’s not directly connected to an organ, the worst they can get is a bad burn on their skin. Likewise, hackers can’t do much harm on your computer by hacking the anti-cheat. In fact, the actions that can be done are so little that it’s generally used for bypassing the anti-cheat and not much else.</p>
<p>Still, this is much better, but it’s not infallible, either. This kind of anti-cheat is very regional; just as how a brainwave probe can’t check for a heartbeat or if the person started sweating, <strong>an anti-cheat of this type can’t reliably check what’s happening outside the game</strong>. This allows for people to run external programs to bypass the anti-cheat, simply because the anti-cheat is overlooking those things.</p>
<p>But what if we could be able to check <em><strong>everything</strong></em>?</p>
<h2 id="the-implant-approach">The implant approach</h2>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F11%2Fanticheat-demistifyed%2Fneuralink.jpg&amp;w=700&amp;h=359&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="359" alt="Neuralink" style="width:100%;height:auto" loading="lazy" decoding="async">Now you can have advertisements in your dreams!</div></center>
<p><strong>Kernel-level anti-cheat</strong> is a hyper-strengthened version of the client-side anti-cheat. Instead of putting on a lie detector, <strong>you get an implant into your brain that works as a lie detector</strong>.</p>
<p>When you install a game with this kind of anti-cheat, you give full consent for the installer to place a <strong>driver</strong> in the kernel of your operating system. This is the “brain implant”.</p>
<p>A kernel driver grants <strong>full access</strong> to what’s going on in your computer, <em>even things that you, as an user, can’t normally have control of</em>, regardless of whether you’re playing the game or not. In brain implant terms, it allows for it to check your memories and thoughts, <em>and also body functions like your hormonal balance and digestion</em>.</p>
<p>Giving access to everything that’s happening on the player’s computer makes for this type of anti-cheat to be the most effective: <strong>Nothing can be overlooked</strong>. But this also brings <em>a lot</em> of security concerns. The operating system (your brain) <em>trusts</em> that the driver will work perfectly. But if it starts failing and the operating system (Windows, Linux, Mac OS, etc) doesn’t know how to or simply can’t fix the errors, it will panic and proceed to reboot the system. <a href="https://en.wikipedia.org/wiki/2024_CrowdStrike-related_IT_outages">Something like this was the cause behind the CrowdStrike outage that caused millions of computers across the world to go Blue Screen of Death</a> in July of this year.</p>
<div><p>&lt;Yonic&gt;</p><p>There’s a good reason why the kernel is usually reserved for the most critical stuff, such as power management (blood pressure balance) and input/output handling (nervous system). In the case of CrowdStrike, it was necessary for cybersecurity purposes in businesses, so it sort of acted like a “vaccine” or an aid for your immune system, following the human body analogy.</p><p>But detecting whether someone is cheating in one particular game is not critical in the least.</p><p>Would you risk frying your brain with a faulty implant just to play a game?</p><p>&lt;/Yonic&gt;</p></div>

<p>The driver itself could have its own security vulnerabilities. If hackers do find one, <strong>they can get unprecedented access to your computer</strong>, and not even a privileged user such as “administrator” users in Windows could possibly have clearance to fix this.</p>
<p>Once a hacker breaches to the kernel of your PC, they can literally do whatever they want, from stealing all your personal and sensitive information, to putting a program that sends screenshots of your screen to the hacker, or a keylogger that makes a log of what keys you press in your keyboard, allowing the hacker to see what you’re typing. <strong>And you would probably have no way of knowing this.</strong> So once they gain control of the kernel, they essentially hold your PC hostage.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F11%2Fanticheat-demistifyed%2Fpuke.png&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="394" alt="Neuralink" style="width:100%;height:auto" loading="lazy" decoding="async">If a brain implant were to be hacked, someone could install a function
in it to, for instance, make you puke anytime they wanted with the press of
a button.</div></center>
<p>And we’re not even taking into account that the game developers themselves could use that anti-cheat software to do things that you weren’t expecting it to do, even if those things show up in the game’s EULA. For example, <strong>it could turn your installed game into actual spyware</strong>.</p>
<p>Worst of all, uninstalling the game that has an anti-cheat of this kind will not be enough to prevent hackers nor undo their effects. MiHoYo had a lot of controversy for a critical security vulnerability in Genshin Impact’s anti-cheat and <a href="https://hackaday.com/2022/08/29/genshin-security-impact/">leaving behind Honkai Star Rail’s anti-cheat even if the game was uninstalled</a>, one that had a <a href="https://www.kaspersky.com/blog/genshin-driver-attack/45494/">history of critical security vulnerabilities</a>, even.</p>
<p>Another drawback of kernel-mode anti-cheat is that <strong>not every computer has the same kernel</strong>. Although most gaming computers use Windows NT for its kernel, a notable minority uses Linux kernel, the latter of which, being open source, can have some fine-tuned customizations.</p>
<p>Anti-cheat developers may choose to support whichever kernels they wish, and the vast majority will add support for Windows, while Linux doesn’t have as much widespread support. But even if the anti-cheat supports Linux, it’s ultimately up to the developers themselves to enable that support into their game. For example, EA —despite supporting Linux for 3 years— <a href="https://answers.ea.com/t5/News-Game-Updates/Dev-Team-Update-Linux-amp-Anti-Cheat/td-p/14217740">made a u-turn and dropped support for Apex Legends on Linux a few weeks ago</a>.</p>
<div><p>&lt;Yonic&gt;</p><p>EA claims that “Linux kernels can be so different with each other that cheating is made easy if you use a niche version of Linux”, but this is highly debated. I personally see it as an excuse to cut corners on software and technical support.</p><p>But apart from that, this increase in anti-cheat protectionism constitutes a serious determent on gaming on Linux, which includes the Steam Deck.</p><p>&lt;/Yonic&gt;</p></div>

<p>Due to their extremely powerful capabilities, Windows and Mac OS kernel drivers/extensions have to be signed by Microsoft and Apple themselves, while Linux kernel modules have to be signed through a different but secure process. Passing the tests to get that signed driver should mean that these drivers won’t compromise the integrity of the operating system, and are also safe for the user. However, it’s not perfect; MiHoYo’s anti-cheat was bypassed and even exploited to disable any anti-virus the user may have on their computer.</p>
<p>Personally, I find kernel-mode anti-cheat too powerful for what it’s worth. If there are lots of cheaters, I can quit the game and move on to something else, hoping that things turn a bit fairer in a few hours. But if I get hacked because of an anti-cheat, that would pose a serious compromise to my security.</p>
<p>Valve has recently raised concerns about this kind of anti-cheats, and <a href="https://steamcommunity.com/groups/steamworks/announcements/detail/4547038620960934857?snr=2___">now they are enforcing game developers to disclose what anti-cheat they are using</a> on all their games on Steam that are using a kernel-mode one, and heavily recommend to do so even if it’s not.</p>
<p>This is a very welcoming change, and one that I hope other games and app stores end up copying from Valve. I still think a user-mode client-side anti-cheat (the scanner lie detector ones) are probably the best anti-cheat software in terms of balancing reliability, performance, privacy and security, so if you are making an online game, I hope you choose this kind of anti-cheat solutions.</p>]]></content>
    </entry>
        <entry>
            <title>The ultimate guide for installing East Asian languages support for legacy Windows and Mac OS Classic</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/02/legacy-asian-language-support</id>
            <link href="https://www.yonic.blog/blog/article/2024/02/legacy-asian-language-support" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/02/legacy-asian-language-support" />
            <summary><![CDATA[ This is a guide for installing support for East Asian languages for Windows 9x, Windows NT, and Mac OS Classic. ]]></summary>
            <published>2024-02-26T16:26:22.190Z</published>
            <updated>2024-11-01T16:09:58.617Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><div class="feed-preview"><p>Sometimes, my blog will have some texts displayed in east Asian languages (mostly Japanese).</p><p>In the <a href="http://legacy.yonic.blog/blog/article/2024/02/legacy-asian-language-support">Legacy version</a>, said posts will display an alert box, warning that if you’re browsing the site with an old operating system, strange text may appear. But <strong>if you can browse this version without any issue, you have nothing to worry about</strong>, since your browser has full support for East Asian languages already.</p><p>This post will continue assuming you’re running an old operating system (e.g. Windows 9x, Windows XP, or Mac OS Classic).</p><p>Once you’ve installed support for these languages, check the <a href="#about-ruby-text">About ruby text</a> section of this post to check if the text is displayed correctly.</p></div>
<h2 id="windows">Windows</h2>
<p>This covers the following versions:</p>
<ul>
<li>Windows 9x: Windows 95, 98 and Me.</li>
<li>Windows NT: 4.0, 2000 and XP.</li>
</ul>
<h3 id="windows-9x-and-nt40-online">Windows 9x and NT4.0 (online)</h3>
<p>Although currently in a very early state, it is possible to add support for East Asian languages through the archival project called <a href="http://www.windowsupdaterestored.com">Windows Update Restored</a>. These are updated versions of the offline installers provided below, and are applied in nearly the same way as the days when the Windows Update feature was first introduced with Windows 98.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2Fnt-update.png&amp;w=700&amp;h=525&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="700" height="525" alt="Windows Update Version 3.1 on Windows NT 4.0" style="width:100%;height:auto" loading="lazy" decoding="async">Windows Update Restored running under Windows NT 4.0, with the East Asian language support installed</div></center>
<p>Note that there are many versions of Windows Update, each compatible with a set of different versions of Windows, and only Internet Explorer 4 through 6 will work. You will have more luck finding the language installation files in the English versions of Windows.</p>
<h3 id="windows-9x-and-nt40-semi-offline-recommended">Windows 9x and NT4.0 (semi-offline, recommended)</h3>
<p><a href="//www.yonic.blog/file/static/downloads/legacy-windows/IE55.EXE">This customized installer of Internet Explorer 5.5</a> comes with a copy of the updated versions of the language packs as shown above.</p>
<ol>
<li><strong>Mount the ISO image</strong> in your system and extract the files on
the specified path. <strong>Do not change this</strong>.</li>
<li>If prompted to remove the current language version, ignore it
and press <strong>“Yes”</strong> to continue.</li>
<li>Select <strong>“Minimum installation, or customize your browser…”</strong> and click on <strong>Next</strong>.</li>
<li>Scroll all the way down and check the boxes for <strong>Display support</strong> for <strong>Japanese</strong>, <strong>Korean</strong> and <strong>Chinese (Traditional) and (Simplified)</strong>. <strong>Do not tick on anything that is in bold text</strong>
other than the language support.</li>
</ol>
<h3 id="windows-9x-and-nt40-offline">Windows 9x and NT4.0 (offline)</h3>
<p>If the method above doesn’t work, I have uploaded an archived version of the <a href="https://archive.org/details/langpacks_202402">East Asian language installers for Windows 9x and NT 4.0</a>, although I only tested it with Windows 98, it should also work on 95 and NT.</p>
<ol>
<li><strong>Mount the ISO image</strong> in your system</li>
<li><strong>Run the installers one by one</strong>.</li>
<li><strong>Restart</strong> the system.</li>
</ol>
<p>These aren’t as updated as the other online methods</p>
<h3 id="windows-xp">Windows XP</h3>
<ol>
<li>Insert the <strong>Windows XP installation disc</strong> in your system.</li>
<li>Head to <strong>Control Panel &gt; Date, Time, Language and Regional options</strong> and select the <strong>Regional and Language settings</strong>. In the classic view, look for the latter.</li>
<li>In the <strong>Languages</strong> tab, check the <strong>Install files for East Asian languages</strong>.</li>
<li><strong>Reboot</strong>.</li>
</ol>
<h2 id="mac-os-9">Mac OS 9</h2>
<p>This guide is taken from Nisus.com, so that you can check it from your legacy OS. This should also be possible in Mac OS 8, but I haven’t tested it.</p>
<ol>
<li>Double click the Mac OS Install icon on the Mac OS 9 CD.</li>
</ol>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS91.gif&amp;w=400&amp;h=257&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="400" height="257" alt="Step 1" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<ol start="2">
<li>You will see a “Welcome” window. Click “<strong>Continue</strong>”.</li>
</ol>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS92.gif&amp;w=400&amp;h=252&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="400" height="252" alt="Step 2" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<ol start="3">
<li>Choose the hard drive on which you want to add the Language Kits. <strong>Make sure you uncheck “Perform Clean installation” in the “Options…” menu</strong>!</li>
</ol>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS93.gif&amp;w=400&amp;h=252&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="400" height="252" alt="Step 3" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS94.gif&amp;w=400&amp;h=252&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="400" height="252" alt="Step 4" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<ol start="4">
<li>Then click “<strong>Select</strong>”.</li>
</ol>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS95.gif&amp;w=400&amp;h=252&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="400" height="252" alt="Step 5" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<p>You see, the installer has checked and found that you already have Mac OS 9 on the system. You want to add software features to your System.</p>
<ol start="5">
<li>Therefore, you click: “<strong>Add/Remove</strong>”. Now you see the “Custom Installation and Removal” window.</li>
</ol>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS96.gif&amp;w=400&amp;h=252&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=gif" width="400" height="252" alt="Step 6" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<p>You have a lot of options here. But, all you want (now, for our purposes) is to scroll to near the bottom of the list where you’ll see “Language Kits”.</p>
<ol start="6">
<li>Check <strong>“Language Kits”</strong> and notice that the pop-up menu to its right becomes enabled:</li>
</ol>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS97.gif&amp;w=400&amp;h=252&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=gif" width="400" height="252" alt="Step 7" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<ol start="7">
<li>Click the pop-up menu and choose “<strong>Customized Installation…</strong>”:</li>
</ol>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS98.gif&amp;w=400&amp;h=252&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=gif" width="400" height="252" alt="Step 8" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<p>A new window opens in which you can check off the specific language kits you want to install (in this case, Japanese, Korean, Chinese using simplified characters and Chinese using traditional characters):</p>
<center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F02%2Flegacy-asian-language-support%2FlanguagekitsOS99.gif&amp;w=400&amp;h=252&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=gif" width="400" height="252" alt="Step 9" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center>
<ol start="8">
<li>After you check off the ones you want, click <strong>OK</strong> and then you’re ready to install the software.</li>
</ol>
<h2 id="about-ruby-text">About ruby text</h2>
<p>Ruby text are annotations that are placed on top of Chinese, Japanese and Korean (CJK) characters to aid in reading them. However, among the browsers that support the legacy OSes mentioned above, <strong>only Internet Explorer 5.5</strong> supports ruby text.</p>
<p>If your browser does not support ruby text, it will appear in this blog to the side of the CJK text.</p>
<p>Here are a couple of examples:</p>
<ul>
<li><span style="font-size: 16pt"><ruby>東京 <rp>(</rp><rt>Tōkyō</rt><rp>)</rp></ruby></span> is how Tokyo is written in Japanese.</li>
<li><span style="font-size: 16pt"><ruby>北京 <rp>(</rp><rt>Běijīng</rt><rp>)</rp></ruby></span> is how Beijing is written in Simplified Chinese.</li>
<li><span style="font-size: 16pt"><ruby>臺北 <rp>(</rp><rt>Táiběi</rt><rp>)</rp></ruby></span> is how Taipei is written in Traditional Chinese.</li>
<li><span style="font-size: 16pt"><ruby>서울 <rp>(</rp><rt>Seoul</rt><rp>)</rp></ruby></span> is how Seoul is written in Korean.</li>
</ul>]]></content>
    </entry>
        <entry>
            <title>The Internet Archive attacks: A crime against humanity</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/10/internet-archive-attacks</id>
            <link href="https://www.yonic.blog/blog/article/2024/10/internet-archive-attacks" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/10/internet-archive-attacks" />
            <summary><![CDATA[ Hackers hit the lowest point of bad things they could've done. ]]></summary>
            <published>2024-10-21T15:39:32.718Z</published>
            <updated>2024-10-21T15:39:32.718Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F10%2Finternet-archive-attacks%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/harry-potter/ea-games/diagon-alley" target="_blank" class="astro-m2ijcuns">Music: Diagon Alley</a><i class="astro-m2ijcuns">(Harry Potter EA Games | Jeremy Soule)</i></p>
<div class="feed-preview"><p>Throughout October, <a href="http://archive.org">archive.org</a> has been the target of numerous DoS attacks, and the data of roughly 31 million users has been exposed.</p><p>At the time of writing this post, even though the Archive has been reportedly restored in a read-only manner, some of its main features still have connection timeouts, meaning they are still having some unresolved outages.</p><p>Worse still, it’s been reported that some of its content has been erased, although we still don’t know the scope of the damages.</p><p>Being one of the largest digital libraries in existence, its recent history has been a close parallel to the Great Library of Alexandria, with this event being probably the counterpart of the fire that burnt a large part of the library, although not completely.</p><p>Hopefully, it will soon be restored and remain relevant for years to come. Still, this should serve as a lesson for the future to prevent history from repeating.</p></div>
<p>Internet Archive has seen better days. Last month, they lost a case against Hachette Book Group (and others) that was around since May of last year. The printing companies alleged that Internet Archive was allowing people to infringe copyright when they lifted borrowing restrictions during the COVID-19 pandemic, and will have to pay several millions of dollars in damages, maybe up to $400 million.</p>
<p>And on May of this year, they were the target of another DoS attack, albeit to a much lesser degree than this one. While I’m not well informed in digital security to discuss about how they got hacked and if the security measures they had in place were good enough or not, the fact that this has been going on for nearly a month now goes to show that the hackers are not planning on stopping for the time being.</p>
<div><p>&lt;Yonic&gt;</p><p>Now, I’d generally wait a few days when events like these occur to write my opinions about this matter as we get more information on who is responsible for these hacks and under what motivations, but this event seems like it’s going to take quite a bit longer before things return to full normality.</p><p>But seeing as certain parts of the site have been tentatively brought back online, I thought it would be a good time to talk about some insights on this.</p><p>Still, I would heed caution when hearing news about this, at least until all Internet Archive services return back to normal and they’re done investigating the causes and finished making an assessment of the damages. I’ve found a lot of misinformation about the topic; which is y’know, the usual in developing big stories.</p><p>&lt;/Yonic&gt;</p></div>

<p>The Internet Archive is mostly known for its <strong>WayBack Machine</strong>, a comprehensive archive of over 866 billion webpages since 1996, and while to some people it’s just a way to reminisce how websites used to look like in the past, it does have its usage as a very valuable resource for legitimate use cases such as documenting about legacy software, or retrieving data that no longer exists in the present —sort of like a preventive solution to link rot.</p>
<p>However, archive.org also has a repository of many types of media, mostly digitized books, but also music, movies and software. This is also part of the rationale behind the debate of copyright infringement, as the borrowing system is only applicable to books. Still, the Internet Archive does accept takedown of personal data if someone wishes it rather not appear in the archive.</p>
<div><p><b>Yonic:</b> I have relied on this archival service for many years and I even contributed to it a few times. It’s such a pleasure that it’s a non-profit organization, so everything there is free to the public.</p></div>

<p>My take on this is that attacking a public project of this scale equates to a crime against humanity itself. Let me explain why with a bit of history.</p>
<p class="astro-m2ijcuns"><a href="/player/harry-potter/ea-games/happy-hogwarts" target="_blank" class="astro-m2ijcuns">Music: Happy Hogwarts (casual variation)</a><i class="astro-m2ijcuns">(Harry Potter EA Games | Jeremy Soule)</i></p>
<p>The concept of a digital archive represents our most recent level of advancements in storing knowledge. Throughout history, texts had been etched and written onto many kinds of surfaces. Some are durable, while others are reusable, but all of them are subject to being defaced, altered, or destroyed by both natural and humane causes because they are physical objects.</p>
<p>Plus, before the printing press was invented, scribes had to be employed to make copies of documents of any kind and medium, and were very predominant in many cultures from all parts of the world. There’s even a branch of science that studies how writing systems have contributed in shaping other aspects of culture, among other things.</p>
<p>The ability of representing knowledge using concepts such as numbers like 0s and 1s allows people to store it in a more abstract way, protecting them from most of the natural causes. And as it turns out, computers turn out to be very good at copying information flawlessly. In order words, <strong>digital information grants people with the ability to share knowledge easier than ever before</strong>.</p>
<p>However, knowledge still is —and will always be— susceptible to human damages. And we’ve seen this with attacks and boycotts to libraries and museums alike. Not even the digital repositories are safe from this.</p>
<p>And this is where the similarities between the incidents of the Internet Archive and the Library of Alexandria start to run out. To provide some historic context, the Ptolemaic library wasn’t destroyed by the infamous fire. In fact, the Museion, a somewhat independent institution but in which the library belonged to, still remained active centuries later. Historians still argue about several contradicting details, but what’s clear to most historians is that it didn’t disappear all of a sudden, rather, the library had a slower and steady decline.</p>
<p>The Library of Alexandria wasn’t the only large library of its time, either. The Library of Pergamum was claimed to have over 200 thousand volumes, and it has been rumored that Mark Anthony offered the entire collection to Cleopatra to restock the library, damaged by the fire 5 years prior. And its decline was not that much of a big deal anyway, as historians believe that most of the material within the library actually survived the demise, thanks not to other cultural centers such as the Library of Baghdad, but the many copies of the stored scrolls made by scribes over the centuries.</p>
<p>The Internet Archive, however, is probably the only archive of its kind when it comes to “archiving web pages in their entirety”, holding nearly 100 petabytes of data as of September 2024, and many other archiving initiatives are backed by their technology. In other words, <strong>it’s a centralized source of information</strong>.</p>
<div><p>&lt;Yonic&gt;</p><p>As a matter of fact, Google was using their own infrastructure to cache pages when they couldn’t reliably load due to server outages and the like. But as of last month, they have removed this feature and <a href="https://blog.archive.org/2024/09/11/new-feature-alert-access-archived-webpages-directly-through-google-search/">integrated their cache functionality with WayBack Machine instead</a>.</p><p>A bit funny considering it happened right before the attacks.</p><p>&lt;/Yonic&gt;</p></div>

<p>This is why these attacks are actually a much bigger deal than other historic examples: We’re dealing with <strong>a totally new form of knowledge</strong>, one that we’re still figuring out how to effectively archive, despite modern advancements; I don’t know about any examples of “digital copyists” of old websites, for that matter. And there’s <em>a lot</em> in that archive, so if an outage and data loss does occur, it must rely on volunteers who have kept their own personal copies to restore it. Sure, we have a lot of people in this planet, but <a href="https://lostmediawiki.com/Home">lost media</a> is still a thing.</p>
<p>Regardless of their intentions and motives, it should be taken as fact that these hackers have proven that the current model of archiving the web is far from being “permanent”, and it can easily be brought down by factors such as hackers, or maybe even lack of funding (some historians argue that’s what brought the Alexandrian Library to its final demise). If we want to truly keep it that way, I believe we should try to <strong>decentralize our archives more</strong>, just like scribes used to do by copying tablets, scrolls and books in the past. Of course, this would imply a lot of backup copies and maybe even using decentralized networks such as <a href="https://ipfs.tech/">IPFS</a>, which will anger copyright holders, but further defining fair use and hopefully some court rulings in favor for archival could help in making this feat much easier to do.</p>
<blockquote>
<p>Every man has two deaths, when he is buried in the ground and the last time someone says his name. In some ways men can be immortal. — Ernest Hemingway</p>
</blockquote>]]></content>
    </entry>
        <entry>
            <title>Making The Yonic Corner Legacy: The layout</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/09/making-legacy-2</id>
            <link href="https://www.yonic.blog/blog/article/2024/09/making-legacy-2" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/09/making-legacy-2" />
            <summary><![CDATA[ Part two of how I made my blog compatible for old browsers, this time it's about how I put the design in practice. ]]></summary>
            <published>2024-09-24T12:21:23.470Z</published>
            <updated>2024-09-24T12:21:23.470Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F09%2Fmaking-legacy-2%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/windowsy/jive-xg" target="_blank" class="astro-m2ijcuns">Music: JIVE.MID (Microsoft GS Wavetable)</a><i class="astro-m2ijcuns">(Yamaha XG Sample MIDI | Sam Cardon)</i></p>
<div class="feed-preview"><p>Whoa, it’s been nearly a year since I promised part two of how I made the Legacy version of The Yonic Corner! The thing is, I wanted to complete the majority of the features of the version in order to fully cover the whole story.</p><p>And now that it’s finally feature complete, here’s the long awaited second part!</p><p>In <a href="/blog/2023/10/making-legacy-1">part 1</a>, I discussed about what visual style I wanted to use for the Legacy version of this blog. This part goes through the technicalities of making the design a reality.</p></div>
<h2 id="selecting-the-supported-versions">Selecting the supported versions</h2>
<p>This was a simple yet very hard choice to make. Ideally, I wanted to support as many operating systems as possible, but I knew this would be a very difficult task.</p>
<p>At the very least, I wanted to support the Windows 9x family of OSes, which meant that <strong>Internet Explorer 5</strong> would probably be my target browser. The main problem with that it’s that IE5 <strong>came out at the very beginning of the standardization of the web</strong>. Which meant that whatever worked on this version would probably break in older versions. I ended up settling on IE5.5, which comes with Windows 98 Second Edition, and hopefully port to IE5. Of course, I also wanted to support other browsers from that epoch such as Mozilla and Opera —the latter of which is used quite often by retro web users.</p>
<p>Another motivator for supporting Internet Explorer 5 was that there was a version specifically made for some UNIX operating systems. But after researching on how to install the browser on Solaris, I quickly gave up because of the lack of expertise I had on Solaris to install it properly without resulting in system failures. To my knowledge, there is no script to do this automatically. I still have to figure out what to do about adding support to UNIX/Linux operating systems, as there were many distros with their own browsers. Konqueror and Galeon seem to come to mind, but there may be others that were used more (excluding Firefox).</p>
<p>I was also interested in supporting Mac Classic, which I have rarely used, but after not much research I quickly settled with Mac OS 9. I’m pretty sure Mac OS 8 also works, but version 9 was what I could get a hold of. I settled with <a href="https://www.floodgap.com/software/classilla/">Classilla</a> as the target browser for this OS, but with how deeply disappointing and similar it seemed to be compared to Netscape 7 in functionalities, I also threw in the latter browser as one of my potential targets. Internet Explorer for Mac was a tempting possibility, but it was prone to crashing the Mac emulator I was using, so I set it aside for the time being.</p>
<p>Then there was <strong>Flash Player</strong>. If I wanted the music player in the Legacy blog while remaining cross platform, this was the only way to do so. Internet Explorer has a way to embed audio to a page, but it was non-standard and quickly deprecated in favor of HTML5 audio. Supporting Windows 95 and NT 4.0 meant that I had to stick with version 7 and ActionScript 2.0. I didn’t know it at the time, but this would be the source of a lot of headaches later on.</p>
<h2 id="understanding-the-fundamentals-once-again">Understanding the fundamentals, once again</h2>
<p>The Yonic Corner Legacy Version targets browsers that came about at a time where the <abbr title="World Wide Web Consortium" span="World Wide Web Consortium">W3C</abbr> was just about 5 years old. To understand what that meant, we need to go back to that time, when Internet just started catering home consumers in the United States.</p>
<p>In the early 1990s, the World Wide Web was a wild place: Everyone had their own way of displaying websites and doing things in them. Even if standards for communicating such as hypertext and its transfer protocol (HTTP) were being used, those standards weren’t yet fully completed. One of the most notable examples was JScript: Microsoft’s implementation of JavaScript for Internet Explorer, which, in an effort to gain influence over its competitors, added features that were totally incompatible with other browsers, a development stunt that was infamously named “Embrace, Extend, Extinguish”.</p>
<div><p>&lt;Yonic&gt;</p><p>In fact, you could use other script languages in Internet Explorer. The <code>type</code> attribute of script tags could actually accept <code>text/vbs</code> for Internet Explorer to use VBScript. And I think it also had support for Perl and Lua, as well?</p><p>For the longest time, JavaScript became the only way to use client-side scripting on the web, so the <code>type</code> attribute was not considered necessary. But with ECMAScript modules and WebAssembly, other types began showing up, such as <code>module</code>, and now that property has become useful again!</p><p>What’s really nice about this is that browsers that don’t support ES Modules (or any specified language for that matter) will safely disregard any script tag with <code>module</code> as their type, allowing me to preview my blog in development mode without any hiccups! I’d still have to refresh to see the changes and inline any script I might want to add, but that’s way better than having to make a production build every time I change something.</p><p>&lt;/Yonic&gt;</p></div>

<p>This is how I got introduced to the infamous <em><strong>Internet Explorer box model bug</strong></em>. The box model in HTML is a W3C specification which defines that every HTML element can be represented as rectangular boxes, which can have content, padding around that content, a surrounding border at the edges, and margins to separate elements around. In CSS, you can control the overall sizing of the element with the <code>width</code> property, and the “bug” is caused by how Internet Explorer (and also Netscape, by the way) determined how to compute that <code>width</code>.</p>
<center><div style="width:347px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F09%2Fmaking-legacy-2%2Fbox-model.png&amp;w=347&amp;h=480&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="347" height="480" alt="Box model diagram" style="width:100%;height:auto" loading="lazy" decoding="async">The traditional model used by Internet Explorer computed the <code>width</code> of an element as the sum of the widths of the content, its padding and border thickness to the left and right sides of the box. However, the W3C standard computed it to be <em>only</em> the content without the paddings and borders.</div></center>
<p>This meant that Internet Explorer and Netscape rendered the elements <em>smaller</em> than they should’ve been according to W3C. And here’s where my rant against W3C begins: The thing is, <strong>the W3C was wrong</strong>. When Internet Explorer 6 came out, many layouts potentially broke all over the web. The reason? <strong>IE6 switched to the W3C box model</strong>.</p>
<p>Take a look at this CSS code:</p>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" data-language="css"><code><span class="line"><span style="color:#6F42C1">.one</span><span style="color:#24292EFF"> {</span></span>
<span class="line"><span style="color:#1976D2">  width</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> 600</span><span style="color:#D32F2F">px</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#1976D2">  border</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> 2</span><span style="color:#D32F2F">px</span><span style="color:#1976D2"> solid black</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#1976D2">  padding</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> 10</span><span style="color:#D32F2F">px</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#24292EFF">}</span></span></code></pre></div></div>
<p>In versions of Internet Explorer before 6, the actual width of the element would be set to 600 pixels, and other elements would be laid out considering that size. But in IE6 onward, the content box is set to 600 pixels, and the padding and border are added afterwards; resulting in a width that would actually be <strong>624 pixels</strong>! This may not be what the web designers intended in the first place. In order to truly make it 600 pixels wide, you’d have to subtract the extra 24 pixels to the <code>width</code> property.</p>
<p>The worst side effect that this had was that <strong>this change made flexible layouts almost impossible to make</strong>:</p>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" data-language="css"><code><span class="line"><span style="color:#6F42C1">.two</span><span style="color:#24292EFF"> {</span></span>
<span class="line"><span style="color:#1976D2">  width</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> 75</span><span style="color:#D32F2F">%</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#1976D2">  padding</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> 10</span><span style="color:#D32F2F">px</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#24292EFF">}</span></span></code></pre></div></div>
<p>When setting <code>width</code> to a percentage, it takes on the percentage of the content width of the parent container, so regardless of the box model, a percentage width less than 100% will keep it nicely tucked inside the container. <strong>But this breaks when you introduce padding or borders</strong>, because the W3C model will grow the <code>two</code> element beyond that width; if it’s set to a 100% with either a border or a padding, <strong>it will always overflow</strong> its container. Meanwhile, the traditional model keeps the correct size and no overflows occur! And what’s worse, the only way to fix this with CSS alone is with the <code>calc()</code> function, something that Internet Explorer did not support until version 9, which was already too late for reasons I will discuss later.</p>
<p>Thankfully Microsoft saw through this problem and introduced a concept called <strong>quirks mode</strong>. By using the <code>DOCTYPE</code> special tag at the beginning of the HTML document, you could instruct Internet Explorer to render the page in either <strong>standards mode</strong>, which would attain to the W3C box model; or <strong>quirks mode</strong>, which maintains backwards compatibility with Internet Explorer 5 and older. Other browsers would quickly follow suit with this behavior, and eventually became a standard across nearly all HTML versions. I won’t go into detail about which settings for <code>DOCTYPE</code> triggers which mode according to each browser, but <a href="https://en.wikipedia.org/wiki/Quirks_mode#Comparison_of_document_types">this Wikipedia article has a nice table</a> with some possible combinations.</p>
<p>Unfortunately for me, however, Astro always generates pages with the <code>DOCTYPE</code> that suits HTML5 documents, forcing the browser to use <strong>standards mode</strong> or <strong>almost standards mode</strong>, meaning that I would have to deal with the layout issues introduced by W3C standards.</p>
<div><p>&lt;Yonic&gt;</p><p>Although Astro later introduced a way to render Astro pages on demand, allowing me to hack my way through that behavior, that feature was introduced way after I finished the layout.</p><p>I don’t have any motivations for going through the hard work of trying to hack my way to have quirks mode enabled and make sure it works with all browsers again. The only one I can think of would be adding support for Internet Explorer 4. But that’s a huuuge “if”.</p><p>Besides, quirks mode also triggers some other non-standard behaviors; the box model is just one of the more notorious —and nagging— ones.</p><p>&lt;/Yonic&gt;</p></div>

<p>People would later realize that the new standard behavior by the W3C was prone to many problems, so in 2006, Mozilla introduced the <code>box-sizing</code> property, which controls what should count as the <code>width</code> of an element.</p>
<p>By setting it like this in CSS, you could sort of opt back in to the old behavior from quirks mode while remaining in standards mode:</p>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" data-language="css"><code><span class="line"><span style="color:#22863A">*</span><span style="color:#24292EFF"> {</span></span>
<span class="line"><span style="color:#1976D2">  box-sizing</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> border-box</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#24292EFF">}</span></span></code></pre></div></div>
<p>This new property was so well received that even the W3C would end up capitulating and turn this property into a standard. I might be wrong on this, but we take the code above for granted so much that now it might be something that many web designers teach very nonchalantly: “Don’t forget to put this, it’ll make things work properly.” or something of the sort, without actually understanding the reason behind it.</p>
<p>But this is of no use to me! Remember, this was introduced in the mid-to-late 2000s and didn’t become a standard until several years later, and Internet Explorer only began supporting this with version 8. Like I said before, it was all too late. So with no other options, <strong>I’d have to deal with the quirks of the standard rendering mode</strong>.</p>
<h2 id="getting-to-work">Getting to work</h2>
<p>Now that I was somewhat familiar with the basics, my first step was to create potentially suitable designs.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F09%2Fmaking-legacy-2%2Fdesign-beta.png&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="394" alt="First design" style="width:100%;height:auto" loading="lazy" decoding="async">This is the first design that I came up with. At first I didn’t like it, but I still liked the layout so I might rescue it in the future for a possible feature I might add sometime.</div></center>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F09%2Fmaking-legacy-2%2Fdesign-final.png&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="700" height="394" alt="Final design mockup" style="width:100%;height:auto" loading="lazy" decoding="async">This is the mockup of the final design (except for the player). I don’t remember how I came up with the “Stardom” name, but I ended up changing it to “Pixarcade” design later on.</div></center>
<p>Knowing that responsive 3-column layout was probably not going to be feasible, I went with a static, table based layout; an old-fashioned technique, but I am making a site for old browsers, right?</p>
<p>My game plan was to first cater the quirky browsers, and then apply CSS patches that would work for browsers that follow the standards. Normally, one would focus on the standard browsers and then patch up the quirks from older browsers, but I found this process to be much simpler the other way around. Although later on I would add specific patches for browsers that have a very quirky behavior and I don’t see any other way to fix it without compromising the other browsers’ stability.</p>
<p>Internet Explorer also has an incredibly handy feature to selectively apply patches across most of its versions (5 through 9) through <strong>conditional comments</strong>:</p>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" data-language="html"><code><span class="line"><span style="color:#1f3d95;background-color:rgba(121, 173, 227, 0.285)">&lt;!-- Anything inside here will be skipped by IE6 and above.--&gt;</span></span>
<span class="line"><span style="color:#C2C3C5">&lt;!--[if gte IE 6]&gt;&lt;!--&gt;</span></span>
<span class="line"><span style="color:#24292EFF">&lt;</span><span style="color:#22863A">link</span><span style="color:#6F42C1"> href</span><span style="color:#D32F2F">=</span><span style="color:#22863A">"standard_layout.css"</span><span style="color:#6F42C1"> rel</span><span style="color:#D32F2F">=</span><span style="color:#22863A">"stylesheet"</span><span style="color:#24292EFF">&gt;</span></span>
<span class="line"><span style="color:#C2C3C5">&lt;!--&lt;![endif]--&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#1f3d95;background-color:rgba(121, 173, 227, 0.285)">&lt;!-- Anything inside here will be run by IE5 and IE 5.5 only --&gt;</span></span>
<span class="line"><span style="color:#C2C3C5">&lt;!--[if lt IE 6]&gt;</span></span>
<span class="line"><span style="color:#C2C3C5">&lt;link href="ie5only.css" rel="stylesheet"&gt;</span></span>
<span class="line"><span style="color:#C2C3C5">&lt;![endif]--&gt;</span></span></code></pre></div></div>
<p>Since most other browsers would play by the standards, I needed the standard CSS patches to be available for them as well, and this code above will certainly do the trick.</p>
<p>I also had the power of modern enhancements to CSS thanks to both SASS and, later on, PostCSS, to convert modern features such as <code>calc()</code> into hardcoded supported values by these browsers.</p>
<p>Slowly the elements of the website would carefully be integrated, one by one. Some were trivially easy to make. Others, not so much. <strong>9-slice elements</strong> such as the text bubbles and the code windows were very painstakingly crafted with tables, but I think I may have put the browsers to their limit when developing these, because they seem to have some transient issues when displaying them sometimes. In situations which CSS couldn’t cover some of the edge cases, I could rely on jQuery as a last resort.</p>
<p>Once I finished porting the majority of the post components from the Modern version —and showing a warning for those that couldn’t be ported due to web limitations— I ended up with two different versions of the blog, even though the data and posts were mostly the same. Although not an easy conundrum, I was able to merge the data of both versions together, so that I only need to write a post in one place, and both the Modern and Legacy versions could fetch and display the new post on their own.</p>
<p>All in all, I’ve learnt quite a lot about some of the most obscure elements of CSS and HTML, and particularly even more quirks related to each browser and operating system, and despite the many, <em>many</em>, shortcomings and problems, I had a lot of fun making the Legacy Version of The Yonic Corner.</p>
<p>Here’s a list of some of the things I’ve learnt:</p>
<ul>
<li>You can adjust the position of the marker of lists with <code>list-style-position</code>.</li>
<li>HTML4 properties have fallbacks in modern browsers using CSS, at least for the most part.</li>
<li>Now I fully understand the concept of <strong>web safe colors</strong>, as not only they could change drastically in screens with limited color depth, but they also can have flashes of colors when switching between applications —a quirk of the process graphics cards and software do called “palette realization”.</li>
<li>Despite not supporting it, jQuery <strong>does work on IE5.5</strong>. Although only like the very first handful of releases, and only a very limited set of functions, but it was still good enough to do the things I wanted it to do.</li>
<li>Tables have two ways of being rendered depending on how you set the property <code>table-layout</code>: <code>fixed</code> and <code>auto</code>. I still don’t get how they work exactly, but <code>auto</code> seems to be the option that can come closest to a flexbox —although it’s also the most unpredictable and the most prone to layout breakdowns.</li>
<li>Although all of my target browsers support PNG, the vast majority has only 1-bit transparency support (such as with PNG8), so they can only be either totally opaque or totally transparent. The only one that does seem to have a more robust support for partial transparency is IE5 for Mac… *sigh*.</li>
<li>When an element overflows in IE5, it actually makes its container bigger than it should be, instead of the element just popping off the container.</li>
<li>Flash Player 7 sucks. But that’s a story for another time.</li>
</ul>
<p>I’ve also came up with a really elegant hack for overcoming the problem regarding elements getting wider with padding. <strong>The key is that the enlargement only happens when you’re setting a padding or a border to an element with an explicit size</strong>. But if the size remains intrinsic —that is to say, it takes on its natural sizing— <strong>it will behave like in quirks mode or <code>border-box</code> sizing</strong>.</p>
<p>By default, <code>block</code> elements such as <code>div</code> will take all the available horizontal space. So why not use one intrinsically sized container as a padding box for the content?</p>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><span class="filename astro-c6nuo4je"><img width="16" height="16" alt="html" src="/img/icons/filetypes/file_type_html.svg" class="icon astro-c6nuo4je">hack.html</span><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" data-language="html"><code><span class="line"><span style="color:#24292EFF">&lt;</span><span style="color:#22863A">div</span><span style="color:#6F42C1"> class</span><span style="color:#D32F2F">=</span><span style="color:#22863A">"container"</span><span style="color:#24292EFF">&gt;</span></span>
<span class="line"><span style="color:#24292EFF">  &lt;</span><span style="color:#22863A">div</span><span style="color:#6F42C1"> class</span><span style="color:#D32F2F">=</span><span style="color:#22863A">"padding-box"</span><span style="color:#24292EFF">&gt;</span></span>
<span class="line"><span style="color:#24292EFF">    &lt;</span><span style="color:#22863A">div</span><span style="color:#6F42C1"> class</span><span style="color:#D32F2F">=</span><span style="color:#22863A">"content"</span><span style="color:#24292EFF">&gt;</span></span>
<span class="line"><span style="color:#24292EFF">      This will measure 500px exactly!</span></span>
<span class="line"><span style="color:#24292EFF">    &lt;/</span><span style="color:#22863A">div</span><span style="color:#24292EFF">&gt;</span></span>
<span class="line"><span style="color:#24292EFF">  &lt;/</span><span style="color:#22863A">div</span><span style="color:#24292EFF">&gt;</span></span>
<span class="line"><span style="color:#24292EFF">&lt;/</span><span style="color:#22863A">div</span><span style="color:#24292EFF">&gt;</span></span></code></pre></div></div>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><span class="filename astro-c6nuo4je"><img width="16" height="16" alt="css" src="/img/icons/filetypes/file_type_css.svg" class="icon astro-c6nuo4je">hack.css</span><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" mark="4-11" data-language="css"><code><span class="line"><span style="color:#22863A">*</span><span style="color:#24292EFF"> {</span></span>
<span class="line"><span style="color:#1976D2">  box-sizing</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> content-box</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#24292EFF">}</span></span>
<span class="line marked"><span style="color:#6F42C1">.container</span><span style="color:#24292EFF"> {</span></span>
<span class="line marked"><span style="color:#1976D2">  width</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> 500</span><span style="color:#D32F2F">px</span><span style="color:#24292EFF">;</span></span>
<span class="line marked"><span style="color:#1976D2">  background</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> black</span><span style="color:#24292EFF">;</span></span>
<span class="line marked"><span style="color:#24292EFF">}</span></span>
<span class="line marked"><span style="color:#6F42C1">.padding-box</span><span style="color:#24292EFF"> {</span></span>
<span class="line marked"><span style="color:#1976D2">  padding</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> 10</span><span style="color:#D32F2F">px</span><span style="color:#24292EFF">;</span></span>
<span class="line marked"><span style="color:#1976D2">  border</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> 2</span><span style="color:#D32F2F">px</span><span style="color:#1976D2"> solid black</span><span style="color:#24292EFF">;</span></span>
<span class="line marked"><span style="color:#24292EFF">}</span></span>
<span class="line"><span style="color:#6F42C1">.content</span><span style="color:#24292EFF"> {</span></span>
<span class="line"><span style="color:#1976D2">  color</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> white</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#24292EFF">}</span></span></code></pre></div></div>
<p>Set the width of the <code>container</code>-class elements to percentages and you could potentially have something like a rudimentary responsive element!</p>
<p>But I’ve learnt one more thing about the box model, which is the kicker. All the time I’ve mentioned the box model, I’ve been talking about the <code>width</code> of an element. But what about the <code>height</code>? It turns out that the height of an element is computed in an entirely different way, and <strong>there is no mention of padding nor border in <code>height</code> calculation.</strong> And older browsers seem to calculate it in the same way regardless of the rendering mode! So, unless you set the <code>box-sizing: border-box</code> rule in CSS, <strong>padding and borders will <em>always</em> make the element taller than specified</strong>.</p>
<div><p>&lt;Yonic&gt;</p><p>Alright, I can see this not being as much of a deal as with <code>width</code>, because web elements tend to flow in rows: Horizontal first, vertically when they run out of horizontal space.</p><p>The horizontal axis being more sensitive to the vertical one is sort of a valid reason not to care. But in a world where fullscreen web apps exist, that’s <em>still</em> going to be the source of problems if you don’t know about that behavior! And also the padding and container hack I just mentioned would not work with heights!</p><p>Seriously! Whose minds came up with this crappy design!? Did they think web elements should behave like files because of the “padding”?</p><p>&lt;/Yonic&gt;</p></div>

<p>I think the last part of this series is going to be the most fun one. I want to address and laugh —and roar in anger— at the many issues and weird stuff that happened since I started working on this project. Hopefully it won’t take a year to post it!</p>]]></content>
    </entry>
        <entry>
            <title>Webcore Bliss</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/09/bliss-90s</id>
            <link href="https://www.yonic.blog/blog/article/2024/09/bliss-90s" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/09/bliss-90s" />
            <summary><![CDATA[ What if the famous Windows XP wallpaper was made in the 1990s? ]]></summary>
            <published>2024-09-19T21:27:47.400Z</published>
            <updated>2024-09-19T21:27:47.400Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F09%2Fbliss-90s%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><div class="feed-preview"><a href="https://yonic.blog/file/img/blog/art/renders/bliss-90s.png" target="_blank" rel="noreferrer">Click here for full image</a><center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2Fart%2Frenders%2Fbliss-90s.png&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="700" height="394" alt="Bliss wallpaper in a 90s style" style="width:100%;height:auto" loading="lazy" decoding="async">What if the famous Windows XP wallpaper was made in the 1990s?</div></center><p>Lately I’ve been getting myself into making retro-styled renders from the 1980s to the early 2000s. This is a recreation of the famous wallpaper for Windows XP made with Blender 4.3 with the Cycles renderer.</p><p><a href="http://yonic.blog/file/img/blog/art/renders/bliss-90s-1024.png">I also have a 1024x768 standard wallpaper for old computers to use.</a></p></div>
<div><p>&lt;Yonic&gt;</p><p>Now that I see the finished product, it does remind a bit of the intro to the Amazing Digital Circus, and I’m glad it resembles the world a slightly bit!</p><center><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F09%2Fbliss-90s%2Ftadc.png&amp;w=400&amp;h=278&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="400" height="278" alt="The Amazing Digital Circus logo in the intro" style="width:100%;height:auto" loading="lazy" decoding="async"></div></center></center><p>That series does drive a lot into several graphical styles of the 90s, mainly webcore, which I also designed this blog after.</p><p>&lt;/Yonic&gt;</p></div>
]]></content>
    </entry>
        <entry>
            <title>Gaming isn't crashing: It's stagnating, but it's still going to be very painful.</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/08/games-aaa-stagnation</id>
            <link href="https://www.yonic.blog/blog/article/2024/08/games-aaa-stagnation" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/08/games-aaa-stagnation" />
            <summary><![CDATA[ Instead of the promised raytracing generation, darkness awaits us. But this is normal. ]]></summary>
            <published>2024-08-23T15:58:03.761Z</published>
            <updated>2024-09-02T13:19:44.102Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fgames-aaa-stagnation%2Fhero.jpg&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><div class="feed-preview"><p>On <a href="/blog/article/2023/12/gamedev-summary">last year’s retrospective on game development</a>, I predicted that the gaming industry layoffs wouldn’t stop this year. Sadly, I was right on the money: <strong>We’ve surpassed the amount of layoffs from 2023 back in June</strong>.</p><p>And it’s not just the big studios that are suffering. The indie industry is struggling with a completely different kind of situation.</p></div>
<h2 id="the-aaa-corporate-greed-game-development-as-slavery">The AAA corporate greed: Game development as slavery?</h2>
<p class="astro-m2ijcuns"><a href="/player/sims2/busy-sim" target="_blank" class="astro-m2ijcuns">Music: Busy Sim</a><i class="astro-m2ijcuns">(The Sims 2 | Mark Mothersbaugh)</i></p>
<p>A bit of a flippant title, but it’s seems to be becoming ever increasingly truer with time in big studios with an economic model that’s based on the model of tech giants from the United States.</p>
<p>I’m not going to delve deep into US economics, but the gist of it is that it’s mostly growth driven: “The more reach you can obtain, the happier the investors become. We’ll see the actual earnings later.”</p>
<p>This is one of the reasons big publishing firms spend so much money on marketing: It’s one of the main drives for potential growth, which gives them <em>a lot</em> of leverage.</p>
<p>In their desire to achieve more growth, studios are pressured to hire more staff than they actually need, because having more jobs tends to <em>look good</em> on investors. This often results on a troubled situation in which management is found being incapable of coordinating a team of such size, which will probably have an impact on why the development won’t get anywhere. And once the project doesn’t seem to be delivering what it’s been promised, companies resort to cutting costs by axing jobs that they knew beforehand shouldn’t have hired in the first place, and attempt to “try to look good and responsible” by applying damage control to their best.</p>
<p>This is especially true in companies that go public in the stock market, as there is a constant pressure for exponential growth; since other companies are doing this, stockholders may consider that your company might be stagnating if the stock value doesn’t keep increasing, even if it’s being inflated. <a href="https://www.shacknews.com/article/139799/electronic-arts-share-buyback-2024">Game companies even resort to buying back stock</a> just to do this.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fgames-aaa-stagnation%2Fgraph.jpg&amp;w=700&amp;h=483&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=100&amp;output=jpg" width="700" height="483" alt="A graph showing how game companies from the United States act like" style="width:100%;height:auto" loading="lazy" decoding="async">This is a (comedic) depiction of a graph explaining how this cycle of the game development progresses over time. This applies to large companies, not just indie game studios.</div></center>
<p>And if that wasn’t enough, some publishers have also found an exploit: The <strong>early access rug pull</strong>. This really shady practice consists on releasing a game as an early access game, hoping to gain traction. But the game will be full price while in this phase. If the game eventually flops during development, since they’ve already gotten some earnings, they pull the rug, stop development altogether, and run away with the cash while at the same time leaving just a handful of programmers for fixing bugs only. <strong>This is fraud and punishable by law</strong>.</p>
<p>This is exactly what happened with <a href="https://www.ign.com/articles/take-two-shutters-kerbal-space-program-2-studio-amid-layoffs">Take-Two when they shut down Intercept Games</a>, putting the final nail in the coffin of <em>Kerbal Space Program 2</em>’s troubled development. And last year we also had the <a href="https://www.forbes.com/sites/paultassi/2023/12/12/the-day-before-disaster-mass-refunds-developer-ghosting-scam-accusations/">Fntastic’s <em>The Day Before</em> incident</a>.</p>
<div><p>&lt;Yonic&gt;</p><p>And this is why now I don’t preorder games anymore, even if it comes with bonuses. Ever since downloadable patches became a thing, I’ve became very cynical for how a game is going to come out.</p><p>Although <em>maybe</em> I will consider preordering something I might want at all costs in a physical format and I think there won’t be many physical units in supply. It used to be the case with <em>Metroid</em> games, but nowadays the supply has been pretty hefty enough to make me wait for the release.</p><p>&lt;/Yonic&gt;</p></div>

<h2 id="indies-and-the-lack-of-funding">Indies and the lack of funding</h2>
<p class="astro-m2ijcuns"><a href="/player/last-window/neon-lights" target="_blank" class="astro-m2ijcuns">Music: Neon Lights</a><i class="astro-m2ijcuns">(Last Window: The Secret of Cape West | Satoshi Okubo)</i></p>
<p>This is something that has been happening more often than not in studios all over Europe, a region where most of the game throughput come from indie studios, which normally don’t have much capital to embark themselves onto making videogames.</p>
<p>Ever since the worldwide lockdown due to the pandemic period ended, things have gotten for the worse for indie studios. During the pandemic, investors were able to read the tea leaves and figure out that <strong>games were going to be extremely valuable during lockdown</strong>, from a convenient way to cope with having to stay indoors, to a collectible commodity. Roblox is the textbook example of this: It exploded in popularity during the 2020s, and <a href="https://venturebeat.com/games/roblox-goes-public-at-42-2-billion-valuation-in-direct-listing/">went public at an astronomically high market value of over 7 times the value of Ubisoft</a>, but fell victim to the 2022 bust and <a href="https://www.bloomberg.com/news/articles/2022-02-16/roblox-shopify-show-covid-19-boon-also-has-a-bust">quickly devalued as restrictions went down</a>.</p>
<p>The Web3 fiasco further exacerbated the damages, because it fostered a lot of interest on game projects that had blockchain-like features, but these were simply terrible investments that could be considered a downright scam. Their failure caused a lot of devaluation of a lot of startups, and many tech investors grew extremely wary of investing.</p>
<p><b>YouTube video: </b> <a class="anchor" href="https://www.youtube.com/watch?v=g-_hVXzkn0o" target="_blank" rel="noreferrer noopener">Tech bust of 2022 explained</a> (3:05)</p>
<p>However, game studios started with their massive layoffs a year after the bust because videogames are generally more of a long-term investment and it took some time to see that they weren’t as profitable anymore.</p>
<p>Investors in Europe face similar concerns, and are being now <a href="https://www.gamesindustry.biz/how-are-investors-feeling-about-video-games-today">more conservative and risk aware</a> because game European studios are increasingly being handled like tech companies from the United States.</p>
<p>And if that wasn’t enough, the tech industry did eventually find something that seemed promising: <strong>Generative “AI”</strong>, a field in which videogame development seems to have have yet to find anything to take advantage of —let alone that its usage is deemed unethical within the industry— and with nothing else seemingly equally promising in tech, investors have flocked in herds to those greener pastures.</p>
<div><p><b>Yonic:</b> We’ll see how that “AI” biz goes in the next few 5 years or so.</p></div>

<p><a href="https://www.pcgamer.com/kickstarter-pledges-in-decline-as-crowdfunding-makes-way-for-early-access/">Crowdfunding isn’t what it used to be</a> 10 years ago, and it has become very stagnant with no hopes of improving. Early access used to provide a lot more confidence that a game would eventually be completed, but also the increased awareness of scam-like or development going wrong has made people very wary of putting their own money on a game. And if your game failed to meet expectations, it’s <strong>game over</strong>; your now forever ruined public image would seriously affect sales of future projects you would be involved in.</p>
<h2 id="hardware-development-from-now-might-be-having-diminishing-returns">Hardware development from now might be having diminishing returns</h2>
<p>Do you feel like something is happening to next-gen games as of lately? Like, despite the technological advances of the latest in console gaming hardware, the games themselves are failing to live up to their expectations? Like it’s all ports of the previous generation? If you’ve answered “yes” to any of the questions above, you’re not alone.</p>
<p>I think there’s now enough room to start worrying about the fact that gaming hardware has become “too powerful”. <a href="./comic-tower-scope" target="_blank">Moore’s law applies to hardware, not software</a>. And it is my belief that we’ve reached the point where despite computers are becoming increasingly more powerful, <strong>it is no longer possible to come within grasping distance to the limit on what consoles are capable of</strong>. At least, not unless you have humongous resources and even still resort to unethical development environments.</p>
<p>However, expectations of players increase with each new generation of hardware. And unfortunately, their expectations have reached a hard glass ceiling with this current generation.</p>
<div><p><b>Yonic:</b> On that metric, the <strong>PlayStation 4 and Xbox One lie <em>very</em> close to the line of diminishing returns</strong>. I would personally not go beyond this.</p></div>

<p>But even still! This is precisely where I see a ray of hope within the darkness.</p>
<h2 id="konnichiwa-baby-japan-is-back">Konnichiwa, baby! Japan is back!</h2>
<p class="astro-m2ijcuns"><a href="/player/pokemon/bw2/route-4-spring" target="_blank" class="astro-m2ijcuns">Music: Route 4 (Spring)</a><i class="astro-m2ijcuns">(Pokémon Black &amp; White: Super Music Collection | Shota Kageyama)</i></p>
<p>The Eastern game industry hasn’t been affected as much in this wave of decline, because their economics work in a more conservative way than those from tech in the United States.</p>
<p>Take a look at Nintendo, for example. Instead of laying off employees, they resorted to <a href="https://www.gamesindustry.biz/nintendo-to-increase-wages-10-despite-lowered-forecast">actually increasing their salaries by 10%</a>. Japanese —and I think Korean companies as well— tend to operate very differently than those from the United States, and to a lesser extent European companies. Instead of valuing growth over anything else, they value <strong>resilience and a long-term but sustained growth</strong>, and one of the key factors for that resilience is workforce.</p>
<p>Whether it’s a sociocultural or a business managing aspect, it’s a fact that in Japan, workers are a vital part of any company, people consider the workplace “their second home”, and the actual legal action of firing people is massively restricted. This drives companies and game studios alike to keep the workers that they have, even at a loss.</p>
<div><p>&lt;Yonic&gt;</p><p>It’s worth noting, however, that Japanese companies <em>do</em> mass hiring of people, but these are usually students scheduled to graduate in spring in order to replace their oldest, retiring workers.</p><p>Due to the aging of Japanese population, young workers have become so valuable that most Japanese companies will primarily or almost exclusively hire people from the pile of new graduates, and compete <em>very</em> hard to recruit the most academically successful candidates.</p><p>Unfortunately this has the very nasty effect that once your “freshly graduate card” expires, you are incredibly less likely to find a job, which adds a lot to the importance of keeping your employees. Some black companies excuse their practices by reminding their workers that <em>they probably won’t find a job anywhere else</em>, too.</p><p>Because of the social problems that this century-old custom has brought (and especially after its mass use after the post-war Japanese economic miracle), the Japan Business Federation, with some of the largest companies in the country, said that they are “no longer required to practice this custom” in 2020.</p><p>But this isn’t an order nor law. <a href="https://www.hitachi.co.jp/recruit/en/newgraduate/select/info/index.html">Do you really think they’re gonna stop?</a></p><p>&lt;/Yonic&gt;</p></div>

<p>Instead of panicking and minimizing losses by panicking with damage controls, Japanese companies will generally accept the fact that hard times are coming, and prepare themselves in order to “at least not make it that hard” to be able to get up and kick off when times get better. This hardening-based culture generally makes companies less prone to collapsing, and instead have simply a flatter overall productivity.</p>
<p>Japanese studios also <strong>have it much easier to secure funding</strong> than studios in Western countries because they have other ways to get funding that aren’t as prominent in the West.</p>
<h3 id="method-1-trans-media-projects-and-the-production-committee">Method 1: Trans-media projects and the production committee</h3>
<p>A very large amount of games are actually <strong>trans-media projects</strong> handled by a <strong>production committee</strong>. This method of funding is also fairly common in Europe, but Japanese production committees tend to treat projects from the same IP equally, and get a more fair share of funds than with an European “main project and accompanying projects” model. In anime circles, production committees are seen rather controversial, but it’s still a major source of funding for many entertainment and merchandising industries alike.</p>
<p>While games aren’t a common sight in these committees, if a game publisher does become part of one, it would allow the studio working on the game to get piggybacked by this system, and not only get easy funding, but also obtain protections against losses should the project fail commercially, even if it means a more equal share of profits with the rest of projects —again, Japanese companies focusing on resilience rather than growth. Game studios themselves joining are way less common since they generally don’t have the capital to make a contribution in the committee.</p>
<p>In Europe, games aren’t usually the main project and the overall trans-media project tends to have a more limited funding and reach, so they typically tend to be of smaller scope and of less quality than Japanese ones.</p>
<h3 id="method-2-licensed-games-and-publishers">Method 2: Licensed games and publishers</h3>
<p>Other projects are usually <strong>licensed games commissioned by a publisher</strong>.</p>
<p>Licensed games were particularly notable in the United States industry until the 2000s, but publishers would outsource games for as many platforms as possible to other developers with minimal funding and tight deadlines, baking on the fact that brand recognition alone would sell the game. But this resulted in a huge amount of terrible quality games and their eventual demise in the 2010s, as game development became costlier and consumers became more informed on the industry as a whole.</p>
<p><b>YouTube video: </b> <a class="anchor" href="https://www.youtube.com/watch?v=E7lD97BxMN0" target="_blank" rel="noreferrer noopener">Extra Credits on licensed games in the United States</a> (8:09)</p>
<p>Japanese publishers, on the other hand, act in a similar way to Spanish licensed game publishers during its silver age with mobile games in the 2000s: Focusing on a single game and platform (or leveraging cross-platform if possible) and having a more respectful budget. Japanese developers also earn their trust with publishers through these commissions, allowing them to secure funding on their projects based on the developers’ own IPs.</p>
<div><p><b>Yonic:</b> It’s worth noting that this has nothing to do with where the original IP comes from, but rather where the publisher is based. Capcom —a Japanese company and publisher— has published many Disney titles that were significantly better in quality than other Disney licensed games.</p></div>

<h3 id="method-3-self-funding">Method 3: Self-funding</h3>
<p>Smaller and indie studios are also capable of funding their own projects because they tend to focus on games that are much smaller in technical scope: <strong>Visual novels</strong>. This allows them to make games with much less funding, while remaining somewhat able to generate a small profit.</p>
<p>However, not every visual novel developer seeks that: A particular category of games, “doujin software”, involves games that are based on existing IPs and made as a hobby rather than for profit. Most of these projects are made at a loss, but thanks to the strong market of fan-based projects, developers may expect to grow up to be successful later on.</p>
<p>While visual novels aren’t as notorious as they did in the early 2000s, they still account for a significant portion of the Japanese game market, and thanks to opening up to English and Chinese speaking markets, the visual novel industry is still holding on strong.</p>
<h3 id="the-dawn-of-new-hardware">The dawn of new hardware</h3>
<p>A promising prospect is that the Japanese economy seems to have been rebounding since the past couple of years (<a href="https://www.euronews.com/business/2024/08/23/trading-mixed-as-bank-of-japan-governor-warns-markets-are-unstable">although the Bank of Japan did make a cautionary warning for trade markets due to unstable foreign markets</a>) so it’s possible that the Japanese game industry could boost itself up again despite the hardships.</p>
<p>Unfortunately I don’t know about the Chinese and Korean game industries enough to provide more information about them, but it does seem like they may be going through good times as well.</p>
<p>For now, it all comes down to Nintendo’s next console. One of the reasons why I have bet for a <a href="../03/switch2-2025">powerful home console</a> as Nintendo Switch’s successor (and short-time companion) is partly because Nintendo needs to compete with Microsoft and Sony with their Xbox Series and PlayStation 5, and the economy of Japan seems to be at a very adequate time to strike hard with a powerful system.</p>
<p>But this is <strong>absolutely not what I want!</strong> This would place the bar for AAA games <em>above the diminishing returns point</em>, and both AAA and even AA studios would feel pressured to scale up their scope in projects to meet up with hype and expectations. In other words — this spells an unsustainable hell.</p>
<p>Rather, I’d prefer Nintendo to go another route, and actually release a <strong>Switch 2</strong>, and be something comparable to a PlayStation 4 Pro or an Xbox One. This would make them leave the <strong>overly engineered home console market</strong> and dive deep into the <strong>affordable hybrids</strong> market such as the Steam Deck and Asus ROG Ally. I wouldn’t ask for more. The fact that they plan to flood the market with the gaming system in order to fight with scalpers makes me think a little bit that they could be taking this strategy, but as I discussed in <a href="../03/switch2-2025">a previous post</a>, there are several reasons that make me think otherwise…</p>
<center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fgames-aaa-stagnation%2Fmy_tweet.png&amp;w=400&amp;h=165&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="400" height="165" alt="A post I made on X about the current situation of gaming" style="width:100%;height:auto" loading="lazy" decoding="async">This second half of the year and the first quarter of 2025 are by far going to be of upmost importance in the gaming industry ever since the beginning of the HD era!</div></center>]]></content>
    </entry>
        <entry>
            <title>Inked thoughts: The Tower of Scope</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/08/comic-tower-scope</id>
            <link href="https://www.yonic.blog/blog/article/2024/08/comic-tower-scope" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/08/comic-tower-scope" />
            <summary><![CDATA[ Games were easier to make in the past. ]]></summary>
            <published>2024-08-23T15:58:03.761Z</published>
            <updated>2024-08-23T15:58:03.761Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fcomic-tower-scope%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><div class="feed-preview"><a href="https://yonic.blog/file/img/blog/art/comics/inked-thoughts/tower-scope.png" target="_blank" rel="noreferrer">Click here for full image</a><center><div style="width:400px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2Fart%2Fcomics%2Finked-thoughts%2Ftower-scope.png&amp;w=400&amp;h=1120&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="400" height="1120" alt="Comic page" style="width:100%;height:auto" loading="lazy" decoding="async">My game projects are all located at 100 parsecs away.</div></center></div>]]></content>
    </entry>
        <entry>
            <title>The rise and fall of web profile customization</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/08/web-profile-customization</id>
            <link href="https://www.yonic.blog/blog/article/2024/08/web-profile-customization" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/08/web-profile-customization" />
            <summary><![CDATA[ Before the 2010s, you were able to customize your profile pages however you pleased. Not anymore. ]]></summary>
            <published>2024-08-15T08:40:09.129Z</published>
            <updated>2024-08-15T08:40:09.129Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fweb-profile-customization%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><div class="feed-preview"><p>If you were to browse the Internet in its early days, you will encounter it <em>very</em> different from what it is today. Several websites would offer the possibility to customize parts of your own profile, allowing you to express yourself in the way you wanted and be creative in your personal web space.</p><p>But that is now a shadow of the past: Standardization and a “more corporate look” are seemingly now the norm. But why is this? I will explain it in depth in this post.</p></div>
<p>In short, there are several reasons why the Internet began its transition to what it is now, and despite what many people may think, the big player is not actually because of “corporate greed”.</p>
<h2 id="how-customization-is-achieved-in-the-first-place">How customization is achieved in the first place</h2>
<p class="astro-m2ijcuns"><a href="/player/kirby/64/pop-star" target="_blank" class="astro-m2ijcuns">Music: Pop Star</a><i class="astro-m2ijcuns">(Kirby 64 | Jun Ishikawa)</i></p>
<p>Before we can begin outlining the reasons, we need to understand how making the look of a webpage is achieved in the first place.</p>
<p>Back when the World Wide Web started taking its first steps, we already had one of its corner stones already settled: HTML, a markup language that allowed your browser to display content from the web in a rather standardized way. This allowed you to create simple layouts for your pages, and a bit later, allowed you to make certain customizations such as changing the text color or the background images.</p>
<p>Customization would evolve to the next level with the introduction of CSS, which allowed to further customize HTML elements, their layout, and eventually, even make custom cursors and animations.</p>
<p>But these would remain static pages with no changes whatsoever, unless you used PHP or something similar to generate personalized HTML on demand, and even still, it wouldn’t be interactive apart from links to other pages. But during the 2000s, JavaScript eventually came into play to provide interactivity to websites by modifying the HTML and CSS of a page.</p>
<div><p>&lt;Yonic&gt;</p><p>The conjunction of all of these technologies was given the name of <strong>Dynamic HTML (DHTML)</strong>, and it was somewhat feared by novice developers because in the early days browsers had their own ways of implementing JavaScript and CSS.</p><p>Nowadays websites are pretty much expected to have HTML, CSS and JavaScript, and all of these have become standardized for the most part, so the DHTML term has fallen out of use.</p><p>&lt;/Yonic&gt;</p></div>

<p>By adding the possibility to add your own HTML, CSS and JavaScript, you could essentially change the style and outlook of the page, especially with the latter two.</p>
<h2 id="custom-scripting-is-dangerous">Custom scripting is dangerous</h2>
<p>Very early on, one of the first restrictions that were put in place when adding customization capabilities is the <strong>automatic removal of <code>&lt;script&gt;</code> HTML tags</strong>. These tags are the main way for you to place JavaScript code on a page —and depending on the point in time, you could use some other scripting languages too— in your page.</p>
<p>There’s a whole plethora of vulnerabilities that revolve around tricking the servers into injecting your own code, because any opportunity of doing this opens floodgates for malicious code to be run. When you can just outright add your own scripts because the tag is not filtered out, there’s nothing stopping you from putting in malicious code to do some treachery on your visitors, so it’s like having no floodgates at all.</p>
<p>At first, MySpace didn’t have this restriction when they accidentally added the ability for you to add your custom HTML. While most pages would be really creatively put together, some of them could be crafted with harmful code to say, install a virus or <a href="https://www.youtube.com/watch?v=SJFe9AxFR3k">wreck havoc on your screen</a>.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fweb-profile-customization%2Fneopets_site.png&amp;w=700&amp;h=442&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="442" alt="Custom HTML in Neopets" style="width:100%;height:auto" loading="lazy" decoding="async">Websites like Neopets quickly started filtering out potentially malicious HTML, mainly <code>&lt;script&gt;</code> tags.</div></center>
<p>Thankfully CSS was able to give you some slack, because you could add some “interactivity” with <strong>pseudo-classes such as <code>:hover</code> and <code>:active</code></strong>, so you didn’t need JavaScript to make interactive UI. In fact, The Yonic Corner remains somewhat interactive even with JavaScript disabled.</p>
<h2 id="the-rise-of-responsive-layouts">The rise of responsive layouts</h2>
<p>The main limitation that HTML had in its starting days was the fact that it was <strong>very rigid</strong>. It would look the same no matter how the size of the browser window was. This created a problem in which content would spill over the window if it was small enough, requiring you to scroll the window. This was okay for vertical scrolling, but horizontal scrolling was more obnoxious.</p>
<p>At first, it wasn’t much of a problem because the web was mostly browsed from a computer screen, and they had roughly the same size, aspect ratio and pixel density, so screen resolutions were mostly the same. However, it was still relevant enough that some websites would display messages like “looks best on a 1024 x 768 resolution”.</p>
<p>It became a more notorious problem once phones became capable of browsing the web, and especially with the rise of smartphones, since they would have way more different aspect ratios, display sizes and eventually even pixel densities.</p>
<div><p><b>Yonic:</b> Thank you, Apple. Your Retina display started all this.</p></div>

<p>This led to the creation of solutions to create <strong>responsive layouts</strong>. CSS first started with <code>@media</code> queries that allowed different layouts depending on the screen size. Later on, intrinsically flexible layouts would become much easier and way better to make with CSS’s flexbox and grids, among other things, which would become quintessential to make layouts that could work at any resolution.</p>
<p>However, because these CSS features are a late addition, this is not the default behavior of HTML. This was done in order to maintain backwards compatibility with older websites. If the user who wanted to customize something was not aware of the responsive layouts, whatever layout they would create would most likely be not flexible by default, so if one were to add their own HTML and CSS, they could very easily be set in a way that would either conflict with, or completely break the already set up layout.</p>
<p>This caused websites to begin following a “mobile-first” approach to their design, one that would be friendly to smartphones at first, and then gracefully change the layout as the viewport of the browser got wider. Standardizing the layout severely limited the way one could add, move, replace and remove HTML elements.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fweb-profile-customization%2Fyoutube_2010.png&amp;w=700&amp;h=679&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg" width="700" height="679" alt="YouTube in 2010" style="width:100%;height:auto" loading="lazy" decoding="async">YouTube channels in the late 2000s could still be customized, but only certain stuff could, such as the background base color and images and the position of certain sections, but you couldn’t add your own stuff in. And even this particular layout was not responsive!</div></center>
<h2 id="scalability-issues">Scalability issues</h2>
<p>Although this was a smaller issue, it’s still relevant to this day. All of these customizations had to be stored somewhere and loaded in apart from the core website’s design. Depending on the infrastructure, this could make pages prone to undesirable effects such as flashes of unstyled content, <span style="background:white;font-family:serif;color:black;">where layouts will break, everything is on a white background and the text is black with an ugly serif font.</span></p>
<p>Images were also a big problem. They usually were hosted on an image hosting service such as ImageShack and were usually left unprocessed. If they were large, they could severely affect the bandwidth and cause loading issues. Also, most image hosting services would remove the images if not accessed after some time, leading to broken images if they were not used a lot.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fweb-profile-customization%2Ftinypic.png&amp;w=700&amp;h=427&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="427" alt="Images hosted on TinyPic were removed" style="width:100%;height:auto" loading="lazy" decoding="async">Some image hosting sites would infamously show a generic placeholder image for those images that have been automatically removed.</div></center>
<p>Nowadays images are preprocessed to modern, more lightweight formats and optimized, and cached so that the load isn’t as heavy. While this in itself makes no limitations on what kind of images can you use, they do have their own shortcomings that limit the number of how many images can you upload.</p>
<h2 id="the-rise-of-web-apps">The rise of web apps</h2>
<p class="astro-m2ijcuns"><a href="/player/gt4/gt-mode-2" target="_blank" class="astro-m2ijcuns">Music: GT Mode 2</a><i class="astro-m2ijcuns">(Gran Turismo 4 | Isamu Ohira)</i></p>
<p>Since Flash and HTML5, websites have become way more interactive than ever, and with that, browsers have become the second most versatile pieces of software apart from a full fledged operating system.</p>
<p>This has given browsers the potential to run websites as if they were real applications, which developers found <em>very</em> attractive thanks to the fact that websites could be displayed anywhere, regardless of the operating system or device you were using.</p>
<p>The culmination of such process became true with the rollout of Progressive Web Apps, which allowed websites to behave much like a native application on your PC or phone. You could also throw in UI frameworks for highly interactive user interfaces that would make your website come close to the performance of a native app.</p>
<p>But this clashed with customization in two ways:</p>
<ul>
<li>If you added custom HTML and CSS, it would most likely be unable to interact with whatever reactive components you had with your UI framework unless the web developer added a functionality for that, <strong>which comes at the hefty cost of being way less secure.</strong></li>
<li>Apps generally have a UI that is mostly consistent with a design idea and tries to provide a good user experience; allowing for custom CSS to change this could alter these in a harmful way.</li>
</ul>
<p>It also didn’t help that at this time accessibility guidelines were starting to be set in place, which discouraged taking certain “creative approaches”.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fweb-profile-customization%2Fblissos.png&amp;w=700&amp;h=355&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="355" alt="BLISS OS blog screenshot" style="width:100%;height:auto" loading="lazy" decoding="async">Sure, this site screams “pink kawaii glitter” which I found a bit endearing, but this is also accessibility hell. Even a non-colorblind person such as myself can struggle to make out the sidebar.</div></center>
<p>CSS libraries would also begin showing up, first with Bootstrap, and later on with Tailwind CSS, that helped making websites look and act like apps, albeit with the cost of having to remain somewhat consistent.</p>
<h2 id="addressing-the-ads-problem">Addressing the ads problem</h2>
<p>Lastly, let’s discuss the elephant in the room: Why do people say that advertisers prefer a more “corporate” looking website?</p>
<p>One of the common remarks is that having a set layout allows advertisers to get a good idea where their ads will go, how much space will it take, etc. And yes, that is a valid point. One can easily hide away them with CSS or disable altogether with JavaScript, like this:</p>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><span class="filename astro-c6nuo4je"><img width="16" height="16" alt="css" src="/img/icons/filetypes/file_type_css.svg" class="icon astro-c6nuo4je">adRemoval.css</span><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" data-language="css"><code><span class="line"><span style="color:#6F42C1">.ad</span><span style="color:#24292EFF"> {</span></span>
<span class="line"><span style="color:#1976D2">    display</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> none</span><span style="color:#24292EFF">;</span></span>
<span class="line"><span style="color:#1976D2">    visibility</span><span style="color:#D32F2F">:</span><span style="color:#1976D2"> hidden</span><span style="color:#24292EFF">; </span><span style="color:#C2C3C5">/* A bit overkill. */</span></span>
<span class="line"><span style="color:#24292EFF">}</span></span></code></pre></div></div>
<div class="code-block dark astro-c6nuo4je" data-button-label="Copy code"><span class="filename astro-c6nuo4je"><img width="16" height="16" alt="js" src="/img/icons/filetypes/file_type_light_js.svg" class="icon astro-c6nuo4je">adDisabling.js</span><div class="astro-c6nuo4je"><pre class="astro-code min-light astro-c6nuo4je" style="background-color:#ffffff;color:#24292eff; overflow-x: auto;" tabindex="0" data-language="js"><code><span class="line"><span style="color:#D32F2F">const</span><span style="color:#1976D2"> ads</span><span style="color:#D32F2F"> =</span><span style="color:#24292EFF"> [</span><span style="color:#D32F2F">...</span><span style="color:#1976D2">document</span><span style="color:#6F42C1">.querySelectorAll</span><span style="color:#24292EFF">(</span><span style="color:#22863A">'.ad'</span><span style="color:#24292EFF">)];</span></span>
<span class="line"><span style="color:#D32F2F">for</span><span style="color:#24292EFF">(</span><span style="color:#D32F2F">const</span><span style="color:#1976D2"> ad</span><span style="color:#D32F2F"> of</span><span style="color:#24292EFF"> ads) {</span></span>
<span class="line"><span style="color:#1976D2">    ad</span><span style="color:#6F42C1">.remove</span><span style="color:#24292EFF">();</span></span>
<span class="line"><span style="color:#24292EFF">}</span></span></code></pre></div></div>
<div><p><b>Yonic:</b> This is basically what ad blockers do, by the way!</p></div>

<p>This is the most straightforward way, although there are more creative ways to hide them. But alas, this isn’t the main reason. <strong>There is no such thing about websites becoming more “corporate”.</strong> It’s a bit of a misnomer.</p>
<p>What’s actually happening is <strong>standardization of a design language</strong>. Now we treat parts of a page with common lingo such as “hero”, “call to action”, “statistics” or “feature”. Now it’s all about <strong>consistency</strong>, which is something that’s typical from an application: You want its features and user interface to behave in a consistent manner.</p>
<p>On July 2024, of the top 25 most visited sites (source: <a href="https://www.similarweb.com/top-websites/">Similarweb</a>), 15 of them are web apps. This goes to show how important consistency has become in the past few years. Google’s search engine also tends to favor sites with a consistent semantic design (the HTML has all of that lingo mentioned above), so everyone tends to follow very similar design patterns because of search engine optimization (SEO).</p>
<p>But that doesn’t mean you can still be artsy! However, it’s a fact that your SEO will get harmed this way because these designs tend to be more “niche” and “out of the norm”.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fweb-profile-customization%2Fbreak-away.webp&amp;w=700&amp;h=450&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="450" alt="Redesign of a website done by a student" style="width:100%;height:auto" loading="lazy" decoding="async">Several modern websites break away from the “corporate aesthetic” by not going with the standards. Some look really original, even if it sacrifices legibility.</div></center>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F08%2Fweb-profile-customization%2Fzara.png&amp;w=700&amp;h=352&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=jpg" width="700" height="352" alt="Zara's new website" style="width:100%;height:auto" loading="lazy" decoding="async">In a more recent example on the other hand, some who try to be more “avant garde” can end up with horrible results. What were they thinking here!? It’s almost as if we’ve forgotten how to do things out of the norm.</div></center>
<p>But if there’s one thing that’s become obvious is that we’re far from that moment where the Web was still figuring itself out. Companies would do their best to fit their branding on the web, while there was still room for customization. As Internet became a new way to do commerce, <strong>consistency became more important than the flexibility of customization</strong>, and since they go hand in hand, <strong>the overall branding favored over the individual expression</strong>.</p>
<p>I can understand how these phenomena can be confused with “corporate greed”. But in an objective sense, I do think the pros of lack of customization outweigh the cons, especially in times where new web features come and go really quickly. While people tend to follow standards even if you do provide customization, not everyone does, and those intrusive designs can hinder your experience on a website.</p>
<p>And yes, I also understand that this also hampers freedom of self-expression. <strong>Tumblr was probably the best example of all time in terms of web customization</strong>: Restricted yet flexible enough to do almost whatever you wanted. But I’m a hard advocate that freedom of expression should end where the freedom of someone else begins, something that the current Internet doesn’t seem to understand. <strong>Be mindful of what you’re making!</strong></p>
<p>But nevertheless, I still wish for customization to make somewhat of a graceful return. It’s cool that graphic and web designers can have their own way of self-expression for their portfolios and all, but I also would love to see the resurging of being able to do it in a more casual basis.</p>]]></content>
    </entry>
        <entry>
            <title>The Yonic Corner is now self-hosted</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/08/self-hosted-blog</id>
            <link href="https://www.yonic.blog/blog/article/2024/08/self-hosted-blog" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/08/self-hosted-blog" />
            <summary><![CDATA[ Away from the cloud we go! ]]></summary>
            <published>2024-08-07T11:11:36.703Z</published>
            <updated>2024-08-07T11:11:36.703Z</updated>
            <content type="xhtml"><![CDATA[<p class="astro-m2ijcuns"><a href="/player/paper-mario-ttyd/chara" target="_blank" class="astro-m2ijcuns">Music: Teaching new stuff!</a><i class="astro-m2ijcuns">(Paper Mario: The Thousand-Year Door)</i></p>
<div class="feed-preview"><p>Previously, The Yonic Corner was being hosted on Netlify —and Github Pages in the case of the Legacy version. It used to be pretty convenient to write content and deploy it there, but as I was approaching certain limitations, I decided to make the switch back to a self-hosted environment.</p><p>The performance of the blog might not be on par with when it was on the cloud, but I’ll be working on optimizing it little by little.</p></div>
<h2 id="running-out-of-space">Running out of space</h2>
<div><p><b>Yonic:</b> Lately I’ve just been worried about running out of space altogether on any digital storage I own, honestly…</p></div>

<p>The main problem that I had was that GitHub Pages has a hard limit of 1 GB in storage. For most small scoped sites, this shouldn’t be much of a problem. But in my case, it was my personal blog, and while text is pretty easy to compress and make thousands of pages without even coming close to that limit, <strong>media could potentially do that</strong>.</p>
<p>Especially if we’re dealing with optimized responsive images! Most images in the modern version of my site come in multiple sizes for PC and mobile screens, and multiple formats for backwards compatibility. Add that to the fact that Astro keeps a copy of the original image, and it’s a recipe for a bloated image cache, some of which wouldn’t be used at all.</p>
<p>An image CDN could work marvels for this situation, but I was a bit skeptical on those to work well, especially because of the reason below.</p>
<h2 id="watch-out-for-https">Watch out for HTTPS!</h2>
<p>In a previous post, <a href="/blog/article/2024/02/legacy-death">I talked about how pages have begun breaking because HTTPS support for legacy systems is being dropped</a>. I’m expecting that GitHub Pages may be doing the same thing in the near future should they begin enforcing mandatory HTTPS on all their pages. <strong>This would render the Legacy Version of this blog useless</strong>. It was designed with old operating systems in mind, after all!</p>
<p>And this also applies to what I was talking about before: Normally I would be okay with just using an image CDN, but all of these networks work under HTTPS in a way that only modern systems can understand.</p>
<p>This has eventually forced my hand: I needed to self-host my own blog. That way, I’d have full control over what I want to do. I could even set up a cipher suite specifically for the legacy blog, so you could browse the legacy blog in HTTPS while in an old system!</p>
<div><p>&lt;Yonic&gt;</p><p>But is HTTPS really that necessary here? This blog is nothing but a static site. You’re not really sending anything to the server other than plain GET requests, and the contents of this site aren’t the slightest sensitive nor illegal.</p><p>If privacy is of concern, you could just set up a Tor network connection and be done with it. But again: Static pages can’t even use cookies nor session tokens, at least not directly; if the request doesn’t come with anything regarding authentication you won’t be able to learn that much about your readers anyway.</p><p>&lt;/Yonic&gt;</p></div>

<p>The blog also works as a reverse proxy server to another program that optimizes and caches images on demand, so I can show the images regardless of whether you’re using regular HTTP or HTTPS. Plus, I can shove in a storage bucket to have virtually limitless —and cheap— storage space for my blog.</p>
<p>However, this is not without its drawbacks. Since I’m hosting it myself, all maintenance tasks are on me as well. I still have work to be done to optimize the server, to automatize updating the blog, and to tidy up the API for remote images, which is a total mess right now, let alone a rudimentary solution. So until then, do expect some slowdowns!</p>]]></content>
    </entry>
        <entry>
            <title>What does the Moon look like at the equator?</title>
            <author>
                <name>Yonic</name>
            </author>
            <id>https://www.yonic.blog/blog/article/2024/07/moon-shapes</id>
            <link href="https://www.yonic.blog/blog/article/2024/07/moon-shapes" />
            <link rel="alternate" type="text/html" href="https://www.yonic.blog/blog/2024/07/moon-shapes" />
            <summary><![CDATA[ The Moon looks upside down in the southern hemisphere compared to the northern one. But what about the equator? ]]></summary>
            <published>2024-07-14T16:55:08.130Z</published>
            <updated>2024-07-14T16:55:08.130Z</updated>
            <content type="xhtml"><![CDATA[<figure><img alt="Cover image" src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F07%2Fmoon-shapes%2Fhero.png&amp;w=550&amp;h=310&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=90&amp;output=jpg"><figcaption></figcaption></figure><p class="astro-m2ijcuns"><a href="/player/space-engine/moon" target="_blank" class="astro-m2ijcuns">Music: The Moon</a><i class="astro-m2ijcuns">(Space Engine | Ashterra)</i></p>
<div class="feed-preview"><p>If you’ve seen books about astronomy, you may have come with a passage similar to this: The Moon looks upside down in the southern hemisphere compared to the northern one. But what about the equator? Clearly there must be something in between if it’s in the middle of the two hemispheres, right?</p></div>
<p>But if you search for this question on the Internet, you won’t find much detailed information about it. So I decided to provide a detailed explanation as to what it looks like and why.</p>
<div><p><b>Yonic:</b> Just a disclaimer: I don’t want to run into hot debates about the shape of the Earth, so I’ll just say that this takes into consideration the nearly universally accepted round model in which the Earth is a sphere.</p></div>

<p>To lay the groundwork, many people are aware of the <strong>phases of the Moon</strong>, which are caused by how the half of the Moon lit by the Sun changes as it orbits the Earth. If one were in space above the orbital plane of the Earth while its northern hemisphere faces up, <strong>the Moon would look as if it were to be orbiting the Earth in a counter-clockwise motion</strong>.</p>
<p>Because of this, the <em>waxing crescent</em> and its following quarter (the 1st), in the northern hemisphere will look like the letter D, while in the southern hemisphere it will look like a letter C. If the orbit were to be clockwise, it would be the other way around.</p>
<p>In Spanish there is a really interesting mnemonic for this:</p>
<ul>
<li>In the northern hemisphere, the Moon is a liar. This is because the 1st quarter is called <strong>cuarto <u>c</u>reciente</strong> (quarter increasing in size to full moon), but it will have a D shape. When it has a C shape, it’s called <strong>cuarto <u>d</u>ecreciente</strong> (quarter decreasing in size to new moon).</li>
<li>In the southern hemisphere, the Moon always tells the truth, because an upside down <strong>cuarto <u>c</u>reciente</strong> looks like a C, and an upside down <strong>cuarto <u>d</u>ecreciente</strong> looks like a D.</li>
</ul>
<p>Since the Moon is just rotating 180° when we change hemispheres, it’s safe to assume that in the equator it’d make a 90° turn, right?</p>
<p>But that rises the question: <strong>Which way?</strong> It could be a clockwise rotation, in which case a waxing crescent would look like a smile; or a counter-clockwise one, where it would look like a frown. So which one is it?</p>
<div><p><b>Yonic:</b> The short answer is… <em><strong>Both!</strong></em> It depends on <em>when</em> you’re looking at the waxing crescent Moon while it moves across the sky. At moonrise, it looks like a frown. At moonset, it looks like a smile.</p></div>

<p>The long answer doesn’t require understanding orbital dynamics or any other kind of complicated physics: <strong>It’s just geometry</strong>.</p>
<center><div style="width:700px"><img src="https://media.yonic.blog/?url=https%3A%2F%2Fyonic-corner-public.s3.eu-central-003.backblazeb2.com%2Fimg%2Fblog%2F2024%2F07%2Fmoon-shapes%2Fmoonrise.png&amp;w=700&amp;h=394&amp;fit=inside&amp;a=center&amp;we=1&amp;quality=0&amp;output=png" width="700" height="394" alt="Moonrise and moonset with waxing crescent" style="width:100%;height:auto" loading="lazy" decoding="async">One of the key facts is that no matter where you’re at along the equator line, the Moon will always rise and set in nearly the same opposing orientations.</div></center>
<p>Why? Because <strong>the Earth rotates counter-clockwise</strong> around a stable axis, from west to east. The axis <em>does</em> drift, but this motion is so slow and tiny that it doesn’t have much of an effect in our day to day lives —it’d take hundreds to thousands of years for it to have made a significant change.</p>
<p>From Earth, we see objects in the sky rising from the east and setting at the west, making a clockwise motion as they scour it. The reason the direction of movement is the opposite is because when moving alongside the Earth’s surface, from our perspective the surface remains static, while the sky moves. A bit like when riding a car, bus or train and the background outside the vehicle seems to be moving backward, while it’s the vehicle that moves forward.</p>
<p>If one were to be constantly looking at the Moon from the equator as it moved towards the sky (for clearance’s sake, let’s call this Earth observer), at one point it’d make a sharp 180° turn once it passes above the Earth observer’s head. This is because from someone outside the Earth’s perspective (let’s call them the space observer), the Earth observer would’ve flown past the Moon, and unless they’d have impressive limbo skills, the Earth observer would have to turn around to continue seeing the moon, flipping the picture as a result.</p>
<center><div style="width:700px"><img src="http://yonic-corner.vulpes.life/static/img/moon-shapes/moon-track-opt.gif" width="700" height="391" alt="Moonrise and moonset with waxing crescent" style="width:100%;height:auto" loading="lazy" decoding="async">A visualization of how the Moon sharply turns as it goes above the Earth observer’s head, in this case a Yoshi. The Moon is never turning around, <strong>Yoshi does</strong>. The red and blue arms represent the North and South directions from Yoshi’s perspective, respectively. (The apparent libration is due to the diagram not being at scale)</div></center>
<p>This effect remains visible in places away from the equator, but it’s more of a gradual change and not a very sharp turn. This is because at the equator, the Moon will pass by really close to the zenith —the point in the sky directly above an Earth observer’s head— but as you go closer to one of the Earth’s poles, the Moon won’t reach as high in the sky since you’d be looking at it at an angle and not directly perpendicular to the ground, and it will go past your head at a slower pace.</p>
<div><p><b>Yonic:</b> Plus, the Moon will drift slightly towards the north or south, depending on the latitude and the phase it’s currently at. Calculating how far did the Moon and Sun rise from the horizon at a given time of the year is how people used to figure out the latitude they were at before GPS was a thing!</p></div>

<p>Add the fact that near the poles the axis of rotation of the Earth will get closer to the zenith, so things closer to the horizon will hardly experience any rotation; and you get an explanation of why the Moon hardly rotates as you move further away from the equator.</p>
<p>But as I was researching this, another question surfaced my mind: <strong>How does the Moon rotate as you get closer to the equator?</strong> If one were to look at the orientations of the Moon from different latitudes, one would assume that it’d be rotating counter clockwise as the latitude decreases, and clockwise as it increases. <strong>But this is not completely correct.</strong></p>
<p>The actual answer is a bit more complicated. Essentially, when we move strictly south or north, the entire celestial sphere will rotate in the East-West axis. Looking directly eastward, the sky will appear to rotate counter-clockwise, and clockwise if you look to the west. But <strong>the cardinal directions are points on the Earth’s surface, not the sky</strong>. This means that as the Earth rotates, the cardinal directions will remain in the same place, while anything in the celestial sphere —like the Moon— will move from east to west. When the Moon is close to the East, it will rotate counter-clockwise as latitude decreases, and clockwise as it increases, as stated above. <strong>But if it’s on the West, this motion is flipped</strong>.</p>
<p>If you were to change your latitude and eventually cross one of the poles, your longitude would rotate 180°, switching the opposing cardinal directions. Once you cross the pole you can further increase or decrease your latitude and move the sky in the same axis of rotation, but what was on the west is now on the east, essentially flipping the way they rotate.</p>
<p>All of this “it’s the opposite, actually” being repeated over and over again might confuse you quite a bit, so I recommend simulating how the Moon changes in <a href="http://stellarium.org/">Stellarium</a> whilst changing the latitude. But ultimately, all of these motion dynamics work in unison so that no matter where in the equator and at which day of the year you look at, <strong>the waxing crescent moon looks like a frown at moonrise, and a smile at moonset</strong>, and the opposite when it’s a waning crescent.</p>]]></content>
    </entry></feed>