Update
This commit is contained in:
parent
e267fff78e
commit
e105277181
14 changed files with 60 additions and 14 deletions
2
4chan.md
2
4chan.md
|
@ -1,5 +1,7 @@
|
|||
# 4chan
|
||||
|
||||
{ haha https://lolwut.info/comp/4chan/4chan-g.html ~drummyfish }
|
||||
|
||||
4chan (https://4chan.org/) is the most famous [image board](image_board.md). As most image boards, 4chan has a nice, oldschool minimalist look, even though it contains shitty captchas for posting and the site's code is [proprietary](proprietary.md). The site tolerates a great amount of [free speech](free_speech.md) up to the point of being regularly labeled "right-wing extremist site" (although bans for stupid reasons such as harmless pedo jokes are very common, speaking from experience). Being a "rightist paradise" it is commonly seen as a rival to [reddit](reddit.md), aka the [pseudoleftist](pseudoleft.md) paradise -- both forums hate each other to death. The discussion style is pretty nice, there are many nice stories and memes (e.g. the famous [greentexts](greentext.md)) coming from 4chan but it can also be a hugely depressing place just due to the shear number of retards with incorrect opinions.
|
||||
|
||||
The site consists of multiple boards, each with given discussion topic and rules. The most (in)famous board is *random* AKA /b/ which is just a shitton of [meme](meme.md) shitposting, [porn](porn.md), [toxicity](toxic.md), [fun](fun.md), [trolling](troll.md) and retardedness.
|
||||
|
|
3
altruism.md
Normal file
3
altruism.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Altruism
|
||||
|
||||
*Not to be confused with [autism](autism.md).*
|
6
bloat.md
6
bloat.md
|
@ -83,4 +83,8 @@ The concept of bloat can be applied even outside the computing world, e.g. to no
|
|||
- house decoration
|
||||
- [cars](car.md)
|
||||
- using languages other than [English](english.md)
|
||||
- TODO: more
|
||||
- TODO: more
|
||||
|
||||
## See Also
|
||||
|
||||
- [obscurity](obscurity.md)
|
12
chinese.md
Normal file
12
chinese.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Chinese
|
||||
|
||||
Chinese is one of the most [bloated](bloat.md) natural human languages, spoken in China.
|
||||
|
||||
Any text in chinese basically looks like this:
|
||||
|
||||
```
|
||||
#########################
|
||||
#########################
|
||||
#########################
|
||||
#########################
|
||||
```
|
|
@ -17,7 +17,9 @@ Furthermore we may divide compression e.g. to offline (compresses a whole file,
|
|||
|
||||
The following is an example of how well different types of compression work for an image (screenshot of main page of Wikimedia Commons, 1280x800):
|
||||
|
||||
| compression | size (Kb) | ratio |
|
||||
{ Though the website screenshot contained also real life photos, it still contained a lot of constant color areas which can be compressed very well, hence quite good compression ratios here. A general photo won't be compressed as much. }
|
||||
|
||||
| compression | ~size (KB)| ratio |
|
||||
| --------------------------------------------------- | --------- | ------ |
|
||||
| none | 3000 | 1 |
|
||||
| general lossless (lz4) | 396 | 0.132 |
|
||||
|
@ -29,7 +31,7 @@ Mathematically there cannot exist a lossless compression algorithm that would al
|
|||
|
||||
**Dude, how does compression really work tho?** The basic principle of lossless compression is **removing [redundancy](redundancy.md)** ([correlations](correlation.md) in the data), i.e. that which is explicitly stored in the original data but doesn't really have to be there because it can be reasoned out from the remaining data. This is why a completely random [noise](noise.md) can't be compressed -- there is no correlated data in it, nothing to reason out from other parts of the data. However human language for example contains many redundancies. Imagine we are trying to compress English text and have a word such as "computer" on the input -- we can really just shorten it to "computr" and it's still pretty clear the word is meant to be "computer" as there is no other similar English word (we also see that compression algorithm is always specific to the type of data we expect on the input -- we have to know what nature of the input data we can expect). Another way to remove redundancy is to e.g. convert a string such as "HELLOHELLOHELLOHELLOHELLO" to "5xHELLO". Lossy compression on the other hand tries to decide what information is of low importance and can be dropped -- for example a lossy compression of text might discard information about case (upper vs lower case) to be able to store each character with fewer bits; an all caps text is still readable, though less comfortably.
|
||||
|
||||
**OK, but how much can we really compress?** Well, as stated above, there can never be anything such as a universal uber compression algorithm that just makes any input file super small -- everything really depends on the nature of the data we are trying to compress. The more we know about the nature of the input data, the more we can compress, so a general compression program will compress only a little, while an image-specialized compression program will compress better (but will only work with images). As an extreme example, consider that **in theory we can make e.g. an algorithm that compresses one specific 100GB video to 1 bit** (we just define that a bit "1" decompresses to this specific video), but it will only work for that one single video, not for video in general -- i.e. we made an extremely specialized compression and got an extremely good compression ratio, however due to such extreme specialization we can almost never use it. As said, we just cannot compress completely random data at all (as we don't know anything about the nature of such data). On the other hand data with a lot of redundancy, such as video, can be compressed A LOT. Similarly video compression algorithms used in practice work only for videos that appear in the real world which exhibit certain patterns, such as two consecutive frames being very similar -- if we try to compress e.g. static (white noise), video codecs just shit themselves trying to compress it (look up e.g. videos of confetti and see how blocky they get).
|
||||
**OK, but how much can we really compress?** Well, as stated above, there can never be anything such as a universal uber compression algorithm that just makes any input file super small -- everything really depends on the nature of the data we are trying to compress. The more we know about the nature of the input data, the more we can compress, so a general compression program will compress only a little, while an image-specialized compression program will compress better (but will only work with images). As an extreme example, consider that **in theory we can make e.g. an algorithm that compresses one specific 100GB video to 1 bit** (we just define that a bit "1" decompresses to this specific video), but it will only work for that one single video, not for video in general -- i.e. we made an extremely specialized compression and got an extremely good compression ratio, however due to such extreme specialization we can almost never use it. As said, we just cannot compress completely random data at all (as we don't know anything about the nature of such data). On the other hand data with a lot of redundancy, such as video, can be compressed A LOT. Similarly video compression algorithms used in practice work only for videos that appear in the real world which exhibit certain patterns, such as two consecutive frames being very similar -- if we try to compress e.g. static (white noise), video codecs just shit themselves trying to compress it (look up e.g. videos of confetti and see how blocky they get). All in all, some compression [benchmarks](benchmark.md) can be found e.g. at https://web.archive.org/web/20110203152015/http://www.maximumcompression.com/index.html -- the following are mentioned types of data and their best measured compression ratios: English text 0.12, image (lossy) 0.76, executable 0.24.
|
||||
|
||||
## Methods
|
||||
|
||||
|
@ -70,6 +72,8 @@ In **video** compression we may reuse the ideas from image compression and furth
|
|||
|
||||
In **audio** we usually straight remove frequencies that humans can't hear (usually said to be above 20 kHz), for this we again convert the audio from spatial to frequency domain (using e.g. [Fourier transform](fourier_transform.md)). Furthermore it is very inefficient to store sample values directly -- we rather use so called *differential PCM*, a lossless compression that e.g. stores each sample as a difference against the previous sample (which is usually small and doesn't use up many bits). This can be improved by a predictor, which tries to predict the next values from previous values and then we only save the difference against this prediction. *Joint stereo coding* exploits the fact that human hearing is not so sensitive to the direction of the sound and so e.g. instead of recording both left and right stereo channels in full quality rather records the sum of both and a ratio between them (which can get away with fewer bits). *Psychoacoustics* studies how humans perceive sound, for example so called *masking*: certain frequencies may for example mask nearby (both in frequency and time) frequencies (make them unhearable for humans) so we can drop them. See also [vocoders](vocoder.md).
|
||||
|
||||
TODO: LZW, DEFLATE etc.
|
||||
|
||||
## Compression Programs/Utils/Standards
|
||||
|
||||
Here is a list of some common compression programs/utilities/standards/formats/etc:
|
||||
|
@ -96,14 +100,14 @@ Let's write a simple lossless compression utility in [C](c.md). It will work on
|
|||
|
||||
The compression will work like this:
|
||||
|
||||
- We will choose some random, hopefully not very frequent byte value, as our special "marker value". Let's say this will be the value 0xf3.
|
||||
- We will choose some random, hopefully not very frequent byte value, as our special "marker value". Let's say this will be the value 0xF3.
|
||||
- We will read the input file and whenever we encounter a sequence of 4 or more same bytes in a row, we will output these 3 bytes:
|
||||
- the marker value
|
||||
- byte whose values is the length of the sequence minus 4
|
||||
- the byte to repeat
|
||||
- If we encounter the marker value is encountered in input, we output 2 bytes:
|
||||
- If the marker value is encountered in input, we output 2 bytes:
|
||||
- the marker value
|
||||
- value 0xff (which we won't be able to use for the length of the sequence)
|
||||
- value 0xFF (which we won't be able to use for the length of the sequence)
|
||||
- Otherwise we just output the byte we read from the input.
|
||||
|
||||
Decompression is then quite simple -- we simply output what we read, unless we read the marker value; in such case we look whether the following value is 0xFF (then we output the marker value), else we know we have to repeat the next character this many times plus 4.
|
||||
|
@ -213,4 +217,9 @@ int main(int argc, char **argv)
|
|||
}
|
||||
```
|
||||
|
||||
How well does this perform? If we try to let the utility compress its own source code, we get to 1242 bytes from the original 1344, which is not so great -- the compression ratio is only about 92% here. We can see why: the only repeating bytes in the source code are the space characters used for indentation -- this is the only thing our primitive algorithm manages to compress. However if we let the program compress its own binary version, we get much better results (at least on the computer this was tested on): the original binary has 16768 bytes while the compressed one has 5084 bytes, which is an EXCELLENT compression ratio of 30%! Yay :-)
|
||||
How well does this perform? If we try to let the utility compress its own source code, we get to 1242 bytes from the original 1344, which is not so great -- the compression ratio is only about 92% here. We can see why: the only repeating bytes in the source code are the space characters used for indentation -- this is the only thing our primitive algorithm manages to compress. However if we let the program compress its own binary version, we get much better results (at least on the computer this was tested on): the original binary has 16768 bytes while the compressed one has 5084 bytes, which is an EXCELLENT compression ratio of 30%! Yay :-)
|
||||
|
||||
## See Also
|
||||
|
||||
- [procedural generation](procgen.md)
|
||||
- [minification](minification.md)
|
|
@ -15,7 +15,7 @@ But if we tackle a problem such as computing *N*th [Fibonacci number](fibonacci_
|
|||
```
|
||||
int fib(int n)
|
||||
{
|
||||
return (n == 0 || n == 1) ?
|
||||
return (n < 2) ?
|
||||
n : // start the sequence with 0, 1
|
||||
fib(n - 1) + fib(n - 2); // else add two previous
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ Some notable ideas employed by esolangs are:
|
|||
- Solely focus on [golfing](golf.md), i.e. writing the shortest possible programs (e.g. *GoldScript*)
|
||||
- Using [unicode](unicode.md) characters (e.g. *UniCode*).
|
||||
- Being infinitely many languages (e.g. *MetaGolfScript*, each one solves a specific program in 0 bytes).
|
||||
- ...
|
||||
|
||||
Esolangs are great because:
|
||||
|
||||
|
@ -30,6 +31,7 @@ Esolangs are great because:
|
|||
- **They are great exercise in [programming](programming.md)** and design. Simple languages that are allowed to not be useful are potentially good for education as they let the programmer fully focus on a specific idea and its implementation.
|
||||
- **They blend technology with [art](art.md)**, train creativity and thinking "outside the box".
|
||||
- **They are a breath of fresh air** in the sometimes too serious area of technology. Hobbyist and non-commercial programming communities are always great to have.
|
||||
- ...
|
||||
|
||||
## History
|
||||
|
||||
|
|
2
faq.md
2
faq.md
|
@ -72,7 +72,7 @@ In three words basically [anarcho pacifist](anpac.md) [communism](communism.md),
|
|||
|
||||
### Why do you blame everything on capitalism when most of the issues you talk about, like propaganda, surveillance, exploitation of the poor and general abuse of power, appeared also under practically any other systems we've seen in history?
|
||||
|
||||
This is a good point, we talk about capitalism simply because it is the system of today's world and an immediate threat that needs to be addressed, however we always try to stress that the root issue lies deeper: it is **competition** that we see as causing all major evil. Competition between people is what always caused the main issues of a society, no matter whether the system at the time was called capitalism, feudalism or pseudosocialism. While historically competition and conflict between people was mostly forced by the nature, nowadays we've conquered technology to a degree at which we could practically eliminate competition, however we choose to artificially preserve it via capitalism, the glorification of competition, and we see this as an extremely wrong direction, hence we put stress on opposing capitalism, i.e. artificial prolonging of competition.
|
||||
This is a good point, we talk about [capitalism](capitalism.md) simply because it is the system of today's world and an immediate threat that needs to be addressed, however we always try to stress that the root issue lies deeper: it is **[competition](comptetition.md)** that we see as causing all major evil. Competition between people is what always caused the main issues of a society, no matter whether the system at the time was called capitalism, feudalism or pseudosocialism. While historically competition and conflict between people was mostly forced by the nature, nowadays we've conquered technology to a degree at which we could practically eliminate competition, however we choose to artificially preserve it via capitalism, the glorification of competition, and we see this as an extremely wrong direction, hence we put stress on opposing capitalism, i.e. artificial prolonging of competition.
|
||||
|
||||
### How is this different from Wikipedia?
|
||||
|
||||
|
|
2
lrs.md
2
lrs.md
|
@ -66,7 +66,7 @@ Apart from this software a lot of other software developed by other people and g
|
|||
- **[Simon Tatham's portable puzzle collection](stppc.md)**: Very portable collection of puzzle [games](game.md).
|
||||
- ...
|
||||
|
||||
Other potentially LRS software to check out may include [TinyGL](tinygl.md), [scc](scc.md), [ed](ed.md), [lynx](lynx.md), [links](links.md), [uClibc](uclibc.md), [miniz](miniz.md), [nuklear](nuklear.md), [dmenu](dmenu.md), [sbase](sbase.md), [sic](sic.md), [tabbed](tabbed.md), [svkbd](svkbd.md), [busybox](busybox.md), [raylib](raylib.md), [PortableGL](portablegl.md) and others.
|
||||
Other potentially LRS software to check out may include [TinyGL](tinygl.md), [scc](scc.md), [ed](ed.md), [lynx](lynx.md), [links](links.md), [uClibc](uclibc.md), [miniz](miniz.md), [nuklear](nuklear.md), [dmenu](dmenu.md), [sbase](sbase.md), [sic](sic.md), [tabbed](tabbed.md), [svkbd](svkbd.md), [busybox](busybox.md), [darcs](darcs.md), [raylib](raylib.md), [PortableGL](portablegl.md) and others.
|
||||
|
||||
It is also possible to talk about LRS data formats, [protocols](protocol.md), standards, designs and concepts as such etc. These might include:
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ WORK IN PROGRESS
|
|||
| "[Linux](linux.md)" | [GNU](gnu.md) |
|
||||
| [microtransaction](microtransaction.md) | microtheft |
|
||||
| [modern](modern.md) | malicious, shitty |
|
||||
| [Nintendo](nintendo.md) | Nintendont |
|
||||
| [NVidia](nvidia.md) | NoVidya |
|
||||
| object oriented programming ([OOP](oop.md))| object obsessed programming |
|
||||
| [openbsd](openbsd.md) | openbased |
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# Privacy
|
||||
|
||||
Digital privacy is the ability and freedom of an individual to hide "sensitive" [information](information.md) about himself. Of course, there are other forms of privacy than digital, for example the physical privacy [in real life](irl.md), however in this article we'll be implicitly dealing with digital privacy unless mentioned otherwise, i.e. privacy with respect to computers, e.g. on the [Internet](internet.md).
|
||||
Digital privacy is the ability and freedom of an individual to hide "sensitive" [information](information.md) about himself; nowadays "privacy concerns" are a big part of [capitalist](capitalism.md) [fear culture](fear_culture.md). Of course, there are other forms of privacy than digital, for example the physical privacy [in real life](irl.md), however in this article we'll be implicitly dealing with digital privacy unless mentioned otherwise, i.e. privacy with respect to computers, e.g. on the [Internet](internet.md).
|
||||
|
||||
{ I have my personal data publicly online and under CC0 for anyone to download and do anything with, including my real name, date of birth, location where I live, medical info and even nude photos. Literally nothing bad ever happened due to this. ~drummyfish }
|
||||
|
||||
**Society is becoming more and more obsessed with privacy and that is EXTREMELY BAD.** It leads to hardcore [censorship](censorship.md), people are hiding their email addresses so it's impossible to contact them, photos of child faces are wiped from the Internet, more and more videos on the internet now just blur everything in the video that's not the main focus of it, "just in case", people are even afraid to credit other people by name even if they are e.g. legally obliged to by a license such as CC-BY-SA ([lmao](lmao.md) https://forum.freegamedev.net/viewtopic.php?f=7&t=19322). Such retardedness has probably never been seen yet.
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ where *a*, *b*, *c* and *d* are real numbers and *i*, *j* and *k* are the basic
|
|||
|
||||
**Why four components and not three?** Simply put, numbers with three components don't have such nice properties, it just so happens that with four dimensions we get this nice system that's useful.
|
||||
|
||||
Operations with quaternions such as their multiplication can simply be derived using basic algebra and the above given axioms. Note that **quaternion multiplication is non-commutative** (*q1 * q2 != +2 * q1*), but it is still associative (*q1 * (q2 * q3) = (q1 * q2) * q3*).
|
||||
Operations with quaternions such as their multiplication can simply be derived using basic algebra and the above given axioms. Note that **quaternion multiplication is non-commutative** (*q1 * q2 != q2 * q1*), but it is still associative (*q1 * (q2 * q3) = (q1 * q2) * q3*).
|
||||
|
||||
A **unit quaternion** is a quaternion in which *a^2 + b^2 + c^2 + d^2 = 1*.
|
||||
|
||||
|
@ -28,4 +28,6 @@ Rotating point *p* by quaternion *q* is done as
|
|||
|
||||
Rotation quaternion can be obtained from axis (*v*) and angle (*a*) as
|
||||
|
||||
*q = cos(a/2) + sin(a/2) * (v.x i + v.y j + v.z k)*
|
||||
*q = cos(a/2) + sin(a/2) * (v.x i + v.y j + v.z k)*
|
||||
|
||||
TODO: compare to euler angles, exmaples
|
5
rgb565.md
Normal file
5
rgb565.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# RGB565
|
||||
|
||||
RGB565 is a way of representing a total of 65536 [colors](color.md) in just 2 [bytes](byte.md), i.e. 16 [bits](bit.md), by using 5 bits (highest) for red, 6 bits for green (to which human eye is most sensitive) and 5 bits for blue; it can also be seen as a color [palette](palette.md).
|
||||
|
||||
TODO
|
6
woman.md
6
woman.md
|
@ -1,6 +1,6 @@
|
|||
# <3 Woman <3
|
||||
|
||||
A woman (also girl, gril, gurl, femoid or succubus; [tranny](tranny.md) girl being called [t-girl](tgirl.md) or [mtf](mtf.md)) is one of two genders (sexes) of humans, the other one being [man](man.md). Women are [cute](cute.md) (sometimes) but notoriously bad at [programming](programming.mg), [math](math.md) and [technology](technology.md): in the field they usually "work" on [bullshit](bullshit.md) (and mostly [harmful](harmful.md)) positions such as "diversity department", [marketing](marketing.md), "[HR](human_resources.md)", [UI](ui.md)/[user experience](ux.md), or as a [token](token.md) girl for media. 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 (until TV cameras appear). Don't let yourself be fooled by the propaganda, women have always been bad with tech.
|
||||
A woman (also girl, gril, gurl, femoid or succubus; [tranny](tranny.md) girl being called [t-girl](tgirl.md), [trap](trap.md), [femboy](femboy.md), fake girl or [mtf](mtf.md)) is one of two genders (sexes) of humans, the other one being [man](man.md). Women are [cute](cute.md) (sometimes) but notoriously bad at [programming](programming.mg), [math](math.md) and [technology](technology.md): in the field they usually "work" on [bullshit](bullshit.md) (and mostly [harmful](harmful.md)) positions such as "diversity department", [marketing](marketing.md), "[HR](human_resources.md)", [UI](ui.md)/[user experience](ux.md), or as a [token](token.md) girl for media. 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 (until TV cameras appear). Don't let yourself be fooled by the propaganda, women have always been bad with tech.
|
||||
|
||||
Historically women have been privileged over men -- while men had to [work](work.md) their asses off, go to [wars](war.md), explore and hunt for food, women often weren't even supposed to work, they could stay at home, chill while guarding the fire and playing with children -- this is becoming less and less so with [capitalism](capitalism.md) which aims to simply enslave everyone, nowadays mostly through the [feminist](feminism.md) cult that brainwashed women to desire the same slavery as men. Statistically women live about 5 years longer lives than men because they don't have to worry and stress so much.
|
||||
|
||||
|
@ -18,6 +18,10 @@ Of course, [LRS](lrs.md) loves all living beings equally, even women. In order t
|
|||
|
||||
lol http://www.menarebetterthanwomen.com
|
||||
|
||||
## How To Get Women
|
||||
|
||||
Don't!
|
||||
|
||||
## Women In Tech/Science
|
||||
|
||||
Finding famous women capable in technology is almost a futile task. One of the most famous women of [modern](modern.md) tech, even though more an entrepreneur than engineer, was [Elizabeth Holmes](elizabeth_holmes.md) who, to the feminists' dismay, turned out to be a complete fraud and is now facing criminal charges. [Grace Hopper](grace_hopper) (not "grass hopper" lol) is a woman actually worth mentioning for her contribution to programming languages, though the contribution is pretty weak. [Ada Lovelace](ada_lovelace.md) cited by the feminist propaganda as the "first programmer" also didn't actually do anything besides scribbling a note about a computer completely designed by a man. This just shows how desperate the feminist attempts at finding capable women in tech are. Then there are also some individuals who just contributed to the downfall of the technology who are, in terms of gender, at least partially on the woman side, but their actual classification is actually pretty debatable -- these are monstrosities with pink hair who invented such [cancer](cancer.md) as [COCs](coc.md) and are not even worth mentioning.
|
||||
|
|
Loading…
Reference in a new issue