Update
This commit is contained in:
parent
55d3362bb2
commit
68f77b2118
10 changed files with 68 additions and 23 deletions
20
c.md
20
c.md
|
@ -2,9 +2,13 @@
|
||||||
|
|
||||||
{ We have a [C tutorial](c_tutorial.md)! ~drummyfish }
|
{ We have a [C tutorial](c_tutorial.md)! ~drummyfish }
|
||||||
|
|
||||||
C is a [low level](low_level.md), [statically typed](static_typing.md) [imperative](imperative.md) compiled [programming language](programming_language.md), the go-to language of most [less retarded](lrs.md). It is the absolutely preferred language of the [suckless](suckless.md) community as well as of most true experts, for example the [Linux](linux.md) and [OpenBSD](openbsd.md) developers, because of its good minimal design, level of control, uncontested performance and a greatly established and tested status.
|
C is a [low level](low_level.md), structured, [statically typed](static_typing.md) [imperative](imperative.md) compiled [programming language](programming_language.md), the go-to language of [less retarded](lrs.md) programmers. It is the absolutely preferred language of the [suckless](suckless.md) community as well as of 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 usually not considered an easy language to learn because of its low level nature: it requires good understanding of how a computer 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.
|
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.
|
||||||
|
|
||||||
|
C is said to be the **"platform independent [assembly](assembly.md)"** because of its low level nature, great performance etc. -- though C is structured (has control structures such as branches and loops) and can be used in a relatively high level manner, it is also possible to write assembly-like code that operates directly with bytes in memory through [pointers](pointer.md) without many safety mechanisms, so C is often used for writing things like hardware [drivers](driver.md). On the other hand some restrain from likening C to assembly because C compilers still perform many transformations of the code and what you write is not necessarily always what you get.
|
||||||
|
|
||||||
|
Mainstream consensus acknowledges that C is among the best languages for writing low level code and code that requires performance, such as [operating systems](operating_system.md), [drivers](driver.md) or [games](game.md). Even scientific libraries with normie-language interfaces -- e.g. various [machine learning](machine_learning.md) [Python](python.md) libraries -- usually have the performance critical core written in [C](c.md). Normies will tell you that for things outside this scope C is not a good language, with which we disagree -- [we](lrs.md) recommend using C for basically everything that's supposed to last, i.e. if you want to write a good website, you should write it in C etc.
|
||||||
|
|
||||||
## History and Context
|
## History and Context
|
||||||
|
|
||||||
|
@ -26,7 +30,7 @@ C is not a single language, there have been a few standards over the years since
|
||||||
- **C17/C18**: Yet another update, yet more bloated and not worth using anymore.
|
- **C17/C18**: Yet another update, yet more bloated and not worth using anymore.
|
||||||
- ...
|
- ...
|
||||||
|
|
||||||
LRS should use C99 or C89 as the newer versions are considered [bloat](bloat.md) and don't have such great support in compilers, making them less portable and therefore less free.
|
[LRS](lrs.md) should use C99 or C89 as the newer versions are considered [bloat](bloat.md) and don't have such great support in compilers, making them less portable and therefore less free.
|
||||||
|
|
||||||
The standards of C99 and older are considered pretty [future-proof](future_proof.md) and using them will help your program be future-proof as well. This is to a high degree due to C having been established and tested better than any other language; it is one of the oldest languages and a majority of the most essential software is written in C, C compiler is one of the very first things a new hardware platform needs to implement, so C compilers will always be around, at least for historical reasons. C has also been very well designed in a relatively minimal fashion, before the advent of modern feature-creep and and bullshit such as [OOP](oop.md) which cripples almost all "modern" languages.
|
The standards of C99 and older are considered pretty [future-proof](future_proof.md) and using them will help your program be future-proof as well. This is to a high degree due to C having been established and tested better than any other language; it is one of the oldest languages and a majority of the most essential software is written in C, C compiler is one of the very first things a new hardware platform needs to implement, so C compilers will always be around, at least for historical reasons. C has also been very well designed in a relatively minimal fashion, before the advent of modern feature-creep and and bullshit such as [OOP](oop.md) which cripples almost all "modern" languages.
|
||||||
|
|
||||||
|
@ -41,7 +45,9 @@ The standards of C99 and older are considered pretty [future-proof](future_proof
|
||||||
|
|
||||||
## Standard Library
|
## Standard Library
|
||||||
|
|
||||||
So the standard library (libc) is a subject of live debate because while its interface and behavior are given by the C standard, its implementation is a matter of each compiler; since the standard library is so commonly used, we should take great care in assuring it's extremely well written. As you probably guessed, the popular implementations ([glibc](glibc.md) et al) are [bloat](bloat.md). Better alternatives thankfully exist, such as:
|
Besides the pure C language the C standard specifies a set of [libraries](library.md) that have to come with a standard-compliant C implementation -- so called standard library. This includes e.g. the *stdio* library for performing standard [input/output](io.md) (reading/writing to/from screen/files) or the *math* library for mathematical functions. It is usually relatively okay to use these libraries as they are required by the standard to exist so the [dependency](dependency.md) they create is not as dangerous, however many C implementations aren't completely compliant with the standard and may come without the standard library. So for sake of [portability](portability.md) it is best if you can avoid using standard library.
|
||||||
|
|
||||||
|
The standard library (libc) is a subject of live debate because while its interface and behavior are given by the C standard, its implementation is a matter of each compiler; since the standard library is so commonly used, we should take great care in assuring it's extremely well written. As you probably guessed, the popular implementations ([glibc](glibc.md) et al) are [bloat](bloat.md). Better alternatives thankfully exist, such as:
|
||||||
|
|
||||||
- [musl](musl.md)
|
- [musl](musl.md)
|
||||||
- [uclibc](uclibc.md)
|
- [uclibc](uclibc.md)
|
||||||
|
@ -55,10 +61,10 @@ C isn't perfect, it was one of the first relatively higher level languages and e
|
||||||
- **The specification is also long as fuck**. 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.
|
- **The specification is also long as fuck**. 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 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 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.
|
- **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.
|
||||||
- Some things like [enums](enum.md) could be dropped entirely, they can easily be replaced with macros.
|
- Some things like [enums](enum.md) or [bitfields](bitfield.md) could be dropped entirely, they can be done 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.
|
- **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 isn't perfect**, e.g. it's pretty weird that the condition after `if` has to be in brackets, it could be designed better. Keywords also might be better being single chars, like `?` instead of `if` or the weird long ass names with spaces like `unsigned long long` could be made nicer. 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. `#` which would end either with a newline or another `#`.
|
- **The syntax isn't perfect**, e.g. it's pretty weird that the condition after `if` has to be in brackets, it could be designed better. Keywords also might be better being single chars, like `?` instead of `if` or the weird long ass names with spaces like `unsigned long long` could be made nicer. 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. `#` which would end either with a newline or another `#`.
|
||||||
- **Some basic things that are part of the standard library or extensions**, like fixed with types and binary literals, could be part of the language itself.
|
- **Some basic things that are part of libraries or extensions**, like fixed with types and binary literals, could be part of the language itself.
|
||||||
- TODO: moar
|
- TODO: moar
|
||||||
|
|
||||||
## Basics
|
## Basics
|
||||||
|
|
|
@ -42,10 +42,35 @@ int main(void)
|
||||||
|
|
||||||
Besides being extra careful about writing memory safe code, one needs to also know that **some functions of the standard library are memory unsafe**. This is regarding mainly string functions such as `strcpy` or `strlen` which do not check the string boundaries (i.e. they rely on not being passed a string that's not zero terminated and so can potentially touch memory anywhere beyond); safer alternatives are available, they have an `n` added in the name (`strncpy`, `strnlen`, ...) and allow specifying a length limit.
|
Besides being extra careful about writing memory safe code, one needs to also know that **some functions of the standard library are memory unsafe**. This is regarding mainly string functions such as `strcpy` or `strlen` which do not check the string boundaries (i.e. they rely on not being passed a string that's not zero terminated and so can potentially touch memory anywhere beyond); safer alternatives are available, they have an `n` added in the name (`strncpy`, `strnlen`, ...) and allow specifying a length limit.
|
||||||
|
|
||||||
## Different Behavior Between C And C++
|
## Different Behavior Between C And C++ (And Different C Standards)
|
||||||
|
|
||||||
C is **not** a subset of C++, i.e. not every C program is a C++ program (for simple example imagine a C program in which we use the word `class` as an identifier). Furthermore a C program that is at the same time also a C++ program may behave differently when compiled as C vs C++. Of course, all of this may also apply between different standards of C, not just between C and C++.
|
C is **not** a subset of C++, i.e. not every C program is a C++ program (for simple example imagine a C program in which we use the word `class` as an identifier). Furthermore a C program that is at the same time also a C++ program may behave differently when compiled as C vs C++. Of course, all of this may also apply between different standards of C, not just between C and C++.
|
||||||
|
|
||||||
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++.
|
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++.
|
||||||
|
|
||||||
TODO: specific examples
|
TODO: specific examples
|
||||||
|
|
||||||
|
## Compiler Optimizations
|
||||||
|
|
||||||
|
C compilers perform automatic optimizations and and other transformations of the code, especially when you tell it to optimize aggressively (`-O3`) which is a standard practice to make programs run faster. However this makes compilers perform a lot of [magic](magic.md) and may lead to unexpected and unintuitive undesired behavior such as bug or even the "unoptimization of code". { I've seen a code I've written have bigger size when I set the `-Os` flag (optimize for smaller size). ~drummyfish }
|
||||||
|
|
||||||
|
Aggressive optimization may firstly lead to tiny bugs in your code manifesting in very weird ways, it may happen that a line of code somewhere which may somehow trigger some tricky [undefined behavior](undefined_behavior.md) may cause your program to crash in some completely different place. Compilers exploit undefined behavior to make all kinds of big brain reasoning and when they see code that MAY lead to undefined behavior a lot of chain reasoning may lead to very weird compiled results. Remember that undefined behavior, such as overflow when adding signed integers, doesn't mean the result is undefined, it means that ANYTHING CAN HAPPEN, the program may just start printing nonsensical stuff on its own or your computer may explode. So it may happen that the line with undefined behavior will behave as you expect but somewhere later on the program will just shit itself. For these reasons if you encounter a very weird bug, try to disable optimizations and see if it goes away -- if it does, you may be dealing with this kind of stuff. Also check your program with tools like [cppcheck](cppcheck.md).
|
||||||
|
|
||||||
|
Automatic optimizations may also be dangerous when writing [multithreaded](multithreading.md) or very low level code (e.g. a driver) in which the compiler may have wrong assumptions about the code such as that nothing outside your program can change your program's memory. Consider e.g. the following code:
|
||||||
|
|
||||||
|
```
|
||||||
|
while (x)
|
||||||
|
puts("X is set!");
|
||||||
|
```
|
||||||
|
|
||||||
|
Normally the compiler could optimize this to:
|
||||||
|
|
||||||
|
```
|
||||||
|
if (x)
|
||||||
|
while (1)
|
||||||
|
puts("X is set!");
|
||||||
|
```
|
||||||
|
|
||||||
|
As in typical code this works the same and is faster. However if the variable *x* is part of shared memory and can be changed by an outside process during the execution of the loop, this optimization can no longer be done as it results in different behavior. This can be prevented with the `volatile` keyword which tells the compiler to not perform such optimizations.
|
||||||
|
|
||||||
|
Of course this applies to other languages as well, but C is especially known for having a lot of undefined behavior, so be careful.
|
|
@ -10,7 +10,7 @@ Free software is also known as *free as in freedom*, *free as in speech* softwar
|
||||||
|
|
||||||
[Richard Stallman](rms.md), the inventor of the concept and the term "free software", says free software is about ensuring the freedom of computer users, i.e. people truly owning their tools -- he points out that unless people have complete control over their tools, they don't truly own them and will instead become controlled and abused by the makers (true owners) of those tools, which in [capitalism](capitalism.md) are [corporations](corporation.md). Richard Stallman stressed that **there is no such thing as partially free software** -- it takes only a single line of code to take away the user's freedom and therefore if software is to be free, it has to be free as a whole. This is in direct contrast with [open source](open_source.md) (a term discourages by Stallman himself) which happily tolerates for example [Windows](windows.md) only programs and accepts them as "open source", even though such a program cannot be run without the underlying proprietary code of the platform. It is therefore important to support free software rather than the business spoiled open source.
|
[Richard Stallman](rms.md), the inventor of the concept and the term "free software", says free software is about ensuring the freedom of computer users, i.e. people truly owning their tools -- he points out that unless people have complete control over their tools, they don't truly own them and will instead become controlled and abused by the makers (true owners) of those tools, which in [capitalism](capitalism.md) are [corporations](corporation.md). Richard Stallman stressed that **there is no such thing as partially free software** -- it takes only a single line of code to take away the user's freedom and therefore if software is to be free, it has to be free as a whole. This is in direct contrast with [open source](open_source.md) (a term discourages by Stallman himself) which happily tolerates for example [Windows](windows.md) only programs and accepts them as "open source", even though such a program cannot be run without the underlying proprietary code of the platform. It is therefore important to support free software rather than the business spoiled open source.
|
||||||
|
|
||||||
**Free software is not about [privacy](privacy.md)!** That is a retarded simplification spread by cryptofascists. Free software is about freedom in wide sense, which of course does include the freedom to stay anonymous, but there are many more freedoms which free software stands for, e.g. the freedom of customization of one's tools or the general freedom of art -- being able to utilize or remix someone else's creation for creating something new or better.
|
**Free software is not about [privacy](privacy.md)!** That is a retarded simplification spread by cryptofascists. Free software, as its name suggests, is about freedom in wide sense, which of course does include the freedom to stay anonymous, but there are many more freedoms which free software stands for, e.g. the freedom of customization of one's tools or the general freedom of art -- being able to utilize or remix someone else's creation for creating something new or better. Software focused on privacy is called privacy software.
|
||||||
|
|
||||||
**Is free software [communism](communism.md)?** This is a question often debated by [Americans](usa.md) who have a panic phobia of anything resembling ideas of sharing and giving away for free. The answer is: yes and no. No as in it's not [Marxism](marxism.md), the kind of [evil](evil.md) pseudocommunism that plagued the world not a long time long ago -- that was a hugely complex, twisted violent ideology encompassing whole society which furthermore betrayed many basic ideas of equality and so on. Compared to this free software is just a simple idea of not applying intellectual property to software, and this idea may well function under some form of early capitalism. But on the other hand yes, free software is communism in its general form that simply states that sharing is good, it is communism as much e.g. teaching a kid to share toys with its siblings.
|
**Is free software [communism](communism.md)?** This is a question often debated by [Americans](usa.md) who have a panic phobia of anything resembling ideas of sharing and giving away for free. The answer is: yes and no. No as in it's not [Marxism](marxism.md), the kind of [evil](evil.md) pseudocommunism that plagued the world not a long time long ago -- that was a hugely complex, twisted violent ideology encompassing whole society which furthermore betrayed many basic ideas of equality and so on. Compared to this free software is just a simple idea of not applying intellectual property to software, and this idea may well function under some form of early capitalism. But on the other hand yes, free software is communism in its general form that simply states that sharing is good, it is communism as much e.g. teaching a kid to share toys with its siblings.
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Interpolation (*inter* = between, *polio*= polish) means computing (usually a gradual) transition between some specified values, i.e. creating additional intermediate points between some already existing points. For example if we want to change a screen [pixel](pixel.dm) from one color to another in a gradual manner, we use some interpolation method to compute a number of intermediate colors which we then display in rapid succession; we say we interpolate between the two colors. Interpolation is a very basic [mathematical](math.md) tool that's commonly encountered almost everywhere, not just in [programming](programming.md): some uses include drawing a graph between measured data points, estimating function values in unknown regions, creating smooth [animations](animation.md), drawing [vector](vector_graphics.md) curves, [digital](digital.md) to [analog](analog.md) conversion, enlarging pictures, blending transition in videos and so on. Interpolation can be used to generalize, e.g. if we have a mathematical [function](function.md) that's only defined for [whole numbers](whole_number.md) (such as [factorial](factorial.md) or [Fibonacci sequence](fibonacci.md)), we may use interpolation to extend that function to all [real numbers](real_number.md). Interpolation can also be used as a method of [approximation](approximation.md) (consider e.g. a game that runs at 60 FPS to look smooth but internally only computes its physics at 30 FPS and interpolates every other frame so as to increase performance). All in all interpolation is one of the most important things to learn.
|
Interpolation (*inter* = between, *polio*= polish) means computing (usually a gradual) transition between some specified values, i.e. creating additional intermediate points between some already existing points. For example if we want to change a screen [pixel](pixel.dm) from one color to another in a gradual manner, we use some interpolation method to compute a number of intermediate colors which we then display in rapid succession; we say we interpolate between the two colors. Interpolation is a very basic [mathematical](math.md) tool that's commonly encountered almost everywhere, not just in [programming](programming.md): some uses include drawing a graph between measured data points, estimating function values in unknown regions, creating smooth [animations](animation.md), drawing [vector](vector_graphics.md) curves, [digital](digital.md) to [analog](analog.md) conversion, enlarging pictures, blending transition in videos and so on. Interpolation can be used to generalize, e.g. if we have a mathematical [function](function.md) that's only defined for [whole numbers](whole_number.md) (such as [factorial](factorial.md) or [Fibonacci sequence](fibonacci.md)), we may use interpolation to extend that function to all [real numbers](real_number.md). Interpolation can also be used as a method of [approximation](approximation.md) (consider e.g. a game that runs at 60 FPS to look smooth but internally only computes its physics at 30 FPS and interpolates every other frame so as to increase performance). All in all interpolation is one of the most important things to learn.
|
||||||
|
|
||||||
The opposite of interpolation is [extrapolation](extrapolation.md), an operation that's *extending*, creating points OUTSIDE given interval (while interpolation creates points INSIDE the interval).
|
The opposite of interpolation is **[extrapolation](extrapolation.md)**, an operation that's *extending*, creating points OUTSIDE given interval (while interpolation creates points INSIDE the interval). Both interpolation and extrapolation are similar to **[regression](regression.md)** which tries to find a [function](function.md) of specified form that best fits given data (unlike interpolation it usually isn't required to hit the data points exactly but rather e.g. minimize some kind of distance to these points).
|
||||||
|
|
||||||
There are many methods of interpolation which differ in aspects such as complexity, number of dimensions, type and properties of the mathematical curve/surface ([polynomial](polynomial.md) degree, continuity/smoothness of [derivatives](derivative.md), ...) or number of points required for the computation (some methods require knowledge of more than two points).
|
There are many methods of interpolation which differ in aspects such as complexity, number of dimensions, type and properties of the mathematical curve/surface ([polynomial](polynomial.md) degree, continuity/smoothness of [derivatives](derivative.md), ...) or number of points required for the computation (some methods require knowledge of more than two points).
|
||||||
|
|
||||||
|
@ -36,3 +36,8 @@ Many times we apply our interpolation not just to two points but to many points,
|
||||||
**[Cubic](cubic.md) interpolation** can be considered a bit more advanced, it uses a [polynomial](polynomial.md) of degree 3 and creates a nice smooth curve through multiple points but requires knowledge of one additional point on each side of the interpolated interval (this may create slight issues with the first and last point of the sequence of values). This is so as to know at what slope to approach an endpoint so as to continue in the direction of the point behind it.
|
**[Cubic](cubic.md) interpolation** can be considered a bit more advanced, it uses a [polynomial](polynomial.md) of degree 3 and creates a nice smooth curve through multiple points but requires knowledge of one additional point on each side of the interpolated interval (this may create slight issues with the first and last point of the sequence of values). This is so as to know at what slope to approach an endpoint so as to continue in the direction of the point behind it.
|
||||||
|
|
||||||
The above mentioned methods can be generalized to more dimensions (the number of dimensions are equal to the number of interpolation parameters) -- we encounter this a lot e.g. in [computer graphics](graphics.md) when upscaling [textures](texture.md) (sometimes called texture filtering). 2D nearest neighbor interpolation creates "blocky" images in which [pixels](pixel.md) simply "get bigger" but stay sharp squares if we upscale the texture. Linear interpolation in 2D is called [bilinear interpolation](bilinear.md) and is visually much better than nearest neighbor, [bicubic interpolation](bicubic.md) is a generalization of cubic interpolation to 2D and is yet smoother that bilinear interpolation.
|
The above mentioned methods can be generalized to more dimensions (the number of dimensions are equal to the number of interpolation parameters) -- we encounter this a lot e.g. in [computer graphics](graphics.md) when upscaling [textures](texture.md) (sometimes called texture filtering). 2D nearest neighbor interpolation creates "blocky" images in which [pixels](pixel.md) simply "get bigger" but stay sharp squares if we upscale the texture. Linear interpolation in 2D is called [bilinear interpolation](bilinear.md) and is visually much better than nearest neighbor, [bicubic interpolation](bicubic.md) is a generalization of cubic interpolation to 2D and is yet smoother that bilinear interpolation.
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [extrapolation](extrapolation.md)
|
||||||
|
- [regression](regression.md)
|
|
@ -77,3 +77,4 @@ There are many terms that are very similar and are sometimes used interchangeabl
|
||||||
- **[Unicode](unicode.md)** vs **[UTF](utf.md)**
|
- **[Unicode](unicode.md)** vs **[UTF](utf.md)**
|
||||||
- **[URI](uri.md)** vs **[URL](url.md)**
|
- **[URI](uri.md)** vs **[URL](url.md)**
|
||||||
- **[webpage](webpage.md)** vs **[website](website.md)**
|
- **[webpage](webpage.md)** vs **[website](website.md)**
|
||||||
|
- **[wrap around](wrap.md)** vs **[overflow](overflow.md)**
|
6
race.md
6
race.md
|
@ -4,9 +4,11 @@
|
||||||
|
|
||||||
Races of people are very large, loosely defined groups of genetically similar (related) people. Races usually significantly differ by their look and in physical, mental and cultural aspects. The topic of human race is nowadays forbidden to be critically discussed and researched, however there at least exists a number of older research, information hidden in the underground and some things about race are completely obvious to those with an open mind. [Good society](less_retarded_society.md), unlike for example our current [capitalist](capitalism.md) society, acknowledges the differences between human races and lets them coexist peacefully in social equality despite their differences and without any need for [bullshit](bullshit.md) such as [political correctness](political_correctness.md).
|
Races of people are very large, loosely defined groups of genetically similar (related) people. Races usually significantly differ by their look and in physical, mental and cultural aspects. The topic of human race is nowadays forbidden to be critically discussed and researched, however there at least exists a number of older research, information hidden in the underground and some things about race are completely obvious to those with an open mind. [Good society](less_retarded_society.md), unlike for example our current [capitalist](capitalism.md) society, acknowledges the differences between human races and lets them coexist peacefully in social equality despite their differences and without any need for [bullshit](bullshit.md) such as [political correctness](political_correctness.md).
|
||||||
|
|
||||||
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) -- the idea that different races evolved from different pre-humans, i.e. Asians from asian monkeys, Africans from african monkeys etc. -- 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.
|
Instead of the word *race* the politically correct camp uses words such as *ethnicity* -- it's funny, sometimes they say no such thing as race exists but other times they simply have to operate with the fact that people are genetically diverse, e.g. when they accuse others of [racism](racism.md), as existence of discrimination based on genetic differences between people necessarily implies the existence of genetic differences between people -- so here they try to substitute the word *race* for a different word so as to make their self-contradiction less obvious. Anyway, it doesn't work :)
|
||||||
|
|
||||||
**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 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.
|
**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.
|
||||||
|
|
||||||
|
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) -- the idea that different races evolved from different pre-humans, i.e. Asians from asian monkeys, Africans from african monkeys etc. -- 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.
|
||||||
|
|
||||||
Most generally races are called by the color of their skin, the most apparent attribute, i.e. White (Caucasian), Black (African), Yellow (Asian) and Brown (Indian). But the lines can be drawn in many ways, some go as far as calling different nations separate races (e.g. the Norwegian race, Russian race etc.).
|
Most generally races are called by the color of their skin, the most apparent attribute, i.e. White (Caucasian), Black (African), Yellow (Asian) and Brown (Indian). But the lines can be drawn in many ways, some go as far as calling different nations separate races (e.g. the Norwegian race, Russian race etc.).
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
*Not to be confused with [science](science.md).*
|
*Not to be confused with [science](science.md).*
|
||||||
|
|
||||||
Soyence is [propaganda](propaganda.md), [politics](politics.md), [business](business.md), [bloat](bloat.md) and [bullshit](bullshit.md) trying to pass as [science](science.md), nowadays promoted typically by [pseudoleftist](pseudoleft.md) [soyboys](soyboy.md) and [pseudoskeptics](pseudoskepticism.md). It is what the typical reddit [atheist](atheism.md) or [tiktok](tiktok.md) [feminist](feminism.md) believes is science or what Neil De Grass Tyson tells you science is. Soyence calls itself science and [gatekeeps](gatekeeping.md) the term science by calling unpopular science -- such as that regarding human [race](race.md) or questioning big pharma [vaccines](vaccine.md) -- "[pseudoscience](pseudoscience.md)". Soyence itself is pseudoscience but it has the added attributes of pursuing [evil](evil.md) and trying to hide among serious science.
|
Soyence is a cult of [propaganda](propaganda.md), [politics](politics.md), [business](business.md), [bloat](bloat.md) and [bullshit](bullshit.md) trying to pass as [science](science.md), nowadays promoted typically by [pseudoleftist](pseudoleft.md) [soyboys](soyboy.md) and [pseudoskeptics](pseudoskepticism.md). It is what the typical reddit [atheist](atheism.md) or [tiktok](tiktok.md) [feminist](feminism.md) believes is science or what Neil De Grass Tyson tells you science is. Soyence calls itself science and [gatekeeps](gatekeeping.md) the term science by calling unpopular science -- such as that regarding human [race](race.md) or questioning big pharma [vaccines](vaccine.md) -- "[pseudoscience](pseudoscience.md)". Soyence itself is pseudoscience but it has the added attributes of pursuing [evil](evil.md) and trying to hide among serious science.
|
||||||
|
|
||||||
Compared to good old [fun](fun.mf) pseudosciences such as [astrology](astrology.md), soyence is extra sneaky by purposefully trying to blend in with real science, i.e. within a certain truly scientific field, such as biology, there is a soyentific [cancer](cancer.md) mixed in by activists, corporations and state, that may be hard to separate for common folk and many times even for pros. This is extremely [harmful](harmful.md) as in the eyes of retarded people (i.e. basically everyone) the neighboring legit science gives credibility to propaganda bullshit. There is a tendency to think we somehow magically live in a time that's fundamentally different from other times in history in which it is now a pretty clear and uncontroversial fact that the name of science was abused hard by propaganda, almost everyone easily accepts that historically politically constructed lies were presented as confirmed by science, but somehow people refuse to believe it could be the case nowadays. In times of Nazism there was no doubt about race being a completely scientific term and that Jews were scientifically confirmed to be the inferior race -- nowadays in times when anti Nazis have won and politics is based on denying existence of race somehow scientists start to magically find evidence that no such thing as race has ever existed -- how convenient! And just in case you wanted to check if it's actually true, you'll be labeled a racist and you won't find job ever again.
|
Compared to good old [fun](fun.mf) pseudosciences such as [astrology](astrology.md), soyence is extra sneaky by purposefully trying to blend in with real science, i.e. within a certain truly scientific field, such as biology, there is a soyentific [cancer](cancer.md) mixed in by activists, corporations and state, that may be hard to separate for common folk and many times even for pros. This is extremely [harmful](harmful.md) as in the eyes of retarded people (i.e. basically everyone) the neighboring legit science gives credibility to propaganda bullshit. There is a tendency to think we somehow magically live in a time that's fundamentally different from other times in history in which it is now a pretty clear and uncontroversial fact that the name of science was abused hard by propaganda, almost everyone easily accepts that historically politically constructed lies were presented as confirmed by science, but somehow people refuse to believe it could be the case nowadays. In times of Nazism there was no doubt about race being a completely scientific term and that Jews were scientifically confirmed to be the inferior race -- nowadays in times when anti Nazis have won and politics is based on denying existence of race somehow scientists start to magically find evidence that no such thing as race has ever existed -- how convenient! And just in case you wanted to check if it's actually true, you'll be labeled a racist and you won't find job ever again.
|
||||||
|
|
||||||
|
|
|
@ -7,14 +7,14 @@ Some stereotypes are:
|
||||||
{ WIP ~drummyfish }
|
{ WIP ~drummyfish }
|
||||||
|
|
||||||
- [Americans](usa.md):
|
- [Americans](usa.md):
|
||||||
- extremely stupid, primitive, close-minded, not knowing geography/history besides the US
|
- extremely stupid, primitive, close-minded, not knowing geography/history besides the US, think US is the center of the world
|
||||||
- extremely fat, eat only fast food, have no real cuisine
|
- extremely fat, eat only fast food, have no real cuisine
|
||||||
- shallow, obsessed with looks (white teeth etc.)
|
- shallow, obsessed with looks (white teeth etc.)
|
||||||
- materialist, obsessed with money, hardcore [capitalists](capitalism.md), panic fear of anything resembling [communism](communism.md)
|
- materialist, obsessed with money, hardcore [capitalists](capitalism.md), panic fear of anything resembling [communism](communism.md)/[socialism](socialism.md)
|
||||||
- arrogant, rude, individualist, self-centered
|
- arrogant, rude, individualist, self-centered
|
||||||
- eccentric, extroverted, loud behavior
|
- eccentric, extroverted, loud behavior
|
||||||
- violent, militant, imperialist, constantly invade other countries
|
- violent, militant, imperialist, constantly invade other countries, everyone has a gun and shoots at everything including their own presidents
|
||||||
- don't mind violence but are afraid of public nudity, get panic attacks when see a naked child
|
- don't mind violence but are afraid of public nudity, get panic attacks when see a naked child or nipple on TV
|
||||||
- solve things by brute force rather than by smartness
|
- solve things by brute force rather than by smartness
|
||||||
- obsessed with working as much as possible and forcing others to do the same
|
- obsessed with working as much as possible and forcing others to do the same
|
||||||
- want everything big
|
- want everything big
|
||||||
|
@ -32,20 +32,25 @@ Some stereotypes are:
|
||||||
- [black people](nigger.md):
|
- [black people](nigger.md):
|
||||||
- unintelligent, stupid, uneducated, primitive, poor
|
- unintelligent, stupid, uneducated, primitive, poor
|
||||||
- physically fit, good at sports
|
- physically fit, good at sports
|
||||||
- good at music, especially rhythmic music
|
- good at music, especially rhythmic music and jazz
|
||||||
- fathers leave their children
|
- fathers leave their children
|
||||||
- all look the same, similar to monkeys
|
- all look the same, similar to monkeys
|
||||||
- have big dicks
|
- have big dicks
|
||||||
- criminals
|
- criminals
|
||||||
- love chicken and watermelon
|
- love chicken and watermelon
|
||||||
|
- in certain situations act like monkeys (so called chimp out), e.g. when excited they start jumping around like crazy, or when scared instinctively react by punching the perceived danger
|
||||||
- gypsies:
|
- gypsies:
|
||||||
- don't work, wellfare leeches
|
- don't work, steal stuff, wellfare leeches, make a lot of children
|
||||||
|
- children don't go to school, uneducated, can hardly read
|
||||||
|
- passionate, emotional, friendly
|
||||||
|
- talent for music
|
||||||
- Australians:
|
- Australians:
|
||||||
- tough, living in dangerous wilderness
|
- tough, living in dangerous wilderness
|
||||||
- Arabs:
|
- Arabs:
|
||||||
- terrorists, suicidal bombers
|
- terrorists, suicidal bombers
|
||||||
- women are belly dancers
|
- women are belly dancers
|
||||||
- pedophiles, bigamists
|
- pedophiles, bigamists
|
||||||
|
- dirty
|
||||||
- blond, attractive [women](woman.md):
|
- blond, attractive [women](woman.md):
|
||||||
- extremely stupid
|
- extremely stupid
|
||||||
- gold diggers
|
- gold diggers
|
||||||
|
|
|
@ -14,7 +14,7 @@ Usenet was the pre-[web](www.md) web, kind of like an 80s [reddit](reddit.md) wh
|
||||||
|
|
||||||
{ I mean I don't remember it either, I'm not that old, I've just been digging on the Internet and in the archives, and I find it all fascinating. ~drummyfish }
|
{ I mean I don't remember it either, I'm not that old, I've just been digging on the Internet and in the archives, and I find it all fascinating. ~drummyfish }
|
||||||
|
|
||||||
**Where to browse Usenet for free?** Search for Usenet archives, I've found some sites dedicated to this, also [Internet archive] (internet_archive.md) has some newsgroups archived. [Google](google.md) has Usenet archives on a website called "Google groups".
|
**Where to browse Usenet for free?** Search for Usenet archives, I've found some sites dedicated to this, also [Internet archive](internet_archive.md) has some newsgroups archived. [Google](google.md) has Usenet archives on a website called "Google groups" (now sadly requires login). There is a nice archive at https://www.usenetarchives.com. Possibly guys from Archive Team can help (https://wiki.archiveteam.org/index.php/Usenet).
|
||||||
|
|
||||||
## See Also
|
## See Also
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,7 @@ Due to mass censorship and brainwashing going on at Wikipedia it is important to
|
||||||
|[WikiSpooks](wikispooks.md) | CC BY-SA | no SJW censorship, seems only focused on politics |
|
|[WikiSpooks](wikispooks.md) | CC BY-SA | no SJW censorship, seems only focused on politics |
|
||||||
|[LRS wiki](lrs_wiki.md) | CC0 | best encyclopedia |
|
|[LRS wiki](lrs_wiki.md) | CC0 | best encyclopedia |
|
||||||
|[Conservaedia](conservapedia.md) | PROPRIETARY | American fascist wiki, has basic factual errors |
|
|[Conservaedia](conservapedia.md) | PROPRIETARY | American fascist wiki, has basic factual errors |
|
||||||
|
|[Encyclopedia Dramatica](dramatica.md) | CC0 | informal/fun but valuable info (on society, tech, ...), basically no censorship, no propaganda |
|
||||||
|[Tor Hidden Wiki](http://zqktlwiuavvvqqt4ybvgvi7tyo4hjl5xgfuvpdf6otjiycgwqbym2qad.onion) | PROPRIETARY | Deepweb wiki on [Tor](tor.md), probably less censored. |
|
|[Tor Hidden Wiki](http://zqktlwiuavvvqqt4ybvgvi7tyo4hjl5xgfuvpdf6otjiycgwqbym2qad.onion) | PROPRIETARY | Deepweb wiki on [Tor](tor.md), probably less censored. |
|
||||||
|
|
||||||
TODO: darknet wikis
|
TODO: darknet wikis
|
||||||
|
|
Loading…
Reference in a new issue