master
Miloslav Ciz 5 months ago
parent b9e84b9011
commit 8c64eca41b

@ -233,6 +233,7 @@ Here is a list of some acronyms:
- **[MMX](mmx.md)** (multimedia extension)
- **[MMORPG](mmorpg)** (MMO RPG)
- **[MOSFET](mosfet.md)** (metal oxide semiconductor field effect transistor)
- **[MOTD](motd.md)** (message of the day)
- **[MPEG](mpeg.md)** (motion pictures experts group)
- **[MR](mr.md)** (merge request)
- **[MS/M$](ms.md)** (Micro$oft)

@ -47,7 +47,7 @@ The following is a list of software usually considered a good, typical example o
- Desktop environments such as [KDE](kde.md) and [GNOME](gnome.md). The concept of a [desktop environment](de.md) itself is often considered bloat.
- [Windows](windows.md): one of the best examples of how software should NOT be done.
- [Blender](blender.md): quite useful [FOSS](foss.md) 3D editor which however integrates things like a whole video editor, game engine, several renderers, scripting language with text editor and so on.
- [CMake](cmake.md): gigantic build system that currently sits on top of a sky-high sandwich of other build systems, its number of dependencies is bigger than the number of retards in observable universe (known as *[drummyfish's](drummyfish.md) number*).
- [CMake](cmake.md): gigantic [build system](build_system.md) that currently sits on top of a sky-high sandwich of other build systems, its number of dependencies is bigger than the number of retards in observable universe (known as *[drummyfish's](drummyfish.md) number*).
- [D-Bus](dbus.md)
- [Docker](docker.md)
- [Electron](electron.md): [GUI](gui.md) [framework](framework.md) infamous for its huge resource consumption.
@ -60,7 +60,7 @@ The following is a list of software usually considered a good, typical example o
- Big [game engines](game_engine.md) such as [Unreal](unreal_engine.md), [Unity](unity.md) or [Godot](godot.md).
- Practically all commercial [games](games.md) made in the [21st century](21st_century.md) such as [World of Warcraft](wow.md), Call of Duty etc.
- [pulse audio](pulse.md)
- office programs (e.g. M$ Office and [LibreOffice](libreoffice.md))
- office programs (e.g. M$ Office and [LibreOffice](libreoffice.md)) and a lot of [rich text](rich_text.md)
- [Neural networks](neural_network.md) aka "AI" that is forced into everything nowadays.
- ...
@ -85,7 +85,7 @@ Small/medium bloat includes for example:
- [antialiasing](antialiasing.md) (just ignore [aliasing](aliasing.md), use low resolution textures etc.)
- 64 bit architectures (they only exist to allow ungodly amounts of RAM, 32 bits completely suffice for any computation, many times even 16 or 8 bits are enough)
- [proportional font](proportional_font.md) (fixed width font is better)
- [linking](linking.md), build systems/scripts, [makefiles](make.md), directories and multiple source code files (single file, [header only](header_only.md) libraries and [single compilation unit](single_compilation_unit.md) programs are better)
- [linking](linking.md), build systems/scripts, [makefiles](make.md), directories and multiple source code files (just using a compiler or a few-line building shell script, single file source code, [header only](header_only.md) libraries and [single compilation unit](single_compilation_unit.md) programs are better)
- [infix notation](infix_notation.md) ([postfix notation](postfix_notation.md) is better)
- any [GUI](gui.md), [window managers](wm.md) (pure text mode is better)
- [operating system](os.md) ([bare metal](bare_metal.md) is better)
@ -113,18 +113,22 @@ Small/medium bloat includes for example:
- [data types](data_type.md) (untyped or single type is better, everything can be just a [number](number.md))
- [package managers](package_manager.md) (just don't use them, install just a few programs manually, or at least make package managers as simple as possible)
- [computers](computer.md) (pen and paper or counting with [rocks](rock.md) is better)
- anything [wireless](wireless.md) ([wifi](wifi.md), mice, ...)
- ...
## Non-Computer Bloat
The concept of bloat can be applied even outside the computing world, e.g. to non-computer technology, [art](art.md), [culture](culture.md), [law](law.md) etc. Here it becomes kind of synonymous with [bullshit](bullshit.md), but using the word *bloat* says we're approaching the issue as computer programmers. Examples include:
The concept of bloat can be applied even outside the computing world, e.g. to non-computer technology, [art](art.md), [culture](culture.md), [law](law.md) etc. Here it becomes kind of synonymous with [bullshit](bullshit.md), but using the word *bloat* says we're seeing the issue from the point of view of someone acquainted with computer bloat. Examples include:
- [clothes](clothes.md)
- house decorations
- decorations (body, house, ...)
- [cars](car.md)
- using languages other than [English](english.md) or [Esperanto](esperanto.md)
- TODO: more
- luxury (big house, yacht with a swimming pool, ...)
- [electricity](electricity.md)
- ...
## See Also
- [obscurity](obscurity.md)
- [obscurity](obscurity.md)
- [shit](shit.md)

@ -4,7 +4,7 @@ In [mathematics](math.md) chaos is a phenomenon that makes it extremely difficul
Perhaps the most important point is that a chaotic system is difficult to predict NOT because of [randomness](randomness.md), lack of information about it or even its incomprehensible complexity (many chaotic systems are defined extremely simply), but because of its inherent structure that greatly amplifies any slight nudge to the system and gives any such nudge a great significance. This may be caused by things such as [feedback loops](feedback_loop.md) and [domino effects](domino_effect.md). Generally we describe this behavior as so called **[butterfly effect](butterfly_effect.md)** -- we liken this to the fact that a butterfly flapping its wings somewhere in a forest can trigger a sequence of events that may lead to causing a tornado in a distant city a few days later.
Examples of chaotic systems are the double pendulum, weather (which is why it is so difficult to predict it), dice roll, [rule 30](rule_30.md) cellular automaton, [logistic map](logistic_map.md), gravitational interaction of [N bodies](n_body.md) or [Lorenz differential equations](lorenz_system.md). [Langton's ant](langtons_ant.md) sometimes behaves chaotically. Another example may be e.g. a billiard table with multiple balls: if we hit one of the balls with enough strength, it'll shoot and bounce off of walls and other balls, setting them into motion and so on until all balls come to stop in a specific position. If we hit the ball with exactly the same strength but from an angle differing just by 1 degree, the final position would probably end up being completely different. Despite the system being deterministic (governed by exact and predictable laws of motion, neglecting things like quantum physics) a slight difference in input causes a great different in output.
Examples of chaotic systems are the double pendulum, weather (which is why it is so difficult to predict it), dice roll, [rule 30](rule_30.md) cellular automaton, [logistic map](logistic_map.md), [Baker's map](bakers_map.md), gravitational interaction of [N bodies](n_body.md) or [Lorenz differential equations](lorenz_system.md). [Langton's ant](langtons_ant.md) sometimes behaves chaotically. Another example may be e.g. a billiard table with multiple balls: if we hit one of the balls with enough strength, it'll shoot and bounce off of walls and other balls, setting them into motion and so on until all balls come to stop in a specific position. If we hit the ball with exactly the same strength but from an angle differing just by 1 degree, the final position would probably end up being completely different. Despite the system being deterministic (governed by exact and predictable laws of motion, neglecting things like quantum physics) a slight difference in input causes a great different in output.
A simple example of a chaotic equation is also the function *sin(1/x)* for *x* near 0 where it oscillates so quickly that just a tiny shift along the *x* axis drastically changes the result. See how unpredictable results a variant of the function can give:

@ -5,7 +5,7 @@ Collision detection is an essential problem e.g. of simulating physics of mechan
There are two main types of collision detection:
- **[discrete](discrete.md)**: Detecting collisions only at one point in time (each engine tick or "frame") -- this is easier but can result in detecting the collisions in wrong ways or missing them completely (imagine a fast flying object that in one moment is wholly in front of a wall and at the next instant wholly behind it). Nevertheless this is completely usable, one just has to be careful enough about the extreme cases.
- **[continuous](continuous.md)**: Detecting collisions considering the continuous motion of the bodies (still done at discrete ticks but considering the whole motion since the last tick) -- this is more difficult to program and more costly to compute, but also correctly detects collisions even in extreme cases. Sometimes engines perform discrete detection by default and use continuous detection in special cases (e.g. when speeds become very high or in other error-prone situations). Continuous detection can be imagined as a collision detection of a higher dimensional bodies where the added dimension is time -- e.g. detecting collisions of 2D spheres becomes detecting collisions of "tubes" in 3D space. If you don't want to go all the way to implementing continuous collisions, you may consider an in-between solution by detecting collisions in smaller steps (which may also be done only sometimes, e.g. only for high speed bodies or only when an actual discrete collision is detected).
- **[continuous](continuous.md)**: Detecting collisions considering the continuous motion of the bodies (still done at discrete ticks but considering the whole motion since the last tick) -- this is more difficult to program and more costly to compute, but also correctly detects collisions even in extreme cases. Sometimes engines perform discrete detection by default and use continuous detection in special cases (e.g. when speeds become very high or in other error-prone situations). Continuous detection can be imagined as a collision detection of a higher dimensional bodies where the added dimension is time -- e.g. detecting collisions of 2D circles becomes detecting collisions of "tubes" in 3D space. If you don't want to go all the way to implementing continuous collisions, you may consider an in-between solution by detecting collisions in smaller steps (which may also be done only sometimes, e.g. only for high speed bodies or only when an actual discrete collision is detected).
Collision detection is non-trivial because we need to detect not only the presence of the collision but also its parameters which are typically the exact **point of collision, collision depth and collision [normal](normal.md)** -- these are needed for subsequently resolving the collision (typically the bodies will be shifted along the normal by the collision depth to become separated and [impulses](impulse.md) will be applied at the collision point to update their velocities). We also need to detect **general cases**, i.e. collisions of whole volumes (imagine e.g. a tiny cuboid inside an arbitrarily rotated bigger cone). This is very hard and/or expensive for some complex shapes such as general 3D triangle meshes (which is why we approximate them with simpler shapes). We also want the detection algorithm to be at least reasonably **fast** -- for this reason collision detection mostly happens in two phases:

@ -1,5 +1,7 @@
# Communism
*"Imagine no possession"* --John Lennon
Communism (from *communis* -- common, shared) is a very wide term which most generally stands for the idea that sharing and equality should be the basic values and principles of a society; as such it is a [leftist](left_right.md) idea which falls under [socialism](socialism.md) (i.e. basically focusing on people at large). There are very many branches, theories, political ideologies and schools of thought somewhat based on communism, for example [Marxism](marxism.md), [Leninism](leninism.md), [anarcho communism](ancom.md), primitive communism, Christian communism, Buddhist communism etc. -- of course, some of these are good while others are evil and only abuse the word communism as a kind of *brand* (as also happens e.g. with [anarchism](anarchism.md)). Sadly after the disastrous failure of the violent pseudocommunist revolutions of the 20th century, most people came to equate the word communism with oppressive militant regimes, however we have to stress that **communism is NOT equal to [USSR](ussr.md), Marxism-Lenninism, Stalinism or any other form of pseudocommunism**, on the contrary, such regimes were rather hierarchical, violent and pseudocommunist, often downright [fascist](fascism.md). We ourselves embrace true communism and base our [LRS](lrs.md) and [less retarded society](less_retarded_society.md) on ideas of unconditional sharing. **Yes, large communist societies have existed and worked**, for example the [Inca](inca.md) empire worked without [money](money.md) and provided FREE food, clothes, houses, health care, education and other products of collective work to everyone, according to his needs. Many other communities also work on more or less communist principles, see e.g. Jewish kibbutz, Sikhist [langar](langar.md), [free software](free_software.md), or even just most families for that matter. The color [red](red.md) is usually associated with communism and the "hammer and sickle" (U+262D) is taken as its symbol, though that's mostly associated with the evil communist regimes and so its usage is to be greatly considered.
Common ideas usually associated with communism are (please keep in mind that this may differ depending on the specific flavor of communism):

@ -28,4 +28,5 @@ The following are a few notable fantasy consoles.
- [virtual machine](vm.md)
- [IBNIZ](ibniz.md)
- [ISA](isa.md)
- [SAF](saf.md)
- [SAF](saf.md)
- [DOS](dos.md)

@ -119,6 +119,7 @@ This is a summary of some main guidelines on how an LRS supporter should behave
- **[Don't argue with retards](cant_argue_with_idiot.md)** with the goal of convincing him or winning the argument so that you feel good (the meaning of retard here is not someone with low IQ but rather someone who isn't really open to the ideas or LRS, though these are mostly the same people). It's literally wasted time/energy and it's bad for your mental health, it leads nowhere and achieves nothing. You literally can NOT convince anyone who is not open to being convinced, it is impossible, even if you have 100000 mathematical proofs, real world evidence, literature supporting you and anything you can imagine, you cannot logically convince someone who doesn't know how logic works or someone who simply emotionally isn't ready to change his mind. NO, not even if he's an "intellectual", has PhD and Nobel Prize, if he doesn't wanna see the truth, you cannot help him. As it's been said, trying to argue with an idiot is like trying to win a chess game against a pidgeon -- even if you're the world chess champion, the pidgeon will just shit on the board and think it's won. If you spot a retard, just leave -- don't try to have the last word or anything, even admit him "victory" in the argument and leave him in his world of delusion where he is the unappreciated Einstein, just do not waste an extra second on him, just leave and go do something better. { So many such idiots I have met I can't even count it -- pure stupid peasant aren't even that bad, the wost are the "above averge" intelligence reddit atheists who think they're smart. I literally had such people argue like "you like games therefore competition in society is good because games are part of society therefore society equals competition". Truly I'm not sure if those bastards are just trolling me into suicide or are really so fucking dumb :D ~drummyfish }
- Similarly **avoid [toxic](toxic.md) communities**, don't argue, just leave, it's better to be alone than in bad company. Basically anything with a COC, language filter, SJW vibe, rainbow etc. isn't even more worth checking out.
- **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, ...
- **Live your life as you want**, don't let someone else control your life and manipulate you, e.g. with feelings of guilt -- this often happens with your parents, partner, friends, culture, laws, ... This isn't an argument for self interest! On the contrary, most people nowadays will try to push you to following self interest or fascist goals that will also benefit them. You only have one life, others have theirs, so listen to advice but remember to always make your own decisions in important things. If you feel you don't want to go to school or that you don't want to work or that you want to do something that people despise or you want to do something that you've read is wrong, just do what you feel is best, even if it's a let down for your family or if it contradicts what the whole society is telling you.
- ...
## How Not To Get Depressed Living In This Shitty Dystopia

@ -2,6 +2,8 @@
Jargon File (also Hacker's Dictionary) is a computer [hacker](hacking.md) dictionary/compendium that's been written and updated by a number of prominent hackers, such as [Richard Stallman](rms.md) and [Erik S Raymond](esr.md), since 1970. It is a greatly important part of hacker culture and has also partly inspired this very wiki.
{ A similar but smaller encyclopedia is at https://www.erzo.org/shannon/writing/csua/encyclopedia.html (originally and encyclopedia at soda.csua.berkeley.edu). ~drummyfish }
It informally states that it's in the [public domain](pd.md) and some people have successfully published it commercially, however there is no standard [waiver](waiver.md) or [license](license.md) -- maybe because such waivers didn't really exist at the time it was started -- and so we have to suppose it is NOT formally [free as in freedom](free_culture.md). Nevertheless it is freely accessible e.g. at [Project Gutenberg](gutenberg.md) and no one will bother you if you share it around... we just wouldn't recommend treating it as true public domain.
It is pretty nicely written with great amount of humor and good old political incorrectness, you can e.g. find the definition of terms such as *[rape](rape.md)* and *clit mouse*. Some other nice terms include *smoke emitting diode* (broken diode), *notwork* (non-functioning [network](network.md)), [Internet Exploiter](internet_explorer.md), *binary four* (giving a finger in binary), *Kamikaze packet* or *Maggotbox* ([Macintosh](mac.md)). At the beginning the book gives some theory about how the hacker terms are formed (overgeneralization, comparatives etc.).

@ -1,6 +1,6 @@
# Less Retarded Society
Less retarded society (LRS, same [acronym](acronym.md) as [less retarded software](lrs.md)) is a model of ideal society towards which we, the [LRS](lrs.md), want to be moving. Less retarded society is a peaceful, collaborative society based on [love](love.md) of all [life](life.md), which aims for maximum well being of all living beings, a society without violence, [money](money.md), oppression, need for [work](work.md), social [competition](competition.md), poverty, scarcity, criminality, [censorship](censorship.md), [self-interest](self_interest.md), government, police, laws, bullshit, slavery and many other negative phenomena. It equally values all living beings and establishes true social equality in which everyone can pursue his true desires freely -- it is a TRULY [leftist](left_vs_right.md) society, NOT a [pseudoleftist](pseudoleft.md) one. The society works similarly to that described by the [Venus Project](venus_project.md) and various [anarchist](anarchism.md) theories (especially [anarcho pacifist](anpac.md) [communism](communism.md)), but it also takes good things from elsewhere, even various [religions](religion.md) (without itself actually becoming a religion in traditional sense); for example parts of teaching of [Jesus](jesus.md) and [Buddha](buddhism.md).
Less [retarded](retard.md) society (LRS, same [acronym](acronym.md) as [less retarded software](lrs.md)) is a model of ideal society towards which we, the [LRS](lrs.md), want to be moving. Less retarded society is a peaceful, collaborative society based on [love](love.md) of all [life](life.md), which aims for maximum well being of all living beings, a society without violence, [money](money.md), oppression, need for [work](work.md), social [competition](competition.md), poverty, scarcity, criminality, [censorship](censorship.md), [self-interest](self_interest.md), government, police, laws, bullshit, slavery and many other negative phenomena. It equally values all living beings and establishes true social equality in which everyone can pursue his true desires freely -- it is a TRULY [leftist](left_vs_right.md) society, NOT a [pseudoleftist](pseudoleft.md) one. The society works similarly to that described by the [Venus Project](venus_project.md) and various [anarchist](anarchism.md) theories (especially [anarcho pacifist](anpac.md) [communism](communism.md)), but it also takes good things from elsewhere, even various [religions](religion.md) (without itself actually becoming a religion in traditional sense); for example parts of teaching of [Jesus](jesus.md) and [Buddha](buddhism.md).
**How is this different from other ideologies and "life philosophies"?** Well, one principal difference is that LRS doesn't want to [fight](fight_culture.md), in fact LRS adopts a downright [defeatist](defeatism.md) mindset to not compromise morality by any desire to "win the game"; nowadays as well as in the past society has always been about conflict, playing a **game** against others (nowadays e.g. market competition, employment competition, media competition, ...) in which some win, some can manage and some lose. Most political parties nowadays just want to change the rules of the game or downright switch to a different kind of game, some want to make the rules "more fair", or to make it favor their represented minority (so called [fascism](fascism.md)), some just want to [hack](hacking.md) the game, some want to [cheat](cheat.md) to win the game easily, some want to play fair but still win (i.e. become "successful"). LRS simply sees any kind of such game as unnecessary, cruel, unethical and harmful in many ways not just to us, but to the whole planet. LRS therefore simply wants to stop the game, not by force but by making everyone see how bad the game is. It says that **competition and conflict must seize to be the basis of society**. There is no value in achieving anything by violence, such a change will soon be reverted by counter revolution, people themselves have to understand what's good and choose it voluntarily. That is one of the reasons why we are **[pacifists](pacifism.md)** and **reject all violence**, only wanting to promote our ideas by [education](education.md). We accept we may not achieve our goals and we most certainly won't achieve anything during our lifetime and that gives us the freedom to behave truly morally.

@ -1,6 +1,6 @@
# Less Retarded Software
Less retarded software (LRS) is a specific kind of [software](software.md) aiming to be a truly good technology maximally benefiting and respecting its users, following the philosophy of extreme [minimalism](minimalism.md) ([Unix philosophy](unix_philosophy.md), [suckless](suckless.md), [KISS](kiss.md), ...), [anarcho pacifism](anpac.md), [communism](communism.md) and [freedom](free_software.md). The term was invented by [drummyfish](drummyfish.md).
Less [retarded](retard.md) software (LRS) is a specific kind of [software](software.md) aiming to be a truly good technology maximally benefiting and respecting its users, following the philosophy of extreme [minimalism](minimalism.md) ([Unix philosophy](unix_philosophy.md), [suckless](suckless.md), [KISS](kiss.md), ...), [anarcho pacifism](anpac.md), [communism](communism.md) and [freedom](free_software.md). The term was invented by [drummyfish](drummyfish.md).
The symbol of LRS is a heart ([love](love.md)), the peace symbol (pacifism, nonviolence) and A in circle ([anarchism](anarchism.md)).

@ -6,6 +6,8 @@ So called *modern* [software](software.md)/[hardware](hardware.md) and other [te
The word *modern* was similarly addressed e.g. by [reactionary software](reactionary_software.md) -- it correctly identifies the word as being connected to a programming orthodoxy of [current times](21st_century.md), the one that's obsessed with creating bad technology and rejecting good technology. { I only found reactionary software after this article has been written. ~drummyfish }
**Avoid anything labeled as follows**: "modern", "state-of-the-art", "cutting-edge", "for 21st century", "for INSERT CURRENT YEAR", "up-to-date", "innovative", "novel", "latest technology", "high tech" etc.
## Modern Vs Old Technology
It's sad and dangerous that newer generation won't even remember technology used to be better, people will soon think that the current disgusting state of technology is the best we can do. That is of course wrong, technology used to be relatively good. It is important we leave here a note on at least a few ways in which old was much, much better.

@ -57,4 +57,5 @@ TODO: Retro Game Tiny, Adafruit PyGamer, ... see also https://github.com/ESPboy-
## See Also
- [fantasy console](fantasy_console.md)
- [fantasy console](fantasy_console.md)
- [DOS](dos.md)

@ -11,4 +11,5 @@ What EXACTLY constitutes the Smol Internet? Of course we don't really have exact
- [Usenet](usenet.md)
- [geocities](geocities.md)
- [neocities](neocities.md)
- [soynet](soynet.md)
- [soynet](soynet.md)
- [webring](webring.md)

@ -1,6 +1,6 @@
# Suckless
Suckless, software that sucks less, is a type of [free](free_software.md) [software](software.md), as well as an organization (http://suckless.org/), that tries to adhere to a high technological [minimalism](minimalism.md), [freedom](freedom.md) and [hackability](hacking.md), and opposes so called [bloat](bloat.md) and unnecessary complexity which has been creeping into most "[modern](modern.md)" software and by which technology has started to become less useful and more burdening. It is related to [Unix philosophy](unix_philosophy.md) and [KISS](kiss.md) but brings some new ideas onto the table. New movements now came to existence from suckless, e.g. [Bitreich](bitreich.md) and our own [less retarded software](lrs.md).
Suckless, software that [sucks](suck.md) less, is a type of [free](free_software.md) [software](software.md), as well as an organization (http://suckless.org/), that tries to adhere to a high technological [minimalism](minimalism.md), [freedom](freedom.md) and [hackability](hacking.md), and opposes so called [bloat](bloat.md) and unnecessary complexity which has been creeping into most "[modern](modern.md)" software and by which technology has started to become less useful and more burdening. It is related to [Unix philosophy](unix_philosophy.md) and [KISS](kiss.md) but brings some new ideas onto the table. New movements now came to existence from suckless, e.g. [Bitreich](bitreich.md) and our own [less retarded software](lrs.md).
The community is relatively a small niche but has also seen a growth in popularity sometime in 2010s, thanks to tech youtubers such as [Luke Smith](luke_smith.md), [Distro Tube](distro_tube.md) and [Mental Outlaw](mental_outlaw.md). It has also gained traction on [4chan](4chan.md)'s technology board. While consisting a lot of expert programmers and [hackers](hacker.md) mostly interested in systems like [GNU](gnu.md)/[Linux](linux.md), [BSDs](bsd.md) and [Plan 9](plan9.md), a lot of less skilled "[Linux](linux.md)" users and even complete non-programmers have started to use suckless to various degrees -- [dwm](dwm.md) has for example seen a great success among "Unix porn" lovers and chronic [ricers](ricing.md). While some members are hardcore minimalists and apply their principles to everything, some just cherry pick programs they find nice and integrate them in their otherwise bloated systems.

@ -26,3 +26,6 @@ In his video blogs Terry talked about how technology became spoiled and that Tem
Temple OS source code has over 100000 [LOC](loc.md). It is publicly available and said to be in the [public domain](public_domain.md), however there is no actual [license](license.md)/waiver in the repository besides some lines such as "100% public domain" which are legally questionable and likely ineffective (see [licensing](license.md)).
## See Also
- [Timecube](timecube.md)

@ -2,6 +2,8 @@
Vector is a basic [mathematical](math.md) object that expresses direction and magnitude (such as velocity, force etc.) and is very often expressed as (and many times misledingly equated with) an "array of numbers". For example in two dimensional space an array `[4,3]` expresses a vector pointing 4 units to the "right" (along X axis) and 3 units "up" (along Y axis) and has the magnitude 5 (which is the vector's length). Vectors are one of the very basic concepts of advanced math and are used almost in any advanced area of math, physics, programming etc. -- basically all of physics and engineering operates with vectors, programmers will mostly encounter them in areas such as 3D [graphics](graphics.md), [physics engines](physics_engine.md) (forces, velocities, acceleration, ...), [machine learning](machine_learning.md) (feature vectors, ...) or [signal processing](signals.md) (e.g. [Fourier transform](fourier_transform.md) just interprets a signal as a vector and transforms it to a different basis) etc. In this article we will implicitly focus on vectors from programmer's point of view (i.e. "arrays of numbers"), which to a mathematician will seem very simplified, but we'll briefly also foreshadow the mathematical view.
(NOTE: the term *vector* is used a lot in different contexts and fields, usually with some connection to the mathematical idea of vector which is sometimes however very loose, e.g. in low-level programming *vector* means a memory holding an address of some event handler. It's better to just look up what "vector" means in your specific area of interest.)
Just like in elemental mathematics we deal with "simple" numbers such as 10, -2/3 or [pi](pi.md) -- we retrospectively call such "simple" numbers **[scalars](scalar.md)** -- advanced mathematics generalizes the concept of such a number into vectors ("arrays of numbers", e.g. `[1,0,-3/5]` or `[0.5,0.5]`) and yet further to [matrices](matrix.md) ("two dimensional arrays of numbers") and defines a way to deal with such generalizations into **[linear algebra](linear_algebra.md)**, i.e. we have ways to add and multiply vectors and matrices and solve [equations](equation.md) with them, just like we did in elemental algebra (of course, linear algebra is a bit more complex as it mixes together scalars, vectors and matrices). In yet more advanced mathematics the concepts of vectors and matrices are further generalized to **[tensors](tensor.md)** which may also be seen as "N dimensional arrays of numbers" but further add new rules and interpretation of such "arrays" -- vectors can therefore be also seen as a tensor (of rank 1) -- note that in this context there is e.g. a fundamental distinction between row and column vectors. Keep in mind that vectors, matrices and tensors aren't the only possible generalization of numbers, another one is e.g. that of [complex numbers](complex_number.md), [quaternions](quaternion.md), [p-adic numbers](p_adic.md) etc. Anyway, in this article we won't be discussing tensors or any of the more advanced concepts further, they are pretty non-trivial and mostly beyond the scope of mere programmer's needs :) We'll keep it at linear algebra level.
**Vector is not merely a coordinate**, though the traditional representation of it suggest such representation and programmers often use vector data types to store coordinates out of convenience (e.g. in 3D graphics engines vectors are used to specify coordinates of 3D objects); vector should properly be seen as a **direction and magnitude** which has **no position**, i.e. a way to correctly imagine a vector is something like an **arrow** -- for example if a vector represents velocity of an object, the direction (where the arrow points) says in which direction the object is moving and the magnitude (the arrow length) says how fast it is moving (its [speed](speed.md)), but it doesn't say the position of the object (the arrow itself records no position, it just "hangs in thin air").

@ -3,7 +3,7 @@
This is an auto-generated article holding stats about this wiki.
- number of articles: 532
- total size of all texts in bytes: 2659276
- total size of all texts in bytes: 2668827
longest articles:
@ -23,6 +23,19 @@ longest articles:
latest changes:
```
Date: Mon Jan 1 15:33:55 2024 +0100
acronym.md
fight_culture.md
function.md
history.md
how_to.md
less_retarded_society.md
marxism.md
portability.md
programming_language.md
programming_tips.md
usa.md
wiki_stats.md
Date: Sun Dec 31 01:01:53 2023 +0100
books.md
democracy.md
@ -43,18 +56,5 @@ cc.md
dog.md
free_software.md
git.md
how_to.md
lrs.md
suicide.md
wiki_stats.md
wikipedia.md
Date: Thu Dec 28 18:17:00 2023 +0100
README.md
bloat.md
build_engine.md
evil.md
go.md
lmao.md
minimalism.md
```

@ -9,6 +9,7 @@ TODO
## See Also
- [tao](tao.md)
- [fu](fu.md)
- [Buddhism](buddhism.md)
- [hacker culture](hacking.md)
- [nirvana](nirvana.md)

Loading…
Cancel
Save