Mercurial Hosting > arkian
comparison src/computer_literacy/computer_literacy.html @ 26:fb87f762847e
start computer_literacy
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 09 Oct 2025 16:56:36 -0600 |
parents | |
children | 9134d56639ae |
comparison
equal
deleted
inserted
replaced
25:4e019ee9c44d | 26:fb87f762847e |
---|---|
1 <!doctype html> | |
2 <html lang="en"> | |
3 <head> | |
4 <script src="/site.js"></script> | |
5 <script> head() </script> | |
6 <title>Arkian - Computer Literacy</title> | |
7 <script> | |
8 'use strict'; | |
9 | |
10 let content = { | |
11 intro: { | |
12 title: 'Introduction', | |
13 content: `\ | |
14 <p>Learning reactionary programming will give you a deep understanding of programming and will enable to you to write your own programs and websites. However this is not enough to get a job in depraved modern culture. Modern culture will expect you to use tools popular with them, so you would have to learn one of those. Probably the least horrible programming tool used by modern culture is <a href="python.html">Python</a>, so I would recommend learning that if you want a job.</p> | |
15 | |
16 <p>The next 4 lessons are basic computer literacy. Even if you are not interested in programming, these would be useful skills.</p> | |
17 | |
18 <p>I will develop this course incrementally based on demand. Whenever anyone completes the content here, I will add another lesson/section. This way I won't waste my time writing content that no one will use.</p> | |
19 | |
20 <p>This course will be designed for you to learn reactionary programming in a logical sequence. I will focus on finding relevant resources, and I will only write explanations when nothing else is available on the subject. I will focus on web development since that is what I know best.</p> | |
21 | |
22 <p>I will often say "Do X" without saying how to do X. A big part of programming is figuring out how to do things. Your two main resources are Google and ChatGPT. If you get stuck, you can ask me.</p> | |
23 | |
24 <p>ChatGPT has become an essential programming tool. So the only task for this lesson is to play with ChatGPT. Later you can ask it technical questions.</p> | |
25 | |
26 <p>If you have any questions, you can ask me on <a href="https://mikraite.arkian.net/Reactionary-Software-f1999.html">my forum</a>.</p> | |
27 ` , | |
28 }, | |
29 editor: { | |
30 title: 'Text Editor and JSON', | |
31 content: `\ | |
32 <p>A text editor is a basic tool for reactionary programmers. We use simple flexible tools. Modern culture uses an <a href="https://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a> which is big, <a href="https://mikraite.arkian.net/Changed-my-mind-about-IDE-s-tp2769.html">complicated</a>, and inflexible. We don't use such tools.</p> | |
33 | |
34 <p>I reviewed the available text editors and I think <a href="https://www.sublimetext.com/">Sublime Text</a> is the best one available. So please download it and learn how it works.</p> | |
35 | |
36 <p><a href="https://en.wikipedia.org/wiki/JSON">JSON</a> is the most popular text data format. I think JSON was the last good programming idea from modern culture, developed around 2001, before modern culture became fully depraved. Do your own research on JSON to understand it. It is fairly simple.</p> | |
37 | |
38 <p>I paired Sublime Text with JSON because Sublime Text uses JSON files for its <a href="https://www.sublimetext.com/docs/settings.html">settings</a>. (Actually not quite pure JSON because it includes comments which are lines starting with <code>//</code>.) Experiment with Sublime Text settings to learn more about both Sublime Text and JSON.</p> | |
39 ` , | |
40 }, | |
41 bash: { | |
42 title: 'Bash - Command Line Shell', | |
43 content: `\ | |
44 <p><a href="bash.html">Bash</a> is the other basic tool for reactionary programmers. I was hoping to just reference existing Bash tutorials in this lesson, but they are all horrible, so I am writing my own. So for this lesson, please read <a href="bash.html">my tutorial</a>.</p> | |
45 ` , | |
46 }, | |
47 regex: { | |
48 title: 'Regular Expressions', | |
49 content: `\ | |
50 <p><a href="https://en.wikipedia.org/wiki/Regular_expression">Regular expressions</a>, or regex for short, are used for searching or matching text. Since this is such a common need, regex are found everywhere in programming. Since you just learned Bash, you can learn regex with the <a href="https://en.wikipedia.org/wiki/Grep">grep</a> command that uses regex.</p> | |
51 | |
52 <p>Unlike with Bash, there are a few decent grep tutorials, so I don't have to write my own. Here they are:</p> | |
53 | |
54 <ul> | |
55 <li><a href="https://vegastack.com/tutorials/regular-expressions-in-grep/">Regular Expressions in Grep</a></li> | |
56 <li><a href="https://cs.nyu.edu/~mohri/unix08/lect4">Regular Expressions</a></li> | |
57 <li><a href="https://www.gnu.org/software/grep/manual/grep.html">GNU Grep</a></li> | |
58 </ul> | |
59 | |
60 <p>I suggest that you just read through these tutorials so that you get a sense for how regex and grep work. You don't need to practice anything here. You can come back to these tutorials later when you have a real need for regex or grep.</p> | |
61 | |
62 <p>The details of regex vary by implementation. Luan uses <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/package-summary.html">Java regex</a>. | |
63 | |
64 <p>If you become a serious programmer, then you should have a deeper understanding of regex. In that case I recommend the book <a href="https://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/0596528124/">Mastering Regular Expressions</a>.</p> | |
65 ` , | |
66 }, | |
67 hg: { | |
68 title: 'Mercurial - Source Control', | |
69 content: `\ | |
70 <p>Thankfully <a href="mercurial.html">Mercurial</a> is well documented. Read <a href="https://hgbook.red-bean.com/">Mercurial: The Definitive Guide</a> up to (and including) chapter 9.</p> | |
71 | |
72 <p>To get started with Mercurial, download Mercurial from <a href="https://www.mercurial-scm.org/">their website</a> and install it. Then do:</p> | |
73 | |
74 <code block> | |
75 ~/learn $ hg version | |
76 Mercurial Distributed SCM (version 5.2.2) | |
77 (see https://mercurial-scm.org for more information) | |
78 | |
79 Copyright (C) 2005-2019 Matt Mackall and others | |
80 This is free software; see the source for copying conditions. There is NO | |
81 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
82 ~/learn $ | |
83 </code> | |
84 | |
85 <p>If this works, it is installed properly. Next <a href="https://hgbook.red-bean.com/read/a-tour-of-mercurial-the-basics.html#sec:tour-basic:username">set up your Mercurial configuration file</a> which is <code>~/.hgrc</code> on a Mac or <code>/c/Users/$(whoami)/mercurial.ini</code> on Windows <a href="https://www.msys2.org/">MSYS2</a>. My <a href="https://www.mercurial-scm.org/doc/hgrc.5.html">hgrc</a> file looks like this: | |
86 | |
87 <code block> | |
88 [ui] | |
89 username = Franklin Schmidt <fschmidt@gmail.com> | |
90 | |
91 [auth] | |
92 hghosting.prefix = https://hg.reactionary.software/repo/ | |
93 hghosting.username = fschmidt@gmail.com | |
94 hghosting.password = xxxxxxxxxx | |
95 | |
96 [extensions] | |
97 hgext.extdiff = | |
98 | |
99 [extdiff] | |
100 cmd.dm = diffmerge | |
101 </code> | |
102 | |
103 <p>You should register on <a href="https://hg.reactionary.software/">our Mercurial hosting service</a> and use your email as the username and the assigned password in <code>.hgrc</code>. The last two blocks set up <code>hg dm</code> to call <a href="https://sourcegear.com/diffmerge/">DiffMerge</a> by using the <a href="https://wiki.mercurial-scm.org/ExtdiffExtension">Extdiff extension</a>.</p> | |
104 | |
105 <p>Now you can play with <a href="https://hg.reactionary.software/repo/test/">https://hg.reactionary.software/repo/test/</a> like this:</p> | |
106 | |
107 <code block> | |
108 ~/learn $ hg clone https://hg.reactionary.software/repo/test/ hgtest1 | |
109 no changes found | |
110 updating to branch default | |
111 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
112 ~/learn $ hg clone https://hg.reactionary.software/repo/test/ hgtest2 | |
113 no changes found | |
114 updating to branch default | |
115 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
116 ~/learn $ ls -Fd h* | |
117 hgtest1/ hgtest2/ | |
118 ~/learn $ cd hgtest1 | |
119 ~/learn/hgtest1 $ touch file.txt | |
120 ~/learn/hgtest1 $ e file.txt | |
121 ~/learn/hgtest1 $ cat file.txt | |
122 some text | |
123 ~/learn/hgtest1 $ hg status | |
124 ? file.txt | |
125 ~/learn/hgtest1 $ hg add file.txt | |
126 ~/learn/hgtest1 $ hg status | |
127 A file.txt | |
128 ~/learn/hgtest1 $ hg pull | |
129 pulling from https://hg.reactionary.software/repo/test/ | |
130 no changes found | |
131 ~/learn/hgtest1 $ hg commit -m 'add file.txt' | |
132 ~/learn/hgtest1 $ hg push | |
133 pushing to https://hg.reactionary.software/repo/test/ | |
134 searching for changes | |
135 remote: adding changesets | |
136 remote: adding manifests | |
137 remote: adding file changes | |
138 remote: added 1 changesets with 1 changes to 1 files | |
139 ~/learn/hgtest1 $ cd ../hgtest2 | |
140 ~/learn/hgtest2 $ hg pull | |
141 pulling from https://hg.reactionary.software/repo/test/ | |
142 requesting all changes | |
143 adding changesets | |
144 adding manifests | |
145 adding file changes | |
146 added 1 changesets with 1 changes to 1 files | |
147 new changesets aab34516d8dc | |
148 (run 'hg update' to get a working copy) | |
149 ~/learn/hgtest2 $ hg update | |
150 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
151 ~/learn/hgtest2 $ hg status | |
152 ~/learn/hgtest2 $ cat file.txt | |
153 some text | |
154 ~/learn/hgtest2 $ e file.txt | |
155 ~/learn/hgtest2 $ cat file.txt | |
156 some text | |
157 and more | |
158 ~/learn/hgtest2 $ hg status | |
159 M file.txt | |
160 ~/learn/hgtest2 $ hg pull | |
161 pulling from https://hg.reactionary.software/repo/test/ | |
162 searching for changes | |
163 no changes found | |
164 ~/learn/hgtest2 $ hg dm | |
165 ~/learn/hgtest2 $ hg commit -m 'and more' | |
166 ~/learn/hgtest2 $ hg push | |
167 pushing to https://hg.reactionary.software/repo/test/ | |
168 searching for changes | |
169 remote: adding changesets | |
170 remote: adding manifests | |
171 remote: adding file changes | |
172 remote: added 1 changesets with 1 changes to 1 files | |
173 </code> | |
174 ` , | |
175 }, | |
176 qqq: { | |
177 title: 'qqq', | |
178 content: `\ | |
179 ` , | |
180 }, | |
181 }; | |
182 </script> | |
183 </head> | |
184 <body> | |
185 <script> header() </script> | |
186 <div content> | |
187 <h1><a href="computer_literacy.html">Computer Literacy</a></h1> | |
188 <hr> | |
189 <h2>Contents</h2> | |
190 <div toc> | |
191 <script> showToc(content) </script> | |
192 </div> | |
193 <hr> | |
194 <script> showContent(content,2) </script> | |
195 </div> | |
196 </body> | |
197 </html> |