master
Miloslav Ciz 1 year ago
parent 616f5729ec
commit 365d04122d

@ -1,8 +1,8 @@
# Beauty
Beauty is the quality of being extremely appealing and pleasing. In [technology](technology.md), [engineering](engineering.md), [mathematics](math.md) and other [science](science.md) beauty is, despite it's relative vagueness and subjectivity, an important aspect of design, and in fact this "mathematical beauty" has lots of times some clearly defined shapes -- for example [simplicity](kiss.md) is mostly considered beautiful.
Beauty is the quality of being extremely appealing and pleasing. In [technology](technology.md), [engineering](engineering.md), [mathematics](math.md) and other [science](science.md) beauty is, despite it's relative vagueness and subjectivity, an important aspect of design, and in fact this "mathematical beauty" has lots of times some clearly defined shapes -- for example [simplicity](kiss.md) is mostly considered beautiful. Beauty is similar to and many times synonymous with [elegance](elegance.md).
Beauty can perhaps be seen as a [heuristic](heuristic.md), a touch of intuition that guides the expert in exploration of previously unknown fields, as we have come to learn that the greatest discoveries tend to be very beautiful. Indeed, beginners and [noobs](noob.md) are mostly concerned with learning hard facts, learning standards and getting familiar with already known ways of solving known problems, they often aren't able to recognize what's beautiful and what's ugly. But as one gets more and more experienced and find himself near the borders of current knowledge, there is suddenly no guidance but intuition, beauty, to suggest ways forward, and here one starts to get the feel for beauty. At this point the field, even if highly exact and rigorous, has become an [art](art.md).
Beauty can perhaps be seen as a [heuristic](heuristic.md), a touch of intuition that guides the expert in exploration of previously unknown fields, as we have come to learn that the greatest discoveries tend to be very beautiful (however there is also an opposite side: some people, such as Sabine Hossenfelder, criticize e.g. the pursuit of beautiful theories in modern physics as this approach seems to be have led to stagnation). Indeed, beginners and [noobs](noob.md) are mostly concerned with learning hard facts, learning standards and getting familiar with already known ways of solving known problems, they often aren't able to recognize what's beautiful and what's ugly. But as one gets more and more experienced and finds himself near the borders of current knowledge, there is suddenly no guidance but intuition, beauty, to suggest ways forward, and here one starts to get the feel for beauty. At this point the field, even if highly exact and rigorous, has become an [art](art.md).
What is beautiful then? As stated, there is a lot of subjectivity, but generally the following attributes are correlated with beauty:
@ -19,4 +19,4 @@ Examples of beautiful things include:
- **Euler's identity**, an equation often cited as the most beautiful in mathematics: *e^{i*pi} + 1 = 0*. It is simple and contains many of the most important numbers: *e*, *pi*, *i* 1 and 0.
- **[minimalist software](suckless.md)**, **[Unix philosophy](unix_philosophy.md)**
- [fractals](fractal.md) TODO
- [bytebeat](bytebeat.md)
- [bytebeat](bytebeat.md)

@ -23,7 +23,7 @@ But how do we know which one is the "official" blockchain? Can't just people sta
Can't people just forge transactions, e.g. by sending out a record that says someone else sent them money? This can be easily prevented by [digitally signing](digital_signature.md) the transactions, i.e. if there is e.g. a transaction "A sends 1 coint to B", it has to be signed by A to confirm that A really intended to send the money. But can't someone just copy-paste someone else's already signed transactions and try to perform them multiple times? This can also be prevented by e.g. numbering the transactions, i.e. recording something like "A sent 1 coin to B as his 1st transaction".
But where are the coins of a person actually stored? They're not explicitly stored anywhere; the amount of coins any participant has is deduced from the list of transactions, i.e. if it is known someone joined the network with 0 coins and there is a record of someone else sending him 1 coin, it is clear he now has 1 coin. For end users there are so called **wallets** which to them appear to store their coins, but a wallet is in fact just the set of cryptographic keys needed to perform transactions.
But where are one's coins actually stored? They're not explicitly stored anywhere; the amount of coins any participant has is deduced from the list of transactions, i.e. if it is known someone joined the network with 0 coins and there is a record of someone else sending him 1 coin, it is clear he now has 1 coin. For end users there are so called **wallets** which to them appear to store their coins, but a wallet is in fact just the set of cryptographic keys needed to perform transactions.
But why is blockchain even needed? Can't we just have a list of signed transactions without any blocks? Well, blockchain is designed to ensure coherency and the above mentioned consensus.

