Update
This commit is contained in:
parent
b553ef9a86
commit
6ac65ae709
13 changed files with 1920 additions and 1855 deletions
2
4chan.md
2
4chan.md
|
@ -14,6 +14,8 @@ UPDATE: As of 2022 /g/ became literally unreadable, ABANDON SHIP. The board beca
|
|||
|
||||
Despite dwelling slightly [underground](underground.md) -- maybe better said being isolated from the normie "safespace" [censornet](censorship.md) -- 4chan has really been very notably significant for the whole Internet [culture](culture.md), long [books](book.md) could be written about its [history](history.md), culture, unique, intricate social mechanism of its ways of communication and impact on the rest of the cyberspace; the "4chan experience" is one of the things that can't faithfully be described by words, it has to be lived. Just like reddit mixed some interesting concepts into a unique, yet more powerful combination that's more than a sum of its ingredients, so did 4chan -- yes, other boards are to be credited for this too, but 4chan is the flagship, the center of it all. Especially important seems to be the anonymity aspect, you never know who you are talking to, it's never clear if someone is [trolling](troll.md), serious, shilling, extremely dumb or something in between. There is no karma, no handles, no profile pictures, no upvotes (at best there are numbers of replies), no post history, no account age, you have to rely on judging people by unusual attributes, for example by the style of their talk, their knowledge of the [lore](lore.md) and latest [memes](meme.md), by how they format their posts (e.g. the infamously hated empty lines), what images they attach (and what they're file names are), as these are the only clues. A thread on 4chan isn't something with a clear goal, you don't know if someone is asking a question because he wants a genuine answer or because he's just bored and wants to see funny answers, or if he's posting a bait and is trying to trigger others, so each discussion is a bit of a game, you're trying to guess what's going on. A famous post, for example, had itself heard that the poster despises translations of books and always reads any book in its original language despite not understanding a word of it, and that he already read works such as Don Quixote and Les Miserables in their respective languages without knowing what they were about -- this stupidity combined with extreme determination and dedication captures part of what makes 4chan what it is. Also everything is temporary, every thread and image is deleted in a short time, which is an important factor too, everything is constantly in motion, people have to react quickly, there is no turning back, reactions are quick and genuine, if you miss something it's gone. Also the image memes themselves show how [art](art.md) (who cares if low) evolves if completely unrestrained, anyone can try to spawn a new meme or download anyone else's posted meme, repost it or [modify](remix_culture.md) it, copyright mostly [de facto](de_facto.md) won't apply as the authors are unknown; bad works are filtered out while good ones remain simply by making others save them and keep reposting them, it's art without authors, separated from the people, evolving completely on its own, purely by its intrinsic attributes, unconstrained evolution at work right before our eyes -- this is a seriously scientifically [interesting](interesting.md) stuff.
|
||||
|
||||
As of writing this https://4stats.io/ reports /pol as the most active board (~80 posts/min, ~150 threads/hour), followed by /v, /tv and /b.
|
||||
|
||||
**Alternatives to 4chan**: just check out other image boards like 8kun, anon.cafe, leftychan.net, wizardchan, soyjak.party, [BAI](bai.md), 1436chan ([gopher](gopher.md)) etc. Also check out other types of forums than image boards such as saidit.net, voat or [encyclopedia dramatica](encyclopedia_dramatica.md) forums. You won't have much success searching for these using [Goolag](google.md).
|
||||
|
||||
{ Also check out https://wiki.soyjaks.party, it's a great place, CC0, tons of 4chan lore, kinda like encyclopedia dramatica 2. ~drummyfish }
|
||||
|
|
2
90s.md
2
90s.md
|
@ -4,7 +4,7 @@
|
|||
|
||||
It is now confirmed that 1990s (or just 90s) were almost definitely the best decade in recent written [history](history.md), at least in [Europe](europe.md) (the main continent of [Earth](earth.md)) but to a degree probably also in other, less significant parts of the world ([USA](usa.md) etc.). They were the peak of civilization before the [collapse](collapse.md) quickly brought by the [21st century](21st_century.md). 90s still left behind some echoes during the years 2000-2010 -- according to some still a bearable decade -- however it was already going downhill at the time. 90s followed the [80](80s)s (quite logically, at least to those of above Trump intellect), a decade that was itself also pretty good, and so in a similar fashion some good old 80s vibes carried on to the 90s.
|
||||
|
||||
During the 90s [millennials](millennial.md) (also called gen Y) were born. The decade was characterized for example by sagging trousers, loose and torn clothes in general, jeans and hoodies, baseball caps turned backwards, vibrant colors, optimistic and cheerful mood, [Tamagotchi](tamagotchi.md) and Pokemon, [CRT](crt.md) monitors, floppy disks, ball mice, cassette tapes and walkmans { is it walkmans or walkmen lol? ~drummyfish }, bizarre button cellphones, boybands, MTV music and many other wonderful things.
|
||||
During the 90s [millennials](millennial.md) (also called gen Y) were born. The decade was characterized for example by sagging trousers, loose and torn clothes in general, jeans and hoodies, baseball caps turned backwards, vibrant colors, optimistic and cheerful mood, [real life](irl.md) friends and sleepovers, [Tamagotchi](tamagotchi.md) and [Pokemon](pokemon.md), [GameBoy](gameboy.md), [CRT](crt.md) monitors, [floppy](floppy.md) disks, ball [mice](mouse.md), archaic Internet and [web](www.md) 1.0 through slow dial-up, cassette tapes and walkmans { is it walkmans or walkmen lol? ~drummyfish }, bizarre button cellphones, phone boots in streets, boybands, MTV music, movies on [VHS](vhs.md) (and VHS rental stores), soulful non-[furry](furry.md) cartoons aired only early on Saturday mornings and many other wonderful things.
|
||||
|
||||
So, from the European point of view, here is a short summary of why 90s were so good:
|
||||
|
||||
|
|
8
bit.md
8
bit.md
|
@ -1,5 +1,11 @@
|
|||
# Bit
|
||||
|
||||
Bit (for *[binary](binary.md) digit*, symbol *b*, also *shannon*) is the lowest commonly used unit of [information](information.md), equivalent to a choice between two equally likely options (e.g. an answer to the question "Was the coin flip heads?"), in computers used as the smallest unit of [memory](memory.md), with 1 bit being able to hold exactly one value that can be either [1](one.md) or [0](zero.md). From bit a higher memory unit, [byte](byte.md) (8 bits), is derived. In [quantum computing](quantum.md) the equivalent of a bit is [qubit](qubit.md), in [ternary](ternary.md) computers the analogy is [trit](trit.md).
|
||||
Bit (for *[binary](binary.md) digit*, symbol *b*, also *shannon*) is the lowest commonly used unit of [information](information.md), equivalent to a choice between two equally likely options (e.g. an answer to the question "Was the coin flip heads?"), in [computers](computer.md) used as the smallest unit of [memory](memory.md), with 1 bit being able to hold exactly one value that can be either [1](one.md) or [0](zero.md). From bit a higher memory unit, [byte](byte.md) (8 bits), is derived -- then yet higher units such as kilobyte and megabyte are constructed from there. In [quantum computing](quantum.md) the equivalent of a bit is [qubit](qubit.md), in [ternary](ternary.md) computers the analogy is [trit](trit.md).
|
||||
|
||||
**Can there exist a smaller quantity of information than 1 bit?** Well, yes, for sure we can get zero information and it certainly also makes sense to speak of fractions of bits; for example one [decimal](decimal.md) digit carries log2(10) ~= 3.32 bits of information. [Entropy](entropy.md) is also measured in bits and can get smaller than 1 bit, e.g. for an unfair coin toss; an answer to the question "Will the Sun rise tomorrow?" gives less than 1 bit of information -- in fact it gives almost no information as we know the answer will most definitely be yes, though the certainty can never be absolute. Another idea: imagine there exist two people for whom we want to know, based on their sexes, whether they may reproduce together -- answer to this question takes 1 bit (yes or no) and to obtain it we have to know both of these people's sexes so we can say whether they differ. Now if we only know the sex of one of them, then in the context of the desired answer we might perhaps say we have a half of one bit of information, as if we also know the other one's sex (the other half of the bit), we get the whole 1 bit answer.
|
||||
|
||||
## See Also
|
||||
|
||||
- [qubit](qubit.md)
|
||||
- [byte](byte.md)
|
||||
- [pixel](pixel.md)
|
75
chess.md
75
chess.md
|
@ -1,14 +1,14 @@
|
|||
# Chess
|
||||
|
||||
Chess (from Persian *shah*, *king*) is a very [old](old.md) two-player board [game](game.md), perhaps most famous and popular among all board games in [history](history.md). In video game terms we could call it a turn-based strategy, in mathematical terms it's a [zero sum](zero_sum.md), [complete information](complete_information.md) game with no element of [randomness](randomness.md), that simulates a battle of two armies on an 8x8 board with different battle pieces, also called *chessmen* or just *men* (also stones, pieces or juicers). Chess is also called the King's Game, it has a world-wide competitive community and is considered an intellectual [sport](sport.md) but it's also been a topic of research and [programming](programming.md) (many chess engines, [AI](ai.md)s and frontends are being actively developed). Chess is similar to games such [shogi](shogi.md) ("Japanese chess"), [xiangqi](xiangqi.md) ("Chinese chess") and [checkers](checkers.md). As the estimated number of chess games is bigger than [googol](googol.md), it is unlikely to ever be solved; though the complexity of the game in sheer number of possibilities is astronomical, among its shogi, go and xiangqi cousins it is actually considered one of the "simplest" (the board is relatively small and the game tends to simplify as it goes on as there are no rules to get men back to the game etc.).
|
||||
Chess (from Persian *shah*, *king*) is a very [old](old.md) two-player board [game](game.md), perhaps most famous and popular among all board games in [history](history.md). In video game terms we could call it a turn-based strategy, in mathematical terms it's a [zero sum](zero_sum.md), [complete information](complete_information.md) game with no element of [randomness](randomness.md), that simulates a battle of two armies on an 8x8 board with different battle pieces, also called *chessmen* or just *men* (also stones, pieces or juicers). Chess is also called the King's Game, it has a worldwide competitive community and is considered an intellectual [sport](sport.md) but it's also been a topic of research and [programming](programming.md) (many chess engines, [AI](ai.md)s and frontends are being actively developed). Chess is similar to games such [shogi](shogi.md) ("Japanese chess"), [xiangqi](xiangqi.md) ("Chinese chess") and [checkers](checkers.md). As the estimated number of chess games is bigger than [googol](googol.md), it is unlikely to ever get solved; though the complexity of the game in sheer number of possibilities is astronomical, among its shogi, go and xiangqi cousins chess is actually considered one of the "simplest" (the board is relatively small and the game tends to simplify as it goes on as there are no rules to get men back to the game etc.).
|
||||
|
||||
{ There is a nice black and white indie movie called *Computer Chess* about chess programmers of the 1980s, it's pretty good, very oldschool, starring real programmers and chess players, check it out. ~drummyfish }
|
||||
|
||||
[Drummyfish](drummyfish.md) has created a suckless/[LRS](lrs.md) chess library [smallchesslib](smallchesslib.md) which includes a simple engine called *smolchess* (and also a small chess game in [SAF](saf.md) with said library).
|
||||
[Drummyfish](drummyfish.md) has created a suckless/[LRS](lrs.md) chess library [smallchesslib](smallchesslib.md) which includes a simple engine called *smolchess* (and also a small chess game in [SAF](saf.md) with said library) -- it is very weak but may be fun to play around with :)
|
||||
|
||||
**At [LRS](lrs.md) we consider chess to be one of the best games** for the following reasons:
|
||||
|
||||
- It is just a greatly interesting and deep game in which luck plays minimal role.
|
||||
- It is just a greatly [interesting](interesting.md) and deep game in which luck plays minimal role.
|
||||
- **It is greatly [suckless](suckless.md)**, the rules are very simple, it can be implemented on simple 8bit computers. Of course the game doesn't even require a computer, just a board and a few men -- chess masters don't even need a board to play (they can completely visualize the games in memory). In the end one can in theory just play against himself in his head, achieving the ultimate freedom: the only dependency of the game is one's brain, i.e. it becomes a [brain software](brain_software.md). Chess is extremely inexpensive, doesn't discriminate against poor people and will survive even the most extreme technological [collapse](collapse.md).
|
||||
- **No one owns chess**, the game is hundreds of years old and many books about it are also already in the [public domain](public_domain.md). It is extremely free.
|
||||
- It is a basis for other derived games, for example many different chess variants or chess puzzles which can be considered a "singleplayer chess game".
|
||||
|
@ -17,7 +17,7 @@ Chess (from Persian *shah*, *king*) is a very [old](old.md) two-player board [ga
|
|||
|
||||
Many however see [go](go.md) as yet a more [beautiful](beauty.md) game: a more minimal, yet more difficult one, with a completely unique experience.
|
||||
|
||||
**Where to play chess online?** There exist many servers such as https://chess.com or https://chess24.com -- however these ones are proprietary, so don't use them. For us a possible one is **Lichess** (libre chess) at https://lichess.org which not only [FOSS](foss.md), but is also gratis (it also allows users to run bots under special accounts which is an amazing way of testing engines against people and other engines), however it requires JavaScript. Another server, a more [suckless](suckless.md) one, is **Free Internet Chess Server** (FICS) at https://www.freechess.org/ -- on this one you can play through telnet (`telnet freechess.org 5000`) or with graphical clients like pychess. Online servers usually rate players with Elo/Glicko just like FIDE, sometimes there are computer opponents available, chess puzzles, variants, analysis tools etc.
|
||||
**Where to play chess online?** There exist many servers such as https://chess.com or https://chess24.com -- however these ones are proprietary and toxic, NEVER use them. { The cocsuckers from chess.com just started to hardcore spam my mail when I registered there lol. ~drummyfish } A much better one is **Lichess** ([libre](libre.md) chess) at https://lichess.org which is not only [FOSS](foss.md), but also gratis, without [ads](marketing.md) and is actually superior in all ways even to the proprietary sites, allowing users to run their own bots, offering [public domain](public_domain.md) database of all the games and positions, [API](api.md), analysis board, puzzles, chess variants, minigames, TV and much more -- however it requires [JavaScript](js.md). Another server, a more [suckless](suckless.md) one, is **Free Internet Chess Server** (FICS) at https://www.freechess.org/ -- on this one you can play through telnet (`telnet freechess.org 5000`) or with graphical clients like pychess. Online servers usually rate players with Elo/Glicko just like FIDE, sometimes there are computer opponents available, chess puzzles, variants, analysis tools etc.
|
||||
|
||||
Chess as a game is not and cannot be [copyrighted](copyright.md), but **can chess games (moves played in a match) be copyrighted?** Thankfully there is a pretty strong consensus and precedence that say this is not the case, even though [capital worshippers](capitalism.md) try to play the intellectual property card from time to time (e.g. 2016 tournament organizers tried to stop chess websites from broadcasting the match moves under "trade secret protection", unsuccessfully).
|
||||
|
||||
|
@ -29,6 +29,8 @@ Chess as a game is not and cannot be [copyrighted](copyright.md), but **can ches
|
|||
|
||||
**How to play chess with yourself?** If you have no computer or humans to play against, you may try playing against yourself, however playing a single game against yourself doesn't really work, you know what the opponent is trying to do -- not that it's not interesting, but it's more of a search for general strategies in specific situations rather than actually playing a game. One way around this could be to play many games at once (you can use multiple boards but also just noting the positions on paper as you probably won't be able to set up 100 boards); every day you can make one move in some selected games -- randomize the order and games you play e.g. with dice rolls. The number of games along with the randomized order should make it difficult for you to remember what the opponent (you) was thinking on his turn. Of course you can record the games by noting the moves, but you may want to cover the moves (in which case you'll have to be keeping the whole positions noted) until the game is finished, so that you can't cheat by looking at the game history while playing. If this method doesn't work for you because you can keep up with all the games, at least you know got real good at chess :) { This is an idea I just got, I'm leaving it here as a note, haven't tried it yet. ~drummyfish }
|
||||
|
||||
**Is there any luck or [randomness](randomness.md) in chess?** Not in the rules of game itself of course, there is no dice rolling and there is no hidden information, however luck and randomness is present in the meta game (playing as white vs black may be decided randomly, your opponent may be assigned to you randomly etc.) and then [de facto](de_facto.md) in the fact that although no information is hidden, no one can ever have a complete information due to the sheer complexity of the game, so in practice playing chess involves risk, intuition and educated guessing at any human and superhuman (computer) level. So chess players do commonly talk about luck, outcome of a game is always a matter of probability which is however given by the relative skill of both players. Probability of a hobbyist beating professional in a fair game, unlike e.g. in some card games, can effectively be considered [zero](zero.md).
|
||||
|
||||
## Chess In General
|
||||
|
||||
Chess evolved from ancient board games in India (most notably Chaturanga) in about 6th century -- some sources say that in chess predecessor games dice was used to determine which man a player was allowed to move but that once dice were banned because of hazard games, we got the variant without any element of chance. Nowadays the game is internationally governed by **FIDE** which has taken the on role of an authority that defines the official rules: FIDE rules are considered to be the standard chess rules. FIDE also organizes tournaments, promotes the game and keeps a list of registered players whose performance it rates with so called **[Elo](elo.md)** system -- based on the performance it also grants titles such as **Grandmaster** (GM, strongest), **International Master** (IM, second strongest) or **Candidate Master** (CM). A game of chess is so interesting in itself that chess is usually not played for money like many other games ([poker](poker.md), [backgammon](backgammon.md), ...).
|
||||
|
@ -44,7 +46,7 @@ A single game of chess is seen as consisting of three stages: **opening** (start
|
|||
|
||||
The study of chess openings is called **opening theory** or just *theory*. Playing the opening stage is special by being based on memorization of this theory, i.e. hundreds or even thousands of existing opening lines that have been studied and analyzed by computers, rather than by performing mental calculation (logical "thinking ahead" present in middlegame and endgame). Some see this as weakness of chess that makes players spend extreme energy on pure memorization. One of the best and most famous players, Bobby Fischer, was of this opinion and has created a chess variant with randomized starting position that prevents such memorization, so called *chess 960*.
|
||||
|
||||
**[Elo](elo.md) rating** is a mathematical system of numerically rating the performance of players (it is used in many sports, not just chess); Elo basically assigns players a rating number that says how skilled the player is. Given two players with Elo rating it is possible to compute the probability of the game's outcome (e.g. white has 70% chance of winning etc.). The FIDE set the parameters so that the rating is roughly this: < 1000: beginner, 1000-2000: intermediate, 2000-3000: master (currently best humans rate close to 3000). More advanced systems have also been created, namely the Glicko system, however these are often quite [bloated](bloat.md) and complicated, so Elo stays the most commonly used rating system. **Alternative ways** of determining player skills also exist, for example so called accuracy, which says how closely one played to the perfect play according to some strong engine such as Stockfish. The advantage here is that to rate a player we don't need too much data like with Elo (which needs to see many games of the player against other already rated players) -- it may be enough to let the player play a few games against a computer to determine his skill. A disadvantage however lies in how exactly to compute the accuracy because it's a bit complicated by other factors, for example in many situations finding the best move is trivial (like retaking a queen in queen exchange) while in others it's much more difficult, or the fact that humans often DON'T want to play the mathematically best move but rather a bit weaker but more comfortable one, so even grandmasters often choose a weaker move even though they know the theoretically best move. Another idea may be to use a standard set of puzzles, basically like an IQ test. Yet another idea is for example to compute so called [Erdos number](erdos_number.md), i.e. the minimum length of a chain of victories from the world's best player, i.e. for example rating player A with number 3 says he defeated someone who defeated someone who defeated the world's best. A guy called tom7 devised a method for measuring performance of weak chess engines by basically mixing stockfish (the strongest chess engine) with a random move bot in certain ratios -- i.e. making an engine that with certain probability (given by the mixture ratio) plays either a move by stockfish or a random move -- and then determining the mixture ratio at which this monstrosity becomes indistinguishable from the tested engine (i.e. we can say "the tested engine is a mixture of stockfish and random moves in this ratio").
|
||||
**[Elo](elo.md) rating** is a mathematical system of numerically rating the performance of players (it is used in many sports, not just chess); Elo basically assigns players a rating number that says how skilled the player is. Given two players with Elo rating it is possible to compute the probability of the game's outcome (e.g. white has 70% chance of winning etc.). The FIDE set the parameters so that the rating is roughly this: < 1000: beginner, 1000-2000: intermediate, 2000-3000: master (currently best humans rate close to 3000). More advanced systems have also been created, namely the Glicko system, however these are often quite [bloated](bloat.md) and complicated, so Elo stays the most commonly used rating system. **Alternative ways** of determining player skills also exist, for example so called accuracy, which says how closely one played to the perfect play according to some strong engine such as stockfish. The advantage here is that to rate a player we don't need too much data like with Elo (which needs to see many games of the player against other already rated players) -- it may be enough to let the player play a few games against a computer to determine his skill. A disadvantage however lies in how exactly to compute accuracy because that gets a little complicated by other factors, for example many times finding the best move is trivial (like retaking a queen in an exchange) while in others gets much more difficult, or the fact that humans often DON'T want to play the mathematically best move but rather a bit weaker, more comfortable one, so even grandmasters often choose a weaker move even though they know the theoretically best move. Another idea may be to use a standard set of puzzles, basically like an [IQ](iq.md) test. Yet another idea is for example to compute so called [Erdos number](erdos_number.md), i.e. the minimum length of a chain of victories from the world's best player, i.e. for example rating player A with number 3 says he defeated someone who defeated someone who defeated the world's best. A guy called tom7 devised a method for measuring performance of weak chess engines by basically mixing stockfish (the strongest chess engine) with a random move bot in certain ratios -- i.e. making an engine that with certain probability (given by the mixture ratio) plays either a move by stockfish or a random move -- and then determining the mixture ratio at which this monstrosity becomes indistinguishable from the tested engine (i.e. we can say "the tested engine is a mixture of stockfish and random moves in this ratio"). Along these lines we may similarly try to compute how much of a different kind of handicap -- let's say material or time -- we have to give to the strong engine for it to become on par with the tested entity (i.e. the ratio of wins and losses is about 1).
|
||||
|
||||
The rules of chess are quite simple ([easy to learn, hard to master](easy_to_learn_hard_to_master.md)) and can be found anywhere on the Internet. In short, the game is played on a 8x8 board by two players: one with **[white](white.md)** men, one with **[black](black.md)** (LOL IT'S [RACIST](racism.md) :D). Each man has a way of moving and capturing (eliminating) enemy men, for example bishops move diagonally while pawns move one square forward and take diagonally. The goal is to **checkmate** the opponent's king, i.e. make the king attacked by a man while giving him no way to escape this attack. There are also lesser known rules that noobs often miss and ignore, e.g. so called en-passant or the 50 move rule that declares a draw if there has been no significant move for 50 moves.
|
||||
|
||||
|
@ -88,15 +90,15 @@ There is also a great online [wiki](wiki.md) focused on programming chess engine
|
|||
|
||||
Programming chess is a [fun](fun.md) and enriching experience and is therefore recommended as a good exercise. There is nothing more satisfying than writing a custom chess engine and then watching it play on its own.
|
||||
|
||||
The core of chess programming is writing the [AI](ai.md). Everything else, i.e. implementing the rules, communication protocols etc., is pretty straightforward (but still a good programming exercise). Nevertheless, as the chess programming wiki stresses, one has to pay a great attention to eliminating as many [bugs](bug.md) as possible; really, the importance of writing automatic tests can't be stressed enough as debugging the AI will be hard enough and can become unmanageable with small bugs creeping in. Though has to go into choosing right [data structures](data_structure.md) so as to allow nice [optimizations](optimization.md), for example board representation plays an important role (two main approaches are a 64x64 2D array holding each square's piece vs keeping a list of pieces, each one recording its position).
|
||||
The core of chess programming is writing the [AI](ai.md). Everything else, i.e. implementing the rules, communication protocols etc., is usually pretty straightforward (but still a good programming exercise). Nevertheless, as the chess programming wiki stresses, one has to pay a great attention to eliminating as many [bugs](bug.md) as possible; really, the importance of writing automatic tests can't be stressed enough as debugging the AI will be hard enough and can become unmanageable with small bugs creeping in. However to make the AI good it's important to [optimize](optimization.md) the functions that work with the board, i.e. it's important to be able to generate moves quickly, quickly detect checks/mates and so on (because the AI will be checking billions of positions, any optimization will allow to search many more positions). Thought has to go into choosing right [data structures](data_structure.md) so as to allow nice [optimizations](optimization.md), for example board representation plays an important role -- main approaches here are for example having a 8x8 2D array holding each square's man, keeping a list of men (each explicitly recording its coordinates) or bitboards (8x8 times bit arrays, one for each piece type, recording where each man is placed).
|
||||
|
||||
The AI itself works traditionally on the following principle: firstly we implement so called static **evaluation function** -- a function that takes a chess position and outputs its evaluation number which says how good the position is for white vs black (positive number favoring white, negative black, zero meaning equal, units usually being in pawns, i.e. for example -3.5 means black has an advantage equivalent to having extra 3 and a half pawns; to avoid fractions we sometimes use centipawns, i.e. rather -350). This function considers a number of factors such as total material of both players, pawn structure, king safety, men mobility and so on. Traditionally this function has been hand-written, nowadays it is being replaced by a learned [neural network](neural_network.md) ([NNUE](nnue.md)) which showed to give superior results (e.g. Stockfish still offers both options); for starters you probably want to write a simple evaluation function manually.
|
||||
The AI itself works traditionally on the following principle: firstly we implement so called static **evaluation function** -- a function that takes a chess position and outputs its evaluation number which says how good the position is for white vs black (positive number favoring white, negative black, zero meaning equal, units usually being in pawns, i.e. for example -3.5 means black has an advantage equivalent to having extra 3 and a half pawns; to avoid fractions we sometimes use centipawns, i.e. rather -350). This function considers a number of factors such as total material of both players, pawn structure, king safety, men mobility and so on. Traditionally this function has been hand-written (also called HCE, hand crafted evaluation), nowadays it is being replaced by a learned [neural network](neural_network.md) ([NNUE](nnue.md)) which showed to give superior results (e.g. Stockfish still offers both options, however the neural net seems to save about half of the computation time); for starters you probably want to write a simple evaluation function manually.
|
||||
|
||||
Note: if you could make a perfect evaluation function that would completely accurately state given position's true evaluation (considering all possible combinations of moves until the end of game), you'd basically be done right there as your AI could just always make a move that would take it to the position which your evaluation function rated best, which would lead to perfect play by searching just to depth 1. Though neural networks got a lot closer to this ideal than we once were, as far as we can foresee ANY evaluation function will always be just an approximation, an estimation, heuristic, many times far away from perfect evaluation, so we cannot stop at this. We have to program yet something more. However some more relaxed engines that don't aim to be among the best can already work in the lazy way and be pretty good opponents -- see for example the Maia engine.
|
||||
Note: if you could make a perfect evaluation function that would completely accurately state given position's true evaluation (considering all possible combinations of moves until the end of game), you'd basically be done right there as your AI could just always make a move that would take it to the position which your evaluation function rated best, which would lead to perfect play by searching just to depth 1. Though neural networks got a lot closer to this ideal than we once were, as far as we can foresee ANY evaluation function will always be just an [approximation](approximation.md), an estimation, [heuristic](heuristic.md), many times far from perfect evaluation, so we cannot stop at this. We have to program yet something more. However some more relaxed engines that don't aim to be among the best can already work in the lazy way and be pretty good opponents -- see for example the Maia engine.
|
||||
|
||||
So secondly we need to implement a so called **search** algorithm -- typically some modification of [minimax](minimax.md) algorithm, e.g. with alpha-beta pruning -- that recursively searches the game tree and looks for a move that will lead to the best result in the future, i.e. to position for which the evaluation function gives the best value. This basic principle, especially the search part, can get very complex as there are many possible weaknesses and optimizations. For example (somewhat counterintuitively) it turns out to be a good idea to do iterative deepening, i.e. first searching to depth 1, then to depth 2, then to depth 3 etc., rather than searching to depth N right away. But again, this is all too complicated to expand on here. Just note now that doing the search kind of improves on the basic static evaluation function by making it [dynamic](dynamic.md) and so increases its accuracy greatly (of course for the price of CPU time spent on searching).
|
||||
So secondly we need to implement a so called **search** algorithm -- typically some modification of the [minimax](minimax.md) algorithm, e.g. with alpha-beta pruning -- that [recursively](recursion.md) searches the game tree and looks for a move that will lead to the best result in the future, i.e. to position for which the evaluation function gives the best value (minimax in short: the evaluation of current position is the maximum of evaluations of all our moves, out of which evaluation of each is the minimum of all opponent's moves, i.e. the best opponent's response, then again we search for maximum of our moves, i.e. our best response, etc. until given depth). This basic principle, especially the search part, can get very complex as there are many possible weaknesses and optimizations. For example (somewhat counterintuitively) it turns out to be a good idea to do iterative deepening, i.e. first searching to depth 1, then to depth 2, then to depth 3 etc., rather than searching to depth N right away. But again, this is all too complicated to expand on here. Just note now that doing the search kind of improves on the basic static evaluation function by making it [dynamic](dynamic.md) and so increases its accuracy greatly (of course for the price of CPU time spent on searching).
|
||||
|
||||
Exhaustively searching the tree to great depths is not possible even with most powerful hardware due to astronomical numbers of possible move combinations, so the engine has to limit the depth quite greatly and use various [hacks](hacking.md), [approximations](approximation.md), [heuristics](heuristic.md) etc.. Normally it will search all moves to a small depth (e.g. 2 or 3 half moves or *plys*) and then extend the search for interesting moves such as exchanges or checks. Maybe the greatest danger of searching algorithms is so called **horizon effect** which has to be addressed somehow (e.g. by detecting quiet positions, so called *quiescence*). If not addressed, the horizon effect will make an engine misevaluate certain moves by stopping the evaluation at certain depth even if the played out situation would continue and lead to a vastly different result (imagine e.g. a queen taking a pawn which is guarded by another pawn; if the engine stops evaluating after the pawn take, it will think it's a won pawn, when in fact it's a lost queen). There are also many techniques for reducing the number of searched tree nodes and speeding up the search, for example pruning methods such as **alpha-beta** (which subsequently works best with correctly ordering moves to search), or **transposition tables** (remembering already evaluated position so that they don't have to be evaluated again when encountered by a different path in the tree).
|
||||
Exhaustively searching the tree to great depths is not possible even with most powerful [hardware](hw.md) due to astronomical numbers of possible move combinations, so the engine has to limit the depth quite greatly and use various [hacks](hacking.md), [approximations](approximation.md), [heuristics](heuristic.md), [caches](cache.md) etc.. Normally it will search all moves to a small depth (e.g. 2 or 3 half moves or *plys*) and then extend the search for interesting moves such as exchanges or checks. Maybe the greatest danger of searching algorithms is so called **horizon effect** which has to be addressed somehow (e.g. by detecting quiet positions, so called *quiescence*). If not addressed, the horizon effect will make an engine misevaluate certain moves by stopping the evaluation at certain depth even if the played out situation would continue and lead to a vastly different result (imagine e.g. a queen taking a pawn which is guarded by another pawn; if the engine stops evaluating after the queen's pawn capture, it will think it's a won pawn, when in fact it's a lost queen). There are also many techniques for reducing the number of searched tree nodes and speeding up the search, for example pruning methods such as **alpha-beta** (which subsequently works best with correctly ordering moves to search), or **transposition tables** (remembering already evaluated position so that they don't have to be evaluated again when encountered by a different path in the tree). Furthermore we may try to combine many different things together, for example exhaustive search for some situations along with monte carlo in others; we may also try to employ more machine learning, e.g. make a special neural net just for suggesting which moves and to what depth should be searched etc.
|
||||
|
||||
**Alternative approaches**: most engines work as described above (search plus evaluation function) with some minor or bigger modifications. The simplest possible stupid AI can just make random moves, which will of course be an extremely weak opponent (though even weaker can be made, but these will actually require more complex code as to play worse than random moves requires some understanding and searching for the worst moves) -- one might perhaps try to just program a few simple rules to make it a bit less stupid and possibly a simple training opponent for complete beginners: the AI may for example pick a few "good looking" candidate moves that are "usually OK" (pushing a pawn, taking a higher value piece, castling, ...) and aren't a complete insanity, then pick one at random only from those (this randomness can further be improved and gradually controlled by scoring the moves somehow and adding a more or less random value from some range to each score, then picking the moves with highest score). One could also try to just program in a few generic rules such as: checkmate if you can, otherwise take an unprotected piece, otherwise protect your own unprotected piece etc. -- this could produce some beginner level bot. Another idea might be a "Chinese room" bot that doesn't really understand chess but has a huge database of games (which it may even be fetching from some Internet database) and then just looking up what moves good players make in positions that arise on the board, however a database of all positions will never exist, so in case the position is not found there has to be some fallback (e.g. play random move, or somehow find the "most similar position" and use that, ...). As another approach one may try to use some **non neural network [machine learning](machine_learning.md)**, for example [genetic programming](genetic_programming.md), to train the evaluation function, which will then be used in the tree search. Another idea that's being tried (e.g. in the Maia engine) is **pure neural net AI** (or another form of machine learning) which doesn't use any tree search -- not using search at all has long been thought to be impossible as analyzing a chess position completely statically without any "looking ahead" is extremely difficult, however new neural networks have shown to be extremely good at this kind of thing and pure NN AIs can now play on a master level (a human grandmaster playing ultra bullet is also just a no-calculation, pure pattern recognition play). Next, **[Monte Carlo](monte_carlo.md) tree search** (MCTS) is an alternative way of searching the game tree which may even work without any evaluation function: in it one makes many random playouts (complete games until the end making only random moves) for each checked move and based on the number of wins/losses/draws in those playouts statistically a value is assigned to the move -- the idea is that a move that most often leads to a win is likely the best. Another Monte Carlo approach may just make random playouts, stop at random depth and then use normal static evaluation function (horizon effect is a danger but hopefully its significance should get minimized in the averaging). However MCTS is pretty tricky to do well. MCTS is used e.g. in Komodo Dragon, the engine that's currently among the best. Another approach may lie in somehow using several methods and [heuristics](heuristic.md) to vote on which move would be best.
|
||||
|
||||
|
@ -132,7 +134,7 @@ Chess stats are pretty [interesting](interesting.md). Thanks a lot e.g. to Liche
|
|||
|
||||
Similarly the **number of possibly reachable positions** (position for which so called *proof game* exists) is not known exactly, it is estimated to at least 10^40 and 10^50 at most. Numbers of possible positions by plies is 20 after 1, 400 after 2, 5362 after 3, 72078 after 4, 822518 after 5, and 726155461002 after 11.
|
||||
|
||||
**Shortest possible checkmate** is by black on ply number 4 (so called *fool's mate*). As of 2022 the **longest known forced checkmate** is in 549 moves -- it has been discovered when computing the Lomonosov Tablebases.
|
||||
**Shortest possible checkmate** is by black on ply number 4 (so called *fool's mate*). As of 2022 the **longest known forced checkmate** is in 549 moves -- it has been discovered when computing the Lomonosov Tablebases. EDIT: now it seems there is one in 584 moves. Please note this: there most likely exist much longer forced mates, these are just the KNOWN ones. Consider e.g. that if black blunders a queen in the opening, the game is very likely a theoretical win for white since then, i.e. a forced mate, and with perfect play black can probably resist for very long. However such situations are too complex to explore fully.
|
||||
|
||||
Average game of chess lasts 40 (full) moves (80 plies). **Average [branching factor](branching_factor.md)** (number of possible moves at a time) is around 33. **Maximum number of possible moves in a position** seems to be 218 (FEN: `R6R/3Q4/1Q4Q1/4Q3/2Q4Q/Q4Q2/pp1Q4/kBNN1KB1 w - - 0 1`).
|
||||
|
||||
|
@ -142,20 +144,40 @@ What is the **longest possible game**? It depends on the exact rules and details
|
|||
|
||||
The **longest game played in practice** is considered to be the one between Nikolic and Arsovic from 1989, a draw with 269 moves lasting over 20 hours. For a shortest game there have been ones with zero moves; serious decisive shortest game has occurred multiple times like this: `1.d4 Nf6 2.Bg5 c6 3.e3 Qa5+` (white resigned).
|
||||
|
||||
**Best players ever**: a 2017 paper called *Who is the Master?* analyzed 20 of the top players of history based on how good their moves were compared to Stockfish, the strongest engine. The resulting **top 10** was (from best): Carlsen (born 1990 Norway, peak Elo 2882), Kramnik (born 1975 Russia, peak Elo 2817), Fischer (born 1943 USA, peak Elo 2785), Kasparov (born 1963 Russia, peak Elo 2851), Anand (born 1969 India, peak Elo 2817), Khalifman, Smyslov, Petrosian, Karpov, Kasimdzhanov. It also confirmed that the quality of chess play at top level has been greatly increasing. The **best [woman](woman.md) player** in history is considered to be Judit Polgar (born 1976 Hungary, peak Elo 2735), which still only managed to reach some 49th place in the world; by Elo she is followed by Hou Yifan (born 1994 China, peak Elo 2686) and Koneru Humpy (born 1987 India, peak Elo 2623). **Strongest players of black [race](race.md)** (NOT including brown, e.g. India): lol there don't seem to be many black players in chess :D The first black GM only appeared in 1999 (!!!) -- Maurice Ashley (born 1966 Jamaica, peak rating 2504) who is also probably the most famous black chess player, though more because of his commentator skills; Pontus Carlsson (peak Elo 2531) may be strongest. { Sorry if I'm wrong about the strongest black player, this information is pretty hard to find as of course you won't find a race record in any chess player database. So thanks to political correctness we just can't easily find good black players. ~drummyfish }
|
||||
**Best players ever**: a 2017 paper called *Who is the Master?* analyzed 20 of the top players of history based on how good their moves were compared to Stockfish, the strongest engine. The resulting **top 10** was (from best): Carlsen (born 1990 Norway, peak Elo 2882), Kramnik (born 1975 Russia, peak Elo 2817), Fischer (born 1943 USA, peak Elo 2785), Kasparov (born 1963 Russia, peak Elo 2851), Anand (born 1969 India, peak Elo 2817), Khalifman, Smyslov, Petrosian, Karpov, Kasimdzhanov. It also confirmed that the quality of chess play at top level has been greatly increasing. The **best [woman](woman.md) player** in history is considered to be Judit Polgar (born 1976 Hungary, peak Elo 2735), which still only managed to reach some 49th place in the world; by Elo she is followed by Hou Yifan (born 1994 China, peak Elo 2686) and Koneru Humpy (born 1987 India, peak Elo 2623). **Strongest players of black [race](race.md)** (NOT including brown, e.g. India): lol there don't seem to be many black players in chess :D The first black GM only appeared in 1999 (!!!) -- Maurice Ashley (born 1966 Jamaica, peak rating 2504) who is also probably the most famous black chess player, though more because of his commentator skills; Pontus Carlsson (peak Elo 2531) may be strongest. { Sorry if I'm wrong about the strongest black player, this information is pretty hard to find as of course you won't find a race record in any chess player database. So thanks to political correctness we just can't easily find good black players. ~drummyfish } **Strongest engine** is currently the latest version of Stockfish NNUE.
|
||||
|
||||
What is **the most typical game**? We can try to construct such a game from a game database by always picking the most common move in given position. Using the lichess database at the time of writing, we get the following incomplete game (the remainder of the game is split between four games, 2 won by white, 1 by black, 1 drawn):
|
||||
|
||||
```
|
||||
1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. c3 Nf6 5. d4 exd4
|
||||
6. cxd4 Bb4+ 7. Nc3 Nxe4 8. O-O Bxc3 9. d5 Bf6 10. Re1 Ne7
|
||||
11. Rxe4 d6 12. Bg5 Bxg5 13. Nxg5 h6 14. Qe2 hxg5
|
||||
15. Re1 Be6 16. dxe6 f6 17. Re3 c6 18. Rh3 Rxh3
|
||||
19. gxh3 g6 20. Qf3 Qa5 21. Rd1 Qf5 22. Qb3 O-O-O
|
||||
23. Qa3 Qc5 24. Qb3 d5 25. Bf1
|
||||
1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. c3 Nf6 5. d4 exd4 6. cxd4 Bb4+
|
||||
7. Nc3 Nxe4 8. O-O Bxc3 9. d5 Bf6 10. Re1 Ne7 11. Rxe4 d6
|
||||
12. Bg5 Bxg5 13. Nxg5 h6 14. Qe2 hxg5 15. Re1 Be6 16. dxe6 f6
|
||||
17. Re3 c6 18. Rh3 Rxh3 19. gxh3 g6 20. Qf3 Qa5 21. Rd1 Qf5
|
||||
22. Qb3 O-O-O 23. Qa3 Qc5 24. Qb3 d5 25. Bf1
|
||||
```
|
||||
|
||||
What's **the best and worst opening move according to the engines?** (Please remember that engine best move is not necessarily the best move for a human, see the note on perfect play above.) According to Lichess cloud database (accessible via public API) that stores stockfish evaluations for various positions, E4 leads to the best evaluated position (18 centipawn, evaluated to depth 70; the move is also seen by many as best for humans), closely followed by D4 and Nf3 (both 17 centipawn, depth 47 and 56) and C4 (12 centipawn, depth 59). Worst move here is by far g4 with evaluation -96 centipawn (depth 52) -- almost a whole pawn, i.e. stockfish says that by playing this move you basically just throw away your pawn immediately. Another bad move is apparently f3 (-76, depth 40), Nh3 (-42), Na3 (-33), b4 or h4 (both -28).
|
||||
What's **the best and worst opening move according to the engines?** Please remember that engine best move is not necessarily the best move for a human, see the note on perfect play above. Also the answer will depend on which engine (what evaluation function) you use and to what depth you search. According to Lichess cloud database (accessible via public API) that stores stockfish evaluations for various positions, e4 leads to the best evaluated position (18 centipawn, evaluated to depth 70; the move is also seen by many as best for humans), closely followed by d4 and Nf3 (both 17 centipawn, depth 47 and 56) and C4 (12 centipawn, depth 59). Worst move here is by far g4 with evaluation -96 centipawn (depth 52) -- almost a whole pawn, i.e. stockfish says that by playing this move you basically just throw away your pawn immediately. Another bad move is apparently f3 (-76, depth 40), Nh3 (-42), Na3 (-33), b4 or h4 (both -28). In general both humans and engines are basically deciding between e4 and d4, deeper evaluations keep oscillating between them.
|
||||
|
||||
How big is the **white's starting move advantage**? Based on the above evaluations of all starting moves the initial position is rated at 18 centipawn (for the best move found, e4), i.e. with this specific engine and search depth we are told white has, in material terms, an advantage of almost a fifth of a pawn.
|
||||
|
||||
What's **the perfect game according to an engine**? Again, this will vary depending on new and better versions of engines coming out, on hardware, time we spend on computing moves etc. The following draw was produced by taking the first six highly analyzed moves from the Lichess cloud database and letting the rest of the game be played by stockfish 15.1 (each player given 30 minutes plus 5 second increment, moves were usually analyzed to 50+ depth):
|
||||
|
||||
```
|
||||
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. O-O Nxe4 5. Re1 Nd6 6. Nxe5 Nxe5 7. Rxe5+ Be7
|
||||
8. Bf1 O-O 9. d4 Bf6 10. Re1 Re8 11. c3 Rxe1 12. Qxe1 Ne8 13. Bf4 d5 14. Nd2 Bf5
|
||||
15. Qe2 Nd6 16. Nb3 b6 17. Re1 c6 18. Nd2 h6 19. h3 Qd7 20. Qd1 Rd8 21. Nf3 Nc4
|
||||
22. b3 Nd6 23. Qc1 c5 24. Ba6 Re8 25. Rxe8+ Nxe8 26. Qe3 Nc7 27. Be2 Ne6 28. Be5
|
||||
Be7 29. Bd3 Bxd3 30. Qxd3 Ng5 31. Nxg5 hxg5 32. a4 f6 33. Bg3 Bd6 34. dxc5 Bxg3
|
||||
35. Qxg3 bxc5 36. Qe3 d4 37. cxd4 cxd4 38. Qd3 Kf7 39. Kf1 Qd6 40. Qc4+ Kf8 41.
|
||||
Ke2 Qe5+ 42. Kd1 Qe4 43. Qc5+ Kg8 44. Qc4+ Kf8 45. b4 Qb1+ 46. Kd2 Qb2+ 47. Ke1
|
||||
d3 48. Qc5+ Kf7 49. Qd5+ Ke7 50. Qb7+ Kd6 51. Qa6+ Ke5 52. Qb5+ Kf4 53. Qc4+ Ke5
|
||||
54. Qb5+ Ke4 55. Qc6+ Ke5 56. Qc5+ Ke6 57. Qc4+ Ke5 58. Qc5+ Ke6 59. Qc6+ Ke5
|
||||
60. Qc7+ Ke4 61. Qb7+ Kd4 62. Qxa7+ Kc3 63. Qc5+ Kb3 64. Qd5+ Kc3 65. Qc6+ Kb3
|
||||
66. Qd5+ Kxa4 67. Qxd3 Kxb4 68. Qe4+ Kc3 69. Qc6+ Kd3 70. Qd6+ Qd4 71. Qa6+ Qc4
|
||||
72. Qxc4+ Kxc4 73. Ke2 Kd4 74. Kf3 Kd3 75. g3 f5 76. h4 gxh4 77. gxh4 Kd2 78. h5
|
||||
Ke1 79. Kg2 f4 80. Kf3 Kf1 81. Kxf4 Kxf2 82. Kf5 Kg3 83. Kg6 Kg4 84. h6 gxh6 85.
|
||||
Kxh6 1/2-1/2
|
||||
```
|
||||
|
||||
What is **the rarest move**? Some [YouTube](youtube.md) video tried to investigate this with the help of Lichess database. Things that immediately come to mind like en passant checkmates and checkmates by promoting to a knight are rare but not insanely rare. A crazily rare kind of move, which only appeared ONCE in the whole database, was a doubly disambiguatated (i.e. with the necessary specification of both rank and file of the bishop) checkmate by a bishop (specifically Bf1g2#, occurring in a 2022 game) -- this is rare because to need a double disambiguation for a bishop move it is necessary to underpromote two pawns to a bishop and then place them correctly. Yet rarer moves, which NEVER appeared in the database, were a doubly disambiguated knight checkmate with capture and doubly disambiguated bishop checkmate with capture, latter of which was judged less likely and therefore probably the rarest move ever.
|
||||
|
||||
|
@ -247,16 +269,21 @@ Some general tips and rules of thumb, mostly for beginners:
|
|||
- Develop your men before attacking, usually knights go out before bishops, bishops are well placed on the longest diagonals as "snipers".
|
||||
- Learn basic tactics, especially **forks** (attacking two or more men at once so that one of them cannot escape capture) and **pins** (attack one man so that if he moves out of the way he will expose another one to be captured).
|
||||
- King safety is extremely important until endgame, castle very early but not extremely early. In the endgame (with queens out) king joins the battle as another active man.
|
||||
- Pawn structure is very important.
|
||||
- Pawn structure is very important (avoid doubled and isolated pawn, watch out for the weak back pawns etc.).
|
||||
- Watch out for back rank checkmates, make an escape square for your king.
|
||||
- Rooks want to be on open files, you also want to CONNECT them (have both guard each other). Also a rook in the opponents second row (2nd/7th rank) is pretty good.
|
||||
- Stack rooks, i.e. place them on the same open file -- this is very powerful. You can also stack two rooks and a queen and create a so call legendary triple stack which is extremely powerful.
|
||||
- If you find a good move, look for a better one. There seems to be this pattern in which if you spot a good move, it indicates that opponent's position is falling apart and usually there is a much more powerful, crashing move to play.
|
||||
- Bishops are generally seen a bit more valuable than knights, especially in pairs -- if you can trade your knight for opponent's bishop, it's often good. If your opponent has two bishops and you only have one, you want to trade yours for his so he doesn't have the pair. A knight pair is also pretty powerful though, especially when the knights are guarding each other.
|
||||
- Consider the bishop difference: one only covers white squares, the other only black ones. Take this into account when exchanging bishops, sacrificing them, placing your pieces on white vs dark squares etc.
|
||||
- "Knight on a rim is dim" (knights are best placed near the center).
|
||||
- An extremely strong formation is both rooks and the queen on the same open file.
|
||||
- Blocking the opponents man so that it can't move is almost as good as taking it. And vice versa: you want to activate all your men if possible.
|
||||
- Nubs are weak against long range bishops, they can't see them. Place a bishop to corner on the long diagonal and just snipe the opponent's material.
|
||||
- Don't play "hope chess", always suppose your opponent will play the best move he can.
|
||||
- Blocking the opponent's man so that he can't move (i.e. making it inactive) is almost as good as taking it. And vice versa: you want to activate all your men if possible, put them on good squares and make them do something.
|
||||
- Nubs are weak against long range bishops, they can't see them. Place a bishop to corner on the long diagonal and just snipe the opponent's material. See also fianchetto.
|
||||
- Don't play "hope chess", always suppose your opponent will play the best move he can. Don't give a check just because you can, always try to invalidate the move you want to play and only play it if you can't find an easy counter to it.
|
||||
- If you can achieve something with multiple men, usually it's best to do it with the weakest one.
|
||||
- Have a plan, even a simple one -- you mustn't just be answering the opponent's moves, you want to have goal (but you may change your goals quickly) such as "I wanna develop and castle, then start attacking this weak pawn here" etc.
|
||||
- Think from opponent's point of view -- this seems to be an important skill that beginners lack. If you only think about what you want to do, you often find yourself in trouble because you ignored the opponent's threats.
|
||||
- Practice endgame -- the play is quite different from middle game, the king joins the battle, you start to race your pawns and prevent opponent's pawns from promoting. { I don't know if it's a good advice but at least in puzzles I've found that if you aren't sure about your move in the endgame, pushing the pawn is usually the right move :D ~drummyfish }
|
||||
- TODO: moar
|
||||
|
||||
## How To Disrespect Your Opponent And Other Lulz In Chess
|
||||
|
|
|
@ -8,7 +8,7 @@ Internet is built on top of [protocols](protocol.md) (such as [IP](ip.md), [HTTP
|
|||
|
||||
Access to the Internet is offered by [ISPs](isp.md) (internet service providers) but it's pretty easy to connect to the Internet even for free, e.g. via free [wifis](wifi.md) in public places, or in libraries. By 2020 more than half of world's population had access to the Internet -- most people in the first world have practically constant, unlimited access to it via their [smartphones](smartphone.md), and even in [poor countries](shithole.md) [capitalism](capitalism.md) makes these devices along with Internet access cheap as people constantly carrying around devices that display [ads](ad.md) and spy on them is what allows their easy [exploitation](leading_the_pig_to_the_slaughterhouse.md).
|
||||
|
||||
Initially the Internet was basically a purely technological marvel but since its wide spread that made it an inseparable part of our everyday lives it also turned into a phenomenon of interest to many other fields such as psychology and sociology. By now the number of various Internet communities and subcultures has grown so much that a sociologist can probably spend a whole career studying only Internet communities, of which many have risen and fallen over the decades. Studying Internet [culture](culture.md) has become a hobby to many, something akin an alternative to traveling [in real life](irl.md) -- the Internet is quite like an another planet now, with new countries and nations coming to existence, with their own laws and even language dialects forming in the virtual Universe. In the 2000s the situation was basically this: older people didn't know the Internet slang and young people did. By 2020s everyone knows the Internet, it's just that different people are familiar with different corners of it, with different flavors of [memes](meme.md), slang and in-jokes, some are [Facebook](facebook.md) and Twitter normies, some are TikTokers, some are [4channers](4chan.md), [redditors](reddit.md), [Usenet](usenet.md) and [IRC](irc.md) boomers, quake multiplayer enjoyers, some are [suckless](suckless.md) hackers, some fancy deeper underground such as Vidlii, [Bitreich](bitreich.md), [LRS](lrs.md), [gopher](gopher.md), [encyclopedia dramatica](dramatica.md), some love [netstalking](netstalking.md), [darknet](darknet.md) exploration, data archeology and hoarding. And so on and so forth.
|
||||
Initially the Internet was basically a purely technological marvel but since its wide spread that made it an inseparable part of our everyday lives it also turned into a phenomenon of interest to many other fields such as psychology and sociology. By now the number of various Internet communities and subcultures has grown so much that a sociologist can probably spend a whole career studying only Internet communities, of which many have risen and fallen over the decades. Studying Internet [culture](culture.md) has become a hobby to many, something akin an alternative to traveling [in real life](irl.md) -- the Internet is quite like an another planet now, with new countries and nations coming to existence, with their own laws and even language dialects forming in the virtual Universe. In the 2000s the situation was basically this: older people didn't know the Internet slang and young people did. By 2020s everyone knows the Internet, it's just that different people are familiar with different corners of it, with different flavors of [memes](meme.md), slang and in-jokes, some are [Facebook](facebook.md) and Twitter normies, some are TikTokers, some are [4channers](4chan.md), [redditors](reddit.md), [Usenet](usenet.md) and [IRC](irc.md) boomers, quake multiplayer enjoyers, some are [suckless](suckless.md) hackers, some fancy deeper underground such as Vidlii, [Bitreich](bitreich.md), [LRS](lrs.md), [gopher](gopher.md), [encyclopedia dramatica](dramatica.md), some love [netstalking](netstalking.md), [darknet](darknet.md) exploration, data archeology and [hoarding](data_hoarding.md). And so on and so forth.
|
||||
|
||||
The following are some **statistics** about the Internet as of early 2020s: there are over 5 billion users world-wide (more than half of them from Asia and mostly young people), it is estimated 63% people worldwide use the Internet with the number being as high as 90% in the developed countries. Most Internet users are English speakers (27%), followed by Chinese speakers (25%). It's also estimated over 50 billion individual devices connected, about 2 billion websites (over 60% in [English](english.md)) on the web, hundreds of billions of emails are sent every day, average connection speed is 24 Mbps, there are over 370 million registered [domain](domain.md) names (most popular [TLD](tld.md) is .com), [Google](google.md) performs about 7 billion web searches daily (over 90% of all search engines).
|
||||
|
||||
|
|
|
@ -14,6 +14,8 @@ In the past JavaScript was only a **[client](client.md) side** scripting languag
|
|||
|
||||
**Why is it called JavaScript if it has nothing to do with Java?** Simply put the name was chosen because back then Java was the big thing and they wanted to show that JavaScript is kind of similar but complementary, the developers of the languages were associated with each other and they thought it would be good [marketing](marketing.md) to associate the languages through naming, but of course the languages are completely different.
|
||||
|
||||
{ Kek in 2024 JavaScript killed the Internet Archive :D Some JS library allowed some kinda cracker to bring it down or something, as of writing this the archive has been dead for more than a week and a recovery is still nowhere in sight, of course this also crippled or killed many other sites that rely on IA such as Librivox. Good job soydev retards, I wonder whose idea it was to use JavaScript on the site. ~drummyfish }
|
||||
|
||||
TODO: some more shit
|
||||
|
||||
## Examples
|
||||
|
|
|
@ -8,7 +8,7 @@ WORK IN PROGRESS
|
|||
| ------------------------------------------ | ----------------------------------------------------------- |
|
||||
| Amazon | Scamazon |
|
||||
| Amazon Kindle | Amazon Swindle |
|
||||
| American | Americunt, Amerifag, Yankee, Ameridiot |
|
||||
| American | Americunt, Amerifag, Yankee, Ameridiot, American't |
|
||||
| [anime](anime.md) | tranime |
|
||||
| [Apple](apple.md) user | iToddler, iDiot |
|
||||
| [Asperger](autism.md) | assburger |
|
||||
|
|
3558
random_page.md
3558
random_page.md
File diff suppressed because it is too large
Load diff
|
@ -73,6 +73,7 @@ Some stereotypes are:
|
|||
- socialists and [communists](communism.md) (from US perspective)
|
||||
- europoor (also from US perspective)
|
||||
- **[Czech](czechia.md)**:
|
||||
- you mean Czechoslovakia?
|
||||
- heavy drinkers, especially beer
|
||||
- friendly but appear cold
|
||||
- beautiful women, sluts
|
||||
|
@ -107,9 +108,9 @@ Some stereotypes are:
|
|||
- ugly women
|
||||
- women are cold, incapable of love
|
||||
- [nazis](nazism.md)
|
||||
- **Irish**
|
||||
- **Irish**:
|
||||
- drunk and violent
|
||||
- **Italians**:
|
||||
- **Italian**:
|
||||
- handsome men who are passionate lovers
|
||||
- extremely passionate, have heated emotional arguments about even trivial things
|
||||
- involved with mafia
|
||||
|
@ -125,13 +126,14 @@ Some stereotypes are:
|
|||
- cold, show no emotion
|
||||
- extremely liberal politics, [SJWs](sjw.md)
|
||||
- **Finland**:
|
||||
- people don't know what shame of nudity is thanks to sauna, everyone does sauna in Finland like in Japan everyone does karaoke
|
||||
- thanks to sauna people don't know shame of nudity -- like in Japan you go to karaoke after work, in Finland you will go to sauna after work with your colleagues and boss, all naked of course
|
||||
- **Norwegian**:
|
||||
- vikings, big tall, strong, muscular blonde men
|
||||
- metal music
|
||||
- hunt whales
|
||||
- **Swedish**:
|
||||
- women are all blonde super hot chicks with pigtails (like that one from Abba lol)
|
||||
- IKEA n shit
|
||||
- women are all super hot blonde chicks with pigtails (like that one from Abba lol)
|
||||
- IKEA, meatballs n shit
|
||||
- **Scottish**:
|
||||
- men wear kilts
|
||||
- **Slovak**:
|
||||
|
@ -211,6 +213,7 @@ Some stereotypes are:
|
|||
- **[slavs](slav.md)**:
|
||||
- [trolls](troll.md)
|
||||
- don't give a shit much about anything
|
||||
- either poor or rich Russian mafia bosses
|
||||
- **[white](white.md)**
|
||||
- pinnacle of [evolution](evolution.md), like Michelangelo's Davis is the peak of [art](art.md)
|
||||
- smart, beautiful, generally good at everything
|
||||
|
@ -220,16 +223,19 @@ Some stereotypes are:
|
|||
- not many strong stereotypes as whiteness is seen as the default, the norm to which others are compared
|
||||
- **by sex/gender/orientation**:
|
||||
- **[gays](gay.md)**:
|
||||
- men act feminine, are good at art and women jobs
|
||||
- men act feminine, are good at art and women jobs, like pink color, fashion, cooking and cleaning
|
||||
- there are two types: the feminine sissy and the big hairy bear biker, in a pair one does mommy and the other one daddy
|
||||
- loves to wear latex
|
||||
- women (lesbian) are masculine, ugly with short pink hair
|
||||
- **[men](man.md)**:
|
||||
- direct, strong, decisive, stubborn, overconfident, when provoked may easily be rude and aggressive, beat their wives
|
||||
- direct, strong, decisive, stubborn, overconfident, primitive, when provoked may easily be rude and aggressive, beat their wives
|
||||
- [competitive](competition.md)
|
||||
- good at [math](math.md) and exact sciences, often on detriment of being good at art, humanities and "soft skills" (these are seen as gay)
|
||||
- hide their feelings, trash talk ever best friends, revealing feminine emotions is seen as a weakness and sign of [homosexuality](gay.md)
|
||||
- thinking only of [sex](sex.md), will have sex with every woman any time and everywhere, will have as many sexual partners as possible, however romantically will love only one woman, to the point of dying for her (but will rather die than marry her)
|
||||
- obsessed with and insecure about penis size
|
||||
- like cars, guns, military, machines in general, building and repairing "[do it yourself](dyi.md)" style, not reading manuals (that's for sissies)
|
||||
- at heart stay a little boy their whole lives, just need bigger and more expensive toys, never mature (from woman point of view)
|
||||
- **[women](woman.md)** (may also apply to gay men):
|
||||
- bad at driving, bad spatial skills
|
||||
- bad at logical thinking and [math](math.md)
|
||||
|
@ -241,12 +247,14 @@ Some stereotypes are:
|
|||
- attracted to douchebags, assholes and money, golddigging, avoid nice guys
|
||||
- can distinguish and name different shades of similar colors
|
||||
- on board of a ship bring bad luck
|
||||
- love fashion, the color pink, Barbie dolls, cleaning, cooking etc.
|
||||
- love fashion, the color pink, Barbie dolls, cleaning, ironing, cooking etc.
|
||||
- secretly want to have sex with [dogs](dog.md) rather than with men
|
||||
- **blonde**, attractive ones:
|
||||
- extremely stupid
|
||||
- even more gold digging
|
||||
- **other**:
|
||||
- **ginger**:
|
||||
- have no soul
|
||||
- **lawyers**:
|
||||
- lowest form of life, parasites and leeches
|
||||
- no morals whatsoever, lie is their daily bread
|
||||
|
@ -254,10 +262,10 @@ Some stereotypes are:
|
|||
- **[programmers](programming.md)**:
|
||||
- white fat male neckbeard, has no life, lives in basement
|
||||
- genius, [nerd](nerd.md), loves tabletop games and similar things
|
||||
- [never had sex](wizard.md)
|
||||
- [never had sex](wizard.md) and never will
|
||||
- **[zoomers](zoomer.md)**:
|
||||
- broccoli haircut
|
||||
- males are 3 meters tall but anorexic and thin like paper (this is the beauty ideal of a zoomer girl)
|
||||
- males are 3 meters tall but anorexic and thin like paper, weights 40 kg (this is the beauty ideal of a zoomer girl)
|
||||
- has no idea what gender or [species](furry.md) he is, switches genders every few minutes
|
||||
- has 20 mental diseases, constant depression and self harm scars: paranoid schizo bipolar split personality with social anxiety, [autism](autism.md), "body dysmorphia", agoraphobia, [OCD](ocd.md) and ADHD is the standard base line -- despite breaking world records for simultaneously present crippling mental diseases he is able to function quite normally
|
||||
- techno slaves, against expectations very bad with technology -- is only a tech consumer but doesn't know how computers work (can't operate mouse, doesn't know what a file is, can't [torrent](torrent.md), can't use [email](email.md), can't do anything if it can't be done by issuing a voice command to a spy agent in his phone)
|
||||
|
|
2
usa.md
2
usa.md
|
@ -58,6 +58,8 @@ In [Europe](europe.md), or maybe just anywhere else in the world, you are afraid
|
|||
|
||||
In 1920 the "land of freedom" banned drinking alcohol so that capitalist slaves could spend less time on fun and more time on slavery, this was known as the prohibition and led to skyrocketing of organized crime. Another pinnacle of stupidity indeed. This lasted over a decade.
|
||||
|
||||
OK so now that we've mentioned the important stuff we may talk on a more lighthearted note: what are the things typical of the big shiny USA (see also [stereotypes](stereotype.md))? It's the little differences. For example: driving a bicycle and throwing newspapers onto houses of other people who all have a [dog](dog.md) trained to catch and bring the newspaper in the house. Or school buses. States and city layouts are always rectangular and perpendicular, no organic or curved shapes. Road signs and traffic lights are also all slightly wrong, for example the lines on roads are yellow instead of white, your lights are on the OPPOSITE side of the crossroad etc. Little children are required to dissect frogs in schools. In shops you will meet baggers -- people paid to put your groceries in your bag, you can't make this up. Everyone is suing everyone constantly, no divorce or even a minor traffic incident is complete without a lawsuit over horrendous sums, criminals get sentences to hundreds of years in jail plus several lifetimes on top just to make it more dramatic. Disgusting manners in eating, roasting marshmallows, drinking wine from plastic cups, putting peanut butter on everything and having all food, including bread, sweetened to the degree that would unironically be illegal in the EU. Also weird pseudosports and measurement units. Over the top friendliness, emotion, anger and disagreement: everyone is very vocal about what's currently on his mind and has to signal it with exaggerated body language, happy people are hugging each other, kissing, singing and dancing, annoyed people are waving guns and flags and shouting at each other over the street, complete strangers will smile at you and talk to you. Everything is far apart in the US and people commonly travel from state to state and coast to coast, to get to the shop you must first drive 3 hours through barren desert, people travel hundreds and thousands of kilometers (sorry, miles!) -- upon settling in a new place one must go and greet all the neighbors and inform them that he's a convicted [pedophile](pedophile.md) while bringing cake as a welcome gift. Houses look luxurious but are built with no foundation and have walls made of cardboard and polystyrene that a slightly stronger wind will destroy, it's all just about the external look, like the whole glorious US.
|
||||
|
||||
## See Also
|
||||
|
||||
- [elvis](elvis.md)
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -3,9 +3,9 @@
|
|||
This is an autogenerated article holding stats about this wiki.
|
||||
|
||||
- number of articles: 602
|
||||
- number of commits: 906
|
||||
- total size of all texts in bytes: 4479774
|
||||
- total number of lines of article texts: 33965
|
||||
- number of commits: 907
|
||||
- total size of all texts in bytes: 4484088
|
||||
- total number of lines of article texts: 33972
|
||||
- number of script lines: 294
|
||||
- occurrences of the word "person": 9
|
||||
- occurrences of the word "nigger": 98
|
||||
|
@ -16,7 +16,7 @@ longest articles:
|
|||
- [exercises](exercises.md): 112K
|
||||
- [capitalism](capitalism.md): 76K
|
||||
- [how_to](how_to.md): 72K
|
||||
- [chess](chess.md): 64K
|
||||
- [chess](chess.md): 68K
|
||||
- [less_retarded_society](less_retarded_society.md): 64K
|
||||
- [3d_rendering](3d_rendering.md): 56K
|
||||
- [faq](faq.md): 56K
|
||||
|
@ -35,36 +35,36 @@ longest articles:
|
|||
|
||||
top 50 5+ letter words:
|
||||
|
||||
- which (2517)
|
||||
- there (1929)
|
||||
- people (1767)
|
||||
- example (1523)
|
||||
- other (1394)
|
||||
- which (2518)
|
||||
- there (1930)
|
||||
- people (1771)
|
||||
- example (1524)
|
||||
- other (1398)
|
||||
- number (1262)
|
||||
- about (1226)
|
||||
- about (1227)
|
||||
- software (1208)
|
||||
- program (994)
|
||||
- because (969)
|
||||
- their (948)
|
||||
- would (920)
|
||||
- being (865)
|
||||
- something (857)
|
||||
- would (921)
|
||||
- being (866)
|
||||
- something (859)
|
||||
- things (852)
|
||||
- called (851)
|
||||
- language (848)
|
||||
- numbers (808)
|
||||
- simple (796)
|
||||
- computer (779)
|
||||
- without (749)
|
||||
- without (750)
|
||||
- programming (730)
|
||||
- function (716)
|
||||
- different (708)
|
||||
- these (704)
|
||||
- however (700)
|
||||
- however (701)
|
||||
- system (665)
|
||||
- world (656)
|
||||
- should (637)
|
||||
- doesn (637)
|
||||
- should (635)
|
||||
- while (626)
|
||||
- point (614)
|
||||
- games (610)
|
||||
|
@ -73,22 +73,35 @@ top 50 5+ letter words:
|
|||
- drummyfish (592)
|
||||
- using (575)
|
||||
- simply (574)
|
||||
- possible (570)
|
||||
- possible (572)
|
||||
- though (558)
|
||||
- https (550)
|
||||
- similar (541)
|
||||
- course (541)
|
||||
- https (540)
|
||||
- memory (530)
|
||||
- always (523)
|
||||
- basically (514)
|
||||
- value (513)
|
||||
- basically (513)
|
||||
- technology (512)
|
||||
- probably (509)
|
||||
- probably (511)
|
||||
- really (508)
|
||||
|
||||
latest changes:
|
||||
|
||||
```
|
||||
Date: Mon Oct 21 15:31:36 2024 +0200
|
||||
90s.md
|
||||
chess.md
|
||||
drummyfish.md
|
||||
fail_ab.md
|
||||
how_to.md
|
||||
main.md
|
||||
often_confused.md
|
||||
random_page.md
|
||||
science.md
|
||||
wiki_pages.md
|
||||
wiki_stats.md
|
||||
work.md
|
||||
Date: Sat Oct 19 22:01:36 2024 +0200
|
||||
90s.md
|
||||
backgammon.md
|
||||
|
@ -114,17 +127,6 @@ Date: Sat Oct 19 22:01:36 2024 +0200
|
|||
usa.md
|
||||
wiki_pages.md
|
||||
wiki_stats.md
|
||||
Date: Fri Oct 18 20:18:57 2024 +0200
|
||||
cyberbullying.md
|
||||
drummyfish.md
|
||||
freedom.md
|
||||
less_retarded_society.md
|
||||
needed.md
|
||||
random_page.md
|
||||
slowly_boiling_the_frog.md
|
||||
stereotype.md
|
||||
wiki_pages.md
|
||||
wiki_stats.md
|
||||
```
|
||||
|
||||
most wanted pages:
|
||||
|
@ -160,8 +162,8 @@ most popular and lonely pages:
|
|||
- [suckless](suckless.md) (144)
|
||||
- [game](game.md) (144)
|
||||
- [proprietary](proprietary.md) (128)
|
||||
- [minimalism](minimalism.md) (107)
|
||||
- [modern](modern.md) (103)
|
||||
- [minimalism](minimalism.md) (108)
|
||||
- [modern](modern.md) (104)
|
||||
- [computer](computer.md) (102)
|
||||
- [censorship](censorship.md) (101)
|
||||
- [kiss](kiss.md) (100)
|
||||
|
|
20
wizard.md
20
wizard.md
|
@ -1,11 +1,27 @@
|
|||
# Wizard
|
||||
|
||||
Wizard is a male [virgin](virgin.md) who is at least 30 years old ([female](female.md) virgins of such age haven't been seen yet). The word is sometimes also used for a man who's just very good with [computers](computer.md). These two sets mostly overlap so it rarely needs to be distinguished which meaning we intend.
|
||||
Wizard is a [male](man.md) [virgin](virgin.md) who is at least 30 years old ([female](female.md) virgins of such age haven't been seen yet). The word is sometimes also used for a man who's just very good with [computers](computer.md). These two sets mostly overlap so it rarely needs to be distinguished which meaning we intend.
|
||||
|
||||
```
|
||||
__ ___
|
||||
/__\ _/ _(
|
||||
\\// __/_ ]__
|
||||
(( '--,___,--'
|
||||
)) /[-L-]\
|
||||
||_____| '^' |_____
|
||||
E=]____ \ / _[,,)
|
||||
|| \( ( /
|
||||
|| ) \ ) (
|
||||
{{ | " |
|
||||
|| / | \
|
||||
L| _/__,,A_,,__\_
|
||||
```
|
||||
|
||||
There is an [imageboard](imageboard.md) for wizards called [wizardchan](wizchan.md). It is alright but also kind of sucks, for example you can't share your [art](art.md) with others because of stupid anti-[doxxing](dox.md) rules that don't even allow to dox yourself.
|
||||
|
||||
## See Also
|
||||
|
||||
- [drummyfish](drummyfish.md)
|
||||
- [incel](incel.md)
|
||||
- [volcel](volcel.md)
|
||||
- [hacker](hacking.md)
|
||||
- [drummyfish](drummyfish.md)
|
Loading…
Reference in a new issue