master
Miloslav Ciz 1 year ago
parent 68f77b2118
commit 3de5192a17

@ -1,10 +1,10 @@
# ASCII
ASCII (American standard code for information interchange) is a relatively simple standard for digital encoding of [text](text.md) that's one of the most basic and probably the most common format used for this purpose. For its simplicity and inability to represent characters of less common alphabets it is nowadays quite often replaced with more complex encodings such as [UTF-8](utf8.md) who are however almost always backwards compatible with ASCII (interpreting UTF-8 as ASCII will give somewhat workable results), and ASCII itself is also normally supported everywhere. ASCII is the [suckless](suckless.md)/[LRS](lrs.md)/[KISS](kiss.md) character encoding, recommended and [good enough](good_enough.md) for most programs.
ASCII ([American](usa.md) standard code for information interchange) is a relatively simple standard for digital encoding of [text](text.md) that's one of the most basic and probably the most common format used for this purpose. For its simplicity and inability to represent characters of less common alphabets it is nowadays quite often replaced with more complex encodings such as [UTF-8](utf8.md) who are however almost always backwards compatible with ASCII (interpreting UTF-8 as ASCII will give somewhat workable results), and ASCII itself is also normally supported everywhere. ASCII is the [suckless](suckless.md)/[LRS](lrs.md)/[KISS](kiss.md) character encoding, recommended and [good enough](good_enough.md) for most programs.
The ASCII standard assigns a 7 [bit](bit.md) code to each basic text character which gives it a room for 128 characters -- these include lowercase and uppercase [English](english.md) alphabet, decimal digits, other symbols such as a question mark, comma or brackets, plus a few special control characters that represent instructions such as carriage return which are however often obsolete nowadays. Due to most computers working with 8 bit bytes, most platforms store ASCII text with 1 byte per character; the extra bit creates a room for **extending** ASCII by another 128 characters (or creating a variable width encoding such as [UTF-8](utf8.md)). These extensions include unofficial ones such as VISCII (ASCII with additional Vietnamese characters) and more official ones, most notably [ISO 8859](iso_8859.md): a group of standards by [ISO](iso.md) for various languages, e.g. ISO 88592-1 for western European languages, ISO 8859-5 for Cyrillic languages etc.
The ordering of characters has been kind of cleverly designed to make working with the encoding easier, for example digits start with 011 and the rest of the bits correspond to the digit itself (0000 is 0, 0001 is 1 etc.).
The ordering of characters has been kind of cleverly designed to make working with the encoding easier, for example digits start with 011 and the rest of the bits correspond to the digit itself (0000 is 0, 0001 is 1 etc.). Corresponding upper and lower case letters only differ in the 6th bit, so you can easily convert between upper and lower case by negating it as `letter ^ 0x20`. { I think there is a few missed opportunities though, e.g. in not putting digits right before letters. That way it would be very easy to print hexadecimal (and all bases up to a lot) simply as `putchar('0' + x)`. ~drummyfish }
ASCII was approved as an [ANSI](ansi.md) standard in 1963 and since then underwent many revisions every few years. The current one is summed up by the following table:
@ -142,4 +142,5 @@ ASCII was approved as an [ANSI](ansi.md) standard in 1963 and since then underwe
## See Also
- [Unicode](unicode.md)
- [ASCII art](ascii_art.md)
- [ASCII art](ascii_art.md)
- [base64](base64.md)

