This commit is contained in:
Miloslav Ciz 2024-10-06 16:32:01 +02:00
parent c03351e922
commit 4725b968bd
12 changed files with 1818 additions and 1791 deletions

View file

@ -1,6 +1,6 @@
# Bloat
Bloat is a very wide term that in the context of [software](software.md) and [technology](tech.md) means overcomplication, unnecessary complexity and/or extreme growth in terms of source code size, overall complexity, number of [dependencies](dependency.md), [redundancy](redundancy.md), unnecessary and/or useless features (e.g. [feature creep](feature_creep.md)) and resource usage, all of which lead to inefficient, badly designed technology with [bugs](bug.md) (crashes, unusable features, memory leaks, [security](security.md) vulnerabilities, ...), as well as great [obscurity](obscurity.md), ugliness, **loss of [freedom](free_software.md)** and waste of human effort. Simply put bloat is burdening [bullshit](bullshit.md). Bloat is extremely bad and one of the greatest technological issues of today. Creating bloat is bad engineering at its worst and unfortunately it is what's absolutely taking over all technology nowadays, mostly due to [capitalism](capitalism.md) causing commercialization, [consumerism](consumerism.md), rushed "[just works](just_werks.md)" products, creating demand for newer hardware and so on, also allowing incompetent people ("let's push more women/minorities into programming") trying to take on jobs they are in no way qualified to do.
Bloat is a very wide term that in the context of [software](software.md) and [technology](tech.md) means overcomplication, unnecessary complexity and/or extreme growth in terms of source code size, overall complexity, number of [dependencies](dependency.md), [redundancy](redundancy.md), unnecessary and/or useless features (e.g. [feature creep](feature_creep.md)) and resource usage, all of which lead to inefficient, badly designed technology with [bugs](bug.md) (crashes, unusable features, memory leaks, [security](security.md) vulnerabilities, ...), as well as great [obscurity](obscurity.md), ugliness, **loss of [freedom](free_software.md)** and waste of human effort. In simpler words: bloat is burdening [bullshit](bullshit.md) so to speak. Bloat is extremely bad and one of the greatest technological issues of today. Creating bloat is bad engineering at its worst and unfortunately it is what's absolutely taking over all technology nowadays, mostly due to [capitalism](capitalism.md) causing commercialization, [consumerism](consumerism.md), rushed "[just works](just_werks.md)" products, creating demand for newer hardware and so on, also allowing incompetent people ("let's push more women/minorities into programming") trying to take on jobs they are in no way qualified to do.
A related but different term is **bloatware**; it's more commonly used among normie users and stands for undesirable programs that eat up computer resources, usually being preinstalled by the computer manufacturer etc. Further on we'll rather focus on bloat as defined before.

View file

@ -54,6 +54,7 @@ There is no [antialiasing](antialiasing.md) in the engine, i.e. aliasing can be
## See Also
- [Anarch](anarch.md)
- [Freedoom](freedoom.md)
- [Duke 3D](duke3d.md)
- [Wolf 3D](wolf3d.md)
- [Gloom](gloom.md) (fun [Amiga](amiga.md) Doom clone)

View file

@ -6,6 +6,8 @@ Freedom denotes the possibility to act as one desires without suffering negative
TODO: more
**In society it is impossible to have freedom while also safely ensuring it won't be abused at the same time.** You have to choose one or the other.
People who seriously look for attaining mental/spiritual freedom often resort to [asceticism](asceticism.md), at least for a period of time (e.g. [Buddha](buddha.md)) -- this is very commonly not done with the intent of actually giving up all materialistic pleasures forevermore, but rather to let go of the [dependency](dependency.md) on the them, to know and see that one really can live without them if needed so that one becomes less afraid of losing them, which is often what internally enslaves us. Without even realizing it we are nowadays addicted to many things (games, social media, overeating, shiny gadgets, ...) like an alcoholic is to booze; it is not necessarily bad to drink alcohol, but it is bad to be addicted to it -- to free himself the alcoholic needs to abstain from alcohol for a long period of time. Our chains are often within ourselves: for example we often don't have the freedom to say what we want to say because that might e.g. ruin our career, preventing us from enjoying our expensive addictions -- once we don't worry about this, we gain the freedom to say what we want. Once you rid yourself of fear of jail, you gain the freedom to do potentially illegal things, and so on. Additionally going through the experience of letting go of pleasures very often opens up your eyes and mind, new thoughts emerge and one reevaluates what's really important in life.
Freedom is something promised by most (if not all) ideologies/movements/etc.; this is because without further specification the term is so wide it says very little -- the very basic thing to know is, of course, that **there is no such thing as general freedom**; one kind of freedom restricts other kinds of freedom -- for example so called freedom of market says that a rich capitalist is free to do whatever he wants, which leads to him enslaving people, killing the freedom of those people.

