annotate src/about.html.luan @ 40:ebab99118e19

add learn.html
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 25 Dec 2023 20:22:17 -0700
parents 9694eff797bf
children 7c496678f32a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 local Luan = require "luan:Luan.luan"
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local error = Luan.error
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local Io = require "luan:Io.luan"
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 local Http = require "luan:http/Http.luan"
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 local Shared = require "site:/lib/Shared.luan"
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6 local head = Shared.head or error()
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 local header = Shared.header or error()
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 return function()
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11 Io.stdout = Http.response.text_writer()
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 %>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13 <!doctype html>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 <html>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 <head>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 <% head() %>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 <title>About Reactionary Software</title>
15
9694eff797bf fix html
Franklin Schmidt <fschmidt@gmail.com>
parents: 12
diff changeset
18 </head>
11
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 <body>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 <% header() %>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 <div content>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22 <h1>About Reactionary Software</h1>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 <p>Google "html swipe" and see all kinds of horrors. I needed to implement this for phone users of my commercial website, and seeing the horrible solutions (all of which use Javascript) that are used depressed me. But I found <a href="http://fschmidt.luan.software/swipe.html">a simple solution</a>. Try it on a phone. Smooth swipe. No Javascript, no complicated crap. View the source. It's simple.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26 <p>I have this kind of experience all the time. I need something. I look online. Everything I find is horribly over-complicated. And so I just write it myself. Don't reinvent the wheel you say? When every wheel I can find is some complicated shape and not a simple circle, then I do reinvent the wheel.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28 <p>This <a href="https://youtu.be/PCRx78Zhj7s">funny video</a> exemplifies modern design. Over-engineered, over-complicated, inflexible, and cumbersome. All modern software is like this. Of course it wasn't always like this. Most programming in the last century was good. Serious deterioration started around 2000 and by 2010 all software developed by modern culture was horrible. This reflects the general decline of modern culture.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 <p>I have written numerous posts over the years complaining about modern software. Here is <a href="http://www.mikraite.org/Modern-Software-Layers-of-Junk-tp747.html">one</a> from 2016 complaining about DNS caching. It goes into detail about the particular issue I was dealing with at the time, but I am only posting a link because the details aren't important. The important point is that all modern software written by modern programmers is like this, all horrible unusable crap. And this is why reasonable people need reactionary software.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32 <p>This website is about software, but the principle applies to everything. Here is <a href="https://youtu.be/p5qVxAoKwbE">a video about brick walls</a>. Same basic story. So where will this decay of software and everything else lead?</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34 <h2>The Historical Example of Cosmology</h2>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 <p>In the 200s BC <a href="https://en.wikipedia.org/wiki/Aristarchus_of_Samos">Aristarchus of Samos</a> invented <a href="https://en.wikipedia.org/wiki/Heliocentrism">heliocentric cosmology</a> which was simple and accurate. But this was rejected by the people of his time. Why?</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 <p>The story of Greek science begins with <a href="https://en.wikipedia.org/wiki/Pythagoras">Pythagoras</a> who lived in the 500s BC. He was the first person to recognize the power of math to describe the world and he applied math to many things. This inspired Greek astronomers to try to describe cosmology in simple mathematical terms. This was during the time that Greeks were a rising culture. They were highly intelligent people who respected reality.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 <p><a href="https://en.wikipedia.org/wiki/Plato">Plato</a> lived in the 300s BC by which time Greece was in decline. This decline was very well described in the comedies of <a href="https://en.wikipedia.org/wiki/Aristophanes">Aristophanes</a>. The decline sounds much like all declining cultures in history including our own, and is presumably the result of decaying culture and decaying genetics. In other words, the Greeks were becoming moronic scum, just as members of modern western culture are today. Plato was an ideologue who was in love with his own ideas and had no interest in reality. Plato insisted on a <a href="https://en.wikipedia.org/wiki/Geocentric_model">geocentric model</a> of cosmology based purely on circles. Why? Just because this was the idea that appealed to him. Reality was irrelevant. Aristotle backed him up, and so this became orthodoxy. By the time Aristarchus came along with his heliocentric cosmology, he was violating orthodox ideas so the moronic scum of his time just ignored him. Then in the 100s BC Ptolemy created <a href="https://en.wikipedia.org/wiki/Geocentric_model#Ptolemaic_system">a horrible overcomplicated geocentric model</a> based on the circles that Plato required. This became the standard for the next 1700 years.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42 <p>Cosmology only changed again when <a href="https://en.wikipedia.org/wiki/Nicolaus_Copernicus">Copernicus</a> revived the ideas of Aristarchus. Why did it take to long? Because humanity had become just too stupid to appreciate good ideas. They weren't completely retarded. Ptolemy's horrible system did require some intelligence to create. And the Romans managed to do engineering and build an empire while completely failing to contribute anything to science or math or have any fundamental insights into the world. There are levels of intelligence, and Ancient Greeks and recent Europeans were at the top level. The Romans were at the next level. And most of history was composed of people too stupid to do engineering or much of anything.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44 <p>Today's West is currently at the level of the decaying Greeks, heading toward complete idiocracy. The programmers in Silicon Valley are like Ptolemy, able to construct and maintain horrible overcomplicated monstrosities, but totally unable to innovate at a fundamental level. All good programming ideas are rejected because they don't fit into current programming ideologies. Any programmer like Aristarchus who comes up with a good programming idea will be rejected and ridiculed for violating orthodoxy. Modern programmers are in love with their own ideas and love complexity. They hate simplicity and anything that violates their ideologies.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
45
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
46 <p>For a concrete example, consider <a href="http://www.luan.software/goodjava.html#parser">my parser</a>. It is a basic innovation that massively simplifies parsing. So what reception did it get? Of course <a href="https://old.reddit.com/r/Compilers/comments/cv78b3/parsing_for_programmers_who_hate_modern_software/">it was ridiculed</a> by modern programmers. This is the same story as Aristarchus. Modern programmers naturally hate everything that is good and only love what is horrible.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
47
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48 <p>Given this situation, what should a good reactionary programmer do? In Matthew 7:6, Jesus said "Do not give what is holy to dogs, and do not throw your pearls before swine, or they will trample them under their feet, and turn and tear you to pieces." Good software is pearls and modern programmers are swine. So do not repeat my mistake of showing good software to modern programmers.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
50 <h2>What is good?</h2>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
51
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
52 <p>The short answer is that everything that modern culture hates is good, and everything that modern culture loves is bad. But we need more details than that. You can find good values in scripture or in good traditional culture. These values should be applied to programming and to everything else in life. I wrote <a href="http://www.mikraite.org/The-Old-Testament-on-Programming-tp1923.html">an Old Testament guide to programming</a>. I also discussed <a href="http://www.mikraite.org/Core-Programming-Principles-tp1237.html">applying traditional Japanese culture to programming</a>. These are just two examples. Any other scripture like the Quran or any traditional culture should work fine to give you good values, in contrast to the horrible values of modern culture, and these good values can guide you to writing good reactionary software.</p>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
53
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
54 <h2>What about alt-tech?</h2>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
55
12
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
56 <p>"Alt-tech" is a misnomer. It isn't actually alternative technology, it is alternative politics. It should be called "right-tech" because it is the same technology, just used to serve the Right. And this is the problem.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
57
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
58 <p>The result is that alt-tech is just as bad as (if not worse than) other modern tech. A while ago I looked at YouTube alternatives, so I will use this as an example. BitChute is horrible because its core function, video streaming, is horrible. Videos often stall or don't play at all. And BitChute's search is horrible. BitChute is a technical failure. Odysee is horrible because they require a password so complex to sign up that I couldn't produce one. This reflects modern programmers' obsession with security in places where security doesn't matter at all. Modern programmers, even on the right, hate individual freedom, so they refuse to give users the freedom to choose their own password. And of course they can't be bothered with making things easier for users by, for example, generating a password for the user. Since Odysee obviously hates the end user, I won't use Odysee. Rumble had issues when I looked at this some time ago but seems to have fixed them. Rumble actually may be okay, which means that they are as good as YouTube.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
59
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
60 <p>An example that I know even better is Reddit alternatives. Here there really is nothing usable, which why <a href="/freedit.html">a Reddit alternative is needed</a>. In that post I also go into detail in explaining why software from the Right is no better than other modern software. And I have looked at all available Reddit alternatives, and as expected they are no good.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
61
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
62 <p>The problem with alt-tech is the general problem with the Right. They miss the core issue. The core issue is not politics. The core issue is culture. Modern western culture is evil, so it will always produce bad software, bad politics, and bad everything else.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
63
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
64 <h2>Other Examples</h2>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
65
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
66 <p><b>Git versus Mercurial</b> - A great example of modern programmers preferring bad software as described in <a href="/mercurial.html">the Mercurial post</a>.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
67
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
68 <p><b>The decline of Java</b> - An example of modern programmers destroying good software as I explained in <a href="/java.html">the Java post</a>.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
69
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
70 <p><b>Java mail library</b> - The original <a href="https://docs.oracle.com/javaee/7/api/javax/mail/package-summary.html">javax.mail</a> was a huge overcomplicated mess. This JavaMail package has since <a href="https://javaee.github.io/javamail/">moved to GitHub</a> where it belongs along with other horrible modern software. Googling for alternatives gives you other libraries that are built on top of JavaMail. Naturally I rejected all the garbage and wrote my own <a href="http://www.luan.software/goodjava.html#mail">goodjava.mail</a> from scratch. This whole library is a little over 200 lines of code and is a thin layer on top of SMTP and MIME. Modern programmers hate thin layers because they always think that they can do better than the underlying layer. But a thick layer actually adds complexity and makes debugging more difficult for the user of the library. My thin layer lets the user set the headers directly. Does this mean that the user has to fully understand MIME headers? No, not at all. The user can just send himself an email of the type he wants using his favorite mail client, say gmail, and then when he receives the email, he can look at its source (with gmail "Show original"). Then he can just copy the headers into his code. If the user is doing something complicated, then my thin layer gives him complete control to generate exactly whatever complex email he wants. With modern libraries with their disgusting thick layers, it is always a struggle to do anything complex.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
71
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
72 <p><b>Other Java libraries</b> - All of the libraries in <a href="http://www.luan.software/goodjava.html">my goodjava library collection</a> were written because all other alternatives that I could find were horrible, so I wrote my own. Besides <a href="http://www.luan.software/goodjava.html#mail">goodjava.mail</a>, I have <a href="http://www.luan.software/goodjava.html#webserver">goodjava.webserver</a>, <a href="http://www.luan.software/goodjava.html#logger">goodjava.logger</a>, <a href="http://www.luan.software/goodjava.html#json">goodjava.json</a>, <a href="http://www.luan.software/goodjava.html#xml">goodjava.xml</a>, and of course <a href="http://www.luan.software/goodjava.html#parser">goodjava.parser</a> as good examples. In every one of these cases, I challenge you to find an alternative to my library that is as easy to use.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
73
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
74 <p><b>Scripting languages</b> - <a href="https://en.wikipedia.org/wiki/Scripting_language">Scripting languages</a> should be extremely simple. There is no reason to make them complicated. Yet all existing usable scripting languages are complicated. So I wrote my own simple scripting language - <a href="http://www.luan.software/">Luan</a>.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
75
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
76 <h2>What you can do</h2>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
77
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
78 <p>Do you want to support reactionary software as an alternative to horrible modern software? If yes, then join our <a href="/discussion.html">discussions</a> and consider working on <a href="/needed.html">needed reactionary software</a>.</p>
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
79
7d927dc1ee25 finish about
Franklin Schmidt <fschmidt@gmail.com>
parents: 11
diff changeset
80 <p>You also should consider the fact that if humanity itself becomes worthless, then good software no longer has any value. To fight the degeneration of humanity, you might also consider my <a href="http://www.arkian.net/">Arkian project</a>.</p>
11
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
81 </div>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
82 </body>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
83 </html>
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
84 <%
4e58808aaed9 start about
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
85 end