@ -2,7 +2,7 @@
{ Dunno if this is completely correct, I'm learning this as I'm writing it. There may be errors. ~drummyfish }
Backpropagation, or backprop, is an [algorithm](algorithm.md), based on the chain rule of derivation, used in training [neural networks](neural_network.md); it computes the partial derivative (or [gradient](gradient.md)) of the function of the network's error so that we can perform a [gradient descent](gradient_descent.md), i.e. update the weights towards lowering the network's error. It computes the analytical derivative (theoretically you could estimate a derivative numerically, but that's not so accurate and can be too computationally expensive). It is called backpropagation because it works backwards and propagates the error from the output towards the input, due to how the chain rule works, and it's efficient by reusing already computed values.
Backpropagation, or backprop, is an [algorithm](algorithm.md), based on the chain rule of derivation, used in training [neural networks](neural_network.md); it computes the partial derivative (or [gradient](gradient.md)) of the function of the network's error so that we can perform a [gradient descent](gradient_descent.md), i.e. update the weights towards lowering the network's error. It computes the analytical derivative (theoretically you could estimate a derivative numerically, but that's not so accurate and can be too computationally expensive). Backpropagation is one of the most common methods for training neural networks but it is NOT the only possible one -- there are many more such as [evolutionary programming](evolutionary_programming.md). It is called backpropagation because it works backwards and propagates the error from the output towards the input, due to how the chain rule works, and it's efficient by reusing already computed values.
## Details
@ -32,9 +32,11 @@ We can see each non-input neuron as a function. E.g. the neuron *z0* is a functi
If you don't know what the fuck is going on see [neural networks](neural_network.md) first.
What is our goal now? To find the **[partial derivative](partial_derivative.md) of the whole network's total error function** (at the current point defined by the weights), or in other words the **gradient** at the current point. I.e. from the point of view of the total error (which is just a number output by this system), the network is a function of 8 variables (weights *w000*, *w001*, ...) and we want to find a derivative of this function in respect to each of these variables (that's what a partial derivative is) at the current point (i.e. with current values of the weights). This will, for each of these variables, tell us how much (at what rate and in which direction) the total error changes if we change that variable by certain amount. Why do we need to know this? So that we can do a [gradient descent](gradient_descent.md), i.e. this information is kind of a direction in which we want to move (change the weights and biases) towards lowering the total error (making the network compute results which are closer to the training data).
What is our goal now? To find the **[partial derivative](partial_derivative.md) of the whole network's total error function** (at the current point defined by the weights), or in other words the **gradient** at the current point. I.e. from the point of view of the total error (which is just a number output by this system), the network is a function of 8 variables (weights *w000*, *w001*, ...) and we want to find a derivative of this function in respect to each of these variables (that's what a partial derivative is) at the current point (i.e. with current values of the weights). This will, for each of these variables, tell us how much (at what rate and in which direction) the total error changes if we change that variable by certain amount. Why do we need to know this? So that we can do a [gradient descent](gradient_descent.md), i.e. this information is kind of a direction in which we want to move (change the weights and biases) towards lowering the total error (making the network compute results which are closer to the training data). So all in all the goal is to find derivatives (just numbers, slopes) with respect to *w000*, *w001*, *w010*, ... *w111*.
Backpropagation is based on the **chain rule**, a rule of derivation that equates the derivative of a function composition (functions inside other functions) to a product of derivatives. This is important because by converting the derivatives to a product we will be able to **reuse** the individual factors and so compute very efficiently and quickly.
Could we do this without backpropagation? Yes -- we can use [numerical](numerical.md) algorithms to estimate derivatives, the simplest one would be to just try to change each weight, one by one, by some small number, let's say *dw*, and see how much such change changes the output error. I.e. we would sample the error function in all directions which could give us an idea of the slope in each direction. However this would be pretty slow, we would have to reevaluate the whole neural network as many times as there are weights. Backpropagation can do this much more efficiently.
Backpropagation is based on the **[chain rule](chain_rule.md)**, a rule of derivation that equates the derivative of a function composition (functions inside other functions) to a product of derivatives. This is important because by converting the derivatives to a product we will be able to **reuse** the individual factors and so compute very efficiently and quickly.
Let's write derivative of *f(x)* with respect to *x* as *D{f(x),x}*. The chain rule says that:

