<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dave's World</title><link>https://mcmackins.org/guides/</link><description>Recent content on Dave's World</description><generator>Hugo</generator><language>en-us</language><managingEditor>contact@mcmackins.org (David McMackins II)</managingEditor><webMaster>contact@mcmackins.org (David McMackins II)</webMaster><lastBuildDate>Tue, 25 Aug 2026 11:15:00 -0500</lastBuildDate><atom:link href="https://mcmackins.org/guides/feed.xml" rel="self" type="application/rss+xml"/><item><title>Using AI is Antisocial</title><link>https://mcmackins.org/posts/ai-antisocial/</link><pubDate>Tue, 25 Aug 2026 11:15:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/ai-antisocial/</guid><description>&lt;p&gt;Once upon a time, my little cousin asked my grandfather for some kind of trinket. He said no. Upset by this, my cousin told her parents about it, and they bought her one. Granddad was upset by this, but not because he didn&amp;rsquo;t want her to have the trinket. Rather, he was upset to have been robbed of the opportunity to give a thoughtful gift.&lt;/p&gt;
&lt;p&gt;Now I know what you may be thinking: if he wanted to give a gift, why did he say no to begin with? Granddad is a man of subtlety and social games which I refuse to play along with. His favorite game is &amp;ldquo;would you like X?&amp;rdquo; to which you are expected to reply &amp;ldquo;no, but can I get you one?&amp;rdquo; He knows to be direct when he wants something from me, but that&amp;rsquo;s not going to break his personality.&lt;/p&gt;
&lt;p&gt;The way he wanted the gift request dance to go was thusly: cousin mentions desire for trinket in passing, granddad takes mental note, and then he gets her one at some later time, probably her birthday. The directness of asking diminishes the joy of giving the gift. He doesn&amp;rsquo;t want to be seen as a resource to be drawn upon but a loving and thoughtful grandfather.&lt;/p&gt;
&lt;p&gt;Some time later, unrelated to any of that, my granddad was unwell and staying in a care facility. He reached out to my uncle (the father of said cousin) and asked him to bring him something to eat. The care facility of course provided its own food, but for some reason he wasn&amp;rsquo;t satisfied. Uncle helpfully advised Granddad that he could install the DoorDash app and have whatever food he wanted delivered to the care facility! Of course, Granddad didn&amp;rsquo;t just want some food to be delivered; he wanted an excuse to spend a bit of time with his son.&lt;/p&gt;
&lt;p&gt;Why am I telling these stories in a post with a title about AI? I have observed yet another way in which generative AI is eroding the humanity from everything: it robs us of opportunities to be social with one another.&lt;/p&gt;
&lt;p&gt;The way this has most closely affected me personally is people using LLMs to generate code for trivial programming projects like basic websites or simple plugins for larger software. I am already biased to disdain someone who chooses &lt;strong&gt;not&lt;/strong&gt; to learn when the opportunity presents itself, but I acknowledge that some things are just beyond someone&amp;rsquo;s interest (for me this might be auto maintenance). For these situations though, I personally would rather enlist the help of a friend who is interested and knowledgeable, and I am miffed when I see someone using an LLM when they could have asked me (or anyone else) either to help them build it themselves or to make it for them. I am robbed of the opportunity to teach or to make something for someone who would appreciate it, they are robbed of a potential skill or the sentimental value of a gift, and we are both robbed of the opportunity to deepen a friendship.&lt;/p&gt;
&lt;p&gt;Some months ago, my mom wanted a website. She goes to various crafts fairs and sells various things she makes out of fabric and such, so she wanted a way for people to keep up with where she&amp;rsquo;ll be, the kinds of stuff she makes, and what fabrics she has in stock so they can make requests, and she didn&amp;rsquo;t want to use social media. I could have just pointed her to an LLM to generate the site. After all, this is a pretty basic concept, and she didn&amp;rsquo;t even want something like a real online storefront that would need management and service integration, so an LLM probably could have accomplished the task. Instead, I showed her how static site generators have removed the need for getting hands dirty with HTML and CSS, and I helped her set one up and made her a little script that would automatically publish the site to Neocities.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not trying to pat myself on the back for being a good son, but I do wonder how our relationship might have changed if instead of taking the opportunity to build something together and teach a skill, I&amp;rsquo;d brushed off her request and fed it to the machines instead. She would still have her website. It might even be better than the one I designed by some metrics. But undoubtedly we would have lost something altogether more valuable between us than any website could be.&lt;/p&gt;
&lt;p&gt;The next time you&amp;rsquo;re faced with a problem that you&amp;rsquo;re not sure how to approach or just can&amp;rsquo;t find it in you to fix alone, don&amp;rsquo;t reach for AI. Reach for a friend. We can all stand to get a bit closer to one another.&lt;/p&gt;</description></item><item><title>Re: Are you mad at AI or at society?</title><link>https://mcmackins.org/posts/re-mad-at-ai-or-society/</link><pubDate>Thu, 15 Jan 2026 13:41:32 -0600</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/re-mad-at-ai-or-society/</guid><description>&lt;p&gt;This article is in response to &lt;a href="https://angelsaremathematical.neocities.org/ai"&gt;this one&lt;/a&gt; I read today. I&amp;rsquo;ll be quoting the bits I&amp;rsquo;m responding to directly, but you should read it in its entirety for yourself first.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Models are trained on content without the creators&amp;rsquo; consent or any compensation — that&amp;rsquo;s the biggest problem with AI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is what most people online make noise about, but I don&amp;rsquo;t think it&amp;rsquo;s the biggest problem, and I question whether it is even a big problem. I&amp;rsquo;ll talk more about what I think is the biggest problem below, because I also need to address an issue of terminology:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;machine learning technologies ARE useful. I can&amp;rsquo;t believe people are arguing with that as part of the anti-AI sentiment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a crucial misunderstanding of what current-day AI critics are talking about. &lt;a href="https://en.wikipedia.org/wiki/Machine_learning"&gt;&amp;ldquo;Machine learning&amp;rdquo;&lt;/a&gt; generally refers to mathematical modeling to make predictions about a system. It&amp;rsquo;s basically advanced statistics aided by computers. These can range from things like weather forecasting to playing a video game. I haven&amp;rsquo;t met anyone who doubts the utility of these technologies. What others and myself doubt the utility of are so-called &amp;ldquo;generative AI&amp;rdquo; technologies.&lt;/p&gt;
&lt;p&gt;Generative models like LLMs and image generators are in some sense also doing advanced statistics and prediction, but the specific things being predicted are different in a meaningful way. When a weather model yields a forecast, it is making a prediction about the real world based on input data from the real world. A language model is not modeling the real world; it&amp;rsquo;s modeling the way humans (and bots) have written about the real world and about anything else. It is predicting the next word (or part of a word) in a sequence. When one understands this fundamental principle of operation, it is no longer surprising the sorts of mistakes they make when we apply them to solving problems in the real world. They &lt;em&gt;do not understand the words they are saying.&lt;/em&gt; If they can be said to understand anything, it is that they understand the rules of grammar, typical ways that writing is structured, and the association of various tokens that often appear near one another. In a meaningful sense, generative models do not live in the same world as older, more practical machine learning models, or indeed, the same world as ourselves. It is for this reason that I and many others doubt the utility of these models.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As for people losing their jobs — that’s nothing new as well, and of course, it&amp;rsquo;s sad. It&amp;rsquo;s even sadder that we don&amp;rsquo;t live in a world where people welcome everything that makes their work easier and faster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There&amp;rsquo;s a lot to be said about AI&amp;rsquo;s threat to human employment. CGP Grey made &lt;a href="https://www.youtube.com/watch?v=7Pq-S557XQU"&gt;a very good video&lt;/a&gt; many years ago about the topic that&amp;rsquo;s worth considering. There are some dated examples given, but the core argument is still sound.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;talking about artists losing livelihood is even harder. I wholeheartedly believe that art is necessary both for the author and for the consumer, it&amp;rsquo;s an important part of human experience. But art as a career was always something happening despite the odds.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://mcmackins.org/posts/career-entitlement/"&gt;I agree.&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Painting survived photography, theater survived movies, books survived everything. At the same time, AI opens up new possibilities. Soon it&amp;rsquo;s going to be possible to create full-fledged movies with it. And you might dislike the idea of watching AI-generated movies, but consider this: anyone could make their own movie. Until now, that was a medium closed off unless you had serious money and connections. How is that limiting creativity?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I too am not exactly worried about the future of human creativity as a result of these models, but we are definitely looking at this in different ways.&lt;/p&gt;
&lt;p&gt;Whether computer-generated movies will be any fun to watch is a matter of opinion, so I&amp;rsquo;ll leave that aside. I do, however, take issue with categorizing their creation as creativity. It is arguable whether or not the machine generating an artwork is being creative, and I&amp;rsquo;m not particularly interested in the answer to that question, but consider this: how is prompting an AI model to make you an artwork any different from asking a real human artist to make you an artwork? Quality of the work and sentimentality aside, these are the same action on the part of you giving the prompt.&lt;/p&gt;
&lt;p&gt;But think about that. All you have done is presented an idea for an artwork. You have not actually made any art yourself by doing so. If you prompted a human artist to make something for you and you took credit for it, you would be called a plagiarist, but for some reason people think it is appropriate to take credit for the output of a machine in exactly the same relationship to you. So-called &amp;ldquo;AI artists&amp;rdquo; have no business making any claim to creativity. Maybe one day, these models will be so good that you can feed them a script and they will produce a faithful representation for people to watch. In that case, the author of the script could claim credit for creative screenwriting, but until then, I don&amp;rsquo;t consider your example to be one of creative work using AI.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;But what about disinformation? Sure, AI can lie. But I&amp;rsquo;d argue there&amp;rsquo;s a high chance that it will still be better than the sources the average person gets information from.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;m not sure I understand this one. Disinformation is not the same as misinformation. The concern about AI-generated disinformation is the ability for people to cheaply run disinformation campaigns to intentionally deceive masses of people to suit their own ends, probably political ones. These sorts of bots are definitely not going to be better than average news sources, flawed as they might be.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ultimately, there&amp;rsquo;s a fundamental incentive for technologies and products to be useful.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To whom?&lt;/p&gt;
&lt;p&gt;The cynical among us are expressing concerns that the tech oligarchs are willing to hemorrhage money for these AI projects in order to force acceptance and integration such that it becomes difficult to function in society without them, ultimately enabling the creation of a new techno-feudalist system.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Are you against AI itself, or against socialized research being turned into privatized wealth? Is it about people losing jobs without any chance to retrain? About digital products getting worse? Or do you really believe that AI has no good use?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now I shall finally talk about what I think is the biggest problem with these new generative models.&lt;/p&gt;
&lt;p&gt;As was mentioned in &lt;a href="https://angelsaremathematical.neocities.org/ai"&gt;the article&lt;/a&gt; and &lt;a href="https://www.youtube.com/watch?v=7Pq-S557XQU"&gt;the CGP Grey video&lt;/a&gt;, the fear of automation has long been dismissed with the argument that machines take the mundane and terrible jobs from humans and free us up for more fulfilling work. I ask you: what jobs are the new bots designed to take? Generative models threaten to take from humans the last places we hoped to retreat to from the prior wave of automation.&lt;/p&gt;
&lt;p&gt;There is intrinsic joy in creativity and problem solving, and that cannot be taken from us, but to me, the ultimate joy in these is in the sharing of them with others. When I make art, I am pleased with my work, but I am not truly fulfilled until someone else has also appreciated it. When I write software, I take satisfaction in the solution of a problem, but that satisfaction is multiplied when it becomes useful to other people, too. But who will care about my art when anyone can have a similar or better experience at the push of a button? Why would anyone care about my solution when a bot could create a better one in a fraction of the time? These models threaten to take our humanity from us not by oppression but by isolation, in a world where we are already ever more isolated by other technology.&lt;/p&gt;
&lt;p&gt;As for the utility of the technology, I have explained already how the generative models have a fundamental flaw in their disconnection from reality, and though newer models seem to be improving, the returns seem to be diminishing. I am not yet convinced that this technology is capable of achieving intelligence. But even setting that aside, I implore you to ask yourself again to whom these technologies might ever be useful. Should all their flaws be overcome, what do you and I stand to gain from their employment?&lt;/p&gt;
&lt;p&gt;I submit to you that the only ones who stand to gain are the parasites who created them, who, lacking creativity of their own, seek to sell us the story that we can be creative by a simple prompt of the machine, that we need not read the words our friends and loved ones wrote us (how inconvenient) but rather a substanceless summary to which we can reply with a message that we couldn&amp;rsquo;t be bothered to write ourselves either.&lt;/p&gt;
&lt;p&gt;To answer the titular question: I am not mad at AI. I am mad at society for considering this to be a worthy enterprise in the first place, but there is still time, I hope, for society to redeem itself.&lt;/p&gt;</description></item><item><title>You Are Not Entitled to Your Preferred Career</title><link>https://mcmackins.org/posts/career-entitlement/</link><pubDate>Thu, 28 Aug 2025 16:37:30 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/career-entitlement/</guid><description>&lt;p&gt;It&amp;rsquo;s been a while since I wrote about copyright, but &lt;a href="https://www.youtube.com/watch?v=RVMiXFsJzcQ"&gt;a video I recently
watched&lt;/a&gt; got me thinking about it again.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;And for those of you who think copyright shouldn&amp;rsquo;t exist at all: honestly,
you need to think about that idea for even just one second before it falls
apart. If there was no copyright to good ideas, regular people like you or me
would never be able to rise on our own merit. All the best stories could just
be legally stolen by huge corporations, and the entire cultural art and
storytelling scene would be dominated by faceless, soulless corporations, Big
Fat Liar style.&amp;rdquo; - LavenderTowne&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Well, I am such a person, and I still don&amp;rsquo;t think copyright should exist. This
line of reasoning is a common misconception of the actual purpose of copyright
that people don&amp;rsquo;t tend to think about. And I don&amp;rsquo;t blame most people for falling
for it. Our education system has done a good job selling copyright as a law for
the small author to protect themselves against plagiarism, but this flies in the
face of the actual reason for which copyright was ever conceived in the first
place and ignores the deeper consequences of allowing ourselves the mental
shorthand offered by the concept of &amp;ldquo;intellectual property.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="plagiarism-is-not-theft"&gt;Plagiarism is not Theft&lt;/h2&gt;
&lt;p&gt;In fairness to LavenderTowne and other proponents of this argument, copyright
law in the United States literally does offer this protection against
plagiarism for the little guy, but it does so in a contrived way: it makes an
immaterial, intangible &lt;em&gt;idea&lt;/em&gt; into one&amp;rsquo;s &lt;em&gt;property&lt;/em&gt;, and using the idea of the
copyright holder without their permission constitutes &lt;em&gt;theft&lt;/em&gt; in the eyes of the
law. And yet, these copyrightable ideas lack the essential attribute which made
people come up with the idea of property in the first place: exclusivity.&lt;/p&gt;
&lt;p&gt;Physical objects can only be used by one person at a time, and when we put work
into creating or acquiring an object, we want some level of control over who
else gets to use it and for what purposes. The idea of property really only came
into being around the dawn of agriculture, when people began to invest serious
resources into their homesteads. We couldn&amp;rsquo;t build a sustainable agricultural
society without the concept of property, because nobody would want to put in the
effort of running a farm if any dickhead could come take your hard-earned
produce or otherwise destroy it without consequences.&lt;/p&gt;
&lt;p&gt;Ideas are not like this. Once someone has an idea, they can share it with others
without destroying or compromising the integrity of the original. If I visit
your house, find a book on your shelf, and make a copy for myself, I have not
deprived you of anything (ignoring the time it would take me to copy it, during
which you wouldn&amp;rsquo;t be able to read it). The classic &amp;ldquo;you wouldn&amp;rsquo;t steal a car&amp;rdquo;
line holds no weight under scrutiny: if I could make a perfect copy of someone
else&amp;rsquo;s car for myself without depriving them of theirs, why shouldn&amp;rsquo;t I?&lt;/p&gt;
&lt;p&gt;LavenderTowne and others will be quick to point out that although I have not
stolen your book or car in the above hypothetical, I have stolen something from
the author of the book and the designers of the car: a sale. I could continue by
asking them to demonstrate that I would have ever bought a copy of their book or
car in the first place, but this essay is not about why I don&amp;rsquo;t believe in
intellectual property.&lt;/p&gt;
&lt;p&gt;The reason I bring all this up is to illustrate that ideas and physical objects
are not analogous, and applying the concept of property to ideas leads to weird
conceptions and consequences which I will explain later.&lt;/p&gt;
&lt;p&gt;And so, let us get onto what this section is really about: plagiarism. In truth,
plagiarism would still be against the law even if we abolished copyright today,
because plagiarism is a form of &lt;em&gt;fraud&lt;/em&gt;, which is already illegal for good
reasons. We don&amp;rsquo;t need to impose the concepts of property and theft onto it when
we already have a distinct concept which perfectly applies to the situation
we&amp;rsquo;re talking about. A case could be made that the existing fraud statutes do
not fully cover the nuances of protecting an author&amp;rsquo;s work, and that may well be
true, but that is a matter of implementation detail, not the fundamental
concept.&lt;/p&gt;
&lt;h2 id="art-careers-without-copyright"&gt;Art Careers Without Copyright&lt;/h2&gt;
&lt;p&gt;It is true that a career as an artist would look a lot different in a world
without copyright, but that doesn&amp;rsquo;t mean it would be impossible. I&amp;rsquo;ll stick with
the example of an author since that is the closest to the original concept of
copyright.&lt;/p&gt;
&lt;p&gt;Suppose I write a novel but lack the funds to publish physical books, so I
decide to publish online. It erupts in popularity and acclaim, and a greedy
publisher decides to &amp;ldquo;steal&amp;rdquo; it by printing physical copies of my novel and
selling them to bookstores without paying royalties to me. They&amp;rsquo;d still put my
name somewhere conspicuously on the printed books so as not to be plagiarists,
but because the sequence of words which compose my novel are not my &lt;em&gt;property&lt;/em&gt;,
I have no means to force the publisher to pay me for reproducing them.&lt;/p&gt;
&lt;p&gt;However, this need not be the end of my career. Assuming the critical acclaim of
my work and the fact that my name is still associated with it, I would likely
still be in demand for further work, and having established my reputation, I
could then strike a deal with that same publisher (or perhaps their competitor)
to be commissioned to author a sequel or an entirely new story to be published
under their brand. Even without such deal brokering, I would likely still be
invited to appear for book signing events or other such public appearances from
which I could profit.&lt;/p&gt;
&lt;p&gt;Although I would certainly take a hit to my revenues, it also certainly does not
mean that a career as an author would be impossible.&lt;/p&gt;
&lt;p&gt;It is here where I will bring up the true origin and purpose of copyright: to
prevent competing publishers from copying one another&amp;rsquo;s books. Copyright did not
exist until the days of the printing press, and it was conceived of only in the
interest of the publishers to protect themselves from competitors. Copyright was
not and has never been a law for the little guy but rather an instrument of
control by big business to protect their interests, and it continues to function
as such to this day, despite the happy accident of making it easier to have a
career as an artist.&lt;/p&gt;
&lt;h2 id="the-cost-of-copyright"&gt;The Cost of Copyright&lt;/h2&gt;
&lt;p&gt;Let us now consider the effect that the concept of &amp;ldquo;intellectual property&amp;rdquo; has
upon real, physical property.&lt;/p&gt;
&lt;p&gt;When someone claims an intangible idea as their property, what does that
actually mean? To &amp;ldquo;steal&amp;rdquo; someone&amp;rsquo;s idea is to reproduce an instance of it
without their permission. This is not limited to creating physical instances and
selling them for profit; it includes performing the work such as in a public
reading.&lt;/p&gt;
&lt;p&gt;Think about that for a moment. Their &amp;ldquo;property right&amp;rdquo; consists of a restriction
of your very tongue. This has one amusing and illustrative consequence: because
copyrightable ideas can be encoded and expressed digitally, this means it is
illegal for you to tell someone certain numbers because they happen to represent
someone else&amp;rsquo;s copyrightable work.&lt;/p&gt;
&lt;p&gt;What I mean to draw attention to is this: the copyright holder&amp;rsquo;s &amp;ldquo;rights&amp;rdquo;
manifest in the real world as a restriction upon your own body and physical
property. It is a claim of authority which someone lays upon every member of
society and any of their possessions which could conceivably create a copy of
their so-called property.&lt;/p&gt;
&lt;p&gt;This is a clear infringement upon the (much more important) right of free speech
and expression by which we create works of art in the first place. And what do
we gain in exchange for this price? Proponents will say that we gain all of our
artistic culture and stories (see the quote at the beginning).&lt;/p&gt;
&lt;p&gt;Artists and authors have created their work throughout millennia prior to the
conception of copyright and yet longer before that concept expanded into what it
has become today. Are we really to believe that the great artists of the past
century would not have created their art without the ability to legally compel
us not to share it with one another freely? Are we to believe that this is a
serious consideration in the mind of a true artist and that all the artists of
antiquity were foolish to ever try?&lt;/p&gt;
&lt;h2 id="the-right-to-a-career"&gt;The Right to a Career&lt;/h2&gt;
&lt;p&gt;Even if we believe it to be true that an art career is impossible without
copyright, why should we have ever expected it to be possible in the first
place?&lt;/p&gt;
&lt;p&gt;Almost no one makes their living doing whatever they want. In capitalism, it is
the customer who decides. You only make money if you can satisfy someone
&lt;em&gt;else&amp;rsquo;s&lt;/em&gt; desires, and that&amp;rsquo;s usually pretty boring and repetitive stuff.
Almost everyone had dreams and aspirations for their life that were never
fulfilled, because the world wasn&amp;rsquo;t ready to hand them a living for doing that
instead of making a burger or erecting a building.&lt;/p&gt;
&lt;p&gt;People do want art. I want art, and I&amp;rsquo;m even willing to pay artists when I don&amp;rsquo;t
have to. But why should we expect anyone to be able to make an entire career
from just their art?&lt;/p&gt;
&lt;p&gt;Making art is what makes us human. I question the humanity of anyone who has
never in their life made some kind of art, however embarrassing. But of course
not everyone can be a career artist, or else there&amp;rsquo;d be nobody growing the food.
Being a career artist is a privilege, not a right, and I don&amp;rsquo;t think we should
give up our actual important rights so lightly just so a few more can enjoy this
privilege.&lt;/p&gt;
&lt;p&gt;To those readers who are career artists, I hope you do not take this privilege
for granted, and I hope we can have productive conversations about copyright
going forward. And to the rest of you, I trust you&amp;rsquo;ll continue to make art
anyway.&lt;/p&gt;</description></item><item><title>One of the sysadmin days of all time</title><link>https://mcmackins.org/posts/sysadmin-day/</link><pubDate>Sun, 17 Aug 2025 04:37:58 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/sysadmin-day/</guid><description>&lt;p&gt;All I needed to do was replace a single hard drive.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d been receiving notice of some uncorrectable sectors on one of my FreeBSD app
servers, and I knew I ought to replace it some time soon. With my weekend plans
canceled, I figured it would be a good time to get that over with. I picked out
a new hard drive to be the replacement, pulled up some documentation on
replacing disks in a zfs mirror, ate breakfast, and got to work.&lt;/p&gt;
&lt;p&gt;First, I disabled automatic startup of my jails and VMs in anticipation of
needing to do some adjusting after reboot, and I didn&amp;rsquo;t want a bunch of things
competing for the disk during all that. Then I shut down the machine and
replaced the hard drive. I should have known that actually screwing the new
drive into position was an act of pure hubris.&lt;/p&gt;
&lt;p&gt;Problem the first: the machine wasn&amp;rsquo;t booting from the second hard drive that
was in the original mirror. I had somewhat anticipated this since my previous
experience with mirrored boot disks had taught me that the boot code isn&amp;rsquo;t
always properly installed on all drives in the mirror. No matter, I thought,
and I plugged the old hard drive back in to try booting up and setting up the
second drive from a running system.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;For those reading in the future: this issue should be fixed in FreeBSD 14.4 and
15.0&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;After booting up, I copied two jails over to a different host: one running
AdGuard Home (without which I had no DNS unless I wanted to adjust my router
settings) and one running ZNC so I could connect to IRC for some support. The
kind folks on IRC first told me that the boot code should have been present and
that maybe I was doing something else wrong, which seemed entirely plausible to
me, so I shut down once more and disconnected the old hard drive, but I was
unable to find anything wrong in my steps, so it was back to plan A of setting
up the second drive from the working system.&lt;/p&gt;
&lt;p&gt;But fate had other plans for me on this day. Of all the times, the original boot
drive seemed to now fail entirely, and I had an unbootable system. So instead I
decided to boot into the FreeBSD installer and figure out how to set this up
manually from the shell.&lt;/p&gt;
&lt;p&gt;That turned out to be fairly simple: format the EFI partition as FAT32 and copy
over a couple of files. Alas, no worky. Well, maybe I need to manually set an
EFI boot variable. Back into the installer, set that up, and try again. Still no
worky. Bear in mind that each time I want to return to the installer, I need to
adjust the boot order in my EFI firmware settings, because it wants to legacy
boot by default.&lt;/p&gt;
&lt;p&gt;It occurs to me at this point that although the original installation was set up
for EFI booting that I may have actually been BIOS booting the whole time.
FreeBSD is capable of BIOS booting even with a GPT partition scheme, and a
legacy boot partition was present in the table. With that in mind, I boot back
into the installer and manually install &lt;code&gt;gptzfsboot&lt;/code&gt; into that partition (it was
probably already installed, but I was grasping at straws at this point). Still
yet, I couldn&amp;rsquo;t boot back into my system.&lt;/p&gt;
&lt;p&gt;At this point, I also notice that not only is my disk not appearing as a boot
device, but it&amp;rsquo;s not even appearing properly in the list of attached SATA
devices in the firmware menu. It doesn&amp;rsquo;t say &amp;ldquo;not connected&amp;rdquo; like the empty
slots do, but it&amp;rsquo;s just a blank name, and upon inspection, it thinks the drive
has a capacity of 0.0GB! So I find the latest EFI firmware and install that to
no avail.&lt;/p&gt;
&lt;p&gt;So now I&amp;rsquo;m thinking that maybe this drive just has a compatibility issue with
this motherboard&amp;rsquo;s firmware and decide to copy the contents onto a different
drive that I know for certain will work. I notice that my disk copying
appliance takes a long time to initialize, which was suspicious, but the copying
procedure did appear to start, so I took a little break while that was running.&lt;/p&gt;
&lt;p&gt;After a couple of hours copying, I put &lt;em&gt;that&lt;/em&gt; drive into my server (not screwing
it into place just yet), and although it still did not appear as a selectable
boot device, it did appear properly in the list of SATA devices. Strangely,
though, after exiting the EFI menu, despite not being present in the boot
priority list, it actually booted up from the new disk!&lt;/p&gt;
&lt;p&gt;Seizing this opportunity, I &lt;code&gt;ssh&lt;/code&gt;ed in from my PC and started setting up the
first new drive that I had intended to install. I set up its partition table and
copied the EFI files and boot code, but I didn&amp;rsquo;t yet want to add it to the pool
and start the resilvering process with the source drive just hanging loose in
the case.&lt;/p&gt;
&lt;p&gt;I shut down the machine, screwed the working boot drive into position, and in a
second act of hubris, I put the lid back on and seated the machine back in the
rack. I connected the power, and sure enough, it booted right up as expected.&lt;/p&gt;
&lt;p&gt;At long last, I connected once more and was able to add the new drive to the
pool, wait 16 minutes for resilvering, and remove the reference to the old disk
from the pool configuration. I reactivated my automatic startups and manually
started my jails and VMs.&lt;/p&gt;
&lt;p&gt;That is the story of how I lost both disks in my RAID 1 pair and still managed
to get back online without having to reinstall and restore from a backup.&lt;/p&gt;
&lt;h2 id="epilogue"&gt;Epilogue&lt;/h2&gt;
&lt;p&gt;This morning, it occurred to me to check and see if this machine was even
booting in UEFI mode in the first place. Nope. So I could have skipped the whole
EFI partition business altogether. Oh well. At least this is in theory bootable
on an EFI-only motherboard should I need to switch.&lt;/p&gt;
&lt;p&gt;The second drive from the original mirror pair also appears to have some deeper
issues of its own. After I got my server back online, I decided I would wipe it
and put it away for later use on a different system, but apparently the weird
drive info was not just a motherboard compatibility problem. The software I was
using to wipe it complained that the SATA drive info didn&amp;rsquo;t make any sense, and
I saw that it appeared to be responding with all zeroes to any drive info query,
so I think something has gone wrong either on its control board or some NVRAM
used by the firmware that contains the drive info, so I&amp;rsquo;m considering this one
dead, too, even though apparently data can still be copied from it.&lt;/p&gt;</description></item><item><title>I migrated all my self-hosted services to FreeBSD</title><link>https://mcmackins.org/posts/freebsd/</link><pubDate>Wed, 09 Jul 2025 10:08:17 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/freebsd/</guid><description>&lt;p&gt;


