Update
This commit is contained in:
parent
671c98ff3a
commit
ae83a3d0c0
5 changed files with 38 additions and 9 deletions
6
chess.md
6
chess.md
|
@ -128,7 +128,11 @@ Programming chess is a [fun](fun.md) and enriching experience and is therefore r
|
||||||
|
|
||||||
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 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 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). 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. Secondly we implement a **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.
|
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.
|
||||||
|
|
||||||
|
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 lead to position which your evaluation function rated best, which would lead to perfect play. 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.
|
||||||
|
|
||||||
|
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. Note now that this 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 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).
|
||||||
|
|
||||||
|
|
|
@ -8,5 +8,8 @@ History: it all started around 1985 as a program called ChipTest by some Taiwane
|
||||||
|
|
||||||
It's important to see that Deep Blue wasn't really a general chess engine like [stockfish](stockfish.md), it was a single purpose supercomputer, a combination of [hardware](hw.md) and [software](sw.md) engineered from the ground up with the single purpose: win the match against Garry Kasparov. It was being fine tuned in between the games with assistance of grandmasters. A team of experts on computers and chess focused their efforts on this single opponent at the specific time controls and match set up, rather than trying to make a generally usable chess computer. They studied Kasparov's play and made Deep Blue ready for it; they even employed psychological tricks -- for example it had preprogrammed instant responses to some Kasparov's expected moves, so as to make him more nervous.
|
It's important to see that Deep Blue wasn't really a general chess engine like [stockfish](stockfish.md), it was a single purpose supercomputer, a combination of [hardware](hw.md) and [software](sw.md) engineered from the ground up with the single purpose: win the match against Garry Kasparov. It was being fine tuned in between the games with assistance of grandmasters. A team of experts on computers and chess focused their efforts on this single opponent at the specific time controls and match set up, rather than trying to make a generally usable chess computer. They studied Kasparov's play and made Deep Blue ready for it; they even employed psychological tricks -- for example it had preprogrammed instant responses to some Kasparov's expected moves, so as to make him more nervous.
|
||||||
|
|
||||||
Technical details: Deep Blue was mainly relying on massively parallel [brute force](brute_force.md), i.e. looking many moves ahead and consulting stored databases of games; in 1997 it had some 11 [GFLOPS](flops.md). The base computer was IBM RS/6000 SP, using 32 [PowerPC](ppc.md) processors and 480 specialized "chess chips". It had evaluation function implemented in hardware. All in all the whole system could search hundreds of millions positions per second. Non-extended search was performed to a depth of about 12 plies, extended search went even over 40 plies deep. It had an opening book with about 4000 positions and endgame tablebases for up to 6 pieces. It was programmed in [C](c.md). { Sources seems to sometimes give different numbers and specs, so not exactly sure about this. ~drummyfish }
|
Technical details: Deep Blue was mainly relying on massively parallel [brute force](brute_force.md), i.e. looking many moves ahead and consulting stored databases of games; in 1997 it had some 11 [GFLOPS](flops.md). The base computer was IBM RS/6000 SP (taking two cabinets) with IBM AIX [operating system](operating_system.md), using 32 [PowerPC](ppc.md) 200 MHz processors and 480 specialized "chess chips". It had evaluation function implemented in hardware. All in all the whole system could search hundreds of millions positions per second. Non-extended search was performed to a depth of about 12 plies, extended search went even over 40 plies deep. It had an opening book with about 4000 positions and endgame tablebases for up to 6 pieces. It was programmed in [C](c.md). { Sources seems to sometimes give different numbers and specs, so not exactly sure about this. ~drummyfish }
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [stockfish](stockfish.md)
|
||||||
|
|
24
how_to.md
24
how_to.md
|
@ -8,6 +8,25 @@ Are you tired of [bloat](bloat.md) and can't stand [shitty](shit.md) software li
|
||||||
|
|
||||||
Firstly let us welcome you, no matter who you are, no matter your political opinions, your past and your skills, color or shape of your genitalia, we are glad to have you here. Remember, you don't have to be a programmer to help and enjoy LRS. LRS is a lifestyle, a philosophy. Whether you are a programmer, artist, educator or just someone passing by, you are welcome, you may enjoy our culture and its fruit and if you want, you can help enrich it.
|
Firstly let us welcome you, no matter who you are, no matter your political opinions, your past and your skills, color or shape of your genitalia, we are glad to have you here. Remember, you don't have to be a programmer to help and enjoy LRS. LRS is a lifestyle, a philosophy. Whether you are a programmer, artist, educator or just someone passing by, you are welcome, you may enjoy our culture and its fruit and if you want, you can help enrich it.
|
||||||
|
|
||||||
|
## What This Article Is About
|
||||||
|
|
||||||
|
OK, let's say this is a set of general advice, life heuristics, pointers and basics of our philosophy, something to get you started, give you a point of view aligned with what we do, help you make a decision here and there, help you free yourself. Remember that by definition **nothing we ever advice is a commandment** or a rule you mustn't ever break, that would be wrong in itself. Some things also may be yet a "thought in progress" and change.
|
||||||
|
|
||||||
|
## Moderacy (middle way) Vs Extremism
|
||||||
|
|
||||||
|
An important issue of many ideologies/philosophies/religions/etc. has shown to be striking the right balance between moderacy and extremism. Let's sum up the two stances:
|
||||||
|
|
||||||
|
- **extremism**: Being extreme in applying the ideas and principles, holding to one's ideals extremely strongly, many times resulting in blind orthodoxy, [shortcut thinking](shortcut_thinking.md), blindly following rules and commandments such as "I must never do X", "X implies Y" etc. Extremism is not bad per se, in fact it is many times preferred, advised and necessary, however one has to be aware of the dangers. It may lead to becoming a brainwashed religion follower whose pursuit of perfectionism and purism result in more bad than good.
|
||||||
|
- **moderacy**: Being moderate, holding to ideals only loosely, sometimes leading to pragmatism, "ends justify the means", hypocrisy, conveniently modifying rules on the go etc. Moderacy is also not bad as such, but also comes with many dangers. It may lead to becoming an immoral self-centered sheep conformist and even practically abandoning one's ideals, giving up ([everyone does it](everyone_does_it.md), "Yeah I don't really like capitalism, but that's how it is so I'll just play along for now."), lying to oneself ("I do so much good by setting an Ukrainian flag as my facebook profile picture!").
|
||||||
|
|
||||||
|
**Where does the balance lie?** TBH this is a very hard question and we don't know the correct answer so far, perhaps there is no simple answer. Figuring this out may be one of the most difficult parts of our philosophy. The first good step is definitely to realize the issue, become aware of it, and start considering it in making one's important decisions. Choosing one or another should, as always, be done by ultimately aiming for our ideals, not for one's own benefit, though of course as any mere living being one will never be able to be completely objective and free himself from things such as fear and self-preservation instincts. If you make a bad decision, don't bash yourself, you are just mere mortal, acknowledge your mistake, forgive yourself and move on, there is no use in torturing yourself. One should perhaps not try to stick to either extremism and moderacy as a rule, but rather try to apply a differently balanced mix of both to any important decision that appears before him -- when unsure about the balance, a middle way between is probably safest, but when you strongly feel one way is morally more right, go for it.
|
||||||
|
|
||||||
|
Examples from LRS point of view:
|
||||||
|
|
||||||
|
- Is it OK to ever use violence? Here LRS takes the extremist way of strongly saying no -- according to us violence is always bad and we definte this as an [axiom](axiom.md), something without a need of proof, it is the very foundation of our movement and not acknowledging it would simply mean it's not LRS anymore. However a bit of moderacy may also appear here; if for example someone uses violence in a desperate attempt to protect one's child, though we won't embrace the action we won't condemn the man either -- he committed a "sin", did something wrong, but in his situation there was really no right thing to do, so what should we blame him for, for being a subject of unfortunate situation?
|
||||||
|
- Is it OK to sometimes use proprietary software? Here for example [Richard Stallman](rms.md)/FSF/[GNU](gnu.md) take the extremist stance and say no, proprietary software is the literal [devil](devil.md) and though shalt evade it for all cost (in fact GNU will put effort in purposefully breaking compatibility with proprietary software, which is borderline capitalist behavior similar to artificial obsolescence etc.). While we agree it is a good general rule to avoid software whose purpose is almost exclusively the abuse of its user, we may be more tolerant and allow breaking the rule sometimes, because to us proprietary software is nothing set in any axiom, it is just a symptom resulting from bad society. As a non-axiom it should be a subject to constant reevaluation against the main goal. A simple commandment of "NO TOUCH NOTHING PROPRIETARY" is a good tool for a newcomer, it is a simple to follow rule of thumb that teaches him to find free replacements and alternatives, however once one becomes advanced and eventually a master of the freedom philosophy, he sees things aren't as simple to be solved by one simple rule, just as a master of music knows when to break basic rules of thumb, when to leave the scale, break the rhythm to make excellent music. Here we see it similarly: When touching proprietary software doesn't result in significant harm (such as supporting its developer, becoming addicted to it, getting abused by it, ...) and when it does significant good (e.g. inspires creation of its free clone, reveals the mechanisms by which it abuses its users, ...), it may in fact be good to do so.
|
||||||
|
- Should you oppose your boss at work, deny to serve him in unethical practice because he is a filthy capitalist and so make trouble for yourself, possibly even get fired for it? Well, this is not so easy again; a strict extremist anticapitalist here would just stay without a job because he couldn't work as any work supports capitalism. On the other hand such a guy would just be homeless, rid of any practical opportunity to create and do good, and would probably die soon anyway. Here it's more or less a question of personal tuning, finding the "least harmful" job, minimizing time spent at it so as to be able to do good in spare time, opposing your boss sometimes but not every single time, not really building a career so that you may quit at any moment etc. Until we have [basic income](ubi.md) or something, you are more or less [doomed](doom.md) to suffer dealing with this on your own sadly.
|
||||||
|
|
||||||
## Tech
|
## Tech
|
||||||
|
|
||||||
Here are some extremely basic steps to take regarding technology and the technological aspect of LRS:
|
Here are some extremely basic steps to take regarding technology and the technological aspect of LRS:
|
||||||
|
@ -68,15 +87,16 @@ Now you have to upload this html file to the hosting server -- check out the det
|
||||||
This is a summary of some main guidelines on how an LRS supporter should behave in general so as to stay consistent with LRS philosophy, however it is important that this is shouldn't be taken as rules to be blindly followed -- the last thing we want is a religion of brainwashed NPCs who blindly follow orders. One has to understand why these principles are in place and even potentially modify them.
|
This is a summary of some main guidelines on how an LRS supporter should behave in general so as to stay consistent with LRS philosophy, however it is important that this is shouldn't be taken as rules to be blindly followed -- the last thing we want is a religion of brainwashed NPCs who blindly follow orders. One has to understand why these principles are in place and even potentially modify them.
|
||||||
|
|
||||||
- **Do NOT [fight](fight_culture.md)**, do NOT say you fight something. Fighting and rhetoric centered around "fighting something" is part of harmful [fight culture](fight_culture.md), most people don't even realize they take part in it. It is important to unlearn this. We do not want to defeat anyone, we want to convince by means of rationality, nonviolence and love. However note that what is unacceptable to do to a living being may be completely acceptable to do to non living object (for example destroying a corporation is OK, in fact it is very desirable). We often take actions that common people would call a "fight" (for example we may organize a strike), however it is important that we don't call it a fight -- a point of view is sometimes as important as the action itself as it will determine our future direction. Remember that [naming is important](name_is_important.md).
|
- **Do NOT [fight](fight_culture.md)**, do NOT say you fight something. Fighting and rhetoric centered around "fighting something" is part of harmful [fight culture](fight_culture.md), most people don't even realize they take part in it. It is important to unlearn this. We do not want to defeat anyone, we want to convince by means of rationality, nonviolence and love. However note that what is unacceptable to do to a living being may be completely acceptable to do to non living object (for example destroying a corporation is OK, in fact it is very desirable). We often take actions that common people would call a "fight" (for example we may organize a strike), however it is important that we don't call it a fight -- a point of view is sometimes as important as the action itself as it will determine our future direction. Remember that [naming is important](name_is_important.md).
|
||||||
- **Do NOT worship or create [heroes](hero_culture.md), don't become one**. It is another common mistake to for example call [Richard Stallman](rms.md) a "hero of free software" and to even worship him as a celebrity. The concept of a hero is [harmful](harmful.md), rightist concept that is connected to war mentality, it goes against [anarchist](anarchism.md) principles, it creates social hierarchy and given some people a power to deceive. People are imperfect and make mistake -- only ideas can be perfect. Respect people but don't make anyone your moral compass, you should rather subscribe to specific ideas, i.e. rather than worshipping Stallman subscribe to and promote his idea of [free software](free_software.md).
|
- **Do NOT worship or create [heroes](hero_culture.md), don't become one**. Watch out for [cult of personality](cult_of_personality.md). It is another common mistake to for example call [Richard Stallman](rms.md) a "hero of free software" and to even worship him as a celebrity. The concept of a hero is [harmful](harmful.md), rightist concept that is connected to war mentality, it goes against [anarchist](anarchism.md) principles, it creates social hierarchy and given some people a power to deceive. People are imperfect and make mistake -- only ideas can be perfect. Respect people but don't make anyone your moral compass, you should rather subscribe to specific ideas, i.e. rather than worshipping Stallman subscribe to and promote his idea of [free software](free_software.md).
|
||||||
- **CREATE, Do NOT waste your life on bullshit, do NOT get too obsessed with tools and hopping** such as [distrohopping](distrohopping.md), [githopping](githopping.md) [audiophilia](audiophilia.md), hardware consumerism, 100% minimalist perfectionism etc. Remember, the goal of your life is to create something new and better; too many people just get stuck doing nothing but switch distros, rant about which editor is best, making sure their OS has zero bloat and zero proprietary code etc. This is completely useless, your life is completely wasted. Dedicate time to creating art that will last, e.g. programming [LRS](lrs.md) (creating source code text) or making free cultural art -- it doesn't matter whether you create it with Ubuntu or Gentoo.
|
- **CREATE, Do NOT waste your life on bullshit, do NOT get too obsessed with tools and hopping** such as [distrohopping](distrohopping.md), [githopping](githopping.md) [audiophilia](audiophilia.md), hardware consumerism, 100% minimalist perfectionism etc. Remember, the goal of your life is to create something new and better; too many people just get stuck doing nothing but switch distros, rant about which editor is best, making sure their OS has zero bloat and zero proprietary code etc. This is completely useless, your life is completely wasted. Dedicate time to creating art that will last, e.g. programming [LRS](lrs.md) (creating source code text) or making free cultural art -- it doesn't matter whether you create it with Ubuntu or Gentoo.
|
||||||
- **Lead an example**, this is the best way to spread our values, however be also extremely careful not to become a worshipped [authority](hero_culture.md). Know the difference between a humble intellectual authority and an authoritative self-centered celebrity who uses his fame for deception. The more famous you are, the more humble you should become.
|
- **Lead an example**, this is the best way to spread our values, however be also extremely careful not to become a worshipped [authority](hero_culture.md). Know the difference between a humble intellectual authority and an authoritative self-centered celebrity who uses his fame for deception. The more famous you are, the more humble you should become.
|
||||||
- **Be loving, even towards opposition** -- remember: hate and revenge towards people perpetuates the endless circle. [Love](love.md) leads to more love, understanding, good deeds, friendship, happiness, collaboration and all the other positive things. Do not confuse love with [political correctness](political_correctness.md).
|
- **Be loving, even towards opposition** -- remember: hate and revenge towards people perpetuates the endless circle. [Love](love.md) leads to more love, understanding, good deeds, friendship, happiness, collaboration and all the other positive things. Do not confuse love with [political correctness](political_correctness.md).
|
||||||
- **Try to do [selfless](selflessness.md) things** -- TRULY selfless ones. Help those in need without expecting any kind of repay, do not even seek attention or gratitude for it, only your good feeling. Create selfless art, whatever it is you enjoy doing -- computer programs, 3D models, music, videos, ... put them in the [public domain](public_domain.md) and let others enjoy them :) Try to **make doing good things a habit** -- some people smoke, drink, overeat and do other kinds of things harmful to themselves and their environment as means for relieving stress. If you exploit this natural human tendency and rather develop GOOD habits, such as writing free software or helping charities as a means of relaxing and relieving stress, you have won at life; doing good and feeling good will be natural and effortless.
|
- **Try to do [selfless](selflessness.md) things** -- TRULY selfless ones. Help those in need without expecting any kind of repay, do not even seek attention or gratitude for it, only your good feeling. Create selfless art, whatever it is you enjoy doing -- computer programs, 3D models, music, videos, ... put them in the [public domain](public_domain.md) and let others enjoy them :) Try to **make doing good things a habit** -- some people smoke, drink, overeat and do other kinds of things harmful to themselves and their environment as means for relieving stress. If you exploit this natural human tendency and rather develop GOOD habits, such as writing free software or helping charities as a means of relaxing and relieving stress, you have won at life; doing good and feeling good will be natural and effortless. **The thing you dedicate your life to should be the thing you love, not the thing that earns you money** or benefits you in similar ways -- try to maximize doing what you love (which may and probably should be more than one thing) and also **try to love doing what is good** so that you can do it a lot. **If you love something, never do it for money**; then it becomes business and as we know, business spoils everything.
|
||||||
- **Protest in non-violent ways** -- this doesn't mean you should be passive; you should be exposing the truth, propaganda, corruption, boycotting corporations and state, promoting your values and expressing disagreement with certain ideas, but do not aim for destruction of those who stand in opposition -- if you're attacked, it is best if you do not fight back; not only is this the morally ideal thing to do, it also sends a very powerful message and makes the aggressor himself think.
|
- **Protest in non-violent ways** -- this doesn't mean you should be passive; you should be exposing the truth, propaganda, corruption, boycotting corporations and state, promoting your values and expressing disagreement with certain ideas, but do not aim for destruction of those who stand in opposition -- if you're attacked, it is best if you do not fight back; not only is this the morally ideal thing to do, it also sends a very powerful message and makes the aggressor himself think.
|
||||||
- **Do NOT support [pseudoleft](pseudoleft.md) ([LGBT](lgbt.md), [feminism](feminism.md), [Antifa](antifa.md), [soyence](soyence.md) ...)**, don't become [type A fail](fail_ab.md). Of course you should equally reject [rightism](right.md), but that goes without saying.
|
- **Do NOT support [pseudoleft](pseudoleft.md) ([LGBT](lgbt.md), [feminism](feminism.md), [Antifa](antifa.md), [soyence](soyence.md) ...)**, don't become [type A fail](fail_ab.md). Of course you should equally reject [rightism](right.md), but that goes without saying.
|
||||||
- **Do NOT engage in [political correctness](political_correctness.md)**. Remember that staying silent often means supporting status quo, so the more deceit you see in society, the more you should try to not stay silent and the more you should try to tell the truth.
|
- **Do NOT engage in [political correctness](political_correctness.md)**. Remember that staying silent often means supporting status quo, so the more deceit you see in society, the more you should try to not stay silent and the more you should try to tell the truth.
|
||||||
- **Free yourself from the system** -- similarly to how you free yourself technologically, free yourself also socially, live frugally and minimize your expenses. Stop consuming, stop living in luxury, stop spending money for shit (gyms, sports, clothes, car, streaming services, games, cigarettes, ...), use free things that people throw away and enjoy hobbies that are cheap (programming, reading books, going for walks, playing chess, ...). **Stop watching news** (it's just brainwashing and distraction, what's really important will get to you anyway), stop engaging in fashion, stop talking to retards. You need very little to live, you don't even need internet connection; with good computing you can hack offline and only connect to the internet once in a while on some public wifi to download emails and upload your programs. Make yourself self sufficient, prepare for the [collapse](collapase.md). If you can live somewhere in the woods and would enjoy it, go for it.
|
- **Free yourself from the system** -- similarly to how you free yourself technologically, free yourself also socially, live frugally and minimize your expenses. Stop consuming, stop living in luxury, stop spending money for shit (gyms, sports, clothes, car, streaming services, games, cigarettes, ...), use free things that people throw away and enjoy hobbies that are cheap (programming, reading books, going for walks, playing chess, ...). **Stop watching news** (it's just brainwashing and distraction, what's really important will get to you anyway), stop engaging in fashion, stop talking to retards. You need very little to live, you don't even need internet connection; with good computing you can hack offline and only connect to the internet once in a while on some public wifi to download emails and upload your programs. Make yourself self sufficient, prepare for the [collapse](collapase.md). If you can live somewhere in the woods and would enjoy it, go for it.
|
||||||
- **Search for [truth](truth.md)**. You won't find it easily, real truth is always censored and hidden (though often in plain sight), but you can train yourself to spot propaganda and see the red flags. You won't find truth through Google, use different sources, read old books and different points of view (e.g. contrast articles on [Wikipedia](wikipedia.md) with those on [Infogalactic](infogalactic.d)). Question EVERYTHING (absolutely everything, even this). Do not fall into traps such as [pseudoskepticism](pseudoskepticism.md). Train your mind to think critically, avoid [shortcut thinking](shortcut_thinking.md), question your own biased beliefs and wishes.
|
- **Search for [truth](truth.md)**. You won't find it easily, real truth is always censored and hidden (though often in plain sight), but you can train yourself to spot propaganda and see the red flags. You won't find truth through Google, use different sources, read old books and different points of view (e.g. contrast articles on [Wikipedia](wikipedia.md) with those on [Infogalactic](infogalactic.d)). Question EVERYTHING (absolutely everything, even this). Do not fall into traps such as [pseudoskepticism](pseudoskepticism.md). Train your mind to think critically, avoid [shortcut thinking](shortcut_thinking.md), question your own biased beliefs and wishes.
|
||||||
- **Reject harmful things like [proprietary](proprietary.md) software, [capitalism](capitalism.md), [copyright](copyright.md), [bloat](bloat.md), [work](work.md) etc.** Use and promote the ethical equivalents, i.e. [free software](free_software.md), [free culture](free_culture.md), frugality, [anarchism](anarchism.md) etc.
|
- **Reject harmful things like [proprietary](proprietary.md) software, [capitalism](capitalism.md), [copyright](copyright.md), [bloat](bloat.md), [work](work.md) etc.** Use and promote the ethical equivalents, i.e. [free software](free_software.md), [free culture](free_culture.md), frugality, [anarchism](anarchism.md) etc.
|
||||||
|
- **Be a [generalist](generalism.md), see the big picture, study the whole world**, do not become overspecialized in the capitalist way. Sure you may become an expert at something, but it shouldn't make your view of the world too narrow. You may spend most of your time studying and programming computer compilers for example, but still do (and enjoy) other things, for example reading fiction, studying religions, languages, psychology, playing [go](go.md), making music, building houses, painting, doing sports, ...
|
||||||
- ...
|
- ...
|
|
@ -1,9 +1,11 @@
|
||||||
# Proprietary Software
|
# Proprietary
|
||||||
|
|
||||||
Proprietary software is any software that is not [free (as in freedom)](free_software.md)/[open source](open_source.md) software. Such software denies users and creators their basic freedoms (freedom of unlimited use, studying, modifying and sharing) and is therefore [evil](evil.md); proprietary software is mostly [capitalist software](capitalist_software.md) designed to abuse its user in some way. Proprietary code is often secret, not publicly accessible, but there are many programs whose source code is [available](source_available.md) but which is still proprietary because no one except the "owner" has any legal rights to fixing it, improving it or redistributing it.
|
The word proprietary (related to the word *property*) is used for intellectual works (such as texts, songs, computer programs, ...) that are someone's fully owned "[intellectual property](intellectual_property.md)" (by means of [copyright](copyright.md), [patents](patent.md), [trademarks](trademark.md) etc.), i.e. those that are not [free as in freedom](free.md) because they cannot be freely copied, shared, modified, studied etc. This word has a negative connotation because proprietary works serve capitalist overlords, are used to abuse others and go against freedom. The opposite of proprietary is [free (as in freedom, NOT price)](free.md) (also *libre*): free works are either those that are completely [public domain](public_domain.md) or technically owned by someone but coming with a free (as in freedom) [license](license.md) that voluntarily waives all the harmful legal rights of the owner. There are two main kinds of proprietary works (and their free counterparts): proprietary [software](sw.md) (as software was the first area where these issues arose) (versus [free software](free_software.md)) and proprietary [art](art.md) of other kind (music, pictures, data, ...) (versus [free cultural](free_culture.md) art).
|
||||||
|
|
||||||
Examples of proprietary software are [MS Windows](windows.md), [MacOS](macos.md), [Adobe Photoshop](photoshop.md) and almost every [game](game.md). Proprietary software is not only extremely [harmful](harmful.md) to culture, progress and society in general, it is downright dangerous and in some cases life-threatening; see for example cases of medical implants such as pacemakers running secret proprietary code whose creator and maintainer goes bankrupt and can no longer continue to maintain such devices already planted into bodies of people -- such cases have already appeared, see e.g. *Autonomic Technologies* nervous system implants.
|
As said, proprietary software is any software that is not [free (as in freedom)](free_software.md)/[open source](open_source.md) software. Such software denies users and creators their basic freedoms (freedom of unlimited use, studying, modifying and sharing) and is therefore [evil](evil.md); proprietary software is mostly [capitalist software](capitalist_software.md) designed to abuse its user in some way. Proprietary code is often secret, not publicly accessible, but there are many programs whose source code is [available](source_available.md) but which is still proprietary because no one except the "owner" has any legal rights to fixing it, improving it or redistributing it.
|
||||||
|
|
||||||
|
Examples of proprietary software are [MS Windows](windows.md), [MacOS](macos.md), [Adobe Photoshop](photoshop.md) and almost every [game](game.md). Proprietary software is not only extremely [harmful](harmful.md) to [culture](culture.md), technology and society in general, it is downright dangerous and in some cases life-threatening; see for example cases of medical implants such as pacemakers running secret proprietary code whose creator and maintainer goes bankrupt and can no longer continue to maintain such devices already planted into bodies of people -- such cases have already appeared, see e.g. *Autonomic Technologies* nervous system implants.
|
||||||
|
|
||||||
Proprietary software licenses are usually called [EULAs](eula.md).
|
Proprietary software licenses are usually called [EULAs](eula.md).
|
||||||
|
|
||||||
By extension besides proprietary software there also exist other proprietary works, for example proprietary [art](art.md) or databases -- these are all works that are not [free cultural works](free_culture.md). Even though for example a proprietary movie probably isn't IMMEDIATELY as dangerous as proprietary software, it may be just as dangerous to society in the long run.
|
By extension besides proprietary software there also exist other proprietary works, for example proprietary [art](art.md) or databases -- these are all works that are not [free cultural works](free_culture.md). Even though for example a proprietary movie probably isn't IMMEDIATELY as dangerous as proprietary software, it may be just as dangerous to society in the long run. Examples of proprietary art is basically anything mainstream that's not older than let's say 50 years: [Harry Potter](harry_potter.md), all Hollywood movies, basically all pop music, basically all AAA video [game](game.md) art and lore etcetc.
|
|
@ -27,7 +27,7 @@ If you contribute, add yourself to [wiki authors](wiki_authors.md)! You can also
|
||||||
- **Images**: for now don't embed images. [ASCII art](ascii_art.md) can be used in many places instead of an image. Thousand words are worth a picture. Non-embedding links to images may be okay.
|
- **Images**: for now don't embed images. [ASCII art](ascii_art.md) can be used in many places instead of an image. Thousand words are worth a picture. Non-embedding links to images may be okay.
|
||||||
- **You can leave comments right in the text of articles**, e.g. like this: { I disagree with this [shit](shit.md). ~drummyfish }.
|
- **You can leave comments right in the text of articles**, e.g. like this: { I disagree with this [shit](shit.md). ~drummyfish }.
|
||||||
|
|
||||||
Articles should be written to be somewhat readable and understandable to tech savvy people who already know something about technology, i.e. not only experts (as is sometimes the case e.g. on Wikipedia). **Each article should ideally start with a general dictionary [definition](definition.md)** and continue with a simple general explanation and overview of the topic. With more paragraphs the text can get more complex. The idea is that a noob will read the first paragraph, understand the basic idea and take something away. A more advanced reader will read further on and take away more things etc. I.e. we educate in a top-down approach.
|
Articles should be written to be somewhat readable and understandable to tech savvy people who already know something about technology, i.e. neither illiterates, nor experts only (as is sometimes the case e.g. on Wikipedia). **Each article should ideally start with a general dictionary [definition](definition.md)** and continue with a simple general explanation and overview of the topic. With more paragraphs the text can get more complex. The idea is that a noob will read the first paragraph, understand the basic idea and take something away. A more advanced reader will read further on and take away more things etc. I.e. we educate in a top-down approach. **Each article should be a nice mini resource in itself**, quality should be preferred over quantity: for example the article on chess should be a nice general page about chess with focus on its programming, but also containing general overview, history, fun and interesting facts, data, essay elements and so on, so as to be highly self-contained (as opposed to the "Wikipedia approach" of making many separate articles on chess history, chess players, chess rules etc.).
|
||||||
|
|
||||||
## Sources
|
## Sources
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue