master
Miloslav Ciz 3 months ago
parent ed1a6561bb
commit 940ac8279b

35
c.md

@ -4,7 +4,7 @@
C is an [old](old.md) [low level](low_level.md) structured [statically typed](static_typing.md) [imperative](imperative.md) compiled [programming language](programming_language.md), it is very fast and currently mostly used by [less retarded software](lrs.md). Though by very strict standards it would still be considered [bloated](bloat.md), compared to any mainstream [modern](modern.md) language it is very bullshitless, [KISS](kiss.md) and greatly established and "culturally stable", so it is also the go-to language of the [suckless](suckless.md) community as well as most true experts, for example the [Linux](linux.md) and [OpenBSD](openbsd.md) developers, because of its good, relatively simple design, **uncontested performance**, **wide support**, great number of compilers, level of control and a greatly established and tested status. C is **perhaps the most important language in history**; it influenced, to smaller or greater degree, basically all of the widely used languages today such as [C++](c.md), [Java](java.md), [JavaScript](javascript.md) etc., however it is not a thing of the past -- in the area of low level programming C is still the number one unsurpassed language. C is by no means perfect but it is currently probably the best choice of a programming language (along with [comun](comun.md), of course).
{ Look up *The Ten Commandments for C Programmers* by Henry Spencer. ~drummyfish }
{ Look up *The Ten Commandments for C Programmers* by Henry Spencer. Also the *Write in C* song (parody of *Let it Be*). ~drummyfish }
It is usually **not considered an easy language to learn** because of its low level nature: it requires good understanding of how a [computer](computer.md) actually works and doesn't prevent the programmer from shooting himself in the foot. Programmer is given full control (and therefore responsibility). There are things considered "tricky" which one must be aware of, such as undefined behavior of certain operators and raw pointers. This is what can discourage a lot of modern "coding monkeys" from choosing C, but it's also what inevitably allows such great performance -- undefined behavior allows the compiler to choose the most efficient implementation. On the other hand, C as a language is pretty simple without [modern](modern.md) bullshit concepts such as [OOP](oop.md), it is not as much hard to learn but rather hard to master, as any other true art.
@ -48,7 +48,7 @@ C is extreme well established, standardized and implemented so there is a great
- [gcc](gcc.md): The main "big name" that can compile all kinds of languages including C, used by default in many places, very [bloated](bloat.md) and can take long to compile big programs, but is pretty good at [optimizing](optimization.md) the code and generating fast code. Also has number of frontends and can compile for many platforms. Uses GENERIC/GIMPLE [intermediate representation](intermediate_representation.md).
- [clang](clang.md): Another big bloated compiler, kind of competes with gcc, is similarly good at optimization etc. Uses [LLVM](llvm.md) intermediate representation.
- [tcc](tcc.md): Tiny C compiler, [suckless](suckless.md), orders of magnitude smaller (currently around 25 KLOC) and simpler than gcc and clang, cannot optimize nearly as well as the big compilers so the generated executables can be a bit slower and bigger, however besides its internal simplicity there are many advantages, mainly e.g. fast compilation (claims to be 9 times faster than gcc) and small tcc executable (about 100 kB). Seems to only support x86.
- [tcc](tcc.md): Tiny C compiler, [suckless](suckless.md), orders of magnitude smaller (currently around 25 KLOC) and simpler than gcc and clang, doesn't use any intermediate representation, cannot optimize nearly as well as the big compilers so the generated executables can be a bit slower and/or bigger (though sometimes they may be smaller), however besides its internal simplicity there are many advantages, mainly e.g. fast compilation (claims to be 9 times faster than gcc) and small tcc executable (about 100 kB). Seems to only support x86 at the moment.
- [scc](scc.md): Another small/suckless C compiler, currently about 30 KLOC.
- [DuskCC](duskcc.md): [Dusk OS](duskos.md) C compiler written in [Forth](forth.md), focused on extreme simplicity, probably won't adhere to standards completely.
- [8c](8c.md), [8cc](8cc.md), [chibicc](chibicc.md): Some other small compilers.
@ -57,7 +57,7 @@ C is extreme well established, standardized and implemented so there is a great
- [pcc](pcc.md): A very early C compiler that was later developed further to support even the C99 standard.
- Borland Turbo C: old proprietary compiler with [IDE](ide.md).
- [sdcc](sdcc.md) (small device C compiler): For small 8 bit [microcontrollers](mcu.md).
- msvc ([Micro$oft](microsoft.md) visual C++): Badly bloated proprietary C/C++ compiler by a shitty corporation. Avoid.
- msvc ([Micro$oft](microsoft.md) visual C++): Badly bloated proprietary C/C++ compiler by a shitty [corporation](corporation.md). Avoid.
- ...
## Standard Library
@ -71,21 +71,36 @@ The standard library (libc) is a subject of live debate because while its interf
- [not using](dependency.md) the standard library :)
- ...
## Bad Things About C
## Good And Bad Things About C
Firstly let's sum up some of the reasons why C is so good:
- **C as a language is relatively simple**: Though strictly speaking it's not in the league of most minimal languages like [Forth](forth.md) and [Lisp](lisp.md), C is the next best thing in terms of [minimalism](minimalism.md) and the small amount of bloat it contains is usually somehow justified at least, the language (or its subset) can be implemented in a quite minimal way if one so desires. It employs little [abstraction](abstraction.md). This all helps performance, freedom and encourages many implementations. C's standard library also isn't gigantic, the important parts basically just provide I/O and help with simple things like manipulating strings and memory allocation, so new C implementations aren't burdened by having to implement tons of libraries.
- **It is extremely fast and efficient**: Owing to other mentioned points such as good specification, simplicity, lack of bullshit and having a good balance between low and high level attributes, C is known for being possibly the fastest [portable](portability.md) language in existence, also greatly efficient with memory etc.
- **C doesn't limit you or hold (tie) your hands**: This is bad for the beginner but great for the expert, most of the times C won't "protect" you from doing anything, even crashing your program -- this kind of freedom is necessary to achieve truly marvelous things, C is like a race car, it doesn't have speed limiters and automatic transmission, nothing that would tie your hands or increase the car weight, it trusts in you being a good driver.
- **C is highly standardized**: Many languages have some kind of "online specification", however C is on the next level by literally being officially standardized by the forefront standardizing organizations like ANSI and ISO, by full time paid experts over many years and iterations, so the language is extremely well defined and described, down to saying which exact things are left undefined/unspecified, leaving freedom of implementation that leads to the language's great performance.
- **It's extremely well establishes, optimized, stable and time tested, with many tools**: Being among the oldest languages, the language of the old time [hackers](hacking.md) and the language of [Unix](unix.md), maybe the most important piece of software in history, C has been so widely adopted, reimplemented, optimized and tested over and over that it's considered to be among the most essential pieces of software any platform has to have. Everything on the low level is written in C, so you essentially first have to have C to be able to run anything else. Many companies have invested great many resources to making C fast as it benefited them. While other languages come and go, or at least mutate and become something else over time, C stands as one of very few stable things in computer technology. There are also tons and tons of tools that help with C development, various static analyzers, debuggers, code beautifiers etcetc.
- **It doesn't have any [modern](modern.md) [bullshit](bullshit.md)**: There is no [OOP](oop.md), [generics](generics.md), [garbage collection](garbage_collection.md), no [package manager](package_manager.md) etc.
- **There is a huge number of [compilers](compiler.md)**: While a "[modern](modern.md)" language has some kind of main reference implementation and then maybe one of two alternative implementations, C has dozens (maybe even hundreds) of compilers. You'll find compilers under all the [licenses](license.md), huge ones with many features and great optimizations, small ones that will run on tiny devices, ones that compile very fast, ones that translate C to other languages etcetc.
- **It is elitist**: The relatively higher difficulty of learning the language has a nice effect of keeping idiots out of its community, keeping the language less intoxicated by retarded ideas.
- **C is close to the [hardware](hw.md), reflecting how computers work**: This has many advantages: firstly efficiency, as code that maps well to hardware is predictable and efficient, lacking [magic](magic.md) in translation. It simplifies implementations, making the language more free. Then also the programmer himself is close to the machine, he has to learn how it works, what it likes and dislikes -- a knowledge every programmer has to have.
- **There is a great balance between low and high level (minimalism vs "features")**: C seems to have hit a sweet spot at which it offers just enough high level features for comfortable programming, such as [data types](data_type.md), functions and expressions, while not crossing the line beyond which it would have to pay a high cost for this comfort, i.e. it managed to buy us a lot practically for free. Things like this cannot really be planned well, it takes a genius and intuition to design a language this way, this shows the greatness of the old master programmers.
- **It is [old](old.md), written only by white male [hackers](hacking.md), at times when [capitalism](capitalism.md) was weaker**: No [women](woman.md) were probably involved in the development (of course we aren't racists or sexists, it's just a fact that white men are best at programming), the development was largely part of genuine research, at the time when computers weren't mainstream and computer technology wasn't being raped as hard as today. C developers didn't even think of embedding any political message in the language. Times like this will never be repeated.
- ...
Nothing is [perfect](perfect.md), not even C; it was one of the first relatively higher level languages and even though it has showed to have been designed extremely well, some things didn't age great, or were simply bad from the start. We still prefer this language as usually the best choice, but it's good to be aware of its downsides or smaller issues, if only for the sake of one day designing a better language. Keep in mind all here are just suggestions, they made of course be a subject to counter arguments and further discussion. So, let's go:
Now let's admit that nothing is [perfect](perfect.md), not even C; it was one of the first relatively higher level languages and even though it has showed to have been designed extremely well, some things didn't age great, or were simply bad from the start. We still prefer this language as usually the best choice, but it's good to be aware of its downsides or smaller issues, if only for the sake of one day designing a better language. Keep in mind all here are just suggestions, they made of course be a subject to counter arguments and further discussion. Here are some of the **bad things** about the language:
- **C specification (the ISO standard) is [proprietary](proprietary.md)** :( The language itself probably can't be copyrighted, nevertheless this may change in the future, and a proprietary specs lowers C's accessibility and moddability (you can't make derivative versions of the spec).
- **The specification is also long as fuck** (approx. 500 pages, our of that 163 of the pure language), indicating [bloat](bloat.md)/complexity/obscurity. A good, free language should have a simple definition. It could be simplified a lot by simplifying the language itself as well as dropping some truly legacy considerations (like [BCD](bcd.md) systems?) and removing a lot of undefined behavior.
- **Some behavior is weird and has exceptions**, for example a function can return anything, including a `struct`, except for an array. This makes it awkward to e.g. implement vectors which would best be made as arrays but you want functions to return them, so you may do hacks like wrapping them instide a struct just for this.
- **Some behavior is weird and has unnecessary exceptions**, for example a function can return anything, including a `struct`, except for an array. This makes it awkward to e.g. implement vectors which would best be made as arrays but you want functions to return them, so you may do hacks like wrapping them inside a struct just for this.
- **Some things could be made simpler**, e.g. using [reverse polish](reverse_polish.md) notation for expressions, rather than expressions with brackets and operator precedence, would make implementations much simpler, increasing sucklessness (of course readability is an argument).
- **Some things could be dropped entirely** ([enums](enum.md), [bitfields](bitfield.md), possibly also unions etc.), they can be done and imitated in other ways without much hassle.
- **The preprocessor isn't exactly elegant**, it has completely different syntax and rules from the main language, not very suckless -- ideally preprocessor uses the same language as the base language.
- **The syntax is sucky sometimes**, e.g. case with variable inside it HAS TO be enclosed in curly brackets but other ones don't, data type names may consist of multiple tokens (`long long int` etc.), multiplication uses the same symbol as pointer dereference (`*`), many preprocessor commands need to be on separate lines (makes some one liners impossible), also it's pretty weird that the condition after `if` has to be in brackets etc., it could all be designed better. Keywords also might be better being single chars, like `?` instead of `if` etc. (see [comun](comun.md)). A shorter, natural-language-neutral source code would be probably better. Both line and block comments could be implemented with a single character (e.g. `#` for line comment, ending with a newline or another `#`, `##` for block comment ending with another `##`?).
- **Some undefined/unspecified behavior would maybe be better defined/specified** -- undefined behavior isn't bad in general, it is what allows C to be so fast and efficient in the first place, but some of it has shown to be rather cumbersome; for example the unspecified representation of integers, their binary size and behavior of floats leads to a lot of trouble (unknown upper bounds, sizes, undefined behavior of many operators etc.) while practically all computers have settled on using 8 bit bytes, [two's complement](twos_complement.md) and IEEE754 for [floats](float.md) -- this could easily be made a mandatory assumption which would simplify great many things without doing basically any harm. New versions of C actually already settle on two's complement. This doesn't mean C should be shaped to reflect the degenerate "[modern](modern.md)" trends in programming though!
- **The syntax is sucky sometimes**, e.g. case with variable inside it HAS TO be enclosed in curly brackets but other ones don't, data type names may consist of multiple tokens (`long long int` etc.), multiplication uses the same symbol as pointer dereference (`*`), many preprocessor commands need to be on separate lines (makes some one liners impossible), also it's pretty weird that the condition after `if` has to be in brackets etc., it could all be designed better. Keywords also might be better being single chars, like `?` instead of `if` etc. (see [comun](comun.md)). A shorter source code that doesn't try to imitate English would be probably better.
- **Some undefined/unspecified behavior is probably unnecessary** -- undefined behavior isn't bad in general of course, it is what allows C to be so fast and efficient in the first place, but some of it has shown to be rather cumbersome; for example the unspecified representation of integers, their binary size and behavior of floats leads to a lot of trouble (unknown upper bounds, sizes, dangerous and unpredictable behavior of many operators, difficult testing etc.) while practically all computers have settled on using 8 bit bytes, [two's complement](twos_complement.md) and IEEE754 for [floats](float.md) -- this could easily be made a mandatory assumption which would simplify great many things without doing basically any harm. New versions of C actually already settle on two's complement. This doesn't mean C should be shaped to reflect the degenerate "[modern](modern.md)" trends in programming though!
- Some basic things that are part of libraries or extensions, like fixed width types and binary literals and possibly very basic I/O (putchar/readchar), could be part of the language itself rather than provided by libraries.
- All that stuff with *.c* and *.h* files is unnecessary, there should just be one file type -- this isn't part of the language per se, but it's part of its culture.
- TODO: moar
- All that stuff with *.c* and *.h* files is unnecessary, there should just be one file type probably.
- ...
## Basics

@ -54,7 +54,9 @@ C is **not** a subset of C++, i.e. not every C program is a C++ program (for sim
For portability sake it is good to try to write C code that will also compile as C++ (and behave the same). For this we should know some basic differences in behavior between C and C++.
One difference lies for example in [pointers](pointer.md) to string literals. While in C it is possible to have non-const pointers such as
One difference is e.g. in that type of character literals is int in C but char in C++, so `sizeof('x')` will likely yield different values.
Another difference lies for example in [pointers](pointer.md) to string literals. While in C it is possible to have non-const pointers such as
```
char *s = "abc";
@ -66,7 +68,18 @@ C++ requires any such pointer to be `const`, i.e.:
const char *s = "abc";
```
TODO: more examples
C++ generally has stronger typing, e.g. C allows assigning a pointer to void to any other pointer while C++ requires explicit type cast, typically seen with malloc:
```
int *array1 = malloc(N * sizeof(int)); // valid only in C
int *array2 = (int *) malloc(N * sizeof(int)); // valid in both C and C++
```
C allows skipping initialization (variable declarations) e.g. gotos or switches, C++ prohibits it.
And so on.
{ A quite detailed list is at https://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B. ~drummyfish }
## Compiler Optimizations

@ -1,6 +1,6 @@
# Cat-v
Cat-v.org (accessible at http://cat-v.org) is a [minimalist](minimalism.md) [hacker](hacking.md) website describing itself as a *random contrarian insurgent organization* which promotes [critical thinking](critical_thinking.md), [free speech](free_speech.md), examines [technology](tech.md) from minimalist point of view, opposes [orthodoxy](orthodoxy.md) and talks about wider context of technology such as [politics](politics.md), society and philosophy; the site hosts a few "subsites", e.g. those related to [Plan 9](plan9.md) OS and [Go](golang.md) language, however most famous is its *[encyclopedia](encyclopedia.md) of things considered harmful* (http://harmful.cat-v.org/). The whole site, especially the "harmful" section (which was the first one), revolves around the phrase **"considered [harmful](harmful.md)"** -- this is basically a [computer science](compsci.md) academic [meme](meme.md) that started with a 1968 paper named "Go To Statement Considered Harmful" which was later followed by dozens of similarly named articles; cat-v is taking this to the next level by building a whole website about all things *considered harmful*. The name of the site itself comes from [Rob Pike](rob_pike.md)'s 1983 presentation "UNIX Style, or cat -v Considered Harmful" that criticized the `-v` flag of the [Unix](unix.md) [cat](cat.md) program as such flag, strictly speaking, violates the [Unix philosophy](unix_philosophy.md) (cat should only concatenate files, the flag makes it do something that should rather be done by another program). Though maybe coincidental, the name is also similar to CatB (a short for famous hacker essay/book [Cathedral and Bazaar](cathedral_and_bazaar.md)). The site is very nice, made in plain HTML minimalist style, working with HTTP and besides others contains a ton of great quotes on every topic, there is also an [IRC](irc.md), mailing list and a blog.
Cat-v.org (accessible at http://cat-v.org) is a [minimalist](minimalism.md) [hacker](hacking.md) website describing itself as a *random contrarian insurgent organization* which promotes [critical thinking](critical_thinking.md), [free speech](free_speech.md), examines [technology](tech.md) from minimalist point of view, opposes [orthodoxy](orthodoxy.md) and talks about wider context of technology such as [politics](politics.md), society and philosophy; the site hosts a few "subsites", e.g. those related to [Plan 9](plan9.md) OS and [Go](golang.md) language, however most famous is its *[encyclopedia](encyclopedia.md) of things considered harmful* (http://harmful.cat-v.org/). The whole site, especially the "harmful" section (which was the first one), revolves around the phrase **"considered [harmful](harmful.md)"** -- this is basically a [computer science](compsci.md) academic [meme](meme.md) that started with a 1968 paper named "Go To Statement Considered Harmful" which was later followed by dozens of similarly named articles; cat-v is taking this to the next level by building a whole website about all things *considered harmful*. The name of the site itself comes from [Rob Pike](rob_pike.md)'s 1983 presentation "UNIX Style, or cat -v Considered Harmful" that criticized the `-v` flag of the [Unix](unix.md) [cat](cat.md) program as such flag, strictly speaking, violates the [Unix philosophy](unix_philosophy.md) (cat should only concatenate files, the flag makes it do something that should rather be done by another program). Though maybe coincidental, the name is also similar to CatB (a short for famous hacker essay/book [Cathedral and Bazaar](bazaar.md)). The site is very nice, made in plain HTML minimalist style, working with HTTP and besides others contains a ton of great quotes on every topic, there is also an [IRC](irc.md), mailing list and a blog.
The section "considered harmful" contains many things, even quite general ones, probably to provoke thought -- one should likely not see a thing present on the list as something we have to always necessarily get rid of -- though many times we should! -- sometimes we just may think about how to improve the thing or minimize its negative impact; try to think of harmful things like "things that suck"; everything sucks, some things just [suck less](suckless.md). Among things listed under the *harmful* section are besides others all [software](software.md), [OOP](oop.md), [GNU](gnu.md), [Linux](linux.md), [C++](cpp.md), dynamic [linking](linking.md), [Java](java.md), [XML](xml.md), [vim](vim.md), [Emacs](emacs.md), [GPL](gpl.md) (one recommended alternative being [CC0](cc0.md) instead), [Perl](perl.md), [standards](standard.md), Sweden, [gay](gay.md) marriage, marriage, children, words, [intellectual property](intellectual_property.md), [religion](religion.md), [science](soyence.md), minimum wage, the Avatar movie, [Wikileaks](wikileaks.md), [people](people.md), [economics](economics.md), [global warming](global_warming.md) scaremongering, [security](security) theater etc.

@ -56,7 +56,7 @@ Here is a list of notable encyclopedias, focused on general knowledge English la
| Old Wikipedia | 2001 | GFDL | online | 19K | archived old Wikipedia, less censorship, https://nostalgia.wikipedia.org |
| Pears' Cyclopedia | 1897 | PD (old) | 1 vol. 740p | | contains dictionary, general knowl. maps, reference etc., scanned on archive.org |
| World Almanac and Book of Facts|1868...| some PD (old) | 1 vol. | | interesting and useful information, data and facts from old to new age, US-centered |
| **The World Book** |1917...| proprietary | 22 vol. | 17K | best selling print enc., large, probably high quality |
| **The World Book** |1917...| proprietary | 22 vol. | 17K | best selling print enc., large, probably high quality, US propaganda (anticommunism etc.) |
| The World Book 1917 |1917 | PD (old) | 8 vol. | 3K | nicely readable |
| Uncyclopedia |2005...| proprietary (NC) | online | 37K | parody, [fun](fun.md) enc., "more normie friendly dramatica" |

@ -39,6 +39,10 @@ The developers of Debian operating system have created their own guidelines (Deb
Free software was invented by [Richard Stallman](rms.md) in the 1980s. His free software movement inspired later movements such as the [free culture](free_culture.md) movement and the evil [open-source](open_source.md) movement.
TODO: something here
**By 2024 free software is dead** -- yes, FSF and some free software "activists" are still around, but they don't bear any significance, just like the hippies lost any significance after 1960s etc. Corruption, politics and [free market](capitalism.md) have finally killed the movement, [open $ource](open_source.md) prevailed and it is now redefining even the basic pillars of the four freedoms (partial openness or just source availability is now practically synonymous with "open source"), probably sealing the fate of technology, free software seems to have only postponed capitalist disaster by a few decades, which is still a great feat.
## "Free" Software Alternatives, Pseudo Free Environments AKA What Freedom Really Is
**The "free software alternatives" question** is one that's constantly being discussed under [capitalism](capitalism.md): [corporations](corporation.md) try to forcefully keep users enslaved by proprietary software environments while free software proponents and users themselves want to free the users with "alternatives" made as free software. A very common mistake for a free software newcomer to make is to try to **"drop-in replace proprietary software with free software"**; a user used to proprietary software and its ways just wants the programs he's used to, just "without ads and subscriptions etc.". This doesn't work, or only to an extremely limited scale, because the whole proprietary world is made and DESIGNED from the ground up to allow user exploitation as much as possible, with e.g. building such thing like [consumerism](consumerism.md) right into the design of visual elements of the software etc., i.e. proprietary vs free software is not just about a legal [license](license.md), but whole philosophy of technology, asking things such as [why are we so obsessed over "updates"](update_culture.md) or [why are we freaking out about privacy](privacy.md). Trying to drop-in replace proprietary technology with 1 to 1 looking free software is like trying to replace whole capitalism with an "environment friendly capitalism" in which everything works the same except we have cars made of wood and skyscrapers made of recycled paper -- indeed, one sees that to get rid of the destructive nature of capitalism we really have to replace capitalism as such with all its basic concepts with something fundamentally different; and the situation is same with proprietary software.

@ -4,21 +4,23 @@
This is a brief summary of history of [technology](technology.md) and [computers](computer.md) (and some other things). For those who don't know history are doomed to repeated it.
The earliest known appearance of technology related to humans is the use of **stone tools** of hominids in Africa some two and a half million years ago. Learning to start and control **[fire](fire.md)** was one of the most important advances of earliest humans; this probably happened hundreds of thousands to millions years ago, even before modern humans. Around 8000 BC the **[Agricultural Revolution](agricultural_revolution.md)** happened: this was a disaster -- as humans domesticated animals and plants, they had to abandon the comfortable life of hunters and gatherers and started to suffer greatly from the extremely hard [work](work.md) on their fields (this can be seen e.g. from their bones). This led to the establishment of first cities. Primitive **writing** can be traced to about 7000 BC to China. **[Wheel](wheel.md)** was another extremely useful technology humans invented, it is not known exactly when or where it appeared, but it might have been some time after 5000 BC -- in Ancient Egypt **The Great Pyramid** was built around 2570 BC still without the knowledge of wheel. Around 4000 BC **history starts with first written records**. Humans learned to smelt and use metals approximately 3300 BC (**Bronze Age**) and 1200 BC (**Iron Age**). **[Abacus](abacus.md)**, one of the simplest devices aiding with computation, was invented roughly around 2500 BC. However people used primitive computation helping tools, such as bone ribs, probably almost from the time they started trading. Babylonians in around 2000 BC were already able to solve some forms of **[quadratic equations](quadratic_equation.md)**.
The earliest known appearance of technology related to humans may likely be the use of **[stone](rock.md) tools** by hominids in Africa some two and a half million years ago -- this is even before the appearance of modern humans, homo sapiens, that emerged roughly 600000 years ago. Learning to start and control **[fire](fire.md)** was another key invention of the earliest men; this probably happened hundreds of thousands to millions years ago, even before modern humans. Around 8000 BC the **[Agricultural Revolution](agricultural_revolution.md)** happened: this was quite a disaster -- as humans domesticated animals and plants, they had to abandon the comfortable life of hunters and gatherers and started to suffer the life of a farmer, full of extremely hard [work](work.md) in the fields (this can be seen e.g. from their bones). This led to the establishment of first cities. Primitive **writing** can be traced to about 7000 BC to China. **[Wheel](wheel.md)** was another crucial piece of technology humans invented, it is not known precisely when or where it appeared, but it might have been some time after 5000 BC -- in Ancient Egypt **The Great Pyramid** was built around 2570 BC still without the knowledge of wheel. Around 4000 BC **history starts with first written records**. Humans learned to smelt and use [metals](metal.md) approximately 3300 BC (**Bronze Age**) and 1200 BC (**Iron Age**). **[Abacus](abacus.md)**, one of the simplest [digital](digital.md) devices aiding with computation, was invented roughly around 2500 BC. However people used primitive computation helping tools, such as bone ribs, probably almost from the time they started trading. Babylonians in around 2000 BC were already able to solve some forms of **[quadratic equations](quadratic_equation.md)**.
After 600 BC the Ancient Greek [philosophy](philosophy.md) starts to develop which would lead to strengthening of rational, [scientific](science.md) thinking and advancement of [logic](logic.md) and [mathematics](math.md). Around 300 BC Euklid wrote his famous *Elements*, a mathematical work that proves theorems from basic [axioms](axiom.md). Around 400 BC **[camera obscura](camera_obscura.md)** was already described in a written text from China where **[gears](gear.md)** also seem to have been invented soon after. Ancient Greeks could communicate over great distances using **Phryctoria**, chains of fire towers placed on mountains that forwarded messages to one another using light. 234 BC Archimedes described the famous [Archimedes screw](archimedes_screw.md) and created an **[algorithm](algorithm.md) for computing the number [pi](pi.md)**. In 2nd century BC the **Antikythera mechanism, the first known [analog](analog.md) computer** is made to predict movement of heavenly bodies. Romans are known to have been great builders, they built many roads and such structures as the Pantheon (126 AD) and aqueducts with the use of their own type of concrete and advanced understanding of physics.
After 600 BC the Ancient Greek [philosophy](philosophy.md) starts to develop which would lead to strengthening of rational, [scientific](science.md) thinking and advancement of [logic](logic.md) and [mathematics](math.md). Around 300 BC Euklid wrote his famous *Elements*, a mathematical work that proves theorems from basic [axioms](axiom.md). Around 400 BC **[camera obscura](camera_obscura.md)** was already described in a written text from China where **[gears](gear.md)** also seem to have been invented soon after. Ancient Greeks could communicate over great distances using **Phryctoria**, chains of fire towers placed on mountains that forwarded messages to one another using light. 234 BC Archimedes described the famous [Archimedes screw](archimedes_screw.md) and created an **[algorithm](algorithm.md) for computing the number [pi](pi.md)**. In 2nd century BC the **Antikythera mechanism, the first known [analog](analog.md) computer** is made to predict movement of heavenly bodies. Romans are known to have been great builders, they built many roads and such structures as the Pantheon (126 AD) and aqueducts with the use of their own type of **concrete** and advanced understanding of physics.
Around 50 AD Heron of Alexandria, an Egyptian mathematician, created a number of highly sophisticated inventions such as a **vending machine** that accepted coins and gave out holy water, and a cart that could be "programmed" with strings to drive on its own.
In the 3rd century Chinese mathematician Liu Hui describes operations with **negative numbers**, even though negative numbers have already appeared before. In 600s AD an Indian astronomer Brahmagupta first used the number **[zero](zero.md)** in a systematic way, even though hints on the number zero without deeper understanding of it appeared much earlier. In 9th century the Mayan empire is [collapsing](collapse.md), though it would somewhat recover and reshape.
Year 476 (basically fall of Roman empire) is sometimes seen as the end of Antiquity and **start of Middle Ages**, a time in which technological progress is seen to stagnate a bit.
In 1429 Persian mathematician al-Kashi computed [pi](pi.md) to about 14 digit accuracy which was a great leap in this discipline.
Around the year of [our Lord](jesus.md) 1450 a major technological leap known as the **Printing Revolution** occurred. Johannes Gutenberg, a German goldsmith, perfected the process of producing books in large quantities with the movable type press. This made books cheap to publish and buy and contributed to fast spread of information and better education. Around this time the **Great Wall of China** is being built.
Around the year of [our Lord](jesus.md) 1450 a major technological leap known as the **Printing Revolution** occurred. Johannes Gutenberg, a German goldsmith, perfected the process of producing [books](book.md) in large quantities with the movable type press. This made books cheap to publish and buy and contributed to fast spread of [information](information.md) and better education. Around this time the **Great Wall of China** is being built.
They year 1492 marks the **discovery of America** by Christopher Columbus who sailed over the Atlantic Ocean, though he probably wasn't the first in history to do so, and it wasn't realized he sailed to America before his death.
They year 1492 marks the **discovery of America** by Christopher Columbus who sailed over the Atlantic Ocean, though he probably wasn't the first in history to do so, and it wasn't realized he sailed to America until after he died (he thought he sailed to India). This is sometimes taken to mark the **end of Middle Ages** and transition to **Renaissance**. This was a time of increased interest in rationality, science and art; Renaissance saw man as a potent creation of God, who is capable of creating on his own rather than being mere blind, obedient servant of God. Great many polymath lived at this time, most notably **[Leonardo da Vinci](da_vinci.md)** (probably [gay](gay.md)) who was an excellent painter, explored human anatomy and even subjects such as astronomy and engineering. On one hand Renaissance brought beautiful art and new technology, on the other hand it further shifted society toward capitalism and selfish thinking, human became more self centered, [egoistic](egoism.md) and art became even more a matter of business -- for example the great painters infamously hired lesser artists to make copies of their paintings which were then sold almost like consumer products.
During 1700s a major shift in civilization occurred, called the **[Industrial Revolution](industrial_revolution.md)** -- this was another disaster that would lead to the transformation of common people to factory slaves and loss of their self sufficiency. The revolution spanned roughly from 1750 to 1850. It was a process of rapid change in the whole society due to new technological inventions that also led to big changes in how people lived their everyday lives. It started in Great Britain but quickly spread over the whole world. One of the main changes was the **transition from manual manufacturing to factory manufacturing** using machines and sources of energy such as coal. **[Steam engine](steam_engine.md) played a key role**. Work became a form of a highly organized slavery system, society became industrionalized. This revolution became highly [criticized](ted_kaczynski.md) as it unfortunately opened the door for [capitalism](capitalism.md), made people dependent on the system as everyone had to become a specialized cog in the society machine, at this time people started to measure time in minutes and lead very planned lives with less joy. But there was no way back.
During 1700s a major shift in civilization occurred, called the **[Industrial Revolution](industrial_revolution.md)** -- this was another disaster that would lead to the transformation of common people to factory slaves and loss of their self sufficiency. The revolution spanned roughly from 1750 to 1850. It was a process of rapid change in the whole society due to new technological inventions that also led to big changes in how a man lived his daily life. It started in Great Britain but quickly spread over the whole world. One of the main changes was the **transition from manual manufacturing to factory manufacturing** using machines and sources of energy such as coal. **[Steam engine](steam_engine.md) played a key role**. Work became a form of a highly organized slavery system, society became industrionalized. This revolution became highly [criticized](ted_kaczynski.md) as it unfortunately opened the door for [capitalism](capitalism.md), made people dependent on the system as everyone had to become a specialized cog in the society machine, at this time people started to measure time in minutes and lead very planned lives with less joy. But there was no way back.
In 1712 Thomas Newcomen invented the first widely used **[steam engine](steam_engine.md)** used mostly for pumping water, even though steam powered machines have already been invented long time ago. The engine was significantly improved by [James Watt](james_watt.md) in 1776. Around 1770 Nicolas-Joseph Cugnot created a first somewhat working **steam-powered [car](car.md)**. In 1784 William Murdoch built a small prototype of a **[steam locomotive](steam_locomotive.md)** which would be perfected over the following decades, leading to a transportation revolution; people would be able to travel far away for work, the world would become smaller which would be the start of **[globalization](globalization.md)**. The railway system would make common people measure time with minute precision.
@ -36,7 +38,7 @@ Around 1888 so called **war of the currents** was taking place; it was a heated
Also in 1888 probably the **first [video](video.md)** that survived until today was recorded by Lou Le Prince in Northern England, with a single lens camera. It is a nearly 2 second silent black and white shot of people walking in a garden.
1895 can roughly be seen as the year of **invention of radio**, specifically wireless [telegraph](telegraph.md), by Italian engineer and inventor Guglielmo Marconi. He built on top of work of others such as [Hertz](hertz.md) and [Tesla](tesla.md) and created a device with which he was able to wirelessly ring a bell at a distance over 2 km.
1895 can roughly be seen as the year of **invention of [radio](radio.md)**, specifically wireless [telegraph](telegraph.md), by Italian engineer and inventor Guglielmo Marconi. He built on top of work of others such as [Hertz](hertz.md) and [Tesla](tesla.md) and created a device with which he was able to wirelessly ring a bell at a distance over 2 km.
On December 17 1903 the Wright brothers famously performed the **first controlled flight of a motor airplane** which they built, in North Carolina. In repeated attempts they flew as far as 61 meters over just a few seconds.

@ -2,4 +2,6 @@
*Not to be confused with [liberalism](liberalism.md).*
TODO: retarded capitalist shit basically
Libertarianism is one of very broad [harmful](harmful.md) political ideologies whose definition isn't at all clear, but which in essence gives highest priority to individual liberty and seeks to minimize the role of state. It is in some ways similar to [anarchism](anarchism.md) -- and just like anarchism it has many branches which frequently greatly diverge and even oppose each other -- it focuses on the people and believes people can form a working, decentralized society by loose associations, however while anarchism opposes state altogether, libertarianism may want to preserve some functions of the state such as courts and justice, protection from criminals etc.; libertarians believe in "equality before law" and they also mostly want to end private property and keep only personal property, i.e. usually opposing "the kind of [capitalism](capitalism.md) we have today" so that we can have "the better capitalism" (lol), however be careful, libertarianism basically embrace the **"law of the jungle"** or **"wild west"** mindset, some of the most retarded ideologies in history, such as ["anarcho" capitalism](ancap.md), are often classified as rightist libertarianism. So don't subscribe to this, it's shit.

@ -30,7 +30,7 @@ There is a controversial 1994 book called *The Bell Curve* that deals with diffe
It is useful to know the **differences in intellect** between different races (no matter whether the cause is genetic, cultural or other), though cultural and other traits linked to races may also play a big role. Of course, it is important to keep in mind intelligence isn't one dimensional, it's one of the most complex and complicated concepts we can be dealing with (remember the famous test that revealed that chimpanzees greatly outperform humans at certain intellectual tasks such as remembering the order of numbers seen for a very short period of time) and that other traits than raw intelligence may be equally or more important for good performance in intellectual tasks, e.g. personality traits such as curiosity (imagine a fast CPU running shit software versus slower CPU running good software). We can't generally simplify to a single measure such as [IQ](iq.md) score (though it can still give some rough ideas, IQ is not absolutely useless), but we can measure performance at different tasks. Let intelligence here mean simply the ability to perform well in the area of given art. And of course, there are smart and stupid people in any race, the general statements we make are just about statistics and probabilities.
The smartest races seem to be [Jews](jew.md) and [Asians](asian.md) (also found so by the book *Bell Curve* and many old books). Asians have always been regarded as having superior intelligence and their [religions](religion.md) and [culture](culture.md) also seem to be the most advanced, with very complex ideas (as opposed to e.g. Christianity based on trivial rules to blindly follow), closest to [nonviolence](nonviolence.md), [socialism](socialism.md) and true [science](science.md) (e.g. [Buddhism](buddhism.md)). There is no question about the intelligence of Jews, the greatest thinkers of all times were Jewish ([Richard Stallman](rms.md), [Einstein](einstein.md), [Marx](marx.md), [Chomsky](chomsky.md), even [Jesus](jesus.md) and others). Jews have dominated despite being a minority, they seem to have a very creative intelligence and some of them decide to gain further edge by giving up their morality (i.e. becoming [capitalist](capitalism.md)), while Asians are more mechanically inclined -- they can learn a skill and bring it to perfection with an extremely deep study and dedication. Closely following is the general white race: white people have of course absolutely dominated history and there is always that one white guy at the top even in areas more dominated by other races (e.g. Eminem in rap, Carlsen in chess, Grubby in Warcraft 3, ...), however whites are still primitive in many ways ([individualism](individualism.md), [fascism](fascism.md), violence, simple religions and cults, e.g. that of economy, money, simplified commandments of Christianity etc.). The African black race known as the *negro* is one of the least intelligent according to basically all literature -- this makes a lot of sense, the race has been oppressed and living in harsh conditions for centuries and millennia and didn't get much chance to evolve towards good performance in intellectual tasks, quite the opposite, those who were physically fit rather than smart were probably more likely to survive and reproduce as slaves or jungle people (even if white people split from the blacks relatively recently, a rapid change in environment also leads to a rapid change in evolution, even that of intelligence). However the more primitive, less intelligent races (blacks, indians etc.) were found by some to e.g. have significantly faster reaction times, which sometimes may be an advantage -- this is suspected to be cause be a tradeoff; the "smarter" races perform more complex processing of input information (in terms of computers: having a longer processing [pipeline](pipeline.md)) and so it takes longer, i.e. the more primitive individual acts more impulsively and therefore quicker. The 1892 book *Hereditary Genius* says that the black race is *about two grades* below the white race (nowadays the gap will most likely be lower). Hispanics were found to perform somewhere in between the white and black people. There isn't so much info about other races such as the red race or Eskimos, but they're probably similarly intelligent to the black race. The above mentioned book *Hereditary Genius* gives an intelligence of the Australian aboriginal race *at least one grade below that of the negro*, making possibly the dumbest race of all. The brown races are kind of complicated, Indian people have Asian genes and showed a great intellectual potential, e.g. in [chess](chess.md), [math](math.md), philosophy (nonviolence inherently connected to India is the most intellectually advanced philosophy), and lately also [computer science](compsci.md) (even though many would argue that "[pajeets](pajeet.md)" are just trained coding monkeys, really their compsci "universities" are mostly a meme); they may be at the similar level to Hispanics.
The smartest races seem to be [Jews](jew.md) and [Asians](asian.md) (also found so by the book *Bell Curve* and many old books). Asians have always been regarded as having superior intelligence and their [religions](religion.md) and [culture](culture.md) also seem to be the most advanced, with very complex ideas (as opposed to e.g. Christianity based on trivial rules to blindly follow), closest to [nonviolence](nonviolence.md), [socialism](socialism.md) and true [science](science.md) (e.g. [Buddhism](buddhism.md)). There is no question about the intelligence of Jews, the greatest thinkers of all times were Jewish ([Richard Stallman](rms.md), [Einstein](einstein.md), [Marx](marx.md), [Chomsky](chomsky.md), even [Jesus](jesus.md) and others) -- the man often regarded as the smartest human in history, William James Sidis, was a Jew. Jews have dominated despite being a minority, they seem to have a very creative intelligence and some of them decide to gain further edge by giving up their morality (i.e. becoming [capitalist](capitalism.md)), while Asians are more mechanically inclined -- they can learn a skill and bring it to perfection with an extremely deep study and dedication. Closely following is the general white race: white people have of course absolutely dominated history and there is always that one white guy at the top even in areas more dominated by other races (e.g. Eminem in rap, Carlsen in chess, Grubby in Warcraft 3, ...), however whites are still primitive in many ways ([individualism](individualism.md), [fascism](fascism.md), violence, simple religions and cults, e.g. that of economy, money, simplified commandments of Christianity etc.). The African black race known as the *negro* is one of the least intelligent according to basically all literature -- this makes a lot of sense, the race has been oppressed and living in harsh conditions for centuries and millennia and didn't get much chance to evolve towards good performance in intellectual tasks, quite the opposite, those who were physically fit rather than smart were probably more likely to survive and reproduce as slaves or jungle people (even if white people split from the blacks relatively recently, a rapid change in environment also leads to a rapid change in evolution, even that of intelligence). However the more primitive, less intelligent races (blacks, indians etc.) were found by some to e.g. have significantly faster reaction times, which sometimes may be an advantage -- this is suspected to be cause be a tradeoff; the "smarter" races perform more complex processing of input information (in terms of computers: having a longer processing [pipeline](pipeline.md)) and so it takes longer, i.e. the more primitive individual acts more impulsively and therefore quicker. The 1892 book *Hereditary Genius* says that the black race is *about two grades* below the white race (nowadays the gap will most likely be lower). Hispanics were found to perform somewhere in between the white and black people. There isn't so much info about other races such as the red race or Eskimos, but they're probably similarly intelligent to the black race. The above mentioned book *Hereditary Genius* gives an intelligence of the Australian aboriginal race *at least one grade below that of the negro*, making possibly the dumbest race of all. The brown races are kind of complicated, Indian people have Asian genes and showed a great intellectual potential, e.g. in [chess](chess.md), [math](math.md), philosophy (nonviolence inherently connected to India is the most intellectually advanced philosophy), and lately also [computer science](compsci.md) (even though many would argue that "[pajeets](pajeet.md)" are just trained coding monkeys, really their compsci "universities" are mostly a meme); they may be at the similar level to Hispanics.
Fun fact: there seem to be almost no black people in [chess](chess.md), the strongest one seems to be Pontus Carlsson which rates number 1618 in the world; even [women](woman.md) seem to be much better at chess than black people.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -3,8 +3,8 @@
This is an autogenerated article holding stats about this wiki.
- number of articles: 560
- number of commits: 705
- total size of all texts in bytes: 3089642
- number of commits: 706
- total size of all texts in bytes: 3092536
longest articles:
@ -24,6 +24,20 @@ longest articles:
latest changes:
```
Date: Fri Feb 23 14:18:56 2024 +0100
anarchism.md
ascii_art.md
atheism.md
capitalism.md
geek.md
how_to.md
kiss.md
less_retarded_society.md
open_source.md
random_page.md
rights_culture.md
wiki_pages.md
wiki_stats.md
Date: Thu Feb 22 23:16:14 2024 +0100
bazaar.md
binary.md
@ -42,20 +56,6 @@ Date: Thu Feb 22 13:20:32 2024 +0100
altruism.md
bazaar.md
binary.md
math.md
open_console.md
random_page.md
rms.md
wiki_pages.md
wiki_stats.md
Date: Wed Feb 21 20:13:01 2024 +0100
bazaar.md
computer.md
cpu.md
how_to.md
iq.md
people.md
random_page.md
```
most wanted pages:

Loading…
Cancel
Save