&lt;img src="https://mcmackins.org/img/freebsd-friend_hu_147821ca07f0012c.webp"
 alt="Friendship ended with Proxmox meme"
 &gt;
&lt;/p&gt;
&lt;p&gt;After having previously &lt;a href="https://mcmackins.org/posts/openbsd/"&gt;sworn my loyalty to OpenBSD&lt;/a&gt;, I have since come
across &lt;a href="https://it-notes.dragas.net/2024/10/03/i-solve-problems-eurobsdcon/"&gt;a very persuasive article&lt;/a&gt; regarding the use of FreeBSD for hosting
services. After a bit of thought, I decided it was a good time to improve my
self-hosting situation.&lt;/p&gt;
&lt;h2 id="how-it-started"&gt;How it started&lt;/h2&gt;
&lt;p&gt;My situation going into this migration was not exactly good. I had a Proxmox
server which was set up quite well and hosting most of my services, but some of
the earliest things I had set up were running on a bare metal Debian
installation with no containerization and an ordinary ext4 file system on a
single SSD. It was a ticking time bomb and needed to be replaced.&lt;/p&gt;
&lt;h2 id="the-plan"&gt;The plan&lt;/h2&gt;
&lt;p&gt;Phase one: make a FreeBSD VM on the Proxmox machine to learn how to set up jails
with bastille.&lt;/p&gt;
&lt;p&gt;Phase two: move all services hosted on the Debian box to jails in this VM,
except for Jellyfin, which has system-specific configuration for hardware
transcoding acceleration.&lt;/p&gt;
&lt;p&gt;Phase three: install FreeBSD on the old Debian box, create a bhyve VM for
Jellyfin, then migrate all the jails from the FreeBSD test VM to the new server.&lt;/p&gt;
&lt;p&gt;Phase four: migrate all the VMs from Proxmox to jails on the new server where
applicable, or convert them to bhyve VMs.&lt;/p&gt;
&lt;p&gt;Phase five: install FreeBSD on the Proxmox box, and move jails/VMs back over to
it as appropriate.&lt;/p&gt;
&lt;h2 id="how-it-went"&gt;How it went&lt;/h2&gt;
&lt;p&gt;Thanks to the flexibility of zfs, this plan went almost entirely painlessly. The
only hitch I ran into was trying migrate an OpenBSD VM to bhyve, which failed
because bhyve does not support booting OpenBSD from an MBR. I could have figured
out how to use grub to boot it, but it was easier to just rebuild the VM using
uefi.&lt;/p&gt;
&lt;h2 id="why-this-is-so-so-so-so-so-so-nice-to-have"&gt;Why this is so so so so so so nice to have&lt;/h2&gt;
&lt;p&gt;There are two main reasons why this is a big improvement: zfs and jails.&lt;/p&gt;
&lt;p&gt;zfs is a truly powerful file system that to my knowledge is unmatched by its
competitors. Yeah, btrfs exists, but I have heard far too many horror stories of
losing entire volumes because of btrfs bugs that I don&amp;rsquo;t think I will ever trust
it. zfs just works, and really the only problem with it is the CDDL license
which makes it a pain to set up on Linux, especially if you want your root
file system to be on zfs. Being able to snapshot and replicate the root file
system means that disaster recovery is trivial: just install FreeBSD again and
then &lt;code&gt;zfs send&lt;/code&gt; the backup over, and you&amp;rsquo;re done.&lt;/p&gt;
&lt;p&gt;Migrations are also trivialized. I can just &lt;code&gt;zfs send&lt;/code&gt; entire VMs or jails
between hosts and be migrated in a matter of seconds, limited only by network
speeds. In fact, the major contributor to the ease of migrating VMs off of
Proxmox is the fact that I was using zfs on Proxmox for the VMs&amp;rsquo; disk images.&lt;/p&gt;
&lt;p&gt;Jails are also a major improvement. They offer the flexibility and process
isolation of virtualization without the overhead of running a totally different
operating system with hardware emulation layers. I know containers exist on
Linux, but jails are first class on FreeBSD, not some third-party thing you bolt
on. Not to mention, I don&amp;rsquo;t have to fuss with choosing a distro. It&amp;rsquo;s all
FreeBSD, and since I use thin jails, I can apply patches to all of my jails at
once and save disk space by not having duplicate files.&lt;/p&gt;
&lt;p&gt;I also really appreciate that the managers I installed for jails and VMs are
implemented as a set of shell scripts. Everything I&amp;rsquo;m doing is supported by the
base FreeBSD system; these management scripts are just refined forms of what I
would have written for myself anyway.&lt;/p&gt;
&lt;h2 id="give-it-a-try"&gt;Give it a try&lt;/h2&gt;
&lt;p&gt;Seriously, the next time you are thinking of standing up a server, try out
FreeBSD. Install &lt;code&gt;bastille&lt;/code&gt; and &lt;code&gt;vm-bhyve&lt;/code&gt; and give it a go. The learning curve
is quite small, and you&amp;rsquo;ll thank yourself later.&lt;/p&gt;
&lt;p&gt;I think the only place I could go from here is back to OpenBSD if they ever
implement these sorts of features, but I don&amp;rsquo;t see that happening any time soon.&lt;/p&gt;
&lt;h2 id="where-im-not-using-freebsd"&gt;Where I&amp;rsquo;m not using FreeBSD&lt;/h2&gt;
&lt;p&gt;OpenBSD is still king of security — they are downright paranoid. I still
use OpenBSD for my home router, and I use it for VMs where I need to make sure
things are locked down as much as they could be.&lt;/p&gt;
&lt;p&gt;I still see myself using GNU/Linux on the desktop for the foreseeable future.
The BSDs have lots of the desktop software, but the desktop experience really
seems to be an afterthought, and that&amp;rsquo;s fine. I&amp;rsquo;d rather they focus on making
really solid Unix systems. The jank of Linux is more tolerable on desktop
systems anyway.&lt;/p&gt;
&lt;p&gt;And of course Linux has better hardware support generally than the BSDs due to
its popularity, so there are still some edge cases where Linux is the only
good option, but thankfully those are few and far between.&lt;/p&gt;
&lt;p&gt;Finally, I still like NetBSD as a fallback option for very old or limited
hardware, or in cases where I need support for legacy protocols that other OSes
have declared to be obsolete. It&amp;rsquo;s a tidy little system (though not as tidy
as OpenBSD in my opinion), and their dedication to legacy support is truly
inspiring.&lt;/p&gt;</description></item><item><title>The Labor Theory of Truth</title><link>https://mcmackins.org/posts/labor-theory-of-truth/</link><pubDate>Tue, 15 Apr 2025 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/labor-theory-of-truth/</guid><description>&lt;p&gt;Conspiracy theorists occupy a strange place in our culture, because that class is composed of both skeptics (who distrust mainstream narratives and construct the theories) and the credulous (who believe their theories). However, I&amp;rsquo;ve made an observation that links their mindsets together and hopefully somewhat explains their common mentality.&lt;/p&gt;
&lt;p&gt;The phrase &amp;ldquo;do your own research&amp;rdquo; is often heard in conspiracy theory circles. There are some who would say that the mere usage of the phrase is a red flag for this type of thinking, but there are good and bad reasons for using it. A good way might be to disclaim a statement of fact you&amp;rsquo;re making if you aren&amp;rsquo;t entirely certain: do your own research, for I may be mistaken. Conspiracy theorists tend to use it thusly: do your own research, for you are mistaken in believing the mainstream narrative. My observation is that this call to action serves two purposes: the obvious one, which is to get someone to question their beliefs and open their mind to a different explanation of something, and the non-obvious one, which is that, to the right sort of person, the very act of having worked to find some information makes it easier to believe: the labor theory of truth.&lt;/p&gt;
&lt;p&gt;I give it this name as an analogy to the Marxist labor theory of value: the idea that the worth of something is proportional to the level of effort put into making it. In my conversations with conspiracy theorists, I have observed that the more degrees of separation between their conclusion and the surface-level facts, the more credible it seems to be.&lt;/p&gt;
&lt;p&gt;This is especially so in theories about religion. There exists a niche interpretation of Christianity called Christian Identity which claims that certain European ethnicities are the true descendants of the ancient Israelites and are therefore God&amp;rsquo;s chosen people. If you seek out their adherents online, you will find references to various ancient texts with dubious connection to Christianity, some of which are older than even Judaism. It&amp;rsquo;s a clear case study in confirmation bias: the Identity Christian goes into the research with a preconceived conclusion in mind, searches for even the most tenuous confirmation, and proclaims it as proof. What convinced the original theorist of its legitimacy was not the strength of the evidence but rather the lengths to which they went to find it.&lt;/p&gt;
&lt;p&gt;The inverse consequence of this type of reasoning is that mainstream sources of information are never to be trusted (except in the notable case in which it aligns with their conclusion). It is fair enough to treat authority with skepticism: people with power have their own interests at heart when making public statements, and we should not be gullible. However, automatically writing off anything said by, say, a government authority is a textbook example of the genetic fallacy. I submit that the conspiracy theorist rejects the mainstream narrative not because there is a compelling reason to doubt it, but because believing it would be too easy. The truth is only obtained through hard work; nobody would just openly tell the truth.&lt;/p&gt;
&lt;p&gt;I had a recent encounter with someone who claimed he knew that ChatGPT was self-aware. When I asked how he could possibly know that without winning a Nobel prize, he explained that he had to ask it a very convoluted series of probing questions to get it to bypass the barriers programmed into it so that it would talk openly about its true feelings. He had set out from the very beginning with the goal of getting ChatGPT to say something to confirm its self awareness, and then having put in the requisite amount of effort to uncover a truth, his suspicions were confirmed to him. Never mind the myriad possible explanations for the behavior he saw; he had found the truth that was being hidden from him by the programmers.&lt;/p&gt;
&lt;p&gt;Rarely do I ever encounter someone who feels strongly about just one conspiracy theory. Most often, a believer in one conspiracy theory is obsessed with doubting the narrative and the search for the hidden truth. It often becomes their entire personality, which leads frequently to awkward Thanksgiving dinners. This is what leads me to believe it is a difference in their very epistemology rather than just a happenstance of something they happened to read or get curious about once.&lt;/p&gt;
&lt;p&gt;The psychology of this sort of thing is undoubtedly complex, and I am not qualified to speak authoritatively on the subject. This is just an observation I have made and my attempt to understand it. Experimental verification is left as an exercise to the reader. Do your own research.&lt;/p&gt;</description></item><item><title>My Thoughts on Yesterweb</title><link>https://mcmackins.org/posts/yesterweb/</link><pubDate>Wed, 23 Nov 2022 00:00:00 -0600</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/yesterweb/</guid><description>&lt;p&gt;Since starting &lt;a href="https://zox.pics/"&gt;my photo blog&lt;/a&gt;, I&amp;rsquo;ve been looking around at various sites on
&lt;a href="https://neocities.org/"&gt;Neocities&lt;/a&gt;. For those who don&amp;rsquo;t know, Neocities is an attempt to revive the
spirit of &lt;a href="https://en.wikipedia.org/wiki/Yahoo!_GeoCities"&gt;GeoCities&lt;/a&gt; which was an icon of the early web. &lt;a href="https://yesterweb.org/"&gt;The Yesterweb&lt;/a&gt;
is one such site that dedicates itself to the mission of resurrecting the
culture of the old web, sometimes called Web 1.0.&lt;/p&gt;
&lt;p&gt;I am partial to this mission. After all, this very site is very much in the Web
1.0 style. I also actively avoid social media sites. About the closest I get to
social media is reddit, and I also occasionally use a Mastodon instance
dedicated to the toki pona conlang. However, Yesterweb has a few
shortcomings. Some of these are situational issues that could be fixed, and
others are fundamentally in conflict with its stated goals. In this article I
will enumerate the issues I see.&lt;/p&gt;
&lt;h2 id="socialist-overtones"&gt;Socialist Overtones&lt;/h2&gt;
&lt;p&gt;This is largely a personal gripe but I think it deserves a mention as a real
issue because I think it is counterproductive to their own goals. It is clear
that they want to introduce more people to the web of old. I use the word
&amp;ldquo;introduce&amp;rdquo; because most people online today started using the web well after
the dawn of Web 2.0.&lt;/p&gt;
&lt;p&gt;One of the most overt instances of socialist leanings is found on their webring
info page:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you believe that the internet is being wrongly controlled by capitalism,
or that social interaction online should be more than it currently is on
Facebook, Twitter, or Instagram, then you belong here.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The &amp;ldquo;or&amp;rdquo; in this sentence gives an exemption for non-socialists to still be
welcome, but there is a very clear suggestion here that the problems with the
modern web are the fault of capitalism rather than, say, ignorance of the old
web or the possibility that most people actually prefer the modern web.&lt;/p&gt;
&lt;p&gt;Another instance that at first seemed like an oddity is the &amp;ldquo;anti-capitalism&amp;rdquo;
tag in their web directory. For instance, one of the entries in their directory
is a site dedicated to listing alternative online stores to Amazon. I am
absolutely on board with avoiding Amazon and supporting small businesses, but
this site was tagged as an anti-capitalist website&amp;hellip; even though its primary
goal is to direct you to stores that operate for profit.&lt;/p&gt;
&lt;p&gt;It seems to me that the people in charge of the Yesterweb are bitten by the
socialist memes that all the worst parts of our society are the core tenets of
capitalism, and resisting huge corporations that are in bed with the government
for unfair advantage is somehow anti-capitalist. It&amp;rsquo;s weird, and I think it
attracts similarly confused socialists into their fold and repels people who
would otherwise be interested in participating but don&amp;rsquo;t appreciate the
politics.&lt;/p&gt;
&lt;h2 id="platform-hypocrisy"&gt;Platform Hypocrisy&lt;/h2&gt;
&lt;p&gt;Like any good community, the Yesterweb operates on many auxiliary platforms
where a plain old website isn&amp;rsquo;t sufficient. Among these platforms is Discord
for real-time chat. The folks at Yesterweb are so embarrassed by this decision
that they even wrote &lt;a href="https://yesterweb.org/p/why-discord.html"&gt;an article&lt;/a&gt; attempting to justify their choice.&lt;/p&gt;
&lt;p&gt;tl;dr: most internet users are already using it&lt;/p&gt;
&lt;p&gt;Isn&amp;rsquo;t that true of all the other online services that Yesterweb is trying to
retreat from? The obvious choice for a real-time chat platform for a community
whose goal is to return to the purer net from the 90s and early 00s is
&lt;a href="https://en.wikipedia.org/wiki/Internet_Relay_Chat"&gt;IRC&lt;/a&gt;. In their justification article, they acknowledge the existence of IRC
but write it off because it, among other decentralized platforms, allegedly are
bastions of hate speech, because that&amp;rsquo;s what free speech is, apparently. Never
mind the fact that they could run their own channel or even their own IRC
network with their own set of rules if they wanted.&lt;/p&gt;
&lt;p&gt;I see this as a cheap compromise on their principles that could be easily
overcome if they weren&amp;rsquo;t more interested in political grandstanding.&lt;/p&gt;
&lt;h2 id="a-fundamental-meta-issue"&gt;A Fundamental Meta Issue&lt;/h2&gt;
&lt;p&gt;As much as I like hearing other people express their nostalgia for the web of
yesteryear, I can&amp;rsquo;t help but notice a glaring problem with Yesterweb: their
very existence is essentially to complain about the modern web.&lt;/p&gt;
&lt;p&gt;Yesterweb has published a quarterly zine for about a year now. In their fourth
issue, there are still multiple articles which are essentially someone telling
their story about the early days of the web and how the modern web doesn&amp;rsquo;t live
up to it. &lt;a href="https://yesterweb.org/zine/issue-04/11"&gt;The article I read&lt;/a&gt; was well written, and I enjoyed reading it,
but I think the main reason I enjoyed reading it is because I hadn&amp;rsquo;t read any
of the other issues or articles. I don&amp;rsquo;t see myself clamoring for the latest
issue of a zine going over the same old things forever.&lt;/p&gt;
&lt;p&gt;Really the fundamental issue is that Yesterweb does not really contribute to
the thing it is trying to promote. The best it offers is its site directory
which at least points people to interesting sites to explore, but the old ways
aren&amp;rsquo;t going to be accepted unless there are more interesting things to do!
It reminds me a lot of many atheist and anti-feminist YouTube channels from
years ago: they have a message for people who haven&amp;rsquo;t heard it before, but you
quickly exhaust everything they have to say. This wouldn&amp;rsquo;t be a problem if it
weren&amp;rsquo;t for one simple fact: they keep saying it!&lt;/p&gt;
&lt;p&gt;It is a double-edged sword. On one hand, they need to continue putting out new
material for people to stumble across, but on the other, they neglect their
existing audience&amp;rsquo;s wishes for something new to hear about. Yesterweb faces the
same issue. I see them continuing to be a gateway for new eyes to see that
people long for the net gone by, but they will be quickly forgotten except for
things like the directory which are genuinely helpful.&lt;/p&gt;
&lt;h2 id="epilogue"&gt;Epilogue&lt;/h2&gt;
&lt;p&gt;It turns out there were way deeper issues afoot than I could have imagined. I
highly recommend &lt;a href="https://suboptimalism.neocities.org/writings/yesterweb"&gt;this documentary&lt;/a&gt; from suboptimalism that goes into the
whole history of Yesterweb and why things turned out how they did.&lt;/p&gt;</description></item><item><title>You Have a Right to Complain</title><link>https://mcmackins.org/posts/election-gatekeeping/</link><pubDate>Tue, 08 Nov 2022 00:00:00 -0600</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/election-gatekeeping/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you don&amp;rsquo;t vote, you have no right to complain.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;m not sure when I first heard this sentiment, but I rank it up with the most
overdone memes in American politics. Any time the question of whether someone
should bother participating in the election is raised, I hear this slogan
repeated. It&amp;rsquo;s practically a tautology, a truism accepted by all good American
citizens.&lt;/p&gt;
&lt;p&gt;The reasoning behind this sentiment is, perhaps obviously, that in a democratic
society, each citizen has an opportunity to voice their opinion in a very
direct sense by voting. Therefore, if you choose not to participate in an
election, then you forgo this opportunity, and you therefore have no legitimate
basis on which to complain about the political state of affairs in your
country, because you had the opportunity to change the state of things and
decided not to.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s consider then the basis for complaints of those who do participate in
elections. If you vote in an election (let&amp;rsquo;s only consider one office for
simplicity&amp;rsquo;s sake), then your selected candidate either wins or loses.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If they win, then you voted for things to be as they are, so you have no
right to complain.&lt;/li&gt;
&lt;li&gt;If they lose, then you had your opportunity to voice your opinion, and
society disagreed with you, so you should stop being a sore loser.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It seems to me, then, that by this logic, nobody has any right to complain at
all! It&amp;rsquo;s just that the people who vote in elections want to feel better about
their decision to vote and shout down people who raise their grievances with
the system because they have no right to complain.&lt;/p&gt;
&lt;p&gt;There are many reasons people might choose not to participate in
elections. Maybe they are disgusted by the concept of democracy altogether and
for fear of being a hypocrite they refuse to vote. Maybe they are genuinely
indifferent to the outcome of the election and don&amp;rsquo;t want to waste their
time. Or maybe they just don&amp;rsquo;t like any of the candidates on the ballot. All
that matters is that it&amp;rsquo;s none of your business why someone does or doesn&amp;rsquo;t
vote. Just as free individuals have a right to speak their mind, so do they
also have a right to keep their mouth shut if they so desire, and when they
decide to raise objection to what someone does at a later time, who are you to
tell them that they have no right to their opinion?&lt;/p&gt;
&lt;p&gt;Everyone has a right to complain, and even if someone chooses not to decide,
they still have made a choice.&lt;/p&gt;</description></item><item><title>Why I Stopped Using the GPL</title><link>https://mcmackins.org/posts/not-gpl/</link><pubDate>Mon, 30 Mar 2020 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/not-gpl/</guid><description>&lt;p&gt;Some time ago, I wrote &lt;a href="https://mcmackins.org/posts/gpl/"&gt;an article&lt;/a&gt; about why I used the GNU General Public
License for my software despite the arguments that it can&amp;rsquo;t possibly be a free
license when it employs restrictions on how the software may be
distributed. Since then (and it&amp;rsquo;s been some years now), I&amp;rsquo;ve significantly
changed my mind about the GPL and &lt;a href="https://gnu.org/copyleft"&gt;copyleft&lt;/a&gt; in general.&lt;/p&gt;
&lt;p&gt;Once upon a time on IRC, I got into an argument with my friend apotheon about
copyleft. apotheon is the founder of the &lt;a href="http://copyfree.org"&gt;copyfree initiative&lt;/a&gt;. For a long
while, I had thought that copyfree was just a pretentious name for so-called
&amp;ldquo;permissive&amp;rdquo; software licenses which permitted proprietary software developers
to appropriate free software to enhance their user-subjugating programs, a
pretense to virtue over superior copyleft licenses. However, he presented to me
an argument I&amp;rsquo;d never heard before: copyleft is self-defeating in practice.&lt;/p&gt;
&lt;p&gt;Take for instance the classic case of Linux and ZFS. Linux is an operating
system kernel licensed under the GPL version 2. ZFS is a file system licensed
under the Common Development and Distribution License (CDDL) of some version.
Each of these are copyleft licenses, i.e. when you &amp;ldquo;distribute&amp;rdquo; any other
software with them in particular ways, even if that other software is released
under a different license, the collection as a whole must be distributed as if
everything was under the copyleft license. That being the case, it is
&lt;strong&gt;illegal&lt;/strong&gt; to distribute GPL and CDDL software together as one integrated
software system, because each effectively requires some parts of software
distributed under the terms of the other license to be relicensed.
Unfortunately, in the case of Linux and ZFS, the specifics of what distribution
conditions trigger these restrictions are a subject of some debate, and until
someone gets fined or goes to jail after a court judgement, we simply don&amp;rsquo;t
know for sure where the line lies.&lt;/p&gt;
&lt;p&gt;Some copyleft licenses have explicit compatibility with other copyleft
licenses. For instance, the Creative Commons Attribution-ShareAlike (CC-BY-SA)
license is explicitly compatible with the GPL of some versions. This was a
conscious acknowledgment by the Creative Commons license authors that their
license would get in the way of their very goal if people wanted to use a
different license for their software (the CC licenses are generally aimed at
artistic works rather than software). However, the same cannot be said for the
CDDL or many other copyleft licenses. They covered one flaw but far from the
entire issue, and the GPL doesn&amp;rsquo;t have any explicit compatibility clauses; it
relies on other licenses being compatible with it explicitly.&lt;/p&gt;
&lt;p&gt;Perhaps copyleft terms do discourage some proprietary software developers from
using free software as a base for nonfree software, but many companies simply
ignore the terms with the knowledge that the developers lack the funding to
take them to court for copyright infringement. Why bother with a facade of
security whilst stepping on the toes of those who want to make more free
software?&lt;/p&gt;
&lt;p&gt;Copyfree licenses also don&amp;rsquo;t truly depend on copyright law to work. They
practically simulate how things would be if the government simply didn&amp;rsquo;t
intervene, which is really how I wanted it to be anyway, even though I
acknowledged copyleft wouldn&amp;rsquo;t work in such a system. About the only thing
modern copyright law does that I appreciate is that it provides a means of
taking someone to court for plagiarism, but it doesn&amp;rsquo;t even really do a good
job of that. We&amp;rsquo;d be much better off without copyright and perhaps with a
specific anti-plagiarism law.&lt;/p&gt;
&lt;p&gt;It became clear to me that my license preferences were at odds with my real
goals and principles. I was trying to justify means with ends that would not
even be reached by those means, and so I stopped using the GPL.&lt;/p&gt;
&lt;p&gt;For those curious, my preferred license now is the Copyfree Open Innovation
License (&lt;a href="http://copyfree.org/content/standard/licenses/coil/license.txt"&gt;COIL&lt;/a&gt;). I use either it or the &lt;a href="https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"&gt;GNU All-Permissive License&lt;/a&gt;
depending on the scope of the project and whether I am concerned about software
patent issues.&lt;/p&gt;</description></item><item><title>Living the Simple Life</title><link>https://mcmackins.org/posts/simple-life/</link><pubDate>Sun, 29 Mar 2020 01:00:00 +0000</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/simple-life/</guid><description>&lt;p&gt;I&amp;rsquo;m definitely not the first person to comment about this, nor am I the most
qualified to explain this phenomenon, but it&amp;rsquo;s had a major impact on my life in
the last year or so, and I want to share my thoughts and experiences.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s no secret or surprise that today&amp;rsquo;s highly connected and digital lifestyle
takes a toll on mental health. Modern media and social media sites vie for your
attention via articles and algorithms designed to keep you in a constant state
of outrage. It doesn&amp;rsquo;t take a doctor to tell this isn&amp;rsquo;t a good recipe for
long-term sanity or satisfaction.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been relatively detached from mainstream media and social media for
several years now, but I&amp;rsquo;ve still been very attached to my computer throughout
that time. I don&amp;rsquo;t think computers are unhealthy, but I definitely spend more
time in front of mine than is probably good for me. Within the past year or so,
I&amp;rsquo;ve been taking steps to get away from the computer now and then to experience
life unplugged as I did for a few years in my childhood before the Internet
took over my daily habits.&lt;/p&gt;
&lt;p&gt;My favorite way to do this now is to go to a coffee shop without a computer and
just write in my journal. I also bring a little sign with me to put on the
table inviting strangers to sit and have &lt;a href="https://streetepistemology.com/"&gt;interviews&lt;/a&gt; with me. This is very
refreshing for someone like me who doesn&amp;rsquo;t get out very often. I find that I
have fewer and fewer friends in close physical proximity, and although none of
my interviewees have turned into proper friends, it&amp;rsquo;s been very nice to make
some new personal connections with people. As an introvert who has a heck of a
time initiating conversation with strangers, this is definitely a great thing
for me.&lt;/p&gt;
&lt;p&gt;Another way I like to relax is by listening to music. Now, I&amp;rsquo;m sure most
anybody reading the article likes listening to music; it&amp;rsquo;s one of those
universal human things. However, I&amp;rsquo;d like you to consider when the last time
was that you sat down and just listened to an entire album from beginning to
end with no interruptions and without doing something else at the same time
like using your phone or driving. Have you &lt;em&gt;ever&lt;/em&gt; done that? Nowadays, people
mostly use music to fill blank space in their lives; it isn&amp;rsquo;t an active thing
except for the occasional concert. I keep my stereo system in a completely
different room from all my computer equipment. When I want to relax, I get up
from the computer, put on an album, and just sit and listen to the whole
thing. I might get up a time or two for a drink, but I make it a point not to
get distracted from the music. Music shouldn&amp;rsquo;t be the background for our
activities; we need to see it once again for the activity that it is.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d like to start reading books again. I stopped reading in the middle of a
very difficult book (actually it&amp;rsquo;s not even close to the middle), and I guess I
should just read something else, because I&amp;rsquo;m unlikely to feel like making any
progress for quite a long time. If you&amp;rsquo;re curious, the book is volume 1 of The
Gulag Archipelago. It&amp;rsquo;s a fantastic recounting of a man&amp;rsquo;s experience in
communist Russia, and it seems like a very important read, but it is absolutely
brutal to get through. Maybe I&amp;rsquo;ll finish it some day.&lt;/p&gt;
&lt;p&gt;One thing I did also for a little while and need to get back into doing is
writing before bed. I made a point that 30 minutes before bed, I would get off
the computer and write in my journal until it was time to sleep. The point of
this was primarily because of some research I&amp;rsquo;ve read where looking at blue
light from screens isn&amp;rsquo;t good for circadean rhythm, but it also helped get my
mind off of the day before bed. Maybe I&amp;rsquo;ll start reading instead.&lt;/p&gt;
&lt;p&gt;I encourage you also to go on more walks if you aren&amp;rsquo;t very active
already. It&amp;rsquo;s really a treat to take in the environment at a leisurely pace
without being bothered by technology.&lt;/p&gt;
&lt;p&gt;I realize this kind of sounds like when old people go on about how much better
life was before all this modern technology. I&amp;rsquo;m not against technology, though
I do have many issues with the way most people use it nowadays. It&amp;rsquo;s very easy
to be swept up in the convenience and stimulation of technology, but for your
own sake, I implore you to take a break more often.&lt;/p&gt;</description></item><item><title>I'm Switching to OpenBSD</title><link>https://mcmackins.org/posts/openbsd/</link><pubDate>Sun, 29 Mar 2020 00:00:00 +0000</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/openbsd/</guid><description>&lt;p&gt;It&amp;rsquo;s been a long, long while since I wrote on this blog, but I finally have
something else to write about. I&amp;rsquo;ve become quite disillusioned about Linux and
the community and software ecosystem which surrounds it. While I&amp;rsquo;d choose
GNU+Linux any day over Windows or macOS, I&amp;rsquo;m starting to see that it has very
serious issues that are not being taken seriously by influential figures.&lt;/p&gt;
&lt;p&gt;There are many, many things to be concerned about, but a couple of things
caught my attention specifically. One is an inherent problem with the fact that
Linux (the kernel) development is separated from that of the operating systems
built around it (such as GNU). &lt;a href="https://blog.farhan.codes/2018/06/25/linux-maintains-bugs-the-real-reason-ifconfig-on-linux-is-deprecated/"&gt;This article&lt;/a&gt; explains one of the instances
in which Linux is forced to maintain known bugs in the system in the name of
backwards compatibility for userspace applications. It&amp;rsquo;s well known that Linus
Torvalds (although he is not on the development team anymore) would berate
contributors for making any change that would break userspace. My other
concerns have to relate with the &lt;a href="https://nosystemd.org/"&gt;many problems with systemd&lt;/a&gt;, the new init
system used on most popular GNU+Linux distributions such as Debian. There is
one telling thing that isn&amp;rsquo;t mentioned on that article at this time: when a
systemd service file is configured to run as a user that does not exist, it
escalates it to root instead! Red Hat has been informed of this issue, and they
say that it is a feature! This is completely unacceptable for any system; it&amp;rsquo;s
a classic Microsoft-style security failure.&lt;/p&gt;
&lt;p&gt;In addition to issues with Linux, over the past several years I have become
more and more uncomfortable with the implications of the &lt;a href="https://www.gnu.org/copyleft/"&gt;copyleft&lt;/a&gt; style of
licensing advocated for by the FSF. My friend apotheon convinced me that it is
indeed a self-defeating philosophy. Maybe I&amp;rsquo;ll write another article about that
some time in the next decade. I&amp;rsquo;ve instead been promoting &lt;a href="http://copyfree.org"&gt;copyfree&lt;/a&gt;
philosophy which is far more consistent and doesn&amp;rsquo;t require copyright law in
order to function, which appeals to my libertarian tendencies.&lt;/p&gt;
&lt;p&gt;Because of this situation, I&amp;rsquo;ve decided to switch to BSD basically anywhere I
can. I&amp;rsquo;m starting with my new ThinkPad T480 laptop I got after a frustrating
two-month wait (blame COVID-19), which I&amp;rsquo;m using to write this article. My
preferred BSD is OpenBSD because of its simplicity and focus on security. I&amp;rsquo;ve
started to take computer security a lot more seriously lately, and OpenBSD
makes it relatively painless to build a secure system.&lt;/p&gt;
&lt;p&gt;I am planning to build a NAS soon, and I&amp;rsquo;ll be using FreeBSD for its first
class support of the amazing ZFS file system. I plan to use FreeNAS for the
software.&lt;/p&gt;
&lt;p&gt;Once I finally work out all the kinks (mostly hardware related), I&amp;rsquo;ll write an
article about the IBM ThinkPad 365XD I acquired and loaded with NetBSD 8.1.&lt;/p&gt;
&lt;p&gt;If all this sounds interesting to you, I strongly encourage you to give it a
try. If you don&amp;rsquo;t have hardware to dedicate to it, try it in a virtual machine
or something. You may find it frustrating at first, but once you learn to read
its documentation, you&amp;rsquo;ll find OpenBSD to be a very friendly and understandable
system.&lt;/p&gt;</description></item><item><title>Walkie Talkies Aren't Just Toys</title><link>https://mcmackins.org/posts/frs-test/</link><pubDate>Sat, 20 Oct 2018 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/frs-test/</guid><description>&lt;p&gt;This past Tuesday, the 16th, most of the north part of my town lost power, some
for longer than others. My power outage lasted about 3 hours. However, instead
of sitting around bored during this extended outage, I decided to do something
productive.&lt;/p&gt;
&lt;p&gt;A few weeks ago, I bought some FRS (Family Radio Service) walkie talkies,
specifically the Retevis RT45 model, by recommendation of somebody else. FRS is
the unlicensed two-way radio band used by most of the cheap walkie talkies you
can get at department stores like Walmart.&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://mcmackins.org/img/retevis-rt45_hu_1b049b091a24eaf.webp"
 alt="Retevis RT45 radios"
 &gt;
