Browse Source

Updates to right ways/wrong ways

main
Kenneth John Odle 12 months ago
parent
commit
cc6ce748b8
  1. 129
      004/codex-004.tex

129
004/codex-004.tex

@ -9,7 +9,6 @@
\raggedbottom
\usepackage{array}
\usepackage{multirow}
\usepackage{longtable}
% Where are our images?
\graphicspath{{images/}}
@ -168,46 +167,112 @@ This also omits Edubuntu which, as a former teacher, I am very interested in.
\chapter{What's to Like About Linux}
\section{bash Aliases for \texttt{git}}
\chapter{The Right Ways vs The Wrong Ways}
A lot of grew up hearing that ``there's a right way to do things and a wrong way to do things.'' I don't disagree that there is always a \textit{wrong} way to do things, but like house maintenance, working on computers quickly teaches you that there are a lot of wrong ways to do things.
As I get older, however, I tend to think of this as less of a black-and-white issue. That is, ``how to do a thing'' can be answered any number of ways, which are on a spectrum from quite truly wrong to quite truly right with a lot of grey space in between.
% Provide some additional spacing in this table; may move this to preamble later
\setlength{\tabcolsep}{14pt}
\renewcommand{\arraystretch}{1.4}
\begin{table}[h]
\begin{tabular}{ | c | l | p{60mm} | } \hline
\multirow{3}{*}{\parbox[t]{2mm}{\multirow{3}{*}{\rotatebox[origin=c]{90}{Very Wrong}}}} & Very Wrong & It doesn't work and it breaks almost everything. \\ \cline{2-3}
& Very Wrong & It doesn't work and it breaks at least 50\% of things \\ \cline{2-3}
& Wrong & It doesn't work and it only breaks a few things \\ \hline
\multirow{2}{*}{\krot{2mm}{2}{Still Wrong}} & Kind of Wrong & It works, but it breaks a lot of other things. \\ \cline{2-3}
& Wrong & It works, but it breaks a handful of things that shouldn't have to be fixed. \\ \hline
\multirow{2}{*}{\krot{2mm}{2}{Wrong\textit{ish}}} & Not bad & It works in this specific instance, but not in all instances. \\ \cline{2-3}
& Wrong & It works, but it's far more work than it should be. \\ \hline
\end{tabular}
\end{table}
\begin{longtable}{ | c | l | p{60mm} | } \hline
\multirow{3}{*}{\krot{2mm}{3}{Very Wrong}} & Very Wrong & It doesn't work and it breaks almost everything. \\ \cline{2-3}
& Very Wrong & It doesn't work and it breaks at least 50\% of things \\ \cline{2-3}
& Wrong & It doesn't work and it only breaks a few things \\ \hline
\multirow{2}{*}{\krot{2mm}{2}{Still Wrong}} & Kind of Wrong & It works, but it breaks a lot of other things. \\ \cline{2-3}
& Wrong & It works, but it breaks a handful of things that shouldn't have to be fixed. \\ \hline
\multirow{2}{*}{\krot{2mm}{2}{Wrong\textit{ish}}} & Not bad & It works in this specific instance, but not in all instances. \\ \cline{2-3}
& Wrong & It works, but it's far more work than it should be. \\ \hline
\end{longtable}
Experience has shown me that not all wrong ways are wrong in the same way or to the same degree, and that the same is true of right ways. There may be multiple right ways to get something done, but some require less work and some require more work. It is not just a black-and-white issue.
In the past few years, I've started things less in terms of a particular ``right way'' opposed to a particular ``wrong way'', and started thinking in terms of a spectrum of choices, some of which are obviously wrong (but wrong to varying degrees) and some of which are right because they work, but you have to take different roads to get there.
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.
And, as we shall see, sometimes it's beneficial to do something the wrong way.
\newpage % Move this list to a new page.
\begin{itemize}[noitemsep]
\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}
\item \textbf{Wrong}
\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.
\end{itemize}
\item \textbf{Right\textit{ish}}
\begin{itemize}[noitemsep]
\item It works, but you have no idea why.
\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}
\begin{itemize}[noitemsep]
\item It works, and is considered a best practice.
\end{itemize}
\item \textbf{Genius}
\begin{itemize}[noitemsep]
\item It's a true hack.
\end{itemize}
\end{itemize}
\section*{Very Wrong Ways}
Very wrongs ways are very wrong because not only do they not work, they take other things down with them.
\paragraph{It doesn't work and it breaks things in weird places.}
\paragraph{It doesn't work and it breaks almost everything else.}
\paragraph{It doesn't work and it still manages to break a few local things.}
\section*{Wrong Ways}
Wrong ways may work, but they break other things along the way. As we shall see, this is not always a bad thing.
\paragraph{It works, but it breaks things in weird places.}
\paragraph{It works, but it breaks almost everything else.}
\paragraph{It works, but it still manages to break a few local things.} Even though this is listed as a wrong way---you are still breaking things, after all---this is not always a bad outcome to experience. It's possible that those few things that are breaking are breaking because they are weak. If you strengthen those items and then apply this technique, it turns out that this isn't actually wrong after all, it only seemed wrong at the time. In the end, you have a much project that is much less fragile overall.
\section*{Wrong\textit{ish} Ways}
\paragraph{It works in this specific instance, but not in all instances.} It works, so why is this way still wrong? Because it's not \textit{universal} for all situations.
\paragraph{It works, but it's far more work than it should be.}
\section*{Right\textit{ish} Ways}
\paragraph{It works, but you have no idea why.} I was very tempted to put this in the wrong\textit{ish} section, and in some cases it may certainly belong there. Quite frankly, you should know why a technique works. Not knowing why can be dangerous, because you assume too much about this particular technique. That may cause you to be a bit overconfident with it, and use it in a situation that doesn't really warrant its use.
\paragraph{It works, but it requires you to rework some other parts of the project.}
\paragraph{It works, but it's a bit of a kludge.} A kludge is not always a bad thing (sometimes you have to work with what you have) but they are at best, inelegant, and at worst weighty and ugly. But they work for now, they don't break things, and they will last until you learn or can afford a better way.
\section*{Right Ways}
\paragraph{It works, and is considered a best practice.}
\section*{Genius Ways}
\paragraph{It's a true hack.}
\chapter{A \texttt{git} Workflow}
\chapter{More about those folders in \texttt{root}}
\chapter{Coda}
\section{What I Learned About \LaTeX{} While Creating This Issue}

Loading…
Cancel
Save