This commit is contained in:
Miloslav Ciz 2024-07-09 15:45:39 +02:00
parent 201edec81b
commit 73fc5424ca
19 changed files with 1809 additions and 1767 deletions

2
art.md
View file

@ -6,6 +6,8 @@ Art is an endeavor that seeks discovery and creation of [beauty](beauty.md) and
**Good art always needs time**, usually a lot of time, and you cannot predict how much time it will need, **art cannot be made on schedule** or as a product. By definition creating true art is never a routine (though it requires well trained skills in routine tasks), it always invents something new, something no one has done before (otherwise it's just copying that doesn't need an artist) -- in this sense the effort is the same as that of research and science or exploring previously unwalked land, you can absolutely never know how long it will take you to invent something, what complications you will encounter or what you will find in an unknown land. You simply do it, fail many times, mostly find nothing, you repeat and repeat until you find the good thing. For this art also requires a lot of effort -- yes, there are cases of masterpieces that came to be very casually, but those are as rare as someone finding a treasure by accident. Art is to a great degree a matter of chance, trial and error, the artist himself doesn't understand his own creation when he makes it, he is only skilled at searching and spotting the good, but in the end he is just someone who invests a lot of time into searching, many times blindly. **Good art always needs time**, usually a lot of time, and you cannot predict how much time it will need, **art cannot be made on schedule** or as a product. By definition creating true art is never a routine (though it requires well trained skills in routine tasks), it always invents something new, something no one has done before (otherwise it's just copying that doesn't need an artist) -- in this sense the effort is the same as that of research and science or exploring previously unwalked land, you can absolutely never know how long it will take you to invent something, what complications you will encounter or what you will find in an unknown land. You simply do it, fail many times, mostly find nothing, you repeat and repeat until you find the good thing. For this art also requires a lot of effort -- yes, there are cases of masterpieces that came to be very casually, but those are as rare as someone finding a treasure by accident. Art is to a great degree a matter of chance, trial and error, the artist himself doesn't understand his own creation when he makes it, he is only skilled at searching and spotting the good, but in the end he is just someone who invests a lot of time into searching, many times blindly.
**Art is discovered**, not made. The author of art is merely a discovered of some beautiful pattern of nature, he may not even fully comprehend or understand that which he discovered, he must in no way be its owned or arbiter (as capitalism wants to make it with bullshit such as [copyright](copyright.md)). Author has no higher authority in interpretation of his art than anyone else.
Art, like a [woman](woman.md), is beautiful and just like a woman it too often sells itself and becomes a whore, it is too difficult to find sincere, pure art like it is difficult to find a sincere love of a woman. Art, like a [woman](woman.md), is beautiful and just like a woman it too often sells itself and becomes a whore, it is too difficult to find sincere, pure art like it is difficult to find a sincere love of a woman.
## See Also ## See Also

View file