3
git.md
View file

@ -72,4 +72,5 @@ IMPORTANT NOTE: for the HTTP clone to work you need to do `git update-server-inf
## See Also
- [GitHub](github.md)
- [shithub](shithub.md)
- [shithub](shithub.md)
- [git gud](git_gud.md)

2
lrs.md
View file

@ -110,7 +110,7 @@ Apart from this software a lot of other software developed by other people and g
Other potentially LRS software to check out may include [TinyGL](tinygl.md), [bootleg3d](bootleg3d.md), [scc](scc.md), [ed](ed.md), [chibicc](chibicc.md), [IBNIZ](ibniz.md), [lynx](lynx.md), [links](links.md), [tcl](tcl.md), [uClibc](uclibc.md), [miniz](miniz.md), [Lua](lua.md), [nuklear](nuklear.md), [dmenu](dmenu.md), [sbase](sbase.md), [sic](sic.md), [tabbed](tabbed.md), [svkbd](svkbd.md), [busybox](busybox.md), [darcs](darcs.md), [raylib](raylib.md), [IRC](irc.md), [PortableGL](portablegl.md), [3dmr](3dmr.md), [openbsd](openbsd.md), [mtpaint](mtpaint.md) and others.
Another idea: **search for very old versions of "[modern](modern.md)" FOSS software**, from the times before things like [CMake](cmake.md), [Python](python.md) and [QT](qt.md) got popular (or even existed) -- many such projects got bloated with time, but their earlier versions may have been more aligned with LRS. You can get the old source code, it's present either in the git, on the project's website, on Internet Archive etc., compiling it should probably be much easier than compiling the "modern" version. This won't help with things like web browsers (as it won't understand the new formats and protocols), but will be fine text editors, drawing programs, 3D editors, games etc. You can also [fork](fork.md) the old version and make it a little better, customize it or publicly turn it into a new program, helping the whole world.
Another idea: **search for very old versions of "[modern](modern.md)" FOSS software**, from the times before things like [CMake](cmake.md), [Python](python.md) and [QT](qt.md) got popular (or even existed) -- many such projects got bloated with time, but their earlier versions may have been more aligned with LRS. You can get the old source code, it's present either in the git, on the project's website, on Internet Archive etc., compiling it should probably be much easier than compiling the "modern" version. This won't help with things like web browsers (as it won't understand the new formats and protocols), but will be fine text editors, drawing programs, 3D editors, games etc. You can also [fork](fork.md) the old version and make it a little better, customize it or publicly turn it into a new program, helping the whole world. See also: [unfuck](unfuck.md).
It is also possible to talk about LRS data formats, [protocols](protocol.md), standards, designs and concepts as such etc. These might include:

View file

@ -58,6 +58,7 @@ NOTE 2: See **[how to do projects well](project.md)**.
| non capitalist mouse | harder? | | | | simple no BS free HW mouse, can be ball, good if handles gamyes |capitalist mice :( keyboard|
| non [SJW](sjw.md) non-profits/services | harder? | | | | git hosting, web hosting etc. that doesn't censor EVERYTHING | self host? |
| steganography hosting anywhere | easy/mid | | |planning in head... |embedding uncensored data anywhere on the Inet with steganography| darknet n shit |
| [unfuck](unfuck.md) third party SW | easy? | | | |take existing SW, remove cmake and other bloat, rewrite to C etc.| |
|[PD computer](public_domain_computer.md)| very hard | | | | needs prerequisites done first (language, logic circ. lib., ...)| Thinkpads :) |
| PD computer "[operating system](os.md)"| mid? | [comun shell](comun_shell.md)? | drummyfish | highly WIP | | BSDs? DuskOS? |
| [portal renderer](portal_rendering.md) | mid/hard? | | | | for Anarch II? :) | Doom engine, BUILD |

File diff suppressed because it is too large Load diff

19
unfuck.md Normal file
View file

@ -0,0 +1,19 @@
# Unfuck
Unfucking [software](sw.md) (or another piece of [technology](tech.md)) means taking said software and adjusting it to better comply with [less retarded software](lrs.md), i.e. *fixing it*. Doing so may be an effective way to obtain good software without having to [write it from scratch](reinventing_the_wheel.md), but, indeed, a few prerequisites have to be met: for example the software will likely have to be [free (as in freedom)](free_software.md) (so that we can [fork](fork.md) it) and the energy invested into "fixing it" mustn't exceed the reinventing energy.
Unfucking software may involve for example the following:
- **Reverting to an older version.** [Older](old.md) software was always better, reverting to an older version of "[modern](modern.md)" software may itself do a great deal of unfucking such as removing "[privacy](privacy.md)" bullshit, transitioning to a simpler build system and an older standard of the language. Remember, the old version is still available, at least in source form -- [update](update_culture.md) addicts somehow think the old version is "gone" but of course that's not true, it may just be needed to invest a bit of time to compile it.
- **Switching to a simpler [build system](build_system.md).** Unusable build systems such as [CMake](cmake.md) plague every single [modern](modern.md) project -- these have to be removed and replaced with something usable such as simple Makefiles or a plain shell script.
- **Removing political bullshit and other crap ([COC](coc.md), lesbian flags, [Furry](furry.md) mascots, Ukraine flags, anime autism etc.).** For some reason [zoomers](zoomer.md) insert [fascist](fascism.md) symbolism and childish autist drawings into everything, these have to be removed.
- **Rewriting in a better [language](programming_language.md).** This may be more [work](work.md) so it won't happen often, but rewriting [C++](cpp.md) to [C](c.md) or C11 to C99 may be not that hard.
- **Removing other kinds of [bloat](bloat.md).** This just means generally improving the software: remove bullshit features, remove dependencies on [docker](docker.md), [systemd](systemd.md) and similar [cancer](cancer.md), remove/replace bullshit [libraries](library.md) etc.
- **Improving it in other ways.** I.e. for example cleaning the code, documenting it, rewriting it a bit to be more portable, [debugging](debugging.md) it etc.
- **[Porting](portability.md)**. Old software may have been good but will no longer run on "modern" systems simply because the interfaces have changed, i.e. some porting may be needed -- this will probably mean writing a new frontend, switching to some [I/O](io.md) library like [SDL](sdl.md) etc.
- **[Liberating](liberating.md)**. It may happen the software is only partially free -- for example old games may nowadays have their engine freed but assets will still remain [proprietary](proprietary.md). It may be therefore needed to substitute the assets with free ones. (See e.g. [Freedoom](freedoom.md).)
- ...
## See Also
- [unretard](unretard.md)

View file

@ -2,13 +2,11 @@
*".̶̧̦̼̱͙̥̲̝̥̭͍̪̈́̍͌̋͑͒̒̅͂͒̀̊̓̕͠.̴̛̰̯͚͚̳͍̞̯̯͊̒͂̌̃̎̒̐̅͗́̂͠͝.̸̜̀͊̀̒̾̐̔͑̚̕͠a̲̬̪͙̖̬̖ͭͫͦ̀̄̆̍ͦͨͦ͗̅͋ͦͤͯͫ̔̚l̫̹̺̭̳͙̠̦͍̫̝͓͙̟̺͗̊̅ͬ̉͒̏͆͗͒̋ͤ̆̆ͥg̥̳̗͕̫ͪ͛̓̂ͫͮ̔͌̃̈͒̔̏ͭ͋͋ ⃝꙰⃝꙰⃝꙰⃝꙰⃝꙰⃝꙰⃝꙰⃝꙰⃝꙰⃝á́́́́́́́́́́́́́́́́́́́́́́́́́́́́́.̶̢̙̺̖͔̱͎̳̭̖̗̲̻̪̻͑̌͒̊̃̈̾̿̓̅̐́̀̋̔̏.̴̺͖͎͚̠̱̤͂̈́͜.̵̡̡͖̪̱̼͕̘̣̠̮̫͓̯͖̜̚͝͝͝.̷̧̨̥̦̥̱͉̼̗̰̪͍̱͎̑̾Z̳͍̩̻̙̪̲̞̭̦̙ͯ͛̂ͥͣͪͅͅͅl̷̢̛̩̰̹͔̣͗̅̇̍̏͑͐̇̋̑͜ͅǫ̶̢̫̟͙̖̩̽̀͆̽͌͘l̶̩̞̖̹͈͒͊̔̑̆<CCB9≯͎̺̳̄͂̊̒<CCBA>̶̸̵̶̴̸̸̴̶̸̷̶̴̴̡̢̡̢̡̢̧̧̡̧̡̨̡̨̢̧̧̡̢̛̛̛̛̼̻̣̗͔͉̩̪̞͎̖̙͍͚͍̼̰͖̺̤̗̘͕̳̻̖̳̻̗̯̭̙̳̲͕̮͇͕̼͉̞̣̟̖̘̟͕̗̼̙̻͇̝̪̦͚̤̦̣̗̤̪̟̠͖͓̟̬̲͙͇͉̘͙͙͚̜̜̮͈̞͓̰̫͍̙͙͙̱͓͖̠͇̪̭̮̤̺̗̙̘̫̤̥̳͇͔̣̩͕͍̦͈̬̯̗̘͔̻̗̘͔̪̹̬̲͇͕̻͎̣̩̻̖͉̱̝̼̞̪̠̮̤͓̥͊̔̈́̀̋̄̄̇́̋̎͛̓́̔̇̂̒̅͊̎̉͗̓̀͑̋͒͑̍̏̅̋͆̑̈̾͗̽͑̏̉̀͌͋̉̒̋̑̊̂̈́̈́͑̀͂́̈́̆̄̃͆͆̈́̊̿̌̋̍̈̒͂̀̈́͌̽͌̈́͋̈́̃̅͂͆́̍͑̓̎͋̅͂̽̈́̈́͗̆̑̔̎̈́́̆͂̉̀̒͌̿̽͊̍̃̕̚͘̚̕̚͘̕̕̕͘͜͜͝͠͝͝͠͝͝͝͠͝͠͠͠ͅͅͅͅ.̸̷̷̷̴̸̶̵̴̶̵̸̴̴̷̸̷̵̷̵̴̴̷̧̨̢̨̡̨̧̡̨̧̧̨̡̧̢̧̢̧̨̛̛̛̛̛̛̛̤͈̯̤͙̻̫̼̱̦̮̙̤̝̖̗͉̘̫̟̗̹͉͇͖̘͙̻̫̫̫̰̝̭̤͈͓͔̱̭͙͔͔̼̖̬̰̳̗͖͖̯̮͔̝̞̬̳͇͈̥̘͙͇̺̪̞̞̙͈̮͔̞̭͎̩͎̦̞̝͎̗͚͈̖̣͖̹̜̞̤̺̱̱̰͔̼̭̮̰̖͔͔͈̥͎̜̭̪̺̲͔̲̻̰̳̲̖̤̳̙̥̼̩͈̥̗̟͙̥̗̳͍̥̝̫͚̘̱̱̹̺̣̝̳̣͇̹̫̝̫̟̯̺͇̞̳͖̫͔̲̗͔̟̩̦̳͎̳͖̎̓͂̀̀́̌͗̐̅̈́̓̿̓̌́̓́͋͊͛̄͊̂̒͌̀͗̔̀̑̔͒̐̀͌̋̍͗͛̂̆̈́͛͋͆̐̌̓̄͊̑̑̅̑̿̏̈́̀̊̆̈̔̃̽̀̎̐́̎̾͐̀̌̒̑́̇̑̊͑́̓̓̔̆͐́̅̓̔̃̅̂̐͗́̎͌́̊͌͒͒̓́̀͒̍̽̂́̀̉̀̑̉̑̓́͗̓́̍̏̉͆̑͂̔̅̀͊̈́̀͑͛́̿͆͑̀͐̃̋̐̋̈́̉͊̿̌̾͗͛̉́̓̓̏̈́͂̋͌͆̓̑͗͗̍̇̕̚̚͘̕͘̚̚̕͘͘͜͜͜͜͜͜͜͜͠͠͠͝͝͠͝͠͝͠͝ͅͅͅͅͅͅ.̸̷̸̴̸̸̶̶̵̵̸̵̴̡̡̡̡̧̢̢̧̧̧̧̡̢̡̛̛̛̛̬͇̜̘̗̗̲̟̗̤̤̜̹͎̣̹̺͉̯̼̭̟̮̖͕̻̰̬̼̮̮̬̪̥̤̘̣̺̥̪̠̥̳̰͇̫͔̜̫͚͖͔̩̙̪͖̥͍̗͍͉͙̣͔̠̭̞̩̱̠̻̹͎͔̯̻̘͖̦̘͕͉͈͈̞̖̬͔͈̗͓͖͚̤̬̤̘̠̱͆̍̍͆͗͋̇͗̓͐̉͋̈́̀̍̈̇̀̀̎͋̾̇̎͐̌̌̿̽̾̃̑͆̎̾̾̈́̆̐̂̅́̓̔̇̔̑̔͑̓̍͊͌͋̔̐̑͌̓̒̎̍̃͐̀͊̿̓͋̌͐̋̂̽̿̒̋̎́͒̋͘͘͘̕̕͘͝͠͝͝ͅͅa̲̬̪͙̖̬̖ͭͫͦ̀̄̆̍ͦͨͦ͗̅͋ͦͤͯͫ̔̚l̫̹̺̭̳͙̠̦͍̫̝͓͙̟̺͗̊̅ͬ̉͒̏͆͗͒̋ͤ̆̆ͥ𒈙.̴̢̟̩̗͊.̴̹͎̦̘͇͎̩̮̻̾͛̐ͅ𰻞.̷̧̫͙̤̗͇̔̂̀̄͗̍̈͋̈́̕.̷̨̛͈̤͈̲̥̱̹̲͖͗͛͆̓͊̅̈̕͠.̷̻̺͔͍̭͋̾̐̔͑̔̌̂͛͆̽͘͜͠͝͠.̷̧̨͉̝̳̲̫̙̻͎̬͚̒̀̄͒.̶̨͙̩̦̪͋̄͆͌̈́́͐̈̈́̕ͅ.̸̡̠̙̪͔͍̬̘̖̗̙̞̬͇̐͋͊͐̋̚ͅ.̷̢̮̮̖̹̟̖̩̗͙̝̺́̑̈̉͘͘͠ͅ.̴̨̡̧̤̳͖̰̼̺̮͉͖̲̫̳̜̹̄.̵̢̤̦̞͙̝̬͍̞̤͇̽̾̈́̔̋̋̓̌̋̐̓̅͜͝.̷͙͊.̵̠̜̞̭̘͉͓̞̤͍̝̈́̋̃́̈́͐̃̉͆̚͜.̴͉͈͓͈͉͎̺͍͕̥̦̙͙͕̈́̏̿́̏̔.̶͕̟̤͔͑̉̽̓̇̐́̃̿͜.̶̧̨̨̱̪̞̞̯̹̤̘̭̠͓̀̓̐̓́͑͂̉.̴̛̙̮͚̊͗̏̈́͗̅͆̑̂̌̐̃̊̂̓.̴̙͎̔͑̿͗̃̒́̏̏͑͘̕á́́́́́́́́́́́́́́́́́́́́́́́́́́́́́"* --creator of 🎮𝕌𝕟ι𝕔𝗼d̢̪̲̬̳̩̟̍ĕ̸͓̼͙͈͐🚀
WORK IN PROGRESS
Unicode is a successful standard that aims to organize symbols and characters (letters, digits, graphical symbols, [emoji](emoji.md), ...) of all world's writing systems and to define several ways of encoding them as [digital](digital.md) [data](data.md), i.e. it's a big [project](project.md) promising to unify digitization and encoding of any possible text in [computers](computer.md). Currently there are over 100000 characters defined by the standard. The effort dates back to 1980s and was started to do away with the mess of many existing incompatible text encoding systems -- in this it succeeded, Unicode is nowadays everywhere and it's the standard way of encoding text wherever you look, probably owing a lot to its backwards compatibility with plain [ASCII](ascii.md) encoding which was the most popular encoding of English back in the day (i.e. any old ASCII text is still a valid Unicode text, provided we use UTF-8 encoding). The standard is made by the Unicode Consortium whose members are basically all the big companies.
Unicode is a successful, constantly evolving standard aiming to organize symbols and characters (letters, digits, graphical symbols, [emoji](emoji.md), ...) of all the world's writing systems and to define and standardize ways of encoding them as [digital](digital.md) [data](data.md), i.e. it's a big [project](project.md) promising to unify the encoding of any possible [text](text.md) in [computers](computer.md). As of writing the lastest version is 16.0 from 2024, defining over 150000 characters. The effort dates back to 1980s and was started to do away with the mess and headaches induced by a plethora of existing incompatible text encoding systems -- in this it succeeded, Unicode is nowadays everywhere and it's the standard way of encoding text wherever you look, probably owing a lot to its backwards compatibility with plain [ASCII](ascii.md) encoding which was the most popular encoding of English back in the day (i.e. any old ASCII text is still a valid Unicode text, provided we use UTF-8 encoding). The standard is made by the Unicode Consortium whose members are basically all the big companies.
In Unicode every character is unique like a unicorn.
**It is important to distinguish between Unicode codepoints (the abstract character codes) and Unicode encodings**, they are two different things. For example the Unicode codepoint for character *A* is 65 (same as in ASCII), or (written the Unicode way) *U+0041* (41 is [hexadecimal](hexadecimal.md) 65), but this value of 65 may then be represented in several different ways in the computer file, depending on the Unicode encoding we use (in UTF-8 it will be a single byte while in UTF-16 it will be two bytes). Currently Unicode defines these encodings:
**It is important to distinguish between Unicode codepoints (the abstract character codes) and Unicode encodings**, they are two different things. For example the Unicode codepoint for character *A* is 65 (same as in ASCII), or (written the Unicode way) *U+0041* (41 is [hexadecimal](hexadecimal.md) 65), but this value of 65 may then be represented in several different ways in the computer file, depending on the Unicode encoding we use (in UTF-8 it will be a single byte while in UTF-16 it will be two bytes). Currently Unicode defines these encodings (additional unofficial encodings exist as well):
- **UTF-8**: Most widely used, backwards compatible with 7-bit [ASCII](ascii.md), probably most [suckless](suckless.md) (you can literally ignore it for ASCII text and it won't inflate plain ASCII text). Character codes have **variable width** (they obviously have to), i.e. the basic characters take 1 [byte](byte.md) but more complex ones may take up to 4 bytes (this may complicate or slow down e.g. counting string length). Generally codepoints are encoded like this (notice that not all values are valid, which may help detect non-UTF-8 text or corrupted data):
- first 128 codepoints: `0xxxxxxx` (same as ASCII)
@ -22,9 +20,9 @@ In Unicode every character is unique like a unicorn.
The Unicode [project](project.md) is indeed highly ambitious, it's extremely difficult to do what they aim to do because, naturally, many hard to answer questions come up, such as what even IS a character (Do we include every possible emoji? Icons and pictograms used on road signs? Their upside down versions? Fictional alien language characters from sci-fi movies? ...), which characters to distinguish (Are same looking characters in different scripts the same character or a different one? Are the same characters in Chinese and Japanese different if they have different meaning in each language? ...), how to organize and assign the codes (How much space to allocate? What meaning will the code have? ...), how to deal with things such as accents, AND there are many crazy writing systems all over the world (Some write right to left, some top to bottom, some may utilize color, some compose characters by combining together multiple other characters etcetc.). And, of course, writing systems evolve and change constantly, new ones are being discovered by archaeologists, new ones are invented by the [Internet](internet.md) and so on and so [forth](forth.md). And what if we make a mistake? Do we correct it and break old documents or leave it in for backwards compatibility?
It's also important that Unicode clearly states its goals and philosophy so that all the issues and questions that come up may be answered and decided in accordance with them. For example part of the Unicode philosophy is to treat the symbols as abstract entities defined by their usage and meaning rather than their exact graphical representation (this is left to specific typesetting/rendering systems, [fonts](font.md) etc.).
It's also crucial for Unicode to very clearly state its goals and philosophies so that all the issues and questions that come up may be answered and decided in accordance with them. For example part of the Unicode philosophy is to treat the symbols as abstract entities defined by their usage and meaning rather than their exact graphical representation (this is left to specific typesetting/rendering systems, [fonts](font.md) etc.).
**Is Unicode [crap](shit.md) and [bloat](bloat.md)?** Yes, it inevitably has to be, there's a lot of obscurity and crap in Unicode and many systems infamously can't handle malicious (or even legit) Unicode text and will even crash. Unicode can be raped and abused in spectacular ways, for example using homoglyphs (characters that graphically look like other characters but are in fact different) one may create text that won't be detected by simple exact-comparison algorithms (for example you may be able to register a username that graphically looks like someone else's already registered username). There are also some kind of ways to combine characters weirdly, e.g. make very tall text by creating chains of exponents or something, which can just nuke many programs. Still it has to be said that **Unicode is designed relatively well** for what it's trying to do, it's kind of a bittersweet, double edged kind of beast -- for [LRS](lrs.md) it's important especially that we don't have to care much about it, we can just still keep using [ASCII](ascii.md) and we're good, i.e. we aren't forced to use the bloated part of Unicode and if we get Unicode text, we can quite easily filter out non-ASCII characters. Full Unicode compliance is always bloat and shouldn't be practiced, but it's possible to partially comply with only minimum added complexity. Nevertheless Unicode has, to some degree, fucked up many texts because soyboys and bloat fans now try to use the "correct" characters for everything, so they will for example use the correct "multiplication sign" instead of just *x* or * which won't display well in ASCII readers, but again, this can at least be automatically corrected. Unicode is also controversial because [SJWs](sjw.md) push it too hard, claiming that ASCII is [racist](racism.md) to people who can only write in retarded languages like [Chinese](chinese.md) -- we say it's better for the Chinese to learn [English](english.md) than to fuck computers up. Unicode also allowed noobs to make what they call "[ASCII_art](ascii_art.md)" without having any actual skill at it.
**Is Unicode [crap](shit.md) and [bloat](bloat.md)?** Yes, it inevitably has to be, there's a lot of obscurity and crap in Unicode and many systems infamously can't handle malicious (or even legit) Unicode text and will possibly even crash (see e.g. the infamous *black dot of death*). A lot of that mess previously caused by different encodings now just poured over to Unicode itself: for example there are sometimes multiple versions of the exact same character (e.g. those with accents -- one versions is a composed plain character plus accent character, the other one a single "precomposed" character) and so it's possible to encode exactly the same string in several ways and a non-trivial Unicode [normalization](normalization.md) is required to fix this. Unicode can be raped and abused in spectacular ways, for example using homoglyphs (characters that graphically look like other characters but are in fact different) one may create text that won't be detected by simple exact-comparison algorithms (for example you may be able to register a username that graphically looks like someone else's already registered username). There are also ways to combine characters in queer ways, e.g. make very tall text by creating chains of exponents or something (see the rabbithole around so called *composing characters*), which can just similarly nuke many naive programs. With Unicode things that were previously simple (such as counting string length or computing the size of rectangle into which a text will fit) now become hard (and slow) to do. Still it has to be said that **Unicode is designed relatively well** for what it's trying to do, it's just that the goal is ultimately an untameable beast, a bittersweet topic and a double edged sword -- for [LRS](lrs.md) it's important especially that we don't have to care much about it, we can just still keep using [ASCII](ascii.md) and we're good, i.e. we aren't forced to use the bloated part of Unicode and if we get Unicode text, we can quite easily filter out non-ASCII characters. Full Unicode compliance is always bloat and shouldn't be practiced, but it's possible to partially comply with only minimum added complexity. On one hand it [just werks](just_werks.md) -- back in the [90s](1990s.md) we still had to trial/error different encodings to correctly display non-English texts, nowadays everything just displays correctly, but comfort comes with a price tag. Unicode has, to some degree, fucked up many texts because soyboys and bloat fans now try to use the "correct" characters for everything, so they will for example use the correct "multiplication sign" instead of just *x* or * which won't display well in ASCII readers, but again, this can at least be automatically corrected. Terminal emulators now include ugly Unicode bullcrap and have to drag along huge fonts and a constantly updating Unicode library. Unicode is also controversial because [SJWs](sjw.md) push it too hard, claiming that ASCII is [racist](racism.md) to people who can only write in retarded languages like [Chinese](chinese.md) -- we say it's better for the Chinese to learn [English](english.md) than to fuck computers up. Other controversies revolve around emojis and other political symbols, SJWs push crap like images of pregnant men and want to [censor](censorship.md) "offensive" symbols. Unicode also allowed noobs to make what they call "[ASCII_art](ascii_art.md)" without having any actual skill at it.
Here are some **examples** of Unicode characters:
@ -79,4 +77,6 @@ similar (homoglyphs):
ΑАA𝙰𝐀ⒶДд⩜𝒜𝗔
ΒВB𝙱ℬ𝐁𝕭вβß𝗕
ϹС𝙲𝐂𝕮𝒞𝗖
```
```
**How to convert UTF-8 to ASCII?** [Easiest](kiss.md) way is to just filter out all bytes with the highest bit set, or, in other words, throw out all bytes with value higher than 127 (or maybe replace such bytes with question marks or something). This will possibly deform the text though, so it may be a last resort solution. Better (but of course still imperfect) results may be achieved by replacing Unicode characters by their ASCII [approximations](approximation.md) (e.g. the multiplaction symbol `×` by the letter `x` and so on), but this is non-trivial, a conversion table is needed -- thankfully there exist programs for doing this, e.g.: `cat unicodefile.txt | iconv -f utf-8 -t ascii//TRANSLIT`.

