diff --git a/c_tutorial.md b/c_tutorial.md index dc79c6b..71c233c 100644 --- a/c_tutorial.md +++ b/c_tutorial.md @@ -21,7 +21,7 @@ You should probably know at least the completely basic ideas of programming befo - Very old, well established and tested by time. - Recommended by us for serious programs. -If you come from a language like [Python](python.md) or [JavaScript](javascript.md), you may be shocked that C doesn't come with its own [package manager](package_manager.md), [debugger](debugger.md) or [build system](build_system.md), it doesn't have [modules](module.md), [generics](generics.md), [garabage collection](garbage_collection.d), [OOP](oop.md), [hashmaps](hashmap.md), dynamic [lists](list.md), [type inference](type_inference.md) and similar "[modern](modern.md)" featured. When you truly get into C, you'll find it's a good thing. +If you come from a language like [Python](python.md) or [JavaScript](javascript.md), you may be shocked that C doesn't come with its own [package manager](package_manager.md), [debugger](debugger.md) or [build system](build_system.md), it doesn't have [modules](module.md), [generics](generics.md), [garabage collection](garbage_collection.d), [OOP](oop.md), [hashmaps](hashmap.md), dynamic [lists](list.md), [type inference](type_inference.md) and similar "[modern](modern.md)" features. When you truly get into C, you'll find it's a good thing. Programming in C works like this: @@ -205,7 +205,7 @@ X is not greater than 10. And it is also smaller than 5. ``` -About **conditions** in C: a condition is just an expression (variables/functions along with arithmetic operators). The expression is evaluated (computed) and the number that is obtained is interpreted as *true* or *false* like this: **in C 0 means false, anything else means true**. Even comparison operators like `<` and `>` are technically arithmetic, they compare numbers and yield either 1 or 0. Some operators commonly used in conditions are: +About **conditions** in C: a condition is just an expression (variables/functions along with arithmetic operators). The expression is evaluated (computed) and the number that is obtained is interpreted as *true* or *false* like this: **in C 0 (zero) means false, 1 (and everything else) means true**. Even comparison operators like `<` and `>` are technically arithmetic, they compare numbers and yield either 1 or 0. Some operators commonly used in conditions are: - `==` (equals): yields 1 if the operands are equal, otherwise 0. - `!=` (not equal): yields 1 if the operands are NOT equal, otherwise 0. diff --git a/chess.md b/chess.md index 17ba20c..136a483 100644 --- a/chess.md +++ b/chess.md @@ -1,6 +1,6 @@ # Chess -Chess is a very old two-player board [game](game.md), perhaps most famous and popular among all board games in [history](history.md). It is a [complete information](complete_information.md) game that simulates a battle of two armies on an 8x8 board with different battle pieces. Chess is also called the King's Game, it has a world-wide competitive community and is considered an intellectual [sport](sport.md) but it's also been a topic of research (as the estimated number of chess games is bigger than [googol](googol.md), it is unlikely to ever be solved) and [programming](programming.md) (many chess engines, [AI](ai.md)s and frontends are being actively developed). Chess is similar to [shogi](shogi.md) ("Japanese chess") and [xiangqi](xiangqi.md) ("Chinese chess"). +Chess is a very old two-player board [game](game.md), perhaps most famous and popular among all board games in [history](history.md). It is a [complete information](complete_information.md) game that simulates a battle of two armies on an 8x8 board with different battle pieces. Chess is also called the King's Game, it has a world-wide competitive community and is considered an intellectual [sport](sport.md) but it's also been a topic of research (as the estimated number of chess games is bigger than [googol](googol.md), it is unlikely to ever be solved) and [programming](programming.md) (many chess engines, [AI](ai.md)s and frontends are being actively developed). Chess is similar to games such [shogi](shogi.md) ("Japanese chess"), [xiangqi](xiangqi.md) ("Chinese chess") and [checkers](checkers.md). { There is a nice black and white indie movie called *Computer Chess* about chess programmers of the 1980s, it's pretty good, very oldschool, starring real programmers and chess players, check it out. ~drummyfish } @@ -113,6 +113,7 @@ Besides similar games such as [shogi](shogi.md) there are many variants of chess - **puzzle**: For single player, chess positions are presented and the player has to find the best move or sequence of moves. - **racing kings**: The starting position has both players on the same side, the goal is to get one's king to the other side first. - **3D chess**: [3D](3d.md) generalization of chess. +- **randomly chosen variant**: Here a chess variant to be played is chosen at random before the game, e.g. by dice roll. { This is an idea I got, not sure if this exists or has a different name. ~drummyfish } ## Programming Chess diff --git a/float.md b/float.md index b0fe1f0..aaae40b 100644 --- a/float.md +++ b/float.md @@ -1,6 +1,6 @@ # Floating Point -Floating point arithmetic (colloquially just *float*) is a method of computer representation of [fractional](rational_number.md) numbers and approximating [real numbers](real_number.md), i.e. numbers with higher than [integer](integer.md) precision (such as 5.13), which is more complex than e.g. [fixed point](fixed_point.md). The core idea of it is to use a radix ("decimal") point that's not fixed but can move around so as to allow representation of both very small and very big values. Nowadays floating point is the standard way of [approximating](approximation.md) [real numbers](real_number.md) in computers (floating point types are called *real* in some programming languages, even though they represent only [rational numbers](rational_number.md), floats can't e.g. represent [pi](pi.md) exactly), basically all of the popular [programming languages](programming_language.md) have a floating point [data type](data_type.md) that adheres to the IEEE 754 standard, all personal computers also have the floating point hardware unit (FPU) and so it is widely used in all [modern](modern.md) programs. However most of the time a simpler representation of fractional numbers, such as the mentioned [fixed point](fixed_point.md), suffices, and weaker computers (e.g. [embedded](embedded.md)) may lack the hardware support so floating point operations are emulated in software and therefore slow -- for these reasons we consider floating point [bloat](bloat.md) and recommend the preference of fixed point. +Floating point arithmetic (colloquially just *float*) is a method of computer representation of [fractional](rational_number.md) numbers and approximating [real numbers](real_number.md), i.e. numbers with higher than [integer](integer.md) precision (such as 5.13), which is more complex than e.g. [fixed point](fixed_point.md). The core idea of it is to use a radix ("decimal") point that's not fixed but can move around so as to allow representation of both very small and very big values. Nowadays floating point is the standard way of [approximating](approximation.md) [real numbers](real_number.md) in computers (floating point types are called *real* in some programming languages, even though they represent only [rational numbers](rational_number.md), floats can't e.g. represent [pi](pi.md) exactly), basically all of the popular [programming languages](programming_language.md) have a floating point [data type](data_type.md) that adheres to the IEEE 754 standard, all personal computers also have the floating point hardware unit (FPU) and so it is widely used in all [modern](modern.md) programs. However most of the time a simpler representation of fractional numbers, such as the mentioned [fixed point](fixed_point.md), suffices, and weaker computers (e.g. [embedded](embedded.md)) may lack the hardware support so floating point operations are emulated in software and therefore slow -- remember, float rhymes with [bloat](bloat.md). Prefer fixed point. **Floating point is tricky**, it works most of the time but a danger lies in programmers relying on this kind of [magic](magic.md) too much, some new generation programmers may not even be very aware of how float works. Even though the principle is not so hard, the emergent complexity of the math is really complex. One floating point expression may evaluate differently on different systems, e.g. due to different rounding settings. One possible pitfall is working with big and small numbers at the same time -- due to differing precision at different scales small values simply get lost when mixed with big numbers and sometimes this has to be worked around with tricks (see e.g. [this](http://the-witness.net/news/2022/02/a-shader-trick/) devlog of The Witness where a float time variable sent into [shader](shader.md) is periodically reset so as to not grow too large and cause the mentioned issue). Another famous trickiness of float is that you shouldn't really be comparing them for equality with a normal `==` operator as small rounding errors may make even mathematically equal expressions unequal (i.e. you should use some range comparison instead). diff --git a/hero_culture.md b/hero_culture.md index 328c13e..d0c419e 100644 --- a/hero_culture.md +++ b/hero_culture.md @@ -1,7 +1,7 @@ # Hero Culture -Hero culture is a [harmful](harmful.md) culture of creating and worshiping heroes which leads to e.g. creation of [cults of personality](cult_of_personality.md), strengthening [fight culture](fight_culture.md) and establishing hierarchical, anti-[anarchist](anarchism.md) society of "winners" and "losers". The concept of a hero is one that arose in context of [wars](war.md) and other many times violent conflicts; a hero is different from a mere authority in some area, it is someone who creates fear of disagreement and whose image is distorted to a much more positive, sometimes godlike state, by which he distorts truth and is given a certain power over others. Therefore [we](lrs.md) highly warn about falling to the trap of hero culture, though this is very difficult in current highly hierarchical society. **To us, the word hero has a pejorative meaning**. Our advice is always this: +Hero culture is a [harmful](harmful.md) culture of creating and worshiping heroes and "leaders" (and other kinds of [celebrities](celebrity.md)) which leads to e.g. creation of [cults of personality](cult_of_personality.md), strengthening [fight culture](fight_culture.md) and establishing hierarchical, anti-[anarchist](anarchism.md) society of "winners" and "losers". The concept of a hero is one that arose in context of [wars](war.md) and other many times violent conflicts; a hero is different from a mere authority or a well known individual in some area, it is someone who creates fear of disagreement and whose image is distorted to a much more positive, sometimes godlike state, by which he distorts truth and is given a certain power over others. Therefore [we](lrs.md) highly warn about falling to the trap of hero culture, though this is very difficult in current highly hierarchical society. **To us, the word hero has a pejorative meaning**. Our advice is always this: **Do NOT create heroes. Follow ideas, not people**. And similarly: hate ideas, not people. -Smart people know this and those being named *heroes* themselves many times protest it, e.g. Marie Curie has famously stated: "be less curious about people and more curious about ideas." Anarchists purposefully don't name theories after their inventors but rather by their principles, knowing that people are imperfect, they carry distorting associations and their images are twisted by history and politics. Abusive regimes are the ones who use heroes and their names for propaganda -- Stalinism, Leninism, corporations such as Ford, named after their founder etc. Heroes become brands whose stamp of approval is used to push bad ideas... especially popular are heroes who are already dead and can't protest their image being abused -- see for example how [Einstein's](einstein.md) image has been raped by [capitalists](capitalism.md) for their own propaganda, e.g. by [Apple](apple.md)'s [marketing](marketing.md), while in fact Einstein was a pacifist socialist. This is not to say an idea's name cannot be abused, the word *[communism](communism.md)* has for example become something akin a swear word after being abused by regimes that had little to do with real communism. Nevertheless it is still much better to focus on ideas as ideas always carry their own principle embedded within them, visible to anyone willing to look. Focusing on ideas allows us to discuss them critically, it allows us to reject a bad concept without "attacking" the human who came up with it. \ No newline at end of file +Smart people know this and those being named *heroes* themselves many times protest it, e.g. Marie Curie has famously stated: "be less curious about people and more curious about ideas." Anarchists purposefully don't name theories after their inventors but rather by their principles, knowing the danger of hero culture leading to social hierarchy and also that people are imperfect -- people are like packages, a mixture of both good and bad inadvertently inseparable, they carry distorting associations, they make mistakes and their images are twisted by history and politics -- even the character of [Jesus](jesus.md), a "theoretically perfect human", has been many times twisted in ways that are hard to believe. Worshiping an individual always comes with the tendency to embrace and support everything he does, all his opinions and actions, including the extremely bad ones. Abusive regimes are the ones who use heroes and their names for propaganda -- Stalinism, Leninism, corporations such as Ford, named after their founder etc. Heroes become brands whose stamp of approval is used to push bad ideas... especially popular are heroes who are already dead and can't protest their image being abused -- see for example how [Einstein's](einstein.md) image has been raped by [capitalists](capitalism.md) for their own propaganda, e.g. by [Apple](apple.md)'s [marketing](marketing.md), while in fact Einstein was a pacifist socialist highly critical of capitalism. This is not to say an idea's name cannot be abused, the word *[communism](communism.md)* has for example become something akin a swear word after being abused by regimes that had little to do with real communism. Nevertheless it is still much better to focus on ideas as ideas always carry their own principle embedded within them, visible to anyone willing to look, and can be separated from other ideas very easily. Focusing on ideas allows us to discuss them critically, it allows us to reject a bad concept without "attacking" the human who came up with it. \ No newline at end of file diff --git a/race.md b/race.md index cb0220d..21b940f 100644 --- a/race.md +++ b/race.md @@ -8,7 +8,7 @@ Instead of the word *race* the politically correct camp uses words such as *ethn **Race can be told from the shape of the skull and one's [DNA](dna.md)**, which finds use e.g. in forensics to help solve crimes. It is officially called the *ancestry estimation*. Some idiots say this should be forbidden to do because it's "racist" lmao. Besides the obvious visual difference such as skin color **races also have completely measurable differences acknowledged even by modern "science"**, for example unlike other races about 90% of Asians have dry earwax. Similar absolutely measurable differences exist in height, body odor, alcohol and lactose tolerance, high altitude tolerance, vulnerability to specific diseases, hair structure, cold tolerance, risk of obesity, behavior (see e.g. the infamous *[chimp out](chimp_out.md)* behavior of black people) and others. While dryness of earwax is really a minor curiosity, it is completely unreasonable to believe that race differences stop at traits we humans find unimportant and that genetics somehow magically avoids affecting traits that are harder to measure and which our current society deems politically incorrect to exist. In fact differences in important areas such as intelligence were measured very well -- these are however either censored or declared incorrect and "debunked" by unquestionable "science" authorities, because politics. -The politically correct camp further argues that there wasn't enough time for human races to develop significant differences as evolution operates on scales of millions of years while the evolution of modern humans was taking part about in an order of magnitude smaller time scale. However it has been shown that evolution can be much faster under specific conditions, e.g. those of rapid environment change and interbreeding with other species (e.g. Neanderthals, which European population bred with but African population didn't), which did occur when humans spread around the world and had to live in vastly different conditions -- successful civilizations themselves actually furthermore started to rapidly change their environment to something that favors very different traits. We can take a look at the enormous differences between dog breeds which have been bred mostly during only the last 200 years and whose differences are enormous and not only physical, but also that of intelligence and temperament -- yes, the breeding of dogs has been selective, but a rapid change in environment may have a similar accelerating effect, and the process in humans still took many tens of thousands of years. For example races of slaves were probably selectively bred, even if unintentionally, as physically fit slaves were more likely to survive than those who were smart; similarly in prospering civilizations, e.g. that of Europe, where trade, business and development of technology (e.g. military) became more crucial for survival than in primitive desert or jungle civilizations, different traits such as intelligence became preferred by evolution. +The politically correct camp further argues that there wasn't enough time for human races to develop significant differences as evolution operates on scales of millions of years while the evolution of modern humans was taking part about in an order of magnitude smaller time scale. However it has been shown that evolution can be much faster under specific conditions, e.g. those of rapid environment change (shown e.g. in a documentary *Laws of the Lizard* on anoles that show signs of evolutionary change only after 14 years) and interbreeding with other species (e.g. Neanderthals, which European population bred with but African population didn't), which did occur when humans spread around the world and had to live in vastly different conditions -- successful civilizations themselves actually furthermore started to rapidly change their environment to something that favors very different traits. We can take a look at the enormous differences between dog breeds which have been bred mostly during only the last 200 years and whose differences are enormous and not only physical, but also that of intelligence and temperament -- yes, the breeding of dogs has been selective, but a rapid change in environment may have a similar accelerating effect, and the process in humans still took many tens of thousands of years. For example races of slaves were probably selectively bred, even if unintentionally, as physically fit slaves were more likely to survive than those who were smart; similarly in prospering civilizations, e.g. that of Europe, where trade, business and development of technology (e.g. military) became more crucial for survival than in primitive desert or jungle civilizations, different traits such as intelligence became preferred by evolution. Denying the facts regarding human race is called [race denialism](race_denialism.md), the acceptance of these facts is called [race realism](race_realism.md). Race denialism is part of the basis of today's [pseudoleftist](pseudoleft.md) political ideology, theories such as polygenism (multiregional hypothesis) are forbidden to be supported and they're ridiculed and demonized by mainstream information sources like [Wikipedia](wikipedia.md) who only promote the [politically correct](political_correctness.md) "out of Africa" theory. [SJWs](sjw.md) reject any idea of a race with the same religious fanaticism with which Christian fanatics opposed Darwin's evolution theory. diff --git a/rms.md b/rms.md index 07f82e3..3da69fa 100644 --- a/rms.md +++ b/rms.md @@ -1,5 +1,7 @@ # Richard Stallman +{ RMS is a legend and overall a great human, but let's be reminded we shouldn't be creating any [heroes](hero_culture.md) or celebrities. ~drummyfish } + The great doctor Richard Matthew Stallman (RMS, also [GNU](gnu.md)/Stallman and saint IGNUcius, born 1953 in New York) is one of the biggest figures in software [history](history.md), inventor of [free software](free_software.md), founder of the [GNU project](gnu.md), [Free Software Foundation](fsf.md), a great [hacker](hacking.md) and the author of a famous text editor [Emacs](emacs.md). He is a non-religious [Jew](jew.md) and an [atheist](atheism.md) (though he is the highest saint of [Church Of Emacs](church_of_emacs.md)), a man who firmly stands behind his beliefs and who's been advocating for ethics and user freedom in the computing world. He has also been called the *king of software [cloning](clone.md)*, for he started the wave of making free, ethical clones of proprietary programs. ``` @@ -17,7 +19,7 @@ Stallman's life along with free software's history is documented by a free-licen [tl;dr](tldr.md): At 27 as an employee at [MIT](mit.md) AI labs Stallman had a bad experience when trying to fix a Xerox printer who's [proprietary](proprietary.md) software source code was made inaccessible; he also started spotting the betrayal of hacker principles by others who decided to write proprietary software -- he realized proprietary software was inherently wrong as it prevented studying, improvement and sharing of software and enable abuse of users. From 1982 he was involved in a "fight" against the Symbolics company that pushed aggressive proprietary software; he was rewriting their software from scratch to allow Lisp Machine users more freedom -- here he proved his superior programming skills as he was keeping up with the whole team of Symbolics programmers. By 1983 his frustration reached its peak and he announced his [GNU](gnu.md) project on the [Usenet](usenet.md) -- this was a project to create a completely [free as in freedom](free_software.md) [operating system](os.md), an alternative to the proprietary [Unix](unix.md) system that would offer its users freedom to use, study, modify and share the whole software, in the hacker spirit. He followed by publishing a manifesto and establishing the [Free Software Foundation](fsf.md). GNU and FSF popularized and standardized the term [free (as in freedom) software](free_software.md), [copyleft](copyleft.md) and free licensing, mainly with the [GPL](gpl.md) license. In the 90s GNU adopted the [Linux](linux.md) operating system kernel and released a complete version of the GNU operating system -- these are nowadays known mostly as "Linux" [distros](distro.md). As a head of FSF and GNU Stallman more or less stopped programming and started traveling around the world to give talks about free software and has earned his status of one of the most important people in software history. -Regarding [software](software.md) Stallman has for his whole life strongly and tirelessly promoted free software and [copyleft](copyleft.md) and has himself only used free software; he has always practiced what he preched and led the best example of how to live without [proprietary](proprietary.md) software. This is amazing. Nevertheless he isn't too concerned about [bloat](bloat.md) (judging by the GNU software and his own creation, [Emacs](emacs.md)) and he also doesn't care that much about [free culture](free_culture.md) (some of his written works prohibit modification and his GNU project allows proprietary non-functional data). Sadly he has also shown signs of being a [type A fail](fail_ab.md) personality by writing about some kind of [newspeak](newspeak.md) "*gender neutral language*" and by seeming to be caught in a [fight culture](fight_culture.md). Nevertheless he definitely can't be accused of populism or hypocrisy as he basically tells what he considers to be the truth no matter what, and he is very consistent in this. Some of his unpopular opinions brought him a lot of trouble, e.g. the wrath of [SJWs](sjw.md) in 2019 for his criticism of the [pedo](pedophile.md) witch hunt. +Regarding [software](software.md) Stallman has for his whole life strongly and tirelessly promoted free software and [copyleft](copyleft.md) and has himself only used free software; he has always practiced what he preched and led the best example of how to live without [proprietary](proprietary.md) software. This is amazing. Nevertheless he isn't too concerned about [bloat](bloat.md) (judging by the GNU software and his own creation, [Emacs](emacs.md)) and he also doesn't care that much about [free culture](free_culture.md) (some of his written works prohibit modification and his GNU project allows proprietary non-functional data). Sadly he has also shown signs of being a [type A fail](fail_ab.md) personality by writing about some kind of [newspeak](newspeak.md) "*gender neutral language*" and by seeming to be caught in a [fight culture](fight_culture.md). On his website he also has an [American](usa.md) flag and claims to be a patriot, i.e. leaning to nationalism and therefore [fascism](fascism.md). Nevertheless he definitely can't be accused of populism or hypocrisy as he basically tells what he considers to be the truth no matter what, and he is very consistent in this. Some of his unpopular opinions brought him a lot of trouble, e.g. the wrath of [SJWs](sjw.md) in 2019 for his criticism of the [pedo](pedophile.md) witch hunt. He is a weird guy, having been recorded on video eating dirt from his feet before giving a lecture. In the book *Free as in Freedom* he admits he might be slightly [autistic](autism.md). Nevertheless he's pretty smart, has magna cum laude degree in [physics](physics.md) from Harvard, 10+ honorary doctorates, fluently speaks English, Spanish and French and a little bit of Indonesian and has many times proven his superior programming skills (even though he later stopped programming to fully work on promoting the FSF). diff --git a/steve_jobs.md b/steve_jobs.md index bdf1322..9ce197d 100644 --- a/steve_jobs.md +++ b/steve_jobs.md @@ -4,4 +4,4 @@ Steve Jobs was the prototypical evil [CEO](ceo.md) and co-founder of one of the worst [corporations](corporation.md) in the world: [Apple](apple.md). He was a psychopathic entrepreneur with a cult of personality that makes Americans cum. He was mainly known for his ability to manipulate people and he worsened technology by making it more consumerist, expensive and incompatible with already existing technology. -Jobs was born on February 24, 1955 and later was adopted which may have contributed to his development of psychopathy. He was already very stupid as a little child, he never really learned programming and was only interested in achieving what he wanted by crying and pressuring other people to do things for him. This translated very well to his adult life when he quit school to pursue money. He manipulated and abused his schoolmate [Steve Wozniak](wozniak.md), a [hacker](hacker.md), to make computers for him. They started [Apple](apple.md) in 1976 and started producing one of the first personal computers: Apple I and Apple II with which he won the [capitalist](capitalism.md) lottery and unfortunately succeeded on the market. Apple became a big ass company, however Jobs was such [shit](shit.md) CEO that **Apple fired him** lol. He went to do some other shit like NeXT. Then a bunch of things happened (TODO) and then, to the relief of the whole world, he died on October 5, 2011 from cancer. \ No newline at end of file +Jobs was born on February 24, 1955 and later was adopted which may have contributed to his development of psychopathy. He was already very stupid as a little child, he never really learned programming and was only interested in achieving what he wanted by crying and pressuring other people to do things for him. This translated very well to his adult life when he quit school to pursue money. He manipulated and abused his schoolmate [Steve Wozniak](wozniak.md), a [hacker](hacker.md), to make computers for him. They started [Apple](apple.md) in 1976 and started producing one of the first personal computers: Apple I and Apple II with which he won the [capitalist](capitalism.md) lottery and unfortunately succeeded on the market. Apple became a big ass company, however Jobs was such [shit](shit.md) CEO that **Apple fired him** lol. He went to do some other shit like NeXT. Then a bunch of things happened (TODO) and then, to the relief of the whole world, he died on October 5, 2011 from cancer. { LRS never wishes for anyone's death, here we only state the simple fact that the world is a better place without Jobs in it. ~drummyfish } \ No newline at end of file