Update
This commit is contained in:
parent
8b1d7a4381
commit
aadf27a49f
16 changed files with 2151 additions and 1804 deletions
|
@ -1,7 +1,7 @@
|
|||
# 21st Century
|
||||
|
||||
21st century, known as the Age Of [Shit](shit.md) or Dark Ages, is already one of the worst centuries in [history](history.md), despite only being around for a short time. Hell on [Earth](earth.md), violence, pure stupidity, destruction, hatred and greed, [fascism](fascism.md), misery, torture and suffering -- these are just some words describing this time period of time. How unlucky it is to have been born in such a shitty time. [Abominations](snowflake.md) walk in the streets. 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. While in the past only a portion of population were slaves, under today's late stage [capitalism](capitalism.md) the whole population has already been enslaved. People are absurdly stupid, and everything is getting much worse by the year.
|
||||
21st century, known as the Age Of [Shit](shit.md) or Dark Ages, is already one of the worst centuries in [history](history.md), despite only being around for a short time. Hell on [Earth](earth.md), violence, war, stupidity, destruction, hatred and greed, [fascism](fascism.md), misery, torture and constant suffering are just some words that come into mind about this time period, Middle Ages now almost seem like a paradise. How unlucky it is to have been born in such a shitty time. Everyone just wishes he was dead. [Abominations](snowflake.md) walk in the streets. 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. One of the biggest issues of this century is that most people think that good still exists and that "it's just in minority", that's how brainwashed everyone is. While in the past only a portion of population were slaves, under today's late stage [capitalism](capitalism.md) the whole population has already been enslaved. People are absurdly stupid, and everything is getting much worse every millisecond.
|
||||
|
||||
In 21st century there are already long established offices whose sole purpose is to ensure people cannot make use of useful ideas (see [patents](patent.md)). It is also possible -- and actually extremely common -- to draw a rectangle on the ground and then buy a paper that makes it possible to bully anyone who enters that rectangle, even kill him. Whole earth is now covered with such rectangles, it is impossible to set foot anywhere else -- in fact if you want to live, you have to buy a paper that gives you your own rectangle where you won't be bullied if you fall asleep, but you have to continuously pay for that paper, i.e. you are doomed to slavery just by existing. In 21 century it is forbidden to shit or urinate if you have no money in your pocket, without money you are OFFICIALLY supposed and expected to hold it until your bladder explodes and you die in the street -- if you're in a big city and you want to shit, you cannot do it, you may only pay for someone to let you take a shit in his house. Also in 21st century you cannot eat food that is next to you, that no one else is eating and that will be thrown away, and that even if you're starving -- it is called theft and you will be beaten for it, maybe even killed. In this century you can also no longer drink from rivers or lakes, they have been poisoned so that you cannot drink at all if you don't have money in your pocket -- doing the same with air is already work in progress, major cities already have borderline unbreathable air. Never ending torture is part of everyday life: for example every day you are forced to stop sleeping very early and go perform [slavery](work.md) that you hate deeply, the whole day you are continuously targeted with repeated brainwashing ([ads](marketing.md), news, social media, [fear culture](fear_culture.md), industrial noise, ...) that equate psychological torture. There are many more things like this but trying to recount them all would result in many thousands of billions of volumes of books.
|
||||
In 21st century there are already long established offices whose sole purpose is to ensure people cannot make use of useful ideas (see [patents](patent.md)). It is also possible -- and actually extremely common -- to draw a rectangle on the ground and then buy a paper that makes it possible to bully anyone who enters that rectangle, even kill him. Whole earth is now covered with such rectangles, it is impossible to set foot anywhere else -- in fact if you want to live, you have to buy a paper that gives you your own rectangle where you won't be bullied if you fall asleep, but you have to continuously pay for that paper, i.e. you are doomed to slavery just by existing. In 21 century it is forbidden to shit or urinate if you have no money in your pocket, without money you are OFFICIALLY supposed and expected to hold it until your bladder explodes and you die in the street -- if you're in a big city and you want to shit, you cannot do it, you may only pay for someone to let you take a shit in his house. Also in 21st century you cannot eat food that is next to you, that no one else is eating and that will be thrown away, and that even if you're starving -- it is called theft and you will be beaten for it, maybe even killed. In this century you can also no longer drink from rivers or lakes, they have been poisoned so that you cannot drink at all if you don't have money in your pocket -- doing the same with air is already work in progress, major cities already have borderline unbreathable air. Never ending torture is part of everyday life: for example every day you are forced to stop sleeping very early and go perform [slavery](work.md) that you hate deeply, the whole day you are continuously targeted with repeated brainwashing ([ads](marketing.md), news, social media, [fear culture](fear_culture.md), industrial noise, ...) that equate psychological torture. In 21st century every [joke](jokes.md) has to be preceded by 35 disclaimers, apologies to anyone who might find the joke unfunny, to the corporations that hold ownership of the words that the joke borrows, warning that the font may cause epileptic seizure, waivers of any responsibility for anything the joke may cause, threat to anyone who would think of copying the joke, attribution of all people in history thanks to which the joke is possible, several ads for sponsors of the joke and warnings about the pure coincidental similarity between any real life concepts and the concepts used in the joke -- after reading this you don't even want to read the joke anymore. But people have conformed to it, it is now standard. There are many more things like this but trying to recount them all would result in many thousands of billions of volumes of books.
|
||||
|
||||
21st century is a horror, devoid of all humanity. No sincerity exists anymore, only fakes, as everyone is seeking some kind of [capital](capitalism.md), no art is sincere anymore, no soul is present in any craft, there is no place for soul among pure self interest -- despite the world being filled with bright colors and infantile pictures, it's like a world full of creepy clowns, cartoon animals are dancing all around in ads and movies but you know it's all just soulless robots beneath the shell, something aimed purely at taking advantage of you, at raping you. They will torture you to death with a smile on their face.
|
|
@ -20,6 +20,7 @@ In the great debate of copyleft vs permissive free licenses we, as technological
|
|||
- **Copyleft licenses have to be complex and ugly** because they have to strictly describe the copyleft scope and include lots of legal [boilerplate](boilerplate.md) in order to make them well defendable in court (copyleft is really about preparing for a legal war) -- and as we know, complexity comes with bugs, vulnerabilities, it makes it incomprehensible to common people and imposes many additional burdens. Indeed, we see this in practice: the only practically used copyleft licenses are the various versions of GPL of which all are ugly and have historically shown many faults (which is again evident from e.g. looking at GPL v1 vs v2 vs v3). This introduces great **license compatibility issues**, headaches for programmers who should rather be spending time programming and other similar bullshit. Permissive licenses on the other hand are simple, clear and well understandable, they aren't as much preparing for a court battle as trying to give other hackers a peace of mind and make them free of legal worries.
|
||||
- **Copyleft prevents not only inclusion in proprietary software but also in permissive FREE software.** I.e. as a consequence of denying code to corporations collateral damage is done by also denying code to ethical free software that wishes to be distributed without copyleft conditions. Similarly to how proprietary software forces free software programmers to reinvent wheels by rewriting software as free, copyleft forces permissive free software programmers to reinvent wheels and rewrite copylefted code as permissive. In this way copyleft [fights](fight_culture.md) not only proprietary software, but also other kinds of free software.
|
||||
- **There are currently no nice copyleft licenses** -- this of course isn't argument against copyleft itself but it's a practical argument nevertheless. Copyleft nowadays basically means GPL and GPL has a shitton of burdening stuff like requiring credit etc. If you want pure copyleft without anything on top, good luck looking for a license (keep in mind that making your own license or using some obscure, legally untested license is mostly a bad idea).
|
||||
- A real gem: **copyleft may even make it illegal to share your software at all**. You read that correctly, this is an example of the legal complications that may arise from going down the road of copyleft -- as hinted on at https://www.gnu.org/philosophy/linux-gnu-freedom.html, it may for example be questionable whether [Linux](linux.md) binaries can legally be shared at all, as they come with binary blobs to which no source code is provided, and GPL requires source code of the whole software to be provided. Can this be solved? Possibly yes, by adding more paragraphs, exceptions, by downloading the blobs from the Internet instead of distributing them etcetc., but do we really want to go through this? { Thanks to my friend for sending this to me <3 ~drummyfish }
|
||||
- ...
|
||||
|
||||
## See Also
|
||||
|
|
|
@ -16,6 +16,8 @@ The book *Free Culture* by Lessig talks, besides others, about how copyright has
|
|||
|
||||
Copyright rules differ greatly by country, most notably the US measures copyright length from the publication of the work rather than from when the author died. It is possible for a work to be copyrighted in one country and not copyrighted in another. It is sometimes also very difficult to say whether a work is copyrighted because the rules have been greatly changing (e.g. a notice used to be required for some time), sometimes even retroactively copyrighting public domain works, and there also exists no official database of copyrighted works (you can't safely look up whether your creation is too similar to someone else's). All in all, copyright is a huge mess, which is why we choose [free licenses](free_software.md) and even [public domain](public_domain.md) waivers.
|
||||
|
||||
In some countries copyright terrorists already establishes a kind of tax that is paid when buying a storage device such as a USB stick -- it is now assumed the device will be used to share copyrighted material so you pay extra money in advance to copyright holders for this crime you are found guilty of before you commit it. Welcome to [21st century](21st_century.md).
|
||||
|
||||
[Copyleft](copyleft.md) (also share-alike) is a concept standing against copyright, a kind of anti-copyright, invented by [Richard Stallman](rms.md) in the context of [free software](free_software.md). It's a license that grants people the rights to the author's work on the condition that they share its further modification under the same terms, which basically [hacks](hacking.md) copyright to effectively spread free works like a "virus".
|
||||
|
||||
Copyright does **not** (or at least should not) apply to facts (including mathematical formulas) (even though the formulation of them may be copyrighted), ideas (though these may be covered by [patents](patent.md)) and single words or short phrases (these may however still be [trademarked](trademark.md)) and similarly trivial works. As such copyright can't e.g. be applied to game mechanics of a computer [game](game.md) (it's an idea). It is also basically proven that copyright doesn't cover [computer languages](programming_language.md) (Oracle vs Google). Also even though many try to claim so, copyright does NOT arise for the effort needed to create the work -- so called "sweat of the brow" -- some say that when it took a great effort to create something, the author should get a copyright on it, however this is NOT and must NOT be the case (otherwise it would be possible to copyright mere ideas, simple mathematical formulas, rules of games etc.). Depending on time and location there also exist various peculiar exceptions such as the freedom of panorama for photographs or uncopyrightable utilitarian design (e.g. no one can own the shape of a generic car). But it's never good to rely on these peculiarities as they are specific to time/location, they are often highly subjective, fuzzy and debatable and may even be retroactively changed by law. This constitutes a huge legal [bloat](bloat.md) and many time legal unsafety. Do not stay in the gray area, try to stay safely far away from the fuzzy copyright line.
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
WORK IN PROGRESS
|
||||
|
||||
Data hoarding means larger than normal focus on collecting data, often in bigger quantities, most commonly by downloading them from the [Internet](internet.md). Frankly speaking it may or may not be a [disease](disease.md) -- this will depend on whether the activity is done well and contributes to one's well being and increasing [good](good.md) in the world, or if it's just an obsession wasting away one's life and enslaving him to the machine.
|
||||
Data hoarding means larger than normal focus on collecting data, often in bigger quantities, most commonly by downloading them from the [Internet](internet.md). Frankly speaking it may or may not be a [disease](disease.md) -- this will depend on whether the activity is done well and contributes to one's well being and increasing [good](good.md) in the world or if it's just a pointless obsession wasting away one's life and enslaving him to the machine. Is data hoarding good? To a certain degree yes, it can achieve a lot of good, for example backing up and mirroring the Internet, helping you prep for a sudden [Internet outage](collapse.md), and of course it may even lead you to digging out interesting things in the process. There is just the danger in it becoming an obsessive disorder, but if you're an addiction prone retard this danger lies basically in any activity at all such as eating, masturbating, drinking alcohol, playing games, smoking etcetc. Just think, use your brain, don't behave like an animal.
|
||||
|
||||
There is this famous case of a [woman](woman.md), Marion Stokes, who obsessively recorded TV broadcast on VHS tapes (some 70000 of them) -- her archive nowadays provides a very valuable historical record of footage that would otherwise have been lost. While this is the case of hoarding detrimental to the individual's health, it did help society in the end.
|
||||
|
||||
## How To Do It Well
|
||||
|
||||
|
@ -10,18 +12,18 @@ Here let be an advice to the good data hoarder.
|
|||
|
||||
- As always: in general **minimize the [bad](bad.md), maximize the [good](good.md)**. Size, cost, [maintenance](maintenance.md), time, anxiety and other trouble are bad. Value of the data, its durability, independence, freedom etc. are good. **Know what and why you're doing it** -- you probably don't want to hoard famous Hollywood movies that you can pirate from 1000 sites at any time, there's no point in that, you want to save files so as to back them up, have them ready in case the Internet stops existing, save something that's likely to be censored and so on. Basically imagine the difference between someone collecting useful objects and someone filling his house up to the roof with complete junk -- the same kind of thing's happening with data.
|
||||
- **Collect small data of high value**, maximize the value/size ratio: typically save a lot of text data, vector images are fine too, be more picky with bitmap images and things like video always have to be considered extremely well, curated and edited to shrink their size. **Keeping your collection as small as possible is the number one priority** as the size is what makes the difference between having a pocket USB stick that can be quickly and easily backed up on any file sharing website or a CD vs maintaining a [RAID](raid.md) of backups, consuming new CPUs and spending most of your hoarding time just keeping your collection alive.
|
||||
- **Hoard physical books** and similar oldschool data such as photos, vinyl records -- not only they often have advantages over electronic data, such as being storable without electricity and lasting longer, they are also usually of better quality and higher value. Internet data are full of junk and noise because it's a cheap medium -- a paper book on the other hand has to carefully choose what to include, i.e. it already did this part of the job for you.
|
||||
- **Hoard physical [books](books.md)** and similar oldschool data such as photos, vinyl records -- not only they often have advantages over electronic data, such as being storable without electricity and lasting longer, they are also usually of better quality and higher value. Internet data are full of junk and noise because it's a cheap medium -- a paper book on the other hand has to carefully choose what to include, i.e. it already did this part of the job for you.
|
||||
- **Use appropriate formats and quality**: if the value of the data is text, save it as txt (even if you found it in pdf), if it's a black and white scan, save it as black and white image (no need for RGB), if it's a diagram, find vector version of it and save that, if it's a meme whose entertaining value will be preserved even at half resolution, don't save it in 1080K resolution, save it at lowest acceptable quality etc. Use simple, common file formats that can be handled by free software, do NOT use proprietary formats or formats that are extremely complicated if you can at all avoid it. Go to great lengths to extract valuable data out of shitty formats: for example if you find a vlog video whose main value is in what's being said and not the video itself, rather find and store the video text transcript than the video itself (it takes much less space, can be searched, indexed, printed and backed up on paper, ...), or, as the next best thing, extract only audio and compress that so that it's just barely understandable.
|
||||
- **Careful with [compression](compression.md)**: compression can be good but again, only use it when appropriate, in most cases compression will be achieved just by saving the data in good format (and such compression will generally be even better than general purpose compression). General purpose compression (zip etc.) brings in trouble, for example it makes the data more prone to corruption (removes redundancy, increases entropy), it adds a dependency on the decompression program, it makes the files harder to inspect etc. Use it only on very large files that will get reduced a lot, for example some extremely huge dump of text data will likely benefit from being zipped.
|
||||
- **See how to do [backups](backup.md) well** and stick to that.
|
||||
- **Use and make tools, automatize**. For example if you're downloading a lot of Wikipedia articles, make a simple script that will extract just the article text, throwing away the unnecessary sidebar, script and styles. Minify all websites you download, remove image tags if you're not saving images etc. Make converting images quicker and simpler e.g. with some ImageMagick scripts. Similarly use ffmpeg to tame your videos. There already exist many web scrapers and format converters and a lot can be achieved with the basic Unix tools, just look stuff up.
|
||||
- **Organization may be good**: primarily try to name the files well, only use alphanumeric characters and underscore, limit the filename length and adopt some general naming rules. This will help preserve correct names when copying between different systems, and it will make searching more comfortable too. Some general directory structure may be cool, for example separating free and proprietary data will allow you to easily upload the free part anywhere on the Internet and so partially back it up, whereas with proprietary data you might get in trouble. Do not overdo organization though, that may lead to obsessions and wasting time, even complicating the search for something -- [keep it simple](kiss.md). Put some thought into WHY you're organizing the files certain way, don't just do it because it "looks nice", just use your fucking brain.
|
||||
- **NEVER [ENCRYPT](encryption.md)** for fucks sake, encryption is shit.
|
||||
- **NEVER [ENCRYPT](encryption.md)** for fucks sake, encryption is [shit](shit.md).
|
||||
- ...
|
||||
|
||||
## How To Do It Wrong
|
||||
|
||||
Do the opposite of what's described above, download everything just in case, in the highest resolution you can find, develop an adrenaline kick just from the feeling of right clicking a file, buy as many hard drives as you can afford and then fill them up with everything you find, then cry at least whole day if one of them gets corrupted. Then set up an expensive system that will be keeping it all backed up, that will eat up electricity and space and require you to run around it and replace broken disks constantly, clean the dust and keep updating the software that powers it. Get attached to your collection like it's your waifu.
|
||||
Do the opposite of what's described above, download everything just in case, in the highest resolution you can find, develop an adrenaline kick just from the feeling of right clicking a file, buy as many hard drives as you can afford and then fill them up with everything you find, then cry at least whole day if one of them gets corrupted. Then set up an expensive system that will be keeping it all backed up, that will eat up electricity and space and require you to run around it and replace broken disks constantly, clean the dust and keep updating the software that powers it. Encrypt it all with a STRONG password that consists of 1000 absolutely random characters, dedicate 12 hours a day to memorizing this password (you mustn't write it down anywhere) and keep changing the password every month. If you forget the password get depressed and dope yourself with antidepressants so you can keep repeating this. Get attached to your collection like it's your waifu.
|
||||
|
||||
## See Also
|
||||
|
||||
|
|
|
@ -34,3 +34,5 @@ In 2019 drummyfish has written a "manifesto" of his ideas called **Non-Competiti
|
|||
|
||||
- [autism](autism.md)
|
||||
- [schizo](schizo.md)
|
||||
- [based](based.md)
|
||||
- [loser](loser.md)
|
|
@ -66,7 +66,8 @@ This place is for suggesting programming projects that will in first place serve
|
|||
11. **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.
|
||||
12. **[steganography](steganography.md)**: Make a program that hides text strings in either pictures, sounds or another text. The program must be a nice [CLI](cli.md) utility that performs both encoding and decoding -- it will allow the user to specify the string to hide (this string can be simplified to take less space, e.g. it may be converted to all caps, special characters may be removed etc.) and the data in which to embed them. The size of the string that can be encoded will of course be limited by how much space there is in the data, so you can reject or shorten the string if that's the case. The string must NOT be hidden in metadata (i.e. exif tags, file header, after the data, ...), it must be encoded in the useful data itself, i.e. in pixels of the picture, samples of the sound or characters of the text, but it mustn't be apparent that there is something hidden in the data. Use some simple technique, for example in images and sound you can often change the least significant bits without it being noticed, in text you can insert typos, hyphens, replace some periods with semicolons etc. Get creative.
|
||||
13. **[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.
|
||||
14. **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++.
|
||||
14. **[football](football.md) simulator**: Imagine you're moving to live inawoods in a cabin that has no TV or Internet, but it will have a simple solar powered computer. You are a fan of football and like to watch the matches, so you want to write yourself a program that will simulate a game of football for you to watch. Of course it doesn't have to compete with FIFA games, it can be pretty simplified, but it must have some kind of true 2D graphics (not just ASCII art), done for example with SDL, SFML, Allegro, Xlib or anything similar. It doesn't have to be super realistic, players can be drawn even just as circles (thumbs up for some kind of stick figures), but you must implement the basic rules, including offside, players must have different attributes (name, speed, accuracy etc.), they must be able to foul etc. There must also be referees who may sometimes make a bad judgement. Of course the program must show the score, time etc., as well as some basic statistics (number of shots on the goal etc.). The program must allow some flexibility and settings, for example letting 5 very skilled players play against 10 noob players etc. -- this may be implemented with command line flags so that you don't have to implement a graphical menu. If you really hate football you may choose to implement a similar game, for example ice hockey or american football, but it really has to be comparable to this exercise, don't make it easier for yourself.
|
||||
15. **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*
|
||||
|
||||
|
|
|
@ -54,6 +54,8 @@ Around 1915 [Albert Einstein](einstein.md), a German physicist, completed his **
|
|||
|
||||
Int 1907 Lee De Forest invented a practically usable **[vacuum tube](vacuum_tube.md)**, an extremely important part usable in electric devices for example as an amplifier or a switch -- this would enable construction of radios, telephones and later even primitive computers. The invention would lead to the [electronic](electronics.md) revolution.
|
||||
|
||||
In 1923 the research of mainly Edwin Hubble leads to concluding there exist other galaxies in the Universe besides our Milky Way, vastly expanding the size of known Universe.
|
||||
|
||||
In 1924 about 50% of US households own a car.
|
||||
|
||||
October 22 1925 has seen the invention of **[transistor](transistor.md)** by Julius Lilienfeld (Austria-Hungary), a component that would replace vacuum tubes thanks to its better properties, and which would become probably the most essential part of computers. At the time the invention didn't see much attention, it would only become relevant decades later.
|
||||
|
|
2
main.md
2
main.md
|
@ -124,4 +124,4 @@ Here there are quick directions to some of the important topics; for more see th
|
|||
Feel free to ignore this. Here we'll put links to help them being promoted, to help small search engines connect the non-mainstream web and so on. Please note that we don't necessarily agree with or promote what's on these sites, we just feel it's good if they get a bump for whatever reason (e.g. being censored by mainstream, containing some useful stuff, having good web design, provoking thought, demonstrating something good, demonstrating something bad and so on). If you feel brave you can try randomly clicking something, we put quite interesting sites here. The links follow. { Let me know if you want to suggest addition or removal of some link. If some site turns 404, woke, capitalist or employs adds, I'll probably take it down. ~drummyfish }
|
||||
|
||||
[http://collapseos.org](http://collapseos.org), [https://suckless.org](https://suckless.org), [http://duskos.org](http://duskos.org), [https://wiki.osdev.org](https://wiki.osdev.org), [http://lolwut.info](http://lolwut.info), [http://cat-v.org](http://cat-v.org), [https://opengameart.org](https://opengameart.org), [https://www.gutenberg.org](https://www.gutenberg.org), [https://librivox.org](https://librivox.org), [https://libregamewiki.org](https://libregamewiki.org), [https://pantsuprophet.xyz](https://pantsuprophet.xyz), [https://duion.com](https://duion.com), [http://digdeeper.club](http://digdeeper.club), [https://www.chimpout.com](https://www.chimpout.com), [http://floodgap.com](http://floodgap.com), [https://en.metapedia.org](https://en.metapedia.org), [https://www.vidlii.com](https://www.vidlii.com), [https://wikiindex.org](https://wikiindex.org), [https://saidit.net](https://saidit.net), [https://www.newworldencyclopedia.org](https://www.newworldencyclopedia.org), [http://progopedia.com](http://progopedia.com), [http://techrights.org](http://techrights.org), [https://landsofgames.com](https://landsofgames.com), [http://www.macroevolution.net](http://www.macroevolution.net), [https://hub.darcs.net](https://hub.darcs.net), [https://repo.or.cz](https://repo.or.cz), [https://templeos.org](https://templeos.org), [http://cidoku.net](http://cidoku.net), [https://www.gnu.org](https://www.gnu.org), [https://kiwifarms.st](https://kiwifarms.st/), [https://circumlunar.space](https://circumlunar.space), [http://www.nigger.org](http://www.nigger.org), [https://forums.somethingawful.com](https://forums.somethingawful.com), [https://notabug.org](https://notabug.org), [https://gopherproxy.meulie.net](https://gopherproxy.meulie.net), [http://www.reactionary.software](http://www.reactionary.software), [https://libre.video](https://libre.video), [http://textfiles.com](http://textfiles.com), [https://esolangs.org](https://esolangs.org), [http://www.ioccc.org](http://www.ioccc.org), [https://solar.lowtechmagazine.com](https://solar.lowtechmagazine.com), [http://www.calresco.org](http://www.calresco.org), [https://encyclopediadramatica.top](https://encyclopediadramatica.top), [https://infogalactic.com](https://infogalactic.com), [https://www.icechewing.com](https://www.icechewing.com),
|
||||
[http://www.nigrapedia.com](http://www.nigrapedia.com), [https://www.rouming.cz](https://www.rouming.cz), [https://www.thevenusproject.com](https://www.thevenusproject.com), [https://doxbin.org](https://doxbin.org), [https://frogesay.neocities.org](https://frogesay.neocities.org), [https://www.debunkingskeptics.com](https://www.debunkingskeptics.com), [https://stallman.org](https://stallman.org), [https://8kun.top](https://8kun.top), [https://annas-archive.org](https://annas-archive.org), [http://icculus.org/piga](http://icculus.org/piga), [https://forum.freegamedev.net](https://forum.freegamedev.net), [https://fediverse.wiki](https://fediverse.wiki), [https://dolphinana.codeberg.page](https://dolphinana.codeberg.page), [http://www.niggermania.com](http://www.niggermania.com), [https://www.711chan.net](https://www.711chan.net), [https://watchpeopledie.tv](https://watchpeopledie.tv), [https://flarerpg.org](https://flarerpg.org), [https://copyfree.org](https://copyfree.org), [https://wiki.bibanon.org](https://wiki.bibanon.org), [https://www.chessprogramming.org](https://www.chessprogramming.org), [https://zerocontradictions.net/FAQs/race-FAQs](https://zerocontradictions.net/FAQs/race-FAQs), [http://bitreich.org](http://bitreich.org), [http://www.humanbiologicaldiversity.com](http://www.humanbiologicaldiversity.com), [https://incels.wiki](https://incels.wiki), [https://www.nearlyfreespeech.net](https://www.nearlyfreespeech.net), [https://softpanorama.org](https://softpanorama.org), [http://humanknowledge.net](http://humanknowledge.net), [https://wiki.leftypol.org](https://wiki.leftypol.org), [https://mdfs.net](https://mdfs.net), [https://bienvenidoainternet.org](https://bienvenidoainternet.org), [https://leftychan.net](https://leftychan.net), [https://leftypol.org](https://leftypol.org), [https://postbox.garden](https://postbox.garden), [https://www.lord-enki.net](https://www.lord-enki.net), [https://sanctioned-suicide.net](https://sanctioned-suicide.net), [http://www.tastyfish.cz](http://www.tastyfish.cz), [https://simplifier.neocities.org](https://simplifier.neocities.org), [http://datamath.org](http://datamath.org), [https://www.lixgame.com](https://www.lixgame.com), [https://obsoletemedia.org](https://obsoletemedia.org), [http://www.doshaven.eu](http://www.doshaven.eu), [https://omick.net](https://omick.net), [http://countercomplex.blogspot.com](http://countercomplex.blogspot.com), [https://wiki.thingsandstuff.org](https://wiki.thingsandstuff.org), [https://tinfoil-hat.net](https://tinfoil-hat.net), [https://search.marginalia.nu](https://search.marginalia.nu), [http://wiby.me](http://wiby.me), [https://57296.neocities.org](https://57296.neocities.org), [https://coom.tech](https://coom.tech), [https://rightdao.com](https://rightdao.com), [https://www.alexandria.org](https://www.alexandria.org), [https://allthetropes.org](https://allthetropes.org), [http://dunfield.classiccmp.org](http://dunfield.classiccmp.org/), [https://nanochess.org](https://nanochess.org), [http://afternoon.dynu.com](http://afternoon.dynu.com/), [https://searchlores.nickifaulk.com](https://searchlores.nickifaulk.com), [https://senseis.xmp.net](https://senseis.xmp.net/), [https://stardust.cx](https://stardust.cx), [https://planetmath.org](https://planetmath.org), [https://texteditors.org](https://texteditors.org), [https://www.trade-free.org](https://www.trade-free.org), [https://www.spi-inc.org](https://www.spi-inc.org), [http://runtimeterror.com](http://runtimeterror.com), [https://wiki.archiveteam.org](https://wiki.archiveteam.org), [https://piracy.vercel.app](https://piracy.vercel.app), [https://wiki.tuhs.org](https://wiki.tuhs.org), [http://cyber.dabamos.de](http://cyber.dabamos.de), [https://eldritchdata.neocities.org](https://eldritchdata.neocities.org), [https://bellard.org](https://bellard.org), [https://gcide.gnu.org.ua](https://gcide.gnu.org.ua), [https://2bit.neocities.org](https://2bit.neocities.org), [https://1chan.net](https://1chan.net), [http://mathlair.allfunandgames.ca](http://mathlair.allfunandgames.ca), [http://cumallover.me](http://cumallover.me), [http://www.trashrobot.org](http://www.trashrobot.org), [http://horsefucker.org](http://horsefucker.org), [https://colfax.site/books/trashrobot](https://colfax.site/books/trashrobot), [https://archive.org/details/@autism_personified127](https://archive.org/details/@autism_personified127), [https://doomwiki.org](https://doomwiki.org), [https://ludicrital.neocities.org](https://ludicrital.neocities.org), [https://jacobsm.com](https://jacobsm.com), [http://ronja.twibright.com](http://ronja.twibright.com), [https://conspiracies.win](https://conspiracies.win), [http://www.twibright.com/hw.php](http://www.twibright.com/hw.php), [http://im.snibgo.com](http://im.snibgo.com), [http://www.choosesimplicity.com](http://www.choosesimplicity.com)
|
||||
[http://www.nigrapedia.com](http://www.nigrapedia.com), [https://www.rouming.cz](https://www.rouming.cz), [https://www.thevenusproject.com](https://www.thevenusproject.com), [https://doxbin.org](https://doxbin.org), [https://frogesay.neocities.org](https://frogesay.neocities.org), [https://www.debunkingskeptics.com](https://www.debunkingskeptics.com), [https://stallman.org](https://stallman.org), [https://8kun.top](https://8kun.top), [https://annas-archive.org](https://annas-archive.org), [http://icculus.org/piga](http://icculus.org/piga), [https://forum.freegamedev.net](https://forum.freegamedev.net), [https://fediverse.wiki](https://fediverse.wiki), [https://dolphinana.codeberg.page](https://dolphinana.codeberg.page), [http://www.niggermania.com](http://www.niggermania.com), [https://www.711chan.net](https://www.711chan.net), [https://watchpeopledie.tv](https://watchpeopledie.tv), [https://flarerpg.org](https://flarerpg.org), [https://copyfree.org](https://copyfree.org), [https://wiki.bibanon.org](https://wiki.bibanon.org), [https://www.chessprogramming.org](https://www.chessprogramming.org), [https://zerocontradictions.net/FAQs/race-FAQs](https://zerocontradictions.net/FAQs/race-FAQs), [http://bitreich.org](http://bitreich.org), [http://www.humanbiologicaldiversity.com](http://www.humanbiologicaldiversity.com), [https://incels.wiki](https://incels.wiki), [https://www.nearlyfreespeech.net](https://www.nearlyfreespeech.net), [https://softpanorama.org](https://softpanorama.org), [http://humanknowledge.net](http://humanknowledge.net), [https://wiki.leftypol.org](https://wiki.leftypol.org), [https://mdfs.net](https://mdfs.net), [https://bienvenidoainternet.org](https://bienvenidoainternet.org), [https://leftychan.net](https://leftychan.net), [https://leftypol.org](https://leftypol.org), [https://postbox.garden](https://postbox.garden), [https://www.lord-enki.net](https://www.lord-enki.net), [https://sanctioned-suicide.net](https://sanctioned-suicide.net), [http://www.tastyfish.cz](http://www.tastyfish.cz), [https://simplifier.neocities.org](https://simplifier.neocities.org), [http://datamath.org](http://datamath.org), [http://www.armory.com/~crisper/Scorch/index.html](http://www.armory.com/~crisper/Scorch/index.html), [https://www.lixgame.com](https://www.lixgame.com), [https://obsoletemedia.org](https://obsoletemedia.org), [http://www.doshaven.eu](http://www.doshaven.eu), [https://omick.net](https://omick.net), [http://countercomplex.blogspot.com](http://countercomplex.blogspot.com), [https://wiki.thingsandstuff.org](https://wiki.thingsandstuff.org), [https://tinfoil-hat.net](https://tinfoil-hat.net), [https://search.marginalia.nu](https://search.marginalia.nu), [http://wiby.me](http://wiby.me), [https://57296.neocities.org](https://57296.neocities.org), [https://coom.tech](https://coom.tech), [https://rightdao.com](https://rightdao.com), [https://www.alexandria.org](https://www.alexandria.org), [https://allthetropes.org](https://allthetropes.org), [http://dunfield.classiccmp.org](http://dunfield.classiccmp.org/), [https://nanochess.org](https://nanochess.org), [http://afternoon.dynu.com](http://afternoon.dynu.com/), [https://searchlores.nickifaulk.com](https://searchlores.nickifaulk.com), [https://senseis.xmp.net](https://senseis.xmp.net/), [https://stardust.cx](https://stardust.cx), [https://planetmath.org](https://planetmath.org), [https://texteditors.org](https://texteditors.org), [https://www.trade-free.org](https://www.trade-free.org), [https://www.spi-inc.org](https://www.spi-inc.org), [http://runtimeterror.com](http://runtimeterror.com), [https://wiki.archiveteam.org](https://wiki.archiveteam.org), [https://piracy.vercel.app](https://piracy.vercel.app), [https://wiki.tuhs.org](https://wiki.tuhs.org), [http://cyber.dabamos.de](http://cyber.dabamos.de), [https://eldritchdata.neocities.org](https://eldritchdata.neocities.org), [https://bellard.org](https://bellard.org), [https://gcide.gnu.org.ua](https://gcide.gnu.org.ua), [https://2bit.neocities.org](https://2bit.neocities.org), [https://1chan.net](https://1chan.net), [http://mathlair.allfunandgames.ca](http://mathlair.allfunandgames.ca), [http://cumallover.me](http://cumallover.me), [http://www.trashrobot.org](http://www.trashrobot.org), [http://horsefucker.org](http://horsefucker.org), [https://colfax.site/books/trashrobot](https://colfax.site/books/trashrobot), [https://archive.org/details/@autism_personified127](https://archive.org/details/@autism_personified127), [https://doomwiki.org](https://doomwiki.org), [https://ludicrital.neocities.org](https://ludicrital.neocities.org), [https://jacobsm.com](https://jacobsm.com), [http://ronja.twibright.com](http://ronja.twibright.com), [https://conspiracies.win](https://conspiracies.win), [http://www.twibright.com/hw.php](http://www.twibright.com/hw.php), [http://im.snibgo.com](http://im.snibgo.com), [http://www.choosesimplicity.com](http://www.choosesimplicity.com)
|
319
oop.md
319
oop.md
|
@ -65,3 +65,322 @@ Once computers start fundamentally working on a different paradigm, e.g. functio
|
|||
## History
|
||||
|
||||
TODO
|
||||
|
||||
## Code Example
|
||||
|
||||
OK so let's dive into this for the sake of demonstration, here is some kind of [C++](cpp.md) code along the lines of a typical OOP textbook example:
|
||||
|
||||
```
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Animal // abstract class
|
||||
{
|
||||
protected:
|
||||
static int animalsTotal;
|
||||
const char *name;
|
||||
|
||||
public:
|
||||
Animal(const char *name);
|
||||
const char *getName();
|
||||
virtual void makeSound() = 0;
|
||||
static int getAnimalsTotal();
|
||||
};
|
||||
|
||||
int Animal::animalsTotal = 0;
|
||||
|
||||
int Animal::getAnimalsTotal()
|
||||
{
|
||||
return animalsTotal;
|
||||
}
|
||||
|
||||
class Cat: public Animal // cat is a subclass of animal
|
||||
{
|
||||
protected:
|
||||
int treesClimbed;
|
||||
|
||||
public:
|
||||
Cat(const char *name);
|
||||
virtual void makeSound();
|
||||
void climbTree();
|
||||
};
|
||||
|
||||
class Dog: public Animal // dog is a subclass of animal
|
||||
{
|
||||
protected:
|
||||
int ballFetched;
|
||||
|
||||
public:
|
||||
Dog(const char *name);
|
||||
virtual void makeSound();
|
||||
void fetch();
|
||||
};
|
||||
|
||||
Animal::Animal(const char *name)
|
||||
{
|
||||
this->name = name;
|
||||
animalsTotal++;
|
||||
}
|
||||
|
||||
const char *Animal::getName()
|
||||
{
|
||||
return this->name;
|
||||
}
|
||||
|
||||
Cat::Cat(const char *name): Animal(name)
|
||||
{
|
||||
this->treesClimbed = 0;
|
||||
}
|
||||
|
||||
Dog::Dog(const char *name): Animal(name)
|
||||
{
|
||||
this->ballFetched = 0;
|
||||
}
|
||||
|
||||
void Cat::climbTree()
|
||||
{
|
||||
this->treesClimbed++;
|
||||
}
|
||||
|
||||
void Dog::fetch()
|
||||
{
|
||||
this->ballFetched++;
|
||||
}
|
||||
|
||||
void Cat::makeSound()
|
||||
{
|
||||
cout << "meow";
|
||||
}
|
||||
|
||||
void Dog::makeSound()
|
||||
{
|
||||
cout << "woof";
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
#define ANIMALS 5
|
||||
|
||||
Animal *animals[ANIMALS]; // pointers to animals
|
||||
|
||||
animals[0] = new Cat("Mittens");
|
||||
animals[1] = new Dog("Doge");
|
||||
animals[2] = new Cat("Mr. Jinx");
|
||||
animals[3] = new Cat("Toby");
|
||||
animals[4] = new Dog("Hachiko");
|
||||
|
||||
cout << "There are " << Animal::getAnimalsTotal() << " animals in total:" << endl;
|
||||
|
||||
for (int i = 0; i < ANIMALS; ++i)
|
||||
{
|
||||
cout << animals[i]->getName() << ": ";
|
||||
animals[i]->makeSound();
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
for (int i = 0; i < ANIMALS; ++i)
|
||||
delete animals[i];
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
It should write out:
|
||||
|
||||
```
|
||||
There are 5 animals in total:
|
||||
Mittens: meow
|
||||
Doge: woof
|
||||
Mr. Jinx: meow
|
||||
Toby: meow
|
||||
Hachiko: woof
|
||||
```
|
||||
|
||||
Now let's quickly go over the code (it's really a super quick summary, if you don't understand it grab some book on OOP).
|
||||
|
||||
The code defines 3 classes. The first class, `Animal`, represents an animal, it has an attribute called `name` that records the animal's given name. There is also a static attribute called `animalsTotal` -- static attribute means it belongs to the class itself, NOT the objects, i.e. it's basically a global variable that's just associated with the class. The class also has methods, such as `getName` that simply returns the animal's name or the `getAnimalsTotal` method -- this one is however a static method, meaning it belongs to the class and can be called without any object at hand. The `Animal` class is abstract, which means we cannot make objects of this class directly, it only serves as a base class for further subclasses. In C++ abstract class is any class that has at least one pure virtual methods, here the method `makeSound` -- such method is marked with `= 0` after it, which means it doesn't have an implementation (it doesn't have to be implemented as there won't be any objects of this class on which the method could be called). Then there are two subclasses of `Animal`: `Cat` and `Dog`. These are no longer abstract, i.e. we will be able to make cat and dog objects; these subclasses inherit the attributes of the parent class (the `name` attribute, i.e. cats and dogs will have their names) and methods, such as `getName` -- this method is a "normal" method, it behaves the same for all animal classes, it just returns the name, there's nothing special about it. However note the method `makeSound` -- this is a virtual method, meaning it will behave differently for each specific class, i.e. cat makes a different sound than dog -- so each of these classes has to implement its version of this method. Notice the methods that have the same name as the class (e.g. `Cat::Cat` or `Dog::Dog`) -- these are called constructors and are automatically called every time an object of the class is created. In the `main` function we then create an array of 5 `Animal` pointers, i.e. pointers that can point to any animal subclass; then we create some cats and dogs and let the array point to them. Then we iterate over the array and call each object's `makeSound` method -- this demonstrates so called [polymorphism](polymorphism.md): we don't care what the object is (if it's a cat or dog), we always call the same `makeSound` method and the language makes it so that the correct version for the object is called. Polymorphism is kind of one of the highlights of OOP, so it's good to stress it here -- it is connected to the virtual methods.
|
||||
|
||||
Now let's see how we could emulate this OOP code in a non-OOP language, just for the sake of it -- we'll do it in C (note that we are really trying to closely emulate the code above, NOT solve the problem the way in which it would normally be solved without OOP). It may look something like this (it can potentially be done in different ways, of course):
|
||||
|
||||
```
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int _treesClimbed;
|
||||
} Cat;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int _ballsFetched;
|
||||
} Dog;
|
||||
|
||||
typedef struct _Animal
|
||||
{
|
||||
const char *_name;
|
||||
void (*makeSound)(struct _Animal *);
|
||||
|
||||
union
|
||||
{
|
||||
Cat cat;
|
||||
Dog dog;
|
||||
} subclass;
|
||||
} Animal;
|
||||
|
||||
int _AnimalAnimalsTotal;
|
||||
|
||||
void AnimalNew(Animal *this, const char *name)
|
||||
{
|
||||
this->_name = name;
|
||||
_AnimalAnimalsTotal++;
|
||||
}
|
||||
|
||||
int AnimalGetAnimalsTotal(void)
|
||||
{
|
||||
return _AnimalAnimalsTotal;
|
||||
}
|
||||
|
||||
const char *AnimalGetName(Animal *this)
|
||||
{
|
||||
return this->_name;
|
||||
}
|
||||
|
||||
void CatMakeSound(Animal *this)
|
||||
{
|
||||
printf("meow");
|
||||
}
|
||||
|
||||
void DogMakeSound(Animal *this)
|
||||
{
|
||||
printf("woof");
|
||||
}
|
||||
|
||||
void CatNew(Animal *this, const char *name)
|
||||
{
|
||||
AnimalNew(this,name);
|
||||
this->subclass.cat._treesClimbed = 0;
|
||||
this->makeSound = CatMakeSound;
|
||||
}
|
||||
|
||||
void DogNew(Animal *this, const char *name)
|
||||
{
|
||||
AnimalNew(this,name);
|
||||
this->subclass.dog._ballsFetched = 0;
|
||||
this->makeSound = DogMakeSound;
|
||||
}
|
||||
|
||||
void CatClimbTree(Animal *this)
|
||||
{
|
||||
this->subclass.cat._treesClimbed++;
|
||||
}
|
||||
|
||||
void DogFetch(Animal *this)
|
||||
{
|
||||
this->subclass.dog._ballsFetched++;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
#define ANIMALS 5
|
||||
|
||||
Animal *animals[ANIMALS];
|
||||
|
||||
animals[0] = malloc(sizeof(Animal));
|
||||
CatNew(animals[0],"Mittens");
|
||||
|
||||
animals[1] = malloc(sizeof(Animal));
|
||||
DogNew(animals[1],"Doge");
|
||||
|
||||
animals[2] = malloc(sizeof(Animal));
|
||||
CatNew(animals[2],"Mr. Jinx");
|
||||
|
||||
animals[3] = malloc(sizeof(Animal));
|
||||
CatNew(animals[3],"Toby");
|
||||
|
||||
animals[4] = malloc(sizeof(Animal));
|
||||
DogNew(animals[4],"Hachiko");
|
||||
|
||||
printf("There are %d animals in total:\n",AnimalGetAnimalsTotal());
|
||||
|
||||
for (int i = 0; i < ANIMALS; ++i)
|
||||
{
|
||||
printf("%s: ",AnimalGetName(animals[i]));
|
||||
animals[i]->makeSound(animals[i]);
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
for (int i = 0; i < ANIMALS; ++i)
|
||||
free(animals[i]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
Here we implement the virtual methods with function pointers. We use normal functions instead of class methods and simply have their names prefixed with the class name. Inheritance is made with an union holding the subclass stuff. Private things are prefixed with `_` -- we rely on people respecting this and not accessing these things directly.
|
||||
|
||||
Now let's see how we'd solve the same problem in C in a natural way:
|
||||
|
||||
```
|
||||
#include <stdio.h>
|
||||
|
||||
#define ANIMAL_CAT 0
|
||||
#define ANIMAL_DOG 1
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type;
|
||||
const char *name;
|
||||
} Animal;
|
||||
|
||||
int animalsTotal = 0;
|
||||
|
||||
Animal animalNew(int type, const char *name)
|
||||
{
|
||||
animalsTotal++;
|
||||
|
||||
Animal a;
|
||||
|
||||
a.type = type;
|
||||
a.name = name;
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
void animalMakeSound(Animal *animal)
|
||||
{
|
||||
switch (animal->type)
|
||||
{
|
||||
case ANIMAL_CAT: printf("meow"); break;
|
||||
case ANIMAL_DOG: printf("woof"); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
#define ANIMALS 5
|
||||
|
||||
Animal animals[ANIMALS];
|
||||
|
||||
animals[0] = animalNew(ANIMAL_CAT,"Mittens");
|
||||
animals[1] = animalNew(ANIMAL_DOG,"Doge");
|
||||
animals[2] = animalNew(ANIMAL_CAT,"Mr. Jinx");
|
||||
animals[3] = animalNew(ANIMAL_CAT,"Toby");
|
||||
animals[4] = animalNew(ANIMAL_DOG,"Hachiko");
|
||||
|
||||
printf("There are %d animals in total:\n",animalsTotal);
|
||||
|
||||
for (int i = 0; i < ANIMALS; ++i)
|
||||
{
|
||||
printf("%s: ",animals[i].name);
|
||||
animalMakeSound(&(animals[i]));
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
Notice the lack of bullshit. OOPers will argue something about scalability or something, but that's argument of [bloat](bloat.md) so it's invalid -- basically they tell you "just wait till you have 10 million lines of code, then it becomes elegant", but of course, such code is already bad only by its size -- code of such size should never be written. They will also likely invent some highly artificial example tailored to suit OOP which you will however never meet in practice -- you can safely ignore these.
|
|
@ -16,7 +16,7 @@ Pedophilia (also paedophilia or paedosexuality) is a sexual orientation towards
|
|||
|
||||
Unlike for example pure [homosexuality](gay.md), pedophilia is completely natural and normal -- many studies confirm this (some links e.g. [here](https://incels.wiki/w/Scientific_Blackpill#It_is_normal_for_healthy_men_to_find_pubescent_.26_prepubescent_females_sexually_arousing)) but if you're not heavily brainwashed you don't even need any studies (it's really like wanting to see studies on whether men want to have sex with women at all): wanting to have sex with young, sexually mature girls who are able to reproduce is, despite it being forbidden by law, as normal as wanting to have sex with a woman that is married to someone else, despite it being culturally forbidden, or wanting to punch someone who is really annoying, despite it being forbidden by law. No one can question that pedophilia is natural, the only discussion can be about it being harmful and here again it has to be said it is NOT any more harmful than any other orientation. Can it harm someone? Yes, but so can any other form of sex or any human interaction whatsoever, that's not a reason to ban it. Nevertheless, pedophilia is nowadays wrongfully, mostly for political and historical reasons, labeled a "disorder" (just as homosexuality used to be not a long time ago). It is the forbidden, tabooed, censored and bullied sexual orientation of the [21st century](21st_century.md), even though all healthy people are pedophiles -- just don't pretend you've never seen a [jailbait](jailbait.md) you found sexy, people start being sexually attractive exactly as soon as they become able to reproduce; furthermore when you've gone without sex long enough and get extremely horny, you get turned on by anything that literally has some kind of hole in it -- this is completely normal. Basically everyone has some kind of weird fetish he hides from the world, there are people who literally fuck cars in their exhausts, people who like to eat shit, dress in diapers and hang from ceiling by their nipples, people who have sexual relationships with virtual characters etc. -- this is all considered normal, but somehow once you get an erection seeing a hot 17 year old girl, you're a demon that needs to be locked up and cured, if not executed right away, just for a thought present in your mind.
|
||||
|
||||
Even though one cannot choose this orientation and even though pedophiles don't hurt anyone any more than for example gay people do, they are highly oppressed and tortured. Despite what the propaganda says, a **pedophile is not automatically a rapist** of children (a pedophile will probably choose to never actually even have sex with a child) any more than a gay man is automatically a rapist of people of the same sex, and watching [child porn](child_porn.md) won't make you want to rape children any more than watching gay porn will make you want to rape people of the same sex. Nevertheless the society, especially the fascists from the [LGBT](lgbt.md) movement who ought to know better than anyone else what it is like to be oppressed only because of private sexual desires, actively hunt pedophiles, [bully](cancel_culture.md) them and lynch them on the Internet and in the [real life](irl.md) -- this is done by both both civilians and the state (I shit you not, in [Murica](usa.md) there are whole police teams of pink haired lesbians who pretend to be little girls on the Internet and tease guys so that they can lock them up and get a medal for it). LGBT activists proclaim that a "child can't consent" but at the same time tell you that "a prepubescent child can make a decision about changing its sex" (yes, it's happening, even if parent's agreement is also needed, would parents also be able to allow a child to have sex if it wishes to?). There is a literal **witch hunt** going on against completely innocent people, just like in the middle ages. Innocent people are tortured, castrated, cancelled, rid of their careers, imprisoned, beaten, rid of their friends and families and pushed to suicide sometimes only for having certain files on their computers or saying something inappropriate online (not that any of the above is ever justified to do to anyone, even the worst criminal).
|
||||
Even though one cannot choose this orientation and even though pedophiles don't hurt anyone any more than for example gay people do, they are highly oppressed and tortured. Despite what the propaganda says, a **pedophile is not automatically a rapist** of children (a pedophile will probably choose to never actually even have sex with a child) any more than a gay man is automatically a rapist of people of the same sex, and watching [child porn](child_porn.md) won't make you want to rape children any more than watching gay porn will make you want to rape people of the same sex. Nevertheless the society, especially the fascists from the [LGBT](lgbt.md) movement who ought to know better than anyone else what it is like to be oppressed only because of private sexual desires, actively hunt pedophiles, [bully](cancel_culture.md) them and lynch them on the Internet and in the [real life](irl.md) -- this is done by both both civilians and the state (I shit you not, in [Murica](usa.md) there are whole police teams of pink haired lesbians who pretend to be little girls on the Internet and tease guys so that they can lock them up and get a medal for it). LGBT activists proclaim that a child is completely asexual, that it can't consent to sex, but at the same time they'll tell you that a child can feel sexual identity and that it can make the decision to change its sex with surgeries and drugs (yes, it's happening, even if parent's agreement is also needed, would parents also be able to allow a child to have sex if it wishes to?). Isn't it hilarious? Yes, it is. There is a literal **witch hunt** going on against completely innocent people, just like in the middle ages. Innocent people are tortured, castrated, cancelled, rid of their careers, imprisoned, beaten, rid of their friends and families and pushed to suicide sometimes only for having certain files on their computers or saying something inappropriate online (not that any of the above is ever justified to do to anyone, even the worst criminal).
|
||||
|
||||
In 15th century an unofficial version of the Bible, the Wycliffe's translation, was officially declared a heretic work and its possession was forbidden under penalty of prison, torture and excommunication. That's what we still do today, just with works violating a different kind of orthodoxy. We are literally still living in the middle ages.
|
||||
|
||||
|
|
3432
random_page.md
3432
random_page.md
File diff suppressed because it is too large
Load diff
|
@ -63,3 +63,5 @@ We should remember that this shortcut in fact means we oppose the evil behind it
|
|||
"WE ALSO DISLIKE THIS"
|
||||
"WE ARE WITH YOU!"
|
||||
```
|
||||
|
||||
This is how capitalism will be able to sustain itself no matter what -- even if people slowly realized capitalism is bad, it will just be renamed to something else like "Progressive Lesbian Smart Communist [Modern](modern.md) Technologianism" -- it will be exactly the same as capitalism but people will accept it because it won't have the letters C, A, P, I, T, A, L, I, S and M in this exact succession in it. China for example has already done this by just renaming capitalism to "communism".
|
|
@ -50,6 +50,14 @@ Some further examples of soyence:
|
|||
- "[pedophilia](pedophilia.md) is a mental illness while pure [homosexuality](gay.md) is not"
|
||||
- ...
|
||||
|
||||
Here are a few tips on how to spot soyence:
|
||||
|
||||
- Is trust involved? Things like authority of publishers, censorship, reviews etc.? If so, it is by definition NOT science.
|
||||
- Is emotion involved? Is someone putting energy into promoting it? If yes, it's probably a preparation of business/politics grounds, not science.
|
||||
- Is money involved? Is any form of [capital](capital.md) (money, attention, power, ...) in play? Is there any form of business connected? If so, it is business, not science.
|
||||
- Is politics involved? Will the results help some currently active political group? It's highly suspicious, it almost definitely can't be trusted, it's most likely not science.
|
||||
- ...
|
||||
|
||||
## See Also
|
||||
|
||||
- [pseudoskepticism](pseudoskepticism.md)
|
||||
|
|
|
@ -34,6 +34,8 @@ Here are some potentially entertaining ways of trolling (they'll be written from
|
|||
|
||||
## See Also
|
||||
|
||||
- [drama](drama.md)
|
||||
- [fun](fun.md)
|
||||
- [shitpost](shitpost.md)
|
||||
- [lulz](lulz.md)
|
||||
- [Encyclopedia Dramatica](dramatica.md)
|
File diff suppressed because one or more lines are too long
154
wiki_stats.md
154
wiki_stats.md
|
@ -3,17 +3,17 @@
|
|||
This is an autogenerated article holding stats about this wiki.
|
||||
|
||||
- number of articles: 580
|
||||
- number of commits: 816
|
||||
- total size of all texts in bytes: 3892299
|
||||
- total number of lines of article texts: 29552
|
||||
- number of commits: 817
|
||||
- total size of all texts in bytes: 3906285
|
||||
- total number of lines of article texts: 29646
|
||||
- number of script lines: 262
|
||||
- occurences of the word "person": 7
|
||||
- occurences of the word "nigger": 86
|
||||
- occurences of the word "nigger": 88
|
||||
|
||||
longest articles:
|
||||
|
||||
- [c_tutorial](c_tutorial.md): 124K
|
||||
- [exercises](exercises.md): 96K
|
||||
- [exercises](exercises.md): 100K
|
||||
- [capitalism](capitalism.md): 68K
|
||||
- [how_to](how_to.md): 68K
|
||||
- [less_retarded_society](less_retarded_society.md): 60K
|
||||
|
@ -21,7 +21,7 @@ longest articles:
|
|||
- [number](number.md): 52K
|
||||
- [faq](faq.md): 48K
|
||||
- [programming_language](programming_language.md): 44K
|
||||
- [c](c.md): 40K
|
||||
- [c](c.md): 44K
|
||||
- [3d_model](3d_model.md): 40K
|
||||
- [bloat](bloat.md): 36K
|
||||
- [internet](internet.md): 36K
|
||||
|
@ -35,60 +35,91 @@ longest articles:
|
|||
|
||||
top 50 5+ letter words:
|
||||
|
||||
- which (2227)
|
||||
- there (1692)
|
||||
- people (1478)
|
||||
- example (1259)
|
||||
- other (1207)
|
||||
- number (1125)
|
||||
- which (2233)
|
||||
- there (1696)
|
||||
- people (1482)
|
||||
- example (1271)
|
||||
- other (1213)
|
||||
- number (1128)
|
||||
- software (1078)
|
||||
- about (1017)
|
||||
- about (1021)
|
||||
- program (886)
|
||||
- their (829)
|
||||
- because (798)
|
||||
- would (785)
|
||||
- called (761)
|
||||
- being (750)
|
||||
- language (742)
|
||||
- their (833)
|
||||
- because (801)
|
||||
- would (788)
|
||||
- called (762)
|
||||
- being (751)
|
||||
- language (744)
|
||||
- numbers (737)
|
||||
- computer (732)
|
||||
- things (710)
|
||||
- simple (709)
|
||||
- something (707)
|
||||
- without (670)
|
||||
- something (713)
|
||||
- things (712)
|
||||
- simple (711)
|
||||
- without (673)
|
||||
- function (661)
|
||||
- programming (657)
|
||||
- these (624)
|
||||
- however (622)
|
||||
- different (621)
|
||||
- world (585)
|
||||
- should (567)
|
||||
- system (566)
|
||||
- games (558)
|
||||
- these (626)
|
||||
- however (623)
|
||||
- different (623)
|
||||
- world (586)
|
||||
- should (569)
|
||||
- system (567)
|
||||
- games (559)
|
||||
- doesn (551)
|
||||
- point (546)
|
||||
- society (541)
|
||||
- though (520)
|
||||
- while (515)
|
||||
- point (548)
|
||||
- society (543)
|
||||
- though (521)
|
||||
- while (518)
|
||||
- drummyfish (510)
|
||||
- memory (508)
|
||||
- drummyfish (506)
|
||||
- using (501)
|
||||
- still (490)
|
||||
- possible (487)
|
||||
- still (494)
|
||||
- possible (491)
|
||||
- course (484)
|
||||
- technology (483)
|
||||
- similar (483)
|
||||
- course (480)
|
||||
- technology (479)
|
||||
- simply (478)
|
||||
- https (453)
|
||||
- value (441)
|
||||
- simply (482)
|
||||
- https (457)
|
||||
- value (442)
|
||||
- always (440)
|
||||
- really (438)
|
||||
- always (434)
|
||||
- extremely (429)
|
||||
- actually (424)
|
||||
- extremely (430)
|
||||
- actually (425)
|
||||
|
||||
latest changes:
|
||||
|
||||
```
|
||||
Date: Fri Jun 7 16:46:05 2024 +0200
|
||||
4chan.md
|
||||
anarch.md
|
||||
books.md
|
||||
c.md
|
||||
c_tutorial.md
|
||||
capitalism.md
|
||||
css.md
|
||||
data_hoarding.md
|
||||
disease.md
|
||||
egoism.md
|
||||
exercises.md
|
||||
free_speech.md
|
||||
human_language.md
|
||||
interesting.md
|
||||
internet.md
|
||||
lgbt.md
|
||||
life.md
|
||||
lrs_dictionary.md
|
||||
main.md
|
||||
nigger.md
|
||||
oop.md
|
||||
pedophilia.md
|
||||
phd.md
|
||||
random_page.md
|
||||
shortcut_thinking.md
|
||||
soyence.md
|
||||
trolling.md
|
||||
wiki_pages.md
|
||||
wiki_stats.md
|
||||
woman.md
|
||||
Date: Tue Jun 4 21:22:45 2024 +0200
|
||||
21st_century.md
|
||||
books.md
|
||||
|
@ -97,31 +128,6 @@ Date: Tue Jun 4 21:22:45 2024 +0200
|
|||
main.md
|
||||
minimalism.md
|
||||
privacy.md
|
||||
random_page.md
|
||||
soyence.md
|
||||
wiki_pages.md
|
||||
wiki_stats.md
|
||||
Date: Mon Jun 3 21:20:36 2024 +0200
|
||||
bloat.md
|
||||
copyright.md
|
||||
doom.md
|
||||
fight_culture.md
|
||||
game.md
|
||||
low_poly.md
|
||||
random_page.md
|
||||
trolling.md
|
||||
wiki_pages.md
|
||||
wiki_stats.md
|
||||
www.md
|
||||
Date: Sun Jun 2 12:40:38 2024 +0200
|
||||
3d_model.md
|
||||
acronym.md
|
||||
exercises.md
|
||||
game.md
|
||||
modern.md
|
||||
noise.md
|
||||
random_page.md
|
||||
wiki_pages.md
|
||||
```
|
||||
|
||||
most wanted pages:
|
||||
|
@ -150,9 +156,9 @@ most wanted pages:
|
|||
most popular and lonely pages:
|
||||
|
||||
- [lrs](lrs.md) (281)
|
||||
- [capitalism](capitalism.md) (216)
|
||||
- [capitalism](capitalism.md) (219)
|
||||
- [c](c.md) (213)
|
||||
- [bloat](bloat.md) (201)
|
||||
- [bloat](bloat.md) (202)
|
||||
- [free_software](free_software.md) (165)
|
||||
- [game](game.md) (140)
|
||||
- [suckless](suckless.md) (135)
|
||||
|
@ -168,16 +174,16 @@ most popular and lonely pages:
|
|||
- [fun](fun.md) (78)
|
||||
- [math](math.md) (76)
|
||||
- [less_retarded_society](less_retarded_society.md) (76)
|
||||
- [censorship](censorship.md) (76)
|
||||
- [public_domain](public_domain.md) (75)
|
||||
- [foss](foss.md) (75)
|
||||
- [censorship](censorship.md) (75)
|
||||
- [hacking](hacking.md) (74)
|
||||
- [fight_culture](fight_culture.md) (74)
|
||||
- [bullshit](bullshit.md) (73)
|
||||
- [programming_language](programming_language.md) (71)
|
||||
- [art](art.md) (71)
|
||||
- [shit](shit.md) (69)
|
||||
- [float](float.md) (67)
|
||||
- [float](float.md) (68)
|
||||
- [chess](chess.md) (67)
|
||||
- ...
|
||||
- [wiki_pages](wiki_pages.md) (4)
|
||||
|
|
Loading…
Reference in a new issue