<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Charadon's Blog</title>
<link>https://www.iotib.net/blog.php</link>
<description>The Official Blog of Charadon.</description>
<item>
<title>Why I Despise the Steam Client</title>
<description><![CDATA[<p>First, I want to say that this is about the Steam <strong><em>Client</em></strong>, not Valve or Steam the company. I actually like Valve quite a lot. However their stupid ass client pisses me the fuck off. So I shall go down the list of problems I have with Steam's client.</p>
<h2>1. Chromium</h2>
<p>Probably my least severe issue with Steam, I use plenty of Electron and CEF applications that are good. The only thing I don't like about them is the amount of RAM they use, and that goes for the Steam Client too. So out of the gate, Steam is already a RAM hog. I wish however, that was it's only issue...</p>
<h2>2. Decompression</h2>
<p>Have you ever been using your computer and all the sudden is slows down to an absolute crawl. There's a good chance it's because of Steam's stupid as fuck compression system for Downloads.</p>
<p>The downloads themselves aren't the worst, but once they're actually <em>finished</em> downloading, the client decides it's a <strong>great</strong> idea to use ALL your fucking cores and threads to decompress the game. And no, you cannot set the number of cores it uses.</p>
<p>This wouldn't be so much of a problem if it was a fast algorithm like <code>gzip</code> or <code>lz4</code>, however whatever algorithm they use is <em>SLOW</em>, like, LZMA slow (Which is what I think it's using), so it'll use your cores for a longer time than it needs to. And if it is LZMA/xz, that's absolutely fucking idiotic. Most games consist of mostly <em>binary</em> files, they aren't going to have good compression ratios to begin with. So just use the fastest algorithm valve!</p>
<h2>3. Fossilize</h2>
<p>Have you ever been using your computer and... you get the idea. Valve decides it's a great idea to enable Fossilize by default. What's Fossilize? It's a Vulkan shader """background""" processor. Just like with the Download decompression, valve has decided it's a <strong><em>fantastic</em></strong> idea to use all your cores and threads. At least with this, you can turn it off, and only have do it before launching a game.</p>
<h2>4. Auto-updates</h2>
<p>I hate auto-updates. They slow my network to a crawl, and most importantly you <strong><em>CAN'T TURN THEM OFF</em></strong>!!! Why in the fuck can I not turn it off?! I guess I'm fortunate I have gigabit internet, but I guess fuck all the people with slow internet. The only way to stop it is to either close the client, or make a conscious effort to pause the downloads every day. Stupid as hell.</p>
<h2>5. The Store</h2>
<p>This used to be a bigger problem. Nowadays on Steam, there are a lot of porn games. That's fine and dandy I guess, I don't understand anyone who is dumb enough to actually pay for porn, but it's not my money. The problem is that you used to only be able to filter nudity. Like, it was a binary thing, you either were shown no games with nudity or ALL games with nudity. And with games being more open to showing a tit/dick or two every once and a while (Not necessarily in a sexual way.), it meant I had to leave nudity on or I could miss out on some cool games just because at one point it showed a boob. </p>
<p>Nowadays they have an option to <em>not</em> to filter games with nudity where sexual content isn't the focus. So, bye bye Sakura games! Won't miss you!</p>
<p>But of course, another issue with the store is that it's full of shovel-ware. It's easy to figure out what is, and isn't shovel-ware, but it still wastes my time.</p>
<h2>6. DRM</h2>
<p>You don't actually <em>own</em> any of the games on Steam. Not much more to be sad about it. I encourage indie developers to also put their games on Itch or GOG.</p>
<h2>In Conclusion</h2>
<p>I hate the steam client. It has only gotten worse and more bloated as the years has gone on. It's at the point where Steam is no longer an essential piece of software I install on all my computers. Hell, I barely even launch it anymore, due to all the problems above. Even as I type this, Steam is using 1.8 Gigabytes of RAM doing... nothing. Fuck this software.</p>]]></description>
<link>https://www.iotib.net/blog.php?id=12</link>
<pubDate>Thu, 07 Dec 2023 18:36:12 UTC</pubDate>
</item>
<item>
<title>How to use 12-hour clock on Gnome Clocks outside of Gnome</title>
<description><![CDATA[<p>The solution is pretty simple, open <code>dconf-editor</code> and navigate to: <code>/org/gnome/desktop/interface/clock-format</code> and change the value to <code>12h</code> from <code>24h</code>.</p>
<p>That's pretty much it. Only posting it here because it's pretty hard to find this information, so maybe a search engine will pick it up =P</p>]]></description>
<link>https://www.iotib.net/blog.php?id=11</link>
<pubDate>Thu, 05 Oct 2023 15:28:09 UTC</pubDate>
</item>
<item>
<title>Why I didn't use libadwaita for EarthDragon</title>
<description><![CDATA[<p>Preface: I respect the work that the developers have put into libadwaita, and
this is in <strong><em>no way</em></strong> a hit piece or a criticism of the library. Please do
not use this post as propaganda against libadwaita.</p>
<p>So, this is something I want to write so I can link to it in the future, and
it's about: <em>Why didn't I choose libadwaita for EarthDragon?</em></p>
<p>A lot of it comes down to the fact that there's only <em>two</em>, yes, <em>two</em> widgets
from libadwaita that I find useful <strong>and</strong> needed. The others are, while stylish and
aesthetically pleasing, not useful. Matter of fact, i'll categorize them below
in a simple table!</p>
<ul>
<li>SNU = Stylish, but Not Useful.</li>
<li>EU  = Extremely Useful.</li>
<li>U   = Useful.</li>
<li>UNN = Useful, but Not Needed.</li>
<li>GC  = Gnome Centric.</li>
<li>NU  = Not Useful.</li>
</ul>
<table border="1px">
    <tr>
        <td><b>Widget</b></td>
        <td><b>Ranking</b></td>
    </tr>
    <tr>
        <td>Leaflet</td>
        <td>SNU</td>
    </tr>
    <tr>
        <td>Clamp</td>
        <td>UNN</td>
    </tr>
    <tr>
        <td>Lists</td>
        <td>UNN</td>
    </tr>
    <tr>
        <td>View Switcher</td>
        <td>SNU</td>
    </tr>
    <tr>
        <td>Avatar</td>
        <td>GC</td>
    </tr>
    <tr>
        <td>Flap</td>
        <td>UNN</td>
    </tr>
    <tr>
        <td>Tab View</td>
        <td>EU</td>
    </tr>
    <tr>
        <td>Buttons</td>
        <td>NU</td>
    </tr>
    <tr>
        <td>Style Classes</td>
        <td>U</td>
    </tr>
    <tr>
        <td>Toasts</td>
        <td>SNU</td>
    </tr>
    <tr>
        <td>Animations</td>
        <td>SNU</td>
    </tr>
    <tr>
        <td>Dialogs</td>
        <td>NU</td>
    </tr>
    <tr>
        <td>About Window</td>
        <td>SNU</td>
    </tr>
</table>

<p>As you can see, I find most of the widgets, while very stylish, ultimately
useless for my needs. The only widget I find useful is the TabView, which
in my opinion should be in GTK4 or GTK5 (Please, pretty please).</p>
<p>So that's basically it, ultimately, libadwaita was just, well, <em>not needed</em>,
that's it, there's no other reason. Hell, the only reason i'd link with it is
for the TabView widget, and that's literally it.</p>]]></description>
<link>https://www.iotib.net/blog.php?id=10</link>
<pubDate>Fri, 19 May 2023 20:17:11 UTC</pubDate>
</item>
<item>
<title>Why I Think Slackware is Awesome!</title>
<description><![CDATA[<p>In my last blog post, I went over <em>how</em> I chose Slackware as my primary distribution, but I didn't really go that deep into <em>why</em> I chose it. So, I'm gonna make this post showcasing all the stuff I absolutely love about the distribution.</p>
<h2>1. Package Management</h2>
<p>In a base Slackware install, dependencies are a thing you just <em>don't</em> worry about. As by default, everything is installed. This may sound like bloat, but a full install of Slackware only comes to about 12gb, and if you use BTRFS compression, you can easily get it down to 4-6gb. And for all that storage you get:</p>
<ul>
<li>Basically every language compiler/interpreter. This means if you're a developer, you can get started right away with most languages.</li>
<li>Basically every major open source library. This has two major effects:<ol>
<li>If you build a binary on Slackware, you can share that binary with someone else, and it'll for sure run.</li>
<li>If you want to build something, you no longer have to go hunting for dependencies, as you can be sure it's all already there.</li>
</ol>
</li>
<li>Two <strong><em>Full</em></strong> desktop environments. You get every KDE app, and almost every Xfce app with their respective desktops. This is huge, as unlike "desktop" focused distributions, you can be sure you have a <em>full</em> OS, and not have to go constantly go back and forth to the package manager to find applications you're missing.</li>
<li>All of Xorg, again, no hunting down specific X11 libraries.</li>
<li>And speaking of Xorg, it contains a lot of the major Window Managers, such as Window Maker, Fluxbox, etc.</li>
<li>Plus, a lot more!</li>
</ul>
<p>And because of how simple the package manager is, updates are <em>incredibly</em> fast. After all, all it is, is just tarballs when you get down to it.</p>
<p>And speaking of simple, even making a Slackware package is incredibly simple. There's two ways of doing it:</p>
<ul>
<li>Quick and Dirty:  <br>
Do the standard <code>./configure</code> routine, but when you get to the <code>make install</code> phase, do: <code>make DESTDIR=$PWD/output install</code>, this will install the files to <code>output/</code> in the current directory. Navigate to <code>output</code> and then do the simple command: <code>makepkg ../software_name-1.0.0-x86_64-1.tgz</code>. And that's it! You made a package! Then just simply do <code>installpkg ../software_name-1.0.0-x86_64-1.tgz</code> to install it. No build scripts, no learning an entire syntax language, no macros, just compile it, and make it a package!</li>
<li>The Right Way:  <br>
Now, the correct way to do it, is to go on <a href="https://slackbuilds.org" class="content">slackbuilds.org</a> and get the <code>sbo-create</code> port. Then create a new directory that has the package's name, and do <code>sbo-create software_name</code>, and from there, just follow the on screen prompts. I won't go to deep into it, because it's incredibly simple. And once you're done, if the port doesn't exist on Slackbuilds, you can submit it!</li>
</ul>
<p>Speaking of Slackbuilds... Like the BSDs, Slackware has a very similar port system in the form of slackbuilds.org. Here, you can go find software that's not in the main repository. You can also think of it as an AUR. There's a lot of software you can find on there, and you can use ports like <code>sboui</code> and <code>sbotools</code> to build them for you super easily!</p>
<p>Another thing about the packages on Slackware, is that they are incredibly vanilla. That is to say, no custom patches outside of getting things to build. Meaning, when you use KDE, you are <em>using</em> KDE, not a weird custom config'd version of it.</p>
<p>The ease of package management, the lack of dependency hell, and the availablity of software in Slackbuilds has made Slackware, in my humble opinion, have the best package manager of any Linux Distribution. Not bad for a bunch of shell scripts and tarballs!</p>
<h2>2. Installation</h2>
<p>Like the package management, Slackware is also one of the easiest distributions to install. First and foremost, the entire distribution fits onto a single DVD, meaning an fully offline installation is supported. Great if your laptop's wifi doesn't work out of the box, or if you're from an area without great internet! While you have to do partitioning manually, it should be noted that <code>cfdisk</code> these days is incredibly user friendly and the <code>setup</code> tool from Slackware will tell you if anything is wrong.</p>
<p>Once you launch <code>setup</code>, it's extremely straightforward from there, most of it ends up just being "Press enter to continue." The formatting partitions part in particular is extremely simple in comparison to many other GNU/Linux distributions. After all the software is installed, it'll go through a checklist of things to configure such as:</p>
<ul>
<li>What network manager do you want to use (NetworkManager, dhcp, etc)</li>
<li>What Xorg Window Manager/Desktop Environment do you want to use?</li>
<li>What services do you want enabled at boot?</li>
<li>Do you need a usb boot disk? (Useful as a recovery tool)</li>
<li>What should the default vi editor be? (Elvis, Nvi, Vim)</li>
</ul>
<p>All of these have, in my opinion, sane defualts and you can safely just Press Enter to Victory. And that's it! Nothing more to it.</p>
<h2>3. Init System</h2>
<p>The Slackware init system is very BSD-like. You have a <code>/etc/rc.d</code> directory, that contains init scripts, and all configuration of the init system is done through the <code>/etc/rc.d/rc.local</code> and <code>/etc/rc.d/rc.local_shutdown</code> scripts. This gives you an absolutely insane degree of control. And, you can even replace this init system! On SlackBuilds, you can install <code>OpenRC</code>, <code>runit</code>, or even <code>s6</code>. Though, I think the default bsd-like init system is great in it's own right!</p>
<h2>4. A Surprisingly Long LTS</h2>
<p>Did you know Slackware 14.0 from 2012 is still supported? Yeah, really. It still gets updated. That's over 11 years of updates so far. Sure, it ships an outdated kernel (nothing is stopping you from just backporting the kernel from newer Slackware, as we've gone over before, it's just shell scripts), but it's amazing that it's still supported! So if you're like me, and want a solid stable system that won't change for a long time, Slackware is awesome for this!</p>
<h2>5. Reputation</h2>
<p>Slackware is the oldest <em>still maintained</em> distribution. This reputation is important to me, because it lets me put a lot of trust into the distro. I don't have to worry about it up and disappearing over night. Likewise, the creator of Slackware gets, at the time of writing this $3,500 dollars a month on patreon, which means it's <em>somewhat</em> financially secure too, (though, that number would be higher ;) ).</p>
<h2>6. Just Works.</h2>
<p>And the one thing that makes me use this distribution, is that it all <em>just</em> works. I never run into any unexpected issues. I just plop it onto a machine, and it works!</p>
<hr>
<p>Of course, there's a few things I don't like, as nothing is perfect such as:</p>
<ul>
<li>
<p>The bootloader doesn't update automatically with EFI. (Easy enough to do with <code>pkgtool</code>, seriously, it's a great utility.)</p>
</li>
<li>
<p>Compilation times from Slackbuilds can be extreme on some packages. <strong>cough</strong> Webkit2gtk <strong>cough</strong>. And unfortunately, there's no reliably updated Slackbuilds Binary Package Repository.</p>
</li>
<li>
<p>Xfce is missing a few of it's core apps, such as the <code>parole</code> media player.</p>
</li>
<li>
<p>BTRFS compression isn't enabled by default, so you have to recompress the filesystem after enabling it. (Very minor, most distros don't enable it by default)</p>
</li>
</ul>
<p>As you probably notice, these are extremely minor.</p>
<hr>
<p>And last, but not least. The community of Slackware is fantastic. They are extremely friendly, outgoing, the majority of them aren't elitist, and are what i'd describe as "chill". If you haven't given Slackware a try, I highly recommend you do! Even if you don't like it, you can at least say you tried the oldest still living Linux distribution, haha!</p>
<p>By the way, you can support the Slackware project by donating to it's patreon, anything helps, even if it's just a dollar a month!</p>
<p>Link: <a href="https://www.patreon.com/slackwarelinux" class="content">https://www.patreon.com/slackwarelinux</a>
<br>
<br>
<br></p>]]></description>
<link>https://www.iotib.net/blog.php?id=9</link>
<pubDate>Tue, 14 Feb 2023 20:04:51 UTC</pubDate>
</item>
<item>
<title>A Whole Year of Slackware</title>
<description><![CDATA[<p>A whole year. I've been using Slackware for a whole year. Well, a little over a year actually. I've been using this distribution since November 2021, when I first put it on my laptop as an experiment. At the time, I wasn't at home a lot and mostly at my grandparents watching my Grandpa and Grandma (Rest her soul.) while my Aunt was out doing chores. Unfortunately, they had extremely slow internet, so if I needed to download new software like I do all the time, it would take a <em>reaaaaally</em> long time.</p>
<h2>Birth of a Slacker</h2>
<p>This is when I remembered how Slackware worked. Where it installs everything, and I do mean <strong>everything</strong> at install. I had always dismissed it from it's lack of dependency management, and being kind of "bloated". However, I decided to try it out, since I actually <strong><em>needed</em></strong> everything at once. What I ended up finding was a beautiful OS, that was extremely BSD-like in administration, but with all the power of a GNU/Linux system (Drivers, GNU Utilities, etc). At first, I thought there was no <em>way</em> it would replace my OpenSUSE Leap install on my actual workstation, and Slackware had been stuck on 14.2 since 2016! And then a few months later, 15.0 came out.</p>
<h2>Installing it on my Main Machine</h2>
<p>I started to worry about the OpenSUSE project around early 2022, it seemed we were never going to get another Leap release (And it later came out, that my hunch was indeed correct), and I needed to find a new stable distro. In the order I tried:</p>
<p>1st. <strong>Fedora</strong>:<br>
This was the first one I tried. And it didn't go to well... I had many driver issues, such as my games constantly stuttering (And I don't even play AAA games! Just indie!), odd system crashes, and in general, everything was slow.<br>
2nd. <strong>RHEL</strong>:<br>
Well, maybe the reason I had issues on Fedora is because it's a bit bleeding edge. So I tried a RHEL derivative (AlmaLinux if anyone is curious), but that quickly ended when I realized I couldn't use BTRFS without installing a 3rd party kernel, or installing Oracle Linux. I absolutely rely on BTRFS for one reason: <strong>compression</strong>. The reason I haven't needed to upgrade my storage in a long time is because I save <em>literal</em> terabytes in data from compression. So this was a no-go...  I would actually try it again a few months later (Documented that on Fosstodon), but it ended when I couldn't get intel GPU drivers working due to a bug in RHEL9... It's so sad seeing how far the RHEL desktop has fallen since RHEL 6/7.<br>
3rd. <strong>Debian</strong>:<br>
My next go to was Debian. But i'll be honest... I hate dpkg. I make a lot of custom packages for myself, as it's a way to easily manage /usr/local. But making a debian package is absolutely <strong><em>painful</em></strong> compared to making an RPM, or really ANY mainstream linux packaging system. Even making a FLATPAK is easier than dpkg. Suffice to say, I was always getting pretty irked by quirks in Debian, but it was stable enough, so I put up with it for a couple months.</p>
<hr>
<p>I started hearing rumors that Slackware 15.0 was coming <em>soon</em>, at first I thought it was mostly just smoke... until it happened. I had at this point been running Slackware -current on my Laptop, and was surprised when I saw the announcement that 15.0 was officially released. I <strong><em>immediately</em></strong> installed it on my Workstation, and well, I've been on the same install since.</p>
<h2>Da Future</h2>
<p>I've been thinking about trying out Salix to get a little more minimalism on my system, as it's slackware with dependency management, but overall, i'm pretty content with what I have. Since I installed Slack on my workstation, i've actually since moved my Laptop's distro to Mageia, as typing on my laptop's keyboard sucks, and I wanted clicky buttons (Clicky buttons that salix provides), so I might try out Salix on my laptop soon.</p>]]></description>
<link>https://www.iotib.net/blog.php?id=8</link>
<pubDate>Sun, 29 Jan 2023 23:12:26 UTC</pubDate>
</item>
<item>
<title>When Reading the Nutrition Label isn't Enough</title>
<description><![CDATA[<p>I'm frustrated. No really, I am. Years ago I kicked my sugar addiction, and it was an insanely hard thing to do. I did it by making sweet tea, and gradually reducing the amount of sugar in it. From 2 cups, to a cup and half, to 1 cup, half a cup, and then finally to none. This got rid of my sugar craving for the most part, however I still wanted something sweet.</p>
<h2>Enter sugar substitutes.</h2>
<p>The first part of this process was replacing sugar was switching from regular cola to diet cola. This one wasn't so bad, as even if you down a whole 2 liter of Diet Coke, it's only roughly 19.6 calories. Also using sugar free alternatives to other stuff such as pancake syrup, these usually contain sugar alcohols, and you don't digest that, so while they say they have calories, they actually don't. </p>
<p>But what about the stuff you want sweetened outside of prepackaged goods, like coffee? Enter Sucralose (Splenda) packs. Instead of getting a big ol pack of sugar, you can instead replace it with a big ol pack of "Zero-calorie" sucralose. Sounds great right? Wrong. If you look at the USDA's Food Data website, they list pretty much everything that's in it, and you'll be surprised to know that 100g of sucralose is 337 calories! What the hell? That's almost the same as regular sugar! But Sucralose doesn't digest in the body, so how the hell is this possible? Well, you see, Sucralose is 600 times sweeter than sugar, if they were to distribute pure packs of it, it would effectively nuke your taste buds with sweetness. So, they add a filler called Maltodextrin, and this is where the problem lies.</p>
<h2>The Bad News</h2>
<p>Maltodextrin is effectively flavorless sugar, when it enters the body is turns into Glucose. Meaning, when you consume Sucralose, you are effectively consuming regular table sugar in terms of carbs and calories. But if this is the case, how do they get away from calling it 0 calorie? Simple, the serving size of 0.5g (1 Teaspoon), and the FDA's policy on being able to label your product as 0 calories is that the serving size has to provide under 5 calories to be considered 0 calories. Thus, if Splenda just says the serving size is 1 teaspoon, they can get away with calling it 0 calorie and diabetic friendly.</p>
<p>This tactic is actually used in cooking oil spray, whose serving size if "1/4 of a second". But if you look at the USDA's food-data website. A 100g of cooking oil spray is 1670 calories! Hardly 0 calories now is it?</p>
<h2>So what do?</h2>
<p>The simplest thing to do, is to treat Sucralose as more expensive sugar in it's pack/packet form. If you're using it, switch to Sugar Alcohol or Stevia (though, you'll have to be careful with this, as I <em>think</em> it has the same problem). Also, stuff that has Sucralose in it, is not necessarily evil. Remember: It's the <strong>Maltodextrin</strong> in the packs that's basically sugar, not the Sucralose itself. So if you get a cola that has sucralose in it, you're probably good! And, don't make the same mistake i've been making for almost 5 years now. Always check the USDA's Food Database to see if what you're reading on the nutrition label is actually true, or if it's a devilish half truth</p>]]></description>
<link>https://www.iotib.net/blog.php?id=7</link>
<pubDate>Sun, 22 Jan 2023 19:18:59 UTC</pubDate>
</item>
<item>
<title>Theory on Portable Unix Executables</title>
<description><![CDATA[<p>So, for a long time I've been a bit frustrated with the state of portable apps on Unix-like systems. You have two options:</p>
<ul>
<li>AppImages (Linux-only)</li>
<li>Tarballs (More portable, but clunky)</li>
</ul>
<p>I've always dreamed of being able to create 1 binary, that can run on *BSD, Linux and Mac, without having to get separate ones. This led me to a crazy idea, that I would love to share.</p>
<h2>The Concept</h2>
<p>The concept is simple, you have a script, that contains an archive, this archive has every binary needed for multiple platforms, and all you have to do is double click it to run it. A simple concept, but a hard problem to solve. Fortunately, after about a month of brainstorming, I think I have it figured out.</p>
<h2>The Search for Feasibility</h2>
<p>My first attempt was to make a PERL script, since most Unix systems have PERL pre-installed, and if not, it's trivial to acquire it. It worked by using base64 to embed a tarball into the script, and when the script was run, it would extract the tarball into /tmp and then run it. Now this worked pretty well for small programs, however, once you got to about 2gb of data, launching the application this way was slooooooow. I tried many things to speed it up, even created my own <em>very shitty</em> encoding program, but nothing could seem to solve the speed issue. So my eyes wandered over to using FUSE.</p>
<h3>FUSE</h3>
<p>This is the approach AppImages take, my first thought was to use <code>squashfuse</code>. However, I quickly found out it wasn't a very portable solution, and now made sense why AppImages don't work outside of linux.</p>
<p>After the <code>squashfuse</code> idea was a bust, my next thought was to distribute ext4 images with the script, that could be mounted as read-only use <code>ext2fs</code>. Unfortunately each UNIX system seems to have it's own way of mounting ext filesystems with FUSE. NetBSD and FreeBSD use <code>fuse-ext2</code>, Linux uses ext2fs, and OpenBSD flat out doesn't have a FUSE implementation of ext. Well shit, onto the next one.</p>
<p>Next, I looked at the FAT file-systems. First up was <code>exfat</code>, however due to a bug, it can't be mounted outside of root. Urgh. And not a single system has a packaged <code>fat32</code> FUSE implementation (Not that I would use it, because then the size of files would be limited).</p>
<p>At this point, I was losing hope. But then, while browsing the <code>wip</code> branch of <code>pkgsrc</code> I found something called <code>fuse-zip</code>, and it solved literally everything.</p>
<ol>
<li>Is it fast enough? ✓</li>
<li>Can it be mounted without root? ✓</li>
<li>Is it portable? ✓</li>
<li>Does it <em>not</em> have restrictions on file size and size of archive? ✓</li>
<li>Decent compression? ✓</li>
</ol>
<p>I fiddled with it for a couple days, found it basically treats the zip file like any old file-system. It even works on OpenBSD! Feasibility has been found!</p>
<h2>The Theory</h2>
<p>Currently, this is my plan to implement it:</p>
<ol>
<li>Test the real-world speed of fuse-zip. From what I could tell, it's decently fast, but this still needs further testing.</li>
<li>Create a POSIX/PERL script that can not only install fuse-zip if it's needed, but also mount the zip file and then run the program. And once closed, unmount the zip file.</li>
<li>Make it detect what OS you are on, and load the appropriate libraries and run the appropriate binaries.</li>
</ol>
<p>Wish me luck!</p>]]></description>
<link>https://www.iotib.net/blog.php?id=6</link>
<pubDate>Thu, 03 Nov 2022 19:11:04 UTC</pubDate>
</item>
<item>
<title>Disk Organization</title>
<description><![CDATA[<p>I think it's very important for everyone to organize their disks. But to a lot 
of people this is a daunting task. So i'm provide how I've kept my disks
organized for almost 3 years now.    </p>
<p>The first step is to create a Filesystem Hierachy Standard. If you use Unix
regularly, you might be familiar with something like this. I think that every
<code>/home</code> (or <code>C:\Users</code> for Windows users.) can benefit from having a written
standard.    </p>
<p>So first thing we want to do is ask ourselves: "What directories will I create,
and what will be their purpose?". Let's start with an obvious example:  <br>
<code>/home/USER/documents</code>: This is a very simple one, what is this directory's 
purpose? Obviously it's to store documents. But let's go a step further, we need
to categorize those documents. So under <code>/documents</code>, we can have <code>/work</code>, which obviously
stores work documents, or <code>/documents/ebooks</code>, which stores e-books. At this point you should be
getting the idea of how this will work.    </p>
<p>Here, i'll provide an example FHS that you can use:
<code>/
    /archives
        /youtube
        /backups
    /games
        /roms
            /gba
            /n64
            /wii
        /steamlibrary
        /gog
        /dos
    /documents
        /ebooks
        /work
        /financial
            /banking
            /mortgage
            /loans
        /documentation
    /programs
    /productivity
        /programming
        /video
        /audio
        /art
        /documents
    /multimedia
        /shows
        /anime
        /educational
        /music
        /videos
        /movies
    /misc
        /virtual-machines
        /unknown-files
    /temporary</code></p>
<p>This is just an example, and how this will look depends on the individual making it. But hopefully you get the idea behind it.
And of course, as times goes, you'll probably be removing and adding directories as your interests come and go.</p>
<p>Anyways, I hope this helps people.</p>]]></description>
<link>https://www.iotib.net/blog.php?id=5</link>
<pubDate>Fri, 31 Dec 2021 05:00:00 UTC</pubDate>
</item>
<item>
<title>Saving Nestor: Post Mortem</title>
<description><![CDATA[<p>So it's official, after months of no progress i've given up on Saving Nestor. Why though? Well, there's plenty of reasons:</p>
<ol>
<li>Long hiatus.  <br>
    Due to a myriad of reasons, almost no progress has been made on the project since October, and no <strong>major</strong> progress has been made since <em>July</em>. As of writing this, that was almost 4 months ago. And why was there a long hiatus?    </li>
<li>Code is complicated.  <br>
    Seems kind of obvious, but as the time of no progress went on, I started forgetting how my code worked slowly. Now when I look at it, it can take me half an hour to refamiliarize myself with the code.    </li>
<li>Code is broken.  <br>
    The code is fucking horrible, end of story. I had <em>workarounds</em> for workarounds. And most of it had to do with threads. A good example: There's a glitch where the <code>SoundsPlaying</code> variable randomly gets jumbled. This is due to multiple threads accessing the same variable at the same time. How do I fix this? I have no fucking idea, I literally can't wrap my head around pthreads. Funny enough, this is an issue I solved in D, but for some reason I can't understand how to do it in C.    </li>
<li>Slow Art.  <br>
    This is a pretty minor reason, while it's complicated to get art assets due to licensing bullshit (artists tend not to be as liberal with licenses like programmers =P), I could definitely add temporary sprites while I wait for the art designer to do stuff. What's the issue? How <em>exactly</em> do I keep track of the assets that aren't original? Seems like a simple answer, but it's really not. Let's say I put a flower tile in the game from some random tilemap on opengameart, I would have to put that on a list <em>somewhere</em> and add in-game credit if it was a CC Attribution license (as they aren't GPL compatible, but liberal enough to let me use them in the game. The share-alike license is GPL compatible though.) And what happens if I make a mistake while keeping up with that list? Uh oh, I did a copyright infringement, that's what happens.    </li>
<li>No Original Music.  <br>
    I know a couple of artists, plenty of programmers, but literally <strong>zero</strong> composers. I had been meaning to learn music theory so I could make my own music, but it's extremely hard to learn a new skill when you already learning another new skill (programming). I will one day learn music theory, but for now I need to focus on being a better programmer so the #2 and #3 don't happen again.    </li>
<li>Depression.  <br>
    Lately for the past couple months, i've been going through a bout of depression. It's gotten so bad that I can barely sleep anymore. I'm not suicidal if anyone is concerned, but i'm not doing so great either.    </li>
<li>Bad Library  <br>
    Well, I wouldn't call BearLibTerminal a <em>bad</em> library, just bad for what I was wanting to do. Tiling got really complicated, and many things had to be surrendered for the sake of a functional game.</li>
</ol>
<p>And that's it really. I would like to finish this off by thanking my friend cdymrtn for helping with the project, he has a website at <a href="https://www.cdymrtn.net" class="content">www.cdymrtn.net</a>. He's planning on posting art on there, and he does good art in my opinion.</p>]]></description>
<link>https://www.iotib.net/blog.php?id=4</link>
<pubDate>Fri, 31 Dec 2021 05:00:00 UTC</pubDate>
</item>
<item>
<title>Using Slackware</title>
<description><![CDATA[<p>For the past month now, i've been running slackware 14.2 on my laptop. I wanted something that was rock-solid stable and a lightweight system. So far my experiences have been great, and I want to share the good and the bad i've experienced. Just note that a lot of this stuff is probably fixed on -current.</p>
<h2>The Good</h2>
<ul>
<li>A Complete Operating System.  <br>
    This is something that drew my attention immediately. I always dismissed slackware since in order to get a good experience, you have to install everything. I thought this was an absolute waste of disk space at first, but then I saw the numbers: A complete install of Slackware with everything is around 10-12GBs. That's smaller than a default install of windows, but you get 20x the functionality. I do have some gripes with the way the Software Sets are organized that I will go over later, but I really like having access to everything out of the box and not having to go to my package manager every couple minutes.    </li>
<li>
<p>BSD-like Init System.  <br>
    I love how init works on BSD, you use an easy to modify file (Usually <code>rc.conf</code> or <code>rc.local</code>.) to enable and disable daemons, and you can easily create your own if you know shell scripting. Likewise you can put things in <code>rc.local</code> such as commands you want to run at startup. An edge case for me would be: I'm a gamer, and I've recently been playing the entire Elder Scrolls series. Like with most elder scrolls games, mods make them more fun. Unfortunately mods are painful to install due to the case-sensitive nature of Unix filesystems. Because of this, I create an image file that then gets formatted with a case-insensitive JFS. On my workstation which run OpenSUSE, getting systemd to attach the image file to a loop device and then mount said loop device is painful, so painful in fact, I gave up, made a perl script that does it all for me when Xorg starts. Meanwhile on Slackware, I can run the <strong>TWO</strong> commands that are needed to attach the image to a loop device, and then mount it, all because systemd doesn't (well it does, but it's weird) support running commands at startup. Frustrating. To see that difference, here's the code:  <br>
    The Perl Script:  <br>
    ```perl
    #!/usr/bin/perl</p>
<p>if ( $#ARGV 0 ) {
    print("Include path to image file.
");
    print("USAGE: mount-morrowind.pl <path-to-imgfile>
");
    exit 1;
}
my $LOOP_LABEL=<code>udisksctl info -b /dev/loop0 | awk '/IdLabel/{print \$2}'</code>;
chomp($LOOP_LABEL);
if ( $LOOP_LABEL eq 'Morrowind' ) {
    print("Morrowind Image is mounted.
");
    exit 0;
}
system("udisksctl loop-setup -f $ARGV[0] --no-user-interaction");
system("udisksctl mount -b /dev/loop0");
<code>rc.local:</code>bash
/usr/bin/udisksctl loop-setup -f /path/to/morrowind.img --no-user-interaction
/bin/mount /dev/loop0 /mnt/morrowind
<code>``
- Slackbuilds    
Kinda like the AUR, in the sense that you can find mostly anything in the Slackbuilds repo. There's even a repo called Slackonly that you can use for packages that take 2 trillion years to compile (Looking at you Qt5).    
- Actually Good Graphical Package Manager.    
There's an unofficial package manager called</code>slapt-get<code>, and it has a graphical version called</code>gslapt`. I literally have no complains with gslapt, it's searches fast, it searches accurately, it installs packages quickly. It's great.  <br>
- LTS  <br>
Many are under the impression that Slackware is dead, but that's not the case, and it still receives security updates, see <a href="http://www.slackware.com/lists/archive/list.php?l=slackware-security&y=2021" class="content">here</a>. That means it's a distro that has been support for 5 years so far. That's on par with Debian.    </p>
</li>
</ul>
<h2>The Bad</h2>
<ul>
<li>Badly Organized Software Sets  <br>
    I think that the way the Software Sets are organized is horrible. I firmly believe that <strong>Libraries</strong> and <strong>Applications</strong> should be seperated. Instead of having 1 software set that contains Xfce, it should be 2 that has the Libraries in one, and the Applications in the other. This is a minor gripe, but it has led to a lot of headaches when it comes to download packages that need certain libraries but don't have obvious package names.</li>
<li>Building from source is ass.  <br>
    Even though Slackonly has outdated packages compared to what's on the actual Slackbuilds website. I find myself using the Slackonly repo because i'm going to admit it: I hate building from source.  <br>
    I'll do it if I have to, but when you're using a 1st gen i5 processor, even some of the simplest software can take <em>FOREVER</em> to build. It's the reason why I never used Crux or Gentoo. While the idea of customizing your software to fullest is nice, I don't want to build my god damn web browser every week, or rebuild the Qt library every update, because it will probably kill my processor in the longrun, and it makes my system unusable. And nothing, and I do mean <strong>NOTHING</strong> is more frustrating, then building software for 7 hours, only for it to fail and having to start over. Fuck no, I hate source-based packaging.    </li>
<li>Network Manager no workey.  <br>
   Not really Slackware's fault, for some reason old versions of Network Manager don't like my wifi card (<code>Intel 7260</code>). It just gets stuck in an infinite loop of connect and reconnecting. Thankfully, using <code>connmand</code> with <code>cmst</code> as a graphical manager works fantastically.    </li>
<li>No MATE Utilities.  <br>
   This actually shocked me, no one ever made any slackbuilds for MATE or it's utilities. I love the applications of MATE: Caja (File Manager) and Engrampa (Archive Manager) are amazing programs. I actually made Slackbuilds for them, but unfortunately Slackbuilds.org isn't allowing any new submission =(. I'll probably post them on my git soon though.</li>
</ul>
<p>And that's all I really have to say about my experience with Slackware so far. I like it a lot and can't wait for Slackware 15 to officially release.</p>
<p>Also, if you're a Slackware user or just someone who admires the project, and aren't aware of this. The creator of Slackware has a <a href="https://www.patreon.com/slackwarelinux" class="content">Patreon</a>. Go donate there if you want =)</p>]]></description>
<link>https://www.iotib.net/blog.php?id=3</link>
<pubDate>Fri, 31 Dec 2021 05:00:00 UTC</pubDate>
</item>
<item>
<title>Happy Thanksgiving!</title>
<description><![CDATA[<p>Happy Thanksgiving to all from me! I hope your day was great!</p>]]></description>
<link>https://www.iotib.net/blog.php?id=2</link>
<pubDate>Fri, 31 Dec 2021 05:00:00 UTC</pubDate>
</item>
<item>
<title>Lonely Hobbies</title>
<description><![CDATA[<p>I have a lot of hobbies, and while I do enjoy them, I have to admit that they are pretty lonely. A good example is programming, it's a very isolating hobby. No one outside of the hobby will understand what you accomplished or what you did. If you make a game, most people are only going to notice the art, graphics or sound, but almost no one will talk about how good the performance (or code) is. That is not to say I feel entitled to praise, but it's what adds to how isolating it is.</p>
<p>What made me think of this today was because my father was going to a concert and asked if I wanted to go. I said no because:</p>
<ol>
<li>I don't like loud environments.</li>
<li>I don't like metal.</li>
</ol>
<p>Obviously he was a bit dissapointed and said that one day we'll find something we can do together. And it got me thinking about how nearly all my hobbies are entirely isolating and lonely. A list of my hobbies that are pretty lonely are:</p>
<ul>
<li>
<p>Tracker Music:</p>
<p>It's not an uncommon hobby, but I find the community outside of actually <em>making</em> the music is very asocial.</p>
</li>
<li>
<p>Programming:</p>
<p>Most programming communities are pretty big, and are extremely social. It's mostly <em>in-person</em> social that lacking. Where I live there's barely any programmers. I'd have to attend a FOSS conference or something.</p>
</li>
<li>
<p>Single Player Video Games:</p>
<p>Obviously.</p>
</li>
<li>
<p>FOSS</p>
<p>They're very social, atleast when you do text chatting. But I find a lot of people in the FOSS community don't like voice calls oddly enough. That reason always been my go to explanation for while many FOSS Messengers are lacking in voice calling.</p>
</li>
</ul>
<p>I think next year, i'm going to start attending more local events and finding more non-technical hobbies, hopefully this makes my life a little less lonely.</p>]]></description>
<link>https://www.iotib.net/blog.php?id=1</link>
<pubDate>Fri, 31 Dec 2021 05:00:00 UTC</pubDate>
</item>
<item>
<title>First Blog Post</title>
<description><![CDATA[<p>This is my first blog post, it was surprisingly easy to program. I hope to use this space to vent like I used to back on the old legacy site.</p>]]></description>
<link>https://www.iotib.net/blog.php?id=0</link>
<pubDate>Fri, 31 Dec 2021 05:00:00 UTC</pubDate>
</item>
</channel>
</rss>
