master
Miloslav Ciz 1 month ago
parent 0551934395
commit ef715fd94d

@ -1,3 +1,3 @@
# 21st Century
21st century, known as the Age Of [Shit](shit.md), is already one of the worst centuries in history, despite only being around for a short time. How unlucky it is to have been born in such a shitty time. In this century there exists no more [good](good.md), there is just [evil](right.md) opposed by [another evil](pseudoleft.md) and people no longer even know what good means, they only support one of the two evils, thinking it's the good; there are rare few who support some kind of third evil that's not one of the two major evils, but all in all there is nothing but evil.
21st century, known as the Age Of [Shit](shit.md) or Dark Ages, is already one of the worst centuries in history, despite only being around for a short time. How unlucky it is to have been born in such a shitty time. In this century there exists no more [good](good.md), there is just [evil](right.md) opposed by [another evil](pseudoleft.md) and people no longer even know what good means, they only support one of the two evils, thinking it's the good; there are rare few who support some kind of third evil that's not one of the two major evils, but all in all there is nothing but evil.

@ -142,6 +142,10 @@ if (a == b)
Beginners similarly often forget breaks in switch statement, which works but usually not as you want -- thankfully compilers warn you about this.
Also `putchar('a')` versus `putchar("a")` ;) Only the first one is correct of course.
**Stdlib API can be [trollish](trolling.md)**, for example the file printing functions: *fprintf* expects the file pointer as first argument while *fputs* expects it as last, so to print hello you can do either `fprintf(file,"hello")` or `fputs("hello",file)` -- naturally this leads to fucking up the order sometimes and doing so even compiles (both arguments are pointers), the running code then crashes.
Watch out for **operator precedence**! C infamously has weird precedence with some special operators, bracket expressions if unsure, or just to increase readability for others. Also nested ifs with elses can get tricky -- again, use curly brackets for clarity in your spaghetti code.
**[Preprocessor](preprocessor.md) can give you headaches** if you use it in overcomplicated ways -- ifdefs and macros are fine, but too many nesting can create real mess that's super hard to debug. It can also quite greatly slow down compilation. Try to keep the preprocessing code simple and flat.

@ -1,6 +1,6 @@
# Doom
Doom is a legendary video [game](game.md) released in December [1993](1990s.md), perhaps the most famous video game of all time, the game that popularized the [first "person" shooter](first_person_shooter.md) genre and shocked by its at the time extremely advanced [3D](pseudo_3D.md) graphics (yes, **Doom is 3D**) and caused one of the biggest revolutions in video game history. It was made by [Id Software](id_software.md), most notably by [John Carmack](john_carmack.md) (graphics + engine programmer) and [John Romero](john_romero.md) (tool programmer + level designer). Doom is sadly [proprietary](proprietary.md), it was originally distributed as [shareware](shareware.md) (a gratis "demo" was available for playing and sharing with the option to buy a full version). However the game engine was later (1999) released as [free (as in freedom) software](free_software.md) under [GPL](gpl.md) which gave rise to many source [ports](port.md) and "improved" "[modern](modern.md)" engines (which however look like shit, the original looks by far the best, if you want to play Doom use Chocolate Doom or Crispy Doom, avoid anything with GPU rendering). The assets remain non-free but a completely free alternative is offered by the [Freedoom](freedoom.md) project that has created [free as in freedom](free_culture.md) asset replacements for the game. [Anarch](anarch.md) is an official [LRS](lrs.md) game inspired by Doom, completely in the [public domain](public_domain.md). Doom named a whole generation of so called [doomers](doomer.md).
Doom is a legendary video [game](game.md) released in December [1993](1990s.md), perhaps the most famous video game of all time, the game that popularized the [first man shooter](first_person_shooter.md) genre and shocked by its at the time extremely advanced [3D](pseudo_3D.md) graphics (yes, **Doom is 3D**) and caused one of the biggest revolutions in video game history. It was made by [Id Software](id_software.md), most notably by [John Carmack](john_carmack.md) (graphics + engine programmer) and [John Romero](john_romero.md) (tool programmer + level designer). Doom is sadly [proprietary](proprietary.md), it was originally distributed as [shareware](shareware.md) (a gratis "demo" was available for playing and sharing with the option to buy a full version). However the game engine was later (1999) released as [free (as in freedom) software](free_software.md) under [GPL](gpl.md) which gave rise to many source [ports](port.md) and "improved" "[modern](modern.md)" engines (which however look like shit, the original looks by far the best, if you want to play Doom use Chocolate Doom or Crispy Doom, avoid anything with GPU rendering). The assets remain non-free but a completely free alternative is offered by the [Freedoom](freedoom.md) project that has created [free as in freedom](free_culture.md) asset replacements for the game. [Anarch](anarch.md) is an official [LRS](lrs.md) game inspired by Doom, completely in the [public domain](public_domain.md). Doom named a whole generation of so called [doomers](doomer.md).
Doom has a cool wiki at https://doomwiki.org.

@ -32,17 +32,20 @@ Here you will find suggestions for programming projects, roughly sorted by their
3. **guess a number**: Make a game in which the computer secretly thinks a number from 0 to 9 and the player guesses the number. The computer then says if the player won and what the secret number what.
4. **password generator**: Make a program which when run outputs randomly generated password (the password must be different each time you run the program of course). The password must be at least 10 characters long, contain at least one decimal digit and one special character.
5. **average**: Make a program that reads two numbers (you can assume only non-negative integers will be input) and writes out their average (it can be rounded, even to just integer, e.g. 3 and 8 can give 5).
6. **[Nim](nim.md)**: Implement the simple variant of the game Nim for two human players -- At the beginning there will be 15 matches, players take turn, in each turn a player can take 1, 2 or 3 matches. That who takes the last one loses. The game has to show the number of matches as a numeral and also as some kind of symbols, for example: `|||||||||||||||`. Players have to input `1`, `2` or `3` to play their turn, on wrong input the game has to report error and ask again. At the end winner must be shown. Thumbs up for randomly setting the initial number of matches between 10 and 15.
### Level 1: Easy, *I'm Too Young To Die*
1. **[fizzbuzz](fizzbuzz.md)**: Write the classic fizzbuzz program.
2. **[anagram](anagram.md) checker**: Make a program that reads one line of text from the user and checks if it's an anagram (i.e. if it's spelled the same forward and backwards) or not -- you can just output *yes* or *no*.
3. **number [encyclopedia](encyclopedia.md)**: Make a program that writes numbers from 0 to 1000 (including both) and about each of which it writes some facts. These facts have to include at least the number's square, square root, sum of its decimal digits, its [binary](binary.md) representation, prime factorization and whether the number itself is [prime](prime.md), perfect number and [Fibonacci](fibonnaci.md) number.
4. **[brainfuck](brainfuck.md) interpreter**: Make a program that interprets brainfuck. You may choose to read the input program either from standard input or from a file (the file may have some hardcoded name, e.g. your program will just look for a file named `program.bf` in the same directory). If the brainfuck program is invalid or runtime error occurs in it, you may just write out `error` and halt your interpreter. Thumbs up for making the interpreter nicer, e.g. allowing to pass input file name as a CLI argument, reporting more details about errors (e.g. its position in source code) and so on.
5. **[game of life](game_of_life.md)**: Make a program that simulates game of life on a finite *N * N* grid, with wrapping space (i.e. a cell on the very left of the grid is considered a neighbor of the cell on the very right in the same row, same thing with top and bottom). Make *N* configurable at least as a compile time option, draw the world as [ASCII art](ascii_art.md) to terminal, make the user step forward by pressing some key. You can initialize the grid values randomly, but thumbs up for allowing setting the initial world state (e.g. reading it from a file or something).
6. **text adventure**: Make an interactive [CLI](cli.md) text adventure that will take an average player at least 10 minutes to finish. Part of game mechanics must involve inventory, i.e. picking up items, carrying them around and using them.
7. **calculator**: Make an interactive calculator -- it can be a purely [command line](cli.md) program into which user types expressions and your program evaluates them. The functionality must be at least on the level of the most plain physical calculators, i.e. it doesn't have to parse whole complex expressions, but it should be able to add, subtract, multiply, divide and find square roots. Results can be approximate, showing just 3 fractional decimal digits. Thumbs up for more features like handling expressions with brackets, having a variable storing last result, converting between bases and so on.
8. **[bytebeat](bytebeat.md)**: Make at least three cool sounding bytebeat songs.
4. **[game of life](game_of_life.md)**: Make a program that simulates game of life on a finite *N * N* grid, with wrapping space (i.e. a cell on the very left of the grid is considered a neighbor of the cell on the very right in the same row, same thing with top and bottom). Make *N* configurable at least as a compile time option, draw the world as [ASCII art](ascii_art.md) to terminal, make the user step forward by pressing some key. You can initialize the grid values randomly, but thumbs up for allowing setting the initial world state (e.g. reading it from a file or something).
5. **text adventure**: Make an interactive [CLI](cli.md) text adventure that will take an average player at least 10 minutes to finish. Part of game mechanics must involve inventory, i.e. picking up items, carrying them around and using them.
6. **calculator**: Make an interactive calculator -- it can be a purely [command line](cli.md) program into which user types expressions and your program evaluates them. The functionality must be at least on the level of the most plain physical calculators, i.e. it doesn't have to parse whole complex expressions, but it should be able to add, subtract, multiply, divide and find square roots. Results can be approximate, showing just 3 fractional decimal digits. Thumbs up for more features like handling expressions with brackets, having a variable storing last result, converting between bases and so on.
7. **[bytebeat](bytebeat.md)**: Make at least three cool sounding bytebeat songs.
8. **Lorem ipsum generator**: Create a program that generates gibberish text that looks like normal human text. Each time it is run, it will generate generally a different text that consists of 10 paragraphs; each paragraph ends with newline and consists of 5 to 10 sentences; each sentence consists of 3 to 10 words, starts with capital letter (other letters are lowercase) and ends with period. After period there is space except when it's the last period in a paragraph. Words are selected randomly from some set of words you define.
9. **Caesar cipher**: Make a program that encrypts/decrypts text with the simple cipher known as Caesar cipher, i.e. by offsetting each letter by certain fixed number *N* (e.g. with *N = 2* the letter *A* will become *C*, *B* will become *D* etc.). Assume just ASCII characters on input (encrypted output can be non-ASCII). You can just choose and hardcode some specific *N* but thumbs up for allowing to set any *N*. You can input/output text from/to standard input/output or files -- it's up to you -- also you can either make one program that does both encoding and decoding (e.g. depending on CLI flag) or make two programs, one for each task.
10. **[brainfuck](brainfuck.md) interpreter**: Make a program that interprets brainfuck. You may choose to read the input program either from standard input or from a file (the file may have some hardcoded name, e.g. your program will just look for a file named `program.bf` in the same directory). If the brainfuck program is invalid or runtime error occurs in it, you may just write out `error` and halt your interpreter. Thumbs up for making the interpreter nicer, e.g. allowing to pass input file name as a CLI argument, reporting more details about errors (e.g. its position in source code) and so on.
### Level 2: Mid, *Hurt Me Plenty*
@ -56,6 +59,7 @@ Here you will find suggestions for programming projects, roughly sorted by their
8. **educational [sorting](sorting.md) visualization**: Make a program for visualizing sorting algorithms -- it may draw real graphics (either directly to the screen or by outputting animation file) or just render ASCII art graphics, but it has to clearly show what the sorting algorithm is doing, i.e. which elements are being compared, which are swapped and if it makes good sense to highlight something else (like the pivot or already sorted part of the array), you should do it. Implement at least bubble sort, insertion sort, selection sort and quick sort. Also offer benchmark mode in which all algorithms race in sorting the same array (this can be without advanced visualization, just show e.g. number of steps for each).
9. **3D model of [fractal](fractal.md)**: Make a program that outputs 3D model of either Siepinski triangle or Koch snowflake fractal. The output shall be some simple 3D format like obj or Collada. The model can be primitive, i.e. it can be just flat shape made of triangles which don't have to really be connected, but the program must allow specifying the number of iterations of the fractal (during invocation, e.g. as a CLI flag). Check that the model is correct by opening it in some 3D editor such as Blender.
10. **[sudoku](sudoku.md) solver**: Create a program to which the user somehow passes a sudoku puzzle (in a file, through a CLI flag, interactively... the choice is yours, but passing a new puzzle mustn't require program recompilation) and the program attempts to solve it. It must first employ some basic reasoning, at very least it has to repeatedly try the elimination method, i.e. marking a set of possible values in each empty square and then reducing these sets by crossing out values that can't be in that square because the same value is in its column/row/minisquare -- wherever only one value remains in the set, it is filled in as final; this has to be repeated until no more progress is being made. If you want, you can employ other techniques as well. After this if the puzzle is still not solved, the program will resort to [brute force](brute_force.md) which has to eventually lead to solution (even if it would take too long). If the program finds that the puzzle is unsolvable, it has to report it.
11. **language recognizer**: Make a program that will be able to learn and then recognize language of text it is given (in theory it should work for any kind of language, be it human or computer language). Specifically the program will first get *N* files, each one representing a different language (e.g. 5 books in different human languages), then it will take some other text and say to which of the initial *N* files it is linguistically most similar. For simplicity assume only plain ASCII files on input (you can just use some Unicode to ASCII utility on all input files). Use some simple [machine learning](machine_learning.md) technique such as some variant of k-NN. It will suffice if for each training example you construct a vector of some nice features, for example {average word length, vowel/consonant ratio, relative frequency of letter A, relative frequency of letter E, ...}, give each component some weight and then just find the nearest neighbour to the tested sample in this feature space (if you want to be more fancy, split the input files into parts so you get more training samples, then try k-NN with some convenient k). You shouldn't and CANNOT use neural networks, and of course you CANNOT use any machine learning library ;) You don't have to achieve great accuracy but your program should likely be able to quite reliably tell e.g. German from C++.
### Level 3: Hard, *Ultra Violence*
@ -69,6 +73,7 @@ Here you will find suggestions for programming projects, roughly sorted by their
8. **64K intro**: Make an impressive [demoscene](demoscene.md)-style 3D intro with music. It must have duration of at least 1 minute and fit into a 64 KB executable. It has to be good enough so that an average demoscener would approve it as not completely laughable.
9. **3D [path tracer](path_tracing.md) without [floating point](float.md)**: Write a path tracer (NOT a mere [ray tracer](ray_tracing.md)) without using floating point. It can only produce static images that may just be saved to a file in some simple format (no need to draw real time animation to the screen). It must be possible to position and rotate the camera arbitrarily and to set its field of view. It has to support several shapes of objects in the scene: at least a sphere, plane and cylinder, and it must support transparent objects. Thumbs up for supporting polygonal models, depth of field and loading scene description from a file.
10. **[gopher](gopher.md) fulltext search engine**: Create a whole search engine (with crawler, index creator, user frontend, ...) for the gopher network. It can store its database just to flat files (no need to use SQL or something like that). It has to allow at least very basic fulltext search, i.e. about each gopher site you'll have to remember which words it contains (and possibly their count), so that if the user searched e.g. for `cats dogs`, you'll give him sites that contain both of these words somewhere in their text -- offer options to search either for sites containing all searched words or just some of them. Besides this you can make simplifications (ignore case, don't support Unicode, special characters etc.). Thumbs up for additional features like creating a graphical map of the crawled gopherspace along the way.
11. **[Jpeg](jpg.md) clone**: Create a usable format for photo images with lossy [compression](compression.md), similar to [Jpeg](jpg.md), that achieves good compression ratio and allows setting compression level, including setting compression level 0 (when it will only apply lossless compression). The format doesn't have to store any metadata, it's enough if it holds a 24 bit RGB bitmap of arbitrary resolution. For compression it must do at least following: separating the color and intensity channel and subsampling the color channel (see e.g. [YCbCr](ycbcr.md)), then converting the image to frequency domain (probably with [discrete cosine transformation](dct.md)) and quantizing the high frequencies, and then applying at least some lossless compression (RLE or Huffman coding or something). You can't use any libraries to do the described things (e.g. DCT, color conversion etc.), do it all yourself. The program, with medium compression level set, has to beat lz4 at compressing photos at least 90% times (in theory it should win always but we'll give you some margin if you fuck something up).
### Level 4: God Tier, *!Nightmare!*
@ -78,7 +83,7 @@ Here you will find suggestions for programming projects, roughly sorted by their
4. **[Python](python.md)**: Implement the Python programming language, INCLUDING its whole standard library. Bonus points for finishing before the version you are implementing stops being supported.
5. **ruin [bitcoin](bitcoin.md)**: Make a program that can mine one bitcoin by running for at most one minute on some consumer laptop released before year 2010. Warning: this is probably unsolvable, but if you solve it you may help save the planet :P
TODO: text editor, tetris, voice synth?, snake, JPG like compression, quadratic equation, fractals, 2D raycasting, fourier transform, primes, image library, web browser, diff, MD parser, solver/generator, bytebeat, markov chain, syntax beautifier, grep, some kinda server, function plotter, raytracer, pi digits, 2D physics engine, encryption?, procedural MIDI, machine translation?, maze gen., genetic prog., language recognizer, search engine, AI?, chat ...
TODO: text editor, tetris, voice synth?, snake, quadratic equation, fractals, 2D raycasting, fourier transform, primes, image library, web browser, diff, MD parser, solver/generator, markov chain, syntax beautifier, grep, some kinda server, function plotter, pi digits, 2D physics engine, encryption?, procedural MIDI, machine translation?, maze gen., genetic prog., language recognizer, AI?, photogrammetry, chat ...
## Quiz/Questions/Problems
@ -97,12 +102,19 @@ Here are some questions to test your LRS related knowledge :D
11. What's the worst socioeconomic system in the world? You don't even have to say why because that would take too long.
12. Manually convert the [binary](binary.md) numeral 10110000000010110101 to hexadecimal.
13. How would you compute the circumference of a circle with radius *r* without using floating point? Consider just the approximate value of pi ~= 3.14, i.e. write the formula multiplying *2 * r* by 3.14 only using whole numbers (of course the result will be rounded to whole number too).
14. Name at least five licenses commonly used for [FOSS](foss.md) programs, five text editors/IDEs commonly used for programming and five operating systems whose source code is mostly free-licensed (none of these is allowed to be using the same or forked kernel of any other).
15. What is the minimum number of [bits](bit.md) that will allow us to represent 12345678910111213 distinct values?
16. Give at least one example of [analog](analog.md) electronic device and one of [digital](digital.md) mechanical device.
17. Answer yes/no to following: Is base-three number 2101 greater than base-seven number 206? Is [gemini](gemini.md) better than [gopher](gopher.md)? Is there any [triangle](triangle.md) (in Euclidean geometry) whose one side is longer than the sum of lengths of its other two sides?
18. There are two walls 2 meters apart, the right wall is moving left by the speed 0.1 m/s, the left wall is moving right by the same speed 0.1 m/s. There is a fly in the middle between the walls, flying by speed 1 m/s. It is flying towards one wall, then when it reaches it it turns around and flies towards the other wall etc. When the walls completely close in, what distance would the fly have traveled? (There is a simple solution.)
19. Solve these [anagrams](anagram.md): *no cure sir*, *come piss ron*, *ginger*, *nicer shops*, *fog tag*, *trek now*.
20. In 3D computer [graphics](graphics.md) what's the difference between [shading](shading.md) and drawing [shadows](shadow.md)?
### Answers
1. Though legally similar (but not identical), free software is a movement based on ethics and pursuing freedom for the software user, open source is evil business movement that avoids talking about ethics, it was forked from free software and is solely focused on exploiting free software licenses for making profit.
2. [C](c.md), [C++](cpp.md), [Java](java.md), [JavaScrip](javascript.md), [Python](python.md), [Lisp](lisp.md), [Forth](forth.md), [Brainfuck](brainfuck.md), [Fortran](fortran.md), [Pascal](pascal.md), [Haskell](haskell.md), [Prolog](prolog.md), [Smalltalk](smalltalk.md), [comun](comun.md), ...
3. The mirror doesn't flip the text, you flipped it by pointing it at the mirror -- you most likely flipped it horizontally so that's how you see it in the mirror, but you could as well have flipped it vertically; then the text would be flipped vertically in the mirror.
3. The mirror doesn't really flip the text -- what's left/right in front of it is also left/right in it. It is you who flipped the text when you pointed it at the mirror -- you most likely flipped it horizontally so that's how you see it in the mirror, but you could as well have flipped it vertically; then the text would be flipped vertically in the mirror.
4. Modulo bias happens when the random number generator's range is non-divisible by our desired range that we enforce with modulo operator -- with shown approach some numbers then have higher probability of being generated than others. For example if rand() here return numbers from 0 to 1023, there is only one way to get 999 (999 % 1000) but two ways to get 0 (0 % 1000 and 1000 % 1000), i.e. 0 is more likely to be generated. Common approach to reducing this effect is to repeatedly generate numbers until we get one falling into the "fair" range (this is not guaranteed to end so we should limit the maximum number of attempts).
5. The relationship is commonly described like this: information is interpreted data. I.e. data is just a sequence of symbols, information is the knowledge we extract from it.
6. The probability of program breaking is 1 minus probability of it not breaking. For a program to NOT break during one year, all libraries have to stay unchanged (probability 0.95 for each one): that's 0.95 * 0.95 * 0.95 * ... = 0.95^10. Similarly the probability of it not breaking during 5 years is (0.95^10)^5, so the probability of the program breaking in 5 years is around 92%.
@ -112,4 +124,15 @@ Here are some questions to test your LRS related knowledge :D
10. two (try it, see coin rotation paradox)
11. [capitalism](capitalism.md)
12. B00B5
13. *(2 * r * 314) / 100*
13. *(2 * r * 314) / 100*
14. [GPL](gpl.md), LGPL, AGPL, [MIT](mit.md), BSD, Apache, [CC0](cc0.md), unlicense, zlib, WTFPL, ...; [vim](vim.md), [emacs](emacs.md), [Acme](acme.md), Geany, vi, Notepad++, Neovim, Kate, nano, gedit, ...; [Debian](debian.md), 9front, [OpenBSD](openbsd.md), [FreeDOS](freedos.md), [Haiku](haiku.md), [Minix](minix.md), ReactOS, [GNU](gnu.md)/[Hurd](hurd.md), V6 [Unix](unix.md), FreeRTOS, ...
15. The number is *N* such that 2^N = 12345678910111213, rounded up, that is ceil(log2(12345678910111213)) = 54.
16. amplifier, voltmeter, analog hardware for [neural networks](neural_net.md), ...; abacus, mechanical calculators such as Curta, Turing machine made of wood, ...
17. no, no, no
18. The walls will collide in 10 seconds during which the fly has been constantly flying with the speed 1 m/s, so it traveled 10 meters.
19. *[recursion](recursion.md)*, *[compression](compression.md)*, *[nigger](nigger.md)*, *[censorship](censorship.md)*, *[faggot](faggot.md)*, *[network](network.md)*.
20. Shading is the process of computing surface color of 3D objects, typically depending on the object's material and done by GPU programs called [shaders](shader.md); shading involves for example applying textures, normal mapping and mainly lighting -- though it can make pixels lighter and darker, e.g. depending on surface normal, it only applies local models of light, i.e. doesn't compute true shadows cast by other objects. On the other hand computing shadows uses some method that works with the scene as a whole to compute true shadowing of objects by other objects.
## Other
Make your own exercises in daily life, adopt a mindset of taking small intellectual (or even non-intellectual) challenges. Don't slip into conformist consumerist life of comfort and ignorance that will make your brain rot. Learn new things just for the same of it -- make a game, learn a new language, learn to play music, learn chemistry, paint a picture, learn [chess](chess.md), read a whole [encyclopedia](encyclopedia.md), read Quran, solve puzzles in magazines, construct a machine out of wood, collect rocks, write a book, compose a song, ... you get the idea. Even if you just play vidya games, at least play some puzzle game or a strategy game, or a creative sandbox game, or invent some self-imposed challenge and make it into a puzzle game if it's not, or write a bot that plays the game for you, don't be just a zombie staring into screen. It's good to make it a habit to do some small exercise every day, such as play one game of chess with your computer every single day, or watch one video about math etc. -- in a year or two you'll become pretty good at a new skill just by this. WARNING: do not confuse this with the so called "[self improvement](productivity_cult.md)" cult, you'd be retarded to join that.

@ -6,7 +6,7 @@
### Is this a joke? Are you [trolling](trolling.md)?
No. Jokes are [here](jokes.md).
No. Jokes are [here](jokes.md). The tone of the wiki is informal, cynical, relaxed and full of jokes and irony, but the topics and the goal are completely serious.
### What the fuck?
@ -24,7 +24,7 @@ One way to see LRS is as a philosophy that takes only the [good](good.md) out of
### Why this obsession with extreme [simplicity](minimalism.md)? Is it because you're too stupid to understand complex stuff?
I used to be the mainstream, complexity embracing programmer. I am in no way saying I'm a genius but I've put a lot of energy into studying computer science full time for many years so I believe I can say I have some understanding of the "complex" stuff. I speak from own experience and also on behalf of others who shared their experience with me that the appreciation of simplicity and realization of its necessity comes after many years of dealing with the complex and deep insight into the field and into the complex connections of that field to society.
On the contrary, LRS is not stupid enough to embrace complexity. I used to be the [mainstream](mainstream.md), complexity embracing programmer. I am in no way saying I'm a genius but I've put a lot of energy into studying computer science full time for many years so I believe I can say I have some understanding of the "complex" stuff. I speak from own experience and also on behalf of others who shared their experience with me that the appreciation of simplicity and realization of its necessity comes after many years of dealing with the complex and deep insight into the field and into the complex connections of that field to society.
You may ask: well then but why it's just you and a few weirdos who see this, why don't most good programmers share your opinions? Because they need to make living or because they simply WANT to make a lot of money and so they do what the system wants them to do. Education in technology (and generally just being exposed to corporate propaganda since birth) is kind of a trap: it teaches you to embrace complexity and when you realize it's not a good thing, it is too late, you already need to pay your student loan, your rent, your mortgage, and the only thing they want you to do is to keep this complexity cult rolling. So people just do what they need to do and many of them just psychologically make themselves believe something they subconsciously know isn't right because that makes their everyday life easier to live. "Everyone does it so it can't be bad, better not even bother thinking about it too much". It's difficult doing something every day that you think is wrong, so you make yourself believe it's right.

@ -16,6 +16,7 @@ What following a "constantly [work in progress](wip.md)" list of subjectively se
- [North Korea](north_korea.md) due to its isolation and secrecy, e.g. its own [intranet](kwangmyong.md). Also other secret computer networks like [JWICS](jqics.md), [SIPRNet](siprnet.md), [NIPRNet](niprnet.md) etc.
- [conspiracy theories](conspiracy.md): Many are true.
- hybrids: No, we don't actually know if humans and apes can interbreed or not, humanzees have been reported, as well as hybrids of humans and other animals, there exist some real weird photos. Ligers and tigons are also cool, but there are many other interesting possibilities. See http://www.macroevolution.net.
- Third man factor: there is a phenomenon which makes people hear some kind of comforting, guiding voice in long-lasting crisis situations, described e.g. by people who got lost in mountains etc.
- ...

File diff suppressed because one or more lines are too long

@ -24,4 +24,6 @@ Another extremely childish idea is that "marketing serves the people by informin
Good things don't need promotion (it's true even if you disagree). **The bigger the promotion, the bigger [shit](shit.md) it is.**
No, there is no such thing as a "non-intrusive ad", fucking capitalists are trying to introduce a sense of guilt for not looking at what you don't wanna look. The only non-intrusive ad is that which you don't see or hear at all. Just [block](adblock.md) all that shit if you can.
No, there is no such thing as a "non-intrusive ad", fucking capitalists are trying to introduce a sense of guilt for not looking at what you don't wanna look. The only non-intrusive ad is that which you don't see or hear at all. Just [block](adblock.md) all that shit if you can.
Watching ads leads to extremely fast onset of dementia and brain cancer. Making ads means you already have dementia.