View file

@ -6,6 +6,7 @@ Nowadays unretarding is almost synonymous to learning to live and think in exact
## See Also
- [unfuck](unfuck.md)
- [shortcut thinking](shortcut_thinking.md)
- [retard](retard.md)
- [how to](how_to.md)

File diff suppressed because one or more lines are too long

View file

@ -3,8 +3,8 @@
This is an autogenerated article holding stats about this wiki.
- number of articles: 597
- number of commits: 891
- total size of all texts in bytes: 4406911
- number of commits: 892
- total size of all texts in bytes: 4407146
- total number of lines of article texts: 33606
- number of script lines: 294
- occurrences of the word "person": 8
@ -36,7 +36,7 @@ longest articles:
top 50 5+ letter words:
- which (2490)
- there (1909)
- there (1910)
- people (1720)
- example (1496)
- other (1356)
@ -89,6 +89,22 @@ top 50 5+ letter words:
latest changes:
```
Date: Sat Oct 5 21:09:59 2024 +0200
90s.md
diogenes.md
doom.md
duke3d.md
google.md
lrs_dictionary.md
luke_smith.md
main.md
nigger.md
people.md
random_page.md
unicode.md
wiki_pages.md
wiki_stats.md
work.md
Date: Fri Oct 4 20:21:44 2024 +0200
90s.md
avpd.md
@ -108,20 +124,6 @@ Date: Fri Oct 4 20:21:44 2024 +0200
wiki_tldr.md
xonotic.md
Date: Thu Oct 3 22:09:52 2024 +0200
90s.md
luke_smith.md
nonogram.md
random_page.md
troll.md
unicode.md
wiki_pages.md
wiki_stats.md
Date: Thu Oct 3 17:34:08 2024 +0200
90s.md
ashley_jones.md
c_sharp.md
doom.md
drummyfish.md
```
most wanted pages: