This commit is contained in:
Miloslav Ciz 2025-05-03 16:21:08 +02:00
parent 46a27e1930
commit 783a41a7cf
18 changed files with 2157 additions and 2060 deletions

View file

@ -56,37 +56,37 @@ Finally let's quickly go over other concepts related to colors. **[Gamma](gamma.
The following is a table of some common colors:
| color name | red |green|blue |cyan|magenta|yellow| hue |chroma|sat.(V)|sat.(L)|value|light.|grayscale| RGB24 |RGB565|RGB332| comment |
| ------------ |-----|-----|-----|----| ----- | ---- |-----| ---- | ----- | ----- |-----|------| ------- |--------|------|------| --------------------------------------------- |
| white | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |`ffffff`|`ffff`| `ff` | all frequencies, complementary to black |
| light gray | 0.75| 0.75| 0.75|0.25| 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0.75| 0.75 | 0.75 |`c0c0c0`|`c618`| `db` | complementary to dark gray |
| gray | 0.5 | 0.5 | 0.5 |0.5 | 0.5 | 0.5 | 0 | 0 | 0 | 0 | 0.5 | 0.5 | 0.5 |`808080`|`8410`| `92` | complementary to self |
| dark gray | 0.25| 0.25| 0.25|0.75| 0.75 | 0.75 | 0 | 0 | 0 | 0 | 0.25| 0.25 | 0.25 |`404040`|`4208`| `49` | complementary to light gray |
| black | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |`000000`|`0000`| `00` | lack of light, complementary to white |
| red | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0.5 | 0.29 |`ff0000`|`f800`| `e0` | ~685 nm, RGB primary, complementary to cyan |
| orange | 1 | 0.5 | 0 | 0 | 0.5 | 1 | 0.08| 1 | 1 | 1 | 1 | 0.5 | 0.59 |`ff8000`|`fc00`| `f0` | ~605 nm, RGB tertiary, AKA light brown |
| yellow | 1 | 1 | 0 | 0 | 0 | 1 | 0.16| 1 | 1 | 1 | 1 | 0.5 | 0.88 |`ffff00`|`ffe0`| `fc` | ~580 nm, RGB secondary, complementary to blue |
| green | 0 | 1 | 0 | 1 | 0 | 1 | 0.33| 1 | 1 | 1 | 1 | 0.5 | 0.58 |`00ff00`|`07e0`| `1c` | ~532 nm, RGB primary, complementary to pink |
| cyan | 0 | 1 | 1 | 1 | 0 | 0 | 0.5 | 1 | 1 | 1 | 1 | 0.5 | 0.7 |`00ffff`|`07ff`| `1f` | ~512 nm, RGB secondary, complementary to red |
| blue | 0 | 0 | 1 | 1 | 1 | 0 | 0.66| 1 | 1 | 1 | 1 | 0.5 | 0.11 |`0000ff`|`001f`| `03` | ~472 nm, RGB primary, complementary to yellow |
| violet | 0.5 | 0 | 1 | 0.5| 1 | 0 | 0.75| 1 | 1 | 1 | 1 | 0.5 | 0.26 |`8000ff`|`801f`| `83` | ~415 nm, RGB tertiary |
| pink | 1 | 0 | 1 | 0 | 1 | 0 | 0.83| 1 | 1 | 1 | 1 | 0.5 | 0.41 |`ff00ff`|`f81f`| `e3` | RGB secondary, complementary to green |
| light red | 1 | 0.5 | 0.5 | 0 | 0.5 | 0.5 | 0 | 0.5 | 0.5 | 1 | 1 | 0.75 | 0.64 |`ff8080`|`fc10`| `f2` | |
| light orange | 1 | 0.75| 0.5 | 0 | 0.25 | 0.5 | 0.08| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.79 |`ffc040`|`fe10`| `fa` | |
| light yellow | 1 | 1 | 0.5 | 0 | 0 | 0.5 | 0.16| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.94 |`ffff80`|`fff0`| `fe` | |
| light green | 0.5 | 1 | 0.5 | 0.5| 0 | 0.5 | 0.33| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.79 |`80ff80`|`87f0`| `9e` | |
| light cyan | 0.5 | 1 | 1 | 0.5| 0 | 0 | 0.5 | 0.5 | 0.5 | 1 | 1 | 0.75 | 0.85 |`80ffff`|`87ff`| `9f` | |
| light blue | 0.5 | 0.5 | 1 | 0.5| 0.5 | 0 | 0.66| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.55 |`8080ff`|`841f`| `93` | |
| light violet | 0.75| 0.5 | 1 |0.25| 0.5 | 0 | 0.75| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.63 |`c08040`|`c41f`| `d3` | |
| light pink | 1 | 0.5 | 1 | 0 | 0.5 | 0 | 0.83| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.7 |`ff80ff`|`fc1f`| `f3` | |
| dark red | 0.5 | 0 | 0 | 0.5| 1 | 1 | 0 | 0.5 | 1 | 1 | 0.5 | 0.25 | 0.14 |`800000`|`8000`| `80` | |
| brown | 0.5 | 0.25| 0 | 0.5| 0.75 | 1 | 0.08| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.29 |`804000`|`8200`| `88` | AKA dark orange |
| dark yellow | 0.5 | 0.5 | 0 | 0.5| 0.5 | 1 | 0.16| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.44 |`808000`|`8400`| `90` | |
| dark green | 0 | 0.5 | 0 | 1 | 0.5 | 1 | 0.33| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.29 |`008000`|`0400`| `10` | |
| dark cyan | 0 | 0.5 | 0.5 | 1 | 0.5 | 0.5 | 0.5 | 0.5 | 1 | 1 | 0.5 | 0.25 | 0.35 |`008080`|`0410`| `12` | |
| dark blue | 0 | 0 | 0.5 | 1 | 1 | 0.5 | 0.66| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.05 |`000080`|`0010`| `02` | |
| dark violet | 0.25| 0 | 0.5 |0.75| 1 | 0.5 | 0.75| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.13 |`c00080`|`4010`| `42` | |
| dark pink | 0.5 | 0 | 0.5 | 0.5| 1 | 0.5 | 0.83| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.2 |`800080`|`8010`| `82` | |
| color name | red |green|blue |cyan|magenta|yellow| hue |chroma|sat.(V)|sat.(L)|value|light.|grayscale| RGB24 |RGB565|RGB332| comment |
| ------------ |-----|-----|-----|----| ----- | ---- |-----| ---- | ----- | ----- |-----|------| ------- |--------|------|------| ------------------------------------------------------------------------- |
| white | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |`ffffff`|`ffff`| `ff` | all frequencies, complementary to black |
| light gray | 0.75| 0.75| 0.75|0.25| 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0.75| 0.75 | 0.75 |`c0c0c0`|`c618`| `db` | complementary to dark gray |
| gray | 0.5 | 0.5 | 0.5 |0.5 | 0.5 | 0.5 | 0 | 0 | 0 | 0 | 0.5 | 0.5 | 0.5 |`808080`|`8410`| `92` | complementary to self |
| dark gray | 0.25| 0.25| 0.25|0.75| 0.75 | 0.75 | 0 | 0 | 0 | 0 | 0.25| 0.25 | 0.25 |`404040`|`4208`| `49` | complementary to light gray |
| black | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |`000000`|`0000`| `00` | lack of light, complementary to white |
| red | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0.5 | 0.29 |`ff0000`|`f800`| `e0` | ~685 nm, RGB primary, complementary to cyan |
| orange | 1 | 0.5 | 0 | 0 | 0.5 | 1 | 0.08| 1 | 1 | 1 | 1 | 0.5 | 0.59 |`ff8000`|`fc00`| `f0` | ~605 nm, RGB tertiary, AKA light brown |
| yellow | 1 | 1 | 0 | 0 | 0 | 1 | 0.16| 1 | 1 | 1 | 1 | 0.5 | 0.88 |`ffff00`|`ffe0`| `fc` | ~580 nm, RGB secondary, complementary to blue |
| green | 0 | 1 | 0 | 1 | 0 | 1 | 0.33| 1 | 1 | 1 | 1 | 0.5 | 0.58 |`00ff00`|`07e0`| `1c` | ~532 nm, RGB primary, complementary to pink |
| cyan | 0 | 1 | 1 | 1 | 0 | 0 | 0.5 | 1 | 1 | 1 | 1 | 0.5 | 0.7 |`00ffff`|`07ff`| `1f` | ~512 nm, RGB secondary, complementary to red |
| blue | 0 | 0 | 1 | 1 | 1 | 0 | 0.66| 1 | 1 | 1 | 1 | 0.5 | 0.11 |`0000ff`|`001f`| `03` | ~472 nm, RGB primary, complementary to yellow, most favorite in the world |
| violet | 0.5 | 0 | 1 | 0.5| 1 | 0 | 0.75| 1 | 1 | 1 | 1 | 0.5 | 0.26 |`8000ff`|`801f`| `83` | ~415 nm, RGB tertiary |
| pink | 1 | 0 | 1 | 0 | 1 | 0 | 0.83| 1 | 1 | 1 | 1 | 0.5 | 0.41 |`ff00ff`|`f81f`| `e3` | RGB secondary, complementary to green |
| light red | 1 | 0.5 | 0.5 | 0 | 0.5 | 0.5 | 0 | 0.5 | 0.5 | 1 | 1 | 0.75 | 0.64 |`ff8080`|`fc10`| `f2` | |
| light orange | 1 | 0.75| 0.5 | 0 | 0.25 | 0.5 | 0.08| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.79 |`ffc040`|`fe10`| `fa` | |
| light yellow | 1 | 1 | 0.5 | 0 | 0 | 0.5 | 0.16| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.94 |`ffff80`|`fff0`| `fe` | |
| light green | 0.5 | 1 | 0.5 | 0.5| 0 | 0.5 | 0.33| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.79 |`80ff80`|`87f0`| `9e` | |
| light cyan | 0.5 | 1 | 1 | 0.5| 0 | 0 | 0.5 | 0.5 | 0.5 | 1 | 1 | 0.75 | 0.85 |`80ffff`|`87ff`| `9f` | |
| light blue | 0.5 | 0.5 | 1 | 0.5| 0.5 | 0 | 0.66| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.55 |`8080ff`|`841f`| `93` | |
| light violet | 0.75| 0.5 | 1 |0.25| 0.5 | 0 | 0.75| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.63 |`c08040`|`c41f`| `d3` | |
| light pink | 1 | 0.5 | 1 | 0 | 0.5 | 0 | 0.83| 0.5 | 0.5 | 1 | 1 | 0.75 | 0.7 |`ff80ff`|`fc1f`| `f3` | |
| dark red | 0.5 | 0 | 0 | 0.5| 1 | 1 | 0 | 0.5 | 1 | 1 | 0.5 | 0.25 | 0.14 |`800000`|`8000`| `80` | |
| brown | 0.5 | 0.25| 0 | 0.5| 0.75 | 1 | 0.08| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.29 |`804000`|`8200`| `88` | AKA dark orange |
| dark yellow | 0.5 | 0.5 | 0 | 0.5| 0.5 | 1 | 0.16| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.44 |`808000`|`8400`| `90` | |
| dark green | 0 | 0.5 | 0 | 1 | 0.5 | 1 | 0.33| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.29 |`008000`|`0400`| `10` | |
| dark cyan | 0 | 0.5 | 0.5 | 1 | 0.5 | 0.5 | 0.5 | 0.5 | 1 | 1 | 0.5 | 0.25 | 0.35 |`008080`|`0410`| `12` | |
| dark blue | 0 | 0 | 0.5 | 1 | 1 | 0.5 | 0.66| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.05 |`000080`|`0010`| `02` | |
| dark violet | 0.25| 0 | 0.5 |0.75| 1 | 0.5 | 0.75| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.13 |`c00080`|`4010`| `42` | |
| dark pink | 0.5 | 0 | 0.5 | 0.5| 1 | 0.5 | 0.83| 0.5 | 1 | 1 | 0.5 | 0.25 | 0.2 |`800080`|`8010`| `82` | |
## Code And Conversions