@ -1,6 +1,6 @@
# Dependency
Dependency is something your program depends on -- dependencies are [bad](shit.md)! Among programmers the term *dependency hell* refers to a very common situation of having to deal with the headaches of managing dependencies. Unfortunately dependencies are also unavoidable. We at least try to minimize dependencies as much as possible while keeping our program functioning as intended, and those we can't avoid we try to abstract (see [portability](portability.md)) in order to be able to quickly drop-in replace them with alternatives.
Dependency is something your program (or similar system) depends on -- dependencies are [bad](shit.md)! Among programmers the term *dependency hell* refers to a very common situation of having to deal with the headaches of managing dependencies. Unfortunately dependencies are also unavoidable. We at least try to minimize dependencies as much as possible while keeping our program functioning as intended, and those we can't avoid we try to abstract (see [portability](portability.md)) in order to be able to quickly drop-in replace them with alternatives.
Having many dependencies is a sign of [bloat](bloat.md) and bad design. Unfortunately this is the reality of mainstream programming. For example at the time of writing this [Chromium](chromium.md) in [Debian](debian.md) requires (recursively) 395 packages LMAO xD And these are just runtime dependencies...

@ -10,16 +10,16 @@ Determinism is also a **philosophical theory** and aspect of physics theories --
Determinism can however also pose a problem, notable e.g. in cryptography where we DO want true randomness e.g. when generating [seeds](seed.md). Determinism in this case implies an attacker knowing the conditions under which we generated the seed can exactly replicate the process and arrive at the seed value that's supposed to be random and secret. For this reason some [CPUs](cpu.md) come with special hardware for generating truly random numbers.
Despite the natural determinism of computers as such, **computer programs nowadays aren't always automatically deterministic** -- if you're writing a typical interactive computer program under some operating system, you have to make some extra bit of effort to make it deterministic. This is because there are things such as possible difference in timings or not perfectly specified behavior of [floating point](float.md) types in your language; for example a game running on slower computer will render fewer [frames per second](fps.md), ...) and if it has FPS-dependant physics, the time step of the physics engine will be longer on this computer, possibly resulting in slightly different physics behavior. This means that such program run with the same input data will produce different results on different computers or under slightly different circumstances, i.e. it would be non-deterministic.
Despite the natural determinism of computers as such, **computer programs nowadays aren't always automatically deterministic** -- if you're writing a typical interactive computer program under some operating system, you have to make some extra bit of effort to make it deterministic. This is because there are things such as possible difference in timings or not perfectly specified behavior of [floating point](float.md) types in your language; for example a game running on slower computer will render fewer [frames per second](fps.md) and if it has FPS-dependent physics, the time step of the physics engine will be longer on this computer, possibly resulting in slightly different physics behavior due to rounding errors. This means that such program run with the same input data will produce different results on different computers or under slightly different circumstances, i.e. it would be non-deterministic.
Nevertheless **we almost always want our programs to be deterministic** (or at least deterministic under some conditions, e.g. on the specific hardware platform we are using), always try to make your programs deterministic unless you have a VERY good reason not to! **It doesn't take a huge effort to achieve determinism**, it's more of just taking the right design decisions (e.g. separating rendering and physics simulation), i.e. good programming leads to determinism and vice versa, determinism in your program indicates good programming. The reason why we want determinism is that such programs have great properties, e.g. that of easier debugging (bugs are reproducible just by knowing the exact inputs), easy and efficient recording of activity (e.g. demos in games), sometimes even time reversibility (like undos, but watch out -- this doesn't hold in general!). Determinism also itself serves as a kind of a [test](test.md) if the program is working right -- if your program can take recorded inputs and reproduce same behavior at every run, it shows that it's written well, without things like [undefined behavior](undefined_behavior.md) affecting its behavior.
{ The previous paragraph is here because I've talked to people who thought that determinism was some UBER feature that requires a lot of work and so on ("OMG Trackmania is deterministic, what a feat!") -- this is NOT the case. It may intuitively seem so to non-programmers or beginners, but really this is not the case. Non-determinism in software appears usually due to a fuck up, ignorance or bad design choice made by someone with a low competence. Trust me, determinism is practically always the correct way of making programs and it is NOT hard to do. ~drummyfish }
Even if we're creating a program that somehow works with probability, we usually want to make it deterministic. This means we don't use actual random numbers but rather [pseudorandom](pseudorandomness.md) number generators that output [chaotic](chaos.md) values which simulate randomness, but which will nevertheless be exactly the same when ran multiple times with the same initial seed. This is again important e.g. for [debugging](debugging.md) the system in which replicating the bug is key to fixing it.
**Even if we're creating a program that somehow works with probability, we usually want to make it deterministic!** This means we don't use actual random numbers but rather [pseudorandom](pseudorandomness.md) number generators that output [chaotic](chaos.md) values which simulate randomness, but which will nevertheless be exactly the same when ran multiple times with the same initial seed. This is again important e.g. for [debugging](debugging.md) the system in which replicating the bug is key to fixing it. If under normal circumstances you want the program to really behave differently in each run, you make it so only by altering its initial random [seed](seed.md).
In theoretical computer science non-determinism means that a model of computation, such as a [Turing machine](turing_machine.md), may at certain points decide to make one of several possible actions which is somehow most convenient, e.g. which will lead to finding a solution in shortest time. Or in other words it means that the model makes many computations, each in different path, and at the end we conveniently pick the "best" one, e.g. the fastest one. Then we may talk e.g. about how the computational strength or speed of computation differ between a deterministic and non-deterministic Turing machine etc.
**Determinism does NOT guarantee [reversibility](reversibility.md)**, i.e. if we know a state of a deterministic system, it may not always be possible to say from which state it evolved. This reversibility is only possible if the rules of the system are such that no state can evolve from two or more different states. If this holds then it is always possible to time-reverse the system and step it backwards to its initial state. This may be useful for things such as [undos](undo.md) in programs. Also note that even if a system is reversible, it may be computationally very time consuming and sometimes practically impossible to reverse the system (imagine e.g. reversing a cryptographic [hash](hash.md) -- mathematical reversibility of such hash may be arbitrarily ensured by e.g. pairing each hash with the lowest value that produces it).
**Determinism does NOT guarantee [reversibility](reversibility.md)**, i.e. if we know a state of a deterministic system, it may not always be possible to say from which state it evolved, or in other words: a system that's deterministic may or may not be deterministic in reverse time direction. This reversibility is only possible if the rules of the system are such that no state can evolve from two or more different states. If this holds then it is always possible to time-reverse the system and step it backwards to its initial state. This may be useful for things such as [undos](undo.md) in programs. Also note that even if a system is reversible, it may be computationally very time consuming and sometimes practically impossible to reverse the system (imagine e.g. reversing a cryptographic [hash](hash.md) -- mathematical reversibility of such hash may be arbitrarily ensured by e.g. pairing each hash with the lowest value that produces it).
**Is [floating point](float.md) deterministic?** In theory even floating point arithmetic can of course be completely deterministic but there is the question of whether this holds about concrete specifications and implementations of floating point (e.g. in different programming languages) -- here in theory non-determinism may arise e.g. by some unspecified behavior such as rounding rules. In practice you can't rely on float being deterministic. The common float standard, IEEE 754, is basically deterministic, including rounding etc. (except for possible payload of [NaNs](nan.md), which shouldn't matter in most cases), but this e.g. doesn't hold for floating point types in [C](c.md)!

@ -1,6 +1,6 @@
# Digital
Digital [technology](tech.md) is that which works with whole numbers, i.e. discrete values, as opposed to [analog](analog.md) technology which works with [real numbers](real_number.md), i.e. continuous values. The name *digital* is related to the word *digit* as digital computers store data by digits, e.g. in 1s and 0s if they work in [binary](binary.md).
Digital [technology](tech.md) is that which works with whole numbers, i.e. discrete values, as opposed to [analog](analog.md) technology which works with [real numbers](real_number.md), i.e. continuous values (note: do not confuse things such as [floating point](float.md) with truly continuous values!). The name *digital* is related to the word *digit* as digital computers store data by digits, e.g. in 1s and 0s if they work in [binary](binary.md).
Normies confuse digital with [electronic](electronic.md) or think that digital computers can only be electronic, that digital computers can only work in [binary](binary.md) or have other weird assumptions whatsoever. **This is indeed false!** An [abacus](abacus.md) is digital device. Fucking normies.

@ -1,6 +1,6 @@
# Dog
Here is the dog! he doesn't judge you; dog [love](love.md) is unconditional. No matter who you are or what you ever did, this buddy will always love you and be your best friend <3 By this he is giving us a great lesson.
Here is the dog! He doesn't judge you; dog [love](love.md) is unconditional. No matter who you are or what you ever did, this buddy will always love you and be your best friend <3 By this he is giving us a great lesson.
He loves when you pet him and take him for walks, but most of all he probably enjoys to play catch :) Throw him a ball!

