A zine about Linux. That's all.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

487 lines
47 KiB

% Where are our images?
% Let's set this as a half-letter sized sheet
% https://tex.stackexchange.com/questions/338789/how-to-set-paper-size-to-half-letter-5-5-x-8-5-in-in-amsbook
% heightrounded,
% Adjust the top and bottom margins
% http://kb.mit.edu/confluence/pages/viewpage.action?pageId=3907057
% Set the header style
% https://www.overleaf.com/learn/latex/Headers_and_footers
\fancyhead[LE,RO]{\textit{the codex}}
\fancyhead[RE,LO]{Issue \#001}
\cfoot{Page \thepage}
% Include sections and subsections in the TOC
% https://latex-tutorial.com/tutorials/table-of-contents/
% \setcounter{tocdepth}{2}
% We will probably want some two- or three-column sections
% Stop resetting the footnote count after each chapter
% Let's wrap some images
% Do we want to include URLs?
% Use tab stops when we need to (especially in footnotes)
% Define 18 tab stops (at 1/4" intervals)
\author{Kenneth John Odle}
\title{{\Huge the codex}\\{\footnotesize Life with Linux — A Zine\\Typeset in \LaTeX}}
\date{5 September 2021\\\begin{small}2021.09.05\end{small}}
All contents \copyright2021 Kenneth John Odle
Although this is now in your hands, and it's also on the web, so if you really wanted to steal this, I've made it pretty darn easy. I can't imagine why anyone would want to, though. You don't need to, however, since this is licenced under a CC BY-NA-SA 4.0 Creative Commons license. More information is at \href{https://creativecommons.org/licenses/by-nc-sa/4.0/}{https://creativecommons.org/licenses/by-nc-sa/4.0/}. \includegraphics[scale=0.35]{ncsa4-0}
FYI, this is made in \LaTeX \,using the report document class. It then gets exported to a letterhalf (5.5 in x 8.5 in) pdf, which then gets made into a booklet using Boomaga (\href{https://www.boomaga.org/}{\texttt{https://www.boomaga.org/}}).
I'm pushing this to my own git server as I write this. You can find it \href{https://git.kjodle.net/kjodle/the-codex}{here}: \texttt{https://git.kjodle.net/kjodle/the-codex}. New issues will be pushed after they are complete.
The image on the front cover is courtesy JericoDelayah from the WikiMedia Commons. The image is \href{https://commons.wikimedia.org/wiki/File:4_RETAT_04_Linus_Torvalds.jpg}{over here}: \verb|https://commons.wikimedia.o| \verb|rg/wiki/File:4_RETAT_04_Linus_Torvalds.jpg|. You can also find a link to the Creative Commons CC BY-SA 3.0 license there, as well.
The image on the back cover is one that I highly agree with. We built it, it's ours, and we shouldn't be charged for using it. I want my tax dollars to serve my needs. I don't want my tax dollars used to make rich white old men richer.
You can just skip over all the diversions in you want. It's just how my mind works. (And yes, there will be politics in this. \textit{You have been warned.}) Also, I use a lot of em-dashes and parentheses because that is also how my mind works. It's just one big long stream of consciousness up in here most days.
\chapter{The Early Salad Days}
Boring, early life stuff when my world smelled like sweat and disinfectant and room temperature bologna. Feel free to skip this. I wish I could.
Before computers were in my life, there were calculators.
These days, every kid has to have an expensive graphing calculator for school starting with middle school math. Specifically, it has to be a Texas Instruments graphing calculator, because the examples in the textbook are all described in terms of a Texas Instruments calculator.
I mean, \textit{sure} you can get your kid that Casio, which has all the same features and all the same buttons and is an order of magnitude cheaper, but you spent all that money on an expensive pre-school, and all that money on expensive tutors. Do you \textit{really} (he asked snottily) want to risk little Jimmy's chances of getting into Harvard because you were temporarily too cheap to buy the right calculator? Just buy the TI already!
\textbf{Oh my, a diversion already.}
(A little off track here, but this begs two questions: 1) Why is it always a TI calculator that's required, and 2) Are we teaching kids to learn math or to learn how to operate a calculator? The answer to the first question is that Texas Instruments and the Major Textbook Publishers\texttrademark \, have colluded to produce expensive books that need to be replaced every two to three years [thereby costing the school district money] and that require expensive calculators\footnote{A few years ago, I bought a scientific calculator at the \textbf{dollar store} and tested it against my very expensive TI-92. It was just as accurate as the more expensive calculator, and cheaper by two orders of magnitude. Did I mention that this is a racket? I really should do a YouTube video or blog post about this.} [thereby costing you as a parent money]. It's a racket, but that's capitalism for you.
The answer to the second question is that we are teaching kids how to use calculators. Teaching them how to do actual math would require thought on both the parts of the teachers\footnote{To be fair, a lot of teachers would like to teach kids how to do actual math. But they also need to eat and when it comes down to the difference between doing what is right and doing what pays the bills, they will do the latter. It's not their fault, really; it's just that the system does not like anybody who sticks out. Keep your head down and the worksheets graded—that's what the system rewards.} and the parts of the students, not to mention on the parts of parents and especially administrators, who would also be required to grow a spine—and learn how to use it. Again, education in the United States has become a racket, but that's capitalism for you.)
(Well, you can probably tell what my thoughts are on the dominant economic system on planet Earth. There \textit{will} be more of that. If you're okay with that, I'm okay with that, too. If you're not okay with it and you want your money back, it's too late—I've already spent it.\footnote{But that's capitalism for you!})
I have noticed that even little kids are required to bring little kid calculators to school with them in most of the local school districts. As I write this, the school supply buying season is coming to an end, but for the past six weeks every store was filled with school supply lists and yeah, you have to have a calculator to get into the second grade.
Ironically, the earliest calculators I can remember seeing (not getting my hands on, because they didn't belong to me) were Texas Instruments calculators. I don't remember a lot about them, but an uncle had given a pair to two of my cousins. They took a \textit{ton} of batteries, had red LEDs for outputs (meaning they glowed in the dark—you could use them in the dark if you memorized the keypad), and they were designed for students because they had a go-back-through-all-your-steps-to-see-where-you-done-screwed-up-boy function, which would be a useful feature on modern calculators to learn math, but again, we're not interested in kids actually learning how to think and do something as radical as math.
The other early calculator I remember was a Casio calculator and it was on a watch. A kid I knew for a short time had one, and even let me wear it for a while. (I wish I could remember his name, because this was a tremendous kindness on his part.) I swore that when I grew up, I would own one of these watches.
% Because this will all roll down when we add more text above
% https://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions
Well, I grew up and I didn't buy one of them, even though they are still available. I could just never justify spending the money on what is—let's face it—just a bit of full-frontal nerdity when there were bills to pay. Nope, just could never bring myself to do it.
It's just me now, and my expenses are numerous but small, and a couple of years ago my local all-in-one-store had all their watches on sale for 40\% off, including the name brand watches. I checked—it was in stock. At \$25 bucks it was a lot, but on sale it was only \$15. I could do this! So I picked it up and looked at it lovingly, thinking about all the good times we would have together as we went forth and explored the world one simple calculation at a time.
But there was a problem. A rather large problem, actually. The print on those buttons is tiny. And my eyes are bad. I couldn't actually read any of buttons. I use reading glasses when I'm reading or working on the computer, but I don't need them out in the wild. I could wear the watch with me everywhere, but unless I were at my desk, I wouldn't be able to actually use it.
Back on the shelf it went. I'm not going to spend money on something that is not actually useful to me.
At this point, my only hope is that maybe my eyes will get so bad that I'll need bifocals all day, every day. When that happens, will this watch be on sale for so little money ever again? I highly doubt it.
\section{Speaking of Watches, Timex Used to make Home Computers}
My earliest memory of a computer in somebody's home is of being in an aunt's apartment, where she had a Timex Sinclair hooked up to her television.
I don't remember much about it, actually, other than it was small and sleek and very modern-looking. I do remember that I was not allowed to touch it.\footnote{This aunt bought things not because she found them useful, but because other people didn't have them and she wanted to always have a status symbol to point to. I don't remember her actually doing anything \textit{useful} with this computer.}
This is where memory gets wonky, because I remember seeing this when I was about ten years old. But according to Wikipedia, the Timex Sinclair\footnotemark was released in 1982, when I would have been 14 years old. So it's entirely possible that my memory is losing track of \textit{when} things happened, or it's possible that this aunt had some other home computer that for whatever reason my brain thinks is a Timex Sinclair. Who knows? I certainly don't, and I'll probably never find out for sure.
\footnotetext{It was called the Timex Sinclair because this was a collaboration between the Time Corporation and the Sinclair Corporation. I imagine Sinclair handled the R\&D and manufacturing and Timex handled the marketing. If so, Timex didn't \textit{technically} make a computer, but they wanted us to think that they did. Good enough for me.}
\section{The Joy of a Trash-80}
One thing I'm quite sure about is that in seventh grade a select group of smart kids from my class were allowed to go to the local ``skills center''\footnote{This was a centralized school where eleventh and twelfth graders who definitely weren't going on to college could take classes like agriculture and welding. We used to teach these classes in each school under the guise of ``vocational education'' but somehow lost our way.} one day a week (Wednesday afternoons, as I recall) to study computers. This was the first time I'd every laid my fingers on an actual computer keyboard.
\textbf{Oh look, another diversion.}
``TRS'' actually stands for ``The Radio Shack,'' as in \textit{The Radio Shack 80}. This program had a room full of TRS-80 Model IIIs, with an integrated keyboard, and, if I recall correctly,\footnote{But I probably don't.} two integrated 5.5" floppy disk drives. I loved Radio Shack both because the first computer I was ever allowed to sink my teeth into was a Trash-80 and because for a while there in my youth, it was a tinkerer's paradise.
Those of us with fond memories of Radio Shack, and what it used to be, bristle at the memory of how it was terribly mismanaged at the end of its life. But in some weird postmodern way, Radio Shack does live on, but not as you might expect.
A brief history shall ensue.
Radio Shack was founded in 1921 by Theodore and Milton Deutschmann, two brothers who wanted to cash in on the burgeoning ham radio field. Initially successful, it was nearly bankrupt in 1962, when it was acquired by the Tandy Corporation. If you've ever been in 4H, that name may ring a bell. Tandy is a leather goods corporation, and has been selling supplies for home leathercrafters since 1919. If you did leathercrafting as a 4H kid, chances are the introductory tool kit and all the materials you needed to make that belt or wallet, came from Tandy Leather Company.
Tandy actually ran Radio Shack fairly well until the mid 1990s, and had many electronic products with a ``Tandy'' name on them. But in 2000, they decided to drop the Tandy name altogether, and became the RadioShack (one word) Corporation. They sold the leather crafting assets to a company called The Leather Factory in the fall of that same year, and it still operates under the name of Tandy Leather. (If you're into making things from leather, you may want to look them up.)
Anyway, RadioShack decided to move away from electronic supplies and electronics and focus on selling cell phones, which was a ridiculous move, since everybody else was also selling cell phones. The period from the early 2000s forward was a period of decline, both in sales and morale (not to mention much clenching of teeth by regular shoppers—I went in to buy some screws to repair a laptop and they didn't even carry metric screws at that point), and finally resulted in bankruptcy in 2015.
The name still exists, because other corporate entities bought the rights to it. So there are still RadioShack stores out there, but they're not Radio Shack. The Radio Shack that so many of knew and loved (it was my favorite store to visit at the mall when I was a teenager) is gone and will probably never come back. I mourn the Radio Shack of my youth as I mourn a long lost lover.
Anyway, that Wednesday afternoon experience was a real game changer for me. It was the first time I had an opportunity to sit down at a computer for an extended period of time and actually accomplish something, rather than just tinker around with the keyboard. We could save our work on cassette tapes until next week, which meant that our projects had some permanence, although I'm certain that all those cassette tapes are either buried in the depths of a storage room somewhere at the skills center, or more likely are buried deep in a landfill somewhere.
This was the golden age for my generation for computers. These days you can buy a computer magazine and it has a CD or DVD with programs for you to try out. (Although I haven't been in a bookstore since the pandemic started, so that may have changed.) In the early 80s, computer magazines had programs \textit{printed} in them, so if you wanted to try out a program, you had to very laboriously type it in, and then spend the rest of the evening debugging it before you actually got to spend the last 15 minutes before bedtime playing around with it.
Some of the TRS-80s did have disk drives. But these were 5.25" floppy drives, not the 3.5" floppies in the hard plastic case. (Heck, we even had a CP/M machine with an 8" floppy drive, if I remember correctly.)
\chapter{What's to Like About Linux}
I could go on and on here, but I'll try to keep it short. I can always come back to this. (And I probably will.)
\section{Control…and an Opportunity}
What I like—not love (love is about aesthetics for me when it comes to computers)—is that I'm in control.
Partly, that's the nature of open-source computing. If you want to know how something works, you can look at the source code. If you don't understand the source code, you can research how the source code works. You can ask questions. (Thank you, StackExchange!) You can do some more research and then learn how to ask \textit{better} questions. There is always something to learn, and once you've learned everything there is to learn about a particular piece of software \footnote{Which is never really true. What I really mean is that when you've learned everything \textit{you} want to know about it.} you can fork it and start contributing to the project yourself.
Wondering how something in Windows works? So is everybody else. There is nothing more frustrating than googling a problem in Windoze, getting hundreds or thousands of results, and every result is just somebody else asking the same question.
And yeah, you can write code and create applications for Windows, and you can solve a lot of problems that way, but you can never make Windows itself better. It is what it is, and if you don't like it, the feature that bugs you might be made better in the next release, or it might be made worse. It's a crap shoot, really.
For what it's worth, Mac OS X, even though it is based on Unix/Linux (I forget which—I dropped out of the Mac world at OS X version 4), is the same way. There \textit{might} be an answer, there \textit{might} be a solution, but you just \textit{might} be on your own there, buddy.
That's the key when you're working with something that open-source: every problem is an opportunity for you to learn something. You might be able to find a workaround, or a fix, or even realize that you're doing something wrong, and that's why you're having a problem. Who knows, keep studying and trying things out and you might find an actual bug and be able to contribute a patch that fixes it.
That will never happen when you use Windows or Mac. Never.
\section{Knowledge is Power}
You know what I really, really like about Linux?
The command line.
I've already mentioned this earlier (and I'm sure that I'll probably write about this some more later), but my experience with computers goes back way before Macintosh made the mouse popular (and alas, necessary). You turned on the computer, and there was just this dark screen with a blinking cursor. If you wanted to make it do something, you had to \textit{know} something. With a GUI, you can guess. You can guess a lot, actually, and just poke around all you want because most GUIs come with an undo feature.
There is no ``undo'' on the command line.
I need to get that on a t-shirt.
Why? Because the command line is like real life. There is no undo button in real life. GUIs have made us lazy—lazy at thinking, lazy at figuring things out. Just do it, if you don't like it, just Ctrl-Z. Just throw that document away and leave it in the recycle bin. If you decide you want/need it later, you can just drag it on out of there.
With a GUI, that ``undo'' button is always an option.\footnote{Except for the rare occasion when it isn't. Those times are fun.} But in real life, you can't \textit{unmake} a mistake. Sure, you can recover from a mistake, but you are going to have to do some scrambling, my friend, and if you are at least halfway intelligent, you will definitely think twice about trying that again, or at least trying it \textit{that way} again. You don't want to jump through all those hoops again, so you think about your end goal and try to develop a better workflow for next time.
The command line, in short, makes you think. It makes you plan, it makes you think about the end goal, it makes you remember past failures. The command line makes you think about \textit{outcomes}.
A GUI only makes you think about the next step. Surely all the steps after that will be obvious, \textit{n'est ce pas}? I've seen a lot of people ask questions online where they just want to be told which button to push. They are asking about how to cross the street when what they really want to do is get across town.
\section{The Unix Philosophy}
The Unix Philosophy was originated by Ken Thompson (one of the creators of Unix, upon which Linux is based) and basically says that each program should do one thing and do it well. (There is more to it than this; if you are interested, you can always google it.\footnote{Searching for something on the internet is \textit{always} an option these days, and so many people seem to be unable to do just that. Honestly, this is the kind of stuff that gets my underpants in a twist. \\ \tabto{1.9em}Question: ``Where can I find \textit{X}?'' Answer: The same place I would find it: At the other end of a google search. \\ \tabto{1.9em}Better question: ``Which is the \textbf{best} source for \textit{X}? Ah, \textit{now} we have the basis for a discussion.}
This runs counter to physical life, where everything has to be a Swiss army watch. Watch any ad for a new kitchen gadget and this device does \textit{everything} except walk the dog and take out the trash. If it \textit{actually} did all those things and did them well, I would be happy to own one and more than happy to pay a couple of hundred dollars for it.
Unfortunately, it seems that it's impossible to build a device that will do a large number of things really, really well. I like to cook and so my parents inevitably give me a cooking-related gift every Christmas and every birthday. One year, I received a mandoline-type device—if you've spent any time watching the Home Shopping Network\footnote{Which is now called ``HSN''. Apparently, we are too busy to pronounce those two extra syllables. Modern life may be difficult, but I don't think the energy I save from not pronouncing those two syllables is going to give me enough energy to overcome it.} I'm sure you've seen them. It's basically a plastic tray with different cutting inserts, a handle to hang on to the food item, and a box that snaps on to the bottom to hold whatever you are slicing.
I absolutely \textit{love} this thing for slicing potatoes, and since I spend each autumn and winter making scalloped potatoes or au gratin potatoes, it sees a lot of use during those months when the days are short. It does a fantastic job slicing potatoes into a uniform thickness and does it far more quickly than I can do it with a knife.
It also includes inserts to make waffle slices (if you rotate the potato 90 degrees on each pass, you're supposed to be able to make waffle fries), inserts for dicing onions, and so forth. But here's the thing: as great as it is at slicing potatoes (and also carrots, which have the same general hardness as potatoes), it does a terrible job at slicing anything else. Basically, the thin and the thick slicing inserts work well for potatoes and carrots, and all the other inserts don't work at all for them, and any other vegetable just doesn't get cut or gets crushed because you have to hold onto it so hard.
I don't know how much my parents spent on this thing, but if it's anything north of \$20, that's a lot of money for something I can already do fairly easily (and actually enjoy doing) with a sharp knife. Don't get me wrong—I love the thing (even though it's a bit of a pain to clean), but if we had spent at least as much time and money engineering the thing as we did marketing it, we might have concluded that it would probably be better to just encourage people to buy decent knives and then teach them how to sharpen them and use them properly.
(Also, I'm not picking on the Home Shopping Network\footnote{Okay, ``HSN''.} because everybody does this. Monty Python, all those years ago, even had a skit about this, which you can find if you google ``simpsons individual stringettes''. Of course Monty Python was making fun of this tendency and 50 years later we just accept it as a part of life.)
\subsection{Where does the Unix Principle actually apply in real life?}
\textbf{Kitchen knives} — I know that technically, you can use about any knife to cut a tomato or chop an onion. No debate there. But certain types of knives are just better at some things than other types of knives are. Slicing bread is a perfect example. You can slice a loaf of bread with any knife, but a long, fairly rigid, serrated blade works best.
Most people have too many knives, myself included. (Again, this is due to marketing and FOMO—fear of missing out.) But really, you only have three or four basic tasks that you use a knife for:
\item Slicing bread
\item Cutting meats
\item Peeling fruits and vegetables
\item Cutting fruits and vegetables
\item Cutting cheese\footnote{Yes, I know I said ``three or four'' and then immediately listed five. Bear with me.}
Sure, there are always those oddball tasks that you have to do once a year or less, like using a butcher's cleaver to torque open a pumpkin, but lets talk about those tasks you do on a weekly basis. So let's talk about the knives I have that will accomplish those tasks:
\item \textbf{Slicing bread} — The afore-mentioned serrated knife with a long, fairly rigid blade.
\item \textbf{Cutting meats} — If I am cutting meat from the bone, I'll use a boning knife, which has a slightly curved blade that narrows at the tip. Kept sharp, it will also do a great job of cutting up meat for stir-fries, or trimming the fat off the edges of pork chops.
\item \textbf{Peeling fruits and vegetables} — I don't use a knife for this, because a T-handle peeler is much more efficient, easier on the wrist, and safer.
\item \textbf{Cutting fruits and vegetables} — Most fruits and vegetables tend to be firm enough that any sharp knife will do. I have a long chef's knife with an 8" blade which is great when I'm chopping a lot of something. (I do wish I had one with a 10" blade, because that would be even more efficient.) I also have a small santoku knife with a thin blade which I prefer when I need to slice something into thin slices, such as cucumbers. It also does a great job of cutting meat into tiny pieces, especially if you put the meat in the freezer for 20-30 minutes first.
\item \textbf{Cutting cheese} — I have a knife with a 4" blade with holes in it. The idea is that holes prevent the cheese slices from sticking to the cheese. I had an expensive (\$15!) that did all right; it also had a two-prong fork on the end to pick up the slice of cheese with. It did an okay job. I now have one with a shorter, thicker blade that does an excellent job. I paid \$4 for it at Menard's. It simply outperformed the more expensive knife.
I know that someone out there is itching to point out that tomatoes aren't potatoes and potatoes aren't carrots, \textit{ad infinitum}, and thus the Unix Principle doesn't apply. Well, there are a lot of different pdfs out there, as well, and if I'm skilled with a command line application (such as \verb|pdftk|) it doesn't really matter which pdf I'm dealing with. The job of a knife is to cut. If you keep the knife sharp\footnote{Sharpening a knife is a skill in and of itself. If you watch someone that's good at it, you'll realize that it's also an art form. You can get the skill with practice; you can learn the art with long experience. This is something else that you need to learn.} and \textit{learn how to use it properly}, you'll be a lot more efficient in the kitchen. Notice the emphasis on learning how to use a tool properly. You can learn a lot just by reading the manual.
\noindent \textbf{Breadmakers} — I'm going on a limb here, because a lot of people will be happy to point out that there are sorts of breadmakers will all sorts of settings. Relax. Breadmakers are designed to do one thing: turn flour, water, yeast, and salt into dough, and then turn that dough into bread. All those settings are just options.
I've resisted buying a breadmaker for years, because I actually don't want a device in my kitchen that only does one thing, and I've always known how to make bread from scratch. But as I get older, I don't always have the time or patience to make homemade bread (it can be a messy process), and a breadmaker is ideal. It does one thing, and it does it really well. (Hint: bread machine yeast is your friend.)
\noindent \textbf{Air fryers} — Everything I said for breadmakers also applies to air fryers. They have one job: cook food fast and make it crispy. They work really well on certain items (tater tots!) and not so well on others. I have two analog air fryers, and all you really get to choose is time and temperature. I know that fancy digital ones have \textit{programs}, but really, they are just different time and temperature combinations, which means less thinking for you. But I like to think (and I like to experiment) so I am perfectly happy with my little analog air fryers.
\subsection{Where else does the Unix Principle \textit{not} apply that it probably should in real life?}
\textbf{Cars (i.e., portable entertainment centers)}
\noindent \textbf{Microwave ovens}
\subsection{Where does the Unix Principle not apply in real life and this is actually a good thing?}
\textbf{Instant Pots (and to a lesser degree, multicookers)}
\chapter{What Are All Those Files in the Linux Root?}
If you're using a Linux distro with a GUI (Ubuntu, Puppy OS, Mint, etc.) you land right in your Home folder whenever you click on ``Files''. But if you've ever gone all the way into the root of your computer (the Windows equivalent would be \verb|C:\|) you'll see a lot of folders\footnote{Technically, these are \textit{directories}, but let's not be pedantic. In a GUI, the icon usually looks like a folder.} there with mysterious three-letter names. Let's take a look at the them and what they contain.\footnotemark
\footnotetext{For more information about this, consult the Linux Foundation Referenced specifications, which are found at \href{https://refspecs.linuxfoundation.org/}{https://refspecs.linuxfoundation.org/}. You're probably going to want the pdf version of this, which is at \href{https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf}{https://refspecs.linuxfoundation.org/FHS\_3.0/fhs-3.0.pdf}. It really is amazing how much you can learn just by reading the specs and manuals.}
This directory contains essential command binaries\footnote{Files that contain compiled source or machine code. They are also called ``executables'' because they can be run (i.e., ``executed'') on the computer. Programs, if you will.} that need to be available for all users. Many of these include binaries that bring up the system or repair it. Your basic binaries like \verb|cat|, \verb|ls|, and \verb|mv| live here.
Boot loader files. (It's complicated—kernels, and so forth. It is also four letters instead of three.)
Device files, such as \verb|/dev/disk0/|, \verb|dev/sda1|, etc. Also the home of the wonderful \verb|/dev/null|.
System-wide static configuration files. It is not allowed to contain binaries.
Some examples include:
\noindent \textbf{/etc/opt} — Configuration files for add-on packages stored in \verb|opt|.
\noindent \textbf{/etc/sgml} — Configuration files, such as catalogs, for software that processes SGML.
\noindent \textbf{/etc/X11} — Configuration files for the X Window System, version 11.
\noindent \textbf{/etc/xml} — Configuration files, such as catalogs, for software that processes XML.
Users' home directories. If you have multiple users, you will see a directory in here for each user, named after their login name. Their personal settings are stored as invisible files in their home directory.
This directory contains libraries that are essential for the binaries in \verb|/bin| and \verb|/sbin|. It also contains kernel module, whose filenames are identifiable as \verb|ld*| or \verb|lib*.so.*|. Unlike bin, it only contains system binaries which require root privilege.
\noindent \textbf{lib32} and \textbf{lib64} — We are still in a transition between 32-bit and 64-bit systems.\footnote{How is this even possible? SMDH.} These two libraries clarify which register size to use. A 64-bit system may have compatibility for 32-bit binaries.
\noindent \textbf{lib/modules} — This directory stores kernel modules (pieces of code that can be loaded and unloaded into the kernel upon demand, adding functionality to the kernel without needing to reboot the system\footnote{Handy, that.}), with each installed kernel having its own directory. The Linux kernel typically loads kernel modules from the appropriate kernel version directory.
To show which kernel modules are currently loaded, run
$ lsmod
To show information about a module:
$ modinfo module_name
To list the options that are set for a loaded module:
$systool -v -m module_name
To display the configuration of a particular module:
$ modprobe -c | grep module_name
To list the dependancie of a module:
$ modprobe --show-depends module_name
Mount points for removable media. Using a jump drive or SD card? This is where they are.
Temporarily mounted filesystems.
Add-on application software packages. When some applications are installed directly from source, they will place themselves in \verb|opt|.
A virtual filesystem providing process and kernel information as files. In general, the system automatically generates and populates these files.
The home directory for the root user.
Run-time variable data. That is, information about the running system since the last boot, such as currently logged-in users and running daemons.
Essential system binaries that configure the operating system, such as \verb|fsck| and \verb|init|. Unlike \verb|bin| it only contains system binaries which require root privileges to run.
Site-specific data served by this system, such as data and scripts for web servers, and repositories for version control systems.
This directory contains information about devices, drivers, and some kernel features.
Temporary files, natch. (These may also appear in \verb|/var/tmp|.)
This directory is a secondary hierarchy for read-only user data, and contains the majority of multi-user utilities and applications. This should be shareable and read-only.
This directory contains files who content is expected to continually change during normal operation of the system, such as logs, spool files, and temporary email files.
\section{Is This Really a Hack? Or Is It Just a Tip?}
The word ``hacker'' has a lot of defitions, and if you just google it, you'll find a lot of scary ones on the websites of companies that want you to be scared of ``hackers'' and spend hundreds of dollars on their security products, some of which may actually protect you against actual threats, and some of which may provide protection against a threat which isn't actually real.
(And yes, there are bad people out there who use their advanced technical knowledge to attain access to systems that they shouldn't have to obtain information they're not supposed to have. I'm not talking about those people, who technically should be called ``crackers'' a l\'{a} ``safe crackers''.)
Rather, I'm talking about the older meaning of the term ``hacker'' which is somebody who enjoys the intellectual challenge of pushing software (and often hardware) beyond what it is meant to do in order to achieve interesting and clever outcomes. In order to do so, of course, they have to know the systems they are working with fairly well. In fact, the definition of ``hack'' that I like best is ``an appropriate application of ingenuity.''\footnote{See \href{http://www.catb.org/~esr/jargon/html/meaning-of-hack.html}{http://www.catb.org/~esr/jargon/html/meaning-of-hack.html}.}
Of course, this term originally referred to computer technology, but now I'm finding that people are using it everywhere, even in places where it doesn't belong. (I'm looking at you, the writers and editors of apparently every food magazine and website ever.)
So let's look at some things that have been called ``hacks'' but may or may not be actual hacks.
\item \textbf{How to cut up a mango} — Not a hack. In fact, I'd argue that this is just basic knowledge. Chop up one ripe mango the wrong way and you'll be googling how to do that pretty darn quick.
\item \textbf{Using an ice cube tray to make sushi (in lieu of using a bamboo sushi roller)} — While you are using a common device in an uncommon way, I don't think this rises to the level of a hack. There are a lot of ways to put raw fish and rice together.\footnote{Also, be sure to sanitize the hell of that ice cube tray before you use it to make ice again.}
\item \textbf{Making hot chocolate cocoa bombs} — Not a hack. A technique, to be certain, but not a hack.
\item \textbf{Punching holes in your sausage with a toothpick before cooking to keep them from exploding} — A useful tip (especially in the air fryer), but definitely not a hack.
\item \textbf{Use a spiralizer for perfect baked curly fries} — Really? Next we'll have ``Use a hammer to pound nails into wood'' or ``Use a pencil to make marks on paper.'' Using a tool for what it's meant to be used for is not a hack.
\item \textbf{Peel ginger with a spoon} — This is most definitely not what you're supposed to use a spoon for. But this works great. I'll call this one a hack, but just barely. If I used ginger all the time, I'd probably just call this a technique.
\item \textbf{Microwave lemons and limes to get more juice out of them} — A tip, not a hack.
\item \textbf{Freeze cheese to make it easier to grate} — I do this all the time, and it's a great technique. The trick is leave the cheese in the freezer for just the right amount of time. Not a hack.
\item \textbf{Refrigerate onions before chopping them so they don't make you cry} — Chilling the onions makes the volatile sulfur compounds in them less volatile, so this works, provided you chop fast. It's not a hack, but it is a good technique.
\item \textbf{Wear swim goggles while chopping onions so they don't make you cry} — I'll call this one a hack.
\item \textbf{Use parchment paper in place of muffin liners} — The purpose of parchment paper is to get between your food and whatever it's being cooked on or in. If you run out of muffin liners, you can just use squares of parchment paper. This is just using parchment paper for what it's meant to be used for, albeit in am atypical way because we have another product that we use in this instance. A great technique to use on a regular basis; a great tip if you've never heard of it before. But not a hack. (I actually think the corners sticking it up would make it easier to get the muffins out of the pan.)
\item \textbf{Flavor your pasta water with a chicken stock cube} — Not a hack. Anyone who grew up eating instant ramen on a regular basis figured this one out by the time they hit double digits.
\item \textbf{Use a potato masher to break up ground meat} — While technically a potato masher is meant to be used on potatoes, its ultimate purpose is to mash big things into little things.\footnote{It's right there in the name!} This is like using a screwdriver to pry up a lid of paint. It's not a hack because it's so obvious.
\item \textbf{Collect all your vegetable scraps in a freezer bag and use them to make stock} — Not a hack. Just frugality in action.
\item \textbf{Buy the biggest cutting board you can find.} — While this is great advice, it's not a hack.
So, 15 ``cooking hacks'' and only two of them are an actual hacks, and one of them is pretty questionable. I'm pretty much calling it a hack because I'm trying to be generous. The thing that strikes me is not so much that these aren't actually hacks, but the difference between a ``tip'' and a ``technique.'' Maybe I'm just tired, but it seems like it's a technique if you use it on a regular basis and a tip if you're in a jam and someone tells you about it. But that's an argument for another day in another zine.
\section{What I Learned About \LaTeX\, While Creating This Issue}
I'm still a relative newbie to LaTeX, so there's always something to learn. Here's a running list of what I've learned so far:
\item You might think you want the \textbf{book} document class, but you probably will find the \textbf{report} class just as handy.
\item You want links?\footnote{Yeah, I know these are irrelevant in a paper document.} Use the \textbf{hyperref} package.
\item The \textbf{kpfonts} package has beautiful fonts.
\item Footnotes are easy! (Seriously, footnotes in \LaTeX \,have got to be the easiest footnotes I've ever managed.)
\item Use the \textbf{fancyhdr} package to get more granular control over your headers and footers.
\item You can use the \textbf{geometry} package to make a document have a paper size of half letter (i.e., 5.5 inches by 8.5 inches).
\item You can make your top margin larger by using \verb|\addtolength| \\ \verb|{\topmargin}{0.5in}| but there is not a similar parameter for the bottom margin. Instead, you need to make the text box shorter by using \verb|\addtolength{\textheight}{-1in}|.
\item Want to show inline code without executing it? Use \verb|verb| followed by two pipes. Place your code between the pipes. (I had to use two of those in \#7, because that code just went right off the edge of the page when I only used one.)
\item Need a little space between elements? Just insert \verb|\,| (that is, a backslash followed by a comma).
\item Footnotes reset back to the number one with each chapter. To prevent that, add \verb|\counterwithout{foootnote}{chapter}| to the preamble.
\noindent Like I said, I'm still a newb and I may be completely wrong or off base on some of these things, in which case, I'll make a note of that in a future issue \footnote{Always assuming that there \textit{will} be another issue.}
If you are interested, there is a link in the Impressum to the git repo for this publication where you can check out the source code.
\section{Coda: Why \LaTeX?}
There are lots of reasons why I wanted to use \LaTeX to create this zine. I've been learning the language on my own lately, and I really just wanted to set myself a new challenge. It's always good to have challenges. If you poke around the website where you can find this zine, you'll find some other projects that are also typeset in LaTeX.
As for why I wanted to learn LaTeX in the first place—well, that's complicated. Any kid that is interested in computers and science is probably also into math, and I've certainly never been an exception. I've written up a lot of math stuff, first in Microsoft Word\footnote{Insert the ``horses neighing nervously'' sound from \textit{Young Frankenstein} here.} and later in LibreOffice, and while it's not the most terrible experience, it's not exactly enjoyable, because the programs themselves are not centered around math formulas.
I knew in the back of my mind that there was this great typesetting thing specifically for math and scientific papers, but it took me a while to find it. (This was back in the days before the internet.) But I could recognize just about any paper typeset with it.
Is LaTeX the ideal thing to create zines with? Not necessarily. It does give the finished product a very polished look, and although I love the handmade look (i.e., ``clip and copy'') of a lot of zines, I don't have the talent (or the patience) required to pull that look off. The important thing for me is to be able to create something that is easy on the eyes. (And I've see a lot of handmade zines that \textit{aren't} easy on the eyes.)
I've created zines in the past, and I've previously used Adobe InDesign (back in my Macintosh days) and LibreOffice Writer (more recently). They are WYSIWYG\footnote{What You See Is What You Get} programs and it's fairly easy to get what you want (more or less).
(They can be a pain in other ways, however. InDesign used a lot of resources on the little Mac Mini I was using and crashes, while not frequent, were not unknown. LibreOffice has certain interface quirks that I just find frustrating, such as using sections to have different footers or headers. You can't have everything.)
However, they aren't very amenable to version control, because they don't generate text files, but proprietary files. (I'm not sure about InDesign files, but .odt files are just a collection of \verb|.xml| files and a few others. Change the \verb|.odt| to \verb|.zip| to see them.) While you can track this files in with version control software such as \verb|git|, you can't see the differences between those files by running a simple \verb|git diff|. You have to download the files in question, make sure they have different names so they don't overwrite each other, and check for differences manually.\footnotemark
\footnotetext{As a result, to do version control, I used a version number in the file name and simply did a ``save as'' every time I opened the file for editing, incrementing the version number as I did so.}
With LaTeX however, your \verb|.tex| file really is just a text file, and so if you use something like \verb|git| to track changes, you can run a \verb|git diff| and see changes from one commit to the other pretty easily. This is nice when you are writing, because if something is working, you can just delete it, and if you decide you can use it after all, you can just go back to the repo and get it.
With LaTeX, it can be difficult to get something to appear exactly where you want it to. Placing objects is actually easiest in InDesign. The main advantage of LaTeX is that it makes it \textit{extremely} easy to make things consistent. I suppose this is something that I will get better at as I gain more experience with it and learn about some more packages.
Also, there is no easy way to get a word-count from a LaTeX document, nor is there a spell-check. Considering that LaTeX was originally constructed for use in academic contexts, I find this strangely lacking. You can get around this by converting it to another file form and counting the words and running a spell check there. I used
\verb|$ pandoc input.tex -o output.odt|
\noindent to convert this \verb|.tex| document to a LibreOffice document and counted the words there. (It couldn't find the two images I include in this document, but that's okay.) Before I added the last three sentences, I was at 6,515 words. I didn't bother to do a spell-check.
I'm not there yet (and I definitely won't be for a while—I've got bills to pay) but perhaps the nicest thing about LaTeX is that while there are a lot of packages available, if you can't find one to do what you want to do, you can always create your own. It will be a while before I get to that point because first I need to find something I want to do in LaTeX that isn't covered by an existing package, but I someday might. Remember, with the level of control you get with Linux, you also get opportunity. And it's always good to have a challenge to look forward to.