@ -6,11 +6,11 @@ Unless specified otherwise, this article supposes the C99 standard of the C lang
## Undefined/Unspecified Behavior
Undefined, unspecified and implementation-defined behaviors are kinds of unpredictable and sometimes non-intuitive behavior of certain operations that may differ between compilers, platforms or runs because they are not defined by the language specification; this is mostly done on purpose as to allow some implementation freedom which allows implementing the language in a way that is most efficient on given platform. This behavior may be completely random (unpredictable) or implementation-specified (consistent within each implementation but potentially different between implementations). In any case, one has to be very careful about letting such behavior influence computations. Note that tools such as [cppcheck](cppcheck.md) can help find undefined behavior in code. Description of some of these behaviors follow.
Undefined, unspecified and implementation-defined behaviors are kinds of unpredictable and sometimes non-intuitive behavior of certain operations that may differ between compilers, platforms or runs because they are not defined by the language specification; this is mostly done on purpose as to allow some implementation freedom which allows implementing the language in a way that is most efficient on given platform. This behavior may be completely random (unpredictable) or implementation-specified (consistent within each implementation but potentially different between implementations). In any case, one has to be very careful about letting such behavior influence computations. Note that tools such as [cppcheck](cppcheck.md) can help find undefined behavior in code. Description of some such behavior follows.
**Data type sizes including int and char may not be the same on each platform**. Even though we almost take it for granted than char is 8 bits wide, in theory it can be wider. The int (and unsigned int) type width should reflect the architectures native integer type, so nowadays mostly it's mostly 32 or 64 bits. To deal with this we can use the standard library `limits.h` and `stdint.h` headers.
**No specific [endianness](endian.md) is enforced**. Nowadays little endian is what you'll encounter on most platforms, but e.g. [PowerPC](ppc.md) uses big endian.
**No specific [endianness](endian.md) or even encoding of numbers is specified**. Nowadays little endian and [two's complement](twos_complement.md) is what you'll encounter on most platforms, but e.g. [PowerPC](ppc.md) uses big endian ordering.
**Order of evaluation of operands and function arguments is not specified**. I.e. in an expression or function call it is not defined which operands or arguments will be evaluated first, the order may be completely random and the order may differ even when evaluating the same expression at another time. This is demonstrated by the following code:
@ -32,9 +32,9 @@ int main(void)
}
```
**Overflow behavior of signed type operations is not specified.** Sometimes we suppose that e.g. addition of two signed integers that are past the data type's limit will produce two's complement overflow, but in fact this operation's behavior is undefined, C99 doesn't say what representation should be used for numbers. For [portability](portability.md), predictability and safety **it is safer to use unsigned types**.
**Overflow behavior of signed type operations is not specified.** Sometimes we suppose that e.g. addition of two signed integers that are past the data type's limit will produce two's complement overflow (wrap around), but in fact this operation's behavior is undefined, C99 doesn't say what representation should be used for numbers. For [portability](portability.md), predictability and safety **it is safer to use unsigned types** (but safety may come at the cost of performance, i.e. you prevent compiler from performing some optimizations based on undefined behavior).
**Bit shifts by type width or more are undefined.** Also bit shifts by negative values are undefined. So e.g. `x >> 8` is undefined if width of the data type of `x` is 8 bits.
**Bit shifts by type width or more are undefined.** Also bit shifts by negative values are undefined. So e.g. `x >> 8` is undefined if width of the data type of `x` is 8 bits or fewer.
**Char data type signedness is not defined**. The signedness can be explicitly "forced" by specifying `signed char` or `unsigned char`.
@ -44,11 +44,23 @@ Besides being extra careful about writing memory safe code, one needs to also kn
## 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: it is a valid C program but not a C++ program). Furthermore a C program that is at the same time also a C++ program may behave differently when compiled as C vs C++, i.e. there may be a [semantic](semantics.md) difference. 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++.
TODO: specific examples
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
```
char *s = "abc";
```
C++ requires any such pointer to be `const`, i.e.:
```
const char *s = "abc";
```
TODO: more examples
## Compiler Optimizations

@ -2,6 +2,8 @@
*Not to be confused with [open $ource](open_source.md).*
*"Our life is worthless unless spent of freedom."* --Vortigaunt in HL2
Free (as in freedom) software is a type of ethical [software](software.md) that's respecting its users' freedom and preventing their abuse, generally by availability of its source code AND by a [license](license.md) that allows anyone to use, study, modify and share the software. Free software is NOT equal to software whose source code is available or software that is offered for zero price, the basic rights to the software are the key attribute that has to be present. Free software stands opposed to [proprietary software](proprietary_software.md) -- the kind of abusive, closed software that [capitalism](capitalism.md) produces by default. Free software is not to be confused with [freeware](freeware.md) ("gratis", software available for free); although free software is always available for free thanks to its definition, zero price is not its goal. The goal is freedom.
Free software is also known as *free as in freedom*, *free as in speech* software or *libre* software. It is sometimes equated with [open source](open_source.md), even though open source is fundamentally different ([evil](evil.md)), or neutrally labelled FOSS or FLOSS (free/libre and open-source software). Software that is gratis (freeware) is sometimes called *free as in beer*.

@ -12,7 +12,7 @@ The basis of less retarded society is a **universal and unconditional [love](lov
We purposefully make this goal a little bit vague, we avoid specifying our basic goal with exact mathematical metrics because defining maximization of any such measure as a goal leads to undesired results (as for example in [capitalism](capitalism.md) setting the goal to maximizing capital leads to maximizing it on the detriment of all other values such as well being of people). This is known as the [Goodhart's law](goodharts_law.md): "when a metric becomes a goal, it stops being a good metric".
**What does love of all life mean exactly?** As hinted above, it does **NOT** necessarily mean maximizing specific measures such as abundance of life (which could lead to overpopulation and in turn to suffering), the sum of happiness of all life (which could lead to just dosing everyone with drugs or killing unhappy individuals), elimination of negative emotion such as hatred (which would likely prevent us from recognizing wrong directions of our society) etc. It doesn't even mean that we will never kill anyone on purpose, our society may support [euthanasia](euthanasia.md) without violating its principles. Love of all life mostly means that **we start behaving [selflessly](selflessness.md) and altruistically instead of pursuing self interest**, at least as much as we practically can. It means that we start seeing the life on our whole planet (and possibly in the whole universe) as our own family, not as our enemies. This doesn't mean we will like everyone, that we'll agree with everyone's opinions, that we won't criticize anyone or that we'll be [politically correct](political_correctness.md) etc., it just means that we will never try to cause suffering to others, that we'll try to not exploit others, that we'll be aware of the needs of others and try to behave towards them with empathy and love. Importantly **we will try to pursue these ideals even if we can't achieve perfection**.
**What does love of all life mean exactly?** As hinted above, it does **NOT** necessarily mean maximizing specific measures such as abundance of life (which could lead to overpopulation and in turn to suffering), the sum of happiness of all life (which could lead to just dosing everyone with drugs or killing unhappy individuals), elimination of negative emotion such as hatred (which would likely prevent us from recognizing wrong directions of our society), it doesn't mean respect towards everyone etc. It doesn't even mean that we will never kill anyone on purpose, our society may support [euthanasia](euthanasia.md) without violating its principles. Love of all life mostly means that **we start behaving [selflessly](selflessness.md) and [altruistically](altruism.md) instead of pursuing self interest**, at least as much as we practically can. It means that we start seeing the life on our whole planet (and possibly in the whole universe) as our own family, not as our enemies. This doesn't mean we will like everyone, that we'll agree with everyone's opinions, that we won't criticize anyone or that we'll be [politically correct](political_correctness.md) etc., it just means that we will never try to cause suffering to others, that we'll try to not exploit others, that we'll be aware of the needs of others and try to behave towards them with empathy and love. Importantly **we will try to pursue these ideals even if we can't achieve perfection**.
## Basic Description

@ -37,6 +37,7 @@ These are mainly for [C](c.md), but may be usable in other languages as well.
- **What's fast on one platform may be slow on another**. This depends on the instruction set as well as on compiler, operating system, available hardware, [driver](driver.md) implementation and other details. In the end you always need to test on the specific platform to be sure about how fast it will run. A good approach is to optimize for the weakest platform you want to support -- if it runs fasts on a weak platform, a "better" platform will most likely still run it fast.
- **Mental calculation tricks**, e.g. multiplying by one less or more than a power of two is equal to multiplying by power of two and subtracting/adding once, for example *x * 7 = x * 8 - x*; the latter may be faster as a multiplication by power of two (bit shift) and addition/subtraction may be faster than single multiplication, especially on some primitive platform without hardware multiplication. However this needs to be tested on the specific platform. Smart compilers perform these optimizations automatically, but not every compiler is high level and smart.
- **Else should be the less likely branch**, try to make if conditions so that the if branch is the one with higher probability of being executed -- this can help branch prediction.
- **You can save space by "squeezing" variables** -- this is a space-time tradeoff, it's a no brainer but nubs may be unaware of it -- for example you may store 2 4bit values in a single `char` variable (8bit data type), one in the lower 4bits, one in the higher 4bits (use bit shifts etc.). So instead of 16 memory-aligned booleans you may create one `int` and use its individual bits for each boolean value. This is useful in environments with extremely limited RAM such as 8bit Arduinos.
- **You can optimize critical parts of code in [assembly](assembly.md)**, i.e. manually write the assembly code that takes most of the running time of the program, with as few and as inexpensive instructions as possible (but beware, popular compilers are very smart and it's often hard to beat them). But note that such code loses [portability](portability.md)! So ALWAYS have a C (or whatever language you are using) [fallback](fallback.md) code for other platforms, use [ifdefs](ifdef.md) to switch to the fallback version on platforms running on different assembly languages.
- **[Parallelism](parallelism.md) ([multithreading](multithreading.md), [compute shaders](compute_shader.md), ...) can astronomically accelerate many programs**, it is one of the most effective techniques of speeding up programs -- we can simply perform several computations at once and save a lot of time -- but there are a few notes. Firstly not all problems can be parallelized, some problem are sequential in nature, even though most problems can probably be parallelized to some degree. Secondly it is hard to do, opens the door for many new types of bugs, requires hardware support (software simulated parallelism can't work here of course) and introduces [dependencies](dependency.md); in other words it is huge [bloat](bloat.md), we don't recommend parallelization unless a very, very good reason is given. Optional use of [SIMD](simd.md) instructions can be a reasonable midway to going full parallel computation.
- **Specialized hardware (e.g. a [GPU](gpu.md)) astronomically accelerates programs**, but as with the previous point, portablity and simplicity greatly suffers, your program becomes bloated and gains dependencies, always consider using specialized hardware and offer software fallbacks.

@ -2,16 +2,18 @@
*Love is not a crime.*
{ [Rape](rape.md) of anyone is bad as is any violence against any living being, that's the only thing that matters. Any thought, desire or perception of any information must however never be considered wrong in itself. ~drummyfish }
{ I hate disclaimers but I'm getting some suicide suggestions and death threats, so I'll leave a small note here: keep in mind LRS loves all living beings and never advocates for hurting anyone, i.e. [rape](rape.md) of anyone is absolutely not acceptable, as any other kind of violence against any living being -- this is what really matters in the end (as opposed to respecting arbitrary law-imposed age limits etc.). Any thought, desire, perception or sharing of any information must however never be considered wrong in itself, i.e. bullying someone merely for his sexual orientation or his thoughts is just as wrong as raping someone. ~drummyfish }
Pedophilia is a sexual orientation towards children. Unlike for example pure [homosexuality](gay.md), pedophilia is completely natural and normal, however it is nowadays wrongfully, for political reasons, labeled a "disorder" just as homosexuality used to be. It is the forbidden, censored and bullied sexual orientation of our age, even though all healthy people are pedophiles (just don't pretend you've never seen a [jailbait](jailbait.md) you found sexy, people start being sexually attractive exactly as soon as they become able to reproduce), even though one cannot choose this orientation and even though pedophiles don't hurt anyone any more than for example gay people do, they are highly oppressed and tortured. Despite what the propaganda says, a **pedophile is not automatically a rapist** of children (a pedophile may choose to never actually even have sex with a child) any more than a gay man is automatically a rapist of people of the same sex, and watching [child porn](child_porn.md) won't make you want to rape children any more than watching gay porn will make you want to rape people of the same gender. Nevertheless the society, especially the fascists from the [LGBT](lgbt.md) movement who ought to know better than anyone else what it is like to be oppressed only because of private sexual desires, actively hunt pedophiles, [bully](cancel_culture.md) them and lynch them on the internet and in the real life by both civilians and state (I shit you not, in [Murica](usa.md) there are whole police teams of pink haired lesbians who pretend to be little girls on the internet and tease guys so that they can lock them up and get a medal for it). There is a literal witch hunt going on against completely innocent people, just like in the middle ages. Innocent people are tortured, castrated, cancelled, rid of their careers, imprisoned, beaten, rid of their friends and families and pushed to suicide sometimes only for having certain files on their computers (not that any of the above is ever justified to do to anyone, even the worst criminal).
Pedophilia is a sexual orientation towards children. Pedophiles are often called just *pedos* for short. Opposition of pedophilia is called **[pedophobia](pedophobia.md)**.
Pedophiles are often called just *pedos* for short. Opposition of pedophilia is called **[pedophobia](pedophobia.md)**.
Unlike for example pure [homosexuality](gay.md), pedophilia is completely natural, normal and not any more harmful than any other orientation, however it is nowadays wrongfully, for political reasons, labelled a "disorder" (just as homosexuality used to be not a long time ago). It is the forbidden, tabooed, censored and bullied sexual orientation of the [21st century](21st_century.md), even though all healthy people are pedophiles -- just don't pretend you've never seen a [jailbait](jailbait.md) you found sexy, people start being sexually attractive exactly as soon as they become able to reproduce; furthermore when you've gone without sex long enough and get extremely horny, you get turned on by anything that literally has some kind of hole in it -- this is completely normal. Basically everyone has some kind of weird fetish he hides from the world, there are people who literally fuck cars in their exhausts, people who like to eat shit, dress in diapers and hang from ceiling by their nipples, people who have sexual relationships with virtual characters etc. -- this is all considered normal, but somehow once you get an erection seeing a hot 17 year old girl, you're a demon that needs to be locked up and cured, if not executed right away, just for a thought present in your mind.
Even though one cannot choose this orientation and even though pedophiles don't hurt anyone any more than for example gay people do, they are highly oppressed and tortured. Despite what the propaganda says, a **pedophile is not automatically a rapist** of children (a pedophile will probably choose to never actually even have sex with a child) any more than a gay man is automatically a rapist of people of the same sex, and watching [child porn](child_porn.md) won't make you want to rape children any more than watching gay porn will make you want to rape people of the same sex. Nevertheless the society, especially the fascists from the [LGBT](lgbt.md) movement who ought to know better than anyone else what it is like to be oppressed only because of private sexual desires, actively hunt pedophiles, [bully](cancel_culture.md) them and lynch them on the Internet and in the [real life](irl.md) -- this is done by both both civilians and the state (I shit you not, in [Murica](usa.md) there are whole police teams of pink haired lesbians who pretend to be little girls on the Internet and tease guys so that they can lock them up and get a medal for it). There is a literal **witch hunt** going on against completely innocent people, just like in the middle ages. Innocent people are tortured, castrated, cancelled, rid of their careers, imprisoned, beaten, rid of their friends and families and pushed to suicide sometimes only for having certain files on their computers or saying something inappropriate online (not that any of the above is ever justified to do to anyone, even the worst criminal).
The fact that they made people believe it is a disorder if your penis can't magically telepathically check a chick's ID and may get erect if she's been born before a date legally established in political region the penis currently resides in shows that at this point an average citizen is more retarded than a braindead chimp.
[Child porn](child_porn.md) is hardocre censored on the internet, it is forbidden to even posses for personal use (!!!) -- even if you don't pay for it, even if you don't show it to anyone, even if you're not redistributing it, even if you're not hurting anyone, even if you don't even watch it, you're a criminal just if a file of an underage PP resides on your harddrive. The anti-pedo craze has gotten so insanely and unbelievably bad that even cartoon pictures of naked children or photos of children in swimsuits (not even talking about non-sexual photos of naked children) are banned basically everywhere on the internet :D WTF. [LMAO](lmao.md) they even blur just faces of children on TV. Let's repeat that, **children faces are censored in today's society** xD The worst part is that most people comply with such censorship and even support it, it's unbelievable how fucked up the world is -- yes, this definitely makes you want to [kill yourself](suicide.md).
[Child porn](child_porn.md) is hardocre censored on the mainstream Internet, it is forbidden to even posses for personal use (!!!) -- even if you don't pay for it, even if you don't show it to anyone, even if you're not redistributing it, even if you're not hurting anyone, even if you don't even watch it, you're a criminal just if a file of an underage PP resides on your harddrive. The anti-pedo craze has gotten so insanely and unbelievably bad that even cartoon pictures of naked children or photos of children in swimsuits (not even talking about non-sexual photos of naked children) are banned basically everywhere on the internet :D WTF. [LMAO](lmao.md) they even blur just faces of children on TV. Let's repeat that, **children faces are censored in today's society** xD The worst part is that most people comply with such censorship and even support it, it's unbelievable how fucked up the world is -- yes, this definitely makes you want to [kill yourself](suicide.md).
The pedophile witch hunt exists because it is a great political tool. It is an arbitrarily invented (well, maybe not invented but purposefully escalated) victimless crime. By the principles of [fear culture](fear_culture.md), it allows to push things such as hard surveillance and censorship, similarly to e.g. "war on terror". You're a government or a corporation and want to spy on people chatting? Just make a law requiring mandatory [spyware](spyware.md) in all chat and justify it by "pedophiles" (this is what [EU](eu.md) did). You're against the surveillance law? You must be a pedophile! The witch hunt also allows to immediately cancel anyone uncomfortable. There's a guy who the government doesn't like? Maybe a political competition. Simple, just plant some files on his computer, make up a little story and he's gone.
Defending pedophilia in itself is enough to be cancelled or perhaps even imprisoned, however it is the morally right thing to always say the truth. Therefore we mustn't remain silent about this issue.
Defending pedophilia in itself is enough to be cancelled or perhaps even imprisoned, however it is the morally right thing to always say the truth -- especially that which is being censored. Therefore we mustn't remain silent about this issue.

@ -14,7 +14,9 @@ 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 }
**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).
## Where To Freely Browse Usenet
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, https://archive.org/details/usenet, ...).
## See Also

@ -36,15 +36,15 @@ These are some sources you can use for research and gathering information for ar
- **[Citizendium](citizendium.md)**: can offer a different angle of view from Wikipedia.
- **non-SJW forks of Wikipedia**: to get past SWJ censorship/propaganda on Wikipedia try e.g. [infogalactic](infogalactic.md) or [metapedia](metapedia.md).
- **Britannica online**: proprietary, but articles are nicely written, facts are in the public domain so we can steal them.
- **Archives: [Internet Archive](internet_archive.md), [Archive Team Wiki](https://wiki.archiveteam.org/), [archive.li](https://archive.li/), ...**: Most information once available on the Internet is most likely no longer accessible nowadays (taken down, privatized, censored, no longer indexed, ...). Look in the archives!
- **[wikiwikiweb](wikiwikiweb.md)**
- **[Wiby](wiby.md)**: this will find nice sites of tech nerds that Google won't show among first results
- **[Wiby](wiby.md), marginalia and other non-commercial search engines**: this will find nice small non-commercial sites of tech and other nerds that Google suffocates under bloatsites (or simply censors)
- **[Project Gutenberg](gutenberg.md)**: mostly older books but there are already some computer related books like [RMS's](rms.md) biography or [Jargon File](jargon_file.md)
- **University theses** (and scientific paper of course): many university theses are publicly accessible and usually nicely sum up topics, bachelor level theses may be better understandable than PhD/master theses.
- **Slides**: slides from various presentations are actually great resources as they condense the topic into its main points, they filter out the piles of noise.
- **Wikisource** and **Wikibooks**
- **[Metapedia](metapedia.md)**, **[Infogalactic](infogalactic.md)** etc.
- **[books](book.md)**: Books are still of higher quality than online sources so you can [pirate](piracy.md) some and steal some facts from them.
- **[Internet Archive](internet_archive.md)**: A lot of things can be found on the old web that today drown in the bloat of shitsites, also Internet Archive has archives of various forums etc.
- **[books](book.md)**: Books are still of higher quality than online sources so you can [pirate](piracy.md) some and steal some facts from them. Check out libgen, torrents etc.
- **[YouTube](youtube.md)**: Yes, sadly this is nowadays one of the biggest sources of information which is unfortunately hidden in videos full of ads and retarded zoomers, the information is unindexed. If you are brave enough, you can dig this information out and write it here as a proper text.
- Try searching with different search engines than just Google (wiby, marginalia, Yandex, Bing, Yahoo, Internet Archive, ...).
- **Non-web**: When web fails, you can search the [darknet](darknet.md), [gopher](gopher.md), [gemini](gemini.md), [usenet](usenet.md), [tor](tor.md) etc.

Loading…
Cancel
Save