First round of final edits

This commit is contained in:
Kenneth John Odle 2024-06-12 15:34:36 -04:00
parent bf22d36bfb
commit cd7d6fb8ca

View File

@ -215,7 +215,7 @@ I did not realize it at the time,\footnote{I may not have realized it until just
\begin{multicols}{2}
If you complain about being stuck in a low-paying job, people tell you that you should go to college. If you do go to college and then complain about being crushed under a tremendous amount of student loan debt, people tell you that you should have gotten a job that doesn't require a college degree. It's a vicious circle.
What never gets pointed out is that college costs have risen disproportionately compared to the rate of inflation. From 1980 to 2024, the average price to attend a four-year college full time went from just over \$10,000 a year to almost \$30,000 a year\footnote{\kref{https://www.forbes.com/advisor/student-loans/college-tuition-inflation/}{https://www.forbes.com/advisor/student-loans/college-tuition-inflation/}}—an increase of 180\% when adjusted for inflation. Whereas the state of California used to provide \textit{free} college tuition back in the day\footnote{\kref{https://www.insidehighered.com/blogs/digital-tweed/tuition-free-college-yesterday-and-tomorrow}{https://www.insidehighered.com/blogs/digital-tweed/tuition-free-college\\-yesterday-and-tomorrow}} it no longer does—because then-governor Ronald Reagan wanted to punish the University of California for tolerating student activism.\footnote{\kref{https://calmatters.org/explainers/cost-of-college-california/\#d6b48652-908b-4639-be19-3f09ecab02f9}{https://calmatters.org/explainers/cost-of-college-california/\#d6b48652-\\908b-4639-be19-3f09ecab02f9}}\textsuperscript{,} \footnote{For more detailed information on rising college costs, see \kref{https://educationdata.org/average-cost-of-college-by-year}{https://educationdata.\\org/average-cost-of-college-by-year}.}
What never gets pointed out is that college costs have risen disproportionately compared to the rate of inflation. From 1980 to 2024, the average price to attend a four-year college full time went from just over \$10,000 a year to almost \$30,000 a year when adjusted for inflation\footnote{\kref{https://www.forbes.com/advisor/student-loans/college-tuition-inflation/}{https://www.forbes.com/advisor/student-loans/college-tuition-inflation/}}—an increase of 180\%. Whereas the state of California used to provide \textit{free} college tuition back in the day\footnote{\kref{https://www.insidehighered.com/blogs/digital-tweed/tuition-free-college-yesterday-and-tomorrow}{https://www.insidehighered.com/blogs/digital-tweed/tuition-free-college\\-yesterday-and-tomorrow}} it no longer does—because then-governor Ronald Reagan wanted to punish the University of California for tolerating student activism.\footnote{\kref{https://calmatters.org/explainers/cost-of-college-california/\#d6b48652-908b-4639-be19-3f09ecab02f9}{https://calmatters.org/explainers/cost-of-college-california/\#d6b48652-\\908b-4639-be19-3f09ecab02f9}}\textsuperscript{,} \footnote{For more detailed information on rising college costs, see \kref{https://educationdata.org/average-cost-of-college-by-year}{https://educationdata.\\org/average-cost-of-college-by-year}.}
A well-educated populace is a public good and there is no humane reason why any economically successful nation should burden its youth with high levels of student loan debt. There are plenty of inhumane reasons, however, the primary one being that conservative politicians do not want a well-educated populace, as it is easier to exploit them for commercial gains if they have no idea what is happening to them. It's much easier to pin their woes on the boogeyman of ``communism'' despite the fact that they have no idea what communism actually is. In short, unless you have capital, capitalism is not your friend.
\end{multicols}
@ -223,7 +223,7 @@ A well-educated populace is a public good and there is no humane reason why any
\hrule
\medskip
His second argument was that as a prospective biology teacher, I was \textit{required} to get a group science ``minor'', which is in quotation marks because it was actually 36 credit hours (the equivalent of a major) rather than the 20 credit hours typical of an actual minor. As a result, I would have little time or energy (or money!) for another minor.
His second argument was that as a prospective biology teacher, I was required to get a group science ``minor'', which is in quotation marks because it was actually 36 credit hours (the equivalent of a major) rather than the 20 credit hours typical of an actual minor. As a result, I would have little time or energy (or money!) for another minor.
So in 2008 I decided to go back to teaching. To renew my license, I needed to get eight credit hours in ``a teachable subject'' and I decided to take a couple of English classes, as that would both meet the legal requirements and also give me a chance to read and write for credit.
@ -235,7 +235,7 @@ Becoming a biology teacher required that I take a \textit{methods} class, which
Becoming an English teacher required that I take \textit{three} methods classes: one about teaching literature, another about teaching grammar, and a third about teaching writing. I remember very little about the first two. To be honest, I remember more about the graduate class I took in fairy and folk tales, because those tales evolve like living beings—which in a way they are. This was where biology and literature overlapped for me in the Venn diagram of my life.
The one thing I remember very distinctly about the writing methods course was that our capstone project had to be \textit{online}. Oh wow, I thought—I've been creating websites for a while now. But I was worried. I had been hearing about how young people were so good with technology, so comfortable with it, that I was sure whatever they came up with would just blow my feeble old school attempts out of the water.
The one thing I remember very distinctly about the writing methods course was that our capstone project had to be \textit{online}. Oh wow, I thought—I've been creating websites for a while now. But I was worried. I had been hearing about how young people were so good with technology, far better than any previous generation, in fact. I was sure whatever they came up with would just blow my feeble old school attempts out of the water.
I could not have been more wrong.
@ -243,7 +243,7 @@ Our instructor asked how many of us had any experience creating websites. Only t
Our instructor sent the three of us into a small computer lab at the end of the classroom to start making plans while she explained to the rest of the class how to create a web site. Of course, if you leave three students alone in a room, they're not going to get any work done—they're going to sit and talk. It doesn't matter what their ages are—work is just not going to be a priority for them. Instead, we sat and talked about how we got here.
As it turns out, the older woman and I both had experience creating websites from scratch and the younger woman (the one of us who was still on Plan A) had once set up a forum for her gaming community using phpBB, which is not quite the same thing as setting up a website, but close enough. It's better than nothing. She also spent quite a bit of time talking about ``leetspeak'' which had somehow passed me by—perhaps because I have never been much of a gamer.\footnote{Everything I read about this makes me feel that is either something that is pretty cool or the most annoying thing in the world. I can't quite make up my mind.}
As it turns out, the older woman and I both had experience creating websites from scratch and the younger woman (the only one of the three us who was still on Plan A) had once set up a forum for her gaming community using phpBB, which is not quite the same thing as setting up a website, but close enough. It's better than nothing. She also spent quite a bit of time talking about ``leetspeak'' which had somehow passed me by—perhaps because I have never been much of a gamer.\footnote{Everything I read about this makes me feel that is either something that is pretty cool or the most annoying thing in the world. I can't quite make up my mind.}
Still, this left some twenty-odd young people on the other side of that door who were utterly clueless about how to create a website, and were more than a little nervous about the prospect.
@ -253,23 +253,25 @@ Well, I had grown up with computers, too, only I did it twenty-five years before
But it is not the presence or absence of a mouse or a GUI that makes you good with a computer. A lot of kids my age also had Commodore 64s and all they did with them was shove a cartridge in the back and play games. This in no way prepared them to know how to set up a spreadsheet in VisiCalc to balance your checkbook.\footnote{Which was one of the very first things I ever tried to do with a spreadsheet. It is not nearly as easy as one might think.}
Again, I blame the educational industrial complex here, which I believe is where the term ``digital native'' came from. (And again, this is a feature, not a bug, of capitalism. The main goal under capitalism is to just extract as much money as you can from the people around you, and it doesn't really matter if you are correct or not. Your only value is determined by how much wealth you bring to the shareholders.)
I blame the educational industrial complex here, which I believe is where the term ``digital native'' came from. (And again, this is a feature, not a bug, of capitalism. The main goal under capitalism is to just extract as much money as you can from the people around you, and it doesn't really matter if you are correct or not. Your only value is determined by how much wealth you bring to the shareholders.)
Growing up with a computer in your house doesn't mean that you'll be an expert at anything and everything digital any more than growing up with a car in the driveway means you'll know how to drive it, let alone change the oil or rebuild the carburetor. It's a completely false assumption.
Still, most if not all of these other students figured it out. They created their lesson plans, they got them online, they presented a highly abbreviated form of them to the class, they got their final grade, and they moved on.
I did actually get mine online by crafting html and css by hand.\footnote{Shades of \textit{The Pushcart War}! One my favorite books from my childhood that resistance is most definitely not futile.} And for a while it lived in a subdomain on my website but then \textit{mobile} became the thing and I was not good at adapting sites to be mobile-friendly at that point (it's a piece of cake now\footnote{Also, there some sites that just \textit{shouldn't} be mobile-friendly. Do you really want air traffic controllers directing airplanes from their phones?} and I also changed webhosts because I was not happy with some of the business decisions my then current webhost made and then I changed webhosts \textit{again} because the dream host I had found (WebFaction) had been purchased by GoDaddy (which is a terrible company) and I eventually found a job outside of teaching because you can only eat for so long on a substitute teacher's salary, and I've let it go by the wayside. I'm sure I still have the files on a back-up drive somewhere, so I could theoretically get it online again (and in a mobile-friendly form) if I wanted to and had a long Saturday afternoon to devote to it.
I did actually get mine online by crafting html and css by hand.\footnote{Shades of \textit{The Pushcart War}! One my favorite books from my childhood that shows that resistance is most definitely not futile.} And for a while it lived in a subdomain on my website but then \textit{mobile} became the thing and I was not good at adapting sites to be mobile-friendly at that point (it's a piece of cake now\footnote{Also, there some sites that just \textit{shouldn't} be mobile-friendly. Do you really want air traffic controllers directing airplanes from their phones?} and I also changed webhosts because I was not happy with some of the business decisions my then current webhost made and then I changed webhosts \textit{again} because the dream host I had found (WebFaction) had been purchased by GoDaddy (which is a terrible company) and I eventually found a job outside of teaching because you can only eat for so long on a substitute teacher's salary, and I've let it go by the wayside. I'm sure I still have the files on a back-up drive somewhere, so I could theoretically get it online again (and in a mobile-friendly form) if I wanted to and had a long Saturday afternoon to devote to it.
But I'm not going to be a teacher ever again, so there's no point in that. That would be looking backward, not looking forward. And I don't like to get mired in the past, despite the fact that I have spent so many of these columns talking about what a delight it was. The fact is that \textit{parts} of it were delightful and many more parts were utterly terrifying.
And if that's the past, who knows what the future holds?
\chapter{How to Be Good With Computers}
\paragraph{Note:}This originally started out as part the the ``College, 2008'' section, but soon took on a life of its own. It didn't belong there, but it belongs somewhere. So here it is.
\paragraph{Note:}This originally started out as part of the the ``College, 2008'' section, but soon took on a life of its own. It didn't belong there, but it belongs somewhere. So here it is.
\medskip
\noindent{}So what does it mean to be ``good'' with something? Especially with computers? The experience of being segregated into a little room almost twenty years ago because of something I knew while those around me didn't has marked me in some way. It's taken me a long time to actually figure it out, and I think it is that there really is no such thing as someone who is ``good at computers''. This is like ``being good at sports'' or ``liking Asian food''. The concepts of ``computers'', ``sports'', and ``Asian food'' are really too large to be considered as a single entity. There is really only ``being better at this one very specific thing than everyone else in the room''.
\noindent{}What does it mean to be ``good'' with something? Especially with computers? The experience of being segregated into a little room almost twenty years ago because of something I knew while those around me didn't has marked me in some way. It's taken me a long time to actually figure it out, and I think it is that there really is no such thing as someone who is ``good at computers''. This is like ``being good at sports'' or ``liking Asian food''. The concepts of ``computers'', ``sports'', and ``Asian food'' are really too large to be considered as a single entity. There is really only ``being better at this one very specific thing than everyone else in the room''.
In fact, the person who is good at computers generally has three characteristics that make them that way.
@ -277,15 +279,15 @@ First, they are not afraid to experiment. They know how to \textit{undo} things,
Second, they are good at recognizing patterns. This means that they don't need to reinvent the wheel each time; they can look at a new problem and see if it is similar to an old one and whether it's possible to adapt an older, tried and true solution to this new problem. ``The thing that hath been, it is that which shall be; and that which is done is that which shall be done: and there is no new thing under the sun.''\footnote{Eccleiastes 1:9} All our new problems are just iterations of our old problems.
Third, they are good at searching the web for a solution. This is easier now than it was twenty years ago because the web is simply so much bigger than it was then. There is an art and a science to this, so much so that we used to use the term ``google-fu'' or ``search-fu''\footnote{Like ``kung-fu''. Get it? \textit{Get it?} Sometimes we are tiresome people.}. But all this really means is knowing how to construct a search query that does not return superfluous answers. In the old days it was largely knowing how Boolean operators worked, and then selecting appropriate arguments for those operators. These day, artificial intelligence is probably going to screw this completely up. (Or they already have—I recently saw a screen clip of an AI bot recommending adding half a cup of glue to your gravy to thicken it up. I'm sure this would work, but it would not be the gravy you are looking for.)
Third, they are good at searching the web for a solution. This is easier now than it was twenty years ago because the web is simply so much bigger than it was then. There is an art and a science to this, so much so that we used to use the term ``google-fu'' or ``search-fu''\footnote{Like ``kung-fu''. Get it? \textit{Get it?} Sometimes we are tiresome people.}. But all this really means is knowing how to construct a search query that does not return superfluous answers. In the old days it was largely knowing how Boolean operators worked, and then selecting appropriate arguments for those operators. These days, artificial intelligence is probably going to screw this completely up. (Or they already have—I recently saw a screen clip of an AI bot recommending adding half a cup of glue to your gravy to thicken it up. I'm sure this would work, but it would not be the gravy you are looking for.)
I can give a couple of examples here. At my old job, we received planning schedules from our customers on a weekly basis. Our material planner would print these out and enter their data into our system which would then give us an idea of how much production we needed to run each week.
One of our customers upgraded their planning software and what had been a twelve-page easy to understand report suddenly became a report running to well over a hundred pages that was full of irrelevant information and multiple empty columns.
One of our customers upgraded their planning software and what had been a twelve-page easy-to-understand report suddenly became a report running to well over a hundred pages that was full of irrelevant information and multiple empty columns.
I noticed that this information could be downloaded as a \texttt{.csv} file, so I created a spreadsheet that would allow you to import the \texttt{.csv} file, and which would then use VBA to get rid of all the information we didn't need, sort all the data in a way that made sense for our purposes, and then export the entire thing as a pdf file.
Because it worked (and worked \textit{well}) I was lauded as a guy who is ``good with computers'' (which largely overlooked all the expertise my coworkers made use of every day as they did their jobs—which were largely computer based). The truth is that I knew absolutely nothing about VBA going into this. I just used those three characteristics—a willingness to experiment, an ability to recognize patterns, and a determination to search the web until I found the solutions\footnote{Or enough different solutions that I could put bits and pieces of them together until I got to where I needed to be. Every bit of software out there bears more than a passing resemblance to Dr. Frankenstein's creation once you look beneath the hood.} I was looking for—and created something which worked.
Because it worked (and worked \textit{well}) I was lauded as a guy who is ``good with computers'' (which largely overlooked all the expertise my coworkers made use of every day as they did their jobs—which were largely computer based). The truth is that I knew absolutely nothing about VBA going into this. I just used those three characteristics—a willingness to experiment, an ability to recognize patterns, and a determination to search the web until I found the solution\footnote{Or enough different solutions that I could put bits and pieces of them together until I got to where I needed to be. Every bit of software out there bears more than a passing resemblance to Dr. Frankenstein's creation once you look beneath the hood.} I was looking for—and created something which worked.
But does this make me an expert at Microsoft Excel or at VBA? Hardly. I mean, it did to all those people who saw this spreadsheet in action. But I didn't view myself as someone who was good at Excel or VBA. I just viewed myself as someone with a dogged determination to keep experimenting until I got it right. To me, the idea of someone who is ``good with computers'' is \textit{very} relative and not at all absolute.
@ -295,7 +297,7 @@ One of my many frustrations with Excel, and indeed pretty much any spreadsheet p
Just writing all that gives me a headache. It's no wonder people so often give the side-eye not just to Excel but to most Microsoft products. (As they should.)
But this engineer showed me that if you have a cell selected (and I use cursor keys rather than a mouse to navigate around a spreadsheet 90\% of the time) all you need to do is press the F2 key and the cursor will automatically move to the end of the data in that cell, where you can then use your keyboard to do what you need to do.
But this engineer showed me that if you have a cell selected all you need to do is press the F2 key and the cursor will automatically move to the end of the data in that cell, where you can then use your keyboard to do what you need to do. As I use cursor keys rather than a mouse to navigate around a spreadsheet 90\% of the time this is a huge timesaver for me.
This was sheer genius to me and yet I had never heard of it! If I had known this ten years before, it would have saved me so many mouse clicks and so much frustration.
@ -305,35 +307,35 @@ Here's another example. At my current job we have an Excel form that we use ever
The VBA that runs this form is absolutely huge—it's at least two orders of magnitude greater in size than any amount of VBA I have ever authored.
To my way of thinking the person who is responsible for the maintenance of this form is a \textit{true} VBA expert. My level of expertise comes nowhere near theirs. And yet, they still insist that they are not an expert, that they are just really good at searching for solutions on the web, at recognizing patterns (especially in error messages), and at experimenting until they get it right. (Sound familiar?)
To my way of thinking the person who is responsible for the maintenance of this form is a \textit{true} VBA expert. My level of expertise comes nowhere near theirs. And yet they still insist that they are not an expert, that they are just really good at searching for solutions on the web, at recognizing patterns (especially in error messages), and at experimenting until they get it right. (Sound familiar?)
I am still able to use VBA to do little bits here and there for other people—creating forms that generate a pdf and then automatically attach it to an email, for instance. (I've done this a couple of times for various people, and the people on the other end have been suitably impressed, so I've added this skill to my resume. Imposter syndrome be damned!)
I am still able to use VBA to do little bits here and there for other people—creating forms that generate a pdf and then automatically attach it to an email, for instance. I've done this a couple of times and the people on the other end have been suitably impressed, so I've added this skill to my resume. Imposter syndrome be damned!
The number one characteristic I've discovered that is shared by all people who are generally viewed as ``good with computers'' is \textit{confidence}. Not knowledge, not skill, not experience. \textit{Confidence}. It's true that confidence comes from knowledge, skill, and experience, but I've met a lot of people who have all three of those things\footnote{How can you \textit{not} have experience with computers in 2024, when even Amish people have cell phones? It's because you can either choose to recognize that they are a part of your experience and roll with it, or refuse to acknowledge them and fight a losing battle against them.} but who still lack confidence and thus are not seen, nor do they see themselves, as being good with computers. I've had to coach a lot of people like this over the years and while it's easy to give someone knowledge, or experience, or skill, it's almost impossible to get them to put those three things together into confidence. It's really something they have to gain on their own, and they either do or they don't.
The number one characteristic I've discovered that is shared by all people who are generally viewed as ``good with computers'' is \textit{confidence}. Not knowledge, not skill, not experience. \textit{Confidence}. It's true that confidence comes from knowledge, skill, and experience, but I've met a lot of people who have all three of those things\footnote{How can you \textit{not} have experience with computers in 2024, when even Amish people have cell phones? It's because you can either choose to recognize that they are a part of your experience and roll with it, or refuse to acknowledge them and fight a losing battle against them.} but who still lack confidence and thus do not see themselves, nor are by others, as being good with computers. I've had to coach a lot of people like this over the years and while it's easy to give someone knowledge, or experience, or skill, it's almost impossible to get them to put those three things together into confidence. It's really something they have to gain on their own, and they either do or they don't. I'm not sure why this is.
The most important thing about people with confidence is that they keep going.
The most important thing about having confidence is helps you to keep going.
And that's what I ultimately like about Linux—it encourages you to keep going. You don't get to a point where things are hidden away behind a proprietary brick wall. Everything is open source, right down to the core, and you can dig as deeply as you like. The only thing that's really holding you back (besides your attitude) is your time and money. But for me to even talk about these things would mean that I would have to do a deep dive into the many faults of capitalism, and that's not what this zine is about, although I do touch on that tangentially (or not so tangentially) from time to time.
That is really my biggest disappointment when it comes to computers. They were supposed to be the great equalizer, because everybody would have access to the same information and the same tools. But it hasn't worked out like that at all. We commodified everything. I look around me now and I thoroughly understand the reaction that the Taylor character had at the end of the original \textit{Planet of the Apes} movie: ``You maniacs!'' he yells when he sees the ruins of the Statue of Liberty on the other side of the Forbidden Zone. ``You blew it up! Damn you all to hell!''\footnote{This is an authentically great film by the way. With a script cowritten by Rod Serling and based on a novel by Pierre Boulle (who also wrote \textit{Bridge on the River Kwai}) and directed by Franklin J. Schaffner (who also directed \textit{Patton}) how could it not be? I highly recommend it.} Pretty much every pop-up asking me to join a mailing list or asking me to like their Facebook page, every advertisement, every clickbait article, every social media algorithm makes me feel this way.
That is really my biggest disappointment when it comes to computers. They were supposed to be the great equalizer, because everybody would have access to the same information and the same tools. But it hasn't worked out like that at all. We commodified everything. I look around me now and I thoroughly understand the reaction that the Taylor character had at the end of the original \textit{Planet of the Apes} movie: ``You maniacs!'' he yells when he sees the ruins of the Statue of Liberty on the other side of the Forbidden Zone. ``You blew it up! Damn you all to hell!''\footnote{This is an authentically great film by the way. With a script cowritten by Rod Serling and based on a novel by Pierre Boulle (who also wrote \textit{Bridge on the River Kwai}) and directed by Franklin J. Schaffner (who also directed \textit{Patton}) how could it not be? I highly recommend it.} Pretty much every pop-up asking me to join a mailing list or asking me to like their Facebook page, every advertisement, every clickbait article, and every social media algorithm makes me feel this way.
Yep, we blew it all up so we could create value for the shareholder. We're not quite at a ruined-Statue-of-Liberty-on-the-beach point yet, but we are, I fear, very close to the end. We could have done better as a species, but we didn't. As Stephen King says of his generation, ``we had a chance to change the world but opted for the Home Shopping Network Instead''.\footnote{In \textit{On Writing}—which is a great book to read, whether you want to become a writer or not.}
Yep, we blew it all up so we could create value for the shareholders. We're not quite at a ruined-Statue-of-Liberty-on-the-beach point yet, but we are, I fear, very close to the end. We could have done better as a species, but we didn't. As Stephen King says of his generation, ``we had a chance to change the world but opted for the Home Shopping Network Instead''.\footnote{In \textit{On Writing}—which is a great book to read, whether you want to become a writer or not.}
The optimistic side of me says that it's not too late, while the pessimistic side of me says that it is, that we are past the tipping point, but we just don't realize it yet. I'm just not sure.
The optimistic side of me says that it's not too late, while the pessimistic side of me says that it is, that we are already past the tipping point, but we just don't realize it yet. I'm not sure.
In the meantime, I'll keep doing what I'm doing. I'll keep writing, I'll keep striving to do better. And I'll keep hoping. What else is there?
In the meantime, I'll keep doing what I'm doing. I'll keep writing, I'll keep striving to do better. And I'll keep going. What else is there?
\chapter{More Fun with bash}
As I get older, I find that I want to spend less time doing repetitive tasks that need to be done, and spend more time doing the stuff I want to do, like writing.
As it turns out, Linux can help with that goal. More time writing and drawing and making photographs is a good thing, and something I'm grateful to Linux for. The trick is, you have to be comfortable with the command line.
As it turns out, Linux can help with that goal. More time writing and drawing and making music and making photographs is a good thing, and something I'm grateful to Linux for. The trick is, you have to be comfortable with the command line.
I'm a huge believer in having a workflow so that you are doing things consistently, and so that you can make gradual improvements to that workflow so you can get more done with less.Having a workflow means that if you are doing something wrong, you are consistently doing it wrong the same way. In which case, you only need to figure out a single fix and apply it to each mistake. If you don't have a workflow, you can screw up in many different ways, and have to figure out a lot of different fixes. Making mistakes is a part of life; making consistent mistakes makes fixing them a less miserable task. Linux makes it easy for you to do all of that.
\section{bash Aliases for \texttt{git}}
One of the nice things about Linux is that once you get used to working on the terminal, it makes your life a lot easier. I'm a huge believer in having a workflow so that you are doing things consistently, and so that you can make gradual improvements to that workflow so you can get more done with less.\footnote{Also, having a workflow means that if you are doing something wrong, you are consistently doing it wrong the same way. In which case, you only need to figure out a single fix and apply it to each mistake. If you don't have a workflow, you can screw up in many different ways, and have to figure out a lot of different fixes. Making mistakes is a part of life; making consistent mistakes makes fixing them a less miserable task.} Linux makes it easy for you to do that.
Back in issue \#2 I talked about using bash aliases to make your life easier. I've also started using them with \texttt{git} as well. Here's what they look like:
\newpage
@ -344,9 +346,9 @@ alias gita="git add *"
alias gitx="git add *.tex"
\end{Verbatim}
The first one just prints out the status of any git project that I'm working. The second one will automatically add all files (except for invisible files) to the commit. Because I use \LaTeX{} a lot, I also have the third one, which will commit any changed files that end in a \texttt{.tex} extension.
The first one just prints out the status of any git project that I'm working. The second one will automatically add all files (except for invisible files) to the commit. Because I use \LaTeX{} a lot, I also have the third one, which will commit any new or changed files that end in a \texttt{.tex} extension.
I rarely have invisible files in my git repositories except for the .gitignore file, which I rarely change, so I don't need a bash alias for it. I find it easy enough to type \verb+git add .gitignore+ on the rare occasion that I need it. But if I did want to add that file on a regular basis, I could just change that line to:
I rarely have invisible files in my git repositories except for the .gitignore file, which I seldom change, so I don't need a bash alias for it. I find it easy enough to type \verb+git add .gitignore+ on the rare occasion that I need it. But if I did want to add that file on a regular basis, I could just change that line to:
\begin{Verbatim}[]
alias gita="git add * .*"
@ -358,11 +360,11 @@ or I could just add a separate command for it:
alias giti="git add .gitignore"
\end{Verbatim}
Of course, if I were changing my \textit{.gitignore} file that often, I would start to question (quite rightly) some of the other choices I've been making with my life.
Of course, if I were changing my \textit{.gitignore} file that often, I would start to quite rightly question some of the other choices I've been making with my life.
\section{Bash Commands for \textit{git}}
It would be nice if we could do the same sort of thing for \texttt{git commit}, but we can't, because we need to add some sort of message to our commit. (In other words, it requires an \textit{argument}.) So for that, we need to add a \textit{function} to Bash.
It would be nice if we could do the same sort of thing for \texttt{git commit}, but we can't, because we need to add some sort of message to our commit. In other words, it requires an \textit{argument}. So for that, we need to add a \textit{function} to bash.
As it turns out, this is pretty simple. It looks like this:
@ -407,7 +409,7 @@ cdl() {
This will change to whichever directory we specify with the \verb+$1+ placeholder, and then present a directory listing which shows all files, with human-readable sizes, in a long format. That may not be highly useful, but it's enough to give you an idea of how powerful this using bash aliases and Bash functions can be.
As an example, I like to write rough drafts in longhand, on notebook paper. I find that I am more creative that way. The problem is that I intensely dislike being surrounded by piles of paper. (ADHD means that if I can't see something, it no longer exists. So my brain will only really see whatever is on top of the pile.) So whenever I finish up a rough draft, I scan it to a ``Drafts'' folder, where it goes into a subfolder labeled for whatever projects it belongs to.\footnote{Yep, there is a subfolder labeled ``the codex'' with drafts for this zine.} So that I can see everything, I use the \texttt{tree} command to create a file which lists every single scan in that ``Drafts'' folder.
As another example, I like to write rough drafts in longhand, on notebook paper. I find that I am more creative that way. The problem is that I intensely dislike being surrounded by piles of paper. (ADHD means that if I can't see something, it no longer exists. So my brain will only really see whatever is on top of the pile.) So whenever I finish up a rough draft, I scan it to a ``Drafts'' folder, where it goes into a subfolder labeled for whatever projects it belongs to.\footnote{Yep, there is a subfolder labeled ``the codex'' with drafts for this zine.} So that I can see everything, I use the \texttt{tree} command to create a file which lists every single scan in that ``Drafts'' folder.
So far, so good, but running the same \texttt{tree} command consistently is not something my brain is set up to do. So I added this function to my \texttt{.bashrc} file:
@ -445,7 +447,7 @@ In the past few years, I've started thinking of things less in terms of a partic
What I have tried to do here is to create a hierarchy of ``rightness'' and ``wrongness'' as a way to organize my thinking on this subject; I can then jump in and discuss why things fall the way they do. No doubt, other people might have more distinctions or fewer in their hierarchy, or might have things in a separate order, or might have different reasons.
My purpose here is to see if I am actually making any progress, or if I am simply doing things randomly, as adult-onset attention deficit disorder is apparently a thing in my life.
My purpose here is to see if I am actually making any progress, or if I am simply doing things randomly, as adult-onset attention deficit disorder is apparently a thing in my life. In other words, do my changes move me up in this hierarchy, or do they move me down?
And, as we shall see, sometimes it's beneficial to do something the wrong way. You generally learn more by doing things wrong than you do by doing them correctly.
@ -455,22 +457,13 @@ And, as we shall see, sometimes it's beneficial to do something the wrong way. Y
\end{center}\krule{0mm}{6mm}
\begin{itemize}[noitemsep]
\item \textbf{Very Wrong}
\item \textbf{Genius}
\begin{itemize}[noitemsep]
\item It doesn't work and it breaks things in weird places.
\item It doesn't work and it breaks almost everything.
\item It doesn't work but it only breaks a few local things.
\item It's a true hack.
\end{itemize}
\item \textbf{Wrong}
\item \textbf{Right}
\begin{itemize}[noitemsep]
\item It works, but it breaks things in weird places.
\item It works, but it breaks almost everything else.
\item It works, but it still manages to break a few local things.
\end{itemize}
\item \textbf{Wrong\textit{ish}}
\begin{itemize}[noitemsep]
\item It works in this specific instance, but not in all instances.
\item It works, but it's far more work than it should be.
\item It works, and is considered a best practice.
\end{itemize}
\item \textbf{Right\textit{ish}}
\begin{itemize}[noitemsep]
@ -478,16 +471,27 @@ And, as we shall see, sometimes it's beneficial to do something the wrong way. Y
\item It works, but it requires you to rework some other pieces.
\item It works, but it's a bit of a kludge.
\end{itemize}
\item \textbf{Right}
\item \textbf{Wrong\textit{ish}}
\begin{itemize}[noitemsep]
\item It works, and is considered a best practice.
\item It works in this specific instance, but not in all instances.
\item It works, but it's far more work than it should be.
\end{itemize}
\item \textbf{Genius}
\item \textbf{Wrong}
\begin{itemize}[noitemsep]
\item It's a true hack.
\item It works, but it breaks things in weird places.
\item It works, but it breaks almost everything else.
\item It works, but it still manages to break a few local things.
\end{itemize}
\item \textbf{Very Wrong}
\begin{itemize}[noitemsep]
\item It doesn't work and it breaks things in weird places.
\item It doesn't work and it breaks almost everything.
\item It doesn't work but it only breaks a few local things.
\end{itemize}
\end{itemize}
Let's start at the bottom, and work our way up from there.
\section{Very Wrong Ways}
Very wrongs ways are very wrong because not only do they not work, they take other things down with them.
@ -532,17 +536,17 @@ Unfortunately, sometimes a best practice is arrived at that for no other reason
\paragraph{It's a true hack.}
As I said way back in the first issue, I define a hack as ``an appropriate application of ingenuity''\footnote{See \kref{http://www.catb.org/~esr/jargon/html/meaning-of-hack.html}{http://www.catb.org/~esr/jargon/html/meaning-of-hack.html} for more information.}. True hacks are rare and often small, whereas false hacks (that is, it only resembles a hack; like the wizard in \textit{The Wizard of Oz} who says he's a wizard and looks like a wizard, but is not an actual wizard) are all too common, and the internet is littered with them\footnote{See issues \#1 and 3 for more information.}.
As I said way back in the first issue, I define a hack as ``an appropriate application of ingenuity''\footnote{See \kref{http://www.catb.org/~esr/jargon/html/meaning-of-hack.html}{http://www.catb.org/~esr/jargon/html/meaning-of-hack.html} for more information.}. True hacks are rare and often small, whereas false hacks (that is, it only resembles a hack; like the wizard in \textit{The Wizard of Oz} who says he's a wizard and looks like a wizard, but is not an actual wizard) are all too common, and the internet is littered with them\footnote{See issues \#1 and 3 for lots of examples.}.
If you find a true hack, enjoy it, preserve it, and help to disseminate it.
\chapter{Not Another PDF Scanner}
Way back in issue \#1 of this zine\footnote{Which is only three issues ago, but considering that I published it in 2021, it seems \textit{like} a long time ago. I really need to get my act together and get these out on a more regular basis.} I talked about my workflow for scanning documents because I am trying to be as digital as possible.
Way back in issue \#1 of this zine\footnote{Which is only three issues ago, but considering that I published it in 2021, it \textit{seems} like a long time ago. I really need to get my act together and get these out on a more regular basis.} I talked about my workflow for scanning documents because I am trying to be as digital as possible.
In that article ``A Scanner Darkly, but with a workflow'' I mentioned that I used one piece of commercial software (VueScan) because it did what no FOSS\footnote{Free and Open Source} software that I knew of at the time could do: work with my printer and also sort pages effectively when my scanner's ADF\footnote{Automatic Document Feeder} does not duplex (i.e., it does not flip pages over to scan the other side). And while it is great software, and I did not mind paying the \$100 for a one-year subscription to it (the software company behind it is pretty much a father and son team), I didn't like being dependent on it.
In that article ``A Scanner Darkly, but with a workflow'' I mentioned that I used one piece of commercial software (VueScan) because it did what no FOSS\footnote{Free and Open Source} software that I knew of at the time could do: work with my all-in-one printer/scanner and also sort pages effectively when my scanner's ADF\footnote{Automatic Document Feeder} does not duplex (i.e., it does not flip pages over to scan the other side). While it is great software, and I did not mind paying the \$100 for a one-year subscription to it (the software company behind it is pretty much a father and son team), I didn't like being dependent on it.
The reasoning is simple. If a company decides to stop producing a product, that's it; you're done. I used to have a great plugin on my WordPress sites that added social media sharing icons to each post. The company that made it got bought out by Oracle. You might think this is a great thing, because Oracle is a big huge company with a lot of resources. But often, when big huge companies buy small independent companies, they are only interested in one or two of their products, and let the rest go. And this is exactly what happened. Oracle suddenly decided they weren't going to support this plugin and it just stopped working. The company's webpage for the plugin redirected to an Oracle page that basically said ``fuck off'' and little more. No explanation, no recommendations of similar plugins, nothing.
The reasoning is simple. If a company decides to stop producing a product, that's it; you're done. I used to have a great plugin on my WordPress sites that added social media sharing icons to each post. The company that made it got bought out by Oracle. You might think this is a great thing, because Oracle is a big huge company with a lot of resources. But when big huge companies buy small independent companies, they are often only interested in one or two of their products, and let the rest go. And this is exactly what happened. Oracle suddenly decided they weren't going to support this plugin and it just stopped working. The company's webpage for the plugin redirected to an Oracle page that basically said ``fuck off'' and little more. No explanation, no recommendations of similar plugins, nothing.
At least when FOSS software projects get abandoned or the original developers get better paying jobs delivering pizza, there is always the chance that someone else will take over the project. Better yet, you—yes, \textit{you}—can donate money to the project to help support it.
@ -558,15 +562,15 @@ I searched and I searched, and I was rewarded for that search. Someone mentioned
How do you clean up a scanned book from the Internet Archive? The way I would normally handle this would be the GIMP method I described earlier. But that's a lot of work for a book I just want to read and be done with. (No archivist work for me here.)
The workflow for this is fairly simple. First you import your pdf using the ``Import'' button. Then you select all the pages and click the ``Image'' button. The options are pretty limited: you can adjust the brightness and contrast, adjust the hue and saturation, or you can sharpen. It also has an image called ``Document Correction'' which is great if you are scanning in a lot of hand written notes and need to add a lot of contrast. (This doesn't work so greatly in the case of a badly yellowed book, unfortunately.) Be sure to tick the box that says ``Apply to all pages''—something I often forget to do.
The workflow for this is fairly simple. First you import your pdf using the ``Import'' button. Then you select all the pages and click the ``Image'' button. The options are pretty limited: you can adjust the brightness and contrast, adjust the hue and saturation, or you can sharpen. It also has an image called ``Document Correction'' which is great if you are scanning in a lot of hand written notes and need to add a lot of contrast. (This doesn't work so greatly in the case of a badly yellowed book, unfortunately.) You just make your corrections, and also make sure to tick the box that says ``Apply to all pages''—something I often forget to do.
You're probably not going to get a perfect book back, because the options are pretty limited. The trade-off is that you pick your settings once, and then NAPS2 handles all the work while you go get yourself a cup of coffee—or take a nap.
\section{Interleaving}
Even better, NAPS2 had an ``interleave'' feature, which meant that I didn't need to use \texttt{pdftk} to do that.\footnote{To be fair, this is a feature which VueScan also eventually added at some point.} So scanning longer two-sided documents suddenly became a lot easier.
NAPS2 also has an ``interleave'' feature, which meant that I didn't need to use \texttt{pdftk} to do that.\footnote{To be fair, this is a feature which VueScan also eventually added at some point.} Scanning longer two-sided documents suddenly became a lot easier.
The only problem was that NAPS2 offered \textit{four} versions of this command: interleave, deinterleave, alternate interleave, and alternate deinterleave. (These are very neatly contained under the ``Reorder'' icon in the main menu.) I knew one of those was what I needed; I just needed to figure out which.
The only problem was that NAPS2 offered \textit{four} versions of this command: interleave, deinterleave, alternate interleave, and alternate deinterleave. These are very neatly contained under the ``Reorder'' icon in the main menu. I knew one of those was what I needed; I just needed to figure out which.
I'm a scientist, so I experimented. I took five sheets of scrap paper, wrote the odd numbers 1-9 on the front side and the corresponding even numbers 2-10 on the back side. If you flipped through them, you would see something like what you see in figure \ref{naps2-orig}.
@ -577,7 +581,9 @@ I'm a scientist, so I experimented. I took five sheets of scrap paper, wrote the
\kpage{1}\kpage{2}\kpage{3}\kpage{4}\kpage{5}\kpage{6}\kpage{7}\kpage{8}\kpage{9}\kpage{10}
\end{figure}
Because I wrote on both sides of each side of paper (in order to emulate a double-sided original), I scanned the pages, and then flipped them over and scanned the other sides. And because I am scanning these upside down, the even numbers end up in reverse order. So I ended up with a pdf that looked like figure \ref{naps2-scan}.
Because I wrote on both sides of each side of paper in order to emulate a double-sided original, I scanned the pages, and then flipped them over and scanned the other sides. And because I am scanning these upside down, the even numbers end up in reverse order. So I ended up with a pdf that looked like figure \ref{naps2-scan}.
Using this scanner means every page has to be scanned twice—one time for the front side, and a second time for the reverse side. As a result ``upside-down'' has a couple of meanings here. My scanner's ADF accepts pages with the side you want to scan face down. It then flips them over when it scans them, which rotates them around both the $z$-axis and the $y$-axis. Because it flips them over along the $y$-axis, I only have to spin them around the $z$-axis. This should seem self-explanatory, but it often isn't—I had to use the scanner at work the other day and it took me three times to get it right.
\begin{figure}[h]
\caption{The document as originally scanned}
@ -599,11 +605,11 @@ If that looks like the original document, it is definitely not an accident; it i
\section{Adjusting Images}
Even though NAPS2 was designed to be a pdf scanner, it also has the ability to save individual scans as images. Even more importantly, because each scanned page is basically an image, you can also edit each page as an image by double clicking on it, where you get editing options like crop and rotate, in addition to the ones I mentioned earlier. This is pretty handy if you're scanning something like a manual that has different sized pages, or is printed on large sheets and folded into a box so that you have to scan it in sections,\footnote{Every piece of furniture I've ever assembled has instructions like this, but I've run into quite a few manuals that are miniature versions of this, like the earbuds I wear on my daily walk.} or a package that has care instructions.
Even though NAPS2 was designed to be a pdf scanner, it also has the ability to save individual scans as images. Even more importantly, because each scanned page is basically an image, you can also edit each page as an image by double clicking on it, where you get editing options like crop and rotate, in addition to the ones I mentioned earlier. This is pretty handy if you're scanning something like a manual that has different sized pages, or is printed on large sheets and folded into a box so that you have to scan it in sections,\footnote{Every piece of furniture I've ever assembled has instructions like this, but I've run into quite a few manuals that are miniature versions of this, like the earbuds I wear on my daily walk.} or a package that has care instructions on one or more sides.
And if you're wondering why I keep banging on about manuals, it's because I do keep them. For years, I kept them all in a large three ring binder filled with page protectors that I could slip them into. It was big, and it was awkward, and I didn't dare grab it the wrong way or I'd have manuals all over the floor.
At some point, I realized that most manuals are available in convenient pdf form from the manufacturer's website, so I started just downloading those, making sure the pdf was identical (or identical \textit{enough}) to the original, and then tossing the original in the recycling. But for those that aren't—yep, I scan them.
At some point, I realized that most manuals are available in convenient pdf form from the manufacturer's website, so I started downloading those, making sure the pdf was identical (or identical \textit{enough}) to the original, and then tossing the original in the recycling. But for those that aren't—yep, I scan them.
\medskip
@ -766,7 +772,7 @@ produces this figure:
\noindent{}\chemfig{H_3C-C(=[1]O)(-[7]OH)}
\vspace{\baselineskip}
Note that angles are always specified with regard to the horizontal, regardless of where they start. In other words, [1] = $1 * 45\degree = 45\degree$ and [7] = $7 * 45\degree = 315\degree$.
Note that angles are always specified with regard to the origin and to the horizontal, regardless of where they start. In other words, [1] = $1 * 45\degree = 45\degree$ and [7] = $7 * 45\degree = 315\degree$.
\subsection{Ring Structures }
@ -833,7 +839,7 @@ Once you understand the basics, it's fairly straightforward to construct even mo
\paragraph{Glucose:}
\begin{Verbatim}[]
\begin{Verbatim}[breaklines=true]
\chemfig{?(-[:190]OH)-[:-50](-[:170]OH)-[:10](-[:-55,0.7]OH)
-[:-10](-[6,0.7]OH)-[:130]O-[:190]?(-[:150,0.7]-[2,0.7]OH)}
\end{Verbatim}
@ -855,10 +861,12 @@ Once you understand the basics, it's fairly straightforward to construct even mo
\paragraph{Guanine:}
\begin{Verbatim}[]
\chemfig{*6((-H_2N)=N-*5(-\chembelow{N}{H}-=N-)=-(=O)-HN-[,,2])}
\begin{Verbatim}[breaklines=true]
\chemfig{*6((-H_2N)=N-*5(-\chembelow{N}{H}-=N-)=-(=O)-HN
-[,,2])}
\end{Verbatim}
\vspace{\baselineskip}
\noindent{}\chemfig{*6((-H_2N)=N-*5(-\chembelow{N}{H}-=N-)=-(=O)-HN-[,,2])}
\vspace{\baselineskip}
@ -894,19 +902,21 @@ You can even use \texttt{chemfigure} to show reactions, using a \texttt{scheme}.
\vspace{\baselineskip}
Notice the use of \texttt{setchemfig} to scale the reaction to 75\% so it would fit on the page, and then its use again to reset the scale back to 100\%. (Although the latter is a moot point, as we are done now.)
This is an easy package to master, and really fun to use. I encourage you to try it.
\chapter{Coda}
\section{What I Learned About \LaTeX{} While Creating This Issue}
\subsection{How to Get More Font Sizes}
One of the things that has bugged me for some time about this zine is that I was not creating the cover in \LaTeX{}. The reason for that was simple: I didn't know how. But we're now at the fourth issue, and so it was time to finally figure it out.\footnote{If this cover looks a little different than previous covers, this is the reason why. But they will look like this going forward.}
One of the things that has bugged me for some time about this zine is that I was not creating the cover in \LaTeX{}. The reason for that was simple: I didn't know how when I started this project+. But we're now at the fourth issue, and so it was time to finally figure it out.\footnote{If this cover looks a little different than previous covers, this is the reason why. But they will look like this going forward.}
One of the issues that I encountered is that your standard document classes give you a limited number of font sizes, and I needed the title to be fairly large. Larger than I could get with the \verb|\begin{Huge}\end{Huge}| command, anyway.
One of the issues that I encountered is that your standard document classes give you a limited number of font sizes, and I needed the title to be fairly large—larger than I could get with the \verb|\begin{Huge}\end{Huge}| command, anyway.
As it turns out, if you are using Type 1 fonts, you can just use the \texttt{fontsize} command to make this work. This is what I used for the front cover:
\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{fontsize example}]
\begin{Verbatim}[frame=lines, framesep=3mm, breaklines=true, label=\fbox{fontsize example}]
{\fontsize{50}{60}\selectfont \textbf{the codex}}
\end{Verbatim}