Final proofreading round 1
This commit is contained in:
parent
f56bfb9738
commit
8f514524eb
@ -59,3 +59,4 @@ Date,Topic,Minutes
|
||||
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
|
||||
|
@ -1,6 +1,6 @@
|
||||
\chapter{The Faces of Computing: \\Ada Lovelace}
|
||||
|
||||
Computer science is strongly allied with mathematics, and the face of both of those fields is often a white male face. While it's true that both of these fields have traditionally been the domain of white males, many women and minorities have contributed to both mathematics and computer science over the years. I suspect that my experience is anomalous here, because while my high school computer teacher was a white man, the single computer course I took in college was taught by a white woman. And when I later got involved in WordPress theme and plugin development, I worked with men and women (mostly men, but a fair number of women) from all over the world.
|
||||
Computer science is strongly allied with mathematics, and while the face of both of those fields is often a white male face, many women and minorities have contributed to both mathematics and computer science over the years. I suspect that my experience is anomalous here, because while my high school computer teacher was a white man, the single computer course I took in college was taught by a white woman. And when I later got involved in WordPress theme and plugin development, I worked with men and women (mostly men, but a fair number of women) from all over the world.
|
||||
|
||||
\setlength{\intextsep}{0pt}%
|
||||
\begin{wrapfigure}[16]{r}{0.35\textwidth}
|
||||
@ -11,11 +11,11 @@ Computer science is strongly allied with mathematics, and the face of both of th
|
||||
|
||||
Ada Lovelace, otherwise known as Augusta Ada King, Countess of Lovelace, was the first women to make significant contributions to both fields.
|
||||
|
||||
Lovelace was the child of the English poet Lord Byron 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 his wife, his daughter, and 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. 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, and many, many great horror films.
|
||||
Lovelace was the child of the English poet Lord Byron 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 ones).
|
||||
|
||||
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.)
|
||||
Ada's 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.)
|
||||
|
||||
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. (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 Farday (an early pioneer in the study of electromagnetism), Henry Fox Talbot (a photography pioneer who invented the calotype process, an early precursor to modern 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).
|
||||
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. (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 Farday (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).
|
||||
|
||||
That's a pretty impressive crowd to hang out with on Saturday nights.
|
||||
|
||||
@ -25,7 +25,7 @@ There are a couple of things to note about Babbage's Analytical Engine. First, i
|
||||
|
||||
There are a lot of technical details behind what it means for a computing device to be Turing complete, 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.
|
||||
|
||||
The fact that 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 not a very direct path to unleashing that potential, however. 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—oh, for the day when there are more scientists in politics!) named Luigi Menabrea. A couple of years later, Charles Wheatstone (who was a member of Saturday night soirées that Babbage had hosted) conmmissioned 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 greatly expanded the understanding of how the Analytical Engine could be used for practical purposes.
|
||||
The fact that 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 not a very direct path to unleashing that potential, however. 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—oh, for the day when there are more scientists in politics!) named Luigi Menabrea. A couple of years later, Charles Wheatstone (who was a member of Saturday night soirées that Babbage had hosted) 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 greatly expanded the understanding of how the Analytical Engine could be used for practical purposes.
|
||||
|
||||
Of these seven notes, the last—Note G—is perhaps the most significant in the history of computers, because it describes, in complete detail, how to use the Analytical Engine to calculate a sequence of Bernoulli numbers. I am not a mathematician, so I had to look this up (because I initially confused these with the Fibonacci sequence\footnote{I did mention that I'm not a mathematician, right?}), and \textit{Wolfram Mathworld} describes them as
|
||||
|
||||
@ -46,9 +46,9 @@ 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 probably early precursor or analog to both cricket and baseball) illegal, and 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 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.}
|
||||
|
||||
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 (or the absence thereof) 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.
|
||||
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 (or the absence thereof) 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.
|
||||
|
||||
Sadly, Ada Lovelace passed away at the age of 36 from cervical cancer. What our world would look like had she not died so young and if the Analytical Engine had been built and she continued to develop programs for it is something we will never know.
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ The fact is, you don't need to use the terminal at all to use Linux. But your li
|
||||
|
||||
We really should talk about what a terminal actually is, though, because Linux doesn't actually have one. What Linux has is a terminal \textit{emulator}. Now we have two questions: what is a terminal and what is a terminal emulator?
|
||||
|
||||
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\footnote{See \kref{https://en.wikipedia.org/wiki/Punched_card}{https://en.wikipedia.org/wiki/Punched\_card}} or paper tape\footnote{See \kref{https://en.wikipedia.org/wiki/Punched_tape}{https://en.wikipedia.org/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}.}
|
||||
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\footnote{See \kref{https://en.wikipedia.org/wiki/Punched_card}{https://en.wikipedia.org/wiki/Punched\_card}} or paper tape\footnote{See \kref{https://en.wikipedia.org/wiki/Punched_tape}{https://en.wikipedia.org/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://en\\.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, aking to what televisions used to be before flat screens came along) and send the output to that, instead, thus saving on paper. Pretty handy.
|
||||
|
||||
@ -24,14 +24,14 @@ The point here is that a terminal is a physical object (either keyboard and prin
|
||||
\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 Lab 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.
|
||||
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.
|
||||
|
||||
\begin{wrapfigure}[11]{r}{0.4\textwidth}
|
||||
\includegraphics[scale=0.95]{dec_vt100}
|
||||
\caption{The DEC VT100, a widely emulated computer terminal}
|
||||
\end{wrapfigure}
|
||||
|
||||
Over to the right, 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 is 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. My background in computers was basically 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.
|
||||
Over to the right, 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 is 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. My background in computers was basically 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}
|
||||
|
||||
@ -73,7 +73,7 @@ If you forget who you are, you can also use the \texttt{whoami} command, which s
|
||||
|
||||
\subsection{A Note on Conventions}
|
||||
|
||||
In the code examples that follow, I prefix any commands with a dollar sign (\$) which represents your terminal cursor. Output from any command will not have that. (See the code examples in section \ref{conventions} for examples.)
|
||||
In the code examples that follow, I prefix any commands with a dollar sign (\texttt{\$}) which represents your terminal cursor. Output from any command will not have that. (See the code examples in section \ref{conventions} for examples.)
|
||||
|
||||
Arguments (see the next section) are typically shown between angle brackets, so if you see something like this \texttt{rm <file>}, you would replace ``<file>'' with the actual name of your file. If your file is named ``\texttt{cookie\_list.txt}'', the actual command would be ``\texttt{rm cookie\_list.txt}''.
|
||||
|
||||
@ -96,7 +96,7 @@ As it turns out, most commands have two options for switches. For example, the m
|
||||
|
||||
Both \texttt{-a} (one hyphen) and \texttt{-}\texttt{-all} (two hyphens) have the same effect: they both show invisible files and subdirectories. So why are there two versions of this switch? I'm not 100\% sure as to the reason\footnote{Because the amount of research I have done here is exactly equal to zero.} but I suspect it has to do with how the human mind remembers information. For example, if I want to see \textit{all} the files in a directory, including the invisible ones, it's pretty easy to remember the two-hyphen version (\texttt{ls --all}). But in this case, ``\texttt{-a}'' is also short for ``\texttt{--all}'' All I need to do is remember that ``a'' is a shortcut for ``all''.
|
||||
|
||||
Most command switches work this way. Keep in mind, there are no hard and fast rules for this. The single-hyphen switch is not always lowercase (for example, the \texttt{cp} command has both \texttt{-l} which means ``hard link files instead of copying'' and \texttt{-L} which means ``always follow symbolic links in SOURCE''; the lower-case and upper-case options have nothing to do with each other), and the single-hypen single letter option doesn't always have a double-hypehn full word option.
|
||||
Most command switches work this way. Keep in mind, there are no hard and fast rules for this. The single-hyphen switch is not always lowercase (for example, the \texttt{cp} command has both \texttt{-l} which means ``hard link files instead of copying'' and \texttt{-L} which means ``always follow symbolic links in SOURCE''; the lower-case and upper-case options have nothing to do with each other), and the single-hyphen single letter option doesn't always have a double-hyphen full word option.
|
||||
|
||||
\subsection{Moving Around}\label{conventions}
|
||||
|
||||
@ -104,7 +104,7 @@ Now that you know who and where you are, you probably want to move around a bit.
|
||||
|
||||
\input{include/cd_documents}
|
||||
|
||||
Notice that it is ``Documents'' (starting with a capital letter) and not ``documents'' (starting with a lower-case letter). Case matters a lot in Linux. If you are typing a command and you are sure that you have the syntax correct but it is not working, check the lettercase. It's possible you're typing something in lower case when the actual target is written in upper case.
|
||||
Notice that it is ``Documents'' (starting with a capital letter) and not ``documents'' (starting with a lower-case letter). Case matters a lot in Linux. If you are typing a command and you are sure that you have the syntax correct but it is not working, check the lettercase. It's possible you're typing something in lower case when the actual target is written in upper case or vice versa.
|
||||
|
||||
Once you're in that directory, the \texttt{pwd} command should give you this output:
|
||||
|
||||
@ -126,13 +126,13 @@ And to go \textit{down} two or more directories, we would use the forward slash
|
||||
|
||||
\input{include/cd_doc_sss}
|
||||
|
||||
Notice that the folder ``super secret stuff'' has spaces in the title. Bash will recognize a space as marking the next option, so if we used that command without quotation marks Bash would give us an error saying there are too many arguments or that it doesn't understand the option ``secret''. This is one reason to avoid naming files or directories with spaces and why a lot of people use underscores instead of spaces.
|
||||
Notice that the folder ``super secret stuff'' has spaces in the title. Bash will recognize a space as marking the next option, so if we used that command without quotation marks Bash would give us an error saying there are too many arguments or that it doesn't understand the option ``secret''. This is one reason to avoid naming files or directories with spaces and why a lot of people use underscores instead of spaces in file and directory names.
|
||||
|
||||
\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}.
|
||||
|
||||
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 directoy 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:
|
||||
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:
|
||||
|
||||
For example, if I run \texttt{ls -ahl} in my ``Documents'' directory, I get this output:
|
||||
|
||||
@ -160,8 +160,8 @@ That seems like a lot of information, but it's highly useful information. To sum
|
||||
\item The second column shows the number of hardlinks to that item. This is really beyond the scope of this tutorial, but for directories, you can think of it as the number of items that directory contains.\footnote{See \kref{https://linuxgazette.net/issue35/tag/links.html}{https://linuxgazette.net/issue35/tag/links.html} and \kref{https://linuxgazette.net/issue93/tag/2.html}{https://linuxgaze\\tte.net/issue93/tag/2.html} for more information.}
|
||||
\item The third column shows the owner and the fourth column shows the group. This is also related to permissions.
|
||||
\item The fifth column shows the size, in human-readable form (because we used the \texttt{-h} option). Notice that directories show up as `4.0 k' which is also beyond the scope of this tutorial, but is related to the second column, so take a look at those footnotes to better understand this.
|
||||
\item The fifth column is either the creation date or the last modified date.
|
||||
\item The sixth and final column is the name. Again, notice that Linux puts single quotation marks around any names that contain a space.
|
||||
\item The sixth column is either the creation date or the last modified date.
|
||||
\item The seventh and final column is the name. Again, notice that Linux puts single quotation marks around any names that contain a space.
|
||||
\end{itemize}
|
||||
|
||||
As I mentioned earlier, you can also redirect the \texttt{stdout} of this command to a file. For example, this command:
|
||||
@ -180,13 +180,13 @@ The Linux filesystem is large, and chances are that your home directory is also
|
||||
|
||||
\paragraph{find} A more useful command is \texttt{find}, which has a \textit{ton} of options. (The \texttt{man} page runs to over 1,600 lines, so yep, a lot of options.)
|
||||
|
||||
A command like \texttt{find <term>} will search your entire filesystem for directories and files containing \texttt{<term>} in their name. To search just your home directory, you can use \texttt{find \$HOME <term>}.
|
||||
A command like \texttt{find <term>} will search your entire filesystem for directories and files containing \texttt{<term>} in their name. To search just your home directory, you can use \texttt{find \$HOME <term>}. \footnote{\texttt{\$HOME} is a variable (hence the dollar sign and upper case) in Linux, which in this case is a variable for your user's home directory.}
|
||||
|
||||
\subsection{Finding Binaries}
|
||||
|
||||
A \textit{binary} is just another name for an application file that you can run. Often you need to find where a binary is located so that you can add it as a command to another application. You have a couple of options here.
|
||||
|
||||
\paragraph{which} This command will return the name of all binaries that are located in your \texttt{PATH} variable, which is a list of locations that your system will search when attempting to execute that command. For example, if I run \texttt{which latex} in a terminal, I get this output \texttt{/usr/bin/latex}. This tells me a couple of things. First, it means that LaTeX is installed on my system. Second, it tells me that its location is contained in my \texttt{PATH} variable, which means that I can use it by simply typing \texttt{latex} in a terminal.
|
||||
\paragraph{which} This command will return the name of all binaries that are located in your \texttt{PATH} variable, which is a list of locations that your system will search when attempting to execute that command. For example, if I run \texttt{which latex} in a terminal, I get this output \texttt{/usr/bin/latex}. This tells me a couple of things. First, it means that LaTeX is installed on my system. Second, it tells me that its location is contained in my \texttt{PATH} variable, which means that I can use it by simply typing \texttt{latex} in a terminal.\footnote{Yep, \texttt{\$PATH} is yet another variable, just like \texttt{\$HOME}. I'll talk about variables in a future issue.}
|
||||
|
||||
\paragraph{whereis} Sometimes binaries get installed without getting added to the \texttt{PATH}, however. To find all binaries, regardless of whether or not they are in the \texttt{PATH}, use \texttt{wheris}. For example, typing \texttt{whereis latex} in my terminal gives me this output:
|
||||
|
||||
@ -216,11 +216,11 @@ These are the most basic examples of wildcard usage, but they have sufficed for
|
||||
|
||||
Bash has a number of commands for working with files and directories. Many of them do similar but slightly different things, so the time you invest in learning how they work and understanding their options will pay off in the long run, because you will have the exact tool that you need, and you can avoid the digital problem of trying to eat soup with a fork.
|
||||
|
||||
\paragraph{touch} The most basic command is probably \texttt{touch} which will create a file if it doesn't exist, or will update the date and time it was modified if it does exist.\footnote{I admit, I'm a little confused as to the purpose of this command, and have never found a use for it. It is probably a legacy from the early days of Linux or possbily Unix, and I have never had the time—or the amount of curiosity required—to investigate it.}
|
||||
\paragraph{touch} The most basic file command is probably \texttt{touch} which will create a file if it doesn't exist, or will update the date and time it was modified if it does exist.\footnote{I admit, I'm a little confused as to the purpose of this command, and have never found a use for it. It is probably a legacy from the early days of Linux or possbily Unix, and I have never had the time—or the amount of curiosity required—to investigate it.}
|
||||
|
||||
\paragraph{cat} A command I do find a lot of use for however is \texttt{cat}, which is short for ``concatenate''. This command can also create files and add content to them, but it can also add content to existing files. But the thing I find it most useful for is simply displaying the contents of a file, which I use a lot when examining log files.
|
||||
|
||||
However, \texttt{cat} can also be used to create files. If you type \texttt{cat > <file>} in the terminal, it will create a file named ``<file>'' and then go into \textit{interactive mode}, meaning it looks like it's not doing anything. In reality, it's waiting for you to add input. Type what you want the contents of the file to be and then press \kkey{ctrl+d} to save the file and exit interactive mode.
|
||||
To use \texttt{cat} to create files, just type \texttt{cat > <file>} in the terminal. \texttt{cat} will create a file named ``<file>'' and then go into \textit{interactive mode}, meaning it looks like it's not doing anything. In reality, it's waiting for you to add input. Type what you want the contents of the file to be and then press \kkey{ctrl+d} to save the file and exit interactive mode.
|
||||
|
||||
Notice that we are using a redirect symbol here (\texttt{>}) to push your content to that file. If you repeat this command with different text, \texttt{cat} will just overwrite what you initially wrote. To append text to a file, rather than overwrite it, use \texttt{>}\texttt{>}.
|
||||
|
||||
@ -230,7 +230,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 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 ``\texttt{-c}'' option, which does scroll, but clears the screen before displaying the next screenful of text. I find that it's easier to keep track of what I'm looking at.
|
||||
\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 ``\texttt{-c}'' option, which doesn't scroll, but clears the screen before displaying the next screenful of text. I find that it's easier to keep track of what I'm looking at.
|
||||
|
||||
The \texttt{more} command will also tell you how much of the file you've seen in the bottom left corecer of the screen. For example, if I use this command to look at the main \LaTeX{} file for this issue:
|
||||
|
||||
@ -246,7 +246,7 @@ You'll also notice that the \texttt{more} command can use the ``\texttt{-n}'' op
|
||||
|
||||
\paragraph{mkdir} To make a directory you can use the \texttt{mkdir} command, which is pretty straightforward. You can also create subdirectories by specifying the path to the subdirectory you want to create. For example, \texttt{mkdir dir1/dir2/dir3} will create a directory named ``dir3'' in that path, provided that directories ``dir1'' and ``dir2'' exist in the first place. If they don't, \texttt{mkdir} will return an error.
|
||||
|
||||
\paragraph{cp} If you want to make a copy of a file, use the \texttt{cp} command. Its syntax is pretty straightfoward: just specify the file you want to copy and then specify the name of the copied file. You can also use paths as well, so \texttt{cp 1/2/a.txt 3/4/b.txt} will go to directory ``1'' and then to directory ``2'' and copy the file ``a.txt'' to directory ``4'' located in directory ``3'' and rename it as ``b.txt''. Again, all those directories must exist in the first place, or \texttt{cp} will return an error.
|
||||
\paragraph{cp} If you want to make a copy of a file, use the \texttt{cp} command. Its syntax is pretty straightfoward: just specify the file you want to copy and then specify the name of the copied file. You can also use paths as well, so \texttt{cp 1/2/a.txt 3/4/b.txt} will go to directory ``1'' and then to directory ``2'' and copy the file ``a.txt'' to directory ``4'' located in directory ``3'' and name it as ``b.txt''. Again, all those directories must exist in the first place, or \texttt{cp} will return an error.
|
||||
|
||||
\paragraph{mv} To move a file, use the \texttt{mv} command. Just specify the name of the file you want to move, and then the path you want to move it to. Interestingly, Linux does not have a command for renaming a file, but you can use the \texttt{mv} command to rename a file by not specifying a new path. Take a look at the following examples:
|
||||
|
||||
@ -268,7 +268,7 @@ and if you want to move that file back, you can use:
|
||||
|
||||
\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 \textit{can} recover the 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 can recover, use the \texttt{shred} command.}
|
||||
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 \textit{can} recover the 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.
|
||||
|
||||
@ -276,4 +276,8 @@ If you are accumstomed to using a GUI, and the thought of wiping out a bunch of
|
||||
|
||||
If your terminal window gets filled with text and you find that distracting (which my ADHD brain often does), just use the command \texttt{clear} to get an empty window.
|
||||
|
||||
Also, if you type a command and it starts giving you \textit{tons} of output and you realize that you've done something wrong, you can usually make it exit by typing \kkey{ctrl+c}. Depending on what command you executed, there may or may not be any damage done.
|
||||
Also, if you type a command and it starts giving you \textit{tons} of output and you realize that you've done something wrong, you can usually make it exit by typing \kkey{ctrl+c}. Depending on what command you executed, there may or may not be any damage done.
|
||||
|
||||
\section{Summary}
|
||||
|
||||
Obviously, this just scratches the surface of what you can do with in the terminal (or terminal emulator). If you've been afraid to try the command line, what I've outlined here should get you started and help you build some confidence. Time to start typing!
|
||||
@ -24,11 +24,9 @@ The first line saves the \texttt{textsf} command under a new name (\texttt{oldte
|
||||
|
||||
\begin{multicols}{2}
|
||||
\begin{small}
|
||||
\paragraph{I cannot believe that this is where we are:}This is the sixth issue of this zine. I originally did this 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}.
|
||||
\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 will, however, maintain the wiki 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/forumdi\\splay.php?fid=15}, so if you want to join that forum and share your opinions and ideas, I encourage you to do so.
|
||||
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}. 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/forumdi\\splay.php?fid=15}, so if you want to join that forum and share your opinions and ideas, I encourage you to do so.
|
||||
|
||||
Starting with this issue, I wrote each chapter in a separate \LaTeX{} file, and then used the \texttt{include} command to include it in the main file. This made writing and editing this issue a lot easier, but I realize now that this method also makes it easier to collaborate with others on the writing of this zine. If you are interested in contributing a chapter to this zine, and are familiar with \LaTeX{} and Git, then you can just clone the repo for the current issue, make your changes, and then file a pull request.
|
||||
|
||||
|
||||
@ -8,13 +8,13 @@ Also, open-source is a difficult path to follow these days. There are always peo
|
||||
|
||||
\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\footnote{That is, make a copy of the software so they can make modifications or improvements.} other people's projects, 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,\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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
I do have an issue with GitHub asking for 2FA, though.
|
||||
|
||||
First, is 2FA even necessary here? 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.
|
||||
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.
|
||||
|
||||
@ -22,7 +22,7 @@ This is problematic in so many ways. For one thing, once I have that app on my p
|
||||
|
||||
The worst thing about this however, is how deceitful it all is. First, Microsoft creates an artificial barrier to doing what you want to do, and then it conveniently offers you a ``free'' solution to get around that barrier.\footnote{We would be wise here to remember Doctorow's Law: In a capitalist society, if somebody gives you something for free, you are not the customer, you are the product.} And of course, that solution means that Microsoft is going everywhere you go. It's a part of your life now. You can only get rid of it with a great deal of effort.
|
||||
|
||||
As an aside, my company is heavily invested in Microsoft technology, and we have to use 2FA to log into our VPN. Fortunately, they gave us the option of either using the app or using these little credit-card sized authenticator cards (I forget what they're called). But there have been rumors that the cards will soon go away and we'll be forced to install the Microsoft authenticator app on our phones and use that. For that reason (among others) I am looking to move on from this company. If they want me to use a digital device, then they need to provide it. Why should have to spend my increasingly dwindling resources to help them make more profit?
|
||||
As an aside, my company is heavily invested in Microsoft technology, and we have to use 2FA to log into our VPN. Fortunately, they gave us the option of either using the app or using these little credit-card sized authenticator cards (they call them tokens; I'm not sure if that's the official name). But there have been rumors that the cards will soon go away and we'll be forced to install the Microsoft authenticator app on our phones and use that. For that reason (among others) I am looking to move on from this company. If they want me to use a digital device, then they need to provide it. Why should I have to spend my increasingly dwindling resources to help them make more profit?
|
||||
|
||||
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}).
|
||||
|
||||
@ -32,11 +32,11 @@ So long, GitHub.
|
||||
|
||||
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.}
|
||||
|
||||
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 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) are 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.
|
||||
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 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) are 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.
|
||||
|
||||
In this case, it was the ``block editor'' known as Gutenberg.\footnote{It saddens me that it was named after a person who made it possible to bring knowledge and wisdom to the masses, and now it's being used to name an utterly worthless thing that is only meant to manipulate people. More about that later.}
|
||||
|
||||
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.)
|
||||
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.)
|
||||
|
||||
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 (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.
|
||||
|
||||
@ -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—which seemed eminently reasonable to me, but none of which I had done—why your plugins might be deleted from the repository, but none of which applied to me. 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…'' kind of page, which listed a number of reasons (reasons which seemed eminently reasonable to me, but none of which I had done) why your plugins might be deleted from the repository, but none of which applied to me. 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.
|
||||
|
||||
@ -60,13 +60,13 @@ This is a tremendous conflict of interest. Part of the purpose of the Gutenberg
|
||||
|
||||
And now that WordPress (.org? .com? I'm not sure which anymore.) has attacked WPEngine for not ``supporting'' the wordpress.org project, we see that this is not really about promoting open-source projects but about yet another oligarch (or in this case, a wannabe oligarch; Mullenweg is small peanuts compared to others) trying to consolidate his\footnote{It's interesting to note that all oligarchs are male.} power, and drive all of its competitors out of their business either by hook or by crook, it seems.
|
||||
|
||||
Again, this would not be an issue if wordpress.\textit{com} were not a thing. The creators (or forkers) of open-source software should not be allowed to create for-profit entities that directly benefit from the volunteer labor of thousands of volunteers.
|
||||
Again, this would not be an issue if wordpress.\textit{com} were not a thing. The creators (or forkers, in this case) of open-source software should not be allowed to create for-profit entities that directly benefit from the volunteer labor of thousands of volunteers.
|
||||
|
||||
\section{How to Support Actual Open-Source Software Projects}\label{support}
|
||||
|
||||
It's not always about money. (I mean, it is \textit{partly} about money for now, at least until we can build a society based upon ensuring people have what they need, and can contribute what they are able, rather than a society built upon avarice.)
|
||||
It's not always about money. I mean, it is \textit{partly} about money for now, at least until we can build a society based upon ensuring people have what they need, and can contribute what they are able, rather than a society built upon avarice. In the meantime, here are some things you can do.
|
||||
|
||||
\begin{enumerate}[itemsep=\baselineskip]
|
||||
\begin{enumerate}%[itemsep=\baselineskip]
|
||||
\item Use the software, on a a regular basis. Get good at using it. Become an expert at using it, so you can help others down the road. (More about that later.)
|
||||
\item Talk up this software. Use social media to talk about how much you like it—and most importantly, why. (The \textit{why} is very important!)
|
||||
\item If you create projects with this software, make sure people know you created that project with this particular bit of software. (This is branding, but for altruistic, rather than selfish, reasons.)
|
||||
|
||||
@ -35,7 +35,7 @@ Both the Palladio and Cantarell fonts used in this zine are proportional fonts.
|
||||
|
||||
In a monospace font (which is also called a fixed width font), each letter takes up the same exact width. The \textsf{kpfonts} package I use for the text in this zine is a proportional font, but the code samples are in a monospace font. \texttt{This sentence is typeset in a monospace font.} Typewriters typically use a monospace font, but as computers became commonly available, a few were produced that could actually type in a proportional font.\footnote{Typewriters are a particular love of mine, and I can go on about them at considerable length. Don't get me started.}
|
||||
|
||||
You can see this in action if we compare five of the same characters with different widths, first in a proportional font, and then in a monospace font:
|
||||
You can see this in action if we compare five of the same characters with different widths, first in a monospace font, and then in a proportional font:
|
||||
|
||||
\begin{itemize}[noitemsep]
|
||||
\item[] \texttt{iiiii} iiiii
|
||||
@ -58,14 +58,14 @@ Small caps is shorthand for ``small capitals'' and refers to text in which all t
|
||||
I should also point out that small caps are not the same as using capital letters, and typesetting the first letter of a word in a larger size. (Notice that I said ``upper-case \textit{equivalents}'' above.) Small caps are a separate set of glyphs in which all the characters have the same stroke thickness.
|
||||
|
||||
\begin{center}
|
||||
\frame{\includegraphics[scale=0.3]{smallcaps}}
|
||||
\frame{\includegraphics[scale=0.28]{smallcaps}}
|
||||
\end{center}
|
||||
|
||||
This is what all these different variations look like in a serif typeface:
|
||||
|
||||
\ksamp{large}{Normal abc}{-3}{-2}
|
||||
|
||||
\noindent{}You can see the different between the italic and slanted versions in this sample.
|
||||
\noindent{}You can also see the difference between the italic and slanted versions in this sample.
|
||||
|
||||
And here is what they look like in a sans-serif typeface:
|
||||
|
||||
@ -85,7 +85,7 @@ Size is easy to figure out: it just refers to how large a bit of text appears, e
|
||||
|
||||
\section{Semantic Formatting}
|
||||
|
||||
``Semantic'' formatting means that your code should \textit{mean} something. It other words, you need to distinguish between when you are emphasizing something (i.e., ``This is \textit{very} good cake.'') or merely when you are marking something as italic or bold as a convention, such as book and movie titles or vocabulary words (i.e., \textit{The Grapes of Wrath}, \textit{Star Wars}, ``\textbf{mitosis} is the process of cell division'', etc.).
|
||||
``Semantic'' formatting means that your code should \textit{mean} something. In other words, you need to distinguish between when you are emphasizing something (i.e., ``This is \textit{very} good cake.'') or merely when you are marking something as italic or bold as a convention, such as book and movie titles or vocabulary words (i.e., \textit{The Grapes of Wrath}, \textit{Star Wars}, ``\textbf{mitosis} is the process of cell division'', etc.).
|
||||
|
||||
In \LaTeX{}, the command for emphasizing text is \verb|\emph{<text>}|. This generally gets rendered as italic text, although not always. If you are working in a document class that formats \verb|\emph{<text>}| in some way other than italic, you can always change it to italic by adding this to your preamble:
|
||||
|
||||
@ -103,7 +103,7 @@ In \LaTeX{}, the command for emphasizing text is \verb|\emph{<text>}|. This gene
|
||||
|
||||
Likewise, \verb|\upshape| can be used to return a regular shape in an extended passage of italic, slanted, or small caps text. Similarly, to return to a regular shape in a shorter passage of italic, slanted, or small caps text, you can use \verb|\textup{<text>}|. \verb|\textmd{<text>}| can be used in the middle of a long passage of bold faced text to omit a word or two from being bold.
|
||||
|
||||
The commands and environments are summarized in the following table. It's a lot easier to remember them when you know what characteristic (family, shape, series) you are targeting, and what the two-letter code (\texttt{rm}, \texttt{bf}, etc.) stands for. \textbf{Note:} An asterisk (*) indicates the typical default for most document classes.
|
||||
These commands are summarized in the following table. It's a lot easier to remember them when you know what characteristic (family, shape, series) you are targeting, and what the two-letter code (\texttt{rm}, \texttt{bf}, etc.) stands for. \textbf{Note:} An asterisk (*) indicates the typical default for most document classes.
|
||||
|
||||
\begin{longtblr}
|
||||
[
|
||||
|
||||
Loading…
Reference in New Issue
Block a user