Fifth round final proofreading
This commit is contained in:
parent
10ba85ab6b
commit
5a64d90e70
@ -25,7 +25,7 @@ Date,Topic,Minutes
|
||||
,,60
|
||||
,,60
|
||||
,,55
|
||||
,ch. 2 edits, 20
|
||||
,ch. 2 edits,20
|
||||
2025.02.09,barcodes,60
|
||||
,(coda),25
|
||||
,aside on memorization,30
|
||||
@ -37,7 +37,7 @@ Date,Topic,Minutes
|
||||
,,32
|
||||
2025.02.15,ch. 2 edits,30
|
||||
,ch. 2 aside,20
|
||||
,ch. 1, 60
|
||||
,ch. 1,60
|
||||
,,49
|
||||
,ch. 1 edits,20
|
||||
2025.02.17,ch. 1 edits and additions,30
|
||||
@ -47,21 +47,23 @@ Date,Topic,Minutes
|
||||
2025.02.19,ch. 4 writing & bugfixing,60
|
||||
2025.02.21,ch. 3 edits,75
|
||||
2025.02.22,ch. 3 updates,10
|
||||
2025.09.11, coda updates,28
|
||||
2025.09.11, ch. 4 updates,46
|
||||
2025.09.30, ch. 4 updates,18
|
||||
2026.01.29, overall proofreading,43
|
||||
2026.01.30, typofixes & edits to ch 4, 102
|
||||
2026.01.31, edits to ch 4, 50
|
||||
2026.01.31, more edits to ch 4, 148
|
||||
2026.01.31, proofreading, 60
|
||||
2026.02.01, terminal commands, 405
|
||||
2026.02.04, terminal commands, 35
|
||||
2026.02.07, terminal commands, 120
|
||||
2026.02.09, terminal commands, 100
|
||||
2026.02.14, first round final proofreading, 100
|
||||
2026.02.15, second round final proofreading, 63
|
||||
2026.02.16, third round final proofreading, 40
|
||||
2026.02.18, fourth round final proofreading, 30
|
||||
2025.09.11,coda updates,28
|
||||
2025.09.11,ch. 4 updates,46
|
||||
2025.09.30,ch. 4 updates,18
|
||||
2026.01.29,overall proofreading,43
|
||||
2026.01.30,typofixes & edits to ch 4,102
|
||||
2026.01.31,edits to ch 4,50
|
||||
2026.01.31,more edits to ch 4,148
|
||||
2026.01.31,proofreading,60
|
||||
2026.02.01,terminal commands,405
|
||||
2026.02.04,terminal commands,35
|
||||
2026.02.07,terminal commands,120
|
||||
2026.02.09,terminal commands,100
|
||||
2026.02.14,first round final proofreading,100
|
||||
2026.02.15,second round final proofreading,63
|
||||
2026.02.16,third round final proofreading,40
|
||||
2026.02.18,fourth round final proofreading,30
|
||||
2026.02.20,,29
|
||||
2026.02.22,,44
|
||||
2026.02.26,fifth round final proofreading,44
|
||||
2026.03.01,,32
|
||||
|
@ -13,7 +13,7 @@ Ada Lovelace, otherwise known as Augusta Ada King, Countess of Lovelace, was the
|
||||
|
||||
Lovelace was the child of the English poet Lord Byron\footnote{Who was ``mad, bad, and dangerous to know'' according to his mistriss Lady Caroline Lamb.} and reformer Anne Isabella Milbanke. This period in English history is especially fascinating to me, as Lord Byron was in a social circle that included the poet Percy Bysshe Shelley and his wife Mary Shelley (who was the daughter of Mary Wollstonecraft, an early feminist and advocate of women's rights, and William Godwin, who had many not-so-nice things to say about aristocracy), in addition to his wife and daughter. This circle would eventually lead to the production of \textit{Dracula} by Bram Stoker, \textit{Frankenstein, or the Modern Prometheus} by Mary Shelley, the modern computer algorithm and by extension, the modern computer industry, a progressive view toward education, and many, many great horror films (not to mention quite a few bad, but delightful, ones).
|
||||
|
||||
While much as been written about Ada's father Lord Byron, her mother Lady Byron (i.e., Anne Isabella Noel Byron, 11th Baroness Wentworth and Baroness Byron) was an interesting personality herself. She was an educational reformer and philanthropist, in addtion to being an abolitionist. She established the Ealing Grove School, the first industrial school in England. At this school, academic subjects were combined with three hours of gardening each day, and corporal punishment was not allowed. (By contrast, corporal punishment in elementary school was still a thing when I was a student in the 1970s.)
|
||||
While much as been written about Ada's father Lord Byron, her mother Lady Byron (i.e., Anne Isabella Noel Byron, 11th Baroness Wentworth and Baroness Byron) was an interesting personality herself. She was an education reformer and philanthropist, in addtion to being an abolitionist. She established the Ealing Grove School, the first industrial school in England. At this school, academic subjects were combined with three hours of gardening each day, and corporal punishment was not allowed. (By contrast, corporal punishment in elementary school was still a thing when I was a student in the 1970s.)
|
||||
|
||||
Ada showed an early interest in mathematics, and her mother encouraged this in an effort to ward off the development of what she perceived as Lord Byron's insanity.\footnote{This was, after all, an age which did not have a good understanding of mental illness. We are doing better in this regard, but we still have quite a way to go.} At the age of eighteen, she began a long working relationship and friendship with Charles Babbage, the British mathematician. At the time, Babbage used to host a ``Saturday night soirée'' which was often attended by the cultural elite, including Charles Dickens, Michael Faraday (an early pioneer in the study of electromagnetism), Henry Fox Talbot (a photography pioneer who invented the calotype process, an early precursor to modern wet photography), and Charles Wheatstone (who was a pioneer in the study of electricity, invented the English concertina, and also invented the Playfair cypher, which was the first cipher to encrypt pairs of letters, rather than individual letters).
|
||||
|
||||
@ -23,7 +23,7 @@ It was at one of these soirées that Babbage introduced his ``Difference Engine'
|
||||
|
||||
Let's take note of a couple of things about Babbage's Analytical Engine. First, it was never built (Babbage had a lot of disagreements with his chief engineer and had difficulty funding its development,\footnote{By 1842, the British government had already given him £17,000—the modern day equivalent of almost £1,700,000—to fund the development of his Difference Engine, which was only partially built and then abandoned when he moved on to the Analystical Engine.} so it was an entirely theoretical construct. Second, it was considered to be the world's first Turing complete computer, which is pretty impressive for a 19th century device.
|
||||
|
||||
What it means for a computer to be Turing complete is complex (and therefore, the subject of much controversy) but it basically boils down to its capabilities. A Turing complete device means that you can program it to find any answer, provided you have unlimited runtime and memory\footnote{Because no computer has unlimited runtime or memory, no device is \textit{truly} Turing complete—as Captain Barbossa said, it's more of a guideline than a rule.}. Your computer is Turing complete, whereas your calculator and kitchen timer are not. The Difference Engine was not Turing complete because its intended output (and what the British government wanted and was willing to give Babbage so much money for) was tables of logarithms and trigonometric functions and as a result its initial numerical constants consisted of polynomial differences set physically, but that was all that it could produce. The Analytical Engine had the same basic structure as modern computer design, albeit in a larger, clunkier fashion.
|
||||
What it means for a computer to be Turing complete is complex (and therefore, the subject of much controversy) but it basically boils down to its capabilities. A Turing complete device means that you can program it to find any answer, provided you have unlimited runtime and memory/\footnote{Because no computer has unlimited runtime or memory, no device is \textit{truly} Turing complete—as Captain Barbossa said, it's more of a guideline than a rule.} Your computer is Turing complete, whereas your calculator and kitchen timer are not. The Difference Engine was not Turing complete because its intended output (and what the British government wanted and was willing to give Babbage so much money for) was tables of logarithms and trigonometric functions and as a result its initial numerical constants consisted of polynomial differences set physically, but that was all that it could produce. The Analytical Engine had the same basic structure as modern computer design, albeit in a larger, clunkier fashion.
|
||||
|
||||
Because it was Turing complete meant that it had a \textit{lot} of potential, and Ada Lovelace was the first person to figure out a way to tap that potential. Despite her close association to Babbage, it was a somewhat indirect path to unleashing that potential. In 1840, Babbage gave a seminar about the Analytical Engine at the University of Turin. This seminar was transcribed into French by a young Italian engineer (and future prime minister of Italy) named Luigi Menabrea. A couple of years later, Charles Wheatstone (remember him?) commissioned Lovelace to translate Menabrea's paper into English, which she did, adding seven notes (labeled A-G). The notes were three times longer than the actual translation, so she not only translated Babbage's seminar, she also greatly expanded the understanding of how the Analytical Engine could be used for practical purposes.
|
||||
|
||||
@ -46,7 +46,7 @@ Many scientists of the time did not understand the Analytical Engine and most of
|
||||
|
||||
\footnotetext{I mentioned earlier that Babbage had disagreements with his chief engineer. (If I learned anything from \textit{Star Trek} it's that you shouldn't argue with your chief engineer. Science does not care about your military tactics.) He also expressed a distaste for the common people, campaiging in his later life to make street musicians and hoop-rolling (a popular game for boys at the time that dates back to ancient Greece) and tip-cat (a probable early precursor or analog to both cricket and baseball) illegal, and once actually counted all the broken panes of glass in a factory, noting that of the 464 panes, 14 were caused by ``drunken men, women or boys''. (Seriously, who does this?) He also railed against his detractors in later life, so he was either just bitter or he was a difficult person to get along with (or possibly both). Despite his Saturday night soirées, he does \textit{not} seem fun at parties. (See \textit{Nineteenth-Century Science: An Anthology} edited by A.S. Weber and published by Broadview Press in 2000 for the few details that exist.)}
|
||||
|
||||
I am constantly astounded by the depth and breadth of Lovelace's vision here. First, she was asked to translate (nothing more) a seminar on a device that hadn't been built yet, and then went on to also imagine practical use for that device and then describe the exact process to do that. She also allowed her notes to be published, albeit under the initials ``AAL'' because it's unlikely the vast majority of the scientific community of the time would have taken anything published by a woman seriously at the time, although I'm sure it wasn't difficult for anyone in the scientific community at the time to have found out who ``AAL'' actually was.\footnote{Scientists tend to be pragmatic, so accepting the work of a female mathematician would not necessarily have been a personal issue. But science does not operate in a vacuum, so \textit{publically} acknowledging the work of a female mathematician is not something they were able to do. This is an issue we continue to struggle with to this day, leading to the work of women and minorities being ignored or worse, credited to white men who contributed little if anything to it, other than pointing it out.}
|
||||
I am constantly astounded by the depth and breadth of Lovelace's vision here. First, she was asked to translate (nothing more) a seminar on a device that hadn't been built yet, and then went on to also imagine practical use for that device and then describe the exact process to do that. She also allowed her notes to be published, albeit under the initials ``AAL'' because it's unlikely the vast majority of the scientific community of the time would have taken anything published by a woman seriously at the time, although I'm sure it wasn't difficult for anyone in the scientific community at the time to have found out who ``AAL'' actually was.\footnote{Scientists tend to be pragmatic, so accepting the work of a female mathematician would not necessarily have been a personal issue. But science does not operate in a vacuum, so \textit{publically} acknowledging the work of a female mathematician is not something they were able to do. This is an issue we continue to struggle with to this day, leading to the work of women and minorities being ignored or worse, credited to white men who contributed little if anything to it, other than pointing it out. Or putting their name on it and claiming it as their own.}
|
||||
|
||||
Even Babbage didn't seem to be aware of the potential of the Analytical Engine. ``I don't think you have even half my foreboding and my ability to see all sorts of eventualities'', she wrote to Babbage. Reflecting her mother's preoccupation with mental health and her own interests in phrenology and mesmerism (which are now considered to be non-scientific, but which were very much on the minds of scientists of the time), she added ``The Analytical Engine might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine''.\footnote{See \kref{https://www.dpma.de/english/our_office/publications/ingeniouswomen/adalovelace/index.html}{https://www.dpma.de/english/our\_office/publications/ingeniouswomen/ad\\alovelace/index.html}.} In other words, Babbage saw the Analytical Engine as a device for crunching numbers, but Lovelace saw it as something capable of much more.
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
A lot of people are reluctant to try Linux because they think you need to be proficient in the terminal, which is not true. The point of Linux, after all, is that it is a GUI (a graphical user interface) which is meant to eliminate your need to use text-based commands.
|
||||
|
||||
You don't have to use the terminal at all to use Linux. But using the terminal can make your life in Linux a lot easier, so it pays to learn how to use it. (The converse is that the improper use of the terminal can make your life in Linux a lot more difficult.) If you have been nervous about using the terminal, fear no more. What follows is a basic introduction to using the terminal. It's designed to get your feet wet, not to make you an expert user.
|
||||
You don't have to use the terminal at all to use Linux. But using the terminal can make your life in Linux a lot easier, so it pays richly to learn how to use it. (The converse is that the improper use of the terminal can make your life in Linux a lot more difficult.) If you have been nervous about using the terminal, fear no more. What follows is a basic introduction to using the terminal. It's designed to get your feet wet, not to make you an expert user.
|
||||
|
||||
\section{What is a Terminal?}
|
||||
|
||||
@ -10,30 +10,30 @@ We really should talk about what a terminal actually is, though, because Linux d
|
||||
|
||||
In the early days of computing, computers were huge and often took up the entire basement of a building. The only way to input data into them was to use punched cards or paper tape\footnote{See \kref{https://en.wikipedia.org/wiki/Punched_card}{https://en.wikipedia.org/wiki/Punched\_card} and \kref{https://en.wikipedia.org/wiki/Punched_tape}{https://en.wikipedia.or\\g/wiki/Punched\_tape}} which meant that to interact with the computer, you had to prepare your cards or your tape and then head down to the basement.\footnote{For attribution and licensing information for the images in this chapter, see \kref{https://en.wikipedia.org/wiki/File:Used_Punchcard_(5151286161).jpg}{https://en.wikipedia.org/wiki/File:Used\_Punchcard\_(5151286161).jpg}, \kref{https://en.wikipedia.org/wiki/File:PaperTapes-5and8Hole.jpg}{https://e\\n.wikipedia.org/wiki/File:PaperTapes-5and8Hole.jpg}, and \kref{https://en.wikipedia.org/wiki/File:DEC_VT100_terminal_transparent.png}{https://en.wikipedia.o\\rg/wiki/File:DEC\_VT100\_terminal\_transparent.png}.}
|
||||
|
||||
Somebody eventually figured out a way to use a keyboard to provide input for a computer, which meant that you could put the keyboard in your office on the third floor and just run wires from it down to the computer. No more running up and down the stairs with paper cards or tape in your hands. The output from the terminal originally went to a line printer, but at some point, somebody realized that they could use a CRT (a cathode-ray tube, akin to what televisions used to be before flat screens came along) and send the output to that instead, thus saving on paper. Pretty handy.
|
||||
|
||||
\begin{wrapfigure}[10]{r}{0.4\textwidth}
|
||||
\includegraphics[scale=0.9]{punch_card}
|
||||
\caption{A 12-row/80-column IBM punch card from the mid-twentieth century}
|
||||
\end{wrapfigure}
|
||||
|
||||
The point here is that a terminal is a physical object (either keyboard and printer or keyboard and screen), while the terminal emulator in Linux is merely a piece of software that allows you to interact with the Linux kernel (i.e., that bit of software that exists between the physical hardware of the computer and the programs you use on a regular day). Thus, the Linux terminal just \textit{emulates} that keyboard and monitor, and hence it's a terminal \textit{emulator}, rather than an actual terminal. But by and large, people don't bother to make that distinction any more (and I'm willing to be a lot of people don't even know that distinction exists) and when people talk about a modern day terminal, they're really talking about a terminal emulator.
|
||||
Somebody eventually figured out a way to use a keyboard to provide input for a computer, which meant that you could put the keyboard in your office on the third floor and just run wires from it down to the computer. No more running up and down the stairs with paper cards or tape in your hands. The output from the terminal originally went to a line printer, but at some point, somebody realized that they could use a CRT (a cathode-ray tube, akin to what televisions used to be before flat screens came along) and send the output to that instead, thus saving on paper. Pretty handy.
|
||||
|
||||
\begin{wrapfigure}[9]{l}{0.4\textwidth}
|
||||
\includegraphics[scale=0.9]{paper_tape}
|
||||
\caption{Five- and eight-hole punched paper tape}
|
||||
\end{wrapfigure}
|
||||
|
||||
By far, one of the most popular (not to mention the earliest) terminals in Linux is \textsf{Bash}—the Bourne Again SHell. The actual Bourne shell was developed by Stephen Bourne at Bell Labs in 1979 for use on Unix. Bash was created by Brian Fox for the GNU project in 1989 as a free software alternative to the Bourne shell—same functions, different code base.
|
||||
The point here is that a terminal is a physical object (either keyboard and printer or keyboard and screen), while the terminal emulator in Linux is merely a piece of software that allows you to interact with the Linux kernel (i.e., that bit of software that exists between the physical hardware of the computer and the programs you use on a regular day). Thus, the Linux terminal just \textit{emulates} that keyboard and monitor, and hence it's a terminal \textit{emulator}, rather than an actual terminal. People rarely bother to make that distinction any more (or even know it exists) and when people talk about a modern day \textit{terminal}, they're really talking about a \textit{terminal emulator}.
|
||||
|
||||
In figure \ref{dec10}, we see a DEC terminal, which is similar to the terminal I used when I was in college the first time around. I wrote about this way back in the third issue of this zine, which seems like a lifetime ago, but was really only two and a half years ago. (Gosh, how times flies when you and the rest of the world are in the middle of an existential crisis.) It occurs to me that I am a member of an increasingly smaller and smaller group: people who used an actual terminal to do stuff. Of course, at the time ``doing stuff'' basically meant just typing up my notes from class.
|
||||
|
||||
\begin{wrapfigure}[11]{r}{0.4\textwidth}
|
||||
\begin{wrapfigure}[12]{r}{0.4\textwidth}
|
||||
\includegraphics[scale=0.95]{dec_vt100}
|
||||
\caption{The DEC VT100, a widely emulated computer terminal}
|
||||
\label{dec10}
|
||||
\end{wrapfigure}
|
||||
|
||||
In figure \ref{dec10}, we see a DEC terminal, which is similar to the terminal I used when I was in college the first time around. I wrote about this way back in the third issue of this zine, which seems like a lifetime ago, but was really only two and a half years ago. (Gosh, how times flies when you and the rest of the world are in the middle of an existential crisis.) It occurs to me that I am a member of an increasingly smaller and smaller group: people who used an actual terminal to do stuff. Of course, at the time ``doing stuff'' basically meant just typing up my notes from class.
|
||||
|
||||
By far, one of the most popular (not to mention the earliest) terminals in Linux is \textsf{Bash}—the Bourne Again SHell. The actual Bourne shell was developed by Stephen Bourne at Bell Labs in 1979 for use on Unix. Bash was created by Brian Fox for the GNU project in 1989 as a free software alternative to the Bourne shell—same functions, different code base.
|
||||
|
||||
My background in computers was pretty much limited programming in BASIC, and I had no idea how to do much else. But I had terrible handwriting, and I wanted a decent copy of my class notes to refer to, so it was either check out a typewriter room on the first floor of the dorm or the second floor of the library\footnote{In those days, you could check out a study room either with or without a typewriter. What an eternity ago that seems like now.} or use the computer. Using the computer meant that I didn't have to bother with correction paper—I could just edit on the terminal. I would save my files, then send them to the printer in another room, then go stand in line to get my printouts. It was a different age, to be certain.
|
||||
|
||||
\section{Basic Commands}
|
||||
@ -72,7 +72,7 @@ Now that you have your terminal open, let's try some basic commands. The first o
|
||||
|
||||
This may not seem like a useful command, but if you start wandering around in the guts of your filesystem, it's easy to forget where you are, and then this command becomes \textit{very} useful.
|
||||
|
||||
If you forget who you are, you can also use the \texttt{whoami} command, which simply returns your user name. Again, this may not seem very useful, but sometimes you have to log in as the root user, and if you forget whether you're logged in as the root user or a regular user, this becomes not only handy but absolutely necessary. (You can wreak havoc on your system quite easily when logged in as root, so this is a good thing to check.) If you are logged in as the root user, \texttt{whoami} should return ``root'' rather than your regular user name.
|
||||
If you forget \textit{who} you are, you can also use the \texttt{whoami} command, which simply returns your user name. Again, this may not seem very useful, but sometimes you have to log in as the root user, and if you forget whether you're logged in as the root user or a regular user, this becomes not only handy but absolutely necessary. (You can wreak havoc on your system quite easily when logged in as root, so this is a good thing to check.) If you are logged in as the root user, \texttt{whoami} should return ``root'' rather than your regular user name.
|
||||
|
||||
\subsection{A Note on Conventions}
|
||||
|
||||
@ -133,7 +133,7 @@ Notice that the folder ``super secret stuff'' has spaces in the title. Bash will
|
||||
|
||||
\subsection{Seeing What's There}
|
||||
|
||||
Once you're in a directory, you probably want to see what's there. The command for that is \texttt{ls} which we've already talkabout about a little bit.
|
||||
Once you're in a directory, you probably want to see what's there. The command for that is \texttt{ls} which we've already talked about about a little bit.
|
||||
|
||||
If you have a lot of files or subdirectories, the \texttt{ls} command isn't all that useful, because it just gives you everything that is in there, but it doesn't tell you much about the contents. Fortunately, \texttt{ls} has tons of options. My favorites are \texttt{-a} which displays invisible files and directories, \texttt{-h} which displays file and directory sizes in human readable forms (in other words, you get ``16k'' instead of 16176, which is in bytes), and \texttt{-l} which means to give a long display. And yes, you can combine these options:
|
||||
|
||||
@ -171,7 +171,7 @@ As I mentioned earlier, you can also redirect the \texttt{stdout} of this comman
|
||||
|
||||
\input{include/ls_redirect}
|
||||
|
||||
will create a file called ``documents.txt'' that contains a list of everything (except for invisible files and directories) in your ``Documents'' folder.
|
||||
\noindent{}will create a file called ``documents.txt'' that contains a list of everything (except for invisible files and directories) in your ``Documents'' folder.
|
||||
|
||||
\subsection{Finding Things}
|
||||
|
||||
@ -233,7 +233,7 @@ Notice that we are using a redirect symbol here (\texttt{>}) to push your conten
|
||||
|
||||
\paragraph{tail} Of course, if new information is appended to the \textit{end} of the log file, then you can use the \texttt{tail} command, which works pretty much the same way the \texttt{head} command does.
|
||||
|
||||
\paragraph{more} If \texttt{head} and \texttt{tail} don't get you what you need, you can always use the \texttt{more} command, which allows you to page through text one screenful at a time. You can see the next line by pressing the space bar, or see the next screen by pressing either \kkey{z} or \kkey{enter}. I particularly like the ``\texttt{-c}'' option, which doesn't scroll, but clears the screen before displaying the next screenful of text. For some reason my brain finds that easier to deal with.
|
||||
\paragraph{more} If \texttt{head} and \texttt{tail} don't get you what you need, you can always use the \texttt{more} command, which allows you to page through text one screenful at a time. You can see the next line by pressing the space bar, or see the next screen by pressing either \kkey{z} or \kkey{enter}. I particularly like the ``\texttt{-c}'' option, which clears the screen (instead of scrolling) before displaying the next screenful of text. For some reason my brain finds that easier to deal with.
|
||||
|
||||
The \texttt{more} command will also tell you how much of the file you've seen by providing a percentage in the bottom left corner of the screen. For example, if I use this command to look at the main \LaTeX{} file for this issue:
|
||||
|
||||
@ -255,7 +255,7 @@ You'll also notice that the \texttt{more} command can use the ``\texttt{-n}'' op
|
||||
|
||||
\input{include/mv_examples}
|
||||
|
||||
The command in line 1 simply renames the file ``cat.txt'' to ``bat.txt'' and leaves it in the same directory. The command in line 2 moves the file ``cat.txt'' to the subdirectory ``mammals'' which is located in the subdirectory ``animals'' which itself is a subdirectory of the current directoy. The third command is a combination of the first two: it both moves the ``cat.txt'' file and also renames it as ``bat.txt''.
|
||||
The command in line 1 simply renames the file ``cat.txt'' to ``bat.txt'' and leaves it in the same directory. The command in line 2 moves the file ``cat.txt'' to the subdirectory ``mammals'' which is located in the subdirectory ``animals'' which itself is a subdirectory of the current directory. The third command is a combination of the first two: it both moves the ``cat.txt'' file and also renames it as ``bat.txt''.
|
||||
|
||||
If you want to move a file that is in a parent directory to the current directory, you can use:
|
||||
|
||||
@ -265,7 +265,7 @@ and if you want to move that file back, you can use:
|
||||
|
||||
\input{include/mv_file_up}
|
||||
|
||||
In commands like these, two dots (i.e., \texttt{..}) represent the parent directory of the one you are currently in, whereas a single dot (i.e., \texttt{.}) represents the directory you're currently in.
|
||||
In commands like these, two dots (i.e., \texttt{..}) represent the parent directory of the one you are currently in, whereas a single dot (i.e., \texttt{.}) represents your current directory.
|
||||
|
||||
\paragraph{rmdir} To remove a directory, just use the \texttt{rmdir} command. There is one caveat with this command, however: the directory must be empty, because this command only works on empty directories. To remove a directory that \textit{isn't} empty (which means first removing all its contents and then finally removing the directory), you'll need to use the \texttt{rm} command.
|
||||
|
||||
@ -273,7 +273,7 @@ In commands like these, two dots (i.e., \texttt{..}) represent the parent direct
|
||||
|
||||
\input{include/rm_log}
|
||||
|
||||
will remove \textit{all} files in your current directory that have a \texttt{.log} extension. The \texttt{rm} command doesn't have a \texttt{stdout}; if it is successful in deleting the file or files it was directed to delete, it just exits quietly without saying anything. And unlike just about every GUI out there, the Linux command line does not have a trash can or recycling bin that deleted files go to. When you delete a file using \texttt{rm}, it's just gone forever, and there is no easy way to get it back.\footnote{You can recover the \textit{contents} of a deleted file if you have the right tools and you just deleted it, but that's pretty advanced stuff. It's better to not delete things you are unsure of and to keep backups. On the other hand, if you really want to get rid of files in a way that people with the skills and the time and inclination \textit{can't} recover, use the \texttt{shred} command.}
|
||||
\noindent{}will remove \textit{all} files in your current directory that have a \texttt{.log} extension. The \texttt{rm} command doesn't have a \texttt{stdout}; if it is successful in deleting the file or files it was directed to delete, it just exits quietly without saying anything. And unlike just about every GUI out there, the Linux command line does not have a trash can or recycling bin that deleted files go to. When you delete a file using \texttt{rm}, it's just gone forever, and there is no easy way to get it back.\footnote{You can recover the \textit{contents} of a deleted file if you have the right tools and you just deleted it, but that's pretty advanced stuff. It's better to not delete things you are unsure of and to keep backups. On the other hand, if you really want to get rid of files in a way that people with the skills and the time and inclination \textit{can't} recover, use the \texttt{shred} command.}
|
||||
|
||||
If you are accumstomed to using a GUI, and the thought of wiping out a bunch of files without having a chance to think about it makes you nervous, you can always use interactive mode. There are two switches for the interactive mode. The first is \texttt{-i} which prompts you to confirm you want to remove every single file. There is also the \texttt{-I} switch, which will prompt you once when removing more than three files, or when removing recursively.
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
Last time around, I mentioned using \verb|\input{<filename>}| to keep your \LaTeX{} GUI happy. But I've also found that using \verb|\input{<filename>}| keeps \textit{me} happy. Creating this zine means I end up with a very long file (the file for issue \#5 was 1005 lines long!) making it time consuming to constanty scroll through the file to get to the last part I was editing. (It's not terrible in and of itself, but repeatedly having to do it impacts my overall efficiency.)
|
||||
|
||||
For this issue, I decided to write up each chapter as a separate file, and then just \texttt{include} that file into my main document. This makes it much easier to manage, and I do feel more efficient. But because I'm using a GUI (Texmaker) I do have to remember to switch back to my main file when I compile the document. Overall, that's a trade-off I can live with. As a bonus, I can comment out chapters I am not concerned about when compiling. This saves both printer paper (since I tend to edit on paper—I'm very old-school in that way) and my adult-onset-attention-deficit-disordered brain.)
|
||||
For this issue, I decided to write up each chapter as a separate file, and then just \texttt{include} that file into my main document. This makes it much easier to manage, and I do feel more efficient. But because I'm using a GUI (Texmaker) I do have to remember to switch back to my main file when I compile the document. Overall, that's a trade-off I can live with. As a bonus, I can comment out chapters I am not concerned about when compiling. This saves both printer paper (since I tend to edit on paper—I'm very old-school in that way) and my adult-onset-attention-deficit-disordered brain.
|
||||
|
||||
\subsection{Redefining a Command}
|
||||
|
||||
@ -26,7 +26,7 @@ The first line saves the \texttt{textsf} command under a new name (\texttt{oldte
|
||||
\begin{small}
|
||||
\paragraph{I cannot believe that this is where we are:}This is the sixth issue of this zine. I originally created this zine to learn \LaTeX{} and also to learn more about Linux (and get some practice with Git in the meantime). I thought I might get at most one or two issues and that would be the end of it. So when I started doing this, I pushed everything to my git repo at \kref{https://git.kjodle.net/kjodle/the-codex}{https://git.kjodle.net/kjodle/the\\-codex}.
|
||||
|
||||
It looks like this is a thing now, and a single repo just won't work. I'm just over 300 commits in that repo, which doesn't really reveal much about the state of each issue. Going forward, I've decided to make this an organization on my git repo at \kref{https://git.kjodle.net/the-codex-zine}{https://git.kjodle.net/the-codex-\\zine}. That way, each issue can have its own repository and will eventually come to a logical end, instead of being never ending. I still need to move the wiki over from its current location at \kref{https://git.kjodle.net/kjodle/the-codex/wiki}{https://git.kjodle.net/kjodle/the\\-codex/wiki}.
|
||||
It looks like this is a thing now, and a single repo just won't work. I'm at well over 300 commits in that repo, which doesn't really reveal much about the state of each issue. Going forward, I've decided to make this an organization on my git repo at \kref{https://git.kjodle.net/the-codex-zine}{https://git.kjodle.net/the-codex-\\zine}. That way, each issue can have its own repository and will eventually come to a logical end, instead of being never ending. I still need to move the wiki over from its current location at \kref{https://git.kjodle.net/kjodle/the-codex/wiki}{https://git.kjodle.net/kjodle/the\\-codex/wiki}.
|
||||
|
||||
Believe it or not, I also have a forum for it at \kref{https://forums.kjodle.net/forumdisplay.php?fid=15}{https://forums.kjodle.net/\\forumdisplay.php?fid=15}, so if you want to join that forum and share your opinions and ideas, I encourage you to do so.
|
||||
|
||||
@ -55,9 +55,12 @@ If you want to donate just to keep this thing going, you can always do so via Pa
|
||||
|
||||
\paragraph{Zine site:} I make other zines besides this one, which you can read about at \kref{https://just13.click/}{https://just13.click/}. I also have a mailing list there, and I encourage you to sign up for it. I have to pay if I send out more than one email per month anyway, so I definitely won't be clogging up your inbox.
|
||||
|
||||
\paragraph{Dedication:} This issue is dedicated to my mother Carmen Moreno-Parsons (3 September 1950 — 13 February 2026) who never understood my fascination with computers, but did what she could to encourage it.
|
||||
|
||||
\medskip
|
||||
\begin{flushright}
|
||||
\noindent{}Thanks,\\—Ken
|
||||
Until next time,\\
|
||||
thanks for being here,\\—Ken
|
||||
\end{flushright}
|
||||
|
||||
\end{small}
|
||||
|
||||
@ -4,11 +4,11 @@
|
||||
|
||||
As a Linux user, I'm a big fan of open-source software. All the software I use in real life (i.e., when I'm not at work) is open source. (I finally did abandon VueScan for NAPS2, as I mentioned back in issue \#4.) I don't want Microsoft or Apple or Google in my personal life at all, if I can avoid it. I'm not worried about their stealing my identity or anything like that. For the most part, they already have it. What I want to avoid is their pernicious insistence on occupying a larger and larger role in my life. Alas, that takes a bit of work these days.
|
||||
|
||||
Also, open-source is a difficult path to follow these days. There are always people looking to exploit this model for their own greed. As I mention in the next issue, it helps to examine a person's source code.
|
||||
Also, open-source is a difficult path to follow these days. There are always people looking to exploit this model for their own greed. As I mention in the next issue, it helps to examine a person's personal source code.
|
||||
|
||||
\subsection{GitHub}
|
||||
|
||||
For a long time GitHub had been a central hub (hence the name) for open-source software, both projects and people. People could share their code, fork other people's projects,\footnote{That is, make a copy of the software so they can make modifications or improvements.} make pull requests,\footnote{A pull request is a request for the current owner of the software to pull in your fork, and thus add your improvements and modifications to the main branch.} and manage issues. For a while there, it was a great place to be.
|
||||
For a long time GitHub had been a central hub (hence the name) for open-source software, both projects and people. People could share their code, fork other people's projects, make pull requests,\footnote{To fork a repository is to make a copy of the software so you can make modifications or improvements. A pull request is a request for the current owner of the software to pull in your fork, and thus add your improvements and modifications to the main branch.} and manage issues. For a while there, it was a great place to be.
|
||||
|
||||
Then the founders sold it to Microsoft in 2018. I was content to keep using it as long as nothing changed or the changes were minimal, and they were. GitHub \textit{now} functions much like GitHub \textit{then} functioned. But at some point Microsoft added second-factor authentication (2FA) to the site. This is something my bank asks for whenever I log in (because I don't log in all that often) so I don't have an issue with the concept. You get a text message with a five- or six-digit code, you enter that code on the website and you're good to go.
|
||||
|
||||
@ -16,7 +16,7 @@ I do have an issue with GitHub asking for 2FA, though.
|
||||
|
||||
First, is 2FA even necessary here? \textit{Why} do I need to prove who I am just to push some changes to GitHub? What is someone else going to do? Make my code better and then push it? (Again, that's what forks and pull requests are for.) I suppose they could make it \textit{worse} and then push it. I could see that being a problem if this were Subversion, where you only get a particular branch, but when you clone something in Git, you get \textit{everything}. If someone really did mess around with my online repos, I would simply delete them, recreate them online, and then push everything back to the new repos on GitHub. This is part of the point of using Git. 2FA in this case is just a solution in search of a problem.
|
||||
|
||||
Second, Microsoft included the option to just get a text message, but also indicated that this would be \textit{so} much more simple if I just installed their authenticator app on my phone.\footnote{At this point, I heard Michael Palin shouting ``Now we see the violence inherent in the system!''. See \kref{https://www.youtube.com/watch?v=ZtYU87QNjPw}{https://www.youtube.com/watch?v=ZtYU87QNjPw}.} Instead of dealing with something as pesky and intrusive as a text message, I could just use their app.
|
||||
Second, Microsoft included the option to just get a text message, but also indicated that this would be \textit{so} much simpler if I just installed their authenticator app on my phone.\footnote{At this point, I heard Michael Palin shouting ``Now we see the violence inherent in the system!''. See \kref{https://www.youtube.com/watch?v=ZtYU87QNjPw}{https://www.youtube.com/watch?v=ZtYU87QNjPw}.} Instead of dealing with something as pesky and intrusive as a text message, I could just use their app.
|
||||
|
||||
This is problematic in so many ways. For one thing, once I have that app on my phone, Microsoft is now embedded in my life. It goes everywhere I go. If I have to choose between a Microsoft product or some other non-Microsoft product in the future, I am more likely to go with the Microsoft app because hey, I already have their authenticator app and so that's one less app I need to download and install, one less login I need to maintain. Microsoft is my friend, after all, looking out for me and making my life easier by providing this free app that makes 2FA so easy to manage. What a wonderful Big Brother it is!
|
||||
|
||||
@ -26,11 +26,11 @@ As an aside, my company is heavily invested in Microsoft technology, and we have
|
||||
|
||||
I don't use GitHub any more as a result. I have moved all my online repositories from there to both my own git server (located at \kref{https://git.kjodle.net/kjodle}{https://git.k\\jodle.net/kjodle}) and also to Codeberg (located at \kref{https://codeberg.org/kjodle}{https://codeberg.or\\g/kjodle}).
|
||||
|
||||
So long, GitHub. It was good while it lasted, but nothing lasts forever.
|
||||
So long, GitHub. It was good while it lasted, but nothing gold can stay.
|
||||
|
||||
\subsection{WordPress}
|
||||
|
||||
I started using WordPress when I created my second (or third?) website at \kref{https://kjodle.net/}{https://kjodle.net/}. I was pretty excited about this blogging business, which was part of the what all the people in the education sphere called ``Web 2.0''.\footnote{See issue ``The Salad Days Are Over'' in issue \#5.}
|
||||
I started using WordPress when I created my second website at \kref{https://kjodle.net/}{https://kjodle.net/}. I was pretty excited about this blogging business, which was part of the what all the people in the education sphere called ``Web 2.0''.\footnote{See issue ``The Salad Days Are Over'' in issue \#5.}
|
||||
|
||||
Back in the day, I absolutely \textit{loved} WordPress. The community was warm and welcoming and I made a lot of friends. Through developing themes, child themes, and plugins, I learned a lot about HTML, CSS, and PHP, as well as the basics of MySQL databases. Alas, that \textit{official} WordPress community was only warm and welcoming as long as you agreed with all the decisions The Powers That Be are making. Dissention (or disagreement or even just plain confusion) were not tolerated. You either toe the line or you protest what you view as unnecessary changes (i.e., solutions in search of a problem) and get the boot.
|
||||
|
||||
@ -38,9 +38,9 @@ In this case, it was the ``block editor'' known as Gutenberg.\footnote{It sadden
|
||||
|
||||
First available as a plugin, I eagerly tried it out. And it was disappointing. I use WordPress to convey \textit{content}: information and ideas in the form of words occasionally augmented by images. But this was all about window dressing. It was about making things look pretty. (It was also about making things look all the same, alas. Such is the nature of modern web design.\footnote{Do \textit{not} get me started on modern web design.})
|
||||
|
||||
Which I'm fine with, in some ways—I've been interested in design since I first learned how to read and can go on \textit{at length}\footnote{Seriously, do \textbf{not} get me started on the subject of design.} about the differences between two different typefaces\footnote{\textit{Not} fonts. Seriously, also don't get me started on the differences between fonts and typefaces.}. But this is not what Gutenberg was about. There are\footnote{or there were at the time; I've since stopped paying attention to these things} a number of ``page-building'' plugins available to help you design a website with WordPress if you know nothing about HTML and CSS.
|
||||
Which I'm fine with, in some ways—I've been interested in design since I first learned how to read and can go on at length about the differences between two different typefaces\footnote{\textit{Not} fonts. Seriously, also don't get me started on the differences between fonts and typefaces. (Oops, too late. See chapter three.)}. But this is not what Gutenberg was about. There are a number of ``page-building'' plugins available to help you design a website with WordPress if you know nothing about HTML and CSS.\footnote{Or at least there \textit{were} at the time; I've since stopped paying attention to these things.}
|
||||
|
||||
The ostensible purpose of the Gutenberg plugin (which was eventually included in the WordPress core\footnote{``in the WordPress core'' means that once you install the latest version of WordPress, you have this thing whether or not you want it or need it.}) was generally presented as a way to make WordPress \textit{easier} to use for non-technical users. One of the nice things about blogging software is that it levels the playing field for mounting a bully pulpit of your own—getting online is largely a matter of logging on, rather than building something from scratch. I used to think that this was a good thing, but the last ten years has taught me that giving idiots a bigger and better soapbox is probably \textit{not} a good idea. We should have the digital equivalent of ``you must be this tall to ride this ride'', which used to be a basic knowledge of HTML. Maybe we should bring that back.
|
||||
The ostensible purpose of the Gutenberg plugin (which was eventually included in the WordPress core\footnote{``in the WordPress core'' means that once you install the latest version of WordPress, you have this thing whether or not you want it or need it.}) was generally presented as a way to make WordPress \textit{easier} to use for non-technical users. One of the nice things about blogging software is that it levels the playing field for mounting a bully pulpit of your own—getting online is largely a matter of logging on, rather than building something from scratch. I used to think that this was a good thing, but the last ten years has taught me that giving idiots a bigger and better soapbox is probably \textit{not} a good idea. We should have the digital equivalent of ``you must be this tall to ride this ride''. Which used to be a basic knowledge of HTML. Maybe we should bring that back.
|
||||
|
||||
But it didn't really take a genius to figure out the \textit{real} purpose of Gutenberg (because I am \textit{not}, in any way, shape, or form, a genius), and that was to basically squash all of those competing companies that provided page-building plugins out of existence.
|
||||
|
||||
@ -48,7 +48,7 @@ The entire point of WordPress was that it made getting on the web easier for peo
|
||||
|
||||
I did protest in the WordPress forums. I pointed out that this could be a great feature for \textit{some} users, and that it might useful in \textit{some} cases, but not all, and thus should remain as a plugin and not incorporated into core.
|
||||
|
||||
My comments did not fall on deaf ears. Instead, they fell on all-too-attentive ears who deleted my comments and posts. They also—without notice or warning—deleted my plugins from the WordPress plugin directory. I sent emails asking why, and got generic responses in return that were linked to an equally generic ``your plugin may be deleted if…'' kind of page, which listed a number of reasons why your plugins might be deleted from the repository, reasons which seemed eminently reasonable to me, but none of which I had done. This means, of course, that there is an unwritten rule that your plugins may be deleted if you do not march in lock-step with The Powers That Be. But, of course.
|
||||
My comments did not fall on deaf ears. Instead, they fell on all-too-attentive ears who deleted my comments and posts. They also—without notice or warning—deleted my plugins from the WordPress plugin directory. I sent emails asking why, and got generic responses in return that were linked to an equally generic ``your plugin may be deleted if…'' page, which listed a number of reasons why your plugins might be deleted from the repository, reasons which seemed eminently reasonable to me, but none of which I had done. This means, of course, that there is an unwritten rule that your plugins may be deleted if you do not march in lock-step with The Powers That Be. But, of course.
|
||||
|
||||
I've long been suspicious of the WordPress business model. It is often described as an open source project, and indeed, wordpress.\textit{org} is. In fact, it \textit{has} to be, since it was originally a fork of the \textsf{b2/cafelog} project.\footnote{Alas, the \texttt{cafelog} domain is now owned by a Singaporean gambling company. Such is life in late-stage capitalism.} Like other oligarchs, Matt Mullenweg didn't invent \textit{anything}—he just took something that previously existed, put his own label on it, and called it his own.
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
One of the most confusing things in \LaTeX{} for some people is how to format text, especially when you are creating some custom macros that change the appearance of text. If you sense the voice of experience here, you are correct.
|
||||
|
||||
There are two key concepts to keep in mind here. The first concept to keep in mind here is that \LaTeX{} has both \textit{commands} to style a small portion of text and \textit{switch commands} to style all the text that comes after. The second is that ``text'' is not just a collection of characters, but a collection of characters with distinct groups of characteristics.
|
||||
There are two key concepts to keep in mind here. The first concept is that \LaTeX{} has both \textit{commands} to style a small portion of text and \textit{switch commands} to style all the text that comes after. The second is that ``text'' is not just a collection of characters, but a collection of characters with distinct groups of characteristics.
|
||||
|
||||
\section{Text Characteristics}
|
||||
|
||||
@ -15,7 +15,7 @@ The history of making marks on paper (or clay, or cave walls, or skin) goes a lo
|
||||
\item Size
|
||||
\end{itemize}
|
||||
|
||||
Let's look at each of these in turn. But first, let's clear up a bit of confusion about the terms \textit{font} and \textit{typeface}.
|
||||
We'll look at each of these in turn. But first, let's clear up a bit of confusion about the terms \textit{font} and \textit{typeface}.
|
||||
|
||||
\subsection{Typefaces vs. Fonts}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user