@ -55,6 +55,8 @@ There are many terms that are very similar and can many times be used interchang
- **[directed acyclic graph](dag.md)** vs **[tree](tree.md)**
- **[directory](directory.md)** vs **[folder](folder.md)**
- **[discrete Fourier transform](dft.md)** vs **[discrete time Fourier transform](dtft.md)**
- **[electric](electricity.md)** vs **[electronic](electronics.md)**
- **electronic game** vs **[video game](video_game.md)**
- **[emoticon](emoticon.md)** vs **[emoji](emoji.md)** vs **[smiley](smiley.md)**
- **[emulation](emulation.md)** vs **[simulation](simulation.md)**
- **[entity](entity.md)** vs **[object](object.md)**

@ -27,6 +27,7 @@ Here is a list of people notable in technology or in other ways related to [LRS]
- **[John Carmack](john_carmack.md)**: legendary game ([Doom](doom.md), [Quake](quake.md), ...) and [graphics](graphics.md) developer, often called a programming god
- **[John Romero](romero.md)**: legendary oldschool game dev, co-creator of [Doom](doom.md)
- **[John von Neumann](von_neumann.md)**: early 20th century multidisciplinary genius, one of the greatest [computer scientists](compsci.md) of all time, also famous for huge [IQ](iq.md) and being a human calculator
- **[Jonathan Blow](jonathan_blow.md)**: Mainstream proprietary indie game developer of puzzle games, kind of a celebrity of indie game dev, mostly retarded but sometimes says something based out of context, some people love him, some hate him.
- **[Ken Silverman](key_silverman.md)**: famous oldschool 3D engine programmer ([Duke Nukem 3D](duke_3d.md)'s [BUILD engine](build_engine.md), ...), sadly proprietaryfag
- **[Ken Thompson](ken_thompson.md)**: co-creator of [Unix](unix.md), [C](c.md) and [Go](go.md)
- **[Kurt Godel](kurt_godel.md)**: mathematician famous for his groundbreaking incompleteness theorems proving that [logic](logic.md) itself has intrinsic limitations, was a tinfoil schizo and died of starvation believing his food to be poisoned

@ -2,7 +2,7 @@
*All races of men, however different, are to coexist in [love](love.md) and [peace](peace.md).*
Races of people are very large, [fuzzy](fuzzy.md), loosely defined groups ([clusters](cluster.md)) of people who are genetically similar because they come from the same ancestors. Races usually significantly differ by their look and in physical, mental and cultural aspects; some races are physically more fit, some are more intelligent, some are better evolved for living in specific climate conditions and so on -- races make mankind very diverse; sadly they are also often a basis of [identity](identity_politics.md) [fascism](fascism.md) too (similarly to how e.g. gender is the basis of [LGBT](lgbt.md) fascism). The topic of human race is nowadays forbidden to be critically discussed and researched (and even to be [joked](joke.md) about) due to the political reign of [pseudoleft](pseudoleft.md) which denies existence of human races and aggressively [censors](censorship.md) and attacks any disagreement, however there exists a number of undeniable old research, information hidden in the underground and book that haven't yet been burned, and many things about human races are simply completely obvious to those don't let themselves be blinded by the immensely powerful propaganda. [Good society](less_retarded_society.md), unlike for example our current competitive [capitalist](capitalism.md) society, acknowledges the differences between human races and lets them coexist peacefully, without [competition](competition.md) and in social equality despite their differences and without any need for [bullshit](bullshit.md) such as [political correctness](political_correctness.md) and biology denialism.
Races of people are very large, [fuzzy](fuzzy.md), loosely defined groups ([clusters](cluster.md)) of people who are genetically similar because they come from the same ancestors. Races usually significantly differ by their look and in physical, mental and cultural aspects; some races are physically more fit, some are more intelligent, some are better evolved for living in specific climate conditions and so on, some races are so distinct that some could even consider them a different species altogether -- races make mankind very diverse; sadly they are also often a basis of [identity](identity_politics.md) [fascism](fascism.md) too (similarly to how e.g. gender is the basis of [LGBT](lgbt.md) fascism). The topic of human race is nowadays forbidden to be critically discussed and researched (and even to be [joked](joke.md) about) due to the political reign of [pseudoleft](pseudoleft.md) which denies existence of human races and aggressively [censors](censorship.md) and attacks any disagreement, however there exists a number of undeniable old research, information hidden in the underground and book that haven't yet been burned, and many things about human races are simply completely obvious to those don't let themselves be blinded by the immensely powerful propaganda. [Good society](less_retarded_society.md), unlike for example our current competitive [capitalist](capitalism.md) society, acknowledges the differences between human races and lets them coexist peacefully, without [competition](competition.md) and in social equality despite their differences and without any need for [bullshit](bullshit.md) such as [political correctness](political_correctness.md) and biology denialism.
Instead of the word *race* the politically correct camp uses words such as *ethnicity* -- it's funny, sometimes they say no such thing as race exists but other times they simply have to operate with the fact that people are genetically diverse, e.g. when they accuse others of [racism](racism.md) or point out statistics that benefit them ("black people are paid less!"), as existence of discrimination based on differences between people necessarily implies the existence of differences between people -- so here they try to substitute the word *race* for a different word so as to make their self-contradiction less obvious. Anyway, it doesn't [work](work.md) :) Races indeed do exit, no matter what we call them.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -3,9 +3,9 @@
This is an autogenerated article holding stats about this wiki.
- number of articles: 569
- number of commits: 759
- total size of all texts in bytes: 3552622
- total number of lines of article texts: 27886
- number of commits: 760
- total size of all texts in bytes: 3554810
- total number of lines of article texts: 27892
- number of script lines: 262
- occurences of the word "person": 8
- occurences of the word "nigger": 71
@ -35,60 +35,70 @@ longest articles:
top 50 5+ letter words:
- which (2043)
- which (2042)
- there (1524)
- people (1343)
- other (1107)
- example (1066)
- example (1069)
- software (1042)
- number (976)
- about (923)
- about (924)
- program (822)
- their (766)
- called (716)
- because (694)
- would (691)
- would (692)
- computer (690)
- simple (666)
- being (664)
- numbers (650)
- numbers (652)
- things (646)
- language (637)
- without (622)
- without (623)
- programming (613)
- function (611)
- however (589)
- something (583)
- something (585)
- these (577)
- different (565)
- system (533)
- world (532)
- world (531)
- should (525)
- games (524)
- point (518)
- point (519)
- society (504)
- doesn (498)
- though (493)
- memory (490)
- drummyfish (467)
- drummyfish (468)
- while (466)
- using (462)
- using (465)
- technology (454)
- course (448)
- course (449)
- still (446)
- similar (446)
- simply (443)
- possible (437)
- possible (438)
- https (428)
- really (408)
- computers (398)
- extremely (396)
- usually (393)
- value (391)
- value (394)
- usually (394)
latest changes:
```
Date: Thu Apr 4 21:32:43 2024 +0200
exercises.md
history.md
how_to.md
liberalism.md
main.md
pi.md
random_page.md
wiki_pages.md
wiki_stats.md
Date: Wed Apr 3 22:57:42 2024 +0200
exercises.md
interesting.md
@ -111,17 +121,6 @@ Date: Wed Apr 3 17:16:51 2024 +0200
random_page.md
wiki_pages.md
wiki_stats.md
Date: Tue Apr 2 22:47:48 2024 +0200
42.md
bullshit.md
c_pitfalls.md
c_tutorial.md
demoscene.md
emoticon.md
exercises.md
future_proof.md
how_to.md
javascript.md
```
most wanted pages:
@ -145,13 +144,13 @@ most wanted pages:
- [cryptography](cryptography.md) (8)
- [waiver](waiver.md) (7)
- [syntax](syntax.md) (7)
- [rpi](rpi.md) (7)
- [sdl](sdl.md) (7)
most popular and lonely pages:
- [lrs](lrs.md) (269)
- [c](c.md) (201)
- [capitalism](capitalism.md) (198)
- [capitalism](capitalism.md) (199)
- [bloat](bloat.md) (197)
- [free_software](free_software.md) (163)
- [game](game.md) (135)
@ -172,8 +171,8 @@ most popular and lonely pages:
- [censorship](censorship.md) (72)
- [programming_language](programming_language.md) (70)
- [hacking](hacking.md) (70)
- [art](art.md) (69)
- [fight_culture](fight_culture.md) (68)
- [art](art.md) (68)
- [shit](shit.md) (67)
- [less_retarded_society](less_retarded_society.md) (67)
- [float](float.md) (66)