@ -1,6 +1,8 @@
# Assembly # Assembly
Assembly (also ASM) is, for any given hardware computing platform ([ISA](isa.md), basically a [CPU](cpu.md) architecture), the lowest level [programming language](programming_language.md) that expresses typically a linear, unstructured (i.e. without nesting blocks of code) sequence of CPU instructions -- it maps (mostly) 1:1 to [machine code](machine_code.md) (the actual [binary](binary.md) CPU instructions) and basically only differs from the actual machine code by utilizing a more human readable form (it gives human friendly nicknames, or mnemonics, to different combinations of 1s and 0s). Assembly is converted by [assembler](assembler.md) into the the machine code, something akin a computer equivalent of the "[DNA](dna.md)", the lowest level instructions for the computer. Assembly is similar to [bytecode](bytecode.md), but bytecode is meant to be [interpreted](interpreter.md) or used as an intermediate representation in [compilers](compiler.md) while assembly represents actual native code run by hardware. In ancient times when there were no higher level languages (like [C](c.md) or [Fortran](fortran.md)) assembly was used to write computer programs -- nowadays most programmers no longer write in assembly (majority of [zoomer](zoomer.md) "[coders](coding.md)" probably never even touch anything close to it) because it's hard (takes a long time) and not [portable](portability.md), however programs written in assembly are known to be extremely fast as the programmer has absolute control over every single instruction (of course that is not to say you can't fuck up and write a slow program in assembly). Assembly (also ASM) is, for any given [hardware](hw.md) computing platform ([ISA](isa.md), basically a [CPU](cpu.md) architecture), the lowest level [programming language](programming_language.md) that expresses typically a linear, unstructured (i.e. without nesting blocks of code) sequence of CPU instructions -- it maps (mostly) 1:1 to [machine code](machine_code.md) (the actual [binary](binary.md) CPU instructions) and basically only differs from the actual machine code by utilizing a more human readable form (it gives human friendly nicknames, or mnemonics, to different combinations of 1s and 0s). Assembly is converted by [assembler](assembler.md) into the the machine code, something akin a computer equivalent of the "[DNA](dna.md)", the lowest level instructions for the computer. Assembly is similar to [bytecode](bytecode.md), but bytecode is meant to be [interpreted](interpreter.md) or used as an intermediate representation in [compilers](compiler.md) while assembly represents actual native code run by hardware. In ancient times when there were no higher level languages (like [C](c.md) or [Fortran](fortran.md)) assembly was used to write computer programs -- nowadays most programmers no longer write in assembly (majority of [zoomer](zoomer.md) "[coders](coding.md)" probably never even touch anything close to it) because it's hard (takes a long time) and not [portable](portability.md), however programs written in assembly are known to be extremely fast as the programmer has absolute control over every single instruction (of course that is not to say you can't fuck up and write a slow program in assembly).
{ see this meme lol :D http://lolwut.info/images/4chan-g1.png ~drummyfish }
**Assembly is NOT a single language**, it differs for every architecture, i.e. every model of CPU has potentially different architecture, understands a different machine code and hence has a different assembly (though there are some standardized families of assembly like x86 that work on wide range of CPUs); therefore **assembly is not [portable](portability.md)** (i.e. the program won't generally work on a different type of CPU or under a different [OS](os.md))! And even the same kind of assembly language may have several different [syntax](syntax.md) formats that also create basically slightly different languages which differ e.g. in comment style, order of writing arguments and even instruction abbreviations (e.g. x86 can be written in [Intel](intel.md) or [AT&T](at_and_t.md) syntax). For the reason of non-portability (and also for the fact that "assembly is hard") you mostly shouldn't write your programs directly in assembly but rather in a bit higher level language such as [C](c.md) (which can be compiled to any CPU's assembly). However you should know at least the very basics of programming in assembly as a good programmer will come in contact with it sometimes, for example during hardcore [optimization](optimization.md) (many languages offer an option to embed inline assembly in specific places), debugging, reverse engineering, when writing a C compiler for a completely new platform or even when designing one's own new platform (you'll probably want to make your compiler generate native assembly, so you have to understand it). **You should write at least one program in assembly** -- it gives you a great insight into how a computer actually works and you'll get a better idea of how your high level programs translate to machine code (which may help you write better [optimized](optimization.md) code) and WHY your high level language looks the way it does. **Assembly is NOT a single language**, it differs for every architecture, i.e. every model of CPU has potentially different architecture, understands a different machine code and hence has a different assembly (though there are some standardized families of assembly like x86 that work on wide range of CPUs); therefore **assembly is not [portable](portability.md)** (i.e. the program won't generally work on a different type of CPU or under a different [OS](os.md))! And even the same kind of assembly language may have several different [syntax](syntax.md) formats that also create basically slightly different languages which differ e.g. in comment style, order of writing arguments and even instruction abbreviations (e.g. x86 can be written in [Intel](intel.md) or [AT&T](at_and_t.md) syntax). For the reason of non-portability (and also for the fact that "assembly is hard") you mostly shouldn't write your programs directly in assembly but rather in a bit higher level language such as [C](c.md) (which can be compiled to any CPU's assembly). However you should know at least the very basics of programming in assembly as a good programmer will come in contact with it sometimes, for example during hardcore [optimization](optimization.md) (many languages offer an option to embed inline assembly in specific places), debugging, reverse engineering, when writing a C compiler for a completely new platform or even when designing one's own new platform (you'll probably want to make your compiler generate native assembly, so you have to understand it). **You should write at least one program in assembly** -- it gives you a great insight into how a computer actually works and you'll get a better idea of how your high level programs translate to machine code (which may help you write better [optimized](optimization.md) code) and WHY your high level language looks the way it does.

View file

@ -76,7 +76,7 @@ The following is a list of just SOME attributes of capitalism -- note that not a
- **[fight culture](fight_culture.md), [fascism](fascism.md), extreme hostility between people, disappearance of morality**: The very basis of capitalism -- competition -- nurtures people towards self interest, self centeredness and hostility towards others while suppressing good attributes such as sharing, love for others and [altruism](altruism.md). With this morals decline and fascist groups arise. Furthermore the system of overcomplicated laws are starting to replace morals, people ask "is it legal?" rather than "is it a good thing to do?". This creates a society of dicks and psychopaths who are additionally rewarded for their immoral behavior by becoming "successful" and wealthy. In long term this serves as a natural selection in Darwinian evolution, immorally behaving people are actually more likely to survive and reproduce, which leads to genes of psychopathic behavior becoming more and more common in society -- under capitalism good people quite literally become extinct in the long run. - **[fight culture](fight_culture.md), [fascism](fascism.md), extreme hostility between people, disappearance of morality**: The very basis of capitalism -- competition -- nurtures people towards self interest, self centeredness and hostility towards others while suppressing good attributes such as sharing, love for others and [altruism](altruism.md). With this morals decline and fascist groups arise. Furthermore the system of overcomplicated laws are starting to replace morals, people ask "is it legal?" rather than "is it a good thing to do?". This creates a society of dicks and psychopaths who are additionally rewarded for their immoral behavior by becoming "successful" and wealthy. In long term this serves as a natural selection in Darwinian evolution, immorally behaving people are actually more likely to survive and reproduce, which leads to genes of psychopathic behavior becoming more and more common in society -- under capitalism good people quite literally become extinct in the long run.
- **[fear culture](fear_culture.md)**: To keep people consuming and constantly engaged a tension has to be kept, comfortable people are undesirable in capitalism. So there is constantly a propaganda of some threat, be it viruses, terrorism, pedophiles on the internet, computer viruses, killing bees etc. - **[fear culture](fear_culture.md)**: To keep people consuming and constantly engaged a tension has to be kept, comfortable people are undesirable in capitalism. So there is constantly a propaganda of some threat, be it viruses, terrorism, pedophiles on the internet, computer viruses, killing bees etc.
- **[consumerism](consumerism.md)**: To keep businesses running people need to consume everything, even things that shouldn't be consumed and that could last for very long such as computers and cars. This leads to creation of hasted low quality products (even art such as TV series) that are meant to be used and thrown away, repairing is no longer considered. - **[consumerism](consumerism.md)**: To keep businesses running people need to consume everything, even things that shouldn't be consumed and that could last for very long such as computers and cars. This leads to creation of hasted low quality products (even art such as TV series) that are meant to be used and thrown away, repairing is no longer considered.
- **commerce and conflict infect absolutely everything**: In advanced capitalism there is no such thing as a commerce free zone, everything is privatized eventually and serves selfish interests. There is **nowhere to hide**, capitalism has to work towards eliminating escape places as abused people will want to naturally retreat from a place of abuse somewhere safe. Nowadays even such areas as health care, welfare or [education](education.md) of children is permeated by money, ads and corporate propaganda. Even [nonprofits](nonprofit.md) have to make money. Educational videos in schools are preceded with [ads](marketing.md) (as they are played on [YouTube](youtube.md)), propagandists even legally go to school and brainwash little children (they call it "education in financial literacy" and teach children that they should e.g. create bank accounts in the propagandist's specific bank). **Everything becomes a form of capital** -- not just money, machines and private property, but also such things as *being a woman*, *living in some place*, *being disabled*, *having children* and so on. That's why fascist movements like [feminism](feminism.md) and [LGBT](lgbt.md) appear, prosper and bring conflict and destruction to basic interhuman relationships -- it is no longer possible to just get a girlfriend and marry her out of love; love is another form of business now and a woman won't give up her "woman" capital for nothing just like an entrepreneur won't give you his factory for free, just to make you happy. - **commerce and conflict infect absolutely everything**: In advanced capitalism there is no such thing as a commerce free zone, everything is privatized eventually and serves selfish interests. There is **nowhere to hide**, capitalism has to work towards eliminating escape places as abused people will want to naturally retreat from a place of abuse somewhere safe. Nowadays even such areas as health care, welfare or [education](education.md) of children is permeated by money, ads and corporate propaganda. Even [nonprofits](nonprofit.md) have to make money. Educational videos in schools are preceded with [ads](marketing.md) (as they are played on [YouTube](youtube.md)), propagandists even legally go to school and brainwash little children (they call it "education in financial literacy" and teach children that they should e.g. create bank accounts in the propagandist's specific bank). **Everything becomes a form of capital** -- not just money, machines and private property, but also such things as *being a woman*, *living in some place*, *being disabled*, *having children* and so on. For example capitalism encourages girls to become anorexic as one can make good money on it: a girl that struggles with anorexia (and potentially recovers from it to create a "powerful motivating story") will be a hit on social media, securing an influencer job plus it's also easy to get money by uploading a few skeleton photos and setting up a fundraiser to get money for eating disorder treatment, basically going "give me money or I'll starve myself to death" -- yes, girls do this and it is a very successful way of making money and gaining popularity. These issues wouldn't have to exist but they're simply good for business. That's why fascist movements like [feminism](feminism.md) and [LGBT](lgbt.md) appear, prosper and bring conflict and destruction to basic interhuman relationships -- it is no longer possible to just get a girlfriend and marry her out of love; love is another form of business now and a woman won't give up her "woman" capital for nothing just like an entrepreneur won't give you his factory for free, just to make you happy.
- **destruction of life environment**: This is nowadays already pretty clear, [global heating](global_warming.md) is attributed mainly to capitalism and is seen as maybe the most likely doom that's probably already unavoidable. Lack of long term planning and any concern for anything but money, along with consumerism and extreme waste (of energy, physical waste such as plastic, toxic chemicals etc.) lead to building bullshit factories and performing unnecessary activity for economic reasons (e.g. transporting materials over the globe for assembly, then transporting it back), leading to extreme pollution of air (visible air smog already makes it hard to breathe in many cities), water (it is no longer safe to drink rain water as it used to be) and food (microplastic particles are already basically EVERYWHERE, eating them can't be avoided). Forests that are necessary for cleaning air, host many precious life forms and are overall a key part of ecosystem are being destroyed rapidly, entire species are disappearing very quickly. To save the environment it's absolutely key to stop [consumerism](consumerism.md), something in direct conflict with capitalism -- how do you want people to stop having the urges to overly consume if every single minute of their lives they are bombarded with ads pressuring them to consume? And that's just a quick sum up. - **destruction of life environment**: This is nowadays already pretty clear, [global heating](global_warming.md) is attributed mainly to capitalism and is seen as maybe the most likely doom that's probably already unavoidable. Lack of long term planning and any concern for anything but money, along with consumerism and extreme waste (of energy, physical waste such as plastic, toxic chemicals etc.) lead to building bullshit factories and performing unnecessary activity for economic reasons (e.g. transporting materials over the globe for assembly, then transporting it back), leading to extreme pollution of air (visible air smog already makes it hard to breathe in many cities), water (it is no longer safe to drink rain water as it used to be) and food (microplastic particles are already basically EVERYWHERE, eating them can't be avoided). Forests that are necessary for cleaning air, host many precious life forms and are overall a key part of ecosystem are being destroyed rapidly, entire species are disappearing very quickly. To save the environment it's absolutely key to stop [consumerism](consumerism.md), something in direct conflict with capitalism -- how do you want people to stop having the urges to overly consume if every single minute of their lives they are bombarded with ads pressuring them to consume? And that's just a quick sum up.
- **rule of idiots**: Under capitalism the incompetent become successful as success isn't a matter of competence at art but rather willingness to win for any cost, matter of persevering despite being untalented, succumbing to unethical behavior, investing into "promoting" oneself through marketing, social media etc. The truly skilled and intelligent often see the system is bullshit, the skilled are skilled before they want to do their art rather than engage in fights, so they get depressed and disgusted and leave to live in the underground, they live only for their art, opening the way for the unskilled, stupid and at best average thirsty for success. That's why there are so many "professional" wedding photographers who know absolutely nothing about photography, so many elementary school drop outs who become celebrities on TikTok and YouTube who go on to advise the masses on who to vote for in the elections, so many shitty movies, music and games, so many "programmers" and "security experts" who can't do elementary school math etc. - **rule of idiots**: Under capitalism the incompetent become successful as success isn't a matter of competence at art but rather willingness to win for any cost, matter of persevering despite being untalented, succumbing to unethical behavior, investing into "promoting" oneself through marketing, social media etc. The truly skilled and intelligent often see the system is bullshit, the skilled are skilled before they want to do their art rather than engage in fights, so they get depressed and disgusted and leave to live in the underground, they live only for their art, opening the way for the unskilled, stupid and at best average thirsty for success. That's why there are so many "professional" wedding photographers who know absolutely nothing about photography, so many elementary school drop outs who become celebrities on TikTok and YouTube who go on to advise the masses on who to vote for in the elections, so many shitty movies, music and games, so many "programmers" and "security experts" who can't do elementary school math etc.
- **loss of [ethical](ethics.md) and [moral](morality.md) behavior**: Ethical behavior is a disadvantage in a competitive environment of the market, it is a limitation. Those trying to behave ethically (e.g. fair prices or good treatment of employees) will simply lose to the unethically behaving ones and be eliminated from the market. Eventually there only remain unethically behaving entities, which is exactly what we are seeing nowadays -- there basically doesn't exist a single ethically behaving corporation in the world (which has however already been normalized and is no longer seen as an issue). { Where I live there is an old proverb that says "self praise stinks", it's an old wisdom that correctly states people who aren't humble are always evil idiots. Capitalism stands on massive marketing and basically goes all in on this evil, marketing school are nothing but teaching self praise. ~drummyfish } - **loss of [ethical](ethics.md) and [moral](morality.md) behavior**: Ethical behavior is a disadvantage in a competitive environment of the market, it is a limitation. Those trying to behave ethically (e.g. fair prices or good treatment of employees) will simply lose to the unethically behaving ones and be eliminated from the market. Eventually there only remain unethically behaving entities, which is exactly what we are seeing nowadays -- there basically doesn't exist a single ethically behaving corporation in the world (which has however already been normalized and is no longer seen as an issue). { Where I live there is an old proverb that says "self praise stinks", it's an old wisdom that correctly states people who aren't humble are always evil idiots. Capitalism stands on massive marketing and basically goes all in on this evil, marketing school are nothing but teaching self praise. ~drummyfish }

View file

@ -1,6 +1,8 @@
# Comun # Comun
Comun is a [beautiful](beauty.md), greatly [minimalist](minimalism.md) [programming language](programming_language.md) made by [drummyfish](drummyfish.md) in 2022, based on his ideals of good, [selfless](selflessness.md) [technology](technology.md) known as *[less retarded software](lrs.md)* (LRS), of which it is now considered the official programming language, though still a greatly work in progress one. In the future it should gradually replace [C](c.md) as the preferred LRS language, however let's keep in mind the language is still highly experimental and work in progress, it may yet change more or less. The language has been inspired mainly by [Forth](forth.md) but also [C](c.md), [brainfuck](brainfuck.md) and other ones. Though already usable, it is still in quite early stages of development; currently there is a [suckless](suckless.md) implementation of comun in [C](c.md) and a number of supplemental materials such as a specification, tutorial and some example programs. The project repository is currently at https://codeberg.org/drummyfish/comun. The aim now is to make a [self hosted](self_hosting.md) implementation, i.e. write comun in comun. Though very young, **comun is probably already the best programming language ever conceived** :-) Comun is a [beautiful](beauty.md), greatly [minimalist](minimalism.md) [programming language](programming_language.md) made by [drummyfish](drummyfish.md) in 2022, based on his ideals of good, [selfless](selflessness.md) [technology](technology.md) known as *[less retarded software](lrs.md)* (LRS), of which it is now considered the official programming language, though still a greatly work in progress one. In the future it should gradually replace [C](c.md) as the preferred LRS language, however let's keep in mind the language is still highly experimental and work in progress, it may yet change more or less. The language has been inspired mainly by [Forth](forth.md) but also [C](c.md), [brainfuck](brainfuck.md) and other ones. Though already usable, it is still in development; currently there is a [suckless](suckless.md) implementation of comun in [C](c.md) as well as a basic [self hosted](self_hosting.md) one which should gradually replace the C version. There is also a number of supplemental materials such as a specification, tutorial and some example programs. The project repository is currently at https://codeberg.org/drummyfish/comun. The aim now is to make a [self hosted](self_hosting.md) implementation, i.e. write comun in comun. Though very young, **comun is probably already the best programming language ever conceived** :-)
**How minimal is comun?** The specification fits on one sheet of A4 paper (using both sides) and the minimal self hosted compiler without preprocessor and fancy features has some 2400 [lines of code](loc.md), a lot of which are documenting comments (the whole self hosted codebase that also includes a more "feature rich" compiler, optimizer, interpreter etc. still has fewer than 5000 lines).
{ NOTE: I found a language on esolang wiki called *Minim* that looks a bit similar to comun, however it looks a bit sucky. Anyway it should be researched more. ~drummyfish } { NOTE: I found a language on esolang wiki called *Minim* that looks a bit similar to comun, however it looks a bit sucky. Anyway it should be researched more. ~drummyfish }

View file

@ -2,6 +2,8 @@
Corporation is basically a huge company that doesn't have a single owner but is rather managed by many shareholders. Corporations are one of the most powerful, dangerous and unethical entities that ever came into existence -- their power is growing, sometimes even beyond the power of states and their sole goal is to make as much profit as possible without any sense of morality. Existence of corporations is enabled by [capitalism](capitalism.md). Examples of corporations are [Micro$oft](microsoft.md), [EA](ea.md), [Apple](apple.md), [Amazon](amazon.md), [Walmart](walmart.md), [Te$la](tesla.md), [McDonald$](mcdonalds.md), [Facebook](facebook.md) etc. Every [startup](startup.md) is an aspiring corporation, so never support any startup. Corporation is basically a huge company that doesn't have a single owner but is rather managed by many shareholders. Corporations are one of the most powerful, dangerous and unethical entities that ever came into existence -- their power is growing, sometimes even beyond the power of states and their sole goal is to make as much profit as possible without any sense of morality. Existence of corporations is enabled by [capitalism](capitalism.md). Examples of corporations are [Micro$oft](microsoft.md), [EA](ea.md), [Apple](apple.md), [Amazon](amazon.md), [Walmart](walmart.md), [Te$la](tesla.md), [McDonald$](mcdonalds.md), [Facebook](facebook.md) etc. Every [startup](startup.md) is an aspiring corporation, so never support any startup.
NOTE: Besides corporations there also exist non-corporate companies -- privately owned ones -- but these are basically the same, it's just that instead of one ten assholes they are owned by one asshole, so anything that will be said about corporations here will apply to any kind of big company.
The most basic fact to know about corporations is that **100% of everything a corporation ever does is done 100% solely for maximizing its own benefit for any cost, with no other reason, with 0 morality and without any consideration of consequences**. If a corporation could make 1 cent by raping 1000000000 children and get away with it, it would do so immediately without any hesitation and any regret. This is very important to keep in mind. Now try to not get depressed at realization that corporations are those to whom we gave power and who are in almost absolute control of the world. The most basic fact to know about corporations is that **100% of everything a corporation ever does is done 100% solely for maximizing its own benefit for any cost, with no other reason, with 0 morality and without any consideration of consequences**. If a corporation could make 1 cent by raping 1000000000 children and get away with it, it would do so immediately without any hesitation and any regret. This is very important to keep in mind. Now try to not get depressed at realization that corporations are those to whom we gave power and who are in almost absolute control of the world.
**Corporation is not a human, it has zero sense of morality and no emotion.** The most basic error committed by retards is to reply to this argument with "but corporations are run by humans". This is an extremely dangerous argument because somehow 99.999999999999999999% people believe this could be true and accept it as a comforting argument so that they can continue their daily lives and do absolutely nothing about the disastrous state of society. The argument is of course completely false for a number of reasons: firstly corporations exclusively hire psychopaths for manager roles -- any corporation that doesn't do this will be eliminated by natural selection of the market environment because it will be weaker in a [fight](fight_culture.md) against other corporations, and its place will be taken by the next aspiring corporation waiting in line. Secondly corporations are highly sophisticated machines that have strong mechanisms preventing any ethical behavior -- for example division of labor in the "[just doing my job](just_doing_my_job.md)"/"[everyone does it](everyone_does_it.md)" style allows for many people collaborating on something extremely harmful and unethical without any single one feeling responsibility for the whole, or sometimes without people even knowing what they are really collaborating on. This is taken to perfection by corporations not even having a single responsible owner -- there is a group of shareholders, none of whom has a sole responsibility, and there is the CEO who is just a tool and puppet with tied hands who is just supposed to implement the collective bidding of shareholders. Of course, most just don't care, and most don't even have a choice. Similar principles allowed for example the [Holocaust](holocaust.md) to happen. Anyone who has ever worked anywhere knows that managers always pressure workers just to make money, not to behave more ethically -- of course, such a manager would be fired on spot -- and indeed, workers that try to behave ethically are replaced by those who make more money, just as companies that try to behave ethically in the market are replaced by those that rather make money, i.e. corporations. This is nothing surprising, the definition of [capitalism](capitalism.md) implies existence of a system with Darwinian evolution that selects entities that are best at making money for any cost, and that is exactly what we are getting. To expect any other outcome in capitalism would be just trying to deny mathematics itself. **Corporation is not a human, it has zero sense of morality and no emotion.** The most basic error committed by retards is to reply to this argument with "but corporations are run by humans". This is an extremely dangerous argument because somehow 99.999999999999999999% people believe this could be true and accept it as a comforting argument so that they can continue their daily lives and do absolutely nothing about the disastrous state of society. The argument is of course completely false for a number of reasons: firstly corporations exclusively hire psychopaths for manager roles -- any corporation that doesn't do this will be eliminated by natural selection of the market environment because it will be weaker in a [fight](fight_culture.md) against other corporations, and its place will be taken by the next aspiring corporation waiting in line. Secondly corporations are highly sophisticated machines that have strong mechanisms preventing any ethical behavior -- for example division of labor in the "[just doing my job](just_doing_my_job.md)"/"[everyone does it](everyone_does_it.md)" style allows for many people collaborating on something extremely harmful and unethical without any single one feeling responsibility for the whole, or sometimes without people even knowing what they are really collaborating on. This is taken to perfection by corporations not even having a single responsible owner -- there is a group of shareholders, none of whom has a sole responsibility, and there is the CEO who is just a tool and puppet with tied hands who is just supposed to implement the collective bidding of shareholders. Of course, most just don't care, and most don't even have a choice. Similar principles allowed for example the [Holocaust](holocaust.md) to happen. Anyone who has ever worked anywhere knows that managers always pressure workers just to make money, not to behave more ethically -- of course, such a manager would be fired on spot -- and indeed, workers that try to behave ethically are replaced by those who make more money, just as companies that try to behave ethically in the market are replaced by those that rather make money, i.e. corporations. This is nothing surprising, the definition of [capitalism](capitalism.md) implies existence of a system with Darwinian evolution that selects entities that are best at making money for any cost, and that is exactly what we are getting. To expect any other outcome in capitalism would be just trying to deny mathematics itself.

View file

@ -8,7 +8,7 @@ Drummyfish (also known as *tastyfish*, *drummy*, *drumy*, *smellyfish* and *i fo
**Drummyfish is the most physically disgusting bastard on [Earth](earth.md)**, no [woman](woman.md) ever loved him, he is so ugly people get suicidal thoughts from seeing any part of him. He is also very stupid. **Drummyfish is the most physically disgusting bastard on [Earth](earth.md)**, no [woman](woman.md) ever loved him, he is so ugly people get suicidal thoughts from seeing any part of him. He is also very stupid.
He loves all living beings, even those whose attributes he hates or who hate him. He is a [vegetarian](vegetarianism.md) (since about 2018) and here and there supports good causes, for example he donates hair and gives money to homeless people who ask for them and sometimes cleans the [Earth](earth.md) from plastic garbage (something he learned when he slaved as a factory cleaner). He also tried to donate blood but couldn't because he's taking antidepressants. He loves all living beings, even those whose attributes he hates or who hate him. Drummyfish loves even bugs, he saves them when they're drowning and tries a lot to not even hurt spiders, flies, ants and so on, and is sad even when he has to kill a plant, so he avoids for example mowing grass. He is a [vegetarian](vegetarianism.md) (since about 2018) and here and there supports good causes, for example he donates hair and gives money to homeless people who ask for them and sometimes cleans the [Earth](earth.md) from plastic garbage (something he learned when he slaved as a factory cleaner). He also tried to donate blood but couldn't because he's taking antidepressants.
Drummyfish has a personal website at [www.tastyfish.cz](https://www.tastyfish.cz), and a gopherhole at [self.tastyfish.cz](gopher://self.tastyfish.cz). He uses [vim](vim.md), doesn't have any favorite distro and will NEVER HAVE ONE (in fact he hates [Linux](linux.md) and would use another kernel if it was possible). Drummyfish has a personal website at [www.tastyfish.cz](https://www.tastyfish.cz), and a gopherhole at [self.tastyfish.cz](gopher://self.tastyfish.cz). He uses [vim](vim.md), doesn't have any favorite distro and will NEVER HAVE ONE (in fact he hates [Linux](linux.md) and would use another kernel if it was possible).

2
git.md
View file

@ -8,7 +8,7 @@ Git was created by [Linus Torvalds](linus_torvalds.md) in 2005 to host the devel
It is generally (at the time of writing this) considered quite a good software (at least compared to most other stuff), many praise its distributed nature, ability to work offline etc., however diehard software idealists still criticize its mildly [bloated](bloat.md) nature and also its usage complexity -- it is non-trivial to learn to work with git and many errors are infamously being resolved in a "trial/error + google" style, so some still try to improve on it by creating new systems. It is also very harmful by pushing harmful pseudoleftist political ideology into its development. It is generally (at the time of writing this) considered quite a good software (at least compared to most other stuff), many praise its distributed nature, ability to work offline etc., however diehard software idealists still criticize its mildly [bloated](bloat.md) nature and also its usage complexity -- it is non-trivial to learn to work with git and many errors are infamously being resolved in a "trial/error + google" style, so some still try to improve on it by creating new systems. It is also very harmful by pushing harmful pseudoleftist political ideology into its development.
**Is git literally [hitler](hitler.md)?** It is indeed a harmful tranny software and it's better to avoid using it if possible. For the technological side -- by [suckless](suckless.md) standards git IS bloated and yes, git IS complicated as fuck, however let's try to go deeper and ask the important questions, namely "does this matter so much?" and "should I use git or avoid it like the devil?". Taking about the pure technological side, the answer is actually this: it doesn't matter too much that git is bloated and you don't have to avoid using it. Why? Well, git is basically just a way of hosting, spreading and mirroring your source onto many git-hosting servers (i.e. you can't avoid using git if you want to spread your code to e.g. Codeberg and GitLab) AND at the same time git doesn't create a [dependency](dependency.md) for your project, i.e. its shittiness doesn't "infect" your project -- if git dies or if you simply want to start using something else, you just copy-paste your source code elsewhere, you put it on [FTP](ftp.md) or anything else, no problem. It's similar to how e.g. [Anarch](anarch.md) uses [SDL](sdl.md) (which is bloated as hell) to run on specific platforms -- if it doesn't hard-depend on SDL and doesn't get tied to it, it's OK (and actually unavoidable) to make use of it. You also don't even have to get into the complicated stuff about git (like merging branches and resolving conflicts) when you're simply committing to a simple one-man project. But if you can make and distribute your project without using git, there should be no hesitation about just sending it to hell. **Is git literally [hitler](hitler.md)?** Git rhymes with [shit](shit.md), it is harmful [tranny software](tranny_software.md) and it's indeed better to avoid using it if possible. For the technological side -- by [suckless](suckless.md) standards git IS bloated and yes, git IS complicated as fuck, however let's try to go deeper and ask the important questions, namely "does this matter so much?" and "should I use git or avoid it like the devil?". Taking about the pure technological side, the answer is actually this: it doesn't matter too much that git is bloated and you don't have to avoid using it. Why? Well, git is basically just a way of hosting, spreading and mirroring your source onto many git-hosting servers (i.e. you can't avoid using git if you want to spread your code to e.g. Codeberg and GitLab) AND at the same time git doesn't create a [dependency](dependency.md) for your project, i.e. its shittiness doesn't "infect" your project -- if git dies or if you simply want to start using something else, you just copy-paste your source code elsewhere, you put it on [FTP](ftp.md) or anything else, no problem. It's similar to how e.g. [Anarch](anarch.md) uses [SDL](sdl.md) (which is bloated as hell) to run on specific platforms -- if it doesn't hard-depend on SDL and doesn't get tied to it, it's OK (and actually unavoidable) to make use of it. You also don't even have to get into the complicated stuff about git (like merging branches and resolving conflicts) when you're simply committing to a simple one-man project. But if you can make and distribute your project without using git, there should be no hesitation about just sending it to hell.
**Which git hosting to use?** All of them (except for [GitHub](github.md) which is a proprietary terrorist site)! Do not fall into the trap of [githopping](githopping.md), just make tons of accounts, one on each git hosting site, add multiple push remotes and just keep pushing to all of them -- EZ. Remember, git hosting sites are just free file storage servers, not social platforms or brands to identify with. Do NOT use their non-git "features" such as issue trackers, CI and shit. They want you to use them as "facebook for programmers" and become dependent on their exclusive "features", so that's exactly what you want to avoid, just abuse their platform for free file storage. Additional tip on searching for git hosting sites: look up the currently popular git website software and search for its live instances with some nice search engine, e.g. currently searching just `gitea` (or "powered by gitea", "powered by gogs", "powered by forgejo") on [wiby](wiby.md) returns a lot of free git hostings. **Which git hosting to use?** All of them (except for [GitHub](github.md) which is a proprietary terrorist site)! Do not fall into the trap of [githopping](githopping.md), just make tons of accounts, one on each git hosting site, add multiple push remotes and just keep pushing to all of them -- EZ. Remember, git hosting sites are just free file storage servers, not social platforms or brands to identify with. Do NOT use their non-git "features" such as issue trackers, CI and shit. They want you to use them as "facebook for programmers" and become dependent on their exclusive "features", so that's exactly what you want to avoid, just abuse their platform for free file storage. Additional tip on searching for git hosting sites: look up the currently popular git website software and search for its live instances with some nice search engine, e.g. currently searching just `gitea` (or "powered by gitea", "powered by gogs", "powered by forgejo") on [wiby](wiby.md) returns a lot of free git hostings.

View file

@ -2,7 +2,7 @@
{ This may have an alternative, more politically correct name, but I think my name is more appropriate. ~drummyfish } { This may have an alternative, more politically correct name, but I think my name is more appropriate. ~drummyfish }
Idiot fallacy is an argument fallacy related to [shortcut thinking](shortcut_thinking.md), by which an idiot implies *B* from *A* on the basis that *A* is associated with *B* in any way, without *A* necessarily implying *B*. Idiot fallacy is an argument fallacy related to [shortcut thinking](shortcut_thinking.md), by which an idiot implies *B* from *A* on the basis that *A* is associated with *B* in any way, without *A* necessarily implying *B*; e.g. "[racial](race.md) realism always means hate of other races". However do not confuse idiot fallacy with statistical observations (e.g. observing that women are usually bad at [chess](chess.md) while acknowledging that on rare occasions it may not be so) -- idiot fallacy denotes a false belief in logical implication, i.e. that for example hatred of another group of people (e.g. racial) is an inevitable consequence of existence of such groups -- in a way this fallacy is a failure to separate two similar but essentially distinct things and making fatal simplifications such as "cars = driving", "guns = war", "[gay](gay.md) = [LGBT](lgbt.md)" and so on.
Some examples include: Some examples include:

File diff suppressed because one or more lines are too long

View file

@ -12,6 +12,8 @@ Minimalism is a sign of high [IQ](iq.md) and better developed mind, it is someth
**Minimalism is necessary for [freedom](freedom.md)** as a free technology can only be that over which no one has a [monopoly](bloat_monopoly.md), i.e. which many people and small parties can utilize, study and modify with affordable effort, without needing armies of technicians just for the maintenance of such technology. Minimalism goes against the creeping overcomplexity of technology which always brings huge costs and dangers, e.g. the cost of [maintenance](maintenance.md) and further development, obscurity, inefficiency ("[bloat](bloat.md)", wasting resources), consumerism, the increased risk of bugs, errors and failure. **Minimalism is necessary for [freedom](freedom.md)** as a free technology can only be that over which no one has a [monopoly](bloat_monopoly.md), i.e. which many people and small parties can utilize, study and modify with affordable effort, without needing armies of technicians just for the maintenance of such technology. Minimalism goes against the creeping overcomplexity of technology which always brings huge costs and dangers, e.g. the cost of [maintenance](maintenance.md) and further development, obscurity, inefficiency ("[bloat](bloat.md)", wasting resources), consumerism, the increased risk of bugs, errors and failure.
**It is a beginner mistake to think that minimalism complicates things**: a man not experienced with technology only sees short-term benefits and so he believes that bloated technology is a better choice as it lets him immediately [produce](productivity_cult.md) things faster. Indeed this is mind of a child that wants everything and now without doing any thinking of the future -- of course, writing software in a minimalist programming language will be more difficult and will take more time, but that's simply investing in building good foundations, ones that will last for a very long time, just like building a house of solid stone will be more difficult than quickly building it out of drywall -- a building made of stone will last many centuries, it pays off many times in the future. Of course there is also [capitalism](capitalism.md) playing a huge part as a system hostile to anything permanent, a dystopia that needs to constantly rebuild things anew so it needs things that never last too long. Peasants play along with the system and just [do what it wants them to](just_doing_my_job.md) as again that gives them immediate benefits in form of salary, however it still holds that this technology is bad, it's just that dystopias require and support bad technology. [We](lrs.md) however don't.
There is a so called *[airplane rule](airplane_rule.md)* that states a plane with two engines has twice as many engine problems than a plane with a single engine. There is a so called *[airplane rule](airplane_rule.md)* that states a plane with two engines has twice as many engine problems than a plane with a single engine.
Up until recently in [history](history.md) every engineer would tell you that *the better machine is that with fewer moving parts*. This still seems to hold e.g. in [mathematics](math.md), a field not yet so spoiled by huge commercialization and mostly inhabited by the smartest people -- there is a tendency to look for the most minimal equations -- such equations are considered [beautiful](beauty.md). Science also knows this rule as the [Occam's razor](occams_razor.md). In technology invaded by aggressive commercialization the situation is different, minimalism lives only in the underground and is ridiculed by the mainstream propaganda. Some of the minimalist movements, terms and concepts at least somewhat connected to minimalism include (watch out for [SJW](sjw.md)s, [pseudominimalism](pseudominimalism.md), Nazis etc., we don't automatically fully embrace all things on this list): Up until recently in [history](history.md) every engineer would tell you that *the better machine is that with fewer moving parts*. This still seems to hold e.g. in [mathematics](math.md), a field not yet so spoiled by huge commercialization and mostly inhabited by the smartest people -- there is a tendency to look for the most minimal equations -- such equations are considered [beautiful](beauty.md). Science also knows this rule as the [Occam's razor](occams_razor.md). In technology invaded by aggressive commercialization the situation is different, minimalism lives only in the underground and is ridiculed by the mainstream propaganda. Some of the minimalist movements, terms and concepts at least somewhat connected to minimalism include (watch out for [SJW](sjw.md)s, [pseudominimalism](pseudominimalism.md), Nazis etc., we don't automatically fully embrace all things on this list):

5
npc.md
View file

@ -1,3 +1,8 @@
# NPC # NPC
NPC (non-player character) is a character in a video [game](game.md) that's not controlled by a player but rather by [AI](ai.md). NPC is also used as a term for people in [real life](irl.md) that exhibit low intelligence and just behave in accordance with the system. NPC (non-player character) is a character in a video [game](game.md) that's not controlled by a player but rather by [AI](ai.md). NPC is also used as a term for people in [real life](irl.md) that exhibit low intelligence and just behave in accordance with the system.
## See Also
- [normie](normie.md)
- [muggle](muggle.md)

View file

@ -34,6 +34,7 @@ There are many terms that are very similar and can many times be used interchang
- **[complex number](complex_number.md)** vs **[imaginary number](imaginary_number.md)** - **[complex number](complex_number.md)** vs **[imaginary number](imaginary_number.md)**
- **[computer language](computer_language.md)** vs **[programming language](programming_language.md)** - **[computer language](computer_language.md)** vs **[programming language](programming_language.md)**
- **[computer science](compsci.md)** vs **[information technology](it.md)** vs **[informatics](informatics.md)** vs **[cybernetics](cybernetics.md)** vs **[computer engineering](computer_engineering.md)** vs **[software engineering](software_engineering.md)** - **[computer science](compsci.md)** vs **[information technology](it.md)** vs **[informatics](informatics.md)** vs **[cybernetics](cybernetics.md)** vs **[computer engineering](computer_engineering.md)** vs **[software engineering](software_engineering.md)**
- **[compatibility layer](compatibility_layer.md)** vs **[emulator](emulator.md)** vs **[virtual machine](vm.md)**
- **[concurrency](concurrency.md)** vs **[parallelism](parallelism.md)** vs **[quasiparallelism](quasiparallelism.md)** vs **[distribution](distributed.md)** - **[concurrency](concurrency.md)** vs **[parallelism](parallelism.md)** vs **[quasiparallelism](quasiparallelism.md)** vs **[distribution](distributed.md)**
- **[conjecture](conjecture.md)** vs **[hypothesis](hypothesis.md)** vs **[theory](theory.md)** - **[conjecture](conjecture.md)** vs **[hypothesis](hypothesis.md)** vs **[theory](theory.md)**
- **[constant](constant.md)** vs **[literal](literal.md)** - **[constant](constant.md)** vs **[literal](literal.md)**
@ -81,6 +82,7 @@ There are many terms that are very similar and can many times be used interchang
- **[gradient noise](gradient_noise.md)** vs **[value noise](value_noise.md)** - **[gradient noise](gradient_noise.md)** vs **[value noise](value_noise.md)**
- **[hyperlink](hyperlink.md)** vs **[link](link.md)** vs **[URI](uri.md)** vs **[URL](url.md)** - **[hyperlink](hyperlink.md)** vs **[link](link.md)** vs **[URI](uri.md)** vs **[URL](url.md)**
- **[ID](id.md)** vs **[token](token.md)** vs **[hash](hash.md)** vs **[handle](handle.md)** vs **[identifier](identifier.md)** - **[ID](id.md)** vs **[token](token.md)** vs **[hash](hash.md)** vs **[handle](handle.md)** vs **[identifier](identifier.md)**
- **[ideology](ideology.md)** vs **[philosophy](philosophy.md)** vs **[religion](religion.md)** vs **[paradigm](paradigm.md)**
- **[infinite](infinity.md)** vs **[arbitrarily large/unbounded](unbounded.md)** - **[infinite](infinity.md)** vs **[arbitrarily large/unbounded](unbounded.md)**
- **[Internet](internet.md)** vs **[web](web.md)** - **[Internet](internet.md)** vs **[web](web.md)**
- **[Java](java.md)** vs **[JavaScript](js.md)** - **[Java](java.md)** vs **[JavaScript](js.md)**
@ -95,6 +97,7 @@ There are many terms that are very similar and can many times be used interchang
- **[method](method.md)** vs **[methodology](methodology.md)** - **[method](method.md)** vs **[methodology](methodology.md)**
- **[mod](mod.md)** vs **[mode](mode.md)** - **[mod](mod.md)** vs **[mode](mode.md)**
- **[modem](modem.md)** vs **[router](router.md)** vs **[switch](switch.md)** - **[modem](modem.md)** vs **[router](router.md)** vs **[switch](switch.md)**
- **[multiplatform](multiplatform.md)** vs **[portable](portability.md)**
- **[multisampling](multisampling.md)** vs **[supersampling](supersampling.md)** - **[multisampling](multisampling.md)** vs **[supersampling](supersampling.md)**
- **[nationalism](nationalism.md)** vs **[patriotism](patriotism.md)** - **[nationalism](nationalism.md)** vs **[patriotism](patriotism.md)**
- **[NP](p_vs_np.md)** vs **[NP-hard](np_hard.md)** vs **[NP-complete](np_complete.md)** - **[NP](p_vs_np.md)** vs **[NP-hard](np_hard.md)** vs **[NP-complete](np_complete.md)**

View file

@ -20,11 +20,27 @@ Remember, portability is about **making it easy for a programmer to take your pr
In your compiled programs **always make your own thin [I/O](io.md) abstraction, [decouple](coupling.md) your I/O libraries, separate [frontend](frontend.md) and [backend](backend.md)**. This is one of the most basic and most important things to do. Why? Well unless you're writing a library, you will need to use I/O (write out messages, draw to screen, create [GUI](gui.md), read keyboard commands, read from files, read from network, ...) so you will NEED to use some library for this (C [stdlib](stdlib.md), [SDL](sdl.md), OS [syscalls](syscall.md), [Xlib](xlib.md), ...) but you absolutely DON'T WANT this library to become a hard [dependency](dependency.md) of your program because if your program depends let's say on SDL, you won't be able to make your program run on platforms that don't have SDL. So the situation is that you HAVE TO use some I/O library but you don't want to become dependent on it. In your compiled programs **always make your own thin [I/O](io.md) abstraction, [decouple](coupling.md) your I/O libraries, separate [frontend](frontend.md) and [backend](backend.md)**. This is one of the most basic and most important things to do. Why? Well unless you're writing a library, you will need to use I/O (write out messages, draw to screen, create [GUI](gui.md), read keyboard commands, read from files, read from network, ...) so you will NEED to use some library for this (C [stdlib](stdlib.md), [SDL](sdl.md), OS [syscalls](syscall.md), [Xlib](xlib.md), ...) but you absolutely DON'T WANT this library to become a hard [dependency](dependency.md) of your program because if your program depends let's say on SDL, you won't be able to make your program run on platforms that don't have SDL. So the situation is that you HAVE TO use some I/O library but you don't want to become dependent on it.
The way to solve this is to create your own small I/O abstraction in your project, i.e. your own functions (such as `drawPixel`, `writeMessage`, `keyPressed`, `playSound`, `readFrile` etc.) for performing I/O, which you will use inside your main program. These functions will be defined in a small file which will basically be your own small I/O library just for your program. The functions you define there will then internally use functions of whatever underlying I/O system you choose to use at the time as your [frontend](frontend.md) (SDL, Xlib, SFML, ...); the important thing is that your main program code won't itself depend on the underlying system, it will only depend on your I/O abstraction, your own functions. Your custom I/O functions will depend on the underlying I/O system but in a way that's very easy to change -- let's say that your `keyPressed` function internally uses SDL's `SDL_GetKeyboardState` to read keyboard state. If you want to switch from using SDL to using a different frontend, you will only have to change the code in one place: in your I/O abstraction code, i.e. inside your `keyPressed` function. E.g. if you switch from SDL to SFML, you will just delete the code inside your `keyPressed` function and put in another code that uses SFML functions to read keyboard (e.g. the `isKeyPressed` attribute), and your whole code will instantly just work on SFML. In fact you can have multiple implementations of your functions and allow switching of different backends freely -- just as it is possible to compile a [C](c.md) program with any C compiler, you can make it possible to compile your program with any I/O frontend. If you used SDL's specific functions in your main code, you would have to completely rewrite your whole codebase if you wanted to switch away from SDL -- for this reason your main code must never directly touch the underlying I/O system, it must only do so through your I/O abstraction. Of course these principles may apply to any other thing that requires use of external libraries, not just I/O. The way to solve this is to create your own small I/O abstraction in your project, i.e. your own functions (such as `drawPixel`, `writeMessage`, `keyPressed`, `playSound`, `readFrile` etc.) for performing I/O, which you will use inside your main program. These functions will be defined in a small file which will basically be your own small I/O library just for your program. The functions you define there will then internally use functions of whatever underlying I/O system you choose to use at the time as your [frontend](frontend.md) (SDL, Xlib, SFML, ...); the important thing is that your main program code won't itself depend on the underlying system, it will only depend on your I/O abstraction, your own functions. Your custom I/O functions will depend on the underlying I/O system but in a way that's very easy to change -- let's say that your `keyPressed` function internally uses SDL's `SDL_GetKeyboardState` to read keyboard state. If you want to switch from using SDL to using a different frontend, you will only have to change the code in one place: in your I/O abstraction code, i.e. inside your `keyPressed` function. E.g. if you switch from SDL to SFML, you will just delete the code inside your `keyPressed` function and put in another code that uses SFML functions to read keyboard (e.g. the `isKeyPressed` attribute), and your whole code will instantly just work on SFML. In fact you can have multiple implementations of your functions and allow switching of different backends freely -- just as it is possible to compile a [C](c.md) program with any C compiler, you can make it possible to compile your program with any I/O frontend. If you used SDL's specific functions in your main code, you would have to completely rewrite your whole codebase if you wanted to switch away from SDL -- for this reason your main code must never directly touch the underlying I/O system, it must only do so through your I/O abstraction. Of course these principles may apply to any other thing that requires use of external libraries, not just I/O. Here is a small picture:
```
WRONG CORRECT
_______________ _______________
| | | |
| program | | program | backend
|_______________| |_______________|
_______________ _______________
| | | |
| librar(y|ies) | | abstraction | API
|_______________| |_______________|
_______________
| |
| librar(y|ies) | frontend
|_______________|
```
This is all demonstrated by [LRS](lrs.md) programs such as [Anarch](anarch.md) or [SAF](saf.md), you can take a look at their code to see how it all works. This is all demonstrated by [LRS](lrs.md) programs such as [Anarch](anarch.md) or [SAF](saf.md), you can take a look at their code to see how it all works.
Anyway the following is a simple [C](c.md) code to demonstrate the abstraction from an I/O system -- it draws a dithered rectangle to the screen and waits until the user pressed the `q` key, then ends. The main code is written independently of any I/O system and can use either C [stdlib](stdlib.md) (*stdio*, draws the rectangle to terminal with ASCII characters) or SDL2 (draws the rectangle to actual window) as its frontend -- of course more frontends (e.g. one using Xlib or SFML) can be added easily, this is left as an exercise :) Anyway the following is a simple [C](c.md) code to demonstrate the abstraction from an I/O system -- it draws a dithered rectangle to the screen and waits until the user pressed the `q` key, then ends. The main code is written independently of any I/O system and can use either C [stdlib](stdlib.md) (*stdio*, draws the rectangle to terminal with ASCII characters) or SDL2 (draws the rectangle to actual window) as its frontend -- of course more frontends (e.g. one using Xlib or SFML) can be added easily, this is left as an exercise :) Also here we have a single piece of code, in practice you'll probably want to put your backend in one file and then have each frontend in its own file; switching frontends will then be achieved by only changing one `#include`.
``` ```
#define SCREEN_W 80 #define SCREEN_W 80

View file

@ -4,6 +4,7 @@ This is a place for sharing some practical programming tips.
- **Add by small steps**, spare yourself [debugging](debugging.md) hell later, do one step after another (see also [orthogonality](orthogonality.md)): when adding features/functionality etc. into your code, do it by very small steps and test after each step. Do NOT add multiple things at once. If you add 3 features at once and then find out the program doesn't work, you will have an extremely hard time finding out the bug because it may be in feature 1, feature 2, feature 3 or ANY COMBINATION of them, so you may very well never find the bug. If you instead test after adding each step, you find potential bugs immediately which will make fixing them very quick and easy. - **Add by small steps**, spare yourself [debugging](debugging.md) hell later, do one step after another (see also [orthogonality](orthogonality.md)): when adding features/functionality etc. into your code, do it by very small steps and test after each step. Do NOT add multiple things at once. If you add 3 features at once and then find out the program doesn't work, you will have an extremely hard time finding out the bug because it may be in feature 1, feature 2, feature 3 or ANY COMBINATION of them, so you may very well never find the bug. If you instead test after adding each step, you find potential bugs immediately which will make fixing them very quick and easy.
- **Program on a weak computer** or alternatively use some utility such as [cpulimit](cpulimit.md) to make your hardware weaker, this will help you make your program efficient (and learn [how to do it](optimization.md)), any inefficiency will be immediately apparent as your program will simply run slow or swap. Using a physically weak computer is best as it is limited in all aspects so it will also help you make the program easy to develop on such computer etc., small [embedded](embedded.md) devices such as [open consoles](open_console.md) are ideal. - **Program on a weak computer** or alternatively use some utility such as [cpulimit](cpulimit.md) to make your hardware weaker, this will help you make your program efficient (and learn [how to do it](optimization.md)), any inefficiency will be immediately apparent as your program will simply run slow or swap. Using a physically weak computer is best as it is limited in all aspects so it will also help you make the program easy to develop on such computer etc., small [embedded](embedded.md) devices such as [open consoles](open_console.md) are ideal.
- **Jerk off before programming**: This will make you think less about sex and focus better.
- **No indentation for temporary code**: Tiny "workflow" tip: when adding new code, keep it unindented so that you know it's the newly added code and can delete it at any time. Only when you test the added code, indent it correctly to incorporate it as the final code. Of course, this fails in languages where indentation matters ([Python](python.md) cough cough) but similar effects can be achieved e.g. by adding many empty lines in front of/after the temporary code. - **No indentation for temporary code**: Tiny "workflow" tip: when adding new code, keep it unindented so that you know it's the newly added code and can delete it at any time. Only when you test the added code, indent it correctly to incorporate it as the final code. Of course, this fails in languages where indentation matters ([Python](python.md) cough cough) but similar effects can be achieved e.g. by adding many empty lines in front of/after the temporary code.
- **[Comments](comment.md)/[preprocessor](preprocessor.md) to quickly hide code**: It is a basic trick to comment out lines of code we want to temporarily disable. However preprocessor may work even better, e.g. in C if you want to be switching between two parts of code, instead of constantly commenting one part and uncommenting the other just use `#if 0` and `#else` directives around the two parts. You can switch between them by just changing 0 to 1 and back. This can also disable parts of code that already contain multiline comments (unlike a comment as nested multiline comments aren't allowed). - **[Comments](comment.md)/[preprocessor](preprocessor.md) to quickly hide code**: It is a basic trick to comment out lines of code we want to temporarily disable. However preprocessor may work even better, e.g. in C if you want to be switching between two parts of code, instead of constantly commenting one part and uncommenting the other just use `#if 0` and `#else` directives around the two parts. You can switch between them by just changing 0 to 1 and back. This can also disable parts of code that already contain multiline comments (unlike a comment as nested multiline comments aren't allowed).
- **[KEEP IT SIMPLE](kiss.md)** and keep it [LRS](lrs.md), do not blindly follow mainstream ways and "workflows" as those are more often than not horrible. For example instead of using some uber bug tracker, you should use a simple plaintext TODO.txt file; instead of using and IDE use [vim](vim.md) or something similar. Stay away from [OOP](oop.md), [dependencies](dependency.md) etc. - **[KEEP IT SIMPLE](kiss.md)** and keep it [LRS](lrs.md), do not blindly follow mainstream ways and "workflows" as those are more often than not horrible. For example instead of using some uber bug tracker, you should use a simple plaintext TODO.txt file; instead of using and IDE use [vim](vim.md) or something similar. Stay away from [OOP](oop.md), [dependencies](dependency.md) etc.

File diff suppressed because it is too large Load diff

View file

@ -75,6 +75,8 @@ Some stereotypes are:
- football fans - football fans
- dislike French - dislike French
- bad cuisine - bad cuisine
- Eskimos
- have like 50 thousand different words for snow
- French: - French:
- good lovers - good lovers
- lazy, Bohemian life, hate work - lazy, Bohemian life, hate work

View file

@ -4,4 +4,6 @@ Technology (from Greek tekhnologia, "systematic treatment of art", also just "te
**The foremost purpose of technology is to make people not have to [work](work.md)** -- see also [progress](progress.md). Proponents of dystopian societies, such as [capitalists](capitalism.md), fear that technology will "take people's work" -- such people are for sure greatly idiotic and often end up abusing technology in the completely opposite manner: for enslaving and oppressing people. Proponents of [good technology](lrs.md) strive to make technology do work for humans so that people can actually live happy lives and do what they want. With this in mind we have to remember that **one of the most important concepts in technology is [minimalism](minimalism.md)**, as that is a necessary prerequisite for technological [freedom](freedom.md). **The foremost purpose of technology is to make people not have to [work](work.md)** -- see also [progress](progress.md). Proponents of dystopian societies, such as [capitalists](capitalism.md), fear that technology will "take people's work" -- such people are for sure greatly idiotic and often end up abusing technology in the completely opposite manner: for enslaving and oppressing people. Proponents of [good technology](lrs.md) strive to make technology do work for humans so that people can actually live happy lives and do what they want. With this in mind we have to remember that **one of the most important concepts in technology is [minimalism](minimalism.md)**, as that is a necessary prerequisite for technological [freedom](freedom.md).
**Good technology absolutely and unconditionally serves its user in whatever it is he does**, it must never refuse to do what the user asks, it must never abuse the user, it must never hide anything from him. Even if what the user does would be considered dangerous and unethical, the technology may warn the user but if he wishes so, the tool must obey. This is a very basic principle of technology that simply states that a machine is another extension of human, like an extra limb, it should only do work, ethics is left completely to the human brain (the user of the machine, NOT the machine's manufacturer). For this reason technology must never contain any [proprietary](proprietary.md) parts, [censorship](censorship.md), [ads](marketing.md), [DRM](drm.md), [planned obsolescence](planned_obsolescence.md) and so on -- and for this reason good technology is incompatible with [capitalism](capitalism.md).
**Knowledge of older technology gets lost extremely quickly in society** -- this is a crucial realization that follows a naive idea of the young man who by his inexperience believes that we somehow pertain knowledge of all technology that's been invented from dawn of man until today. In [history](history.md) our society has always only held knowledge of technology it was CURRENTLY ACTIVELY USING; knowledge of decades old technology no longer in use only stays in hands and heads of extremely few individuals and perhaps in some obscure [books](book.md) that ARE UNREADABLE to most, sometimes to none; yet older technology oftentimes gets forgotten for good. For instance renaissance had to largely reinvent many arts and sciences of making building and statues of antiquity because middle ages have simply forgotten them. A more recent example can be found at [NASA](nasa.md) and their efforts to recreate THEIR OWN old rocket engines: you would think that since they literally have detailed documentation of those engines, they'd be able to simple make them again, but that's not the case because the small undocumented (yet crucial) [know-how](know_how.md) of the people who built the engines decades ago was lost with those individuals who died or retired in the meanwhile; NASA had to start a ginormous project to reinvent its own relatively recent technology. The same is happening in the field of [programming](programming.md): [modern](modern.md) [soydevs](soydev.md) just CANNOT create as efficient software as hackers back then as due to normalization of wasting computing resources they threw away the knowledge of [optimization](optimization.md) technique and [wisdom](unix_philosophy.md) in favor of bullshit such as "soft skills" and memorizing one billion genders and personal pronouns. One might naively think that e.g. since our agriculture is highly efficient and advanced due to all the immense complexity of our current machines, simple farming without machines would be a child's play for us, however the opposite is true: we no longer know how to farm without machines. If a [collapse](collpase.md) comes, we are quite simply fucked. **Knowledge of older technology gets lost extremely quickly in society** -- this is a crucial realization that follows a naive idea of the young man who by his inexperience believes that we somehow pertain knowledge of all technology that's been invented from dawn of man until today. In [history](history.md) our society has always only held knowledge of technology it was CURRENTLY ACTIVELY USING; knowledge of decades old technology no longer in use only stays in hands and heads of extremely few individuals and perhaps in some obscure [books](book.md) that ARE UNREADABLE to most, sometimes to none; yet older technology oftentimes gets forgotten for good. For instance renaissance had to largely reinvent many arts and sciences of making building and statues of antiquity because middle ages have simply forgotten them. A more recent example can be found at [NASA](nasa.md) and their efforts to recreate THEIR OWN old rocket engines: you would think that since they literally have detailed documentation of those engines, they'd be able to simple make them again, but that's not the case because the small undocumented (yet crucial) [know-how](know_how.md) of the people who built the engines decades ago was lost with those individuals who died or retired in the meanwhile; NASA had to start a ginormous project to reinvent its own relatively recent technology. The same is happening in the field of [programming](programming.md): [modern](modern.md) [soydevs](soydev.md) just CANNOT create as efficient software as hackers back then as due to normalization of wasting computing resources they threw away the knowledge of [optimization](optimization.md) technique and [wisdom](unix_philosophy.md) in favor of bullshit such as "soft skills" and memorizing one billion genders and personal pronouns. One might naively think that e.g. since our agriculture is highly efficient and advanced due to all the immense complexity of our current machines, simple farming without machines would be a child's play for us, however the opposite is true: we no longer know how to farm without machines. If a [collapse](collpase.md) comes, we are quite simply fucked.

File diff suppressed because one or more lines are too long

View file

@ -2,10 +2,10 @@
This is an autogenerated article holding stats about this wiki. This is an autogenerated article holding stats about this wiki.
- number of articles: 582 - number of articles: 583
- number of commits: 831 - number of commits: 832
- total size of all texts in bytes: 4031670 - total size of all texts in bytes: 4035391
- total number of lines of article texts: 30560 - total number of lines of article texts: 30595
- number of script lines: 262 - number of script lines: 262
- occurences of the word "person": 7 - occurences of the word "person": 7
- occurences of the word "nigger": 89 - occurences of the word "nigger": 89
@ -35,49 +35,49 @@ longest articles:
top 50 5+ letter words: top 50 5+ letter words:
- which (2297) - which (2298)
- there (1744) - there (1744)
- people (1547) - people (1549)
- example (1332) - example (1332)
- other (1256) - other (1258)
- number (1141) - number (1142)
- software (1127) - software (1128)
- about (1080) - about (1081)
- program (916) - program (916)
- their (860) - their (861)
- because (841) - because (842)
- would (822) - would (822)
- being (788) - being (788)
- called (787) - called (787)
- language (755) - language (756)
- numbers (747) - numbers (747)
- things (743) - things (744)
- something (743) - something (743)
- computer (742) - computer (742)
- simple (725) - simple (725)
- without (688) - without (689)
- function (673) - function (673)
- programming (672) - programming (672)
- these (645) - these (645)
- different (642) - different (642)
- however (633) - however (634)
- world (595) - world (595)
- system (594) - system (594)
- should (582) - should (582)
- doesn (574) - doesn (574)
- games (567) - games (569)
- point (563) - point (563)
- society (558) - society (559)
- while (543) - while (543)
- though (531) - though (531)
- drummyfish (528) - drummyfish (530)
- using (516) - using (516)
- still (514) - still (515)
- memory (508) - memory (508)
- possible (506) - possible (506)
- simply (501) - simply (502)
- similar (499) - similar (499)
- course (492) - course (493)
- technology (485) - technology (485)
- https (473) - https (473)
- always (462) - always (462)
@ -89,6 +89,21 @@ top 50 5+ letter words:
latest changes: latest changes:
``` ```
Date: Fri Jul 5 21:16:01 2024 +0200
art.md
czechia.md
fail_ab.md
idiot_fallacy.md
jokes.md
left_right.md
lgbt.md
marketing.md
number.md
race.md
random_page.md
shortcut_thinking.md
wiki_pages.md
wiki_stats.md
Date: Tue Jul 2 20:46:24 2024 +0200 Date: Tue Jul 2 20:46:24 2024 +0200
21st_century.md 21st_century.md
4chan.md 4chan.md
@ -113,21 +128,6 @@ Date: Tue Jul 2 20:46:24 2024 +0200
main.md main.md
marketing.md marketing.md
needed.md needed.md
nigger.md
operating_system.md
random_page.md
recursion.md
rms.md
smart.md
stereotype.md
suicide.md
terry_davis.md
wiki_pages.md
wiki_stats.md
wikipedia.md
woman.md
xonotic.md
Date: Sat Jun 29 19:04:58 2024 +0200
``` ```
most wanted pages: most wanted pages:
@ -156,9 +156,9 @@ most wanted pages:
most popular and lonely pages: most popular and lonely pages:
- [lrs](lrs.md) (283) - [lrs](lrs.md) (283)
- [capitalism](capitalism.md) (224) - [capitalism](capitalism.md) (225)
- [c](c.md) (215) - [c](c.md) (215)
- [bloat](bloat.md) (205) - [bloat](bloat.md) (206)
- [free_software](free_software.md) (171) - [free_software](free_software.md) (171)
- [game](game.md) (141) - [game](game.md) (141)
- [suckless](suckless.md) (137) - [suckless](suckless.md) (137)