@ -1,8 +1,8 @@
# Fractal
Informally speaking fractal is a shape that's geometrically "infinitely complex" while being described in an extremely simple way, e.g. with a very simple formula. Shapes found in the nature, such as trees, mountains or clouds, are often fractals. Fractals show self-similarity, i.e. when "zooming" into an ideal fractal we keep seeing it is composed, down to an infinitely small scale, of shapes that are similar to the shape of the whole fractal; e.g. the branches of a tree look like smaller versions of the whole tree etc.
Informally speaking fractal is a shape that's geometrically "infinitely complex" while being described in an extremely simple way, e.g. with a very simple formula or [algorithm](algorithm.md). Shapes found in the nature, such as trees, mountains or clouds, are often fractals. Fractals show self-similarity, i.e. when "zooming" into an ideal fractal we keep seeing it is composed, down to an infinitely small scale, of shapes that are similar to the shape of the whole fractal; e.g. the branches of a tree look like smaller versions of the whole tree etc.
Fractals are the beauty of mathematics, they can impress even complete non-mathematicians and so are probably good as a motivational example in [math](math.md) education.
Fractals are the [beauty](beauty.md) of mathematics, they can impress even complete non-mathematicians and so are probably good as a motivational example in [math](math.md) education.
Fractal is formed by [iteratively](iteration.md) or [recursively](recursion.md) (repeatedly) applying its defining rule -- once we repeat the rule infinitely many times, we've got a perfect fractal. [In the real world](irl.md), of course, both in nature and in computing, the rule is just repeat many times as we can't repeat literally infinitely. The following is an example of how iteration of a rule creates a simple tree fractal; the rule being: *from each branch grow two smaller branches*.
@ -48,6 +48,8 @@ Fractals can of course also exist in 3 and more dimensions so we can have also h
[Computers](computer.md) are good for exploring and rendering fractals as they can repeat given rule millions of times in a very short time. Programming fractals is quite easy thanks to their simple rules, yet this can highly impress noobs.
However, as shown by Code Parade (https://yewtu.be/watch?v=Pv26QAOcb6Q), complex fractals could be rendered even before the computer era using just a projector and camera that feeds back the picture to the camera. This is pretty neat, though it seems no one actually did it back then.
3D fractals can be rendered with [ray marching](ray_marching.md) and so called *distance estimation*. This works similarly to classic [ray tracing](ray_tracing.md) but the rays are traced iteratively: we step along the ray and at each step use an estimate of the current point to the surface of the fractal; once we are "close enough" (below some specified threshold), we declare a hit and proceed as in normal ray tracing (we can render shadows, apply materials etc.). The distance estimate is done by some clever math.
[Mandelbulber](mandelbulber.md) is a [free](free_software.md), advanced software for exploring and rendering 3D fractals using the mentioned method.

@ -2,8 +2,12 @@
*Information wants to be free.*
Information is knowledge that can be used for making decisions. Information is interpreted [data](data.md), i.e. while data itself may not give us any information, e.g. if they're encrypted and we don't know the key or if we simply don't know what the data signifies, information emerges once we make sense of the data. Information is contained in books, on the [Internet](internet.md), in nature, and we access it through our senses. [Computers](computer.md) can be seen as machines for processing information and since the computer revolution information has become the focus of our society; we often encounter terms such as [information technology](it.md), informatics, information war etc. [Information theory](information_theory.md) is a [scientific field](science.md) studying information.
Information is knowledge that can be used for making decisions. Information is interpreted [data](data.md), i.e. while data itself may not give us any information, e.g. if they're encrypted and we don't know the key or if we simply don't know what the data signifies or implies, information emerges once we make sense of the data. Information is contained e.g in [books](book.md), on the [Internet](internet.md), in nature, and we access it through our senses. [Computers](computer.md) can be seen as machines for processing information and since the computer revolution information has become the focus of our society; we often encounter terms such as [information technology](it.md), informatics, information war, information age etc. [Information theory](information_theory.md) is a [scientific field](science.md) studying information.
**Information wants to be free**, i.e. it is free naturally unless we decide to limit its spread with [shit](shit.md) like [intellectual property](intellectual_property.md) laws. What does "free" mean? It is the miraculous property of information that allows us to duplicate information basically without any cost. Once we have certain information, we may share it with others without having to give up our own knowledge of the information. A file on a computer can be copied to another computer without deleting the file on the original computer. This is unlike with physical products which if we give to someone, we lose them ourselves. Imagine if you could make a piece of bread and then duplicate it infinitely for the whole world -- information works like this! We see it as a crime to want to restrict such a miracle. We may also very nicely store information in our heads. For all this information is [beautiful](beauty.md). It is sometimes discussed whether information is created or discovered -- if a mathematician invents an equation, is it his creation or simply his discovery of something that belongs to the nature? This question isn't so important because whatever terms we use, we at [LRS](lrs.md) decide to create, spread and freely share information without limiting it in any way.
In [computer science](compsci.md) the basic unit of information amount is 1 **[bit](bit.md)** (for *binary digit*), also known as [shannon](shannon.md). It represents a choice of two possible options, for example an answer to a *yes/no* question, or one of two [binary](binary.md) digits: 0 or 1. From this we derive higher units such as [bytes](byte.md) (8 bits), [kilobytes](memory_units.md) (1000 bytes) etc. Other units of information include [nat](nat.md) or [hart](hart.md). With enough bits we can encode any information including text, sounds and images. For this we invent various [formats](file_format.md) and encodings with different properties: some encodings may for example contain [redundant](redundancy.md) data to ensure the encoded information is preserved even if the data is partially lost. Some encodings may try to hide the contained information (see [encryption](encryption.md), [obfuscation](obfuscation.md), [steganography](steganography.md)). For processing information we create [algorithms](algorithm.md). We store information in computer [memory](memory.md) or on storage media such as [CDs](cd.md), or with traditional potentially [analog](analog.md) media such as photographs or books. The opposite measure of information is **[entropy](entropy.md)**; it is measured in same units but says how much information is missing rather than what is present.
In [computer science](compsci.md) the basic unit of information amount is 1 **[bit](bit.md)** (for *binary digit*), also known as [shannon](shannon.md). It represents a choice of two possible options, for example an answer to a *yes/no* question, or one of two [binary](binary.md) digits: 0 or 1. From this we derive higher units such as [bytes](byte.md) (8 bits), [kilobytes](memory_units.md) (1000 bytes) etc. Other units of information include [nat](nat.md) or [hart](hart.md). With enough bits we can encode any information including text, sounds and images. For this we invent various [formats](file_format.md) and encodings with different properties: some encodings may for example contain [redundant](redundancy.md) data to ensure the encoded information is preserved even if the data is partially lost. Some encodings may try to hide the contained information (see [encryption](encryption.md), [obfuscation](obfuscation.md), [steganography](steganography.md)). For processing information we create [algorithms](algorithm.md). We store information in computer [memory](memory.md) or on storage media such as [CDs](cd.md), or with traditional potentially [analog](analog.md) media such as photographs or books.
The opposite measure of information is **[entropy](entropy.md)**; it is measured in same units but says how much information is missing rather than what is present.
According to the [theory of relativity](relativity.md) **information can never travel [faster than light](speed_of_light.md)** -- even if some things may move faster than light, such as a shadow, so called "spooky action at a distance" (usually associated with quantum [entanglement](entanglement.md)) or even matter due to the expansion of space, by our best knowledge we can never use this to transfer information faster than light. For this it seems our communication technology will always be burdened by [lag](lag.md), no matter how sophisticated.

@ -1,6 +1,6 @@
# Kek
Kek means [lol](lol.md). It comes from [World of Warcraft](wow.md) where the two opposing factions (Horde and Alliance) were made to speak mutually unintelligibile languages so as to prevent enemy players from communicating; when someone from Horde typed "lol", an Alliance player would see him say "kek". The other way around (i.e. Alliance speaking to Horde) would render "lol" as "bur", however kek became the popular one. On the Internet this further mutated to forms like *kik*, kekw*, *topkek* etc. Nowadays in some places such as [4chan](4chan.md) kek seems to be used even more than lol, it's the newer, "cooler" way of saying lol.
Kek means [lol](lol.md). It comes from [World of Warcraft](wow.md) where the two opposing factions (Horde and Alliance) were made to speak mutually unintelligibile languages so as to prevent enemy players from communicating; when someone from Horde typed "lol", an Alliance player would see him say "kek". The other way around (i.e. Alliance speaking to Horde) would render "lol" as "bur", however kek became the popular one. On the Internet this further mutated to forms like *kik*, *kekw*, *topkek* etc. Nowadays in some places such as [4chan](4chan.md) kek seems to be used even more than lol, it's the newer, "cooler" way of saying lol.
## See Also

@ -7,18 +7,18 @@ LMAO stands for *laughing my ass off*.
- There was a guy who made a whole game (named *DRAGON: A Game About a Dragon*), some 30000+ lines of code, without knowing about the concept of loops. He only ever used the if statement. (This was posted on reddit along with a portion of the code.)
- In 2021 [Alexa](alexa.md) (the shitty Amazon voice spy agent) told a 10 year old to touch an electric plug with a penny after the kid asked her "for a challenge".
- { I've seen a screenshot of code in which some guy exited the program by intentionally dividing by zero, the comment said it was the easiest way. ~drummyfish }
- Around 2015 some [niggas](nigger.md) got enraged when Google Photos tagged them as gorillas.
- Around 2015 some niggas got enraged when Google Photos tagged them as gorillas.
- The MMORPG *New World* by *Amazon Games* was programmed by retards (probably some diversity team) who made the client authoritative which allowed for [fun](fun.md) such as becoming invincible by draggine the game window or duplicate currency with lag switches.
- In 2016 there was a progaming team in Halo called Mi Seng which in a broadcast game did a pretty funny thing: when they were leading they went into hiding in buggy spots and then just did nothing until the time ran out. Normies were crying, the commentators were pretty awkward, they considered this "unethical" xD We consider it pretty cool.
- In 2016 [Micro$oft](microsoft.md) released a Twitter [AI](ai.md) bot called Tay which was made to teach itself how to talk from the text on the Internet. It can be guessed it quickly became extremely racist and enraged waves of [SJW](sjw.md)s so they had to shut it down.
- There are many funny stories from [4chan](4chan.md). In 2012 they made masses of Justin Bieber fans shave their heads by spreading fake news that Bieber had cancer under the hashtag #BaldForBieber. In 2013 they made a similarly funny prank by making Justin Bieber fans cut themselves with another faked campaign #CuttingForBieber. In 2013 they made a huge number of Appletoddlers destroy their [iPhones](iphone.md) with fake ads that promoted a new "feature" that makes the phone waterproof via a software update. Similarly in 2014 they spread fake ads about a new iPhone "feature" that would let users charge their phones in a microwave. 4chan also hijacked many internet polls such as the Mountain Dew's poll for naming their new drink in 2012: people from 4chan raided the poll and chose the name "Hitler Did Nothing Wrong", with names such as "Diabeetus" or "Soda" as followers. Another raided poll was that of Talor Swift about at which school she should perform -- 4chan mass voted for a school for deaf children which eventually won (Taylor Switch handled it by donating money to the school). 4chan also chose North Korea as a country for Justin Bieber's tour. Another hilarious story is from 2006 when 4chan raided the Habbo Hotel (a MMO game mostly for children); they made shitton of black characters with afros, went around blocking players from accessing game areas, grouping to form swastikas and famously blocking a hotel pool with the sign "Pool's closed due to AIDS".
- In 2022 a proprietary "[smart](smart.md) home" company Insteon got into financial trouble, shut down its servers and left people without functioning houses. Retards fucking deserved it xD
- In 2022 a proprietary "[smart](smart.md) home" company Insteon got into financial trouble, shut down its servers and left people without functioning houses.
- In the 1985 book *Big Score: The Billion-Dollar Story: The Billion-Dollar Story of Silicon Valley* there is a nice chapter talking about the manufacturing of integrated chips that explains how the process is (or at least used to be) very unpredictable and how it's basically astrology for the managers to try to predict and maximize the yield rates (the percentage of manufactured chips that function correctly). There were companies whose research showed the number of good chips correlated with the phases of the Moon, another one found that chips were destroyed by tiny droplets of piss on the hands of workers who didn't wash their hands and that [women](woman.md) workers during menstruation destroyed more chips because of the increased amount of oil secreted from their hands.
- The unexpected assassination of Lord British in Ultima Online in 1997 was pretty funny.
- [Elizabeth Holmes](elizabeth_holmes.md)
- In 2019 a [progaming](progaming.md) ("esports") organization Vaevictis tried to make an all-[female](woman.md) League of Legends team, which would be the first such team in the high progaming league. The team quickly failed, it can't even be described how badly they played, of course they didn't even had a hope of gaining a single win, they gained several world records for their failures such as the fastest loss (13 minutes), eventually they got fired from the league xD
- In 2022 a bug in [SMART](smart.md) Mazda cars forced their "owners" to listen to some shitty public radio without being able to change the station. TFW state of "modern" bloattech made by diversity teams.
- { At my Uni a professor told us some guy turned in an assignment program but forgot to remove the debug prints. The fun part was he was using prints such as "my dick has a length X cm" where X was the debug value. So beware of that. ~drummyfish }
- In 2022 a bug in [SMART](smart.md) Mazda cars forced their "owners" to listen to some shitty public radio without being able to change the station. TFW "modern" bloattech made by diversity teams.
- { At my uni a professor told us some guy turned in an assignment program but forgot to remove the debug prints. The fun part was he was using prints such as "my dick is X cm long" where X was the debug value. So beware of that. ~drummyfish }
## See Also

@ -4,7 +4,7 @@ There are many terms that are very similar and are sometimes used interchangeabl
- **[AI](ai.md)** vs **[machine learning](machine_learning.md)** vs **[neural networks](neural_net.md)**
- **[algebra](algebra.md)** vs **[arithmetic](arithmetic.md)**
- **[algorithm](algorithm.md)** vs **[program](program.md)**
- **[algorithm](algorithm.md)** vs **[program](program.md)** vs **[process](process.md)**
- **[analog](analog.md)** vs **[mechanical](mechanical.md)**
- **[anarchy](anarchism.md)** vs **[chaos](chaos.md)**
- **[argument](argument.md)** vs **[parameter](parameter.md)**
@ -39,6 +39,7 @@ There are many terms that are very similar and are sometimes used interchangeabl
- **[declaration](declaration.md)** vs **[definition](definition.md)**
- **[demo](demo.md)** vs **[intro](intro.md)**
- **[desktop environment](de.md)** vs **[window manager](wm.md)**
- **[duck typing](duck_typing.md)** vs **[weak typing](weak_typing.md)** vs **[dynamic typing](dynamic_typing.md)**
- **[digital](digital.md)** vs **[electronic](electronics.md)**
- **[directed acyclic graph](dag.md)** vs **[tree](tree.md)**
- **[directory](directory.md)** vs **[folder](folder.md)**

@ -2,6 +2,8 @@
Screen space ambient occlusion (SSAO) is a [screen space](screen_space.md) technique used in 3D [computer graphics](graphics.md) for **[approximating](approximation.md)** [ambient occlusion](ambient_occlusion.md) (basically "dim shadows in corners", which itself is an approximation of true [global illumination](global_illumination.md)) in a way that's easy and not so expensive to implement to run in [real time](real_time.md). The effect however looks ugly many times and is often criticized, see e.g. an excellent article at https://nothings.org/gamedev/ssao/.
{ 2023 report: SSAO is still bad as fuck. ~drummyfish }
Exact ambient occlusions can be computed with algorithms such as RTAO (which uses [raytracing](raytracing.md)), but this requires complete information about the geometry and is too slow without special hardware. Therefore some game devs cheat and use a cheap approximation: SSAO is implemented as a [post-processing](post_processing.md) [shader](shader.md) and only uses the information available on the screen, specifically in the [depth buffer](z_buffer.md) -- this gives only partial information about the actual scene geometry, i.e. the algorithm doesn't know what the back facing, screen-perpendicular or off-screen geometry looks like and has to make guesses which sometimes result in quite visible inaccuracies.
This methods is notoriously ugly in certain conditions and many [modern](modern.md) [games](game.md) suffer from this, even the supposedly "photorealistic" engines like Unreal -- if someone is standing in front of a wall there is a shadow outline around him that looks so unbelievably ugly you literally want to puke. But normie eyes can't see this lol, they think that's how reality looks and they are okay with this shit, they allow this to happen. Normies literally destroy computer graphics by not being able to see correctly.

@ -2,7 +2,7 @@
Two's complement is an elegant way of encoding signed (i.e. potentially negative) integer (and possibly also [fixed point](fixed_point.md)) numbers in [binary](binary.md). It is one of the most basic concepts to know as a programmer; for its simplicity and nice properties two's complement is the way that's used to represent binary integers almost everywhere nowadays. Other ways of encoding singed numbers, mainly [sign-magnitude](sign_magnitude.md) and [one's complement](ones_complement.md), are basically always inferior.
Why is two's complement so great? It's most notable advantages are:
Why is two's complement so great? Its most notable advantages are:
- **There if only one [zero](zero.md) value** (while other encodings such as sign-magnitude and one's complement have positive and negative zero which wastes values and complicates algorithms).
- **Highest bit indicates the number sign** in the same way as e.g. in sign-magnitude and one's complement representations, i.e. determining whether a number is positive or negative is just as easy as in the more naive representations.

Loading…
Cancel
Save