master
Miloslav Ciz 2 months ago
parent a2a9b750ab
commit ec03c1b60c

@ -36,12 +36,14 @@ One of a very frequent questions you may hear a noob ask is **"How can bloat lim
| | : :
| / : :
does || : :
nothing +---------------------------------------------------> internal complexity
trivial simple solo big huge gigantic
manageable
nothing +-----------------------------------------------------> internal complexity
trivial simple solo big huge gigantic
manageable
```
Please note there may arise some disagreement among minimalist group about where the band is drawn exactly, especially old Unix hackers could be heard arguing for allowing even trivial programs, maybe as long as the source code isn't shorter than the utility name, but then the discussion might even shift to questions like "what even is a program vs what's just a 10 characters long line" and so on.
Yes, **bloat is also unecological** and no, it cannot be fixed by replacing fossil fuel cars with cars that run on grass and plastic computers by computers made from recycled cardboards mixed with composted horse shit. It is the immense volume of human ACTIVITY that's required by the bloated technology all around the globe that's inherently unecological by wasting so much effort, keeping focus on maximalism, growth and preventing us from frugality and minimizing resource waste. Just as any other [bullshit](bullshit.md) that requires immense resources to just keep maintaining -- great complexity is just absolutely incompatible with ecology and as much as you dislike it, to achieve truly eco-friendly society we'll have to give up what we have now in favor of something orders of magnitude more simple and if you think otherwise, you are just yet too unexperienced (or remained purposefully ignorant) to have seen the big picture already. Consider that your program having bullshit dependencies such as [Python](python.md), [JavaScript](js.md), [C++](cpp.md), [Java](java.md), [OpenGL](opengl.md), [Vulkan](vulkan.md), [GPU](gpu.md), [VR](vr.md) sets, gigabytes of [RAM](ram.md) etcetc. requires having the inherently unecological system up, it needs millions of people doing bullshit jobs that are inherently wasting resources, increasing CO2 and making them not focus on things that have to be done -- yes, even if we replace plastic straws with [paper straws](greenwashing.md). All those people that make the thousand pages standards that are updated every year, reviews of those standards, writing tons and tons of tests for implementations of those standards, electing other people to make those standards, testing their tests, implementing the standards themselves, optimizing them, all of that collectively needing many billions of lines of code and millions of hours of non-programming activities, it all requires complex bureaucracy, organization and management (complex [version control systems](vcs.md), wikis, buildings, meeting spaces, ...) and communication tools and tons of other bullshit recursively spawning more and more waste -- all of these people require cars to go to work every day (even if some work from home, ultimately only a few can work from home 100% of the time and even so millions others need to physically go to factories to make all those computers, electricity, chair, food and other things those people need), they require keeping a high bandwidth 100% uptime global Internet network maintained, all of this requiring extra buildings, offices, factories, roads, buildings for governments overseeing the building of those buildings, maintenance of those roads etcetc. A newbie programmer (99.99999% programmers in the field nowadays) just don't see all this because they lack the big picture, a woman forced into programming has hard time comprehending an if statement, how do you expect her to see the deep interconnections between technology and society -- she may know that OpenGL is "something with graphics" and it's just there on every computer by default, she can't even picture the complexity that's behind what she sees on the screen. Hence the overall retardation. You just cannot have people living ecologically and at the same time have what we have now. So yes, by supporting and/or creating bloat you are killing the planet, whether you agree with it or not. No, you can't find excuses out of this, no, paper straws won't help, just admit you love point and click "programming without math" of your own shitty Minecraft clones in Godot even for the price of eliminating all life on Earth, that's fine (no it's not but it's better to just not bullshit oneself).
{ Fucking hell this shit has gone too far with the newest supershit gayme called Cities Skyline II, I literally can't anymore, apparently the game won't run smoothly even on Earth's most advanced supercomputer because, as someone analyzed, the retarddevs use billion poly models for pedestriangs without any [LOD](lod.md), I bet they don't even know what it is, they probably don't even know what a computer is, these must be some extra retarded soy idiots making these games now. Though I knew it would come to this and that it will be getting yet much worse, I am always still surprised, my brain refuses to believe anyone would let such a piece or monstrous shit to happen. This just can't be real anymore. ~drummyfish }

@ -4,8 +4,8 @@ Brain [software](software.md), also brainware, is kind of a [fun](fun.md) idea o
Primitive tools helping the brain compute, such as pen and paper or printed out mathematical tables, may be allowed.
Example of brain software can be the [game](game.html) of [chess](chess.md). Chess masters can easily play the game without a physical chess board, only in their head, and they can play games with each other by just saying the moves out loud. They may even just play games with themselves, which makes chess a deep, entertaining game that can be 100% contained in one's brain. Such game can never be taken away from the person, it can't be altered by corporations, it can't become unplayable on new [hardware](hardware.md) etc., making it free to the greatest extent. Many other board games and pen and pencil games, such as [racetrack](racetrack.md) (pen and pencil racing game suitable for one or many players).
Example of brain software can be the [game](game.html) of [chess](chess.md). Chess masters can easily play the game without a physical chess board, only in their head, and they can play games with each other by just saying the moves out loud. They may even just play games with themselves, which makes chess a deep, entertaining game that can be 100% contained in one's brain. Such game can never be taken away from the man, it can't be altered by corporations, it can't become unplayable on new [hardware](hardware.md) etc., making it free to the greatest extent. Many other board games and pen and pencil games, such as [racetrack](racetrack.md) (pen and pencil racing game suitable for one or many players).
One may think of a pen and paper computer with its own simple instruction set that allows general purpose programming. This instruction set may be designed to be well interpretable by human and it may be accompanied by tables printed out on paper for quick lookup of operation results -- e.g. a 4 bit computer might provide a 16x16 table with precomputed multiplication results which would help the person execute the multiplication instruction within mere seconds.
One may think of a pen and paper computer with its own simple instruction set that allows general purpose programming. This instruction set may be designed to be well interpretable by human and it may be accompanied by tables printed out on paper for quick lookup of operation results -- e.g. a 4 bit computer might provide a 16x16 table with precomputed multiplication results which would help the individual execute the multiplication instruction within mere seconds.
Yet another idea is to make a computer with architecture similar to the typical electronic computers but powered by human brains -- let's call this a [human computer](human_computer.md) (not to be confused with people whose job was to perform computations!). Imagine that after a societal collapse we lose our computer technology (i.e. the ability to manufacture transistors and similar key components), but we retain our knowledge of computer architecture, algorithms and the usefulness of computers. As a temporary solution for performing computations we may create a "computer made of humans", a room with several men, each one performing a role of some computer component, for example an [ALU](alu.md), [cache](cache.md) and memory controller. Again, a special instruction set and a set of tools (such as physical lookup tables for results of instructions) could be made to make such a human computer relatively fast. It might not run [Doom](doom.md), but it could possibly e.g. compute some mathematical constants to a high precision or perhaps help find optimal structure of cities, compute stresses in big building etc. In such conditions even a slow calculator could be immensely useful.

@ -7,4 +7,5 @@ TODO
Compiler bombs in various languages:
- [C](c.md): `main[-1u]={1};`, creates 16 GB executable, works by defining a huge array an initializes its first element so the whole array will be explicitly stored in the executable.
- [Rust](rust.md): every program :D
- ...

@ -6,7 +6,7 @@ TODO: actual normal article possibly
{ Here I'll leave the rant I've written when I was kinda stressed. ~drummyfish }
*CONSUME YOU FUCKING IDIOTIC BITCH YOU DON'T EVEN HAVE THE LATEST AI RAYTRACING ENCRYPTION GPUUUUUUUU 1080K WIRELESS GAYMING MONITOR WITH BLOCKCHAIN BUY IT BUYYYYYY IT YOU IDIOT.* --[capitalism](capitalism.md)
*CONSUME YOU FUCKING IDIOTIC BITCH YOU DON'T EVEN HAVE THE LATEST AI RAYTRACING ENCRYPTION GPUUUUUUUU 1080K WIRELESS GAYMING MONITOR WITH BLOCKCHAIN BUY IT BUYYYYYY IT YOU IDIOT.* --[capitalism](capitalism.md) { Unironically this is literally how ads of Alza.cz (the most successful tech store in Czech Republic) are. There's this unbelievably annoying green motherfucker that just yells over and over from the TVs and radios things like "BUY THIS BUY THIS BUUUUUUUUUUUUUUUY ITTTTITTTTTT ITSSSS ON DISCOUUUUUUUNT DICSOUUUUUUUUNTTTTTT", it makes me suicidal, everyone I ever met hates it to death. Also everyone I ever met buys stuff from them. ~drummyfish }
Consumerism (also consoomerism) is a built-in "feature" of [capitalism](capitalism.md) that says EVERYTHING HAS TO BE CONSUMED on a regular short-term basis so as to keep CONSTANT [P.R.O.G.R.E.S.S.](leading_the_pig_to_slaughterhouse.md)^TM(c)/PERSONAL DEVELOPMENT GROWTHP/[PRODUCTIVITY](productivity_cult.md)^tm^tm^tm^tm, even things that in theory could last decades to generations such as houses, cars, computers, software, even just INFORMATION etc. Yes, we could make nice durable machines that wouldn't break and would serve a man for generations, we could write a [finished](finished.md) operating system that would work and be useful, but that wouldn't be good for the seller if he only sold the thing once in a hundred years, would it? ALERT ALERT: BAD FOR CAPITAL. He wants to sell the thing and then PROFIT from it every day as he lies on the beach being fucked by 10 billion whore lolitas, so the thing has to break regularly and just demand to be replaced once in a year or so (see [planned obsolescence](planned_obsolescence.md)) -- haha, actually you know what would be best? WHAT IF :D WHAT IF WE RAPE THE CUSTOMER EVERY DAI, LMAOOOOOO What IF THERE ARE NO PRODUCTS BUT PRODUCT ARE ACTUALLY JUST [SERVICES](saas.md) :DDDDD LMAO THEN NO ONE CAN OWN ANYTHING, YOUR CAR AND YOUR TOOTHBRUSH IS JUST A SUBSCRIPTION LOOOOL, it just stops running if you stop paying. Why do this? Because in capitalism [economy](economy.md) MUSTN'T STOP ULTRA EXPONENTIALLY EXPLODING EVERY TRILLISECOND and EVERYONE MUST HAVE 10000 BILLION [JOBS](job.md) ELSE THE POOR WORKER LOSES THE MEANING OF LIFE like the neanderthals who lacked the good capitalist overlords that assure the basic human need of ultraexponential personal growth and all killed themselves, also the same with stupid lazy animals. So capitalism has to constantly GROOOOOOOOOOOOOOOOOOOOOOOOOOOWWWWWW FOR ANY COST JUST GROW GROW GROW GROW GROW GROOOOOOOOOOOOOOOOOWWWWWWWWWWWW -- is it good? No, but it's called PWOGWEESSS so people LOVE IT, people will shit themselves and suffocate their mouths with their shit just to hear the word [PWOGWEEEEES](leading_the_pig_to_the_slaughterhouse.md) (or alternatively UPDATE or ANTIPEDOPHILE PROTECTION), if a politician says PWEGWESS enough times in his speech the crowd will just start sucking his dick on the stage and he will win the elections by 130% majority. [LMAOOOOO](lmao.md) WHAT IF we make [updates a kind of consumerist product](update_culture.md), LOL WHAT IF one group of people build houses one day and the other group destroys them the other day and so on so on, it's INFINIITEEEEEEEEEEEEEEEEEEEE JOBS LOL :D I should fucking get into politics.

@ -6,4 +6,4 @@ It works on the basis of [asymmetric cryptography](asymmetric_cryptography.md):
Signatures can be computed e.g. with the [RSA](rsa.md) algorithm.
The nice thing here is that **[anonymity](anonymity.md) can be kept with digital signatures**; no private information such as the signer's real name is required to be revealed, only his public key. Someone may ask why we then even sign documents if we don't know by whom it is signed lol? But of course the answer is obvious: many times we don't need to know the identity of the signer, we just need to know that different messages have all been written by the same person, and this is what a digital signature can ensure. And of course, if we want, a public key can have a real identity assigned if desirable, it's just that it's not required.
The advantage here is that **[anonymity](anonymity.md) can be kept with digital signatures**; no private information such as the signer's real name is required to be revealed, only his public key. Someone may ask why we then even sign documents if we don't know by whom it is signed lol? But of course the answer is obvious: many times we don't need to know the identity of the signer, we just need to know that different messages have all been written by the same man, and this is what a digital signature can ensure. And of course, if we want, a public key can have a real identity assigned if desirable, it's just that it's not required.

@ -50,6 +50,7 @@ Also remember the worst thing you can do to a joke is put a [disclaimer](disclai
- Boss: "We're going to need to store additional information about gender of all 1600 people in our database." Me: "OK that's only 200 extra bytes.". Diversity department: "You're fired."
- the [downto](downto.md) operator
- [Schizophrenia](schizo.md) beats being alone.
- Our new [app](app.md) partly adopts the [KISS](kiss.md) philosophy, specifically the "stupid" part.
- I just had sex with a German chick, for some reason she kept yelling her age. (Or maybe she just didn't consent.)
- I find it much more pleasant to browse the web on a 1 bit display, it can't display a [rainbow](lgbt.md).
- Why are [noobs](noob.md) the most pacifist beings in existence? Because they never beat anyone.

@ -8,7 +8,7 @@ Specific practices used in marketing are:
- **Lies** and falsehoods. Every ad will present the product as the best, even though not all products can be best. Actors will be paid to lie about how the product changed their life etc. -- so called **[astroturfing](astroturfing.md)**. Many times numbers and "facts" whose source is difficult to trace will be completely made up. **Fake discounts** are something constantly presented in ads.
- **Extreme repetition/[spam](spam.md)**: this includes repeating the same commercial over and over (e.g. every 10 minutes) as well as repeating the name of the product in a completely retarded way (*"We recommend X because X is the best. For more info about X visit www.X.com. Remember, X is the best. Your X."*).
- **Psychological tricks** such as **abusing songs** and shitty catchy melodies, often raping existing good music by for example changing the lyrics. This abuses the fact that a song will stick in one's head and keep torturing the person into thinking about the advertised product constantly. Other tricks include **shouting**, **fake empathy** ("we care about you" etc.) or the **"[everyone does it](everyone_does_it.md)" illusion**.
- **Psychological tricks** such as **abusing songs** and shitty catchy melodies, often raping existing good music by for example changing the lyrics. This abuses the fact that a song will stick in one's head and keep torturing the individual into thinking about the advertised product constantly. Other tricks include **shouting**, **fake empathy** ("we care about you" etc.) or the **"[everyone does it](everyone_does_it.md)" illusion**.
- **Misleading statistics**, presentation and interpretation of data. For example any success rate will be presented as the upper bound as such a number will be higher, typically 99% or 100%, i.e. *"our product is successful in up to 100% cases!"* (which of course gives zero information and only says the product won't succeed in more than 100% cases). A company may also run its own competition for a "best product", e.g. on [Facebook](facebook.md), in which all products are of course their products, and then the winning product will be seen on TV as a "contest winning product".
- **Forcefully seizing attention**: ads are present practically everywhere, even embedded in "art" (even in that one pays for), in the sky (planes and blimps, ...), they play on every radio you hear in every shop, they pop up on electronic devices one paid for, they can't be turned off. They are present in education materials and targeted at children. Audio of a commercial will be made louder to catch an attention when it starts playing on a commercial break.
- **bribing celebrities/[influencers](influencer.md)**. An *influencer* is nowadays a culturally accepted "job" whose sole work consists of lying, forcing products and spreading corporate propaganda.

@ -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 }
Sometimes random people notice the issue, though there are very few. One blog (https://blog.ari.lt/b/modernism/) for example goes on to say that "modernism sucks" and the word *modern* is basically just an excuse for being [bloated](bloat.md). Those are indeed true words.
**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

@ -8,7 +8,7 @@ Open source is unfortunately (but unsurprisingly) becoming more prevalent than f
*"**Free and Open Source**: it is completely **FREE OF COST** and **ALMOST ALL** of its components are open source."* --GNU/Linux [Mint](mint.md)'s website already marketing partially proprietary system as "open source" and purposefully misusing the word "free" to mean "gratis" (February 2024)
{ Mint also hilariously markets itself as [KISS](kiss.md) lol. ~drummyfish }
{ Mint also hilariously markets itself as [KISS](kiss.md) lol. My friend suggested they only implemented the "stupid" part of it :-) ~drummyfish }
One great difference of open source with respect to free software is that **open source doesn't mind proprietary dependencies and only "partially open" projects** (see also [open core](open_core.md)): [Windows](windows.md) only programs or [games](game.md) in [proprietary](proprietary.md) engines such as [Unity](unity.md) are happily called open source -- this would be impossible in the context of free software because as [Richard Stallman](rms.md) says software can only be free if it is free as a whole, it takes a single proprietary line of code to allow abuse of the user. The "open source" communities nowadays absolutely **don't care a bit about [freedom](freedom.md) or [ethics](ethics.md)** (the majority of open source supporting zoomers most likely don't even know there was ever any connection), many "open source" proponents even react aggressively to bringing the idea of [ethics](ethics.md) up. "Open source" communities use locked, abusive proprietary platforms such as [Discord](discord.md), Google cloud documents and [Micro$oft's](microsoft.md) [GitHub](github.md) to create software and collaborate -- users without Discord and/or GitHub account often aren't even offered a way to contribute, report bugs or ask for support. There are many "open source" projects that are just meant to be part of a mostly proprietary environment, for example the [Mangos](mangod.md) implementation of [World of Warcraft](wow.md) server, which of course has to be used with the proprietary WoW client and with proprietary server assets, which gives Blizzard (the owner of WoW) complete legal control over any server running on such an "open source" server (such servers always only rely on Blizzard temporarily TOLERATING their small noncommercial communities, despite Blizzard having taken some of them down with legal action) -- calling such a project "free software" in this context would just sound laughable, so they rather call it "open source", i.e. "no, there is no freedom, but the source is technically open". Lately you will even see more and more people just calling any software/project "open" as long as some part of its source code is [available](source_available.md) for viewing on GitHub, no matter the license or any other considerations (see e.g. "open"geofiction etc.).

File diff suppressed because it is too large Load Diff

@ -74,6 +74,114 @@ For a unique solution sudoku we have to check there still exists exactly one sol
The matter of generating sudokus is further complicated by taking into account the difficulty rating of the puzzle.
## Code
Here is a [C](c.md) code that solves sudoku with [brute force](brute_force.md) (note that for too many empty squares it won't be usable as it might run for years):
```
#include <stdio.h>
char sudoku[9 * 9] = // 0s for empty squares
{
9, 3, 1, 0, 5, 7, 2, 6, 0,
6, 5, 0, 9, 1, 8, 3, 4, 7,
4, 7, 8, 6, 3, 2, 1, 9, 5,
7, 1, 5, 2, 6, 0, 4, 8, 3,
3, 0, 6, 5, 8, 1, 7, 2, 9,
2, 8, 9, 7, 0, 3, 6, 5, 1,
5, 6, 7, 3, 9, 0, 8, 1, 2,
8, 2, 0, 1, 7, 5, 9, 3, 6,
1, 9, 3, 8, 2, 6, 5, 0, 4
};
void print(void)
{
puts("-----------------");
for (int i = 0; i < 9 * 9; ++i)
{
putchar('0' + sudoku[i]);
putchar(i % 9 != 8 ? ' ' : '\n');
}
}
int isValid(void) // checks if whole sudoku is valid
{
for (int i = 0; i < 9; ++i)
{
unsigned int m1 = 0, m2 = 0, m3 = 0; // bit masks of each group
char *s1 = sudoku + i, // column
*s2 = sudoku + i * 9, // row
*s3 = sudoku + (i / 3) * (3 * 3 * 3) + (i % 3) * 3; // square
for (int j = 0; j < 9; ++j)
{
m1 |= (1 << (*s1));
m2 |= (1 << (*s2));
m3 |= (1 << (*s3));
s1 += 9;
s2 += 1;
s3 += (j % 3 != 2) ? 1 : 7;
}
if ((m1 != m2) || (m1 != m3) || (m1 != 0x03fe)) // all must be 1111111110
return 0;
}
return 1;
}
int printCounter = 0;
int solve(void) // find first empty square and brute forces all values on it
{
char *square = sudoku;
printCounter++;
if (printCounter % 512 == 0) // just to limit printing speed
print();
for (int j = 0; j < 9 * 9; ++j, ++square) // find first empty square
if (!(*square)) // empty square?
{
while (1) // try all possible values in the square
{
*square = ((*square) + 1) % 10;
if (!(*square)) // overflow to 0 => we tried all values now
break;
if (solve()) // recursively solve the next empty square
return 1;
}
return 0; // no value led to solution => can't be solved
}
// no empty square found, the sudoku is filled
return isValid();
}
int main(void)
{
/* Here we could do some initial attempts at reasoning and filling in
digits by "logic" before getting to brute force -- with too many empty
squares brute force will take forever. However this is left as an
exercise :-) */
int success = solve();
print();
puts(success ? "solved" : "couldn't solve it");
return 0;
}
```
## See Also
- [sudo](sudo.md)

@ -12,7 +12,7 @@ TAS runs coexist alongside RTA (non-TAS) runs as separate categories that are be
Creating a TAS is not an easy task, it requires great knowledge of the game (many times including its code) and its speedrunning, as well as a lot of patience and often collaboration with other TASers, sometimes a TASer needs to also do some [programming](programming.md) etc. TASes are made *offline* (not in real time), i.e. hours of work are required to program minutes or even seconds of the actual run. Many paths need to be planned and checked. Compared to RTAs, the focus switches from mechanical skills towards skillful mathematical analysis and planning. While RTA runs besides skill and training also require risk planning, i.e. sometimes deciding to do something in a slower but safer way to not ruin a good run, TAS can simply go for all the fastest routes, no matter how risky they are, as there is certainty they will succeed. Besides this some technological prerequisites are necessary: the actual tools to assist with creation of the TAS. For many new [proprietary](proprietary.md) games it is extremely difficult to develop the necessary tools as their source code isn't available, their assembly is obscured and littered with "anti-cheating" malware. Many "[modern](modern.md)" (even [FOSS](foss.md)) games are additionally badly programmed and e.g. lacking a [deterministic](determinism.md) physics, which makes precise TASing almost impossible (as the traditional precise crafting of inputs requires deterministic behavior). The situation is better with old games that are played in [emulators](emulator.md) such as [DOS](dos.md) games ([Doom](doom.md) etc.) or games for consoles like [GameBoy](gameboy.md) -- [emulators](emulator.md) can give us a complete control over the environment, they allow to save and load the whole emulator state at any instant, we may slow the time down arbitrarily, rewind and script the inputs however we wish (an advanced technique includes e.g. [bruteforcing](brute_force.md): exhaustively checking all possible combinations of inputs over the following few frames to see which one produces the best time save). In games that don't have TAS tools people at least try to do the next best thing with **segmented speedruns** (e.g. stitching together world record runs of each game level).
A libre [game](game.md) (under [CC0](cc0.md)!) called [Lix](lix.md), a clone of [Limmings](lemmings.md) is kind of based on making TAS runs, and it's excellent! In the game, like in original Lemmings, one has to manage a group of units to cooperate in overcoming obstacles and so get safely to the level exit; however, unlike Lemmings, Lix incorporates a replay system so the player may not just pause the game, accelerate or slow down the time, but also rewind back and issue commands perfectly on any any given frame. The game also shows to the player all necessary info like exact frame number, exact survivable jump height etc., so winning a level doesn't depend on fast reaction time, good estimate or grinding attempts over and over until one doesn't make any mistake -- no, solving the level is purely about thinking and finding the mathematical solution. Once one knows how to get to the exit, it's easy to program in any complex sequence of actions, and of course then he can rewatch it in real time and get this kind of rewarding movie in which everything is performed perfectly. Lix is really an excellent example of how TAS is not just 3rd party hacking of the game but inherent part of the original game's design, one that takes the fun to the next level.
A libre [game](game.md) (under [CC0](cc0.md)!) called [Lix](lix.md), a clone of [Lemmings](lemmings.md) is kind of based on making TAS runs, and it's excellent! In the game, like in original Lemmings, one has to manage a group of units to cooperate in overcoming obstacles and so get safely to the level exit; however, unlike Lemmings, Lix incorporates a replay system so the player may not just pause the game, accelerate or slow down the time, but also rewind back and issue commands perfectly on any any given frame. The game also shows to the player all necessary info like exact frame number, exact survivable jump height etc., so winning a level doesn't depend on fast reaction time, good estimate or grinding attempts over and over until one doesn't make any mistake -- no, solving the level is purely about thinking and finding the mathematical solution. Once one knows how to get to the exit, it's easy to program in any complex sequence of actions, and of course then he can rewatch it in real time and get this kind of rewarding movie in which everything is performed perfectly. Lix is really an excellent example of how TAS is not just 3rd party hacking of the game but inherent part of the original game's design, one that takes the fun to the next level.
There also exists a term *tool assisted superplay* which is the same principle as TAS but basically with the intention of just flexing, without the goal of finishing the game fast (e.g. playing a [Doom](doom.md) level against hundreds of enemies without taking a single hit).

@ -20,7 +20,7 @@ The manifesto is named *Industrial Society and Its Future*. In it he refers to h
First he bashes "leftists", analyses their psychology and says they are kind of degenerate sheeple, characterized by low self esteem, inventing bullshit artificial issues (such as the issue of [political correctness](political_correctness.md)), sometimes using violence. He also criticizes conservatives for supporting technological and economical growth which in his view inevitably brings on shift in societal values and said degeneracy. The usual societal issues are presented such as bad mental health, people being slaves to the system, feeling powerless, having no security, no autonomy etc. The cause of unhappiness and other human issues is identified as people not being able to fulfill what he sees as a necessity for fulfilling life, so called *power process*, the process of considerable struggle towards a *real* goal that can be achieved such as obtaining food by hunting -- he argues nowadays it's "too easy" to satisfy these basic needs and people invent artificial "surrogate" activities (such as sports, activism and even science) to do to try to fulfill the power process, however he sees these artificial activities as harmful, not *real* goals. It is mentioned we only have freedom in unimportant aspects of life, the system controls and regulates everything, brainwashes people etc. He defines real freedom as the opportunity to go through the power process naturally and being in control of one's circumstances. It is talked a lot about modification of humans themselves, either by advanced psychological means (propaganda), drugs or genetic modification which is seen as a future danger. A number of principles by which society works is outlined and it is concluded that the industrial society can't be reformed, a revolution is needed (not necessarily violent). Ted argues the system needs to be destroyed, we have to get back to the nature, and for this revolution he outlines a plan and certain recommendations (creation of ideology for intellectuals and common folk, the necessity of the revolution being world-wide etc.). He ends with again bashing "leftism" and warns they must never be collaborated with.
Now Let us leave a few comments on the manifesto. Firstly we have to say the text is easy to read, well thought through and Ted makes some great points, many of which we completely agree; this includes the overall notion of technology having had mostly negative effects on recent society, the pessimistic view of our future and the criticism of "harmful modern bullshit" such as political correctness. He analyzes and identifies some problems in society very well (e.g. the propaganda that's so advanced that even its creators aren't usually consciously aware they're creating propaganda, his analysis of the inner working of the system is spot on). Nevertheless we also **disagree on many points**. Firstly we use different terminology; people who Ted calls *leftist* and whom he accuses of degeneracy and harmfulness we call [pseudoleftists](pseudoleft.md), we believe in a truly leftist society (i.e. nonviolent, altruistic, non-censoring, loving without fascist tendencies). **We disagree on Ted's fundamental assumption** that people can't change, i.e. that people are primitive animals that need to live primitive lives (go through the power process by pursuing *real* goals such as obtaining food by hunting) in order to be happy (we are not against primitivism but we support it for other reasons). We believe society can become adult, just like an individual, if it is raised properly (i.e. with effort) and that the primitive side of a human can be overshadowed by the the intellectual side and that activities he calls *surrogate* (and considers undesirable) can be fulfilling. We think that in a sane, adult society **advanced technology can be helpful** and compatible with happy, fulfilling lives of people, even if the current situation is anything but. And of course, we are completely nonviolent and disagree with murdering people for any reason such as bringing attention to a manifesto.
Now Let us leave a few comments on the manifesto. Firstly we have to say the text is easy to read, well thought through and Ted makes some great points, many of which we completely agree on; this includes the overall notion of technology having had mostly negative effects on recent society, the pessimistic view of our future and the criticism of "harmful modern bullshit" such as political correctness. He analyzes and identifies some problems in society very well (e.g. the propaganda that's so advanced that even its creators aren't usually consciously aware they're creating propaganda, his analysis of the inner working of the system is spot on). Nevertheless we also **disagree on many points**. Firstly we use different terminology; people who Ted calls *leftist* and whom he accuses of degeneracy and harmfulness we call [pseudoleftists](pseudoleft.md), we believe in a truly leftist society (i.e. nonviolent, altruistic, non-censoring, loving without fascist tendencies). **We disagree on Ted's fundamental assumption** that people can't change, i.e. that people are primitive animals that need to live primitive lives (go through the power process by pursuing *real* goals such as obtaining food by hunting) in order to be happy (we are not against primitivism but we support it for other reasons). We believe society can become adult, just like an individual, if it is raised properly (i.e. with effort) and that the primitive side of a human can be overshadowed by the the intellectual side and that activities he calls *surrogate* (and considers undesirable) can be fulfilling. We think that in a sane, adult society **advanced technology can be helpful** and compatible with happy, fulfilling lives of people, even if the current situation is anything but. And of course, we are completely nonviolent and disagree with murdering people for any reason such as bringing attention to a manifesto.
## See Also

File diff suppressed because one or more lines are too long

@ -6,7 +6,7 @@ Here are some potentially [fun](fun.md) ways of trolling (they'll be written fro
- **[Link troll](suck_coq.md)**: on my website I randomly put dangerous links that look like normal links, for example "back to homepage" leads to a Google search of "free CP" or "how to get a bomb on the plane". This way anyone who clicks it automatically gets on the NSA watch list :D
- **Crime troll**:
- **Evidence troll**: before committing crime I go to a barber shop and collect hair on the floor. Later I scatter all this hair all around the crime scene so that investigators get overwhelmed with DNA evidence of dozens of unrelated people :D
- **Evidence troll**: before committing crime I go to a barber shop and collect hair on the floor. Later I scatter all this hair all around the crime scene so that investigators get overwhelmed with DNA evidence of dozens of unrelated people :D This is also know as DNA [DDOS](ddos.md) (or just DOS?).
- **Crime without motive**: criminal investigators always look for a motive in a crime, if there is none they get greatly confused, so for example as an extremely rich man owning 10 Lamborghinis I like to just steal some shitty car from time to time -- even if clues point to me they are always like "why would this rich man steal such a shitty car, it doesn't make sense". I just laugh :D
- **Irrational crime**: similarly investigators usually suspect some basic rationality even of the most stupid criminal -- you want to behave even stupider than that. For example I break into two stores and then just relocate goods from one to the other, then leave :D
- **Seizure troll**: when in some kind of lecture where the students are allowed laptops (typically in a compsci uni) I take a seat somewhere in the front row, near the lecturer, open my laptop and start a program that just rapidly flashes wild colors in fullscreen -- I leave it like that for the whole lecture so that everyone sitting behind me is forced to watch the flashing and can get an epileptic seizure. For educational purposes code for such a program can be written in a few lines of browser [JavaScript](javascript.md) (it may coincidentally possibly even be found in that JavaScript article).

@ -1,6 +1,8 @@
# Unix Philosophy
Unix philosophy is one of the most important and essential approaches to [programming](programming.md) (and by extension all [technology](tech.md) design) which advocates great [minimalism](minimalism.md) and is best known by the saying that **a program should only do one thing and do it well**. Unix philosophy is a collective wisdom, a set of recommendations evolved during the development of one of the earliest [operating systems](os.md) called [Unix](unix.md), hence the name. Unix philosophy advocates simplicity, clarity, modularity, reusability and composition of larger programs out of smaller programs rather than designing huge monolithic programs as a whole. Unix philosophy, at least partially, lives on in many project and Unix-like operating systems such as [Linux](linux.md) (though Linux is more and more distancing from Unix), has been wholly adopted by groups such as [suckless](suckless.md) and [LRS](lrs.md) (us), and is even being expanded in such projects as [plan9](plan9.md).
Unix philosophy is one of the most important and essential approaches to [programming](programming.md) (and by extension all [technology](tech.md) design) which advocates great [minimalism](minimalism.md) and is best known by the saying that **a program should only do one thing and do it well**. Unix philosophy is a collective [wisdom](wisdom.md), a set of design recommendations evolved during the development of one of the earliest (and most historically important) [operating systems](os.md) called [Unix](unix.md), hence the name. Having been defined by [hackers](hacking.md) (the true, old style ones) the philosophy naturally advises for providing a set of many highly effective tools that can be combined in various ways, i.e. to perform [hacking](hacking.md), rather than being restricted by a fixed, intended functionality of huge do-it-all programs. Unix philosophy advocates [simplicity](kiss.md), clarity, modularity, reusability and composition of larger programs out of very small programs rather than designing huge monolithic programs as a whole. Unix philosophy, at least partially, lives on in many project and Unix-like operating systems such as [Linux](linux.md) (though Linux is more and more distancing from Unix), has been wholly adopted by groups such as [suckless](suckless.md) and [LRS](lrs.md) (us), and is even being reiterated in such projects as [plan9](plan9.md).
As written in the [GNU](gnu.md) coreutils introduction, a Swiss army knife (universal tool that does many things at once) can be useful, but it's not a good tool for experts at work, they note that a professional carpenter will rather use a set of relatively simple, highly specialized tools, each of which is extremely efficient at its job. Unix philosophy brings this observation over to the world of expert programmers.
In 1978 [Douglas McIlroy](mcilroy.md) has written a short overview of the Unix system (*UNIX Time-Sharing System*) in which he gives the main points of the system's style; this can be seen as a summary of the Unix philosophy (the following is paraphrased):
@ -13,7 +15,7 @@ This has later been condensed into: do one thing well, write programs to work to
Details such as to what extent/extreme this minimalism ("doing only one thing") should be taken are of course a hot topic of many debates and opinions, the original Unix hackers very often very strict, famous example of which is the "cat -v considered [harmful](harmful.md)" presentation bashing a relatively simple function added to the [cat](cat.md) program that should only ever concatenate files. Some tolerate adding some convenience functions to simple programs, especially nowadays.
**Simple example**: maybe the most common practical example that can be given is [piping](pipe.md) small [command line](cli.md) utility programs; in Unix there exist a number of small programs that do *only one thing but do it well*, for example the [`cat`](cat.md) program that only displays the content of a file, the [`grep`](grep.md) program that searches for patterns in text etc. In a command line we may use so called [pipes](pipe.md) to chain some of these simple programs into more complex processing pipelines. Let's say we want to for example automatically list all first and second level headings on given webpage and write them out alphabetically sorted. We can do it with a command such as this one:
**Simple example**: maybe the most common practical example that can be given is [piping](pipe.md) small [command line](cli.md) utility programs; in Unix there exist a number of small programs that do *only one thing but do it well*, for example the [`cat`](cat.md) program that only concatenates and outputs the content of selected files, the [`grep`](grep.md) program that searches for patterns in text etc. In a command line we may use so called [pipes](pipe.md) to chain some of these simple programs into more complex processing pipelines by redirecting one program's output stream to another one's input. Let's say we want to for example automatically list all first and second level headings on given webpage and write them out alphabetically sorted. We can do it with a command such as this one:
```
curl "https://www.tastyfish.cz/lrs/main.html" | grep "<h[12]>.*</h[12]>" | sed "s/[^>]*> *\([^<]*\) *<.*/\1/g" | sort
@ -32,7 +34,9 @@ In the command the pipes (`|`) chain multiple programs together so that the outp
Compare this to the opposite [Window philosophy](windows_philosophy.md) in which combining programs into collaborating units is not intended, is possibly even purposefully prevented and therefore very difficult, slow and impractical to do -- such programs are designed for manually performing some predefined actions, mostly using [GUI](gui.md), e.g. painting pictures with a mouse, but aren't made to collaborate or be automatized, they can rarely be used in unintended, inventive ways needed for powerful [hacking](hacking.md). Getting back to the example of a compression tool, on Windows such a program would be a large GUI program that requires a user to open up a file dialog, manually select a file to compress, which would then probably go on to load the whole file into memory, perform compression there, and the write the data back to some other file. Need to use the program on a computer without graphical display? Automatize it to work with other programs? Run it from a script? Run it 10000 at the same time with 10000 other similar programs? Bad luck, Windows philosophy doesn't allow this.
**Watch out! Do not misunderstand Unix philosophy.** There are many extremely dangerous cases of misunderstanding Unix philosophy by [modern](modern.md) wannabe programmers. One example is the hilarious myth about "[React](react.md) following Unix philosophy" ([LMAO this](http://img.stanleylieber.com/src/20872/img/small.1527773532.png)), supposedly the "devs" think that having billion of dependencies or focusing on doing one huge thing ([GUI](gui.md)) somehow implies Unix philosophy -- **nothing based on [JavaScript](js.md) can ever follow Unix philosophy!** Unix philosophy can NOT be built on top of non-unix philosophy technology, and focusing on a very broad goal does not mean doing one thing.
**Watch out! Do not misunderstand Unix philosophy.** There are many extremely dangerous cases of misunderstanding Unix philosophy by [modern](modern.md) [wannabe programmers](soydev.md) who can't tell [pseudominimalism](pseudominimalism.md) from true [minimalism](minimalism.md). One example is the hilarious myth about "[React](react.md) following Unix philosophy" ([LMAO this](http://img.stanleylieber.com/src/20872/img/small.1527773532.png)), the devs just show so many misunderstandings here -- firstly of course [JavaScript](js.md) itself is extremely [bloated](bloat.md) as it's a language aiming for things like comfort, rapid development, "safety" and beginner friendliness to which it sacrifices performance and elegance, an expert hacker trying to write highly thought through, optimized program is not its target group, therefore nothing based on JavaScript can ever be compatible with the Unix way in the first place. Secondly they seem to imply that basically any system of modules follows Unix philosophy -- that's of course wrong, modularity far predates Unix philosophy, Unix philosophy is more than that, merely having a package system of libraries, each of which focuses on some thing (even very broad one like highly complex [GUI](gui.md)), doesn't mean those tools are simple (both internally and externally), efficient, communicating in good ways and so on.
**Does Unix philosophy imply [universality](universality.md) is always bad?** Well, most likely no, not in general at least -- it simply tells us that for an expert to create art that reaches the peak of his potential it seems best in most cases if he lives in an environment with many small, highly efficient tools that he can tinker with, which allow him to combine them, even (and especially) in unforeseen ways -- to do [hacking](hacking.md). Universal tools, however, are great as well, either as a supplement or for other use cases (non-experts, quick dirty jobs and so on) -- after all a general purpose [programming language](programming_language.md) such as [C](c.md), another creation of Unix creators themselves, is a universal tool that prefers generality over effectiveness at one specific task (for example you can use C to process text but you likely won't match the efficiency of [sed](sed.md), etc.). Nevertheless let us realize an important thing: a universal tool can still be implemented in minimalist way, therefore never confuse a universal tool with a bloated monolith encumbered by feature creep!
{ One possible practical interpretation of Unix philosophy I came up with is this: there's an upper but also lower limit on complexity. "Do one thing" means the program shouldn't be too complex, we can simplify this to e.g. "Your program shouldn't surpass 10 KLOC". "Do it well" means the programs shouldn't bee too trivial because then it is hardly doing it well, we could e.g. say "Your program shouldn't be shorter than 10 LOC". E.g. we shouldn't literally make a separate program for printing each ASCII symbol, such programs would be too simple and not doing a thing well. We rather make a [cat](cat.md) program, that's neither too complex nor too trivial, which can really print any ASCII symbol. By this point of view Unix philosophy is really about balance of triviality and huge complexity, but hints that the right balance tends to be much closer to the triviality than we humans are tempted to intuitively choose. Without guidance we tend to make programs too complex and so the philosophy exists to remind us to force ourselves to rather minimize our programs to strike the correct balance. ~drummyfish }

@ -46,4 +46,4 @@ Here is a comparison of average European country before and after infestation wi
| wanted to commit suicide | no | yes |
| society worked | kinda | no |
In [Europe](europe.md), or maybe just anywhere else in the world, you are afraid of getting hit by a car because you might die, in America you afraid of it because you couldn't afford the ambulance bill and would put you in debt (yes, even if you pay "health insurance"). You can literally find footage of half dead people running away from ambulances so that they don't have to go to debt for being kept alive. In Europe you are afraid to hit someone with a car because you might kill him, in America you are afraid of it because he might sue you. This is not an exaggeration or [joke](jokes.md), it's literally how it is -- it's incredible how people can believe the country is somehow "more advanced", it is quite literally the least developed country in history.
In [Europe](europe.md), or maybe just anywhere else in the world, you are afraid of getting hit by a car because you might die, in America you afraid of it because you couldn't afford the ambulance bill and would get into unpayable debt (yes, even if you pay "health insurance"). You can literally find footage of half dead people running away from ambulances so that they don't have to go to debt for being kept alive. In Europe you are afraid to hit someone with a car because you might kill him, in America you are afraid of it because he might sue you. This is not an exaggeration or [joke](jokes.md), it's literally how it is -- it's incredible how people can believe the country is somehow "more advanced", it is quite literally the least developed country in history.

@ -8,7 +8,7 @@ Uxn is similar to other projects such as [IBNIZ](ibniz.md), and can be compared
## Details
{ **Start rant**: the description of everything by 100rabbits is **so fucking hard and painful as fuck to understand** -- not because the described technology itself would be complicated but the writing is just really REALLY bad, it's hard to say exactly what it is but he just seems to be trying to write poetry in technical specifications, that's just extremely fucked up. There are tables where meaning of rows and columns is left to be guessed, hyperlinks of important terms lead to shitass long articles about something completely else, he invents 10 different fancy sounding words he uses interchangeably without ever explaining their meaning in a non-cryptic way. It's also fucking infuriating there are some **fucking shitty childish drawings randomly inserted into opcode specification** along with some random hand gesture signals for the opcodes and what the fuck. It's like he's abusing the specification to force feed you his ugly drawings which he probably thinks look good while also trying to teach you what sounds animals make as if it's fucking kindergarden. Fuck this shit, I now have to read through it and make sense of it so you don't have to. I'll prolly rather read some 3rd party tutorial lol. ~drummyfish }
{ **Start rant**: the description of everything by 100rabbits is **so fucking hard and painful as fuck to understand** -- not because the described technology itself would be complicated but the writing is just really REALLY bad, it's hard to say exactly what it is but he just seems to be trying to write poetry in technical specifications, that's just extremely fucked up. There are tables where meaning of rows and columns is left to be guessed, hyperlinks of important terms lead to shitass long articles about something completely else, he invents 10 different fancy sounding words he uses interchangeably without ever explaining their meaning in a non-cryptic way or which simply have circular definitions. It's also fucking infuriating there are some **fucking shitty childish drawings randomly inserted into opcode specification** along with some random hand gesture signals for the opcodes and what the fuck. It's like he's abusing the specification to force feed you his ugly drawings which he probably thinks look good while also trying to teach you what sounds animals make as if it's fucking kindergarden. Fuck this shit, I now have to read through it and make sense of it so you don't have to. I'll prolly rather read some 3rd party tutorial lol. ~drummyfish }
Here is a kind of concise sum up of uxn "ecosystem"/terminology/specs/etc.:

@ -1,6 +1,6 @@
# Vector
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.
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". Nevertheless in programming 1 dimensional arrays are somewhat synonymous with vectors -- 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.)

File diff suppressed because one or more lines are too long

@ -3,8 +3,8 @@
This is an autogenerated article holding stats about this wiki.
- number of articles: 561
- number of commits: 709
- total size of all texts in bytes: 3104741
- number of commits: 710
- total size of all texts in bytes: 3118300
longest articles:
@ -24,6 +24,15 @@ longest articles:
latest changes:
```
Date: Sun Feb 25 21:07:35 2024 +0100
c.md
capitalism.md
internet.md
less_retarded_society.md
random_page.md
wiki_pages.md
wiki_stats.md
www.md
Date: Sun Feb 25 01:09:12 2024 +0100
3d_rendering.md
abstraction.md
@ -54,15 +63,6 @@ encyclopedia.md
entropy.md
furry.md
gnu.md
gopher.md
jesus.md
lrs_dictionary.md
music.md
programming_style.md
random_page.md
wiki_pages.md
wiki_stats.md
Date: Sat Feb 24 19:26:17 2024 +0100
```
most wanted pages:

@ -6,7 +6,7 @@ It had over 36000 pages (http://c2.com/cgi/wikiPages). Since 2014 the wiki can n
The site's engine was kind of [suckless](suckless.md)/[KISS](kiss.md), even Wikipedia looks [bloated](bloat.md) compared to it. It was pure unformatted [HTML](html.md) that used a very clever system of [hyperlinks](hypertext.md) between articles: any [CamelCase](camelcase.md) multiword in the text was interpreted as a link to an article, so for example the word `SoftwareDevelopment` was automatically a link to a page called *Software Development*. This presented a slight issue e.g. for single-word topics but the creativity required for overcoming the obstacle was part of the [fun](fun.md), for example the article on [C](c.md) was called `CeeLanguage`.
Overall the site was also very different from [Wikipedia](wikipedia.md) and allowed informal comments, jokes and subjective opinions in the text. It was pretty entertaining to read. There's a lot of old hacker wisdom to be found there.
Overall the site was also very different from [Wikipedia](wikipedia.md) and allowed informal comments, [jokes](jokes.md) and subjective opinions in the text. It was pretty entertaining to read. There's a lot of old hacker wisdom to be found there. On the other hand it was a bit retarded too though, a bit like [hacker news](hacker_news.md) of its time, except a tiny bit less stupid maybe. The people were not as much focused on pure hacking but rather on "software engineering", i.e. manipulating and "managing" people, they were obsessed with [OOP](oop.md) patterns and things like that.
There are other wikis that work in similar spirit, e.g. CommunityWiki (https://communitywiki.org, a wiki "about communities"), MeatBallWiki (http://meatballwiki.org/wiki/) or EmacsWiki.

Loading…
Cancel
Save