Update
This commit is contained in:
parent
3bef179616
commit
561ddf8822
20 changed files with 309 additions and 19 deletions
3
anal_bead.md
Normal file
3
anal_bead.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Anal Bead
|
||||||
|
|
||||||
|
For most people anal beads are just sex toys they stick in their butts, however anal beads with with remotely controlled vibration can also serve as a well hideen one-way communication device. Use of an anal bead for cheating in [chess](chess.md) has been the topic of a great cheat scandal in 2022 (Niemann vs Carlsen).
|
1
bbs.md
1
bbs.md
|
@ -16,4 +16,5 @@ The first BBS was CBBS (computerized bulletin board system) created by Ward Chri
|
||||||
|
|
||||||
- [public access Unix](pubnix.md)
|
- [public access Unix](pubnix.md)
|
||||||
- [Usenet](usenet.md)
|
- [Usenet](usenet.md)
|
||||||
|
- [modem world](modem_world.md)
|
||||||
- [tildeverse](tildeverse.md)
|
- [tildeverse](tildeverse.md)
|
|
@ -1,16 +1,16 @@
|
||||||
# Comment
|
# Comment
|
||||||
|
|
||||||
Comment is part of computer code that doesn't affect how the code is interpreted by the computer and is intended to hold information for humans (even though comments can sometimes contain additional information for computers such as metadata and autodocumentation information). There are comments in basically all [programming languages](programming_language.md), they usually start with `//`, `#`, `/*` and similar symbols.
|
Comment is part of computer code that doesn't affect how the code is interpreted by the computer and is intended to hold information for humans that read the code (even though comments can sometimes contain additional information for computers such as metadata and autodocumentation information). There are comments in basically all [programming languages](programming_language.md), they usually start with `//`, `#`, `/*` and similar symbols, sometimes parts of code that don't fit the language syntax are ignored and as such can be used for comments.
|
||||||
|
|
||||||
**You should comment you source code.** General tips on commenting:
|
Even though you should write nice, [self documenting](self_documentation.md) code, **you should comment you source code** as well. General tips on commenting:
|
||||||
|
|
||||||
- ALWAYS put a **global file comment** at the top of a file to make it [self-contained](self_contained.md). It should include:
|
- ALWAYS put a **global file comment** at the top of a file to make it [self-contained](self_contained.md). It should include:
|
||||||
- **Description of what the file actually does.** This is extremely important for [readability](readability.md), documentation and quick orientation. If a new programmer comes looking for a specific part of the code, he may waste hours on searching the wrong files just because the idiotic author couldn't be bothered to include fucking three sentences at the start of the file. [Modern](modern.md) program just don't fucking do this anymore, this is just [shit](shit.md).
|
- **Description of what the file actually does.** This is extremely important for [readability](readability.md), documentation and quick orientation. If a new programmer comes looking for a specific part of the code, he may waste hours on searching the wrong files just because the idiotic author couldn't be bothered to include fucking three sentences at the start of the file. [Modern](modern.md) program just don't fucking do this anymore, this is just [shit](shit.md).
|
||||||
- [License](license.md)/[waiver](waiver.md), either full text or link. Even if your repo contains a global license (which it should), it's good for the file to carry the license because the file may just be copy pasted on its own into some other project and then it will appear as having no license.
|
- [License](license.md)/[waiver](waiver.md), either full text or link. Even if your repo contains a global license (which it should), it's good for the file to carry the license because the file may just be copy pasted on its own into some other project and then it will appear as having no license.
|
||||||
- **Name/nick of the author(s)** and roughly the date of creation (year is enough). This firstly helps legally assess [copyright](copyright.md) (who and for how long holds the copyright) and secondly helps others contact the author in case of encountering something weird in the code.
|
- **Name/nick of the author(s)** and roughly the date of creation (year is enough). This firstly helps legally assess [copyright](copyright.md) (who and for how long holds the copyright) and secondly helps others contact the author in case of encountering something weird in the code.
|
||||||
- Comment specific blocks of code with **keywords** -- this will help searching the code with tools like [grep](grep.md). E.g. in game's code add comment `// player: shoot, fire` to the part of code that handles player's shooting so that someone searching for any one of these two words will be directed here.
|
- Comment specific blocks of code with **keywords** -- this will help searching the code with tools like [grep](grep.md). E.g. in game's code add comment `// player: shoot, fire` to the part of code that handles player's shooting so that someone searching for any one of these two words will be directed here.
|
||||||
- All functions (maybe with exceptions of trivial one-liners) should come with a comment documenting:
|
- Functions (maybe with some exceptions like trivial one-liners) should come with a comment documenting:
|
||||||
- **Behavior** of the function, what it does and also how it does that (Is the function slow? Is it safe? Does it perform checks of arguments? Does it have [side effects](side_effect.md)? ...).
|
- **Behavior** of the function, what it does and also how it does that (Is the function slow? Is it safe? Does it perform checks of arguments? Does it have [side effects](side_effect.md)? How are errors handled? ...).
|
||||||
- **Meaning of all arguments** and if needed their possible values.
|
- **Meaning of all arguments** and if needed their possible values.
|
||||||
- **Return value meaning**.
|
- **Return value meaning**.
|
||||||
- You may decide to use comment format of some [autodoc](autodoc.md) system such as [doxygen](doxygen.md) -- it costs nothing and helps firstly unify the style of your comments and secondly, obviously, generate automatic documentation of your code, as well as possibly automatically process it in other ways.
|
- You may decide to use comment format of some [autodoc](autodoc.md) system such as [doxygen](doxygen.md) -- it costs nothing and helps firstly unify the style of your comments and secondly, obviously, generate automatic documentation of your code, as well as possibly automatically process it in other ways.
|
||||||
|
|
96
distance.md
Normal file
96
distance.md
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
# Distance
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
## Approximations
|
||||||
|
|
||||||
|
Computing Euclidean distance requires multiplication and most importantly [square root](sqrt.md) which is usually a pretty slow operation, therefore many times we look for simpler [approximations](approximation.md).
|
||||||
|
|
||||||
|
Two very basic and rough approximations of Euclidean distance, both in 2D and 3D, are [taxicab](taxicab.md) (also Manhattan) and [Chebyshev](chebyshev.md) distances. Taxicab distance
|
||||||
|
simply adds the absolute coordinate differences along each principal axis (*dx*, *dy* and *dz*) while Chebyshev takes the maximum of them. In [C](c.md) (for generalization to 3D just add one coordinate of course):
|
||||||
|
|
||||||
|
```
|
||||||
|
int distTaxi(int x0, int y0, int x1, int y1)
|
||||||
|
{
|
||||||
|
x0 = x1 > x0 ? x1 - x0 : x0 - x1; // dx
|
||||||
|
y0 = y1 > y0 ? y1 - y0 : y0 - y1; // dy
|
||||||
|
|
||||||
|
return x0 + y0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int distCheb(int x0, int y0, int x1, int y1)
|
||||||
|
{
|
||||||
|
x0 = x1 > x0 ? x1 - x0 : x0 - x1; // dx
|
||||||
|
y0 = y1 > y0 ? y1 - y0 : y0 - y1; // dy
|
||||||
|
|
||||||
|
return x0 > y0 ? x0 : y0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Both of these distances approximate a circle in 2D with a square or a sphere in 3D with a cube, the difference is that taxicab is an upper estimate of the distance while Chebyshev is the lower estimate. For speed of execution ([optimization](optimization.md)) it may also be important that taxicab distance only uses the operation of addition while Chebyshev may result in [branching](branch.md) (*if*) in the max function which is usually not good for performance.
|
||||||
|
|
||||||
|
A bit more accuracy can be achieved by averaging the taxicab and Chebyshev distances which in 2D approximates a circle with an 8 segment polygon and in 3D approximates a sphere with 24 sided [polyhedron](polyhedron.md). The integer-only [C](c.md) code is following:
|
||||||
|
|
||||||
|
```
|
||||||
|
int dist8(int x0, int y0, int x1, int y1)
|
||||||
|
{
|
||||||
|
x0 = x1 > x0 ? x1 - x0 : x0 - x1; // dx
|
||||||
|
y0 = y1 > y0 ? y1 - y0 : y0 - y1; // dy
|
||||||
|
|
||||||
|
return (x0 + y0 + (x0 > y0 ? x0 : y0)) / 2;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
{ The following is an approximation I came up with when working on [tinyphysicsengine](tpe.md). While I measured the average and maximum error of the taxi/Chebyshev average in 3D at about 16% and 22% respectively, the following gave me 3% and 12% values. ~drummyfish }
|
||||||
|
|
||||||
|
Yet more accurate approximation of 3D Euclidean distance can be made with a 48 sided [polyhedron](polyhedron.md). The principle is following: take absolute values of all three coordinate differences and order them by magnitude so that *dx >= dy >= dz >= 0*. This gets us into one of 48 possible slices of space (the other slices have the same shape, they just differ by ordering or signs of the coordinates but the distance in them is of course equal). In this slice we'll approximate the distance linearly, i.e. with a [plane](plane.md). We do this by simply computing the distance of our point from a plane that goes through origin and whose normal is approximately {0.8728,0.4364,0.2182} (it points in the direction that goes through the middle of space slice). The expression for the distance from this plane simplifies to simply *0.8728 * dx + 0.4364 * dy + 0.2182 * dz*. The following is an integer-only implementation in [C](c.md) (note that the constants above have been converted to allow division by 1024 for possible [optimization](optimization.md) of division to a bit shift):
|
||||||
|
|
||||||
|
```
|
||||||
|
int32_t dist48(
|
||||||
|
int32_t x0, int32_t y0, int32_t z0,
|
||||||
|
int32_t x1, int32_t y1, int32_t z1)
|
||||||
|
{
|
||||||
|
x0 = x1 > x0 ? x1 - x0 : x0 - x1; // dx
|
||||||
|
y0 = y1 > y0 ? y1 - y0 : y0 - y1; // dy
|
||||||
|
z0 = z1 > z0 ? z1 - z0 : z0 - z1; // dz
|
||||||
|
|
||||||
|
if (x0 < y0) // order the coordinates
|
||||||
|
{
|
||||||
|
if (x0 < z0)
|
||||||
|
{
|
||||||
|
if (y0 < z0)
|
||||||
|
{ // x0 < y0 < z0
|
||||||
|
int32_t t = x0; x0 = z0; z0 = t;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // x0 < z0 < y0
|
||||||
|
int32_t t = x0; x0 = y0; y0 = t;
|
||||||
|
t = z0; z0 = y0; y0 = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // z0 < x0 < y0
|
||||||
|
int32_t t = x0; x0 = y0; y0 = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (y0 < z0)
|
||||||
|
{
|
||||||
|
if (x0 < z0)
|
||||||
|
{ // y0 < x0 < z0
|
||||||
|
int32_t t = y0; y0 = z0; z0 = t;
|
||||||
|
t = x0; x0 = y0; y0 = t;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // y0 < z0 < x0
|
||||||
|
int32_t t = y0; y0 = z0; z0 = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (893 * x0 + 446 * y0 + 223 * z0) / 1024;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
TODO: this https://www.flipcode.com/archives/Fast_Approximate_Distance_Functions.shtml
|
11
everyone_does_it.md
Normal file
11
everyone_does_it.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Everyone Does It
|
||||||
|
|
||||||
|
"Everyone does it" is an argument quite often used by simps to justify their unjustifiable actions. It is often used alongside the "[just doing my job](just_doing_my_job.md)" argument.
|
||||||
|
|
||||||
|
The argument has a valid use, however it is rarely used in the valid way. We humans, as well as other higher organisms, have evolved to mimic the behavior of others because such behavior is tried, others have tested such behavior for us (for example eating a certain plant that might potentially be poisonous) and have survived it, therefore it is likely also safe to do for us. So we have to realize that "everyone does it" is an **argument for safety, not for morality**. But people nowadays mostly use the argument as an excuse for their immoral behavior, i.e. something that's supposed to make bad things they do "not bad" because "if it was bad, others wouldn't be doing it". That's of course wrong, people do bad things and the argument "everyone does it" helps people do them, for example during the Nazi holocaust this excuse partially allowed some of the greatest atrocities in history. Nowadays during [capitalism](capitalism.md) it is used to excuse taking part unethical practices, e.g. those of corporations.
|
||||||
|
|
||||||
|
So if you tell someone "You shouldn't do this because it's bad" and he replies "Well, everyone does it", he's really (usually) saying "I know it's bad but it's safe for me to do".
|
||||||
|
|
||||||
|
The effect is of course abused by politicians: once you get a certain number of people moving in a certain shared direction, others will follow just by the need to mimic others. Note that just creating an illusion (using the tricks of [marketing](marketing.md)) of "everyone doing something" is enough -- that's why you see 150 year old grannies in ads using modern smartphones -- it's to force old people into thinking that other old people are using smartphones so they have to do it as well.
|
||||||
|
|
||||||
|
Another potentially valid use of the argument is in the meaning of "everyone does it so I am FORCED to do it as well". For example an employer could argue "I have to abuse my employees otherwise I'll lose the edge on the market and will be defeated by those who continue to abuse their employees". This is very true but it seems like many people don't see or intend this meaning.
|
|
@ -1,10 +1,12 @@
|
||||||
# Gopher
|
# Gopher
|
||||||
|
|
||||||
Gopher is a network [protocol](protocol.md) for publishing, browsing and downloading files and is known as a much simpler alternative to the [World Wide Web](www.md) (i.e. to [HTTP](http.md) and [HTML](html.md)). In fact it competed with the Web in its early days and even though the Web won in the mainstream, gopher still remains used by a small community. Gopher is like the Web but well designed, it is the [suckless](suckless.md)/[KISS](kiss.md) way of doing what the Web does, it contains practically no [bloat](bloat.md) and so [we](lrs.md) highly advocate its use. Gopher inspired creation of [gemini](gemini.md), a similar but bit more complex and "[modern](modern.md)" protocol, and the two together have recently become the main part of so called [Smol Internet](smol_internet.md).
|
Gopher is a network [protocol](protocol.md) for publishing, browsing and downloading files and is known as a much simpler alternative to the [World Wide Web](www.md) (i.e. to [HTTP](http.md) and [HTML](html.md)). In fact it competed with the Web in its early days and even though the Web won in the mainstream, gopher still remains used by a small community. Gopher is like the Web but well designed, it is the [suckless](suckless.md)/[KISS](kiss.md) way of doing what the Web does, it contains practically no [bloat](bloat.md) and so [we](lrs.md) highly advocate its use. Gopher inspired creation of [Gemini](gemini.md), a similar but bit more complex and "[modern](modern.md)" protocol, and the two together have recently become the main part of so called [Smol Internet](smol_internet.md).
|
||||||
|
|
||||||
|
As of 2022 the Veronica search engine reported 343 gopher servers in the world with 5+ million indexed selectors.
|
||||||
|
|
||||||
Gopher **doesn't use any [encryption](encryption.md)**. This is good, encryption is [bloat](bloat.md). Gopher also **only uses [ASCII](ascii.md)**, i.e. there's no [Unicode](unicode.md). That's also good, Unicode is bloat (and mostly serves trannies to insert emojis of pregnant men into readmes, we don't need that). Gopher simple design is intentional, the authors deemed simplicity a good feature. Gopher is so simple that you may very well write your own client and server and comfortably use them (it is also practically possible to browse gopher without a specialized client, just with standard [Unix](unix.md) [CLI](cli.md) tools).
|
Gopher **doesn't use any [encryption](encryption.md)**. This is good, encryption is [bloat](bloat.md). Gopher also **only uses [ASCII](ascii.md)**, i.e. there's no [Unicode](unicode.md). That's also good, Unicode is bloat (and mostly serves trannies to insert emojis of pregnant men into readmes, we don't need that). Gopher simple design is intentional, the authors deemed simplicity a good feature. Gopher is so simple that you may very well write your own client and server and comfortably use them (it is also practically possible to browse gopher without a specialized client, just with standard [Unix](unix.md) [CLI](cli.md) tools).
|
||||||
|
|
||||||
From the user's perspective the most important distinction from the Web is that gopher is based on **menus** instead of "webpages"; a menu is simply a column of items of different predefined types, most importantly e.g. a *text file* (which clients can directly display), *directory* (link to another menu), *text label* (just shows some text), *binary file* etc. A menu can't be formatted or visually changed, there are no colors, images, scripts or [hypertext](hypertext.md) -- a menu is not a presentation tool, it is simply a navigation node towards files users are searching for (but the mentioned ASCII art and label items allow for somewhat mimicking "websites" anyway). Addressing works with [URLs](url.md) just as the Web, the URLs just differ by the protocol part (`gopher://` instead of `http://`), e.g.: `gopher://gopher.floodgap.com:70/1/gstats`. What on Web is called a "website" on gopher we call a **gopherhole** (i.e. a collection of resources usually under a single [domain](domain.md)) and the whole gopher network is called a **gopherspace**. [Blogs](blog.md) are common on gopher and are called **phlogs**. As menus can refer to one another, gopher creates something akin a **global [file system](file_system.md)**, so browsing gopher is like browsing folders and can comfortably be handled with just 4 arrow keys. Note that as menus can link to any other menu freely, the structure of the "file system" is not a [tree](tree.md) but rather a general [graph](graph.md). Another difference from the Web is gopher's great emphasis on **[plaintext](plaintext.md) and [ASCII art](ascii_art.md)** as it cannot embed images and other media in the menus (even though of course the menus can link to them). There is also a support for sending text to a server so it is possible to implement [search engines](search_engine.md), guest books etc.
|
From the user's perspective the most important distinction from the Web is that gopher is based on **menus** instead of "webpages"; a menu is simply a column of items of different predefined types, most importantly e.g. a *text file* (which clients can directly display), *directory* (link to another menu), *text label* (just shows some text), *binary file* etc. A menu can't be formatted or visually changed, there are no colors, images, scripts or [hypertext](hypertext.md) -- a menu is not a presentation tool, it is simply a navigation node towards files users are searching for (but the mentioned ASCII art and label items allow for somewhat mimicking "websites" anyway). Addressing works with [URLs](url.md) just as the Web, the URLs just differ by the protocol part (`gopher://` instead of `http://`), e.g.: `gopher://gopher.floodgap.com:70/1/gstats`. What on Web is called a "website" on gopher we call a **gopherhole** (i.e. a collection of resources usually under a single [domain](domain.md)) and the whole gopher network is called a **gopherspace**. [Blogs](blog.md) are common on gopher and are called **phlogs** (collectively a *phlogosphere*). As menus can refer to one another, gopher creates something akin a **global [file system](file_system.md)**, so browsing gopher is like browsing folders and can comfortably be handled with just 4 arrow keys. Note that as menus can link to any other menu freely, the structure of the "file system" is not a [tree](tree.md) but rather a general [graph](graph.md). Another difference from the Web is gopher's great emphasis on **[plaintext](plaintext.md) and [ASCII art](ascii_art.md)** as it cannot embed images and other media in the menus (even though of course the menus can link to them). There is also a support for sending text to a server so it is possible to implement [search engines](search_engine.md), guest books etc.
|
||||||
|
|
||||||
Strictly speaking gopher is just an [application layer](l7.md) [protocol](protocol.md) (officially running on [port](port.md) 70 assigned by [IANA](iana.md)), i.e it takes the same role as [HTTP](http.md) on the Web and so only defines how clients and servers talk to each other -- the gopher protocol doesn't say how menus are written or stored on servers. Nevertheless for the creation of menus so called **gophermaps** have been established, which is a simple format for writing menus and are the gopher equivalent of Web's [HTML](html.md) files (just much simpler, basically just menu items on separate lines, the exact syntax is ultimately defined by server implementation). A server doesn't have to use gophermaps, it may be e.g. configured to create menus automatically from directories and files stored on the server, however gophermaps allow users to write custom menus manually. Typically in someone's gopherhole you'll be served a welcoming intro menu similar to a personal webpage that's been written as a gophermap, which may then link to directiories storing personal files or other hand written menus. Some gopher servers also allow creating dynamic content with scripts called **moles**.
|
Strictly speaking gopher is just an [application layer](l7.md) [protocol](protocol.md) (officially running on [port](port.md) 70 assigned by [IANA](iana.md)), i.e it takes the same role as [HTTP](http.md) on the Web and so only defines how clients and servers talk to each other -- the gopher protocol doesn't say how menus are written or stored on servers. Nevertheless for the creation of menus so called **gophermaps** have been established, which is a simple format for writing menus and are the gopher equivalent of Web's [HTML](html.md) files (just much simpler, basically just menu items on separate lines, the exact syntax is ultimately defined by server implementation). A server doesn't have to use gophermaps, it may be e.g. configured to create menus automatically from directories and files stored on the server, however gophermaps allow users to write custom menus manually. Typically in someone's gopherhole you'll be served a welcoming intro menu similar to a personal webpage that's been written as a gophermap, which may then link to directiories storing personal files or other hand written menus. Some gopher servers also allow creating dynamic content with scripts called **moles**.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Just Werks
|
# Just Werks
|
||||||
|
|
||||||
"Just werks" (for "just works" if that's not clear) is a phrase used by [noobs](noob.md) to justify using a piece of technology while completely neglecting any other deeper and/or long term consequences. A noob doesn't think about technology further than how it can immediately perform some task for him.
|
"Just werks" (for "just works" if that's somehow not clear) is a phrase used by [noobs](noob.md) to justify using a piece of technology while completely neglecting any other deeper and/or long term consequences. A noob doesn't think about technology further than how it can immediately perform some task for him.
|
||||||
|
|
||||||
This phrase is widely used on [4chan](4chan.md)/g, it probably originated there.
|
This phrase is widely used on [4chan](4chan.md)/g, it probably originated there.
|
||||||
|
|
||||||
|
@ -15,3 +15,7 @@ The "just werks" philosophy completely ignores questions such as:
|
||||||
- **Am I hurting better alternatives by not using them?** E.g. by using a proprietary social network gives one more user to it and one fewer to a potentially more ethical free social network.
|
- **Am I hurting better alternatives by not using them?** E.g. by using a proprietary social network gives one more user to it and one fewer to a potentially more ethical free social network.
|
||||||
- **Is there anything just plain better?** A normie will take the first thing that's handed to him and "just werks" without even checking if something better exists that would satisfy him better.
|
- **Is there anything just plain better?** A normie will take the first thing that's handed to him and "just werks" without even checking if something better exists that would satisfy him better.
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [everyone does it](everyone_does_it.md)
|
||||||
|
- [just doing my job](just_doing_my_job.md)
|
||||||
|
|
1
lmao.md
1
lmao.md
|
@ -16,6 +16,7 @@ LMAO stands for *laughing my ass off*.
|
||||||
- The unexpected assassination of Lord British in Ultima Online in 1997 was pretty funny.
|
- The unexpected assassination of Lord British in Ultima Online in 1997 was pretty funny.
|
||||||
- [Elizabeth Holmes](elizabeth_holmes.md)
|
- [Elizabeth Holmes](elizabeth_holmes.md)
|
||||||
- In 2019 a [progaming](progaming.md) ("esports") organization Vaevictis tried to make an all-[female](woman.md) League of Legends team, which would be the first such team in the high progaming league. The team quickly failed, it can't even be described how badly they played, of course they didn't even had a hope of gaining a single win, they gained several world records for their failures such as the fastest loss (13 minutes), eventually they got fired from the league xD
|
- In 2019 a [progaming](progaming.md) ("esports") organization Vaevictis tried to make an all-[female](woman.md) League of Legends team, which would be the first such team in the high progaming league. The team quickly failed, it can't even be described how badly they played, of course they didn't even had a hope of gaining a single win, they gained several world records for their failures such as the fastest loss (13 minutes), eventually they got fired from the league xD
|
||||||
|
- In 2022 a bug in [SMART](smart.md) Mazda cars forced their "owners" to listen to some shitty public radio without being able to change the station. TFW state of "modern" bloattech made by diversity teams.
|
||||||
- { At my Uni a professor told us some guy turned in an assignment program but forgot to remove the debug prints. The fun part was he was using prints such as "my dick has a length X cm" where X was the debug value. So beware of that. ~drummyfish }
|
- { At my Uni a professor told us some guy turned in an assignment program but forgot to remove the debug prints. The fun part was he was using prints such as "my dick has a length X cm" where X was the debug value. So beware of that. ~drummyfish }
|
||||||
|
|
||||||
## See Also
|
## See Also
|
||||||
|
|
|
@ -6,7 +6,7 @@ Specific practices used in marketing are:
|
||||||
|
|
||||||
- **Lies** and falsehoods. Every ad will present the product as the best, even though not all products can be best. Actors will be paid to lie about how the product changed their life etc. -- so called **[astroturfing](astroturfing.md)**. Many times numbers and "facts" whose source is difficult to trace will be completely made up. **Fake discounts** are something constantly presented in ads.
|
- **Lies** and falsehoods. Every ad will present the product as the best, even though not all products can be best. Actors will be paid to lie about how the product changed their life etc. -- so called **[astroturfing](astroturfing.md)**. Many times numbers and "facts" whose source is difficult to trace will be completely made up. **Fake discounts** are something constantly presented in ads.
|
||||||
- **Extreme repetition/[spam](spam.md)**: this includes repeating the same commercial over and over (e.g. every 10 minutes) as well as repeating the name of the product in a completely retarded way (*"We recommend X because X is the best. For more info about X visit www.X.com. Remember, X is the best. Your X."*).
|
- **Extreme repetition/[spam](spam.md)**: this includes repeating the same commercial over and over (e.g. every 10 minutes) as well as repeating the name of the product in a completely retarded way (*"We recommend X because X is the best. For more info about X visit www.X.com. Remember, X is the best. Your X."*).
|
||||||
- **Psychological tricks** such as **abusing songs** and shitty catchy melodies, often raping existing good music by for example changing the lyrics. This abuses the fact that a song will stick in one's head and keep torturing the person into thinking about the advertised product constantly. Other tricks include **shouting** or **fake empathy** ("we care about your" etc.).
|
- **Psychological tricks** such as **abusing songs** and shitty catchy melodies, often raping existing good music by for example changing the lyrics. This abuses the fact that a song will stick in one's head and keep torturing the person into thinking about the advertised product constantly. Other tricks include **shouting**, **fake empathy** ("we care about you" etc.) or the **"[everyone does it](everyone_does_it.md)" illusion**.
|
||||||
- **Misleading statistics**, presentation and interpretation of data. For example any success rate will be presented as the upper bound as such a number will be higher, typically 99% or 100%, i.e. *"our product is successful in up to 100% cases!"* (which of course gives zero information and only says the product won't succeed in more than 100% cases). A company may also run its own competition for a "best product", e.g. on [Facebook](facebook.md), in which all products are of course their products, and then the winning product will be seen on TV as a "contest winning product".
|
- **Misleading statistics**, presentation and interpretation of data. For example any success rate will be presented as the upper bound as such a number will be higher, typically 99% or 100%, i.e. *"our product is successful in up to 100% cases!"* (which of course gives zero information and only says the product won't succeed in more than 100% cases). A company may also run its own competition for a "best product", e.g. on [Facebook](facebook.md), in which all products are of course their products, and then the winning product will be seen on TV as a "contest winning product".
|
||||||
- **Forcefully seizing attention**: ads are present practically everywhere, even embedded in "art" (even in that one pays for), in the sky (planes and blimps, ...), they play on every radio you hear in every shop, they pop up on electronic devices one paid for, they can't be turned off. They are present in education materials and targeted at children. Audio of a commercial will be made louder to catch an attention when it starts playing on a commercial break.
|
- **Forcefully seizing attention**: ads are present practically everywhere, even embedded in "art" (even in that one pays for), in the sky (planes and blimps, ...), they play on every radio you hear in every shop, they pop up on electronic devices one paid for, they can't be turned off. They are present in education materials and targeted at children. Audio of a commercial will be made louder to catch an attention when it starts playing on a commercial break.
|
||||||
- **bribing celebrities/[influencers](influencer.md)**. An *influencer* is nowadays a culturally accepted "job" whose sole work consists of lying, forcing products and spreading corporate propaganda.
|
- **bribing celebrities/[influencers](influencer.md)**. An *influencer* is nowadays a culturally accepted "job" whose sole work consists of lying, forcing products and spreading corporate propaganda.
|
||||||
|
|
|
@ -10,7 +10,7 @@ These are mainly for [C](c.md), but may be usable in other languages as well.
|
||||||
- **gprof is a utility you can use to profile your code**.
|
- **gprof is a utility you can use to profile your code**.
|
||||||
- **`<stdint.h>` has fast type nicknames**, types such as `uint_fast32_t` which picks the fastest type of at least given width on given platform.
|
- **`<stdint.h>` has fast type nicknames**, types such as `uint_fast32_t` which picks the fastest type of at least given width on given platform.
|
||||||
- **Keywords such as `inline`, `static` and `const` can help compiler optimize well**.
|
- **Keywords such as `inline`, `static` and `const` can help compiler optimize well**.
|
||||||
- **Optimize the [bottlenecks](bottleneck.md)!** Optimizing in the wrong place is a complete waste of time. If you're optimizing a part of code that's taking 1% of your program's run time, you will never speed up your program by more than that 1% even if you speed up the specific part by 10000%. Bottlenecks are usually inner-most loops of the main program loop, you can identify them with [profiling](profiling.md).
|
- **Optimize the [bottlenecks](bottleneck.md)!** Optimizing in the wrong place is a complete waste of time. If you're optimizing a part of code that's taking 1% of your program's run time, you will never speed up your program by more than that 1% even if you speed up the specific part by 10000%. Bottlenecks are usually inner-most loops of the main program loop, you can identify them with [profiling](profiling.md). Generally initialization code that runs only once in a long time doesn't need much optimization -- no one is going to care if a program starts up 1 millisecond faster (but of course in special cases such as launching many processes this may start to matter).
|
||||||
- **You can almost always trade space (memory usage) for time (CPU demand) and vice versa** and you can also fine-tune this. You typically gain speed by precomputation (look up tables, more demanding on memory) and memory with compression (more demanding on CPU).
|
- **You can almost always trade space (memory usage) for time (CPU demand) and vice versa** and you can also fine-tune this. You typically gain speed by precomputation (look up tables, more demanding on memory) and memory with compression (more demanding on CPU).
|
||||||
- **Be smart, use [math](math.md)**. Example: let's say you want to compute the radius of a zero-centered [bounding sphere](bounding_sphere.md) of an *N*-point [point cloud](point_cloud.md). Naively you might be computing the Euclidean distance (*sqrt(x^2 + y^2 + z^2)*) to each point and taking a maximum of them, however you can just find the maximum of squared distances (*x^2 + y^2 + z^2*) and return a square root of that maximum. This saves you a computation of *N - 1* square roots.
|
- **Be smart, use [math](math.md)**. Example: let's say you want to compute the radius of a zero-centered [bounding sphere](bounding_sphere.md) of an *N*-point [point cloud](point_cloud.md). Naively you might be computing the Euclidean distance (*sqrt(x^2 + y^2 + z^2)*) to each point and taking a maximum of them, however you can just find the maximum of squared distances (*x^2 + y^2 + z^2*) and return a square root of that maximum. This saves you a computation of *N - 1* square roots.
|
||||||
- **Learn about [dynamic programming](dynamic_programming.md)**.
|
- **Learn about [dynamic programming](dynamic_programming.md)**.
|
||||||
|
@ -31,6 +31,7 @@ These are mainly for [C](c.md), but may be usable in other languages as well.
|
||||||
- For the sake of embedded platforms **avoid [floating point](floating_point.md)** as that is often painfully slowly emulated in software. Use [fixed point](fixed_point.md).
|
- For the sake of embedded platforms **avoid [floating point](floating_point.md)** as that is often painfully slowly emulated in software. Use [fixed point](fixed_point.md).
|
||||||
- **Early branching can create a speed up** (instead of branching inside the loop create two versions of the loop and branch in front of them). This is a kind of space-time tradeoff.
|
- **Early branching can create a speed up** (instead of branching inside the loop create two versions of the loop and branch in front of them). This is a kind of space-time tradeoff.
|
||||||
- **Reuse variable to save space**. A warning about this one: readability may suffer, mainstreamers will tell you you're going against "good practice", and some compilers may do this automatically anyway. Be sure to at least make this clear in your comments. Anyway, on a lower level and/or with dumber compilers you can just reuse variables that you used for something else rather than creating a new variable that takes additional RAM; the only prerequisite for "merging" variables is that the variables aren't used at the same time.
|
- **Reuse variable to save space**. A warning about this one: readability may suffer, mainstreamers will tell you you're going against "good practice", and some compilers may do this automatically anyway. Be sure to at least make this clear in your comments. Anyway, on a lower level and/or with dumber compilers you can just reuse variables that you used for something else rather than creating a new variable that takes additional RAM; the only prerequisite for "merging" variables is that the variables aren't used at the same time.
|
||||||
|
- **What's fast on one platform may be slow on another**. This depends on the instruction set as well as on compiler, operating system, quirks of the hardware and other details. You always need to test on the hardware itself.
|
||||||
- **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! 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.
|
- **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! 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.
|
||||||
|
|
||||||
## When To Actually Optimize?
|
## When To Actually Optimize?
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
# Pedophilia
|
# Pedophilia
|
||||||
|
|
||||||
|
*Love is not a crime.*
|
||||||
|
|
||||||
{ [Rape](rape.md) of anyone is bad as is any violence against any living being. That's it. Any thought, desire or perception of any information must however never be considered wrong in itself. ~drummyfish }
|
{ [Rape](rape.md) of anyone is bad as is any violence against any living being. That's it. Any thought, desire or perception of any information must however never be considered wrong in itself. ~drummyfish }
|
||||||
|
|
||||||
Pedophilia is a sexual orientation towards children, nowadays wrongfully labeled a "disorder" just as e.g. homosexuality used to be labelled an illness. It is the forbidden 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), 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 any more than a gay person is automatically a rapist of people of the same gender, and watching child porn won't make you want to rape children 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, nowadays wrongfully labeled a "disorder" just as e.g. homosexuality used to be labelled an illness. It is the forbidden 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), 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 any more than a gay person is automatically a rapist of people of the same gender, and watching child porn won't make you want to rape children 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).
|
||||||
|
|
|
@ -14,11 +14,13 @@ Using [fractals](fractal.md) is a popular technique in procgen because they basi
|
||||||
|
|
||||||
A good example to think of is generating procedural [textures](texture.md). This is generally done by first generating a basis image or multiple images, e.g. with [noise](noise.md) functions such as [Perlin noise](perlin_noise.md) (it gives us a grayscale image that looks a bit like clouds). We then further process this base image(s) and combine the results in various ways, for example we may use different transformations, modulations, shaders, blending, adding color using [color ramps](color_ramp.md) etc. The whole texture is therefore described by a [graph](graph.md) in which nodes represent the operations we apply; this can literally be done visually in software like [Blender](blender.md) (see its [shader](shader.md) editor). The nice things are that we can now for example generalize the texture to 3 dimensions, i.e. not only have a flat image, but have a whole volume of a texture that can extremely easily be mapped to 3D objects simply by intersecting it with their surfaces which will yield a completely smooth texturing without any seams (this is quite often used along with [raytracing](raytracing.md)). Or we can animate a 2D texture by doing a moving cross section of 3D texture. We can also write the algorithm so that the generates texture has no seams if repeated side-by-side (by using modular "wrap-around" coordinates). We can also generate the texture at any arbitrary resolution as we have a continuous mathematical description of it; we may perform an infinite zoom into it if we want. As if that's not enough, we can also generate almost infinitely many slightly different versions of this texture by simply changing the [seed](seed.md) of [pseudorandom](pseudorandom.md) generators.
|
A good example to think of is generating procedural [textures](texture.md). This is generally done by first generating a basis image or multiple images, e.g. with [noise](noise.md) functions such as [Perlin noise](perlin_noise.md) (it gives us a grayscale image that looks a bit like clouds). We then further process this base image(s) and combine the results in various ways, for example we may use different transformations, modulations, shaders, blending, adding color using [color ramps](color_ramp.md) etc. The whole texture is therefore described by a [graph](graph.md) in which nodes represent the operations we apply; this can literally be done visually in software like [Blender](blender.md) (see its [shader](shader.md) editor). The nice things are that we can now for example generalize the texture to 3 dimensions, i.e. not only have a flat image, but have a whole volume of a texture that can extremely easily be mapped to 3D objects simply by intersecting it with their surfaces which will yield a completely smooth texturing without any seams (this is quite often used along with [raytracing](raytracing.md)). Or we can animate a 2D texture by doing a moving cross section of 3D texture. We can also write the algorithm so that the generates texture has no seams if repeated side-by-side (by using modular "wrap-around" coordinates). We can also generate the texture at any arbitrary resolution as we have a continuous mathematical description of it; we may perform an infinite zoom into it if we want. As if that's not enough, we can also generate almost infinitely many slightly different versions of this texture by simply changing the [seed](seed.md) of [pseudorandom](pseudorandom.md) generators.
|
||||||
|
|
||||||
We use procedural generation in two ways:
|
We use procedural generation mainly in two ways:
|
||||||
|
|
||||||
- **offline/explicit**: We pre-generate the data before we run the program, i.e. we let the algorithm create our art, save it to a file and then use it as we would use traditionally created art.
|
- **offline/explicit**: We pre-generate the data before we run the program, i.e. we let the algorithm create our art, save it to a file and then use it as we would use traditionally created art.
|
||||||
- **realtime/implicit**: We generate the data on the fly and only parts of it that we currently need. For example with a procedural texture mapped onto a 3D model, we would compute the texture pixels ([texels](texel.md)) when we're actually drawing them: this has the advantage of giving an infinite resolution of the texture because no matter how close-up we view the model, we can always compute exactly the pixels we need. This would typically be implemented inside a fragment/pixel [shader](shader.md) program. This is also used in the voxel games that generate the world only in the area the player currently occupies.
|
- **realtime/implicit**: We generate the data on the fly and only parts of it that we currently need. For example with a procedural texture mapped onto a 3D model, we would compute the texture pixels ([texels](texel.md)) when we're actually drawing them: this has the advantage of giving an infinite resolution of the texture because no matter how close-up we view the model, we can always compute exactly the pixels we need. This would typically be implemented inside a fragment/pixel [shader](shader.md) program. This is also used in the voxel games that generate the world only in the area the player currently occupies.
|
||||||
|
|
||||||
|
Indeed we may also do something "in between", e.g. generate procedural assets into temporary files or RAM [caches](cache.md) at run time and depending on the situation, for example when purely realtime generation of such assets would be too slow.
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
TODO
|
TODO
|
107
rule110.md
Normal file
107
rule110.md
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
# Rule 110
|
||||||
|
|
||||||
|
*Not to be confused with [rule 34](rule43.md) xD*
|
||||||
|
|
||||||
|
Rule 110 is a specific [cellular automaton](cellular_automaton.md) (similar to e.g. [Game of Life](game_of_life.md)) which shows a very interesting behavior -- it is one of the simplest [Turing complete](turing_completeness.md) (computationally most powerful) systems with a balance of stable and [chaotic](chaos.md) behavior. In other words it is a system in which a very complex and interesting properties emerge from extremely simple rules. The name *rule 110* comes from [truth table](truth_table.md) that defines the automaton's behavior.
|
||||||
|
|
||||||
|
Rule 110 is one of 256 so called elementary [cellular automata](cellular_automaton.md) which are special kinds of cellular automata that are one dimensional (unlike the mentioned [Game Of Life](game_of_life.md) which is two dimensional), in which cells have 1 bit state (1 or 0) and each cell's next state is determined by its current state and the state of its two immediate neighboring cells (left and right). Most of the 256 possible elementary cellular automata are "boring" but rule 110 is special and interesting. Probably the most interesting thing is that rule 110 is [Turing complete](turing_completeness.md), i.e. it can in theory compute anything any other computer can, while basically having just 8 rules. 110 (along with its equivalents) is the only elementary automaton for which Turing completeness has been [proven](proof.md).
|
||||||
|
|
||||||
|
For rule 110 the following is a table determining the next value of a cell given its current value (center) and the values of its left and right neighbor.
|
||||||
|
|
||||||
|
|left|center|right|center next|
|
||||||
|
|----|------|-----|-----------|
|
||||||
|
| 0 | 0 | 0 | 0 |
|
||||||
|
| 0 | 0 | 1 | 1 |
|
||||||
|
| 0 | 1 | 0 | 1 |
|
||||||
|
| 0 | 1 | 1 | 0 |
|
||||||
|
| 1 | 0 | 0 | 1 |
|
||||||
|
| 1 | 0 | 1 | 1 |
|
||||||
|
| 1 | 1 | 0 | 1 |
|
||||||
|
| 1 | 1 | 1 | 0 |
|
||||||
|
|
||||||
|
The rightmost column is where elementary cellular automata differ from each other -- here reading the column from top to bottom we get the [binary](binary.md) number 01101110 which is 110 in [decimal](decimal.md), hence we call the automaton rule 110. Some automata behave as "flipped" versions of rule 110, e.g. rule 137 (bit inversion of rule 110) and rule 124 (horizontal reflection of rule 110) -- these are in terms of properties equivalent to rule 110.
|
||||||
|
|
||||||
|
The following is an output of 32 steps of rule 110 from an initial tape with one cell set to 1. Horizontal dimension represents the tape, vertical dimension represents steps/time (from top to bottom).
|
||||||
|
|
||||||
|
```
|
||||||
|
#
|
||||||
|
##
|
||||||
|
###
|
||||||
|
# ##
|
||||||
|
#####
|
||||||
|
# ##
|
||||||
|
## ###
|
||||||
|
### # ##
|
||||||
|
# #######
|
||||||
|
### ##
|
||||||
|
# ## ###
|
||||||
|
##### # ##
|
||||||
|
# ## #####
|
||||||
|
## ### # ##
|
||||||
|
### # #### ###
|
||||||
|
# ##### ## # ##
|
||||||
|
### ## ########
|
||||||
|
# ## #### ##
|
||||||
|
##### # ## ###
|
||||||
|
# #### ### # ##
|
||||||
|
## # ### ## #####
|
||||||
|
### ## # ##### # ##
|
||||||
|
# ######## ## ## ###
|
||||||
|
### ## ###### # ##
|
||||||
|
# ## ### # #######
|
||||||
|
##### # #### # ##
|
||||||
|
# ## ### ## ## ###
|
||||||
|
## ### # ## ### ### # ##
|
||||||
|
### # ## ###### ### ## #####
|
||||||
|
# ######## ### ##### # ##
|
||||||
|
### ## # ### #### ###
|
||||||
|
# ## ### ### ## # ## # ##
|
||||||
|
```
|
||||||
|
|
||||||
|
The output was generated by the following [C](c.md) code.
|
||||||
|
|
||||||
|
```
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define RULE 110 // 01100111 in binary
|
||||||
|
#define TAPE_SIZE 64
|
||||||
|
#define STEPS 32
|
||||||
|
|
||||||
|
unsigned char tape[TAPE_SIZE];
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
// init the tape:
|
||||||
|
for (int i = 0; i < TAPE_SIZE; ++i)
|
||||||
|
tape[i] = i == 0;
|
||||||
|
|
||||||
|
// simulate:
|
||||||
|
for (int i = 0; i < STEPS; ++i)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < TAPE_SIZE; ++j)
|
||||||
|
putchar(tape[j] ? '#' : ' ');
|
||||||
|
|
||||||
|
putchar('\n');
|
||||||
|
|
||||||
|
unsigned char state = // three cell state
|
||||||
|
(tape[1] << 2) |
|
||||||
|
(tape[0] << 1) |
|
||||||
|
tape[TAPE_SIZE - 1];
|
||||||
|
|
||||||
|
for (int j = 0; j < TAPE_SIZE; ++j)
|
||||||
|
{
|
||||||
|
tape[j] = (RULE >> state) & 0x01;
|
||||||
|
state = (tape[(j + 2) % TAPE_SIZE] << 2) | (state >> 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Discovery of rule 110 is attributed to [Stephen Wolfram](wolfram.md) who introduced elementary cellular automata in 1983 and conjectured Turing completeness of rule 110 in 1986 which was proven by Matthew Cook in 2004.
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [Game Of Life](game_of_life.md)
|
||||||
|
- [Langton's Ant](langtons_ant.md)
|
|
@ -1,6 +1,6 @@
|
||||||
# Soyence
|
# Soyence
|
||||||
|
|
||||||
Soyence is propaganda and [business](business.md) claiming to be and trying to blend with [science](science.md), nowadays promoted typically by [pseudoleftist](pseudoleft.md) [soyboys](soyboy.md). It is what the typical reddit [atheist](atheism.md) believes is science or what Neil De Grass Tyson tells you is science. 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 attribute of promoting some politics.
|
Soyence is propaganda, [politics](politics.md) and [business](business.md) claiming to be and trying to blend with [science](science.md), nowadays promoted typically by [pseudoleftist](pseudoleft.md) [soyboys](soyboy.md). It is what the typical reddit [atheist](atheism.md) believes is science or what Neil De Grass Tyson tells you is science. 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 attribute of promoting some politics.
|
||||||
|
|
||||||
Compared to good old [fun](fun.mf) pseudosciences such as [astrology](astrology.md), soyence is extra sneaky by purposefully blending in with real science, i.e. within a certain truly scientific field, such as biology, there is a soyentific cancer mixed in by activists, corporations and state, that may be hard to separate for common folk and sometimes even pros. This is extremely harmful as the underlying science gives credibility to propaganda bullshit.
|
Compared to good old [fun](fun.mf) pseudosciences such as [astrology](astrology.md), soyence is extra sneaky by purposefully blending in with real science, i.e. within a certain truly scientific field, such as biology, there is a soyentific cancer mixed in by activists, corporations and state, that may be hard to separate for common folk and sometimes even pros. This is extremely harmful as the underlying science gives credibility to propaganda bullshit.
|
||||||
|
|
||||||
|
|
19
sqrt.md
Normal file
19
sqrt.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Square Root
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The following is an [approximation](approximation.md) of integer square root in [C](c.md) that has acceptable accuracy to about 1 million (maximum error from 1000 to 1000000 is about 7%): { Painstakingly made by me. ~drummyfish }
|
||||||
|
|
||||||
|
```
|
||||||
|
int32_t sqrtApprox(int32_t x)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
(x < 1024) ?
|
||||||
|
(-2400 / (x + 120) + x / 64 + 20) :
|
||||||
|
((x < 93580) ?
|
||||||
|
(-1000000 / (x + 8000) + x / 512 + 142) :
|
||||||
|
(-75000000 / (x + 160000) + x / 2048 + 565));
|
||||||
|
}
|
||||||
|
```
|
|
@ -14,4 +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 }
|
{ 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".
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [BBS](bbs.md)
|
||||||
|
- [modem world](modem_world.md)
|
36
wavelet_transform.md
Normal file
36
wavelet_transform.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# Wavelet Transform
|
||||||
|
|
||||||
|
*Good luck trying to understand the corresponding [Wikipedia](wikipedia.md) article.*
|
||||||
|
|
||||||
|
Wavelet transform is a [mathematical](math.md) operation, similar to e.g. [Fourier transform](fourier_transform.md), that takes a [signal](signal_processing.md) (e.g. audio or an image) and outputs information about the [frequencies](frequency.md) contained in that signal AS WELL as the locations of those frequencies. This is of course extremely useful when we want to analyze and manipulate frequencies in our signal -- for example [JPEG 2000](jpeg_2000.md) uses wavelet transforms for [compressing](compression.md) images by discarding certain frequencies in them that our eyes are not so sensitive to.
|
||||||
|
|
||||||
|
The main advantage over [Fourier transform](fourier_transform.md) (and similar transforms such as [cosine transform](cosine_transform.md)) is that wavelet transform shows us not only the frequencies, but ALSO their locations (i.e. for example time at which these frequencies come into play in an audio signal). This allows us for example to locate specific sounds in audio or apply compression only to certain parts of an image. While localizing frequencies is also possible with Fourier transform with tricks such as [spectrograms](spectrogram.md), wavelet transforms are a more elegant, natural and continuous way of doing so. Note that due to [Heisenberg's uncertainty principle](uncertainty_principle.md) is it mathematically IMPOSSIBLE to know both frequencies and their locations exactly, there always has to be a tradeoff -- the input signal itself tells us everything about location but nothing about frequencies, Fourier transform tells us everything about frequencies but nothing about their locations and wavelet transform is a **midway** between the two -- it tells us something about frequencies and their approximate locations.
|
||||||
|
|
||||||
|
Of course there is always an inverse transform for a wavelet transform so we can transform the signal, then manipulate the frequencies and transform it back.
|
||||||
|
|
||||||
|
Wavelet transforms use so called **[wavelets](wavelet.md)** (*tiny waves*) as their basis function, similarly to how Fourier transform uses [sine](sin.md)/[cosine](cos.md) functions to analyze the input signal. A wavelet is a special function (satisfying some given properties) that looks like a "short wave", i.e. while a sine function is an infinite wave (it goes on forever), a wavelet rises up in front of 0, vibrates for a while and then gradually disappears again after 0. Note that there are many possible wavelet functions, so there isn't a single wavelet transform either -- wavelet transforms are a **family of transforms** that each uses some kind of wavelet as its basis. One possible wavelet is e.g. the [Morlet](morlet.md) wavelet that looks something like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
_
|
||||||
|
: :
|
||||||
|
.' '.
|
||||||
|
: :
|
||||||
|
.'. : : .'.
|
||||||
|
: : : : : :
|
||||||
|
.' : : : : '.
|
||||||
|
____ .. : : : : : : .. ___
|
||||||
|
'' '. .' : : : : '. .' ''
|
||||||
|
'_' : : : : '_'
|
||||||
|
: : : :
|
||||||
|
: : : :
|
||||||
|
: : : :
|
||||||
|
'.' '.'
|
||||||
|
```
|
||||||
|
|
||||||
|
The wavelet is in fact a [complex](complex_number.md) function, what's shown here is just its real part (the [imaginary](imaginary_number.md) part looks similar and swings in a perpendicular way to real part). The transform can somewhat work even just with the real part, for understanding it you can for start ignore complex numbers, but working with complex numbers will eventually create a nicer output (we'll effectively compute an envelope which is what we're interested in).
|
||||||
|
|
||||||
|
The output of a wavelet transform is so called **scalogram** (similar to [spectrum](spectrum.md) in Fourier transform), a multidimensional function that for each location in the signal (e.g. time in audio signal or pixel position in an image) and for each frequency gives "strength" of influence of that frequency on that location in the signal. Here the "influence strength" is basically similarity to the wavelet of given frequency and shift, similarity meaning basically a [dot product](dot_product.md) or [convolution](convolution.md). Scalogram can be computed by [brute force](brute_force.md) simply by taking each possible frequency wavelet, shifting it by each possible offset and then convolving it with the input signal.
|
||||||
|
|
||||||
|
For big brains, similarly to Fourier transform, wavelet transform can also be seen as transforming a point in high dimensional space -- the input function -- to a different orthogonal [vector basis](vector_basis.md) -- the set of basis vectors represented by the possible scaled/shifted wavelets. I.e. we literally just transform the function into a different coordinate system where our coordinates are frequencies and their locations rather than locations and amplitudes of the signal (the original coordinate system).
|
||||||
|
|
||||||
|
TODO
|
11
woman.md
11
woman.md
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
A woman (also femoid or succubus) is one of two genders (sexes) of humans, the other one being [man](man.md). Women are notoriously bad at [programming](programming.mg), [math](math.md) and [technology](technology.md): in the field they usually "work" on [bullshit](bullshit.md) (and harmful) positions such as some "diversity department", [marketing](marketing.md), "HR" or [UI](ui.md)/[user experience](ux.md). If they get close to actual technology, their highest "skills" are mostly limited to casual "[coding](coding.md)" (which itself is a below-average form of [programming](programming.md)) in a baby language such as [Python](python.md), [Javascript](javascript.md) or [Rust](rust.md). Mostly they are just hired for quotas and make coffee for men who do the real work.
|
A woman (also femoid or succubus) is one of two genders (sexes) of humans, the other one being [man](man.md). Women are notoriously bad at [programming](programming.mg), [math](math.md) and [technology](technology.md): in the field they usually "work" on [bullshit](bullshit.md) (and harmful) positions such as some "diversity department", [marketing](marketing.md), "HR" or [UI](ui.md)/[user experience](ux.md). If they get close to actual technology, their highest "skills" are mostly limited to casual "[coding](coding.md)" (which itself is a below-average form of [programming](programming.md)) in a baby language such as [Python](python.md), [Javascript](javascript.md) or [Rust](rust.md). Mostly they are just hired for quotas and make coffee for men who do the real work.
|
||||||
|
|
||||||
Women also can't drive, operate machines, they can't compare even to the worst men in sports, both physical (e.g. 100 m sprint women world record is almost a whole second slower than that of men) and mental such as [chess](chess.md). Women have to have separate leagues and more relaxed rules, e.g. the title Woman Grand Master (WGM) in chess has far lower requirements to obtain than regular Grand Master (GM). (According to [Elo](elo.md) rating the best woman chess player in history would have only 8% chance of winning against current best male who would have 48% chance of winning). On the International Mathematical Olympiad only 43 out of 1338 medals were obtained by females. There are too many funny cases and video compilations of women facing men in sports, e.g. the infamous Vaevictis female "progaming" team or the [football](football.md) match between the US national women team (probably the best women team in the world) vs some random under 15 years old boy's team which of course the women team lost. Of course there are arguments that worse performance of women in mental sports is caused culturally; women aren't led so much to playing chess, therefore there are fewer women in chess and so the probability of a good woman player appearing is lower. This may be partially true even though genetic factors seem at least equally important and it may equally be true that not so many women play chess simply because they're not naturally good at it; nevertheless the fact that women are generally worse at chess than men stands, regardless of its cause.
|
Women also can't drive, operate machines, they can't compare even to the worst men in sports, both physical (e.g. 100 m sprint women world record is almost a whole second slower than that of men) and mental such as [chess](chess.md). Women have to have separate leagues and more relaxed rules, e.g. the title Woman Grand Master (WGM) in chess has far lower requirements to obtain than regular Grand Master (GM). (According to [Elo](elo.md) rating the best woman chess player in history would have only 8% chance of winning against current best male who would have 48% chance of winning). On the International Mathematical Olympiad only 43 out of 1338 medals were obtained by females. There are too many funny cases and video compilations of women facing men in sports (watch them before they're censored lol), e.g. the infamous Vaevictis female "progaming" team or the [football](football.md) match between the US national women team (probably the best women team in the world) vs some random under 15 years old boy's team which of course the women team lost. Of course there are arguments that worse performance of women in mental sports is caused culturally; women aren't led so much to playing chess, therefore there are fewer women in chess and so the probability of a good woman player appearing is lower. This may be partially true even though genetic factors seem at least equally important and it may equally be true that not so many women play chess simply because they're not naturally good at it; nevertheless the fact that women are generally worse at chess than men stands, regardless of its cause.
|
||||||
|
|
||||||
But of course even though rare, well performing women may statistically appear. The issue is women are very often involved with a cult such as the [feminists](feminism.md) who waste their effort on [fighting](fight_culture.md) men instead of focusing on study and creation of real technology, and on actually loving it. They don't see technology as a beautiful field of art and science, they see it as a battlefield, a political tool to be weaponized to achieve social status, revenge on society etc. They can't understand the pure joy of [programming](programming.md), the love of creation for its own sake, they think more in terms of "learning to code will get me new followers on social networks" etc. You will never find a basement dweller programmer or [demoscene](demoscene.md) programmer of female gender, a hacker who is happy existing in a world of his own programs without the need for approval or external reward, a woman will never be able to understand this.
|
But of course even though rare, well performing women may statistically appear. The issue is women are very often involved with a cult such as the [feminists](feminism.md) who waste their effort on [fighting](fight_culture.md) men instead of focusing on study and creation of real technology, and on actually loving it. They don't see technology as a beautiful field of art and science, they see it as a battlefield, a political tool to be weaponized to achieve social status, revenge on society etc. They can't understand the pure joy of [programming](programming.md), the love of creation for its own sake, they think more in terms of "learning to code will get me new followers on social networks" etc. You will never find a basement dweller programmer or [demoscene](demoscene.md) programmer of female gender, a hacker who is happy existing in a world of his own programs without the need for approval or external reward, a woman will never be able to understand this.
|
||||||
|
|
||||||
Of course, [LRS](lrs.md) loves all living beings equally, even women. In order to truly love someone we have to be aware of their true nature so that we can truly love them, despite all imperfections.
|
Of course, [LRS](lrs.md) loves all living beings equally, even women. In order to truly love someone we have to be aware of their true nature so that we can truly love them, despite all imperfections.
|
||||||
|
|
||||||
**Is there even anything women are better at than men?** Well, women seem for example more peaceful or at least less violent on average (feminism of course sees this as a "weakness" and tries to change it), though they seem to be e.g. more passive-aggressive. They have also evolved to perform the tasks of housekeeping and care taking at which they may excel (still it seems that if men focus at a specific tasks, they will beat a women, for example the best cooks in the world are men). Sometimes women may be preferable exactly for not being as "rough" as men, e.g. as singers, psychologists, massage therapists etc.
|
**Is there even anything women are better at than men?** Well, women seem for example more peaceful or at least less violent on average (feminism of course sees this as a "weakness" and tries to change it), though they seem to be e.g. more passive-aggressive. Nevertheless there have been a few successful queens in history, women can sometimes perhaps be good in representative roles. They have also evolved to perform the tasks of housekeeping and care taking at which they may excel (still it seems that if men focus at a specific tasks, they will beat a women, for example the best cooks in the world are men). Sometimes women may be preferable exactly for not being as "rough" as men, e.g. as singers, psychologists, massage therapists etc.
|
||||||
|
|
||||||
# Women In Tech
|
# Women In Tech
|
||||||
|
|
||||||
|
@ -20,10 +20,11 @@ In [science](science.md) at wide we occasionally find a capable woman, for examp
|
||||||
|
|
||||||
## Men Vs Women In Numbers
|
## Men Vs Women In Numbers
|
||||||
|
|
||||||
Here is a comparison of men and women in some randomly chosen disciplines that are easy to quantify by numbers. Of course, the numbers hold for the time of writing of this text, at the time or reading they may be slightly outdated, also keep in mind that in the future such comparisons may become much less objective due to [SJW](sjw.md) forces -- e.g. because of [trans](tranny.md) athletes in sports we may see diminishing differences between measurements of performance of men and "women" because what in the future will be called women will be just men pretending to be women.
|
Here is a comparison of men and women in some randomly chosen disciplines and measures that are easy to quantify by numbers, and still possible to find on the highly censored Internet. Of course, the numbers hold for the time of writing of this text, at the time or reading they may be slightly outdated, also keep in mind that in the future such comparisons may become much less objective due to [SJW](sjw.md) forces -- e.g. because of [trans](tranny.md) athletes in sports we may see diminishing differences between measurements of performance of men and "women" because what in the future will be called women will be just men pretending to be women.
|
||||||
|
|
||||||
Note: SJWs will of course say this is "misleading" statistic. Three things: firstly chill, this isn't a scientific paper, just a fun comparison of some numbers. Secondly we try to be benevolent and not choose stats in a biased way (we don't even have to) but it is not easily to find better statistics, e.g. one might argue it could be better to compare averages or medians rather than bests -- indeed, but it's impossible to find average performance of all women in a population in a specific sport discipline, taking the best performer is simply easier and still gives some idea. So we simply include what we have. Thirdly any statistics is a simplification and can be seen as misleading by those who dislike it.
|
Note: It is guaranteed that [soyentific](soyence.md) BIGBRAINS will start screeching "MISLEADING STATISTICSSSSSSS NON PEER REVIEWED". Three things: firstly chill your balls, this isn't a scientific paper, just a fun comparison of some numbers. Secondly we try to be benevolent and not choose stats in a biased way (we don't even have to) but it is not easy to find better statistics, e.g. one might argue it could be better to compare averages or medians rather than bests -- indeed, but it's impossible to find average performance of all women in a population in a specific sport discipline, taking the best performer is simply easier and still gives some idea. So we simply include what we have. Thirdly any statistics is a simplification and can be seen as misleading by those who dislike it.
|
||||||
|
|
||||||
|
On average, male brain weights 10% more than woman's and has 16% more brain cells. [IQ](iq.md)/intelligence measured by various tests has been consistently significantly lower than that of men.
|
||||||
|
|
||||||
| discipline | men WR | women WR | comparison |
|
| discipline | men WR | women WR | comparison |
|
||||||
|----------------|------------------|-----------------|-------------------------------------|
|
|----------------|------------------|-----------------|-------------------------------------|
|
||||||
|
@ -37,8 +38,6 @@ Note: SJWs will of course say this is "misleading" statistic. Three things: firs
|
||||||
|Starcraft II |3556 (Serral) |2679 (Scarlett) |best M has ~80% win chance against W |
|
|Starcraft II |3556 (Serral) |2679 (Scarlett) |best M has ~80% win chance against W |
|
||||||
|holding breath |24:37 (Sobat) |18:32m (Meyer) |Ms have ~35% greater lung capacity |
|
|holding breath |24:37 (Sobat) |18:32m (Meyer) |Ms have ~35% greater lung capacity |
|
||||||
|
|
||||||
On average, male brain weights 10% more than woman's and has 16% more brain cells.
|
|
||||||
|
|
||||||
## See Also
|
## See Also
|
||||||
|
|
||||||
- [pussy](pussy.md)
|
- [pussy](pussy.md)
|
1
www.md
1
www.md
|
@ -50,6 +50,7 @@ Other programming languages such as [PHP](php.md) can also be used on the web, b
|
||||||
- [Dark Web](dark_web.md)
|
- [Dark Web](dark_web.md)
|
||||||
- [Dork Web/Smol Internet](smol_internet.md)
|
- [Dork Web/Smol Internet](smol_internet.md)
|
||||||
- [teletext](teletext.md)
|
- [teletext](teletext.md)
|
||||||
|
- [minitel](minitel.md)
|
||||||
- [WAP](wap.md)
|
- [WAP](wap.md)
|
||||||
- [Usenet](usenet.md)
|
- [Usenet](usenet.md)
|
||||||
- [TOR](tor.md)
|
- [TOR](tor.md)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# YouTube
|
# YouTube
|
||||||
|
|
||||||
YouTube, or JewTube, is a video propaganda website, since 2006 owned by [Google](google.md). It has become the monopoly "video platform", everyone uploads their videos there and so every one of us is forced to use the site from time to time. YouTube is based on video content consumerism and financed from aggressive ads and surveillance of its users.
|
YouTube (also JewTube), is a huge video propaganda website, since 2006 owned by [Google](google.md). It has become the monopoly "video platform", everyone uploads their videos there and so every one of us is forced to use the site from time to time. YouTube is based on video content consumerism and financed from aggressive ads and surveillance of its users.
|
||||||
|
|
||||||
A [FOSS](foss.md) alternative to YouTube is e.g. [PeerTube](peertube.md), a federated video platform, however for intended use it requres [JavaScript](javascript.md). There also exist alternative YouTube [frontends](frontend.md) (normally also FOSS), e.g. HookTube, Invidious or FreeTube -- these let you access YouTube's videos via less [bloated](bloat.md) and more privacy-friendly interface. More hardcore people use [CLI](cli.md) tools such as [youtube-dl](youtube_dl.md) to directy download the videos and watch them in native players.
|
A [FOSS](foss.md) alternative to YouTube is e.g. [PeerTube](peertube.md), a federated video platform, however for intended use it requres [JavaScript](javascript.md). There also exist alternative YouTube [frontends](frontend.md) (normally also FOSS), e.g. HookTube, Invidious or FreeTube -- these let you access YouTube's videos via less [bloated](bloat.md) and more privacy-friendly interface. More hardcore people use [CLI](cli.md) tools such as [youtube-dl](youtube_dl.md) to directy download the videos and watch them in native players.
|
Loading…
Reference in a new issue