View file

@ -10,6 +10,16 @@ And there is more: floating point behavior really depends on the language you're
{ Really as I'm now getting down the float rabbit hole I'm seeing what a huge mess it all is, I'm not nearly an expert on this so maybe I've written some BS here, which just confirms how messy floats are. Anyway, from the articles I'm reading even being an expert on this issue doesn't seem to guarantee a complete understanding of it :) Just avoid floats if you can. ~drummyfish }
For starers consider the following snippet (let's now assume the standard 32 bit IEEE float etc.):
```
for (float f = 0; f < 20000000; f++)
if (((int) f) % 4096 == 0) // once in a while output current f
printf("%f\n",f);
```
Take a look at the code and guess what it does. The loop should count up to 20 million and stop, right? NOPE. The loop will never end because *f* will never reach 20 million -- and no, it's not because 20 million would be a too high value, in fact it's laughably low considering that float can store values up to the order of 10^38. What gives then? Upon running the loop you'll notice it gets stuck at the value 16777216.0, which is the line beyond which float's resolution falls below 1, meaning the number can no longer be incremented by one because float cannot represent the next integer, 16777217. And that's just a very basic, innocent looking loop.
Is floating point literal evil? Well, of course not, but it is extremely overused. You may need it for precise scientific simulations, e.g. [numerical integration](numerical_integration.md), but as our [small3dlib](small3dlib.md) shows, you can comfortably do even [3D rendering](3d_rendering.md) without it. So always consider whether you REALLY need float. **You mostly do NOT need it**.
**Simple example of avoiding floating point**: many noobs think that if they e.g. need to multiply some integer *x* by let's say 2.34 they have to use floating point. This is of course false and just proves most retarddevs don't know elementary school [math](math.md). Multiplying *x* by 2.34 is the same as *(x * 234) / 100*, which we can [optimize](optimization.md) to an approximately equal division by power of two as *(x * 2396) / 1024*. Indeed, given e.g. *x = 56* we get the same integer result 131 in both cases, the latter just completely avoiding floating point.
@ -60,6 +70,52 @@ The standard specifies many formats that are either binary or decimal and use va
**Example?** Let's say we have float (binary34) value `11000000111100000000000000000000`: first bit (sign) is 1 so the number is negative. Then we have 8 bits of exponent: `10000001` (129) which converted from the biased format (subtracting 127) gives exponent value of 2. Then mantissa bits follow: `11100000000000000000000`. As we're dealing with a normal number (exponent bits are neither all 1s nor all 0s), we have to imagine the implicit `1.` in front of mantissa, i.e. our actual mantissa is `1.11100000000000000000000` = 1.875. The final number is therefore -1 * 1.875 * 2^2 = -7.5.
The following table shows approximate resolution (i.e. distance to next representable value) of float (32 bit) and double (64 bit) near given stored value:
| value | float | double |
| ------- | ---------- | ---------- |
| 10^-20 | 3 * 10^-28 | 6 * 10^-37 |
| 10^-19 | 2 * 10^-27 | 5 * 10^-36 |
| 10^-18 | 4 * 10^-26 | 8 * 10^-35 |
| 10^-17 | 3 * 10^-25 | 6 * 10^-34 |
| 10^-16 | 2 * 10^-24 | 5 * 10^-33 |
| 10^-15 | 4 * 10^-23 | 8 * 10^-32 |
| 10^-14 | 3 * 10^-22 | 6 * 10^-31 |
| 10^-13 | 2 * 10^-21 | 5 * 10^-30 |
| 10^-12 | 4 * 10^-20 | 8 * 10^-29 |
| 10^-11 | 3 * 10^-19 | 6 * 10^-28 |
| 10^-10 | 2 * 10^-18 | 5 * 10^-27 |
| 10^-9 | 4 * 10^-17 | 8 * 10^-26 |
| 10^-8 | 3 * 10^-16 | 7 * 10^-25 |
| 10^-7 | 3 * 10^-15 | 5 * 10^-24 |
| 10^-6 | 4 * 10^-14 | 8 * 10^-23 |
| 10^-5 | 3 * 10^-13 | 7 * 10^-22 |
| 10^-4 | 3 * 10^-12 | 5 * 10^-21 |
| 10^-3 | 4 * 10^-11 | 9 * 10^-20 |
| 10^-2 | 3 * 10^-10 | 7 * 10^-19 |
| 10^-1 | 3 * 10^-09 | 5 * 10^-18 |
| 1 | 5 * 10^-08 | 9 * 10^-17 |
| 10 | 4 * 10^-07 | 7 * 10^-16 |
| 100 | 3 * 10^-06 | 6 * 10^-15 |
| 1000 | 2 * 10^-05 | 4 * 10^-14 |
| 10000 | 4 * 10^-04 | 7 * 10^-13 |
| 100000 | 3 * 10^-03 | 6 * 10^-12 |
| 1000000 | 0.02 | 4 * 10^-11 |
| 10^7 | 0.42 | 7 * 10^-10 |
| 10^8 | 3.38 | 6 * 10^-09 |
| 10^9 | 27.10 | 5 * 10^-08 |
| 10^10 | 433.68 | 8 * 10^-07 |
| 10^11 | 3469.44 | 6 * 10^-06 |
| 10^12 | 27755.57 | 5 * 10^-05 |
| 10^13 | 444089.21 | 8 * 10^-04 |
| 10^14 | 3552713.75 | 6 * 10^-03 |
| 10^15 | 28421710 | 0.05 |
| 10^16 | 454747360 | 0.84 |
| 10^17 | 3637978880 | 6.77 |
| 10^18 | 29103831040| 54.21 |
| 10^19 | 4 * 10^11 | 867.36 |
| 10^20 | 3 * 10^12 | 6938.89 |
## See Also
- [posit](posit.md)

View file

@ -2,7 +2,7 @@
Freedom of speech means there is no responsibility and absolutely no punishments or obstacles (such as [censorship](censorship.md)), imposed by anyone (government, [corporations](corporation.md), [culture](cutlure.md), society, technology, ...), against merely talking about anything, making any public statement and sharing or publication any kind of [information](information.md) at all. Adopting free speech is not about increasing the degree of speech tolerance as many erroneously think, it's rather a complete change of values and a switch of mentality, letting go of old, primitive kind of thinking and making the leap to a new intellectual level, to absolutely eliminating the very concept of limiting or punishing any kind of expression, like ridding an animals of its chains instead of just speculating about how long the chain should be, therefore **free speech has to be by definition absolute and have no limit**, otherwise it's not free speech but controlled, limited speech -- trying to add exceptions to free speech is like trying to limit to whom a [free software](free_software.md) license is granted; doing so immediately makes such software non-free; free speech "with limits" is like free lunch for a low price or vegetarian food with only a little meat in it -- it's not the real thing, it just wants to be called *X* without actually being *X*. **Free speech also comes with zero responsibility** exactly by definition, as responsibility implies some forms of punishment; free speech means exactly one can say anything without fearing any burden of responsibility -- if anyone says "free speech comes with responsibility", he has absolutely no clue what he's talking about, he is not against censorship, he just advocates self censorship (i.e. censorship done internally rather than externally). If you unable to say something or afraid of saying it because of any kind of punishment -- for example sharing someone's private information or a pirated movie, saying that you hate your boss, that you'd like to fuck your cousin, that there is a bomb on a plane, that you'd like to kill someone -- you have no free speech. True freedom of speech is an essential attribute of a mature society, sadly it hasn't been implemented yet and with the [SJW](sjw.md) [cancer](cancer.md) the latest trend in society is towards eliminating free speech rather than supporting it (see e.g. [political correctness](political_correctness.md)). Speech is being widely censored by extremist groups (e.g. [LGBT](lgbt.md) and [corporations](corporation.md), see also [cancel culture](cancel_culture.md)) and states -- depending on country there exist laws against so called "[hate speech](hate_speech.md)", questioning official versions of history (see e.g. [Holocaust](holocaust.md) denial laws present in many EU states), criticizing powerful people (for example it is illegal to criticize or insult that huge inbred dick Thai king), sharing of useful information such as books ([copyright](copyright.md) censorship) etc. Free speech nowadays is being eliminated by the strategy of creating an exception to free speech, usually called "hate speech", and then classifying any undesired speech under such label and silencing it.
The basic principle of free speech says that **if you don't support freedom of speech which you dislike, you don't support free speech**. I.e. speech that you hate does not equal hate speech. Free speech is based on the observation that firstly limiting speech is extremely harmful, and secondly that **speech itself never harms anyone**, it is only actions that harm and we should therefore focus on the actions themselves. A though itself is never harmful and speech is just shared thought; to limit speech is to limit sharing thoughts and therefore **thought control**. Of course thoughts can have good or bad consequences, but we should be focused on learning to derive good consequences from whatever thoughts occur rather than restricting thinking. A death threat or call for someone's murder doesn't kill -- sure, it may lead to someone being killed, but so may for example playing sports. If any kind of speaking leads to people dying, you have a deep issue within your society that definitely does NOT lie in not applying enough censorship; trying to solve your issue with censorship here is like trying to solve depression by physically deforming the depressed man's face into a smile and pretending he's OK. Offending someone by pointing out he's an idiot also doesn't count as speech causing harm, it's just a sad case of someone who is unable to bear hearing truth (or a lie), in which case he shouldn't be listening to people any more than someone with epilepsy should be watching seizure inducing videos.
The core principle of free speech states that **if you don't support freedom of speech which you dislike, you don't support free speech**, or, in other words, speech that you hate does not equal hate speech. Free speech is based on the observation that firstly limiting speech is extremely [harmful](harmful.md) -- both to society as a whole (consider e.g. journalism, revealing corruption, informing about [history](history.md), ...) and to individuals (preventing humans from expressing their true feeling with what's almost defining them as a species, i.e. [language](human_language.md), may equate psychological torture) -- and secondly that **speech itself never harms anyone**, it is only actions that harm and we should therefore focus on the actions themselves. A though itself is never harmful and speech is just shared thought; to limit speech is to limit sharing thoughts and therefore **thought control**. Of course thoughts can have good or bad consequences, but we should be focused on learning to derive good consequences from whatever thoughts occur rather than restricting thinking. A death threat or call for someone's murder doesn't kill -- sure, it may lead to someone being killed, but so may for example playing sports. If any kind of speaking leads to people dying, you have a deep issue within your society that definitely does NOT lie in not applying enough censorship; trying to solve your issue with censorship here is like trying to solve depression by physically deforming the depressed man's face into a smile and pretending he's OK. Offending someone by pointing out he's an idiot also doesn't count as speech causing harm, it's just a sad case of someone who is unable to bear hearing truth (or a lie), in which case he shouldn't be listening to people any more than someone with epilepsy should be watching seizure inducing videos.
**How can we possibly claim speech can't harm anyone?** This question in particular is possibly the one most likely to be come up in response to the previous paragraph. Can't we hurt people with insults, spoilers, lies, doxxing etc.? No, but a bad society can make it so that others get punished for your speech, that people FEEL hurt by speech or that they unnecessarily hurt themselves in reaction to speech. Speech coming from others is just a stream of data without any warranty or guarantee of accuracy or truthfulness, it should be treated as such and can always be simply ignored. Should someone receive information KNOWN to potentially be false but subsequently treat it as truth and get hurt in result, in principle he did the same as if he took a gun and shot himself. Getting "offended" by insults is just a result of chimpanzee [culture](culture.md), insults don't physically hurt anyone and can simply be ignored. But what about doxxing for example? [Doxxing](dox.md) itself doesn't hurt anyone, it's the shitty society that raises lunatics who attack anyone whose whereabouts they get to know. Should we be allowed to breathe freely? Imagine capitalism ten years from now establishing breathing quotas for households and any extra breathing resulting in extra fees in your family's rent. If a child of a poor family refuses to do daily breath holding to save on rent, it hurts its parents who will have to work more in order to pay the extra money. Would you say breathing hurts others? No, but it can be made to look as if it does so that it can be regulated, monitored and made subject to [business](business.md).

View file

@ -6,11 +6,11 @@ What follows is a "constantly [work in progress](wip.md)" list of subjectively s
- **Obscure [Internet](internet.md) communities**: for example various [wikis](wiki.md) or [image boards](image_board.md), also [darknet](darknet.md), [gopher](gopher.md), internet archives, websites in foreign languages and so on. See also [netstalking](netstalking.md).
- **Zanclean flood**: gigantic flood that refilled the Mediterranean sea some 5 million years ago, which must have been a greatly spectacular event. Other similar mega floods are also discussed, e.g. that of the Black sea. Some of them are (often controversially) thought to be the origin of the shared great flood myth that's present in almost all old religions and cultures. A bit related interesting topic is the 20th century Atlantropa mega project that planned to partially dry the Mediterranean to gain more space for Europe.
- **[Ball lightning](ball_lightning.md)**: a real weird phenomenon whose existence is not controversial (it is acknowledged to exist) but which still remains without exact [scientific](science.md) explanation. You can find videos of it, descriptions of eye witnesses are also quite fun to read.
- **Statistics, world records, [numbers](number.md), infographics, [data](data.md) and their visualization**: there's something wonderful about numbers, and not just to the autistic among us, the success of Guinness World Record book proves that figures are just cool. And computers further take this to another level, opening the door for quick pattern searches, adventurous exploration of correlations, deriving more and more numbers and especially making spectacular eye-candy visualizations, it's just so pleasant to plot and draw pixels, shapes and [colors](color.md) and glimpse into the abstract worlds the data hide, and sometimes we're even rewarded with very visually pleasant results.
- **[Ball lightning](ball_lightning.md)**: a real strange phenomenon whose existence is not controversial (it is acknowledged to exist, unlike various cryptids etc.) but which still remains without exact [scientific](science.md) explanation. You can find videos of it. Descriptions of eye witnesses (even from very old time periods) are also quite fun to read. This is one of very rare remaining cases of something quite tangible being still shrouded in mystery to this day.
- **Statistics, world records, [numbers](number.md), infographics, [data](data.md) and their visualization**: there's something wonderful about numbers, and not just to the autistic among us, the success of Guinness World Record book proves that figures are just cool. And computers take number crunching to whole another level, opening the door for quick pattern searches, adventurous exploration of correlations, deriving more and more numbers and especially making spectacular eye-candy visualizations, it's just so pleasant to plot and draw pixels, shapes and [colors](color.md) and glimpse into the abstract worlds the data hide, and sometimes we're even rewarded with very visually pleasant results. Pro tip: try to search for images on [OEIS](oeis.md).
- **Extinct animals**: obviously everyone loves dinosaurs (BTW look up well preserved fossils of dinosaurs, some are in excellent state, we also now know for fact the skin color of some dinosaurs, ALSO there exist MILLIONS years old animals perfectly preserved in amber), but there are many underrated extincts animals, e.g. gigantopithecus, the biggest ape known to have ever existed (estimated weight up to 300 kg), which we however know almost nothing about (only teeth were found). More recently extinct species such as mammoth, dodo (recorded in paintings, there exist some remains of dodos), moa bird (extremely large bird), saber-toothed cats, giant sloth, short-faced bear (probably the biggest bear ever) or Tasmanian tiger (which there still exists a black and white video footage of) are interesting exactly because they are closer on the timeline, people may have seen them and even depicted them somehow (e.g. cave paintings), we have may find much better preserved, mummified bodies of them (often in ice) and also have a bigger chance of cloning them one day or even discover them still living somewhere (has happened to several species already).
- **[UFO](ufo.md)s and aliens**: ufology is pretty fun when when you dig through the real retarded cases and ignore soyence fanatics that will stop being friends with you. Remember, you may enjoy digging into weird, suspicious cases without starting to wear tinfoil or seeing little green men behind anything; even if a UFO turns out to be a new, secret military tech or newly discovered atmospheric phenomenon and not aliens, it's still pretty damn interesting. Some cases are pretty solid, e.g. Hangzhou Xiaoshan (China) 2010 sighting of extremely weird tear in the sky which was scanning the whole city with some kind of obviously artificial light screen for a very long time, which was seen by thousands and captured on camera and video by many (e.g. https://yt.artemislena.eu/watch?v=__9s5chdV7c) and even caused an airport to shut down -- the real nature of the thing was never explained and wasn't even much talked about (there also seems to be another simple-to-debunk cover up UFO sighting under the same keywords). The Travis Walton abduction case is also quite interesting, supported by a lot of evidence and has stood for a very long time. There are also many pretty good footages of weird UFOs, especially interesting are those captured by multiple people from different angles, which are extremely hard to fake.
- **Known but unexcavated archaeological sites**: e.g. the Qin tomb, a pyramid in China that's a resting place of a great emperor is buried underground -- historical records say the pyramid contains an unbelievable wealth, a great palace and models of cities, seas, waterways of quicksilver and traps protecting against intruders; this is believable as it is also the place where the astonishing terracota army was already excavated. However it is quite likely the pyramid won't be opened during our lifetime, we probably won't ever see it with our eyes. Also the well known pyramids and sphinx of Giza are still very mysterious -- e.g. there are holes in the great Sphinx you can clearly but about which no one ever talks -- you can see they lead somewhere inside but you never see the actual inside, they let no one in and photos are nowhere to be found. Historical places of yet unknown locations, like the hanging gardens of Babylon, are also pretty interesting.
- **[UFO](ufo.md)s and aliens**: ufology is pretty fun when you dig through the real retarded schizo stuff and ignore [soyence](soyence.md) fanatics that will of course immediately stop being friends with you. Remember, you may enjoy digging into weird, suspicious cases without starting to wear tinfoil or seeing little green men behind every corner; even if a UFO turns out to be a new, secret military tech or newly discovered atmospheric phenomenon and not aliens, it's still pretty damn interesting. Some cases are quite solid, e.g. Hangzhou Xiaoshan (China) 2010 sighting of extremely weird tear in the sky which was scanning the whole city with some kind of obviously artificial light screen for a very long time, which was seen by thousands and captured on camera and video by many (e.g. https://yt.artemislena.eu/watch?v=__9s5chdV7c) and even caused an airport to shut down -- the real nature of the thing was never explained and wasn't even much talked about (there also seems to be another simple-to-debunk cover up UFO sighting under the same keywords). The Travis Walton abduction case is also quite interesting, supported by a lot of evidence and has stood for a very long time. There are also many pretty good footages of weird UFOs, especially interesting are those captured by multiple people from different angles, which are extremely hard to fake.
- **Known but unexcavated archaeological sites**: e.g. the Qin tomb, a pyramid in China that's a resting place of a great emperor is buried underground -- [historical](history.md) records say the pyramid contains an unbelievable wealth, a great palace and models of cities, seas, waterways of quicksilver and traps protecting against intruders; this is believable as it is also the place where the astonishing terracota army was already excavated. However it is quite likely the pyramid won't be opened during our lifetime, we probably won't ever see it with our eyes. Also the well known pyramids and sphinx of Giza are still very mysterious -- e.g. there are holes in the great Sphinx you can clearly but about which no one ever talks -- you can see they lead somewhere inside but you never see the actual inside, they let no one in and photos are nowhere to be found. Historical places of yet unknown locations, like the hanging gardens of Babylon, are also pretty interesting.
- **Oldest existing [photographs](photo.md)**, video and audio recordings, and also old paintings, e.g. cave paintings capturing extinct animals.
- 1816, so called **year without summer**, probably caused by great volcano eruption whose effects might have given a glimpse to what it looked like after the impact of the asteroid that killed the dinosaurs -- however this time many people wrote first hand witness accounts (you can find many in old books and reports, many times just scanned on Internet archive).
- Back before [reddit](reddit.md) became such huge shit interesting stuff could be discovered e.g. at https://old.reddit.com/r/interestingasfuck/top/, however nowadays it seems to be just a propaganda ground -- current all-time top two posts are both literally uninteresting political posts about Ukrainian war? :D Use internet archive to try to dig up the good stuff from the past maybe.

View file

@ -26,7 +26,8 @@ Apparently the term *KISS* originated in the US Army plane engineering: the plan
- [Beatboxing](beatbox.md) to produce a back track for rap songs, as opposed to using (or even paying for) some kind of music software.
- Using hammock instead of bed -- it is much simpler, cheaper, portable and has an extra swinging feature for which it is considered by many to even be superior in terms of comfort.
- The [Elo](elo.md) rating system is considered KISS in the context of other rating systems such as [Glicko](glicko.md). While there are many systems objectively more accurate than Elo, Elo remains the most widely used one probably thanks to its simplicity.
- [Infrared](infrared.md) wireless communication in old phones was more KISS than [Bluetooth](bluetooth.md) and [wifi](wifi.md).
- [Infrared](infrared.md) wireless communication in old phones was way more KISS than [Bluetooth](bluetooth.md) and [wifi](wifi.md).
- A word-for-word text translator can be a super KISS, [good enough](good_enough.md) alternative to "[AI](ai.md)" translators, especially considering that with [Unix](unix.md) tools the code can probably be implemented with a few lines of shell script (make a plain text dictionary file with "phrase [regular expression](regexp.md)":"translation" pairs, each on its own line, ordered from longest to shortest, then translate any text simply by apply sed replacement on it for each line of the dictionary file).
- In the world of [coffee](coffee.md) so called *Turkish coffee* without any milk and sugar is probably the most KISS option, you just put coffee ground in a mug and pour hot water on it. Compare this to Espresso with milk and sugar which needs a quite complex and expensive machine. { Yeah, I drink the most KISS coffee, though sometimes I also use French press -- this could perhaps be considered a runner up. ~drummyfish }
- ...

View file

@ -100,6 +100,7 @@
| political correctness | political cowardice |
| proprietary service | disservice |
| pseudo 3D | [primitive 3D](primitive_3d.md) |
| remaster(ed) | disaster(ed) |
| school | indoctrination center |
| "science" | [soyence](soyence.md) |
| soccer | [football](football.md) |

View file

@ -86,7 +86,7 @@ Mandelbrot set is similar and related to **[Julia sets](julia_set.md)**; in a wa
The following are some **attributes** of the Mandelbrot set:
- **[Hausdorff dimension](hausdorff_dimension.md)** (of the boundary): 2
- **area**: approximately 1.5052; this is a current best estimate, the area is not easy to calculate (it may be estimated e.g. with [Monte Carlo](monte_carlo.md) methods).
- **area**: approximately 1.5052; this is currently the best estimate, the area is not easy to calculate (it may be estimated e.g. with [Monte Carlo](monte_carlo.md) methods).
- It is **symmetric** along the *x* axis.
- It's proven the set is **connected**, i.e. it's just a single "island".
- The number [pi](pi.md) is embedded in the shape of the set in a hugely mysterious way which was discovered by mistake by David Bolle in 1991 who tried to measure the width of the gap touching the point [-0.75,0] -- as he increased precision of his iterative algorithm, the number of iterations started to approximate digits of pi.

View file

@ -22,7 +22,7 @@ There is a so called *[airplane rule](airplane_rule.md)* that states a plane wit
[Alan Kay](alan_kay.md), a famous [hacker](hacking.md), let himself be heard that he experienced a revelation upon reading manual to the [Lisp](lisp.md) programming language once he saw that the whole programming language's code was written on half a page in the manual itself. "These are Maxwells Equations of software!" he exclaimed -- this is the essence of true programming. Not huge codebases maintained by hundreds of programmers, but mathematics, seeking minimal equations and [beauty](beauty.md) are the interest of a true programmer.
Up until recently in [history](history.md) it was evident to every engineer that *the better machine is that with fewer moving parts*. This still seems to hold e.g. in [mathematics](math.md), a field not yet so spoiled by crippling commercialization and mostly inhabited by the smartest people -- there is a tendency to look for the most minimal equations -- such equations are considered [beautiful](beauty.md). Science also knows this rule as the [Occam's razor](occams_razor.md). In technology invaded by aggressive commercialization the situation is different, minimalism lives only in the underground and is ridiculed by the mainstream propaganda. Some of the minimalist movements, terms and concepts at least somewhat connected to minimalism include (watch out for [SJW](sjw.md)s, [pseudominimalism](pseudominimalism.md), Nazis etc., we don't automatically fully embrace all things on this list):
Up until recently in [history](history.md) it was evident to every engineer that *the better machine is that with fewer moving parts*. This still seems to hold for example in [mathematics](math.md), a field not yet so spoiled by crippling commercialization and mostly inhabited by the smartest people -- there is a tendency to look for the most minimal equations and such equations are considered [beautiful](beauty.md). To laymen it's not obvious and the concept definitely seems counterintuitive, but every programmer eventually learns that a "more sophisticated" solution will not only bring the cost of added overhead, but may oftentimes leads to simply giving worse overall results -- typical example are for example [pseudorandom](pseudorandomness.md) number generators in which adding more operators typically WORSENS the quality of the generated sequence. Science knows the rule of simplicity as the [Occam's razor](occams_razor.md): the simplest explanation should be preferred. In technology invaded by aggressive commercialization the situation is different, minimalism lives only in the underground and is ridiculed by the mainstream propaganda. Some of the minimalist movements, terms and concepts at least somewhat connected to minimalism include (watch out for [SJW](sjw.md)s, [pseudominimalism](pseudominimalism.md), Nazis etc., we don't automatically fully embrace all things on this list):
- [suckless](suckless.md)
- [cat-v](cat_v.md)

View file

@ -1,6 +1,8 @@
# Netstalking
Netstalking means searching for obscure, hard-to-find and somehow valuable (even if only by its entertaining nature) [information](information.md)/media buried in the depths of the [Internet](internet.md) (and similar networks), for example searching for funny photos on Google Streetview (https://9-eyes.com/), unindexed [deepweb](deepweb.md) sites or secret documents on [FTP](ftp.md) servers. Netstalking is relatively unknown in the [English](english.md)-speaking world but is pretty popular in Russian communities, although since the beginning of 2020s the general interest in obscure and esoteric material on the Internet seems to have been steadily rising among all inhabitants of the world wide network, perhaps due to other phenomena such as increasing [censorship](censorship.md) (and the desire to bypass it), the "web 1.0 revival" movement etc.
*Not to be confused with "[stalking](stalking.md)".*
Netstalking (reference to the [game](game.md) S.T.A.L.K.E.R.) means searching for obscure, hard-to-find and somehow valuable (even if only by its entertaining nature) [information](information.md)/media buried in the depths of the [Internet](internet.md) (and similar networks), for example searching for funny photos on Google Streetview (https://9-eyes.com/), unindexed [deepweb](deepweb.md) sites or secret documents on [FTP](ftp.md) servers. The activity is distinct from [cracking](cracking.md) (breaking into protected systems), it only involves searching and observing. Netstalking is relatively unknown in the [English](english.md)-speaking world but is pretty popular in Russian communities, although since the beginning of 2020s the general interest in obscure and esoteric material on the Internet seems to have been steadily rising among all inhabitants of the world wide network, perhaps due to other phenomena such as increasing [censorship](censorship.md) (and the desire to bypass it), the "web 1.0 revival" movement etc.
Netstalking can be divided into two categories:
@ -16,12 +18,12 @@ Techniques of netstalking include port scanning, randomly generating web domains
- `"exact phrase"`: Searches only for a verbatim string, very useful e.g. for searching exact filenames and exploiting tricks such as for example searching a long phrase from a publicly inaccessible book to find websites that in fact have such books publicly accessible. Another trick is to search for something like `"powered by gitea"` (or whatever framework) or `"index of"` (common heading of plain file lists) -- this can find small and unadvertised sites running on popular [frameworks](framework.md).
- `before:year`: Limits the search to sites/files published before given year. This is amazingly useful as nowadays everything is just flooded by [AI](ai.md) garbage and commercial, censored [noise](noise.md). Adding `before:2010` just takes you back to the old world where Internet actually contained useful information, where schools for instance weren't afraid to list names of all pupils in each class along with photos, names of their teachers and so on.
- `filetype:type`: Searches only for files of given type. Again, this is very abusable -- you may for example search for Excel spreadsheets (`filetype:xls`), [JSON](json.md) or [CSV](csv.md) databases and so on -- there are tons and tons of sheets with personal information of company employees, taxes and various other sensitive stuff. Searching for MS Word or PowerPoint documents finds files created by people who aren't very skilled with computers and will very likely post some crazy [shit](shit.md) :-) If you're feeling lucky, try to search databases of passwords in plain text.
- **Search non-web networks.** Web is very much controlled and polices now, but other networks are either designed to be uncontrollable and/or are so underground that no one cares to "[moderate](moderation.md)" it. These networks include for example [Tor](tor.md), [I2P](i2p.md), [Freenet](freenet.md), [gopher](gopher.md), [gemini](gemini.md), [WAP](wap.md), [FTP](ftp.md), [Usenet](usenet.md), Guifi (and other wifi networks), [torrents](torrent.md), etc. Also try to search [IRC](irc.md) chat logs and whatever.
- **Search non-web networks.** Web is very much controlled and policed now, but other networks are either designed to be uncontrollable and/or are so underground that no one cares to "[moderate](moderation.md)" it. These networks include for example [Tor](tor.md), [I2P](i2p.md), [Freenet](freenet.md), [gopher](gopher.md), [gemini](gemini.md), [WAP](wap.md), [FTP](ftp.md), [Usenet](usenet.md), Guifi (and other wifi networks), [torrents](torrent.md), etc. Also try to search [IRC](irc.md) chat logs and whatever.
- **Search ban lists ("blacklists", "blocklists", "isolation lists", ...).** A trick to finding censored material is to look for a list of the censored stuff -- [FOSS](foss.md) projects (like [Fediverse](fediverse.md)) typically have such lists publicly available as part of their "openness and collaboration".
- **Look for OSINT tools.** OSINT means "open source intelligence", basically digging out info from publicly available sources. This leads to finding amazing tools, for example there exists an AI-powered face search engine that takes a photo of a face and returns images from all over the Internet where that face appears. Works like a charm.
- **Reverse search for obscure/shady/topic related material.** Another cool trick to finding weird sites, or ones related to a very specific topic, is to look for sites that link to already known weird/banned/obscure/topic related stuff. For example searching for sites that link to [Encyclopedia Dramatica](dramatica.md) brings up a promising list of places to check out when looking for uncensored, [SJW](sjw.md)-free places. Similarly you can search for sites that use forbidden words ([nigger](nigger.md), [faggot](faggot.md), ...), images (goatse, gore, FACES of CP stars, ...), very niche terms (e.g. [bitreich](bitreich.md)), "legally problematic" stuff (leaked photos, shooter manifestos, ...) etc.
- **Search in other [languages](human_language.md).** If you're not a native English speaker, you probably know that your country's web contains some cool stuff that's missing from the English web. Due to many factors such as [cultural](culture.md) differences and different political interests (i.e. kinds of censorship and propaganda) some tidbit of trivia will only be found on non-English sites -- Russian, Spanish, Chinese and Japanese websites are a whole new world. Machine translate of the sites is often more than enough to understand the text.
- **Search archives.** The Internet Archive is the giant among archives that must always be checked, but don't forget smaller ones either, like archive.li, [Usenet](usenet.md) archives, [4chan](4chan.md) archives etc. You'll be able to find stuff that's now gone from the Internet and/or got hidden.
- **Search archives, file hosting servers etc.** The Internet Archive is the giant among archives that must always be checked, but don't forget smaller ones either, like archive.li, [Usenet](usenet.md) archives, [4chan](4chan.md) archives, various file pastebins etc. You may be able to find stuff that's now gone from the Internet and/or got hidden.
- **Guess randomly.** It can even be an entertaining pastime to play a lottery, randomly digging and seeing what you find. For example you can type random domains or IP addresses in your URL bar: `nigger.com`, `hitler.il`, `weirdporn.xyz` or whatever. One can even quite effortlessly bash together a script to automatically check millions of such domains. This has a chance of discovering something that would be otherwise unfindable because it's not linked to from anywhere on the indexed web.
- **Manually search unindexable material**. A lot of information is out there but search engines don't know about it because it's not in plaintext format or it's hiding behind a login or captcha wall or whatever. Plenty of stuff is hidden in scanned PDF books, videos, compressed archives, spoken audio etc. Hence when you're searching manually, try to go to places where search engines are less likely to get.
- **Write own tools.** Today you no longer have to possess a [PhD](phd.md) (or even brain) to write a simple web scraping script. Custom tools can take you beyond what search engines can (and are willing to) do for you -- for example search engines typically can't search for [regular expressions](regexp.md), but your own crawler can. Your own tool is 100% tailored to your needs, it can behave in exact ways you want (ignore robots.txt, use your credentials to bypass login walls, follow very specific trails, you can even use [OCR](ocr.md) to extract text from images etc.). Like said above, a simple tool is for example one that randomly checks various combinations of words and TLDs to discover curious domain names. Writing a simple crawler is also pretty easy, provided you [keep it very simple](kiss.md) -- exploit existing tools like wget or curl to download pages and extract everything that looks like URL, no need to parse [HTML](html.md) or whatever, literally treat everything as plain text. Then you can extract only documents that are somehow "[interesting](interesting.md)", for example containing specific keywords, not containing JavaScript tags etc.
@ -32,7 +34,9 @@ Techniques of netstalking include port scanning, randomly generating web domains
## See Also
- [fun](fun.md)
- [www](www.md)
- [Internet](internet.md)
- [smol internet](smol_internet.md)
- [article on neolurk](https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D1%82%D1%81%D1%82%D0%B0%D0%BB%D0%BA%D0%B8%D0%BD%D0%B3)

121
number.md
View file

@ -181,15 +181,15 @@ TODO: what is the best number? maybe top 10? would 10 be in top 10? what's the f
While mathematicians work mostly with infinite number sets and all kinds of "weird" hypothetical numbers like hyperreals and transcendentals, [programmers](programming.md) still typically deal with "normal" numbers pertaining to practical applications, and have to limit themselves to finite number sets because, of course, computers have limited memory and can only store limited number of numeric values -- computers typically work with [modulo](mod.md) arithmetic with some high power of two, e.g. 2^32 or 2^64, which is a [good enough](good_enough.md) [approximation](approximation.md) of an infinite number set. Mathematicians are as precise with numbers as possible as they're interested in structures and patterns that numbers form, programmers just want to use numbers to solve problems, so they mostly use [approximations](approximation.md) where they can -- for example programmers normally approximate [real numbers](real_number.md) with [floating point](float.md) numbers that are really just a subset of rational numbers. This isn't really a problem though, computers can comfortably work with numbers large and precise enough for solving any practical problem -- a slight annoyance is that one has to be careful about such things as [underflows](underflow.md) and [overflows](overflow.md) (i.e. a value wrapping around from lowest to highest value and vice versa), limited and sometimes non-uniform precision resulting in [error](error.md) accumulation, unlinearization of linear systems and so on. Programmers also don't care about strictly respecting some properties that certain number sets must mathematically have, for example integers along with addition are mathematically a [group](group.md), however signed integers in [two's complement](twos_complement.md) aren't a group because the lowest value doesn't have an inverse element (e.g. on 8 bits the lowest value is -128 and highest 127, the lowest value is missing its partner). Programmers also allow "special" values to be parts of their number sets, especially e.g. with the common IEEE [floating point](float.md) types we see values like plus/minus [infinity](infinity.md), [negative zero](negative_zero.md) or [NaN](nan.md) ("not a number") which also break some mathematical properties and creates situations like having a number that says it's not a number, but again this really doesn't play much of a role in practical problems. Numbers in computers are represented in [binary](binary.md) and programmers themselves often prefer to write numbers in binary, hexadecimal or octal representation -- they also often meet powers of two rather than powers of ten or primes or other similar limits (for example the data type limits are typically limited by some power of two). There also comes up the question of specific number encoding, for example direct representation, sign-magnitude, [two's complement](twos_complement.md), [endianness](byte_sex.md) and so on. Famously programmers start counting from 0 (they go as far as using the term "zeroth") while mathematicians rather tend to start at 1. Just as mathematicians have different sets of numbers, programmers have an analogy in numeric [data types](data_type.md) -- a data type defines a set of values and operations that can be performed with them. The following are some of the common data types and representations of numbers in computers:
- **numeric**: Anything considered a number. In very high level languages there may be just one generic "number" type that can store any kind of number, automatically choosing best representation for it etc.
- **[unsigned](unsigned.md)**: Don't allow negative values -- this is sufficient in many cases, simpler to implement and can offer higher range in the positive direction.
- **[signed](signed.md)**: Allow also negative values which brings up the issue of what representation to use -- nowadays the most common is [two's complement](twos_complement.md).
- **fixed size**: Most common, each number takes some fixed size in memory, expressed in [bits](bit.md) or [bytes](byte.md) -- this of course determines the maximum number of values and so for example the minimum and maximum storable number.
- **numeric**: Anything considered a number. In very high level languages there may be just one generic "number" type capable of storing any kind of number, automatically choosing the best representation behind the scenes, dynamically allocating memory as it changes size etc.
- **[unsigned](unsigned.md)**: Don't allow negative values -- this is sufficient in many situations, more straightforward to implement and can reach higher values in the positive direction.
- **[signed](signed.md)**: Permit both positive and negative values which brings up the question of what representation to choose -- for integers the most common one nowadays is [two's complement](twos_complement.md).
- **fixed size**: Most common, each number takes some fixed size in memory, expressed in [bits](bit.md) or [bytes](byte.md) -- this naturally determines the maximum number of possible values and thus also the minimum and maximum representable number. Going beyond or below the range typically results in an [overflow](overflow.md).
- **8bit**: Can store 256 value (e.g. integers from 0 to 255 or -128 to 127).
- **16bit**: Can store 65536 values.
- **32bit**: Can store 4294967296 values.
- ...
- **[arbitrary size](arbitrary_size_int.md)**: Can store arbitrarily high/low and/or precise value, take variable amount of memory depending on how much is needed, used only in very specialized cases, may be considerably slower.
- **[arbitrary size](arbitrary_size_int.md)**: Can store arbitrarily high/low and/or precise value, take variable amount of memory depending on how much is needed, used only in very specialized cases when absurdly high numbers may appear, may be considerably slower due to the overhead and lack of direct hardware support for extremely large numbers.
- **[integer](int.md)**: Integer values, most common, usually using direct or [two's complement](twos_complement.md) representation.
- **fractional**: Have higher precision than integers, allow storing fractions, are often used to [approximate](approximation.md) real numbers.
- **[fixed point](fixed_point.md)**: Are represented by a number with radix point in fixed place, have uniform precision.
@ -203,91 +203,109 @@ However some programming languages, such as [Lisp](lisp.md), sometimes treat num
## Notable Numbers
Here is a table of some numbers and "number like objects" worthy of mention, mostly relevant in math and programming but also some famous ones from [physics](physics.md) and popular [culture](culture.md) (note: the order is roughly from lower numbers to higher ones, however not all of these numbers can be compared easily or at all, so the ordering isn't strictly correct).
Here is a table of some numbers and "number like objects" worthy of mention, mostly relevant in math and programming but also some famous ones from [physics](physics.md) and popular [culture](culture.md) (note: the order is roughly from lower numbers to higher ones, however not all of these numbers can be compared easily or at all, so the ordering isn't strictly correct; notes: *&* means base 8, *b3* means base 3).
| number | value | equal to, AKA | notes |
| ----------------------------------- | -------------------- | ---------------------------------------- | ------------------------------------------------------- |
| not a number (NaN, undefined, ...) | none | 1/0, 0^0, tan(pi/2) | error value |
| minus [infinity](infinity.md) | | | not always considered a number, smallest possible value |
| |-1.797693... * 10^308 | | smallest number storable in IEEE-754 64 bit float |
| | -1.797693... * 10^308| | smallest number storable in IEEE-754 64 bit float |
| | -3.402823... * 10^38 | | smallest number storable in IEEE-754 32 bit float |
| | -9223372036854776000 | -1 * 2^64 / 2 | minimum two's complement signed 64 bit number |
| | -2147483648 | -1 * 2^32 / 2 | minimum two's complement signed 32 bit number |
| minus thirty two thousand seven ... | -32768 | -1 * 2^16 / 2 | minimum two's complement signed 16 bit number |
| minus one hundred twenty eight | -128 | -1 * 2^7 | minimum value of signed byte (two's complement) |
| minus/negative one | -1 | i^2, j^2, k^2 | |
| minus one twelfth | -0.08333... | -1/12 | by some methods the result of 1 + 2 + 3 + ... |
| "[negative zero](negative_zero.md)" | "-0" | 0 | non-mathematical, sometimes used in programming |
| [zero](zero.md) | 0 | "-0", e^(i * pi) + 1, lim x->inf 1/x | "nothing", additive identity |
| [zero](zero.md) (none, nil) | 0 | "-0", e^(i * pi) + 1, lim x->inf 1/x | "nothing", additive identity |
| epsilon | | 1 / omega | infinitesimal, "infinitely small" non-zero |
| |4.940656... * 10^-324 | | smallest pos. number storable in IEEE-754 64 bit float |
| | 4.940656... * 10^-324| | smallest pos. number storable in IEEE-754 64 bit float |
| | 1.401298... * 10^-45 | | smallest pos. number storable in IEEE-754 32 bit float |
| | 1.616255... * 10^-35 | | Planck length in meters, smallest "length" in Universe |
| one eight | 0.125 | 2^-3 | |
| one fourth | 0.25 | 2^-2 | |
| one third | 0.333333... | ...1313132 (5-adic) | |
| one half | 0.5 | 2^-1 | |
| one eight | 0.125 | 2^-3, 0b0.001, 0x0.2 | |
| one fourth | 0.25 | 2^-2, 0b0.01, 0x0.4 | |
| one third | 0.333333... | 3^-1, 0b0.0101010..., ...1313132 (5-adic)| |
| one half | 0.5 | 2^-1, 0b0.1, 0x0.8 | |
| one over square root of two | 0.707106... | 1/sqrt(2), sin(pi/4), cos(pi/4), 2^(-1/2)| |
| [one](one.md) | 1 |2^0, 0!, 0.999..., sqrt(1), I, 0b1, cos(0)| NOT a prime, unit, multiplicative identity |
| [square root](sqrt.md) of two | 1.414213... | sqrt(2), 2^(1/2), 0b1.0110101 | irrational, diagonal of unit square, important in geom. |
| supergolden ratio | 1.465571... | solve(x^3 - x^2 - 1 = 0) | similar to golden ratio, bit more difficult to compute |
|phi ([golden ratio](golden_ratio.md))| 1.618033... | (1 + sqrt(5)) / 2, solve(x^2 - x - 1 = 0)| irrational, visually pleasant ratio, divine proportion |
| square root of three | 1.732050... | sqrt(3), 3^(1/2), 0b1.1011101 | irrational |
| [two](two.md) | 2 | 2^1, 2!, 2!!, 0b000010, II, 0b10 | (only even) prime, base of [binary](binary.md) system |
| square root of pi | 1.772453... | sqrt(pi) | |
| [two](two.md) (couple, pair) | 2 | 2^1, 2!, 2!!, 0b000010, II, 0b10 | (only even) prime, base of [binary](binary.md) system |
| [silver ratio](silver_ratio.md) | 2.414213... | 1 + sqrt(2), solve(x^2 - 2 * x - 1 = 0) | similar to golden ratio |
| [e](e.md) (Euler's number) | 2.718281... | 0b10.1011011 | base of natural [logarithm](log.md) |
| [three](three.md) | 3 | 2^2 - 1, III, Ob11, 2^1.584... | prime, max. number on 2 bits, regular plane tilings |
| [pi](pi.md) | 3.141592... | 2 * asin(1), 0b11.0010010 | circle circumference to its diameter, irrational |
| [four](four.md) | 4 | 2^2, 0b000100, IV, 0b100 |first composite number, min. needed to color planar graph|
| [five](five.md) | 5 | 3^2 - 2^2, V, 0b101, fib(5) | (twin, triplet) prime, number of platonic solids, Fib. |
| [six](six.md) | 6 | 3!, 1 * 2 * 3, 1 + 2 + 3, VI, 0b110 | highly composite number, perfect number |
| [six](six.md) (half dozen) | 6 | 3!, 1 * 2 * 3, 1 + 2 + 3, VI, 0b110 | highly composite number, perfect number |
| [tau](tau.md) | 6.283185... | 2 * pi, 360 degrees | radians in full circle, defined mostly for convenience |
| [thrembo](thrembo.md) | ??? | | the hidden number |
| [seven](seven.md) | 7 | 2^3 - 1, VII, 0b111 |(twin) prime, days in week, max. unsigned n. with 3 bits |
| [eight](eight.md) | 8 | 2^3, 0b001000, VIII, 0b1000, fib(6) | base of [octal](oct.md) system, 7th Fibonacci number |
| [seven](seven.md) | 7 | 2^3 - 1, VII, &7, 0b111 |(twin) prime, days in week, max. unsigned n. with 3 bits |
| [eight](eight.md) | 8 | 2^3, 0b001000, VIII, &10, 0b1000, fib(6) | base of [octal](oct.md) system, 7th Fibonacci number |
| [nine](nine.md) | 9 | 3^3, 1^3 + 2^3, sqrt(81), IX, 0b1001 | |
| pi squared | 9.869604... | pi^2 | |
| [ten](ten.md) | 10 |10^1, 1 + 2 + 3 + 4, X, 0b1010, 2^3.321...| your IQ? :D base of our decimal system |
| eleven | 11 | XI, 0b1011 | palindromic twin prime |
| twelve, dozen | 12 | 2 * 2 * 3, XII, 0b1100 | highly composite number |
| thirteen | 13 | fib(7), XIII, 0b1101 | prime considered unlucky (in west and China), Fib. num. |
| fourteen | 14 | XIV, 0b1110 | |
| fifteen | 15 | 2^4 - 1, 0b1111, 0x0f, 1 + 2 + 3 + 4 + 5 | maximum unsigned number storable with 4 bits |
| [sixteen](sixteen.md) | 16 | 2^4, 4^2, 2^2^2, 0b010000, 0x10, XVI | base of [hexadecimal](hex.md) system |
| seventeen | 17 | 0b10001, 0x11, XVII | twin&sexy prime, binary palindrome |
| eighteen | 18 | 0b10010, 0x12, XVIII | |
| nineteen | 19 | 0b10011, 0x13, XIX | twin&sexy prime |
| twenty | 20 | 0b10100, 0x14, XX | |
| eleven | 11 | 0xb, b3(102), &13, 0b1011, XI | palindromic twin prime |
| twelve (dozen) | 12 | 2 * 2 * 3, 0xc, 0b1100, XII | highly composite number |
| thirteen (long or devil's dozen) | 13 | fib(7), 0xd, 0b1101, XIII | prime considered unlucky (in west and China), Fib. num. |
| fourteen | 14 | &112, 0b1110, 0xe, XIV | |
| fifteen | 15 | 2^4 - 1, 0b1111, 0xf, 1 + 2 + 3 + 4 + 5 | maximum unsigned number storable with 4 bits |
| [sixteen](sixteen.md) | 16 | 2^4, 4^2, 2^2^2, 0b010000, &20, 0x10, XVI| base of [hexadecimal](hex.md) system |
| seventeen | 17 | 0b10001, &21, 0x11, XVII | twin&sexy prime, binary palindrome |
| eighteen | 18 | 0b10010, &22, 0x12, XVIII | |
| nineteen | 19 | 0b10011, &23, 0x13, XIX | twin&sexy prime |
| twenty | 20 | 0b10100, &24, 0x14, XX | |
| twenty one | 21 | 0b10101, 0x15, BB(3), fib(8), 0x15, XXI | maximum number of 1s produced by 3 state Turing Machine |
| twenty four | 24 | 2 * 2 * 2 * 3, 4!, XXIV |highly composite number, possible ways to order 4 objects|
| twenty five | 25 | 5^2, sqrt(625), XXV | |
| thirty one | 31 | 2^5 - 1, 0b11111, 0x1f, XXXI |max. unsigned number storable with 5 bits, Mersenne prime|
| [thirty two](thirty_two.md) | 32 | 2^5, 0b100000, 0x20, XXXII | number of possible values storable with 5 bits |
| twenty three | 23 | 0b10111, &27, 0x17, | sexy prime |
| twenty four | 24 | 2 * 2 * 2 * 3, 4!, 0x18, XXIV |highly composite number, possible ways to order 4 objects|
| twenty five | 25 | 5^2, sqrt(625), 0x19, XXV | |
| twenty seven | 27 | 3^3, 0b11011, 0x1b, &33, 0x1b, XXVII | palindrome in base 2 and 8 |
| twenty nine | 29 | 0b11101, &1002, 0x1d, XXIX | twin&sexy prime |
| thirty one | 31 | 2^5 - 1, 0b11111, &37, 0x1f, XXXI |max. unsigned number storable with 5 bits, Mersenne prime|
| [thirty two](thirty_two.md) | 32 | 2^5, 0b100000, &40, 0x20, XXXII | number of possible values storable with 5 bits |
| thirty three | 33 | 1! + 2! + 3! + 4!, XXXIII | |
| thirty four | 34 | fib(9), 0x22, XXXIV | Fibonacci number |
| thirty six | 36 | 2 * 2 * 3 * 3, XXXVI | highly composite number |
| thirty seven | 37 | 0b100101, 0x25, XXXVII | most commonly picked 1 to 100 "random", permutable prime|
| forty one | 41 | 0b101001, 0x29, XLI | twin&sexy prime |
| [forty two](42.md) | 42 | XLII | cringe number, answer to some stuff, unlucky in Japan |
| forty three | 43 | 0b101011, 0x2b, XLIII | twin&sexy prime |
| forty seven | 47 | 0b101111, 0x2f, XLVII | sexy prime |
| forty eight | 48 |2^5 + 2^4, 2 * 2 * 2 * 2 * 3, XLVIII, 0x30| highly composite number |
| forty nine | 49 | 7^2 | |
| fifty | 50 | L | |
| fifty three | 53 | 0b110101, 0x35, LIII | sexy prime |
| fifty five | 55 | fib(10), 1 + 2 + ... + 10, LV | sum of numbers up to 10, 11th Fibonacci number |
| fifty nine | 59 | 0b111011, 0x3b, LIX | twin&sexy prime |
| sixty | 60 | 0x3c, LX | highly composite number, used in time measuring |
| sixty three | 63 | 2^6 - 1, LXIII | maximum unsigned number storable with 6 bits |
| [sixty four](sixty_four.md) | 64 | 2^6, LXIV, 0x40 | number of squares on a chess board |
| [sixty nine](69.md) | 69 | LXIX | sexual position |
| sixty one | 61 | 0x3d, LXI | twin&sexy prime |
| sixty three | 63 | 2^6 - 1, 0b111111, &77, 0x3f, LXIII | maximum unsigned number storable with 6 bits |
| [sixty four](sixty_four.md) | 64 | 2^6, 0b1000000, &100, 0x40, LXIV | number of squares on a chess board |
| sixty seven | 67 | 0x43, LXVII | sexy prime |
| [sixty nine](69.md) | 69 | 0x45, LXIX | sexual position |
| seventy one | 71 | 0x47, LXXI | twin prime |
| seventy three | 73 | 0b1001001, 0x49, LXXIII | twin&sexy prime, binary palindrome |
| seventy nine | 79 | 0x4f, LXXIX | sexy prime |
| eighty one | 81 | 3^4, 9*9, XXCI | |
| eighty nine | 89 | fib(11), 0x59, LXXXIX | Fibonacci number |
| eighty three | 83 | LXXXIII | sexy prime |
| eighty nine | 89 | fib(11), 0x59, LXXXIX | Fibonacci number, sexy prime |
| ninety six | 96 | 2^5 + 2^6, 5! - 4!, 0x60 | alternative sexual position |
| ninety seven | 97 | XCVII | sexy prime |
| one hundred | 100 | 10^2, 0x64, C, 2^6.643... | |
| one hundred seven | 107 | BB(4), CVII | maximum number of 1s produced by 4 state Turing machine |
| one hundred twenty | 120 | 5!, C(10,3), CXX | possible ways to order 5 objects, highly composite |
| one hundred twenty one | 121 | 11^2, CXXI | [palindromic](palindrome.md) |
| one hundred twenty five | 125 | 5^3, CXXV | |
| one hundred twenty seven | 127 | 2^7 - 1, 0x7f, 0b01111111, CXXVII | maximum value of signed byte, Mersenne prime |
| one hundred twenty eight | 128 | 2^7, 0x80, CXXVIII, 10^2.107... | |
| one hundred forty four | 144 | 12^2, fib(12), CXLIV | 13th Fibonacci number |
| one hundred twenty seven | 127 | 2^7 - 1, 0b01111111, &177, 0x7f, CXXVII | maximum value of signed byte, Mersenne prime |
| one hundred twenty eight | 128 | 2^7, 0x80, &200, CXXVIII, 10^2.107... | number of values storable with 7 bits |
| one hundred forty four (gross) | 144 | 12^2, fib(12), CXLIV | 13th Fibonacci number, 12 dozen |
| one hundred sixty eight | 168 | 24 * 7, CLXVIII | hours in week |
| two hundred forty three | 243 | 3^5, 0xf3, CCXLIII | |
| two hundred fifty five | 255 | 2^8 - 1, 0xff, 0b11111111, CCLV |maximum value of unsigned [byte](byte.md), hex palindrome|
| two hundred fifty five | 255 | 2^8 - 1, 0b11111111, &377, 0xff, CCLV |maximum value of unsigned [byte](byte.md), hex palindrome|
| two hundred fifty six | 256 | 2^8, 4^4, 16^2, 0x100, ((2^2)^2)^2, CCLVI| number of values that can be stored in one byte |
| three hundred forty three | 343 | 7^3, CCCXLIII | palindrome |
| three hundred sixty | 360 | 2 * 2 * 2 * 3 * 3 * 5, CCCLX | highly composite number, degrees in full circle |
@ -299,21 +317,22 @@ Here is a table of some numbers and "number like objects" worthy of mention, mos
| six hundred and sixty six | 666 | 0x29a, DCLXVI | number of the beast, palindromic |
| seven hundred twenty | 720 | 6!, 3!!, DCCXX | possible ways to order 6 objects, highly composite |
| seven hundred twenty nine | 729 | 3^6, (3^2)^3, DCCXXIX | |
| one thousand | 1000 | 10^3, M, 0x3e8, 2^9.965... | |
| one thousand twenty three | 1023 | 2^10 - 1, 0x3ff, MXXIII | largest number storable with 10 bits |
| one thousand twenty four | 1024 | 2^10, 4^5, 0x400, MXXIV, 10^3.010... | number of values storable with 10 bits |
| one thousand (grand) | 1000 | 10^3, M, 0x3e8, 2^9.965... | |
| one thousand twenty three | 1023 | 2^10 - 1, &1777, 0x3ff, MXXIII | largest number storable with 10 bits |
| one thousand twenty four | 1024 |2^10, 4^5, &2000, 0x400, MXXIV, 10^3.01...| number of values storable with 10 bits |
| one thousand six hundred eighty | 1680 | 0x690, MDCLXXX | highly composite, often used as horizontal resolution |
| two thousand forty eight | 2048 | 2^11, 0x800, MMXLVIII | number of values storable with 11 bits |
|two thousand one hundred eighty seven| 2187 | 3^7, 0x88b, MMCLXXXVII | |
| two thousand four hundred one | 2401 | 7^4, MMCDI | |
| three thousand one hundred ... | 3125 | 5^5, MMMCXXV | |
| three thousand nine hundred ... | 3999 | MMMCMXCIX | largest number that can be written with Roman numerals |
| four thousand ninety six | 4096 | 2^12, 2^(3^4), 0x1000 | number of values storable with 12 bits |
| four thousand ninety five | 4095 | 2^12 - 1, &7777, 0xfff | maximum unsigned integer storable with 12 bits |
| four thousand ninety six | 4096 | 2^12, 2^(3^4), &10000, 0x1000 | number of values storable with 12 bits |
| five thousand forty | 5040 | 7!, 1 * 2 * ... * 7 | possible ways to order 7 objects |
| five thousand fifty | 5050 | 1 + 2 + ... + 100 | sum of numbers up to 100 |
| six thousand five hundred sixty one | 6561 | 3^8, 3^(2^3) | |
|six thousand seven hundred sixty five| 6765 | fib(20), 0x1a6d | Fibonacci number |
| ten thousand | 10000 | 10^4, 100^2, 2^13.287... | |
| ten thousand (myriad) | 10000 | 10^4, 100^2, 2^13.287... | |
| fifteen thousand six hundred ... | 15625 | 5^6, 0x3d09 | |
| sixteen thousand eight hundred ... | 16807 | 7^5, 0x41a7 | |
| nineteen thousand six hundred ... | 19683 | 3^9, 3^(3^3), 0x4ce3 | |
@ -321,8 +340,8 @@ Here is a table of some numbers and "number like objects" worthy of mention, mos
| forty thousand three hundred twenty | 40320 | 8!, 1 * 2 * ... * 8, 0x9d80 | possible ways to order 8 objects |
| ... (enough lol) | 59049 | 3^10, 0xe6a9 | |
| | 65504 | | largest number storable in IEEE-754 16 bit float |
| | 65535 | 2^16 - 1, 0xffff | maximum unsigned number storable with 16 bits |
| | 65536 | 2^16, 256^2, 0x10000, 2^(2^(2^2)) | number of values storable with 16 bits |
| | 65535 | 2^16 - 1, &177777, 0xffff | maximum unsigned number storable with 16 bits |
| | 65536 |2^16, 256^2, &200000, 0x10000, 2^(2^(2^2))| number of values storable with 16 bits |
| | 72078 | | number of possible chess positions after 4 half moves |
| | 80085 | | looks like BOOBS |
| | 86400 | 60 * 60 * 24 | seconds in a day |
@ -332,13 +351,15 @@ Here is a table of some numbers and "number like objects" worthy of mention, mos
| one [million](million.md) | 1000000 | 10^6, 0xf4240, 2^19.931... | |
| | 3197281 | | number of possible chess games after 4 half moves |
| | 3628800 | 10!, 1 * 2 * ... * 10 | possible ways to order 10 objects |
| | 16777216 | 2^24, 16^6, 0xffffff | number of distinct 24 bit values (e.g. RGB24 colors) |
| | 16777216 | 2^24, 16^6, 0xffffff | number of distinct 24 bit values, no. of RGB24 colors |
| | 16777217 | 2^24 + 1, 0x1000000 | min. pos. int. unstorable in 32b float (prec. falls < 1)|
| | 43046721 | 3^16 | |
| | 47176870 | BB(5) | maximum number of 1s produced by 5 state Turing machine |
| | 31556926 | | seconds in a year |
| | 39916800 | 11!, 1 * 2 * ... * 11 | possible ways to order 11 objects |
| | 479001600 | 12!, 1 * 2 * ... * 12 | possible ways to order 12 objects |
| one [billion](billion.md) | 1000000000 | 10^9, milliard, 0x3b9aca00, 2^29.897... | |
| | 9876543210 | 0x4cb016ea | all decimal digits from highest to lowest |
| | 2147483647 | 2^32 / 2 - 1 | maximum two's complement signed 32 bit number |
| | 3735928559 | 0xdeadbeef | one of famous hexadeciaml constants, spells out DEADBEEF|
| | 4294967295 | 2^32 - 1, 0xffffffff | maximum unsigned number storable with 32 bits |
@ -354,13 +375,15 @@ Here is a table of some numbers and "number like objects" worthy of mention, mos
| bazillion | ??? | | used to just express a very large value |
| quadrillion | 1000000000000000 | 10^15 | |
| | 6402373705728000 | 18! | possible ways to order 18 objects |
| | 9007199254740992 | | precision of IEEE double falls below 1 after this num. |
| | 121645100408832000 | 19! | possible ways to order 19 objects |
| quintillion | 1000000000000000000 | 10^18 | |
| | 2432902008176640000 | 20! | possible ways to order 20 objects |
| | 9223372036854776000 | 2^64 / 2 - 1 | maximum two's complement signed 64 bit number |
| | 43252003274489856000 | | number of possible Rubik's cube configurations |
| | 18364758544493064000 | 0xfedcba9876543210 | all hexadecimal digits from highest to lowest |
| | 18446744073709551615 | 2^64 - 1, 0xffffffffffffffff | maximum unsigned number storable with 64 bits |
| | 18446744073709551616 | 2^64 | number of values storable with 64 bits |
| | 43252003274489856000 | | number of possible Rubik's cube configurations |
| |2015099950053364471960| | number of possible chess games after 15 half moves |
| |6670903752021072936960| | possible valid filled [sudoku](sudoku.md) grids |
| | 1.267650... * 10^30 | 2^100 | number of values storable with 100 bits |
@ -389,7 +412,9 @@ Here is a table of some numbers and "number like objects" worthy of mention, mos
## See Also
- [real number](real_number.md)
- [pseudonumber](pseudonumber.md)
- [not a number](nan.md)
- [illegal number](illegal_number.md)
- [offensive number](offensive_number.md)
- [binary numbers](binary.md)

2
pi.md
View file

@ -14,7 +14,7 @@ Pi to 100 binary fractional digits is:
11.001001000011111101101010100010001000010110100011000010001101001100010011000110011000101000101110000...
Among the first 50 billion digits the most common one is 8, then 4, 2, 7, 0, 5, 9, 1, 6 and 3.
Among the first 50 billion digits the most common one is 8, then 4, 2, 7, 0, 5, 9, 1, 6 and 3. Pi squared equals approximately 9.8696044010, the [square root](sqrt.md) of pi is approximately 1.7724538509.
Some weirdos memorize digits of pi for [fun](fun.md) and competition, the official [world](earth.md) record as of 2022 is 70030 memorized digits, however Akira Haraguchi allegedly holds an unofficial record of 100000 digits (made in 2006). Some people make [mnemonics](mnemonic.md) for remembering the digits of pi (this is known as *PiPhilology*), for example *"Now I fuck a pussy screaming in orgasm"* is a sentence that helps remember the first 8 digits (number of letters in each word encodes the digit).

View file

@ -18,7 +18,7 @@ The unique factorization can also nicely be used to encode [multisets](multiset.
When in 1974 the Arecibo radio message was sent to space to carry a message for [aliens](alien.md), the resolution of the bitmap image it carried was chosen to be 73 x 23 pixels -- two primes. This was cleverly done so that when aliens receive the 1679 sequential values, there are only two possible ways to interpret them as a 2D bitmap image: 23 x 73 (incorrect) and 73 x 23 (correct). This increased the probability of correct interpretation against the case of sending an arbitrary resolution image.
**There are infinitely many prime numbers**. The proof is quite elementary (shown below), however it's pretty fascinating that it has still not been proven whether there are infinitely many **[twin primes](twin_prime.md) (primes that differ by 2)**, which, despite its similarity to the former problem, shows to be an incomparably more difficult question to answer. The concept of twin primes can be extended to prime triplets (3 primes having a gap of 2 and 4, in either order), prime cousins (primes spaced by 4), sexy primes (primes spaced by 6) and eventually generalized to so called prime *k-tuples*: tuples describing prime patterns with offsets, e.g. [0, 2, 6] specifies one possible form of a prime triplet etc. Another simple but unproven conjecture related to prime numbers is [Goldbach's conjecture](goldbachs_conjecture.md) stating that every even number greater than 2 can be written as a sum of two primes.
**There are infinitely many prime numbers**. The proof is quite elementary (shown below), however it's pretty fascinating that it has still not been proven whether there are infinitely many **[twin primes](twin_prime.md) (primes that differ by 2)**, which, despite its similarity to the original problem, shows to be an incomparably more difficult question to answer. The notion of "twin prime" can be extended to prime triplets (3 primes with gaps 2 and 4, in either order), prime cousins (primes spaced by 4), sexy primes (primes spaced by 6) and eventually generalized to so called prime *k-tuples*: tuples describing prime patterns with offsets, e.g. [0, 2, 6] specifies one possible form of a prime triplet etc. -- you may even hear the term *prime constellation* (it's almost as if prime numbers are like stars in the sky, together forming certain shapes). Another simple but unproven conjecture related to prime numbers is [Goldbach's conjecture](goldbachs_conjecture.md) stating that every even number greater than 2 can be written as a sum of two primes.
Euklid's [proof](proof.md) shows there are infinitely many primes, it is conducted by contradiction and goes as follows: suppose there are finitely many primes *p1*, *p2*, ... *pn*. Now let's consider a number *s* = *p1* * *p2* * ... * *pn* + 1. This means *s* - 1 is divisible by each prime *p1*, *p2*, ... *pn*, but *s* itself is not divisible by any of them (as it is just 1 greater than *s* and multiples of some number *q* greater than 1 have to be spaced by *q*, i.e. more than 1). If *s* isn't divisible by any of the considered primes, it itself has to be a prime. However that is in contradiction with the original assumption that *p1*, *p2*, ... *pn* are all existing primes. Therefore a finite list of primes cannot exist, there have to be infinitely many of them.

View file

@ -70,13 +70,11 @@ Besides the standard library there will also exist many third party [libraries](
## History
Programmability of the earliest computers was very limited, they were machines with hard-wired functionality and reprogramming them meant physically altering the circuitry -- even much later many of the simpler "computers", such as hand held electronic games, weren't running on any programmable [CPU](cpu.md) or chips of similar nature, but were rather a hand-designed electronic circuit "programmed" by the engineer who manually placed all the resistors and capacitors. However, theoretically, the idea of a programming language had been around for a long time -- in 18th century Basile Bouchon created a system for "programming" looms with what were essentially punch cards, in 19th century [Charles Babbage](babbage.md) designed mechanical computers that in principle very closely resembled today's computers and in the first half of the 20th century the universal [Turing machine](turing_machine.md) provided a theoretical framework for a fully programmable [digital](digital.md) computer even before there were any "real" computers to speak of. It was more of a question of technological [progress](progress.md) to make this a reality.
Along with cheaper and more abundant [transistors](transistor.md) finally came computers programmable with what we might call a "language" -- the first ones were programmed directly in [machine code](machine_code.md), there weren't even any assemblers and assembly languages around, programming involved tasks such as searching for opcodes in computer manuals, hand-encoding data and getting it all onto punch cards -- in better cases it was possible to use some primitive interface such as a "front panel" to program the computer. These kinds of machine languages that were used back then are now called **first generation languages**.
Programmability of the earliest computers was very limited, they were machines with hard-wired functionality and reprogramming them meant physically altering the circuitry or even gears they were made of -- even much later many of the simpler "computers", such as hand held electronic games, weren't running on any programmable [CPU](cpu.md) or chips of similar nature, but were rather a hand-designed electronic circuit "programmed" by the engineer who manually placed all the resistors and capacitors. However, theoretically, the idea of a programming language had been around for a long time -- in 18th century Basile Bouchon created a system for "programming" looms with what were essentially punch cards and in the first half of the 20th century the universal [Turing machine](turing_machine.md) provided a theoretical framework for a fully programmable [digital](digital.md) computer that interpreted a kind of language stored on its memory tape, even before there were any "real" computers to speak of. A big step forward came in 1945 with [John Vom Neumann's](von_neumann.md) description of what's now called the *Von Neumann architecture*, a computer architecture model that relied on relatively simple hardware (the [CPU](cpu.md)) interpreting program stored as numeric instructions in the computer memory (so called *stored program*). One of the first such computers was [EDSAC](edsac.md), made in 1949. This [paradigm](paradigm.md) showed to be crucial for allowing quick and easy modification of programs and thus for more [progress](progress.md) in computing -- this shifted focus from designing individual computers to creating effective, generally usable instructions sets and machine code. Together with more and more abundant [transistors](transistor.md) finally came computers programmable with what we might call a "language" -- the first ones were programmed directly in [machine code](machine_code.md) (the numeric instructions), there weren't even any assemblers and assembly languages around, programming involved tasks such as searching for opcodes in computer manuals, hand-encoding data and getting it all onto punch cards -- in better cases it was possible to use some primitive interface such as a "front panel" to program the computer. These kinds of machine languages that were used back then are now called **first generation languages**.
The **first higher level programming language** was probably Plankalkul made by Konrad Zuse some time shortly after 1942, though it didn't run on any computer, it was only in stage of specification -- implementation of it would only be made much later, in 1975. It was quite advanced -- it had [functions](function.md), arrays, exceptions and some advanced data structures, though it for example didn't support [recursive](recursion.md) calls. It was important as it planted the seed of an idea of an abstract, higher level, machine independent language.
The **first [assembly](assembly.md) language** was created by Maurice Wilkes and his team for the [EDSAC](edsac.md) computer released in 1949. It used single letters for instructions. Assembly languages are called **second generation languages**, they further facilitate programming, though still at very low level. These were things we now take for granted: programmers for example became able to type programs as text (instead of numbers), instructions we given human friendlier names and assemblers automated some simple but tedious tasks, but it still remained rather time consuming to write in assembly and programs were still machine specific, non-portable.
The **first [assembly](assembly.md) language** was created by Maurice Wilkes and his team for the mentioned [EDSAC](edsac.md) computer released in 1949. It used single letters for instructions. Assembly languages are called **second generation languages**, they further facilitate programming, though still at very low level. These were things we now take for granted: programmers for example became able to type programs as text (instead of numbers), instructions we given human friendlier names and assemblers automated some simple but tedious tasks, but it still remained rather time consuming to write in assembly and programs were still machine specific, non-portable.
Only the **third generation languages** made the step of adding significant [abstraction](abstraction.md) to achieve a level of comfortable development and portability -- programmers would be able to e.g. write algebraic expressions that would be automatically translated to specific instructions by the language compiler; it would be enough to write the program once and then automatically compile it for different CPUs, without the need to rewrite it. **[Fortran](fortran.md)** is considered to be first such language, made in 1957 by [IBM](ibm.md). Fortran would develop and change throughout the years, it was standardized and added more "features", it became quite popular and is still used even nowadays, it is known for being very fast. In 1958 John McCarthy started to develop **[Lisp](lisp.md)**, a highly elegant, high level language that would spawn many derivatives and remains very popular even nowadays.
@ -119,6 +117,7 @@ Here is a table of notable programming languages in chronological order (keep in
| [Fortran](fortran.md) | **kind of** | 1957 | 1.95 (G)| 7.15 (G) | | | 300, proprietary (ISO) | similar to Pascal, compiled, fast, was used by scientists a lot |
| [Lisp](lisp.md)(s) | **yes** | 1958 | 3.29 (G)| 18 (G) | 100 (judg. by jmc lisp) | 35 | 40 (r3rs) | elegant, KISS, functional, many variants (Common Lisp, Scheme, ...) |
| [Basic](basic.md) | kind of? | 1964 | | | | | | mean both for beginners and professionals, probably efficient |
| [Cobol](cobol.md) | prolly not much | 1959 | | | | | | some kind of weird "business oriented" language, looks like shit |
| [Forth](forth.md) | **YES** | 1970 | | | 100 (judg. by milliforth)| 77 | 200 (ANS Forth) | [stack](stack.md)-based, elegant, very KISS, interpreted and compiled |
| [Pascal](pascal.md) | **kind of** | 1970 | 5.26 (G)| 2.11 (G) | | 59 | 80, proprietary (ISO) | like "educational C", compiled, not so bad actually |
| **[C](c.md)** | **kind of** | 1972 | 1.0 | 1.0 | 10K? (judg. by chibicc) | 49 | 160, proprietary (ISO) | compiled, fastest, efficient, established, suckless, low-level, #1 lang.|

File diff suppressed because it is too large Load diff

32
sin.md
View file

@ -48,17 +48,29 @@ Some additional facts and properties regarding the sine functions are:
- Sine and [cosine](cos.md) functions are used to draw [circles](circle.md). If you plot points with *x* coordinate equal to *sin(t)* and *y* coordinate equal to *cos(t)* for *t* going from 0 to *2 * pi*, you'll get a unit circle.
- *sin(x)^2 + cos(x)^2 = 1*
Some values of the sine function are:
Some values of the sine (and cosine) function are:
| x (rad) | x (deg) | sin(x) |
|----------|----------|--------------------|
| 0 | 0 | 0 |
| pi / 12 | 15 | ~0.259 |
| pi / 6 | 30 | 0.5 |
| pi / 4 | 45 | sqrt(2)/2 ~= 0.707 |
| pi / 3 | 60 | sqrt(3)/2 ~= 0.866 |
| pi / 2 | 90 | 1 |
| 2 pi | 360 | 0 |
| x (rad) | x (deg) | sin(x) | cos(x) |
|-----------|----------|--------------------|----------------------|
| -2 * pi | -360 | 0 | 1 |
| -pi * 3/2 | -270 | 1 | 0 |
| -pi | -180 | 0 | -1 |
| -pi / 2 | -90 | -1 | 0 |
| 0 | 0 | 0 | 1 |
| pi / 12 | 15 | ~0.258 | ~0.965 |
| pi / 6 | 30 | 0.5 | sqrt(3)/2 ~= 0.866 |
| pi / 4 | 45 | 1/sqrt(2) ~= 0.707 | 1/sqrt(2) ~= 0.707 |
| pi / 3 | 60 | sqrt(3)/2 ~= 0.866 | 0.5 |
| pi * 5/12 | 75 | ~0.965 | ~0.258 |
| pi / 2 | 90 | 1 | 0 |
| pi * 7/12 | 105 | ~0.965 | ~-0.258 |
| pi * 2/3 | 120 | sqrt(3)/2 ~= 0.866 | -0.5 |
| pi * 3/4 | 135 | 1/sqrt(2) ~= 0.707 | -1/sqrt(2) ~= -0.707 |
| pi * 5/6 | 150 | 0.5 | -sqrt(3)/2 ~= -0.866 |
| pi * 11/12| 165 | ~0.258 | ~-0.965 |
| pi | 180 | 0 | -1 |
| pi * 3/2 | 270 | -1 | 0 |
| 2 * pi | 360 | 0 | 1 |
## Programming

File diff suppressed because one or more lines are too long

View file

@ -3,12 +3,12 @@
This is an autogenerated article holding stats about this wiki.
- number of articles: 638
- number of commits: 1013
- total size of all texts in bytes: 5414718
- total number of lines of article texts: 39117
- number of commits: 1014
- total size of all texts in bytes: 5428552
- total number of lines of article texts: 39165
- number of script lines: 324
- occurrences of the word "person": 10
- occurrences of the word "nigger": 139
- occurrences of the word "nigger": 141
longest articles:
@ -35,52 +35,52 @@ longest articles:
top 50 5+ letter words:
- which (2937)
- there (2307)
- people (2203)
- example (1877)
- other (1672)
- about (1502)
- number (1404)
- software (1315)
- because (1231)
- their (1158)
- would (1115)
- something (1112)
- which (2938)
- there (2312)
- people (2205)
- example (1888)
- other (1679)
- about (1504)
- number (1414)
- software (1316)
- because (1233)
- their (1162)
- would (1117)
- something (1114)
- being (1093)
- program (1078)
- language (1018)
- called (990)
- called (991)
- things (948)
- without (914)
- simple (889)
- function (881)
- without (915)
- simple (893)
- function (882)
- computer (863)
- numbers (856)
- different (832)
- these (803)
- different (836)
- these (806)
- programming (803)
- however (799)
- world (795)
- should (774)
- however (800)
- world (798)
- should (776)
- system (771)
- still (756)
- still (757)
- doesn (746)
- games (728)
- possible (712)
- games (729)
- possible (713)
- drummyfish (703)
- point (698)
- always (692)
- always (694)
- while (691)
- society (690)
- probably (678)
- probably (681)
- simply (673)
- using (659)
- https (642)
- using (660)
- https (648)
- course (635)
- similar (625)
- actually (622)
- someone (613)
- actually (623)
- someone (616)
- value (601)
- first (601)
- though (595)
@ -89,6 +89,20 @@ top 50 5+ letter words:
latest changes:
```
Date: Wed Apr 30 23:50:45 2025 +0200
beauty.md
chess.md
low_poly.md
lrs_dictionary.md
main.md
netstalking.md
number.md
prime.md
random_page.md
smol_internet.md
wiki_pages.md
wiki_stats.md
www.md
Date: Wed Apr 30 00:58:00 2025 +0200
exercises.md
less_retarded_society.md
@ -108,23 +122,6 @@ Date: Sun Apr 27 03:32:20 2025 +0200
capitalism.md
color.md
exercises.md
furry.md
interesting.md
interpolation.md
lrs_dictionary.md
main.md
morality.md
often_confused.md
random_page.md
reactionary_software.md
rgb332.md
rgb565.md
sorting.md
stereotype.md
wiki_pages.md
wiki_stats.md
wikidata.md
woman.md
```
most wanted pages:
@ -144,11 +141,11 @@ most wanted pages:
- [drm](drm.md) (10)
- [sdl](sdl.md) (9)
- [jew](jew.md) (9)
- [irc](irc.md) (9)
- [good](good.md) (9)
- [brute_force](brute_force.md) (9)
- [syntax](syntax.md) (8)
- [rape](rape.md) (8)
- [pointer](pointer.md) (8)
most popular and lonely pages:
@ -156,18 +153,18 @@ most popular and lonely pages:
- [capitalism](capitalism.md) (320)
- [c](c.md) (248)
- [bloat](bloat.md) (247)
- [free_software](free_software.md) (206)
- [free_software](free_software.md) (207)
- [game](game.md) (163)
- [suckless](suckless.md) (152)
- [proprietary](proprietary.md) (141)
- [modern](modern.md) (132)
- [computer](computer.md) (130)
- [minimalism](minimalism.md) (129)
- [censorship](censorship.md) (124)
- [kiss](kiss.md) (122)
- [censorship](censorship.md) (126)
- [kiss](kiss.md) (123)
- [programming](programming.md) (118)
- [math](math.md) (118)
- [shit](shit.md) (116)
- [shit](shit.md) (117)
- [fun](fun.md) (116)
- [woman](woman.md) (113)
- [gnu](gnu.md) (108)
@ -177,10 +174,10 @@ most popular and lonely pages:
- [corporation](corporation.md) (103)
- [bullshit](bullshit.md) (103)
- [fight_culture](fight_culture.md) (100)
- [hacking](hacking.md) (96)
- [hacking](hacking.md) (97)
- [internet](internet.md) (95)
- [work](work.md) (93)
- [less_retarded_society](less_retarded_society.md) (93)
- [internet](internet.md) (93)
- [programming_language](programming_language.md) (92)
- ...
- [friend_detox](friend_detox.md) (5)

View file

@ -94,6 +94,8 @@ Should you be so unlucky to [find no way](great_trap.md) of out of slavery, don'
- **some kinda work in churches**: Like helping with maintenance, cleaning, gardening, whatever. Hopefully priests won't be such asshole employers like corporate suits.
- **public library?**: May be comfy for bookworms, but also stressful at times (dealing with people and computers).
- **simple manual jobs**: E.g. helping out at some small farm, construction (for those who want to work out), handicraft, moving furniture, ...
- **shepherd**: You might be able to get hired to live in the wild with a herd of sheep, just look after them and protect them from wolves.
- **some kind of very specific old timey service**: In very specific places, probably far away from civilization and/or in some less developed country, it might be possible to do something like in old times, for example be a ferryman, or be the guy who carries supplies to restaurants in the mountains (this profession actually exists).
- ...
**What to avoid**: mainly work for [corporations](corporation.md), office jobs, jobs in big cities, working with people and [computers](computer.md), anything with responsibility and high salary, shitty, unhealthy and dangerous environments such as factories, unethical shit (supporting [copyright](copyright.md), [capitalism](capitalism.md), [consumerism](consumerism.md), ...).
@ -102,4 +104,4 @@ Should you be so unlucky to [find no way](great_trap.md) of out of slavery, don'
- [antiwork](antiwork.md)
- [NEET](neet.md)
- [making living](living.md)
- [making living](living.md)