@ -29,7 +29,13 @@ Of course, [LRS](lrs.md) loves all living beings equally, even women. In order t
lol http://www.menarebetterthanwomen.com
also https://encyclopediadramatica.online/Woman :D
**How to deal with being a woman?** Well, just as you deal with not being born Einstein, Phelps or Kasparov. It's fine to be anyone, there is no need to [fight](fight_culture.md). Try to be a good human and live a fulfilling life, you can create a lot of good.
**How to deal with being a woman?** Well, just as you deal with not being born Einstein, Phelps or Kasparov. It's fine to be anyone, there is no need to [fight](fight_culture.md) or compete, just try to be a good human and live a fulfilling life, you can create a lot of good. As a woman you can do for example the following:
- [charity sex](charity_sex.md): Give people sex for free, you'll make a lot of them happy.
- oppose [feminism](feminism.md): Women opposing feminism are based.
- try to get smart: You can get quite smart even as a woman -- at least if you're white, Jewish or Asian -- you won't match men but that doesn't matter, you can still get quite smart.
- just do woman things: Be just a normal woman, learn cooking, cleaning and so on.
- ...
## Men Vs Women In Numbers

@ -2,6 +2,8 @@
YouTube (also JewTube { Lol jewtube.com actually exists. ~drummyfish} or just YT) is a huge, [censored](censorship.md) [proprietary](proprietary.md) [capitalist](capitalism.md) video [consuming](consumerism.md) "website"/platform, since 2006 seized by the [Google](google.md) terrorist organization. It has become the monopoly "video content platform", everyone uploads his videos there and so everyone is forced to use that shitty site from time to time to view some tutorial or whatnot. YouTube is based on content consumerism, aggressive predatory marketing, [copyright trolling](copyright_troll.md), propaganda and general abuse of its [useds](used.md) -- it is financed from surveillance-powered ads as well as sponsor propaganda inserted into videos. Alternatives to YouTube, such as [bitchute](bitchute.md), the "rightist" YouTube, never really caught on very much -- YouTube is sadly synonymous with online videos just as Google is synonymous with searching the web. This is of course extremely, extremely, extremely, extremely bad.
Just one of countless damages YouTube has done to society is establishing videos as standard medium of any form of communication and information storage -- back in the day Internet was mostly text-based, sometimes there was an image or video of course, but only when needed. Since YouTube's rise to fame a lot of information has just moved to videos, even that which suffer by this format, e.g. books, announcements, notes, presentations, tutorials, pure audio and so on. All of this [bloat](bloat.md) of course makes the information hard to index and search, store, process, view on weak devices, it wastes enormous amounts of bandwidth, computing power and so forth. Thanks YouTube.
{ https://www.vidlii.com seems alright though, at least as a curiosity. Anyway if you need to watch YouTube, do not use their website, it's shitty as hell and you will die of ad cancer, rather use something like invidious or youtube-dl. Here is an **awesome hack I discovered to search only old videos on youtube**! The new shit is just unwatchable, there's clickbait, sponsors, propaganda, SJW shit everywhere, thankfully you can just exclude any year from the search with with "-year" (at least for now), for example: https://yewtu.be/search?q=free+software+-2023+-2022+-2021+-2020+-2019+-2018+-2017+-2016+-2015+-2014+-2013+-2012+-2011+-2010+-2009&page=1&date=none&type=video&duration=none&sort=relevance. Enjoy. ~drummyfish }
**What are the alternatives to YouTube?** We'll only leave a brief paragraph here for wannabe YouTube alternatives come and go faster than a [zoomer](zoomer.md) changes genders. Best alternative to watching videos is reading [books](books.md) or watching clouds in the sky, but we'll stick to "watching videos on the Internet" here. Also bear in mind that if you have to watch YouTube, use alternative YouTube [frontends](frontend.md), which are normally [FOSS](foss.md) -- e.g. Invidious, piped, HookTube or FreeTube -- these let you access YouTube's videos via less [bloated](bloat.md) and more "privacy-friendly" interface, also filtering out ads and so on, more hardcore people use [CLI](cli.md) tools such as [youtube-dl](youtube_dl.md) to directy download the videos and watch them in native players. Likely the most notable [FOSS](foss.md) alternative to YouTube is **[PeerTube](peertube.md)**, a [federated](federation.md) [P2P](p2p.md) video platform, however for intended use it requires [JavaScript](javascript.md) (there is a way to download videos without JS but it's discouraged) and there are other issues that make it unusable ([SJW](sjw.md) censorship, videos load extremely slowly, ...). If you use PeerTube, don't use the lesbian instances, look up the uncensored ones. Mainstream proprietary alternative to YouTube is Vimeo, Bitchute is the "rightist" YouTube alternative (quite shitty TBH). [Internet Archive](internet_archive.md) has many video, especially old ones -- this is quite nice alternative. Vidlii is proprietary but oldschool site that tries to replicate old YouTube for the nostalgia, it has its own videos and small, dedicated community and very low censorship, it is pretty nice, with 360p videos and all; a site very similar to Vidlii it Bitview.

Loading…
Cancel
Save