annotate src/tools/why.html @ 22:082b97b7f1d9

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 15 Sep 2024 08:16:58 -0600
parents 914a37651a38
children e5c77f8d506d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 <!doctype html>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 <html>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 <head>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 <meta name="viewport" content="width=device-width, initial-scale=1">
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 <style>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6 @import "tools.css";
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 </style>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 </head>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9 <body>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 <h1>Disearch</h1>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11 <h3>A <a href="https://disboard.org/">Disboard</a> alternative</h3>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 <p><a href="links.html">Disearch links</a></p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 <h2>Why I started this</h2>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 <p>I first thought about writing this after I submitted my Discord server to Disboard and it wasn't accepted for months. I looked at the Disboard support server and many people were complaining. Disboard implemented a completely pointless review process that causes random delays for approval. Of course there is nothing surprising here, this is just what modern scum (members of depraved modern culture) do. It is their nature to impose senseless policies that make people's lives miserable. In my experience, the only solution to modern scum ruining things that I need is for me to implement a sane alternative. Hence Disearch.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 <p>There is a slight chance that Disearch might actually make money. It would have to become popular which would require marketing and luck. The users of Disboard or Disearch are modern scum themselves, so it doesn't bother them that Disboard has insane policies. Yes some of the server owners who aren't getting listed may get mad and switch, but server owners already listed in Disboard and regular users who just surf Discord would have no reason to switch. So money is not a big motivation for this project.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19
22
Franklin Schmidt <fschmidt@gmail.com>
parents: 20
diff changeset
20 <p>In the end, my biggest reason for starting this project is to provide a good open-source example of <a href="https://www.reactionary.software/">reactionary software</a> written in <a href="http://www.luan.software/">Luan</a>. I wrote Luan and other reactionary software for my own use. My view is that almost all of humanity are modern scum who wouldn't be interested in good software. But others have pointed out that I should at least provide an example of what my software can do. So here you go.</p>
18
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22 <p>Since this last reason is my real reason for starting Disearch, I have no reason to finish it and make it a polished website. And in fact I have done zero work on aesthetics. I also only implemented the very core functionality in order to demonstrate the Luan features that would be needed to implement the remaining functionality. So in effect, Disearch is both example code and a programming exercise left to anyone who wants to learn reactionary programming.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 <h2>Why you should program this</h2>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25
22
Franklin Schmidt <fschmidt@gmail.com>
parents: 20
diff changeset
26 <p>Actually not everyone should program this. If you are modern scum, then this project isn't for you. How would you know if you are modern scum? Take a look at my <a href="https://www.reactionary.software/">Reactionary Software</a> website and see if you relate. Don't worry about the technical details. Do you have the reactionary values of simplicity, reliability, and usability? Do you reject the modern values of pointless complexity, bloat, incomprehensibility, and following fashionable ideology? If yes, then you aren't modern scum and this project is for you.</p>
18
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28 <p>The benefit of working on this project is that you will learn reactionary programming. You will learn all the principles of web programming in the simplest possible way. If you are clearly interested in working on this, I will do everything I can to support you. I will answer questions on <a href="https://discord.gg/tCwTJDSatu">Discord</a> and I will improve Luan documentation. You will learn everything you need to program almost any kind of website.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 <p>It is true that you cannot get a job doing reactionary programming. Your employer would undoubtedly be modern scum, so they would want you to program in the most overcomplicated and inefficient way possible. But if this is what you want to do, you can do this fairly easily after learning reactionary programming. Modern programming does use the same concepts, it just pointlessly overcomplicates everything. Of course the other option is that you could use reactionary programming to try to start your own online business. Doing this with reactionary programming is much easier than doing this with modern programming.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32 <h2>The Discord bot API</h2>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34 <p>Of course Discord was written by modern scum. This should be obvious from using the Discord app itself which is quite poorly designed. Their API is also a horror. I will focus on their bot API to illustrate how horrible modern programming is.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 <p>The Discord documentation starts with a <a href="https://discord.com/developers/docs/getting-started">Getting Started</a> section. Click on "Resources used in this guide" which lists GitHub, a "discord-interactions" library, a JavaScript framework called "Express", and some tool called "Glitch". Modern scum programmers love to use innumerable layers of shit to do anything. A simple example shouldn't require any extra tools to implement.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 <p>The Discord <a href="https://discord.com/developers/docs/interactions/application-commands">reference documentation</a> does show how to implement bots directly. There are 2 ways to get info back from bots. One is <a href="https://discord.com/developers/docs/topics/gateway">Gateway Events</a> which is based on WebSockets. WebSockets is a disgusting modern API which should be avoided at all costs. The other way is using a webhook. A webhook is a reasonable approach, but modern scum must ruin everything, and Discord does this with their <a href="https://discord.com/developers/docs/interactions/receiving-and-responding#security-and-authorization">Security and Authorization</a> requirements.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 <p>The <a href="https://discord.com/developers/docs/interactions/receiving-and-responding#security-and-authorization">Security and Authorization</a> requires Ed25519 validation. They even go through the trouble of checking this and disqualifying webhooks that fail. So the question is, why are they doing this? This security is on the client side, not the Discord side, so why should Discord care at all? They do this because modern scum are self-righteous assholes who hate freedom and insist on imposing their depravity on the whole world. Even if this security did make sense, it is none of Discord's business to impose this on others. But does it make sense?</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42 <p>The point of using a signature is to ensure that the message being received is legitimate. But all that is needed to prove that the source is legitimate is a shared secret. In effect the Discord bot_token is an example of this. If anyone gets your Discord bot_token, they can already cause all kinds of trouble. I could build a secret right into my webhook URL like this: https://mydomain/webhook?secret=whatever . Because this is HTTPS, no one can get the secret. And HTTP guarantees the integrity of the message. So there is absolutely no need for any extra validation. So Discord is imposing completely pointless security on its users. This is extremely common for modern scum programmers to do.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44 <p>Because I don't want to deal with this bullshit, I implemented the <b>bump</b> command in the website instead of using a bot. Java 8, which Luan uses, doesn't support Ed25519. If you want to add bot support, then give me a clean Java implementation of Ed25519 and I will add it to Luan, and then you can implements bots.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
45
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
46 <h2>My Expectations</h2>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
47
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48 <p>I believe that humanity has almost entirely turned to shit. So I believe that there is a very low probability that anyone will actually take me up on this offer. If someone does, great. And if no one does, then at least I will have proved my point that humanity is almost pure shit and deserves extermination.</p>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
50 <br>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
51 </body>
398c823aebe2 add why.html
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
52 </html>