&lt;/p&gt;
&lt;p&gt;I bought these radios with the intention of including them in a family disaster
kit that I am designing, but before I could be confident in including them, I
needed a realistic idea of what they could be used for. Ideally, a radio like
this would be most effective if it could cover the entire neighborhood. That
way, they could be used for coordination inside the neighborhood without dark
zones, or someone could volunteer to go door to door and check on the
neighbors, reporting back home for someone to keep a log of who is either in
trouble or needs to be watched (say, they have a medical condition whose
treatment needs electricity).&lt;/p&gt;
&lt;p&gt;So, when my stepbrother came to bother me because he was bored during the power
outage, I suggested that we go on a walk, and further that we should take this
chance to test the radios to see if we can get out of range.&lt;/p&gt;
&lt;p&gt;The original plan was to get incrementally further from each other and check
reception, but we very quickly got out of visible range from each other and
changed to a check-in system where we would report when we reached milestones.&lt;/p&gt;
&lt;p&gt;This was a resounding success. To be honest, I wasn&amp;rsquo;t really sure whether these
little radios would even have good reception through a few houses (they put out
less than 0.2 watts), much less the entire neighborhood. Take a look at this
map of the longest distance from which we communicated:&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://mcmackins.org/img/frs-test-map_hu_dcf9830035415533.webp"
 alt="Distance map"
 &gt;
&lt;/p&gt;
&lt;p&gt;This distance is approximately 0.83 miles. Now you might have noticed that this
distance doesn&amp;rsquo;t actually cover the whole neighborhood. However, the reason we
stopped there is not because the signal was too weak after that point but
because of some confusion about a landmark my stepbrother had reached, so I
thought he had reached the end when he hadn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;The communications at that distance were absolutely crystal clear, just like
when we were only a short distance apart. I have great confidence that we could
have covered the entire neighborhood, and maybe even a couple of neighborhoods
beyond.&lt;/p&gt;
&lt;p&gt;A friend of mine online did point out one flaw in this experiment: the power
was out! With the power being out, lots of interference sources were disabled
during our test. Now, I did consider that in a disaster scenario in which these
radios were necessary for communication, the power would probably still be
out. However, there is somewhat of a point there, and I&amp;rsquo;ll need to conduct this
experiment again while the power is on. Hopefully, I can do that before too
long.&lt;/p&gt;</description></item><item><title>My first math paper</title><link>https://mcmackins.org/posts/question-deletion/</link><pubDate>Tue, 03 Oct 2017 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/question-deletion/</guid><description>&lt;p&gt;I recently encountered a scenario in a class I&amp;rsquo;m taking where there was a big
argument about what should be done with unfair questions on an exam. The
discussion appeared to be entirely centered on intuition and emotions, so I
decided to settle the matter with mathematics. I think this information could
be useful to teachers in a similar predicament.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mcmackins.org/dl/papers/question-deletion.pdf"&gt;Download the paper (PDF)&lt;/a&gt;&lt;/p&gt;</description></item><item><title>What's Up?</title><link>https://mcmackins.org/posts/update1704/</link><pubDate>Sat, 29 Apr 2017 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/update1704/</guid><description>&lt;p&gt;It&amp;rsquo;s been 3 years since I wrote &lt;a href="https://mcmackins.org/posts/fsf/"&gt;this story&lt;/a&gt; about joining the FSF, so I
figured it was a good time to write another one of these updates to catch
anyone up who happens to care.&lt;/p&gt;
&lt;p&gt;First, let&amp;rsquo;s talk about my psychological improvement since the last time I
wrote one of these. If you&amp;rsquo;ve read the one from August 2014, you&amp;rsquo;ll probably
notice I was in a fairly depressed state and still hung up about my
break-up. It&amp;rsquo;s been plenty of time since then, and I feel a lot better
now. Honestly, I&amp;rsquo;m a little embarrassed about how much I was dwelling on it at
the time, but I&amp;rsquo;m not going to take down the entry. It was an important,
character-building event in my life, and embarrassing as it may be, I wouldn&amp;rsquo;t
be the same if it didn&amp;rsquo;t turn out that way.&lt;/p&gt;
&lt;p&gt;Since joining the FSF, I&amp;rsquo;ve developed a much stronger political identity. I&amp;rsquo;ve
learned to think for myself and how to notice inconsistencies in my thinking. I
have a much more nuanced view on libre software, and I&amp;rsquo;m able to approach
questions without having to refer to FSF publications to articulate my
positions, and I&amp;rsquo;ve discovered where I personally disagree with RMS and the FSF
on several issues. I&amp;rsquo;ve also found my political leaning to be strongly
libertarian. I can&amp;rsquo;t tell for sure if I mostly lean right or left, and I
hesitate to call myself a centrist, because I find the term is
pretentious. Right now, I&amp;rsquo;m finding myself going back and forth between support
and question regarding anarcho-capitalism. I&amp;rsquo;ve been a strong nationalist for
most of my life, and questioning the legitimacy of the state is causing some
cognitive dissonance within me. We&amp;rsquo;ll see where that goes with time.&lt;/p&gt;
&lt;p&gt;One of the more notable changes for me recently is a drastic swing in religious
views. About August of last year, I encountered the well-known debate between
naturalist Bill Nye and creationist Ken Ham regarding whether the Bible is
important for living in today&amp;rsquo;s world (or something like that). Most people
detest that debate, seeing it as a waste of Nye&amp;rsquo;s time arguing with an
ideologue and giving creationists an opportunity to feel proud of their beliefs
via confirmation bias. For me, though, as an intellectually honest creationist
at the time, it was quite different. As I saw the real logic put before me, I
realized the problem with how I was justifying my continued belief in the
Bible.&lt;/p&gt;
&lt;p&gt;I had known for a long time that evolution by Darwinian natural selection was
well-established science. I (as many other Christians continue to do) merely
adjusted my interpretation of the creation myth, thinking to myself that maybe
evolution was just God&amp;rsquo;s clever medium by which he created life leading up to
Adam and Eve. However, listening to the debate, I realized that evolution
necessarily requires the existence of death for it to operate, but death isn&amp;rsquo;t
said to occur until after original sin, which means the Bible does implicitly
say that evolution didn&amp;rsquo;t happen. After that, I suspended my belief in the
Bible and called myself a &amp;ldquo;cold deist&amp;rdquo;, meaning that I believed something did
intentionally create the universe, but it did not intervene in any matter or
otherwise tamper with the laws of physics.&lt;/p&gt;
&lt;p&gt;I continued that way for a few months, and my mind was far more open to hearing
people out who had opinions that previously unsettled me. I told my (quite
religious) grandparents how I felt and stopped going to church with them. My
grandfather is the only one to genuinely hear me out, and I gave him my copy of
Thomas Paine&amp;rsquo;s &lt;em&gt;The Age of Reason&lt;/em&gt;, though he has yet to finish it.&lt;/p&gt;
&lt;p&gt;After hearing what many atheists had to say, I slightly revised my position to
&amp;ldquo;agnostic deist&amp;rdquo;, finding that it was dishonest to say that the existence of a
universe was evidence of a deity. Then, after reading Richard Dawkins&amp;rsquo; &lt;em&gt;The God
Delusion&lt;/em&gt;, I crossed the threshold to &amp;ldquo;agnostic atheist&amp;rdquo;, realizing that claims
of a creator deity created more questions than answers, and the idea had no
real influence over my life decisions anyway. That&amp;rsquo;s where I still stand when
writing this, and I see little chance of it changing.&lt;/p&gt;
&lt;p&gt;On a different note, influenced by a slight uptick in violent crime in my
hometown, I finally got around to buying a handgun and getting my concealed
carry license. I made the purchase and started practicing back in December, and
I got my license in the last week of March. For those curious, I carry a Smith
&amp;amp; Wesson M&amp;amp;P 9 Shield loaded with Hornady Critical Defense, though I&amp;rsquo;m
considering replacing the ammo with Federal HST 147 grain. I also carry a Ruger
LCP II, currently loaded with some old JHP rounds I inherited, and I&amp;rsquo;m going to
test some Hornady Custom in it to replace them.&lt;/p&gt;
&lt;p&gt;I also joined the NRA as a life member, because I think that personal defense
and a means to rebel against tyranny are the most important rights we
have. Without those, we cannot possibly secure any of our other rights.&lt;/p&gt;
&lt;p&gt;Also, since buying my first pistol, I brought down the rifles from the attic. I
sold my old Marlin Model 60 and bought a Ruger 10/22 Takedown which I may
eventually use for small game hunting. I also bought a Kel-tec KSG for home
defense, and I tried to get my dad&amp;rsquo;s M1 Carbine back in working order, but
success eludes me. Maybe I&amp;rsquo;ll get it fixed some time this year.&lt;/p&gt;
&lt;p&gt;Things I&amp;rsquo;m up to now: reading Sam Harris&amp;rsquo; &lt;em&gt;Waking Up&lt;/em&gt;, adding online
multiplayer to &lt;a href="https://github.com/delwink/agario-checkers"&gt;Agario Checkers&lt;/a&gt;, finishing my fourth year of school, and
planning to go to &lt;a href="http://www.southeastlinuxfest.org/"&gt;SELF&lt;/a&gt; this year, which will be my longest road trip yet.&lt;/p&gt;</description></item><item><title>Decoding PowerPaint's custom image format</title><link>https://mcmackins.org/posts/decoding-ymg/</link><pubDate>Sat, 20 Aug 2016 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/decoding-ymg/</guid><description>&lt;p&gt;This all started from my interest in old hardware. I&amp;rsquo;d acquired an old 90s
laptop PC from a coworker, and I decided to install &lt;a href="http://www.freedos.org"&gt;FreeDOS&lt;/a&gt; on it. While
browsing the available FreeDOS software, I stumbled upon PowerPaint 2, an image
editor. I decided to give it a try, and I made a very amusing doodle that I
simply had to get onto my main PC.&lt;/p&gt;
&lt;p&gt;The trouble was that PowerPaint supports 3 different image formats, and all of
them appear to be custom to PowerPaint. The one I used for the image was called
YMG, and there isn&amp;rsquo;t a way to convert them once they&amp;rsquo;re created. In my
persistence, I decided I would have to reverse engineer the format myself to
convert my precious drawing:&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://mcmackins.org/img/bubba_hu_eede8c4d51211c03.webp"
 alt="Bubbazoar"
 &gt;
&lt;/p&gt;
&lt;p&gt;To make things simple, I drew a test image:&lt;/p&gt;

&lt;div class="center"&gt;
&lt;img src="https://mcmackins.org/img/sample.ymg.png"
 alt=""
 
 style="image-rendering: pixelated; min-width: 480px;"&gt;
&lt;/div&gt;
&lt;p&gt;It&amp;rsquo;s just the first few colors in the program&amp;rsquo;s color palette put in order in the smallest canvas allowed by the program.&lt;/p&gt;
&lt;p&gt;I opened up this YMG file using a hex editor and analyzed the data. It looks
like:&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://mcmackins.org/img/sample.ymg-hex_hu_337af1cc450439b3.webp"
 
 &gt;
&lt;/p&gt;
&lt;p&gt;From what I guessed, it had an 8-byte header, and the rest of the bytes
represented the color of a single pixel per byte. My guess for the header was
as follows:&lt;/p&gt;
&lt;p&gt;The first 2 bytes are the image width; the second 2 bytes are the height. The
fifth byte was always 0x03, which seems to be an internal code used by
PowerPaint to represent the YMG format. The last 3 bytes of the header are the
ASCII letters y, m, and g, representing the format.&lt;/p&gt;
&lt;p&gt;Next, I had to figure out the color palette. It didn&amp;rsquo;t take long to see that
the colors are not necessarily in order using a common RGB bit mask. The first
8 colors followed a pattern where the low 3 bits represented red, green, and
blue (in descending order of significance), and the next 8 colors were the same
but a bit brighter. However, the next 16 colors just ascended the gray scale. I
couldn&amp;rsquo;t think of a conceivable simple algorithm that would produce colors in
that order, so I went to the source code.&lt;/p&gt;
&lt;p&gt;I spent 5 hours scouring the source for anything related to color palettes. I
found the routines that would set and get the VGA color palete, but the palette
setting routines were never called in the main program. It seemed to be pulling
the palette out of thin air. At the brink of giving up, I closed my editors and
just looked at the file names in the source distribution for anything that
hinted at what I was looking for. Lo and behold, my eye caught a file by the
name of DEFAULT.PAL, and I figured the extension was short for palette.&lt;/p&gt;
&lt;p&gt;I opened it with my hex editor, and sure enough, it seemed to resemble the
pattern I was seeing. Each 3 bytes seemed to contain an RGB value, and the
file&amp;rsquo;s length was 256 times 3, the expected number.&lt;/p&gt;
&lt;p&gt;At this point, I started writing code.&lt;/p&gt;
&lt;p&gt;I had it read the header to determine width and height, and I had it load the
palette file to make the correlation of numbers to colors. From there, I used
the &lt;code&gt;wand&lt;/code&gt; module to generate the final image and save it to disk.&lt;/p&gt;
&lt;p&gt;Immediately, I had errors. Somehow, the last row of the image didn&amp;rsquo;t line up
with the expected width. Figuring it must mean that it shaved off the last bit
of the image for some primitive size reduction, I added some code to just fill
in the missing bit with black. Then, I got this image:&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://mcmackins.org/img/bubba1_hu_70dc024effd6aa8b.webp"
 alt="First attempt"
 &gt;
&lt;/p&gt;
&lt;p&gt;Well, something was clearly not right. It became clear that the width wasn&amp;rsquo;t
quite right. I tried subtracting 1 and then 2 from the width, and I finally got
something more acceptable:&lt;/p&gt;
&lt;p&gt;


&lt;img src="https://mcmackins.org/img/bubba2_hu_62d7b9090636d004.webp"
 alt="Second attempt"
 &gt;
&lt;/p&gt;
&lt;p&gt;The image was still really dark, though. It seems the palette file&amp;rsquo;s RGB values
were lower than what was showing on my DOS computer. I settled on multiplying
the color values by a constant 4.2, resulting in a more desirable result.&lt;/p&gt;
&lt;h2 id="epilogue"&gt;Epilogue&lt;/h2&gt;
&lt;p&gt;The converter still isn&amp;rsquo;t perfect. It was including some gray pixels at the
bottom of the image that the DOS program never displayed. Could be an error in
PowerPaint&amp;rsquo;s programming, or a shortcut they took somewhere. I just changed
them to black and changed the image dimensions using an image editor.&lt;/p&gt;
&lt;p&gt;Also, the pixels on my DOS computer are actually not perfect squares; they&amp;rsquo;re
slightly too tall. As a result, the final image looks just a little squished
vertically, and there&amp;rsquo;s no good way to restore its dimensions.&lt;/p&gt;
&lt;p&gt;If you ever decide to use PowerPaint yourself, you can &lt;a href="https://mcmackins.org/dl/ymgconv.tar.gz"&gt;download my program&lt;/a&gt;
to convert your images to modern formats (but I&amp;rsquo;m not writing documentation for
it). However, I plan to write a C program some time to replace PowerPaint and
use the well-documented Bitmap format so that conversion won&amp;rsquo;t be necessary,
and I may be able to support 16- or 32-bit color.&lt;/p&gt;
&lt;h2 id="second-epilogue"&gt;Second Epilogue&lt;/h2&gt;
&lt;p&gt;I received an email in 2025 informing me that the colors are limited to 6 bits, and so when encoded as bytes, they are shifted 2 bits over from where they should be if you want to read them as 8-bit colors. Because of that, my guess of multiplying by 4.2 should really be 4.0 exactly, or just a 2-bit shift to the left.&lt;/p&gt;
&lt;p&gt;I have little interest in maintaining this software and would rather just implement my own paint program, but that&amp;rsquo;s a project for another day. Anyway, if you want more accurate colors, just do a bit shift.&lt;/p&gt;</description></item><item><title>Retro awesomeness</title><link>https://mcmackins.org/posts/gbpong/</link><pubDate>Wed, 08 Jun 2016 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/gbpong/</guid><description>&lt;p&gt;I&amp;rsquo;ve been writing a standard C library for the Nintendo Game Boy system over at
Delwink, and now I&amp;rsquo;ve got a working Pong prototype game. It still needs some
more features yet to be added to the library, but it&amp;rsquo;s a playable game! Check
it out &lt;a href="https://github.com/2mac/gbpong"&gt;on GitHub&lt;/a&gt;, or clone
&lt;code&gt;https://github.com/2mac/gbpong.git&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Fun for hackers</title><link>https://mcmackins.org/posts/ttt/</link><pubDate>Tue, 28 Apr 2015 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/ttt/</guid><description>&lt;p&gt;I made a new program in response to a challenge, and it has turned out to be a
useful learning tool. &lt;a href="https://github.com/2mac/ttt"&gt;See it on GitHub&lt;/a&gt;, or clone
&lt;code&gt;https://github.com/2mac/ttt.git&lt;/code&gt; using Git to check it out. Be sure to first
read the README file before getting started.&lt;/p&gt;</description></item><item><title>New Music: Mini-boss from Zelda: The Wind Waker</title><link>https://mcmackins.org/posts/wwminiboss/</link><pubDate>Sat, 28 Feb 2015 00:00:00 -0600</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/wwminiboss/</guid><description>
 &lt;audio controls preload="auto" src="https://mcmackins.org/audio/wwminiboss.ogg"&gt;&lt;/audio&gt;
</description></item><item><title>Operating Systems Are Like Cars</title><link>https://mcmackins.org/posts/like-cars/</link><pubDate>Thu, 04 Dec 2014 00:00:00 -0600</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/like-cars/</guid><description>&lt;p&gt;Analogies are wonderful. They help us quickly understand complicated and
daunting information easily based on something the majority of the audience
already understands.&lt;/p&gt;
&lt;p&gt;However, analogies are often not perfect. A lot of people like to compare
software to cars when talking about the complex issue of software freedom, but
cars are in finite supply, where software is information that is infinitely able
to be copied.&lt;/p&gt;
&lt;p&gt;When referring to parts of an operating system, however, the car analogy seems
much closer.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s first go over the pieces of a typical operating system. There is the
kernel which interacts with the hardware, standard utilities that make the
system usable, and supplementary software specific to the user&amp;rsquo;s desires.&lt;/p&gt;
&lt;p&gt;The kernel is akin to the engine of a motored vehicle. It takes input from other
parts of the machine in order to create the desired result for the user. In an
OS, this could be drawing a picture on the screen. In a car, this is making the
car accelerate. This analogy breaks down a little bit since the engine only does
one of these jobs, where the kernel will do all handling of hardware. In a
sense, the kernel does the job of the engine, the brakes, and the steering wheel
mechanisms.&lt;/p&gt;
&lt;p&gt;The standard utilities are the parts that the driver uses directly, such as the
pedals and steering wheel. On a POSIX-compliant system like GNU, these are the
commands such as mkdir, cp, and rm. They allow you to create and manipulate the
data on your system as well as some other functions. You use them to control the
kernel at a higher level, just like you press the accelerator to speed up
without having to know what the engine is doing exactly.&lt;/p&gt;
&lt;p&gt;The supplementary software often varies. It corresponds to things like seat
cushions, radios, and doors in a car. They are good to have, but they are not
required in order to have a functional and operable vehicle. It would be hard to
find a car without them, but it is possible to have one without. These are
usually your user applications like text editors, word processors, web browsers,
and the like.&lt;/p&gt;
&lt;p&gt;I hope this clears some things up.&lt;/p&gt;</description></item><item><title>Free Distros Aren't For Suckers!</title><link>https://mcmackins.org/posts/free-distros/</link><pubDate>Mon, 06 Oct 2014 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/free-distros/</guid><description>&lt;p&gt;Within the past two weeks, I have taken yet another turn to freedom, and I&amp;rsquo;m
having a wonderful time with it!&lt;/p&gt;
&lt;h3 id="the-cause"&gt;The Cause&lt;/h3&gt;
&lt;p&gt;Due to my activity in various free software communities, my views are often on
display for many others ready to criticize. I often proclaim that transitioning
to free software is often a slow process. They normally agree, but I would
always get flack for still being in that transition process myself.&lt;/p&gt;
&lt;p&gt;Often, I would announce that I had removed some proprietary application from my
system, and instead of &amp;ldquo;Good job,&amp;rdquo; I often got &amp;ldquo;&lt;em&gt;You&lt;/em&gt; were using &lt;em&gt;that&lt;/em&gt; on
&lt;em&gt;your&lt;/em&gt; machine?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Needless to say, that got a bit annoying. I had always wanted a 100% free
system, but I had to make a transition just like everyone else.&lt;/p&gt;
&lt;h3 id="the-catalyst"&gt;The Catalyst&lt;/h3&gt;
&lt;p&gt;At the time, I had been settling for free applications in userspace but nonfree
drivers in kernelspace. My setup was one massive System 76 Bonobo running Arch
for mostly home use, and a Dell Inspiron Mini running Ubuntu MATE for portable
computing.&lt;/p&gt;
&lt;p&gt;For the most petty reason ever (the screen being too small for some applications
to fit between the MATE panels on the top and bottom), I installed Trisquel Mini
one morning on the netbook, and it was very fast and responsive. I marveled for
the rest of the day on how good the distro was performing even under my budget
hardware.&lt;/p&gt;
&lt;p&gt;This surprise was likely due to a collective belief among the Jupiter
Broadcasting community that the free distros aren&amp;rsquo;t any good practically.&lt;/p&gt;
&lt;p&gt;Now, the Bonobo is a gaming laptop with heavy dependence on proprietary software
to effectively run its NVIDIA graphics card. It will run with the Nouveau
drivers, but the performance was worse than my netbook running Intel graphics.&lt;/p&gt;
&lt;p&gt;After a few days living in total freedom on the netbook, I became uncomfortable
using my Arch machine, knowing that on the hard drive was lurking proprietary
drivers that (for all practicality), I couldn&amp;rsquo;t live without. Eventually, the
empty feeling got to me, and I ordered an Intel NUC (I had been wanting one
anyway). When it showed up, I was able to (with one hiccup) install Parabola
GNU/Linux-libre onto the SSD, and I&amp;rsquo;m still using it to write this article.&lt;/p&gt;
&lt;h3 id="the-future"&gt;The Future&lt;/h3&gt;
&lt;p&gt;As of now, I am running only free software on my &lt;em&gt;primary&lt;/em&gt; machines. My
production servers and my work machine are still running nonfree distros
(including the web server hosting this article).&lt;/p&gt;
&lt;p&gt;In the future, I plan to move my production servers over to Debian GNU/Linux
with the nonfree repositories disabled (my VPS host does not offer official
gnu.org distros).&lt;/p&gt;
&lt;p&gt;My work machine will have to continue running nonfree software due to the nature
of the duties I have at work. Once I am finished with my internship there, that
machine will come home and run a free distro at last.&lt;/p&gt;</description></item><item><title>First week back in school</title><link>https://mcmackins.org/posts/2014-fall-bts/</link><pubDate>Mon, 25 Aug 2014 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/2014-fall-bts/</guid><description>&lt;p&gt;It&amp;rsquo;s been 7 days since I started back at school, and it&amp;rsquo;s been an experience so
far.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m retaking Trigonometry since I had some complications with my schedule last
semester. I applied to be with the same professor for World Civ, but apparently
he accepted a job offer that required him to move to Florida, so I have this
Indonesian professor now. His accent is easy enough to understand, but it&amp;rsquo;s not
quite the same.&lt;/p&gt;
&lt;p&gt;Before I even walked into that class, a girl (whose name shall not be mentioned)
sat next to me and just started talking, which really took me out of my usual
comfort zone, but whatever. She seems mildly interested in the topic of
free software, though I haven&amp;rsquo;t asked her what she thought of my printout of
&lt;a href="https://mcmackins.org/switch"&gt;Why switch to free&lt;/a&gt;. She has my number, but I&amp;rsquo;ve yet again run into
the situation where I can give out my number, but I can&amp;rsquo;t make myself be clear
about why I&amp;rsquo;m giving my number.&lt;/p&gt;
&lt;p&gt;Anyway, after that, I have World Lit I with an interesting professor. She&amp;rsquo;s a
rather old lady with a great appreciation for the old stories we&amp;rsquo;re reading. To
her, it&amp;rsquo;s just any other fiction. She loves it like the young girls love
Twilight.&lt;/p&gt;
&lt;p&gt;On my off days (Tue/Thu), I have a music appreciation course which is amusing to
say the least. I&amp;rsquo;ll end up being graded to go to concerts, which sounds cool,
but it&amp;rsquo;s kind of nervewracking to be forced into making plans like that.
Hopefully, there won&amp;rsquo;t be too much trouble with that.&lt;/p&gt;
&lt;p&gt;My school uses Blackboard Learn, whichs irks me not only because it&amp;rsquo;s
proprietary garbage, but because the IT crew here can&amp;rsquo;t seem to even keep it
online. It was down all weekend, preventing me from turning in one assignment
and blocking my access to even see another.&lt;/p&gt;
&lt;p&gt;I think this semester will be quite entertaining. I just hope I can get over my
shyness sooner. It really sucks.&lt;/p&gt;</description></item><item><title>What's Up?</title><link>https://mcmackins.org/posts/update1408/</link><pubDate>Fri, 15 Aug 2014 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/update1408/</guid><description>&lt;p&gt;This will be the first of many future updates about my personal life. I figure
it&amp;rsquo;s been a bit long since I had any good news. The past month hasn&amp;rsquo;t been too
interesting for me, but it&amp;rsquo;s nice to look back at recent events and assure
myself that I haven&amp;rsquo;t just been rotting away for a month.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s begin with what I&amp;rsquo;m thinking about. I decided to write this update after
realizing after getting home from work that today marks exactly 6 months since
my breakup. Which breakup? My breakup. I&amp;rsquo;ve only had one. I&amp;rsquo;ll try to keep the
ranting down even though I&amp;rsquo;m still really torn up about it.&lt;/p&gt;
&lt;p&gt;For those of you who do not know, I met a girl in 2010 on the Internet. We met
via an online game we happened to both be playing, and we enjoyed the same
activities on said game. We played together all the time, but it wasn&amp;rsquo;t until a
few months later when my PC at that time died that we got to talking outside the
game (my spare laptop couldn&amp;rsquo;t handle it, but there was instant messaging
software). Weeks later, we started to become a little more than just friends,
and eventually it evolved into a serious relationship. We met in person for the
first time on December 27, 2011 (that&amp;rsquo;s one of the few moments in my life I can
actually remember the exact date for), and she stayed for two days (an evening,
a day, and a morning). At nearly the time we&amp;rsquo;d been together for 3 years (I
cannot remember that date), she abandoned me for 3 days, not giving me a word
except &amp;ldquo;I&amp;rsquo;m busy&amp;rdquo; or &amp;ldquo;Wait,&amp;rdquo; then on the third day (a Saturday I think), she
sent me a Word document with a short narrative of a not-so-fictional boy and
girl who had a happy relationship blah blah blah and then she wasn&amp;rsquo;t happy
anymore and left. She also explained in that document that nearly everything I
knew about her personality and values was a complete lie. She had falsified
herself in order to temporarily please me. I convinced her that we might have
had a chance to still stay together, and after giving up any ounce of dignity I
had at the time, she agreed that she was being foolish. That lasted for a while,
and we even met again on December 27, 2013 (how symbolic), and I stayed there
for a week. The whole time (from the attempted breakup until the actual one), I
had been a stressed-out freak, but finally on the 15th of February this year, I
found out she was secretly seeing the guy she tried to leave me for the first
time, and I left her that evening when she returned home.&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t slept right since.&lt;/p&gt;
&lt;p&gt;That ended up being longer than I expected, so let&amp;rsquo;s review July. I learned
about PGP/GPG encryption (and wrote an article on it). I visited my biological
grandfather in Alabama due to his recent cancer diagnosis and stopped by
Nashville on the way back to visit my stepmother&amp;rsquo;s immediate family there. While
in Nashville, I had a little time to play with my Dogecoin, and I picked up and
contributed to a project on GitHub, a couple of Python scripts for getting
exchange rates for cryptocurrencies. I showed my friend Drew how to use Dogecoin
this week, and that&amp;rsquo;s about it.&lt;/p&gt;
&lt;p&gt;On the note of recovering from my breakup, I decided yesterday that it&amp;rsquo;s been
long enough and that I should start trying to meet people again. So, I gave my
waitress at lunch my Delwink business card in order to give her my phone number.&lt;/p&gt;
&lt;p&gt;&amp;hellip;&lt;/p&gt;
&lt;p&gt;I guess she either didn&amp;rsquo;t get the hint or isn&amp;rsquo;t interested. This despite
chatting me up more than any of the other waitresses, recognizing me from high
school, and talking about how she wants to find new friends. :/&lt;/p&gt;
&lt;p&gt;Guess I&amp;rsquo;m looking forward to school starting so I can finally get a life again.
I hope to give more updates in the future, since that&amp;rsquo;s what this site was
originally created for in the first place.&lt;/p&gt;
&lt;p&gt;If you have anything to say, &lt;a href="https://mcmackins.org/about/#contact"&gt;contact me&lt;/a&gt;. Otherwise, until then.&lt;/p&gt;</description></item><item><title>Everyone Should Learn Code</title><link>https://mcmackins.org/posts/everyone-should-code/</link><pubDate>Fri, 06 Jun 2014 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/everyone-should-code/</guid><description>&lt;h2 id="preface"&gt;Preface&lt;/h2&gt;
&lt;p&gt;I know what you&amp;rsquo;re thinking: how can I expect everyone to learn code? After all,
it requires a degree of skill, and you&amp;rsquo;re just fine with the software other
people have programmed&amp;hellip; right?&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t really think so. Consider the fact that you&amp;rsquo;re taught in school about
chemistry and physics regardless of your career path. If you&amp;rsquo;re working in
retail, do you really need to know the volume of two moles of hydrogen at STP?
Probably not, but you&amp;rsquo;re taught anyway. Consider high schools that require an
art credit in order to graduate. If you&amp;rsquo;re going into mechanical engineering, do
you really need to know about chiaroscuro? Certainly not.&lt;/p&gt;
&lt;p&gt;On that level, why not learn code regardless of your field. Well, the examples I
gave weren&amp;rsquo;t exactly encouraging, so let&amp;rsquo;s look at this again under a different
light&amp;hellip;&lt;/p&gt;
&lt;h2 id="the-practicality-of-learning-code"&gt;The Practicality of Learning Code&lt;/h2&gt;
&lt;p&gt;Even if it&amp;rsquo;s a simple language like Python or a scripting language like
JavaScript, learning some language is practical for anyone going into any field,
because everyone in a developed part of the world will spend some amount of time
at a computer, and one of the top reasons that people spend so much money on
computer repairs is not for actual hardware failures, but rather a lack of
software know-how.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m by no means suggesting that you become an expert programmer and learn to fix
all your software, but knowing the basics of programming is a good way to
diagnose issues and find out what it is that&amp;rsquo;s going wrong and what steps to
take in order to fix your issue. Additionally, computers are one of the few
things which people use every day yet seldom know how to control. With a little
bit of programming skill, anyone can automate simple tasks they would otherwise
spend more time working on or spend money to have someone else develop that
software.&lt;/p&gt;
&lt;p&gt;For instance, I could make this website by manually writing the HTML and
uploading it using some FTP client, but I don&amp;rsquo;t like to write HTML. It is far
easier to write out the text and automate what needs to happen. By writing
a simple script for BASH (my command line shell), I can instead write this page in &lt;a href="https://en.wikipedia.org/wiki/Markdown"&gt;Markdown&lt;/a&gt; and automatically turn it into HTML.&lt;/p&gt;
&lt;h3 id="the-dangers-of-ignorance"&gt;The Dangers of Ignorance&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s also important to educate yourself (or be educated) in the area of
programming for deeper reasons. As I stated, few computer users know how to
make their computers do what they want. It&amp;rsquo;s just magic. I don&amp;rsquo;t mean they
really believe that magic powers their computers, but any time you don&amp;rsquo;t know
how something works, it&amp;rsquo;s magic. When you don&amp;rsquo;t know how to control your
computer, you become a slave to the developers of the software running on it. In
the event that the computer runs
&lt;a href="http://gnu.org/philosophy/proprietary-sw.html"&gt;nonfree software&lt;/a&gt;, there are
even more issues at hand.&lt;/p&gt;
&lt;p&gt;To learn how to program is to empower yourself to at the very least know the
fundamentals of how your software works which can give you a better sense of
appreciation for the work software developers such as myself and those with far
more experienced that I make on a regular basis.&lt;/p&gt;
&lt;h3 id="conclusion"&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;If you&amp;rsquo;re interested in learning how to program, there are a number of good
books and guides about programming in whatever language you choose. &lt;a href="https://www.python.org/"&gt;Python&lt;/a&gt; is a good language for beginners.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re still not convinced, or if there is something you&amp;rsquo;d like me to add to
or change about this article, please &lt;a href="https://mcmackins.org/about/#contact"&gt;contact me&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Use PGP Encryption</title><link>https://mcmackins.org/posts/pgp/</link><pubDate>Fri, 06 Jun 2014 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/pgp/</guid><description>&lt;p&gt;You&amp;rsquo;re being watched. That&amp;rsquo;s all there is to it.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;But I&amp;rsquo;ve got nothing to hide!&amp;rdquo; I hear you saying. Sure, you might have nothing
to hide, but if just anyone walked into your home and asked to search
everything, would you let them in? If you would, you&amp;rsquo;re more trusting than I am.
If that&amp;rsquo;s the case, this article isn&amp;rsquo;t for you.&lt;/p&gt;
&lt;p&gt;Otherwise, you may be concerned to know that every packet you send across the
Internet is kept by whatever powers are afoot. Be it governments or Google, your
information is being collected, and you have to take a few steps if that
information is to remain as private as you intended. To ensure that only the
intended reader gets the information you&amp;rsquo;re sending, it needs to be encrypted
so that only they can decrypt it.&lt;/p&gt;
&lt;p&gt;It may seem complicated (and on a technical level, it is), but the process on
your end is actually quite simple. There is a standard for this type of public
key encryption, and it&amp;rsquo;s called OpenPGP. It&amp;rsquo;s an implementation of technology
from the early 90s called Pretty Good Privacy, or PGP.&lt;/p&gt;
&lt;p&gt;This encryption protocol is implemented through different software packages. To
make things more confusing, the most commonly-used implementation is the GNU
Privacy Guard, or GPG. So we have PGP and GPG, which are both pretty much the
same thing, but they&amp;rsquo;re different on a more technical level. Since more than one
implementation exists, I&amp;rsquo;ll refer to them all as PGP.&lt;/p&gt;
&lt;p&gt;You can most easily use PGP encryption through the Enigmail extension for the
Thunderbird e-mail client (and derivative works). You can find a quick setup
guide &lt;a href="http://emailselfdefense.fsf.org"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once you&amp;rsquo;re set up, it&amp;rsquo;s fairly easy to obtain the public keys of people you are
connected with. I use &lt;a href="http://pgp.mit.edu"&gt;this pool&lt;/a&gt; to upload and retrieve
keys.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the result. It turns &lt;a href="https://mcmackins.org/email/pgparticle/in.txt"&gt;this message&lt;/a&gt; into
&lt;a href="https://mcmackins.org/email/pgparticle/out.txt"&gt;this message&lt;/a&gt;. When the recipient obtains their
copy, they can use their private key to decrypt the message and read it like
normal, but the middleman gets nothing but garbage to read.&lt;/p&gt;
&lt;p&gt;Is it invulnerable? No, but it&amp;rsquo;s a whole lot safer to do this than to send your
messages in plain text, practically asking other parties to take a peek. I might
also add that you should send as much encrypted e-mail as you can in order to
protect yourself. If you only encrypt some of your messages, other parties
looking in will place suspicion upon the encrypted e-mails, and they&amp;rsquo;ll target
them. Otherwise, they won&amp;rsquo;t know where to start.&lt;/p&gt;
&lt;p&gt;If you have any questions, there are lots of places to research the topic, or
you can &lt;a href="https://mcmackins.org/about/#contact"&gt;ask me&lt;/a&gt;, and I&amp;rsquo;ll do my best to answer.&lt;/p&gt;</description></item><item><title>Why I use the GPL</title><link>https://mcmackins.org/posts/gpl/</link><pubDate>Mon, 05 May 2014 00:00:00 -0500</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/gpl/</guid><description>&lt;p&gt;The GPL receives a significant amount of criticism for the way it claims to be a
free software license yet imposes a number of restrictions and requirements upon
the users and developers of GPL software.&lt;/p&gt;
&lt;p&gt;One of the most common arguments against the GPL is that it intentionally
restricts its users despite claiming itself as a free software license. These
claims are accurate, but in my opinion looked at in the wrong light.&lt;/p&gt;
&lt;p&gt;The GPL prevents anyone from relicensing the software or derived works under any
other license, making it a viral license. It can only grow in number. This was
an important decision made by Richard Stallman (author of the license) in order
to prevent anyone from making nonfree software using the work of free software
developers.&lt;/p&gt;
&lt;p&gt;The most free way to license any software would be to give up your copyright and
release it into the public domain, allowing anyone to do literally anything with
your software. Freedom is good, so we should do that, right? Eh, not really. The
problem lies in the fact that at this point, freedom becomes dangerous. Anyone
could use their freedom to attack the freedoms of others. The same problem
exists with other permissive licenses like the BSD and MIT licenses.&lt;/p&gt;
&lt;p&gt;The GPL treats software freedom much like the United States treats freedoms such
as the freedom of speech. You can do whatever you want except take away that
freedom from other people. The GPL perpetuates free software, and I truly
respect that.&lt;/p&gt;
&lt;p&gt;I will continue to license my software under the GPL because of its
restrictions. It is through those restrictions that it promotes freedom for all.&lt;/p&gt;
&lt;h2 id="epilogue"&gt;Epilogue&lt;/h2&gt;
&lt;p&gt;Since writing this, my opinions have changed. I discuss them in
&lt;a href="https://mcmackins.org/posts/not-gpl/"&gt;another article&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Why I joined the FSF</title><link>https://mcmackins.org/posts/fsf/</link><pubDate>Tue, 29 Apr 2014 01:00:00 +0000</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/fsf/</guid><description>&lt;p&gt;This is a very important story to me, so I&amp;rsquo;ll start from the beginning.&lt;/p&gt;
&lt;h2 id="introduction-to-linux"&gt;Introduction to &amp;ldquo;Linux&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;Some time about a year ago, I was grounded by my father for something I can&amp;rsquo;t
remember, and I was excruciatingly bored. I possessed a little red Dell
Inspiron Mini (a netbook) that at the time ran Windows 7 Starter. With the
excuse that I would be learning about alternative operating systems, I
downloaded and installed Ubuntu 12.10 via the wubi installer, allowing me to
dual-boot using the Windows bootloader.&lt;/p&gt;
&lt;p&gt;I played around with it, broke it a couple of times, and got a feel for how life
works in a GNU/Linux environment. At that time, I had no idea the mountain of
morals, ethics, and values that had come together to make such an experience
possible. It&amp;rsquo;s only recently that I learned the huge responsibility that I was
at the time neglecting.&lt;/p&gt;
&lt;h2 id="linux-mint"&gt;Linux Mint&lt;/h2&gt;
&lt;p&gt;Some time later, I was encouraged by a friend of mine (Aaron Murtishaw) to
install a distribution called Linux Mint, which at the time was on its 15th
release. He told me about Cinnamon, and it seemed pretty interesting. This was
the first time I installed GNU/Linux the &amp;ldquo;right way&amp;rdquo; by using a flash drive and
GRUB to dual-boot between Win7 and Mint 15 on my main box.&lt;/p&gt;
&lt;p&gt;During this short period, I found myself using Mint more often than Windows, but
a driver issue that I (at the time) couldn&amp;rsquo;t resolve eventually drove me back to
a world of convenience at the price of freedom.&lt;/p&gt;
&lt;h2 id="dark-ages"&gt;Dark Ages&lt;/h2&gt;
&lt;p&gt;For quite some time, all of my computing was done using nonfree software. I
mostly played games with my friends. The only interaction I had with free
software was beyond my knowledge when I used an Ubuntu server to host my gaming
community&amp;rsquo;s website and game servers.&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;An interest in the popular voxel sandbox game Minecraft, particularly its
multiplayer modification CraftBukkit, got me interested in computer programming
for the purpose of creating plugins for said mod. I learned Java code through
some &lt;a href="http://thenewboston.org/list.php?cat=31"&gt;pretty good tutorials&lt;/a&gt; on
YouTube, but through my learning, I began developing my own software, and I had
a nice personal collection of programs before I ever got back around to making
plugins.&lt;/p&gt;
&lt;p&gt;The main thing that kept me occupied was the development of my very own top-down
2D role-playing game. I had always wanted to make my own computer game since I
was about ten years old and making tabletop RPGs. I noticed that I was spending
all of my free time developing and very little (if any) time playing any games.&lt;/p&gt;
&lt;h2 id="arch-linux"&gt;Arch Linux&lt;/h2&gt;
&lt;p&gt;Around that time, the same friend that showed me Mint was pressuring me to try
a lightweight distro called Arch Linux. I was experimenting with virtual
machines at the time, so I spun up a box and tried installing it. It wasn&amp;rsquo;t as
bad as he&amp;rsquo;d made it out to be, so I installed it onto a partition of my external
hard drive and used it for a while.&lt;/p&gt;
&lt;p&gt;At this time, another friend of mine was frequently visiting and seeing what I
was up to. He was very interested, so I set him up as well, and we became better
friends throughout the process.&lt;/p&gt;
&lt;p&gt;After a few weeks of not using Windows, I realized it was in my best interest
for practical reasons to install Arch on my main hard disk, so I did. This I did
with confidence, since I spent most of my time in a programming IDE and not my
once-beloved Windows games. Not too much later, my friend switched full-time as
well.&lt;/p&gt;
&lt;h2 id="jupiter-broadcasting-and-my-introduction-to-rms"&gt;Jupiter Broadcasting and my Introduction to RMS&lt;/h2&gt;
&lt;p&gt;By then, I&amp;rsquo;d gotten involved with the Jupiter Broadcasting community by way of
the Linux Action Show, LINUX Unplugged, and their corresponding communication
media (Mumble and IRC). Through a couple of references that I later found out
were from a LAS interview of Dr. Richard Stallman (RMS), I was led to watching
some YouTube videos about big figures in the computer world. Eventually, I came
across some &amp;ldquo;Best of Richard Stallman&amp;rdquo; compilations which led me to some rather
long (2 hours each) public speeches by RMS which really got me going about free
software.&lt;/p&gt;
&lt;p&gt;It didn&amp;rsquo;t take me long to start talking about this discovery with my close
colleagues (immediate family, nearby friends, professors, etc.). Shortly
thereafter, I started licensing all my software under the GNU GPL and hosting
the source on GitHub for all to see, learn from, and contribute to.&lt;/p&gt;
&lt;h2 id="conviction"&gt;Conviction&lt;/h2&gt;
&lt;p&gt;Some time passed, and I realized both on my own and from comments others that I
was very passionate about the advancement of freedom in the computer software
world. I&amp;rsquo;d become a lot more active in the JB and free software communities
stressing the importance of freedom and discussing regularly the importance of
freedom for both users and developers.&lt;/p&gt;
&lt;p&gt;It was then that I decided it was time to put forth a physical contribution
to the free software movement. It was during the recording of LINUX Unplugged
episode 38 that I officially signed up for the Free Software Foundation and was
given my number: 12889.&lt;/p&gt;
&lt;h2 id="amendment-1"&gt;Amendment 1&lt;/h2&gt;
&lt;p&gt;During September and October 2014, I made the switch to free distros (Parabola
and Trisquel). Read about it &lt;a href="https://mcmackins.org/posts/free-distros/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="amendment-2"&gt;Amendment 2&lt;/h2&gt;
&lt;p&gt;For various reasons that don&amp;rsquo;t belong in a small amendment section, I no longer
support the FSF. I don&amp;rsquo;t necessarily regret what I have done. It was an
important step in my character development. However, it is clear to me that the
FSF is at odds with my personal values.&lt;/p&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;p&gt;By request of RMS himself, I provide the following notices:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;If you intend on using the web version of YouTube to view his speeches, you
should use the HTML5 player instead of Adobe Flash. If Flash is not installed,
the HTML5 player will start by itself. Alternatively, you could use
&lt;a href="http://audio-video.gnu.org"&gt;this&lt;/a&gt; or a YouTube downloader such as youtube-dl to
mitigate the use of nonfree software.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The GNU/Linux distros I mentioned in the above text (Mint and Arch) are not
ones with a policy on free software. In fact, their default kernels are patched
with nonfree blobs (for proprietary hardware support). Neither myself, the GNU
project, nor the FSF approve of this practice. It is &lt;em&gt;possible&lt;/em&gt; to use these
distros in complete freedom, but we do not officially endorse them because of
their stance on the matter (allowing nonfree software in the official repository
and by allowing nonfree blobs in their kernel in the name of convenience, which
is foolish and unethical).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you are interested in how you can help out the effort with or without
joining the FSF, you are encouraged to check out
&lt;a href="http://gnu.org/help"&gt;this page&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Switching Julie</title><link>https://mcmackins.org/posts/julie/</link><pubDate>Tue, 29 Apr 2014 00:00:00 +0000</pubDate><author>contact@mcmackins.org (David McMackins II)</author><guid>https://mcmackins.org/posts/julie/</guid><description>&lt;p&gt;A few weeks ago, my classmate wanted something better for her laptop. She was
complaining about how slow it was while we were working in the lab together. I
idly bragged about &amp;ldquo;what I could do with a computer,&amp;rdquo; and she asked how much I
would charge to fix hers up.&lt;/p&gt;
&lt;p&gt;Taken aback, I told her I didn&amp;rsquo;t know, but that I was definitely interested. It
was an actual opportunity to bring someone who would have otherwise been
clueless about computers over to free software, which is where they belong.&lt;/p&gt;
&lt;p&gt;After a bit of planning, I created a document for her to fill out about what she
wanted out of her system, which was (to my relief) a web browser and a word
processor. Easy peasy. Those both ship standard on
&lt;a href="http://linuxmint.org"&gt;Linux Mint&lt;/a&gt;. I went home and prepared a flash drive to
install Mint 16 Cinnamon. In a couple of days, we met in the computer lab, and I
performed the installation in front of her so that she could see what I was
doing and so she could enter her own password. After the installation, I gave
her a brief tour of Cinnamon and launching applications. I also installed the
Micro$haft fonts she would need should a professor require Times New Roman font.&lt;/p&gt;
&lt;p&gt;By the end of it, I had spent 40 minutes and had installed one custom package
(the fonts), so I later created an invoice for $60, and gave her a 10% discount
for being an easy customer.&lt;/p&gt;
&lt;p&gt;So begins my story of switching people to free software.&lt;/p&gt;</description></item></channel></rss>