Initial commit.
[aple.git] / Introduction.m4
1 TITLE(«
2 Tell me and I forget. Teach me and I remember. Involve me
3 and I learn. – Benjamin Franklin
4 », __file__, «Advanced Problems in the Linux Environment»)
5
6 OVERVIEW(«
7 This practical training course covers basic and advanced Unix
8 and Linux topics. It targets scientists, programmers and system
9 administrators. Readers will find plenty of material and exercises
10 of varying difficulty. Move the pointer to the grey bar at the left
11 to open the navigation menu.
12 »)
13
14 SECTION(«About»)
15
16 ifelse(PUBLIC(), «true», «dnl public version of the pages
17
18 <p> These pages were originally written to provide the necessary
19 background for using the IT infrastructure of the Max Planck Institute
20 for Developmental Biology and the Friedrich Miescher Laboratory in
21 Tübingen, Germany. Over time they morphed into a generic document
22 that was made public in December 2019. </p>
23
24 <p> The title is of course a pun on the famous book "Advanced
25 Programming in the Unix Environment" by W. Richard Stevens. While
26 Stevens' book centers around C programming, we try to convey
27 fundamental ideas without assuming substantial programming skills.
28 An elementary knowledge of shell and C programming is certainly
29 helpful, though. We also put an emphasis on Linux, which was still
30 in its infancy when Stevens' book was published in 1992. </p>
31
32 <p> All pages are served as static html files with no active
33 contents. They do not require javascript, work with any browser and do
34 not track the user in any way. In particular, we don't use cookies,
35 there is no "like" button, and we do not employ any web analysis
36 service like google analytics. Also, there are no advertisements of
37 any kind. </p>
38
39 SUBSECTION(«Exercises and Homeworks»)
40
41 <p> The exercises generally try to encourage the reader to
42 think about a specific topic rather than solve meaningless
43 problems mechanically. Many exercises suggest to examine further
44 literature. Longer or more challenging exercises are labelled as
45 homework. Solutions to homework exercises are only provided if at least
46 one person hands in a draft of a solution. To do so, send plain text
47 email to <a href="mailto:maan@tuebingen.mpg.de">Andre Noll</a>. </p>
48
49 SUBSECTION(«Feedback»)
50
51 <p> These pages get updated when errors are found, contents become
52 obsolete, or improvements are suggested. Feedback via the above
53 mailto link is appreciated. Besides solutions of homework exercises,
54 suggestions for additional topics or improvements of existing contents
55 are welcome. Please also point out unclear wording, grammar mistakes
56 and typos. </p>
57
58 SUBSECTION(«License»)
59
60 <p> This work is published under the
61 <a href="https://www.gnu.org/licenses/fdl-1.3.html">GNU Free
62 Documentation License</a> (GFDL). You may copy, redistribute, and
63 modify these pages but all copies and derivatives are required to be
64 available under the same license. </p>
65
66 SUBSECTION(«See Also»)
67
68 <p> Go back to the author's <a href="..">home page</a>. </p>
69
70 », « dnl internal version: different Introduction and Motivation
71
72 <p> These pages aim to provide the necessary background for using the
73 IT infrastructure of the MPI for developmental biology and the FML.
74 They complement the
75
76 <a href="http://ilm.eb.local/user-guide/">User guide</a>,
77
78 but are meant to be a practical training course rather than just a
79 text document. While the contents of the user guide are relevant to
80 almost every member of the institute, the primary target audience of
81 the Unix course is scientists with an emphasis on IT. In particular,
82 computer scientists who intent to use the compute cluster will find
83 plenty of material of varying difficulty to learn basic and advanced
84 topics related to Unix and Linux. </p>
85
86 <p> We first cover the general concepts of the Unix operating system while
87 later chapters focus on Linux specific topics and selected command
88 line tools. The exercises aim to convey understanding by inviting the
89 reader to read background information and to think about the topic
90 at hand. This is in contrast to many other tutorials which provide
91 quick solutions to frequently asked questions, targeting users who
92 do not wish to spend the time necessary to gain insight. Longer or
93 more challenging exercises are labelled as homework. </p>
94
95 <p> Feedback is appreciated. In fact, significant changes to these
96 pages are always triggered by the users asking questions. On one
97 hand, this makes sure that new material stays relevant to the target
98 audience. On the other hand, it also helps to fine-tune the degree
99 of difficulty and the detail of the solutions. As a general rule,
100 solutions to existing exercises are only provided if at least one
101 person hands in a proposal. To do so, send plain text email to <a
102 href="mailto:maan@tuebingen.mpg.de">Andre Noll</a>. </p>
103
104 SECTION(«Motivation»)
105
106 A quick glance at the table of contents reveals that the topics
107 of this course center around command line utilities rather than
108 software which comes with a <em> Graphical User Interface </em>
109 (GUI). While GUIs serve a purpose, especially for graphical tasks
110 (image manipulation, presentation writing, etc.), they are harmful
111 for scientific analysis. The remainder of this section explains why,
112 and tries to convince the reader that although <em> Command Line
113 Interfaces </em> (CLIs) can be scary in the beginning, learning how
114 to use them is worth the work.
115
116 SUBSECTION(«Why GUIs are harmful»)
117 <ul>
118
119 <li> GUIs give people comfort by presenting choices. </li>
120
121 <li> GUIs limit you by limiting choices. </li>
122
123 <li> Science is a unique situation. </li>
124
125 <li> As a scientist, you don't want to be influenced by the GUI
126 choices of the programmer. </li>
127
128 <li> As a scientist, you know which analyses you want to
129 perform. </li>
130
131 <li> In this situation, hand-holding GUIs hurt you. </li>
132
133 <li> GUIs make you dependent on their style of hand-holding. </li>
134
135 <li> GUIs change from version to version. </li>
136
137 <li> GUI-based software is often commercial, so your data can
138 be trapped if new versions cannot read the data files of old
139 versions. </li>
140
141 <li> GUIs make you less expert in your field </li>
142
143 <li> You will get bad habits </li>
144
145 <ul>
146
147 <li> GUIs make it easy to make bad choices (analysis,
148 plotting. etc). </li>
149
150 <li> GUIs make it easy to add unstructured data to your dataset
151 (e.g. spreadsheets with formatting as data). </li>
152 </ul>
153
154 <li> Your colleagues do not use the GUI </li>
155
156 <ul>
157 <li> Even if you do not program yourself, you will generate data that
158 is easy for programmers to work on. </li>
159 </ul>
160
161 </ul>
162 SUBSECTION(«Advantages of CLIs»)
163 <ul>
164
165 <li> You can do more without a GUI </li>
166
167 <ul>
168 <li> As you work more with the CLI, you will see problems in a different
169 way. You will realize that you can do new things. </li>
170
171 <li> Automation: </li>
172
173 <ul>
174
175 <li> Reduces your manual labor. </li>
176
177 <li> Produces more consistent results. </li>
178
179 <li> Allows you to work on bigger datasets. </li>
180
181 </ul>
182 </ul>
183
184 <li> You are faster without GUI </li>
185
186 <ul>
187 <li> You will perform similar analyses over and over again. Using
188 GUI-based software requires many clicks. Each click is an opportunity
189 for a mistake. </li>
190
191 <li> If you have to perform an analysis or make a conversion again,
192 you don't have to figure it out again if you have a little script. </li>
193
194 <li> As you continue to work with the CLI, you will see problems
195 differently, and realize there are many ways. </li>
196
197 </ul>
198
199 <li> You will make fewer errors </li>
200
201 <ul>
202
203 <li> GUIs are easy, but there is no record of your clicks. It can be
204 difficult to detect a mis-click, so sometimes it is impossible
205 to tell what you did (for example, which options you selected for
206 an analysis). </li>
207
208 <li> GUI-based software such as Excel can provide comfort, because
209 you "see" the data, but it hides the calculations, connections
210 between cells, and even which cells are entered data and which are
211 calculated. This has led to huge, world changing mistakes. </li>
212
213 </ul>
214
215 <li> You need the CLI </li>
216
217 <ul>
218
219 <li> Data is too big for GUIs. </li>
220
221 <li> Almost all cutting-edge tools are CLI. </li>
222
223 <li> You will probably need to convert formats to use new tools. </li>
224
225 <li> You will need to do this over dozens or hundreds or thousands
226 of files to use the servers and the cluster. </li>
227
228 </ul>
229
230 <li> Using the CLI makes you a better scientist </li>
231
232 <ul>
233 <li> CLI brings you closer to your data. </li>
234
235 <li> CLI brings you closer to your analysis. </li>
236
237 <li> CLI lets you use the most current tools. </li>
238
239 <li> CLI makes your analyses more repeatable. </li>
240
241 <li> CLI give you more control and accountability in your analyses. </li>
242
243 <li> CLI makes you more expert in your field. </li>
244
245 <li> Do not fear the CLI. </li>
246
247 <li> Learning the CLI takes work and time, but you will only have less
248 time as you progress in you career. </li>
249 </ul>
250 </ul>
251 »)